Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/10/2014, 20:48
DiegoEscobar
 
Fecha de Ingreso: octubre-2014
Mensajes: 38
Antigüedad: 10 años, 1 mes
Puntos: 0
Como definir un campo temporal en PHP

Buenas noches a todos.

Necesito ayuda con un código que estoy utilizando para evitar el spam a la hora de que los usuarios realizan publicaciones en mi web.

El código mas o menos funciona así:

1.- Saca la diferencia en segundos de la ultima fecha de publicación del usuario a la fecha actual (en la cual se esta realizando la publicación).

2.- Si la diferencia es de "60" (segundos) o más procesa la publicaciones pero si es menor de 60 la diferencia manda un mensaje avisando que debe esperar 60 segundos para hacer una nueva publicación.

El problema llega cuando un usuario nuevo realiza su primera publicación, puesto que el código no encontrara 'La fecha de la ultima publicación'. Y mi pregunta es ¿Que me recomiendan cambiar en mi código para que procese la publicación? ¿O el código no funcionaría?

Aquí el código:

Código PHP:
$query =    "SELECT * FROM publicaciones WHERE autor = '".$autor."' ORDER BY fecha DESC LIMIT 1";
    
$result =    mysql_query($query) or die(mysql_error());
    while (
$pub mysql_fetch_array($result)){    

    
$segundos strtotime(date("Y-m-d h:i:s")) - strtotime($pub['fecha']);
 
    
$dias floor($segundos 86400);
    
$horas floor(($segundos - ($dias 86400)) / 3600);
    
$minutos floor(($segundos - ($dias 86400) - ($horas 3600))/60);
    
$diferencia floor(($segundos - ($dias 86400) - ($horas 3600) - ($minutos 60)));
    
    if (
$diferencia <= 60)
    {
        echo 
"<p>Debes esperar un minuto para poder realizar otra publicación</p>";
        echo 
"<a href=\"javascript:window.history.back();\">Regresar</a>";
    }

    else {
        echo 
"<br />Publicado";
    }} 
Gracias a todos.