Foros del Web » Programando para Internet » PHP »

Limitar el mumero de veces al dia que se puede enviar un formulario mediante php

Estas en el tema de Limitar el mumero de veces al dia que se puede enviar un formulario mediante php en el foro de PHP en Foros del Web. Tengo este scipt php que recoge los datos de un sencillo formulario para que los visitantes de mi web se envien correos entre ellos: <?php ...
  #1 (permalink)  
Antiguo 03/07/2005, 18:36
 
Fecha de Ingreso: diciembre-2004
Mensajes: 149
Antigüedad: 13 años
Puntos: 0
Limitar el mumero de veces al dia que se puede enviar un formulario mediante php

Tengo este scipt php que recoge los datos de un sencillo formulario para que los visitantes de mi web se envien correos entre ellos:



<?php
mail("$CORREO", "Mensaje desde la web",
"Hola $NOMBRE,
$NOMBRE2 ha visto tu perfil la web y te ha enviado este mensaje:

=====================================

$MENSAJE

",
"From: $CORREO2\r\n" .
"Reply-To: $CORREO2\r\n" .
"X-Mailer: PHP/" . phpversion());
?>


Temo que algún gracioso pueda utilizrlo apra enviar spam o moletar a alguno de los usuarios.

Mi pregunta es:

¿Se podría limitar en en este script el número de mensajes que puede enviar una perosna en un periodo de tiempo, pro ejemplo que cada persona puede enviar 5 mesnajes como máximo en un periodo de 24 horas?

¿Se podría hacer via IP, o por cookies o de alguna otra forma?

Gracias
  #2 (permalink)  
Antiguo 03/07/2005, 19:59
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 13 años, 11 meses
Puntos: 2
Creo q tienes dos buenas formas de solucionarlo. Una sería directamente tomar la IP del q envía el msj, guardarla en la DB y consultar cuando alguien quiere enviar un msj si ya en vío o no antes. Si envío puedes, en un campo ir sumando 1 para cada msj hasta q llegue a 5, cuando esto suceda le explicas al usuario q no puede enviar más msjs. El tema de la hora es facil, guardas con NOW() o date() de PHP la fecha en q el usuario envió el primer msj, cuando quiera enviar otro consultas la misma con la hora y dia actual y si han pasado 24 horas desde su primer msj, está en condiciones de enviar nuevamente cinco.
Pero lo ideal en cuanto a velocidad y no generar tráfico en exceso en mysql creo q seria usar cookies, aunque esto no es un 100% efectivo porq el usuario puede bloquearlas.
Saludos cuidate
__________________
Dios dira que esto no es justo, pero lo sera...
  #3 (permalink)  
Antiguo 04/07/2005, 05:00
 
Fecha de Ingreso: diciembre-2004
Mensajes: 149
Antigüedad: 13 años
Puntos: 0
Hola Sebtev:

Muchas gracias por tu respuesta. Resulta que soy novato en estos menesteres y aún no sé muy bien como utilizar la base de datos. ¿Se podría hacer de forma más fácil? ¿Hay algún script ya hecho que sirva para esto?

Muchas gracias.
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 21:45.