Tengo un formulario que envía a una base de datos una señal de puntos, me refiero a que hay registrados una serie de nicks y en el formulario se pide nombre de cuenta y nick, donde coincidan se le suman 2 puntos en otra columna de la tabla.
Lo que quiero hacer es que si coincide el nombre de la cuenta o el nick no permita volver a enviar los puntos durante 6 horas despues de haberlo enviado la primera vez.
Puse que metiera una cookie que durase 6 horas y funciona pero es bastante inseguro ya que si se borra la cookie, fácilmente pueden volver a sumarse puntos, es por eso que quiero añadir otra columna más a la tabla de la base de datos donde se especifique de alguna forma un contador.
Y bueno lo que queda lo pueden deducir, si intenta enviar los puntos, que se revise el contador y hasta que no llegue a 0 no puedan enviar el formulario.
Mi pregunta es cómo hacer este contador.
Este es el código php que hace que reaccione el formulario:
Código PHP:
<?php
if( isset($_POST['cooki'])){
setcookie("cookie[voto]", "cookievoto", time()+21600);
}
?>
<?php
define('mySQL_hostname', 'host'); //database IP
define('mySQL_database', 'base_de_datos'); //database name
define('mySQL_username', 'usuario'); //database user
define('mySQL_password', 'pass'); //database password
$user = $_POST["user"];
$cuenta = $_POST["cuenta"];
$db_link = mysql_pconnect( mySQL_hostname, mySQL_username, mySQL_password )
or die( 'Error connecting to mysql<br><br>'.mysql_error() );
$db_select = mysql_select_db( mySQL_database, $db_link )
or die( 'Error connecting to Database<br><br>'.mysql_error() );
if ($user == ''){ print'Introduzca su personaje. <br><a href="javascript:history.back()"> Volver Atrás</a>'; mysql_close(); }
else {
$db_add = mysql_query( "UPDATE `characters` SET `vote` = vote+2 WHERE `char_name` = '$user' and `account_name` = '$cuenta'" )
or die( 'Error: '.mysql_error() );
print '<style>a, a:link, a:visited { color: #578459; }</style><font color="#7a9382" face="Verdana, Arial, Helvetica, sans-serif" size="-1">Puntos adquiridos.</font><br><a href="home.php" target="_top">Terminar</a>';
}
?>
Código PHP:
<?php
if (isset($_COOKIE['cookie'])) {
foreach ($_COOKIE['cookie'] as $nombre => $valor) {
echo "<br><b><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"-2\" color=\"#f1ef5d\"> Ya has votado</font></b>";
}
}
else
{ ?>
<br>
<form action="votar.php" method="post" id="VotoForm" style="display: none;">
<table <tr><td>
<font face="Verdana, Arial, Helvetica, sans-serif" size="-1">Cuenta:</font></td><td> <input type="text" name="cuenta" id="l2_acc" class="campo"></td></tr><tr><td>
<font face="Verdana, Arial, Helvetica, sans-serif" size="-1">Personaje:</font></td><td> <input type="text" name="user" id="l2_char" class="campo"><br></td></tr><tr><td colspan="2"><center>
<br><input type="submit" id="submit" name="cooki" value="Obtener puntos" class="boton" type="submit">
</center>
</td></tr>
</table>
</form>
<?php
}
?>
![sonriente](http://static.forosdelweb.com/fdwtheme/images/smilies/smile.png)