Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Como definir un campo temporal en PHP

Estas en el tema de Como definir un campo temporal en PHP en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 23/10/2014, 20:48
 
Fecha de Ingreso: octubre-2014
Mensajes: 38
Antigüedad: 9 años, 6 meses
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.
  #2 (permalink)  
Antiguo 23/10/2014, 20:58
 
Fecha de Ingreso: octubre-2014
Mensajes: 38
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Como definir un campo temporal en PHP

Ya lo he solucionado le agregue: ' OR autor = "Bot" '

Y en mi tabla agregue una publicación donde el autor es "BOT" y de este usuario se toma la fecha de la publicación si no se encuentra la "ultima publicacion" del usuario nuevo.

Ahora tengo otra duda ¿Este método para evitar el SPAM tiene alguna debilidad? o le hace falta agregarle algo?

Etiquetas: campo, definir, fecha, mysql, select, sql, temporal, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:28.