Foros del Web » Programando para Internet » PHP »

Problema con script.

Estas en el tema de Problema con script. en el foro de PHP en Foros del Web. Buenos dias, perdon por no poner un titulo mas descriptivo, pero es que no les queria escribir el mensaje entero en el titulo nomas... En ...
  #1 (permalink)  
Antiguo 10/07/2009, 22:08
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 5 meses
Puntos: 21
Problema con script.

Buenos dias, perdon por no poner un titulo mas descriptivo, pero es que no les queria escribir el mensaje entero en el titulo nomas...

En mi web tengo un script para contar el numero de veces que se visita la pagina (no exactamente la pagina en si, algo asi)...el script es el siguiente:

Código PHP:
//Aca va otra query que lo que hace es obtener el numero de views que ya esta guardado en la DB
//Aumentar 1 a views.
$views $row[views];
$views $views+1;
//Actualizar tabla.
$update "UPDATE `semanales` set views = '$views'  WHERE serielink = '$serie'";
mysql_query($update$conn); 
Bueno el script hasta ahi funciona perfecto...el problema que tengo es que cuando llega a un determinado numero de views, no sabria decir cual exactamente, pero diria de algo de 20000 o mas... se resetean las views, vuelve a empezar todo de 0...

Alguien tiene idea de porque puede pasar esto?

---- Antes estaba guardando las views en un capo INT(11) y despues lo cambie por un TEXT solo para probar si no se reseteaba de esa forma pero sigue sucediendo lo mismo...

Gracias.
  #2 (permalink)  
Antiguo 10/07/2009, 22:21
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Problema con script.

Hola amigo, tal vez le has puesto un limite en el campo views de tu base de datos.
verifica el valor que has puesto en longitud/valores y trata de usar un campo tipo decimal.

prueba y observa si funciona.

Saludos!
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #3 (permalink)  
Antiguo 10/07/2009, 22:22
Avatar de jaao_death  
Fecha de Ingreso: abril-2009
Ubicación: Murcia/españa
Mensajes: 229
Antigüedad: 15 años
Puntos: 6
Respuesta: Problema con script.

Lo más probable es que tu error está en otra parte del código que valida mal los datos y genera dicho error.

No estoy muy seguro, pero nunca he sabido que los datos en la base se reseteen sin más ni menos. nunca me ha pasado...

Postea la estructura de tu base de datos devuleta por SHOW CREATE TABLE semanales
__________________
Mucha seguridad nunca es suficiente.... Por una red segura
El señor ilustre obscurece nuestras mentes
Usas Linux? http://www.dudalibre.com/gnulinuxcounter

Última edición por jaao_death; 10/07/2009 a las 22:23 Razón: Add data
  #4 (permalink)  
Antiguo 10/07/2009, 22:27
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 5 meses
Puntos: 21
Respuesta: Problema con script.

como era un campo 'text' no le puse longitud....

Ahora lo cambie por uno tipo 'decimal' cual es la longitud maxima de ese campo? veo que por default pone 10.0...

----

No...no creo que el error este en otra parte del codigo, ya que esa es la unica parte del codigo de 'toca' esa tabla...ademas, siempre se ejecuta el mismo codigo...de estar en parte del codigo se resetearia cada vez que alguien ejecute el script.
  #5 (permalink)  
Antiguo 11/07/2009, 07:56
Avatar de felipetibata  
Fecha de Ingreso: julio-2007
Ubicación: Bogotá
Mensajes: 86
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Problema con script.

por que un link vale mas que mil palabras.... http://dev.mysql.com/doc/refman/5.0/...ric-types.html
__________________
www.luisfelipetibata.com
  #6 (permalink)  
Antiguo 11/07/2009, 11:00
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 5 meses
Puntos: 21
Respuesta: Problema con script.

Oh, si la verdad....Muchas Gracias.

Aunque antes lo tenia en int(11) y tambien me pasaba lo mismo, por eso me extraña...
  #7 (permalink)  
Antiguo 27/07/2009, 19:42
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 5 meses
Puntos: 21
Pregunta Campo en la DB que se 'resetea'

Hace un tiempo cree un tema para esto mismo, me dieron algunas soluciones, pero al final de intentar todas... no se soluciono...

En mi web tengo un contador de visitas (no exactamente de visitas) lo que hace es cada vez que alguien carga la pagina, toma X valor del campo 'views' le aumenta 1 y lo updatea.

El problema no esta en el script...sino en el tipo de tabla donde se guarda.. se guarda en una tabla 'int(255)' ya intente practicamente tablas de todos los colores, pero siempre lo mismo...

El contador, osea la tabla se resetea al llegar al nº 63000 (aprox.)

Desde ya, gracias...

P.D: Si, si eh buscado en google y si, si eh visto todos los tipos de tablas para campos numericos...
  #8 (permalink)  
Antiguo 27/07/2009, 20:31
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Campo en la DB que se 'resetea'

Declara el campo como int(11) en tu base de datos, no como int(255) (Que no existe)
  #9 (permalink)  
Antiguo 27/07/2009, 20:33
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Campo en la DB que se 'resetea'

Sabes una cosa, yo estaria seguro que tu problema es INYECCION SQL.

Recuerdo que lei tu otra pregunta, yo te recomende usar campo int(11) (no uses el 255 eso no va..) o text no recuerdo.

Pero visto esto, creo y estoy casi un 100% seguro que es inyeccion sql.

Mira cuelgate un trigger para que registres en que momento se borra el valor y asi puedas sacar tus conclusiones.

Nota: ¿Que version de mysql usas?


Saludos!
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #10 (permalink)  
Antiguo 27/07/2009, 21:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Campo en la DB que se 'resetea'

Temas unidos por favor NO dupliques temas.
  #11 (permalink)  
Antiguo 27/07/2009, 23:20
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 5 meses
Puntos: 21
Respuesta: Problema con script.

Me disculpo, crei que este ya estaba bastante viejito para re abirlo...

La vercion de MySQL es: 5.0.81

Ya me imagine que int 255 no existia... pero antes de poner esa barbaridad, probe con int 11 y pasaba lo mismo...

Si fuese una inyeccion SQL, se tendria que realizar cada vez que realicen la inyeccion y no siempre cuando llegue a 63000, no?

PD: estoy investigando eso del 'strigger' la verdad que no tengo idea de eso.
  #12 (permalink)  
Antiguo 28/07/2009, 08:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con script.

Creo el problema esta a la hora de que rescatas el valor en PHP, deberías de actualizar el valor directo en la BDD, prueba esto:
Código sql:
Ver original
  1. $update = "UPDATE `semanales` set views =views + 1  WHERE serielink = '$serie'";

Saludos.
  #13 (permalink)  
Antiguo 28/07/2009, 12:14
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 5 meses
Puntos: 21
Respuesta: Problema con script.

Gracias, lo voy a hacer asi y les cuento...
  #14 (permalink)  
Antiguo 28/07/2009, 12:30
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Problema con script.

Esperamos tu respuestas, esto es algo interezante XD

Saludos!
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:34.