Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/04/2007, 16:32
Avatar de hey_alan
hey_alan
 
Fecha de Ingreso: diciembre-2006
Ubicación: México
Mensajes: 348
Antigüedad: 17 años, 3 meses
Puntos: 8
Exclamación Envios duplicados en un formulario

Hola a todos.

Hice un script de formulario, basado en el que viene en el faq, y lo he modificado un poco.

He insertado el codigo php de action.php (el nombre del archivo con la accion del envio), y le he agregado un javascript para que redireccione después de unos segundos.

El problema es, que de alguna forma, aunque solo haga click una vez en "enviar" envia correos duplicados, es decir, cuando alguien me manda un mail atravéz del formulario, me llegan 2 ó 3 mensajes iguales. ¿Como lo puedo arreglar?

Este es el código:

Código:
<?php 
$sfrom=$_GET["email"]; //cuenta que envia el mail
$sdestino="[email protected]"; //cuenta que recibira el mail
$ssubject=$_GET["asunto"]; //el asunto del mensaje
if ($ssubject==""){$ssubject="Formulario de Envio";} //Asiga un asunto en caso de no haber alguno
$scomentario=$_GET["comentario"]; //Asigna el comentario a la variable scomentario
$shtml="Nick: ".$_GET["nombre"]."\n\nComentario:\n\n".$scomentario."\n\n"; //el nick y el comentario
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n";
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n";

if (strstr($sfrom, "@")) { //comprueba que el string insertado en email contenga el simbolo '@'
if ($scomentario==""){echo "<center><strong>Debes insertar un comentario</strong></center>";}else{
mail($sdestino,$ssubject,$shtml,$sheader); //Finalmente, manda el correo
echo "<center><strong>Su mensaje ha sido enviado.</strong><br />En unos momentos ser&aacute; redireccionado</center>";
}
}else{ echo "<center><strong>Debes insertar una direcci&oacute;n email valida</strong></center>";}

?> 
<script LANGUAGE="JavaScript">
var pagina="contacto.php"
function redireccionar() 
{
location.href=pagina
} 
setTimeout ("redireccionar()", 10000);
</script>
Otra cosa: Habia intentado verificar que la variable de comentario contenga algo en el string, con el simbolo de not (!), de esta forma:
if !($scomentario==""){
pero no funciono... no se que estaria haciendo mal al poner el simbolo. Quite el simbolo y acomode las cosas de otro modo y funciono. Solo quiero saber porque esta mal que ponga 'not' de esta manera.

De ante mano, muchisimas gracias...