Foros del Web » Programando para Internet » PHP »

VOTACIONES, Complicado?

Estas en el tema de VOTACIONES, Complicado? en el foro de PHP en Foros del Web. Hola, Quiero hacer unas votaciones semanales en mi web. La idea es la siguiente: - Muestro un listado de jugadores y a su derecha un ...
  #1 (permalink)  
Antiguo 27/03/2009, 04:30
 
Fecha de Ingreso: noviembre-2008
Mensajes: 259
Antigüedad: 15 años, 5 meses
Puntos: 1
VOTACIONES, Complicado?

Hola,

Quiero hacer unas votaciones semanales en mi web.

La idea es la siguiente:
- Muestro un listado de jugadores y a su derecha un boton para votar al jugador.
Quiero que desde un PC se pueda votar a 3 jugadores diferentes maximo. Despues no deberia permitir seguir votando a nadie desde ese PC.

Mi idea es crear una columna en mi bbdd llamada VOTOS. Cada voto a un jugador sumaria 1 a su numero de votos.

Mis dudas:
- Como hacer para que al clickear en un boton, se sume 1 en en mi bbdd al campo VOTOS del jugador en concreto.
- Como hacer para que solamente se pueda votar a 3 jugadores por PC.
- Como reinicializar la columna a principios de semana y que los PCs puedan volver a votar.

Creo que es complicado, pero confio en la sabiduria que se observa en este foro!

Gracias!
  #2 (permalink)  
Antiguo 27/03/2009, 04:50
Avatar de @ndreX!  
Fecha de Ingreso: abril-2007
Mensajes: 161
Antigüedad: 17 años
Puntos: 4
Respuesta: VOTACIONES, Complicado?

1. SQL: algo como mysql_query("update tabla votos=votos+1 where jugador_id=".$id);

2. COOKIES debes setear cookies con limite de vida, en tu caso una semana, ningun metodo es fiable, las cookies pueden ser borradas, y ya tienes otros 3 votos no?, puedes revisar la funcion setcookie() en www.php.net, la otra opcion es guardar la IP en tu BD pero igual, si tienen IP Dinamica ya no funciona. La unica forma es que tengas registro de usuarios en tu web, y ahi descuentes los votos.

3. Si lo haces con las cookies, no hay problema, cuando termine su tiempo de vida (1 semana) se borran

¿Información o Código? xD (jaja)
Saludos.
__________________
Blog de Andres Ortiz: http://www.axpuntes.com/
  #3 (permalink)  
Antiguo 27/03/2009, 05:26
 
Fecha de Ingreso: noviembre-2008
Mensajes: 259
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: VOTACIONES, Complicado?

Genial explicacion. Solo algo no me queda claro:

- Como hago para que la persona no pueda votar A PARTIR DEL TERCER VOTO?
  #4 (permalink)  
Antiguo 27/03/2009, 05:40
 
Fecha de Ingreso: diciembre-2005
Ubicación: Vigo
Mensajes: 135
Antigüedad: 18 años, 4 meses
Puntos: 3
Respuesta: VOTACIONES, Complicado?

para realizar las tres votaciones desde un mismo ordenador guarda la fecha de las votaciones y la ip desde la que son ejecutadas, asi puedes comprobar si desde esa ip se ha votado o no durante el ultomo dia.
__________________
AlfaMeta formacion
  #5 (permalink)  
Antiguo 27/03/2009, 05:42
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: VOTACIONES, Complicado?

Es más fiable usar las Cookies que la comprobación por IP. Más que nada, porque casi todo el mundo usa IPs dinámicas.
  #6 (permalink)  
Antiguo 27/03/2009, 05:51
Avatar de @ndreX!  
Fecha de Ingreso: abril-2007
Mensajes: 161
Antigüedad: 17 años
Puntos: 4
Respuesta: VOTACIONES, Complicado?

Bueno es fácil mira te explico:

Supongamos que llevamos 2 cookies, una como contador y otra para llevar a quienes a votado:
Código PHP:
<?
    
//Debe ir al principio del archivo
    
setcookie('votos',0,time()+60*60*7); //Para que dure una semana
    
setcookie('jugadores',null,time()+60*60*7);
    
    if(
$_POST['voto']){
        if(
$_COOKIE['votos']>3){
            echo 
'No puedes votar mas de 3 veces';
        }
        else{
            
$_COOKIE['votos']++;
        }
        
/* Lo hago separado, por si quieres ponerlo en otra parte, siempre y cuando cumplan el if() de arriba */
        
if(in_array($_POST['voto'],$_COOKIE['jugadores'])){
            echo 
'Lo sentimos, pero ya has votado por este jugador';
        }
        else{
            
$_COOKIE['jugadores'][] = $_POST['voto']; //Suponiendo que $_POST['voto'] trae el value del radio
        
}
    }
    
?>
Algo así es la idea, puedes seguir desarrollandolo a partir de acá, igual cualquier duda avisame.
P.D: Igual, el código puede ser más compacto, lo hago así para explicarte mejor la idea.
Saludos
__________________
Blog de Andres Ortiz: http://www.axpuntes.com/
  #7 (permalink)  
Antiguo 27/03/2009, 05:54
 
Fecha de Ingreso: diciembre-2005
Ubicación: Vigo
Mensajes: 135
Antigüedad: 18 años, 4 meses
Puntos: 3
Respuesta: VOTACIONES, Complicado?

En eso tienes razon, pero con las cookies tambien puede pasar que se borren manualmente y entonces tampoco serviria.
__________________
AlfaMeta formacion
  #8 (permalink)  
Antiguo 27/03/2009, 05:57
Avatar de @ndreX!  
Fecha de Ingreso: abril-2007
Mensajes: 161
Antigüedad: 17 años
Puntos: 4
Respuesta: VOTACIONES, Complicado?

Cita:
Iniciado por subirol Ver Mensaje
En eso tienes razon, pero con las cookies tambien puede pasar que se borren manualmente y entonces tampoco serviria.
Como dije antes, no hay ningun metodo fiable... la única forma aceptable, es que tengas un sistema de usuarios, y asignes en un campo de la tabla cuantos votos puede usar cada quién y ahi vas disminuyendo.

Saludos.
__________________
Blog de Andres Ortiz: http://www.axpuntes.com/
  #9 (permalink)  
Antiguo 27/03/2009, 06:17
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: VOTACIONES, Complicado?

subirol, te iba a responder lo mismo que te ha dicho @ndreX!.

Aún haciéndolo con usuarios registrados, tampoco es fiable. Yo me puedo registrar las veces que quiera. El problema del Internet anónimo, tal cual es hoy día, es precisamente esa falta de indentificación.
  #10 (permalink)  
Antiguo 27/03/2009, 13:06
Avatar de @ndreX!  
Fecha de Ingreso: abril-2007
Mensajes: 161
Antigüedad: 17 años
Puntos: 4
Respuesta: VOTACIONES, Complicado?

@Bonez: Eso es muy cierto, pero creo que les darias mas trabajo a las personas al tener que registrarse varias veces y tener varios correos distintos. De cualqier forma, no hay ningun metodo que permita clara transparencia en esto de las votaciones, ni los grandes se salvan.

Saludos.
__________________
Blog de Andres Ortiz: http://www.axpuntes.com/
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 09:44.