Autor Tema: [Ayuda] Esperar 5 minutos despues de comentar  (Leído 419 veces)

Desconectado pixelway

  • PHPerit@
  • *
  • Mensajes: 6
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
[Ayuda] Esperar 5 minutos despues de comentar
« en: 07 de Enero de 2012, 23:40:32 pm »
Hola, es que tengo un problema, al iniciar yo hacia que solo se pudiera un comentario por ip, pero de esa manera no era muy agradable, entonces quite lo de la ip, desde entonces e visto que pueden hacer spam en los comentarios. ¿Pueden ayudarme?
Necesito que el usuario despues de comentar para hacer otro comentario deba esperar 5 Minutos.
Como base tengo el siguiente codigo:

Código: [Seleccionar]
<?php
require_once(&#39;funciones.php&#39;);


//Recibir
$contenido strip_tags($_POST[&#39;contenido&#39;]);
$nombre strip_tags($_POST[&#39;nombre&#39;]);
$ip $_SERVER[&#39;REMOTE_ADDR&#39;];
$horaactual time();



$meter = @mysql_query(&#39;INSERT INTO comentarios (contenido,nombre,ip) values ("&#39;.$contenido.&#39;","&#39;.$nombre.&#39;","&#39;.$ip.&#39;")&#39;);
if($meter)
{
echo &#39;<script>window.location="index.php"</script>&#39;;
}else{
echo &#39;No se pudo agregar comentario.<br />&#39;;
}




?>
Y alli esta $horaactual = time(); creo que con eso se podria hacer algo :P
espero su comentario para que me ayuden

Comunidad PHPeros

[Ayuda] Esperar 5 minutos despues de comentar
« en: 07 de Enero de 2012, 23:40:32 pm »

Desconectado Atrix

  • PHPer@
  • **
  • Mensajes: 69
  • Karma: 2
  • Sexo: Masculino
  • Ah..?
    • Ver Perfil
Re:[Ayuda] Esperar 5 minutos despues de comentar
« Respuesta #1 en: 09 de Enero de 2012, 02:11:11 am »
Símplemente tendrías que ponerle un captcha para evitar el Spam (si no son bots, se que es muy tedioso' estar escribiendo codigos de captcha para spammear), pero si insistes, sólo tendrías que crear una sesión en el envio de comentario y asignarle con la función time() para que caduque en un tiempo.

Desconectado FeDe

  • PHPero Avanzado
  • ****
  • Mensajes: 448
  • Karma: 35
  • Sexo: Masculino
  • BaDyDj -> ¡Mi Stylo, Mi ViDa!
    • Ver Perfil
Re:[Ayuda] Esperar 5 minutos despues de comentar
« Respuesta #2 en: 11 de Enero de 2012, 17:47:58 pm »
Buenas,

Lo primero debes añadir en la tabla "comentarios" un valor llamado time_lastmsg por ejemplo, le voy a llamar así.
Y lo que vamos a hacer es comprobar el último comentario de la IP y sacaremos el TIME ; si la diferencia de time actual menos la de time, supera los 300 segundos (5 minutos por 60 segundos = 300 segundos) entonces le dejamos postear, sino le mandamos error.

<?php
require_once(&#39;funciones.php&#39;);


//Recibir
$contenido strip_tags($_POST[&#39;contenido&#39;]);
$nombre strip_tags($_POST[&#39;nombre&#39;]);
$ip $_SERVER[&#39;REMOTE_ADDR&#39;];

if($time = @mysql_result(mysql_query("SELECT time_lastmsg FROM comentarios WHERE ip=&#39;".$ip."&#39;"),0)) {
	
if(((
$now=time())-$time)>300) {
	
	
if(@
mysql_query("INSERT INTO comentarios (contenido,nombre,ip,time_lastmsg) VALUES (&#39;".$contenido."&#39;,&#39;".$nombre."&#39;,&#39;".$ip."&#39;,&#39;".$now."&#39;)")===true) echo &#39;<script>window.location="index.php"</script>&#39;; else echo &#39;No se pudo agregar comentario.<br />&#39;;
	
} else echo 
"Solo se permite un mensaje cada 5 minutos.";
        } else die(
"<b>Error MySQL:</b> ".mysql_error());

?>


Quedaría algo así, he optimizado un pelín el código con tu permiso jejeje ^^

Un abrazo :D
« Última modificación: 11 de Enero de 2012, 17:50:20 pm por FeDe »
Sin Firma me haces una? :P