Un solo voto por usuario en PHP

Iniciado por wirelesswifi, 5 Mayo 2011, 05:58 AM

0 Miembros y 3 Visitantes están viendo este tema.

wirelesswifi

Cita de: ~xassiz en  6 Mayo 2011, 15:34 PM
Utilizando el método POST en vez de el GET.

Ok xassiz, pero me podrias dar un ejemplo. :)

Saludos!

xassiz~

Pues en vez de poner un enlace a votar.php?votar=x pondrías un formulario:
Código (html4strict) [Seleccionar]

<form action="votar.php" method="POST">
<input type="hidden" name="id_articulo" value="<?php echo 'Rellenaríamos dinámicamente con PHP'?>">
<input type="submit" value="Votar">
</form>

Código (php) [Seleccionar]

<?php
//votar.php

$id_articulo = (int)$_POST['id_articulo'];

[...]

?>




Saludos!

RedZer

Cita de: wirelesswifi en  6 Mayo 2011, 17:01 PM
Ok xassiz, pero me podrias dar un ejemplo. :)

Saludos!
busca en google como evitar isql
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

Spider-Net

Cita de: wirelesswifi en  6 Mayo 2011, 00:46 AM

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!

Otra forma sin cookies sería usando consultas sql tal y como te hemos sugerido.

El valor de una cookie es fácilmente editable por el usuario, por lo que si directamente imprimes en la consulta el valor de la cookie puede ser que te encuentres que el valor de la cookie es una sentencia SQL específicamente preparada para alterar las tablas de tu base de datos y crear serios problemas en tu sistema.

Filtra el valor de las cookies SIEMPRE antes de usarlos en una consulta SQL.

wirelesswifi

#14
Cita de: Spider-Net en  7 Mayo 2011, 01:26 AM
Otra forma sin cookies sería usando consultas sql tal y como te hemos sugerido.

El valor de una cookie es fácilmente editable por el usuario, por lo que si directamente imprimes en la consulta el valor de la cookie puede ser que te encuentres que el valor de la cookie es una sentencia SQL específicamente preparada para alterar las tablas de tu base de datos y crear serios problemas en tu sistema.

Filtra el valor de las cookies SIEMPRE antes de usarlos en una consulta SQL.

Ok, Spider-Net filtrare las cookies una duda en vez de cookies puedo usar sesiones?

Puedo usar mysql_real_escape_string?




Gracias xassiz ya solucione el problema.

Saludos!

xassiz~

De nada. Y claro, usa mysql_real_escape_string(), cerrando siempre el valor entre comillas simples.

Código (php) [Seleccionar]

$sql="SELECT COUNT(nick) from voto WHERE nick='".mysql_real_escape_string($_cookie[usuario])."'";


wirelesswifi

Ok, muchas gracias por la ayuda xassiz y a todos.

Saludos!  ::)

wirelesswifi

Disculpen si hago otra pregunta, pero como haria que el propio autor del tema no pueda votar, solo los demas usuarios?

Saludos!

xassiz~

Código (php) [Seleccionar]
$autor = mysql_query("SELECT autor FROM noticias WHERE id_articulo=".(int)$_POST['id_articulo']);

if($autor == $_SESSION['nick']) die("Eres el autor..");


Algo así :rolleyes:

wirelesswifi

Cita de: xassiz~ en  8 Mayo 2011, 13:00 PM
Código (php) [Seleccionar]
$autor = mysql_query("SELECT autor FROM noticias WHERE id_articulo=".(int)$_POST['id_articulo']);

if($autor == $_SESSION['nick']) die("Eres el autor..");


Algo así :rolleyes:

Gracias de nuevo, si era eso :)

Pero tuve que cambiar $_SESSION por $_COOKIE para que funcionara, como haria para dejar el login por $_SESSION?

cambiando $_COOKIE por $_SESSION?

Saludos! y disculpas.