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";
}}