Foros del Web » Programando para Internet » PHP »

Votos Cada 24H

Estas en el tema de Votos Cada 24H en el foro de PHP en Foros del Web. Hola gente, necesito saber una manera de "bannear" a alguien para ke kuando vote por ejemplo, no pueda volver a votar en 24 horas. utilizo ...
  #1 (permalink)  
Antiguo 17/03/2004, 10:25
 
Fecha de Ingreso: marzo-2004
Mensajes: 4
Antigüedad: 20 años, 1 mes
Puntos: 0
Votos Cada 24H

Hola gente, necesito saber una manera de "bannear" a alguien para ke kuando vote por ejemplo, no pueda volver a votar en 24 horas. utilizo mysql i php. gracias de antemano
  #2 (permalink)  
Antiguo 17/03/2004, 10:34
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 21 años
Puntos: 1
la forma mas facil es utilizando cookies, que esta se borre a las 24 horas,
Puedes mirar aqui el funionamiento

http://es2.php.net/manual/es/function.setcookie.php

saludos
  #3 (permalink)  
Antiguo 17/03/2004, 10:36
 
Fecha de Ingreso: marzo-2004
Mensajes: 4
Antigüedad: 20 años, 1 mes
Puntos: 0
ya pero borrando cookies podrian volver a votar xD
  #4 (permalink)  
Antiguo 17/03/2004, 10:47
 
Fecha de Ingreso: diciembre-2003
Mensajes: 65
Antigüedad: 20 años, 4 meses
Puntos: 1
Pues usa seciones para que asi no handen borrando las cookies pero es lo de menos creeme muchos no saben para que son las cookies.
  #5 (permalink)  
Antiguo 17/03/2004, 10:49
 
Fecha de Ingreso: marzo-2004
Ubicación: Zaragoza
Mensajes: 28
Antigüedad: 20 años, 1 mes
Puntos: 0
Otra forma:
Modifica el formulario de votación para que además del voto envie la ip del usuario y el datetime.

En el script que recibe los votos mira si existe la ip:

- Si existe compara datetime del voto con la hora y fecha actuales, si no han pasado 24h no envia el voto a la BD (si quieres puedes mostrar un error del tipo "sólo puedes votar una vez al día").

- Si no existe la ip o si existe pero hayan pasado más de 24h guarda el voto y se actualiza el campo datetime

PD: se me olvidaba, tendrás que crear esos campos en la BD.


Saludos...vichu
__________________
Si su paciente se empieza a sentir mejor sin causa aparente, no descarte la curación.
(Ley de Murphy para médicos)
  #6 (permalink)  
Antiguo 17/03/2004, 10:50
 
Fecha de Ingreso: marzo-2004
Mensajes: 4
Antigüedad: 20 años, 1 mes
Puntos: 0
puedo definir una sesion ke dure 24 h para cada usuario?
  #7 (permalink)  
Antiguo 17/03/2004, 10:51
 
Fecha de Ingreso: marzo-2004
Mensajes: 4
Antigüedad: 20 años, 1 mes
Puntos: 0
lo de la BD tambien lo pense pero lo ke pasa eske no me sale la menra de comparar el date actual con el de la bd, porke tendria ke comparar la hora i el dia
  #8 (permalink)  
Antiguo 17/03/2004, 11:51
 
Fecha de Ingreso: marzo-2004
Ubicación: Zaragoza
Mensajes: 28
Antigüedad: 20 años, 1 mes
Puntos: 0
Usa la funcion date() , (pincha aquí para ver los parámetros que le puedes pasar) que te devuelve la hora actual como número de segundos transcurridos desde las 00:00:00 del 1 de enero de 1970.

Como no tienes que mostrar la fecha en pantalla, no es necesario que la formatees.

Para compararla haz esto:
Código PHP:
$fecha_actual time('U'); // fecha en formato unix
$fech_voto $row[fecha]; // la fecha extraida de la BD correspondiente a la ip

if (($fecha_voto+86400)<$fecha_actual) {  // 86400=1dia en sg
//no agrego el voto
}
else {
//agrego el voto

Saludos...vichu
__________________
Si su paciente se empieza a sentir mejor sin causa aparente, no descarte la curación.
(Ley de Murphy para médicos)
  #9 (permalink)  
Antiguo 17/03/2004, 12:38
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 21 años
Puntos: 1
el problema del votar la verdad, es que es imposible de poder asegurar que alguien no vote otra vez.

sistema de cookies, (las pueden borrar)
sistema de IP,:
la mayoria de gente tiene IP dinamica, osea que cambia cada vez que se conecta, los que tienen IP estatica, son normalmente gente con ADSL o CABLE, (y no todos), y el ADSL solo esta, en un 15% de conectados, al menos en españa, en otros paises puede ser mas o menos., osea que un usuario cada vez que se conecte puede votar.

Y el sistema de sesiones:
Pues no se puede hacer, pues una sesion dura lo que el usuario esta navegando por la web, a la que cierra el navegador la sesion se va.

Lo unico seria que el usuario que vota se tuviera de loguear, y entonces con un campo DATE, en la BDD, pues se marcara el momento del voto con la sentencia SQL , NOW() ( da la fecha y hora del momento) luego con una simple comparacion en SQL, se mira que hayan pasado 24 horas del voto.

Enfin si no se registra, el sistema mas fiable es las cookies, la gente no anda borrando las cookies cada hora, recibimos decenas cada dia , por ejemplo este foro te mete una cuando te logueas, y no la borras no?

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 08:19.