Foros del Web » Programando para Internet » PHP »

Flood Email

Estas en el tema de Flood Email en el foro de PHP en Foros del Web. Buenas tengo un formulario el cual esta hecho en php y html lo que yo quiero es evitar el flood y lograr borrar los datos ...
  #1 (permalink)  
Antiguo 05/08/2003, 17:54
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
Flood Email

Buenas tengo un formulario el cual esta hecho en php y html
lo que yo quiero es evitar el flood y lograr borrar los datos del formulario que se enviany aparezca una ventanita de confirmacion.

Es un formulario de recomendacion y aca esta el code
formulario

<form method="POST" action="recomendar.php">
<font class="content">Recomienda este sitio a un amigo:</font><br>
<font class="content">Tu nombre:</font>
<input type="text" name="tunombre" size="20" class=gobutton><br>
<font class="content">Tu email:</font><br>
<input type="text" name="tuemail" size="20" class=gobutton><br>
<font class="content">Nombre de tu amigo:</font><br>
<input type="text" name="nombreamigo" size="20" class=gobutton><br>
<font class="content">Email de tu amigo:</font><br>
<input type="text" name="emailamigo" size="20" class=gobutton><br>
<br>
<input type="submit" value="Recomendar" name="B1" class=gobutton></p>
</form>
y aqui el :
recomendar.php
Código PHP:
<?
// Completamos la variable $asunto con el título del mensaje
// y armamos el mensaje dentro de la variable $mensaje
$asunto "Un amigo te recomienda ******** ";

$mensaje "Hola ".$nombreamigo.", tu amigo ".$tunombre." recomienda
que ingreses al sitio [url]www.latinparadise.org[/url]"
;

// Utilizamos la función mal() de PHP para realizar el envío
// del mensaje
mail($emailamigo$asunto$mensaje"From: ".$tuemail);
?>
<html>
<head><title>Recomendarnos</title></head>
<body>
Muchas gracias por recomendarnos.
</body>
</html>
A ver una manito :d
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #2 (permalink)  
Antiguo 05/08/2003, 18:08
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
Lo que quiero lograr es algo asi

http://www.bellsouthim.net.pe
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #3 (permalink)  
Antiguo 05/08/2003, 18:31
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 8 meses
Puntos: 8
Deberias preguntar por el foro de javascript, pues eso es lo que buscas...
  #4 (permalink)  
Antiguo 05/08/2003, 20:25
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
ok

Pero espero me entiendan ya que ta,bien lleva php, hace tiempo vi en los foros una respuesta de camargo, pero no lo encuentro , pues el formulario flodea y puede ser usado con malas intenciones
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #5 (permalink)  
Antiguo 05/08/2003, 21:05
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 2 meses
Puntos: 5
Perdon...



Que es el flood? o que es flodear y como eso puede usarse con malas intenciones?

Gracias!
__________________
Manoloweb
  #6 (permalink)  
Antiguo 05/08/2003, 22:39
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 8 meses
Puntos: 8
Si quieres que se abra una nueva ventana, usas javascript. ¡es javascript!
Fijate en el source de la pagina que pusiste de ejemplo. El tag <form> llama a una funcion javascript que : 1-valida el formulario 2-lo limpia 3-envia las variables rellenadas en los campos a una ventana.
Claro que usas PHP, pero solo para el proceso del formulario.
A ver si queda claro: el javascript abre una nueva ventana con la pgina .php a la que le envia los datos del formulario.
  #7 (permalink)  
Antiguo 06/08/2003, 14:14
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
Flood

es conocido como ustedes como spam, hablo de flood cuando intentan llenar tu correo con emails basura y satura el correo

por eso es que quiero que se borre cada vez que lo envio
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #8 (permalink)  
Antiguo 06/08/2003, 14:22
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
mi problema es que envia el formulario de recomendacion pero
si ustedes dan atras y vuelven a enviarlo sigue enviando emails, asi
cuantas veces quieras..!!!
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #9 (permalink)  
Antiguo 06/08/2003, 14:54
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Prueba a poner un value="" a todos los input:

<input type="text" name="tunombre" size="20" value="" class=gobutton>

Asi creo que te vacia los campos del formulario.

