Foros del Web » Programando para Internet » PHP »

Duda Update

Estas en el tema de Duda Update en el foro de PHP en Foros del Web. Hola compañeros, yo de nuevo con una duda: Tengo este sencillo codigo que cuenta las visitas a cada noticia <?php $sql = "Update noticias Set ...
  #1 (permalink)  
Antiguo 16/10/2009, 13:21
 
Fecha de Ingreso: junio-2008
Mensajes: 30
Antigüedad: 15 años, 10 meses
Puntos: 0
Pregunta Duda Update

Hola compañeros, yo de nuevo con una duda:

Tengo este sencillo codigo que cuenta las visitas a cada noticia

<?php
$sql = "Update noticias Set visitas=visitas+1 where id='".$_GET['id']."'";
mysql_query($sql);
?>

Como veran no es mas que un sumador de numeros.
El problema es que al actualizar la pagina de la noticia tambien inserta un numero.

Lo que quiero es limitar el conteo por ip para evitar que cada vez que se actualice la pagina se cuente como una visita nueva. Muchos vivos ya se dieron cuenta de esto y de gusto la actualizan. ¿ como podria hacerlo ?
  #2 (permalink)  
Antiguo 16/10/2009, 13:26
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Duda Update

Puedes basarte por el ip de la persona. Tendrías que crear otra columna y que vea si la persona visito y con un where no lo agregue, o puedes usar sesiones para evitar que al refrescar se actualice.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 16/10/2009, 13:30
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Duda Update

<?php
if(!$_SESSION["votador"]){
$sql = "Update noticias Set visitas=visitas+1 where id='".$_GET['id']."'";
mysql_query($sql);
}
$_SESSION["votador"] = true;
?>

asi lo ases mas sencillo
  #4 (permalink)  
Antiguo 16/10/2009, 14:06
 
Fecha de Ingreso: junio-2008
Mensajes: 30
Antigüedad: 15 años, 10 meses
Puntos: 0
Pregunta Respuesta: Duda Update

Amigo Hidek1 me diste una idea. No podria hacerlo por sesion porque las noticias son publicas, pero reemplazando la sesion por $_SERVER['REMOTE_ADDR'] podria funcionar, aunque no lo pobre todavia. Vere que pasa. Aqui les dejo como quedaria el codigo, me dicen si notan algun error.

<?php
if(!$_SERVER['REMOTE_ADDR']){
$sql = "Update noticias Set visitas=visitas+1 where id='".$_GET['id']."'";
mysql_query($sql);
}
$_SERVER['REMOTE_ADDR'] = true;
?>
  #5 (permalink)  
Antiguo 16/10/2009, 14:12
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Duda Update

Eso hace nada. $_SERVER es una variable que te brinda informacion, no se puede alterar lo que haya en esas variables.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 16/10/2009, 14:15
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Duda Update

aunque no entendi porque no puede ser por session.. lo de _server no te va a funcionar por que no se le puede asignar datos :B

puedes intentar con una cookie

setcookie() ... saludos ;)
  #7 (permalink)  
Antiguo 16/10/2009, 14:33
 
Fecha de Ingreso: junio-2008
Mensajes: 30
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Duda Update

No se si me exprese mal al principio, pero les explico mejor lo que necesito hacer.

El update se genera cada ves que alguien clickea en el link de la noticia, automaticamente suma 1 en la tabla de la base de datos. Ese no se genera desde un formulario ni nada, sino cuando alguien entra a leer la noticia. Las noticias son publicas, cualquiera puede leerlas. El problema es que hay gente abusa que actualiza la pagina para aumentar las visitas o vistas.

Y esto es lo que quiero evitar. Que se cuente cuando recarga de pagina, actualizandola.

Si alguien tiene una forma de hacer esta suma restringiendo la ip, que me pase el codigo porfavor.
  #8 (permalink)  
Antiguo 16/10/2009, 14:47
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Duda Update

la ip la reemplazas por la session[] ya que es personal...
creas la session a la cual le puedes asignar la variable de id de las noticias leidas...
ej
$_SESSION["leidas"] = $_SESSION["leidas"] . "::" . $id_noticia;

entonces despues la condicion para aumentar seria..
if(strstr($_SESSION["leidas"], "::".$id_noticia)){



asi sabes si la persona a entrado a ver esa noticia u otra :B

saludos!
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:51.