elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Un solo voto por usuario en PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Un solo voto por usuario en PHP  (Leído 8,569 veces)
wirelesswifi

Desconectado Desconectado

Mensajes: 128



Ver Perfil WWW
Un solo voto por usuario en PHP
« en: 5 Mayo 2011, 05:58 am »

Buenas a todos tengo otra duda, como haria que los usuarios que esten registrados en la web solo voten una vez por cada articulo.

El codigo que tengo es este:

Código
  1. <?php
  2. $sql="SELECT COUNT(nick) from voto WHERE nick='".$_cookie[usuario]."'";
  3. $result=mysql_query($sql) or die (mysql_error());
  4.  
  5. if (mysql_result($result,0) == 0){
  6. $sql="INSERT INTO voto (nick) VALUES ('".$_cookie[usuario]."')";
  7.  
  8. $up_votos = "UPDATE voto SET votos=votos+1 WHERE id=".$id;
  9. mysql_query($up_votos);
  10.  
  11. echo "Gracias por su voto.";
  12. } else {
  13.  
  14. echo "Usted ya ha votado.";
  15. }
  16. ?>

Este codigo hace que vote solo una vez y no vote mas en otros articulos, pero como haria que sea por id de la noticia, ejemplo de la tabla:

id
id_articulo
nick
votos

Vote solo una vez por cada articulo.

Espero me hayan entendido.

Saludos!


En línea

[ Alberto]
Wiki

Desconectado Desconectado

Mensajes: 1.232



Ver Perfil
Re: Un solo voto por usuario en PHP
« Respuesta #1 en: 5 Mayo 2011, 06:57 am »

Citar
pero como haria que sea por id de la noticia, ejemplo de la tabla
existe una tabla noticia, seria el mismo mecanismo, no me queda claro que necesitas  :huh:
saludos


En línea

Debemos de hacer todas las cosas sencillas, excepto las cosas sencillas
wirelesswifi

Desconectado Desconectado

Mensajes: 128



Ver Perfil WWW
Re: Un solo voto por usuario en PHP
« Respuesta #2 en: 5 Mayo 2011, 12:47 pm »

existe una tabla noticia, seria el mismo mecanismo, no me queda claro que necesitas  :huh:
saludos

Si, pero hay otra llamada voto que es donde pondria los votos por el id de la noticia.

Espero me hayas entendido.

Saludos!
En línea

Spider-Net


Desconectado Desconectado

Mensajes: 1.165


Un gran poder conlleva una gran responsabilidad


Ver Perfil WWW
Re: Un solo voto por usuario en PHP
« Respuesta #3 en: 5 Mayo 2011, 15:59 pm »

Crea una tabla con un log de votos, cada vez que un usuario vota una noticia guarda: id del usuario, id de la noticia y fecha en que se realiza la votación.

Luego cuando el usuario vota antes de sumar uno a la votación comprueba la tabla de logs y si existe un voto con el id del usuario para el mismo id de noticia, comprueba la fecha, si es igual al día de hoy entonces no permites el voto. Eso sería la parte lógica, es bastante fácil de implementar por eso no pongo el código, pero si tienes alguna duda pregunta y ya está.

No te recomiendo que uses cookies para eso. Las cookies se guardan del lado del cliente y son sumamente fáciles de manipular. Así que cualquier usuario con un mínimo de conocimientos podrá manipular tu sistema de votos, y además tu sistema tal cual está es vulnerable a sql injection, si no filtras el valor de las cookies antes de realizar cualquier consulta SQL. Puedes usar la función mysql_real_escape_string para filtrar el valor antes de realizar la consulta.
En línea

RedZer


Desconectado Desconectado

Mensajes: 666



Ver Perfil
Re: Un solo voto por usuario en PHP
« Respuesta #4 en: 5 Mayo 2011, 20:18 pm »

en la tabla voto no seque campos tengas pero de igual forma a la hora de votar guarda el id del usuario
y el id de la noticia asi cuando un usuario vaya a votar primero
verificas con una  consulta a la tabla votos para saber si existe el usuario y si ha votado en la misma noticia
algo asi
selec *from votos where id_usuario=usuario and id_noticia=id_noticia"la que estaras mostrando en ese momento para votar"
En línea

Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo
wirelesswifi

Desconectado Desconectado

Mensajes: 128



Ver Perfil WWW
Re: Un solo voto por usuario en PHP
« Respuesta #5 en: 6 Mayo 2011, 00:46 am »