Aunque creo que lo que quieres es que no te reenvie cuando hagan un refresh de recomendar.php. Pra eso tienes que redireccionar despues de enviar al email. Algo asi:
Código PHP:
<?
if (!isset($_GET['ok'])) {
// Completamos la variable $asunto con el título del mensaje

// y armamos el mensaje dentro de la variable $mensaje

$asunto "Un amigo te recomienda ******** ";



$mensaje "Hola ".$nombreamigo.", tu amigo ".$tunombre." recomienda

que ingreses al sitio <a href="
/out.php?http%3A%2F%2Fwww.latinparadise.org" target="_blank">[url]www.latinparadise.org[/url]</a>";



// Utilizamos la función mal() de PHP para realizar el envío

// del mensaje

mail($emailamigo$asunto$mensaje"From: ".$tuemail);

header("Location: recomendar.php?ok=1");
exit;
} else {

?>

<html>

<head><title>Recomendarnos</title></head>

<body>

Muchas gracias por recomendarnos.

</body>

</html>
<?php
}
?>
Asi, como mucho podran recargar recomendar.php?ok=1 , que no envia el email. La unica forma de recibir el email es por el submit del formulario.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #10 (permalink)  
Antiguo 06/08/2003, 19:01
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
el problema no esta en recomendar :

el problema veo que esta en el formulario, puesto
que si tu das click atras y lo vuelves a enviar, lo vuelve a enviar la
mismo info y asi saturarias el email de la persona ...

mira el ejemplo esta aqui

www.sparkhost.com/~chesteral

llenalo y pon tu email el que va a recibir la recomendacion y envialo
das atras en el navegador y envialo asi una y otra vez.

Viste el problema

quiero algo asi mas o menos
www.bellsouthim.net.pe

ya he bajado esa pagina y he probado el codigo pero es largote por
eso no lo pego aqui


Muchas gracias a todos .

P.D "me propones una mejor manerar de recomendar una pagina
sin molestar al receptor del email?

ya sabes por el tremendo spam que causaria"

Espero me hayan entendido
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #11 (permalink)  
Antiguo 06/08/2003, 23:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Para evitar que al "dar hacia atras" vuelvas a ejecutar el script donde realizas el envio del e-mail .. tienes que redireccionar a otra página (o si misma) para que pierdas las varibles que viajan por POST.

El redireccionamiento lo debes hacer con header("location: pagina_gracias.html") .. por poner un ejemplo o a si misma con una variable de control (como creo que te ha sugerido josemi) ..

Luego .. para que no te usen el script de recomendación desde otras webs, puedes usar vários métodos ..

1) sesiones .. el Más seguro .. Generas una variable de sesión al entrar al formulario de recomendación --> la verificas en el script (o parte del proceso) que haga el envio de la recomendación .. al terminar el proceso .. borras la sessión y redirccionas a la página "gracias" o a si mismo con otra variable de control (o con la misma variable de sesión ..)

2) Si no quieres usar sessiones (ni cookies que sería otra opció más) .. Usa algo tipo: (se usa una exp. regular para ver si la cadena del HOST es la misma que lo llamó (el HTTP_REFERER) .. osease .. que el script es llamado desde una página de nuestro servidor ..)

Código PHP:
<?
if (!@eregi($_SERVER['HTTP_HOST'],$_SERVER['HTTP_REFERER'])){
    
header ("location: seguridad.php");
    exit;
}
?>
(Esto no es ifalible .. se puede "engañar" fácilmente el "HTTP_REFERER")

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 09/08/2003, 09:16
 
Fecha de Ingreso: agosto-2003
Mensajes: 102
Antigüedad: 20 años, 8 meses
Puntos: 0
otra opcion es guardar la ip y la hora de la persona que envia un mail en la bd... y que antes de enviar un mail, compruebe si esa ip ha enviado ya un mail digamos en un tiempo menor de 5 minutos o 10, eso al gusto... y si es asi, no procesar la funcion mail, no pudiendo hacer spam...

simplificado seria:

1. Envian el formulario.
2. Compruebas si ese usuario ya ha puesto un mail en los ultimos minutos.
3.1 Si es que si. Error
3.2 Si no, envias el mail. Y añades la ip de la persona en la bd.


creo que asi ya no se podra hacer spam... bueno si esa persona cambia de ip si, entonces siempre puedes limitar este servicio a usuarios registrados, y a la hora de guardar en la bd, guardarias su nombre de usuario y comprabarias este y la ip, siendo entonces casi imposible de franquear.
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 23:37.