Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/08/2009, 14:46
Avatar de MrChuky
MrChuky
 
Fecha de Ingreso: agosto-2009
Mensajes: 4
Antigüedad: 14 años, 8 meses
Puntos: 0
Insertar datos de los campos de texto en MySQL junto con tiempo

Hola a todos

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_pconnectmySQL_hostnamemySQL_usernamemySQL_password )
    or die( 
'Error connecting to mysql<br><br>'.mysql_error() );

  
$db_select mysql_select_dbmySQL_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&aacute;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>';

  }
?>
Y este es el formulario:

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\">&nbsp;&nbsp;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
}
?>
Funciona bien pero es inseguro, haber si alguien me puede ayudar con lo del temporizador, estaría agradecido