Crea una tabla con un log de votos, cada vez que un usuario vota una noticia guarda: id del usuario, id de la noticia y fecha en que se realiza la votación.

Luego cuando el usuario vota antes de sumar uno a la votación comprueba la tabla de logs y si existe un voto con el id del usuario para el mismo id de noticia, comprueba la fecha, si es igual al día de hoy entonces no permites el voto. Eso sería la parte lógica, es bastante fácil de implementar por eso no pongo el código, pero si tienes alguna duda pregunta y ya está.

No te recomiendo que uses cookies para eso. Las cookies se guardan del lado del cliente y son sumamente fáciles de manipular. Así que cualquier usuario con un mínimo de conocimientos podrá manipular tu sistema de votos, y además tu sistema tal cual está es vulnerable a sql injection, si no filtras el valor de las cookies antes de realizar cualquier consulta SQL. Puedes usar la función mysql_real_escape_string para filtrar el valor antes de realizar la consulta.

Hola Spider-Net, sin fecha seria mejor solo como dijiste antes cuando haya el id del usuario y de la noticia ya no permita mas votos, ahora tengo la duda como seria el codigo solo se lo basico.

Otra forma sin cookies como seria?

El valor de las oookies es vulnerable a SQL Injection?

Bueno es todo.

Saludos!

RedZer, Gracias por la parte de select.

Saludos!
En línea

RedZer


Desconectado Desconectado

Mensajes: 666



Ver Perfil
Re: Un solo voto por usuario en PHP
« Respuesta #6 en: 6 Mayo 2011, 00:53 am »

Hola Spider-Net, sin fecha seria mejor solo como dijiste antes cuando haya el id del usuario y de la noticia ya no permita mas votos, ahora tengo la duda como seria el codigo solo se lo basico.

Otra forma sin cookies como seria?

El valor de las oookies es vulnerable a SQL Injection?

Bueno es todo.

Saludos!

RedZer, Gracias por la parte de select.

Saludos!
cuales son tus tablas que ocupas?? para darte ideas
En línea

Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo
wirelesswifi

Desconectado Desconectado

Mensajes: 128



Ver Perfil WWW
Re: Un solo voto por usuario en PHP
« Respuesta #7 en: 6 Mayo 2011, 01:48 am »

cuales son tus tablas que ocupas?? para darte ideas


En la tabla voto:

id
id_articulo
nick
votos

Como lo puse en el post.

Y en la de noticias:

id_articulo
titulo
contenido
....

Saludos!
« Última modificación: 6 Mayo 2011, 01:50 am por wirelesswifi » En línea

wirelesswifi

Desconectado Desconectado

Mensajes: 128



Ver Perfil WWW
Re: Un solo voto por usuario en PHP
« Respuesta #8 en: 6 Mayo 2011, 15:23 pm »

Ya lo he resuelto. :)

Ahora me queda otra duda, por ejemplo en el archivo votar.php?votar=idnoticia

Un usuario puede votar en las demas noticias que esten creadas.

Ejemplo:

votar.php?votar=1
votar.php?votar=2
votar.php?votar=3

Como haria para proteger eso?

Espero me ayuden

Saludos! y gracias por la ayuda.
En línea

xassiz~


Desconectado Desconectado

Mensajes: 457



Ver Perfil WWW
Re: Un solo voto por usuario en PHP
« Respuesta #9 en: 6 Mayo 2011, 15:34 pm »

Utilizando el método POST en vez de el GET.
En línea

Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda] Comprobar si usuario voto
PHP
wirelesswifi 8 4,199 Último mensaje 2 Noviembre 2010, 05:42 am
por juancho77
no puedo montar disco duro ntfs dice que solo usuario root puede
GNU/Linux
meme 1 3,381 Último mensaje 29 Diciembre 2010, 16:26 pm
por Bytheface
Crear BD en SQL SERVER que solo acceda un usuario
Bases de Datos
Zeroql 2 1,764 Último mensaje 14 Agosto 2012, 13:23 pm
por Zeroql
Emojli, donde el usuario se comunica sin palabras y sólo con emoticonos
Noticias
wolfbcn 0 613 Último mensaje 6 Julio 2014, 02:34 am
por wolfbcn
[Pregunta]: Sólo un usuario por vez
Desarrollo Web
Leguim 1 616 Último mensaje 4 Noviembre 2019, 09:58 am
por Agente Naranja
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines