Foros del Web » Programando para Internet » Javascript »

Formulario con ALERT

Estas en el tema de Formulario con ALERT en el foro de Javascript en Foros del Web. Pues que no consigo que me salga el Alert,si le pongo el Alert me dice que no puede hacer el header location y si le ...
  #1 (permalink)  
Antiguo 20/11/2008, 04:51
 
Fecha de Ingreso: diciembre-2007
Mensajes: 200
Antigüedad: 16 años, 11 meses
Puntos: 10
Formulario con ALERT

Pues que no consigo que me salga el Alert,si le pongo el Alert me dice que no puede hacer el header location y si le quito el header location el formulario se me descuadra y se hace mas pequeño,el formulario lo envio a la misma pagina.

Lo que quiero es que me saque el alert y no se me descuadre la pagina.alguna ayuda?


Código PHP:
<?php if(isset($_POST['submit'])) {
$name=$_POST['nombre'];
$email=$_POST['email'];
$message=$_POST['mensaje'];

$msg "DATOS RECIBIDOS:<br>\n";
$msg .= "Nombre: $name<br><br>\n";
$msg .= "E-mail: $email\n<br><br>";
$msg .= "Mensaje: $message\n<br><br>\n\n";

        
$to "[email protected]";
        
$subject "totilo mensaje";
        
$mailheaders "MIME-Version: 1.0\r\n";
        
$mailheaders .= "Content-type: text/html; charset=utf-8\r\n"
        
$mailheaders .= "From: $email\n";
        
$mailheaders .= "Reply-To: $email\n\n";
        
        
mail($to$subject$msg$mailheaders);
?>
<script language="JavaScript" type="text/javascript">
alert("Mensaje enviado");
</script>
<?
header
('Location: index2.php');
}
?>
  #2 (permalink)  
Antiguo 20/11/2008, 05:33
Avatar de genuine_carlosV2  
Fecha de Ingreso: noviembre-2008
Ubicación: 127.0.0.1
Mensajes: 296
Antigüedad: 16 años
Puntos: 6
Respuesta: Formulario con ALERT

Cualquier cosa que escribas con el comando 'header', está referido a la cabecera de la página. En otras palabras, está referido a antes de enviar la página.

Cuando un navegador solicita una web, primero se le envian las cabeceras de dicha web y luego la información propia de la web.

En tu caso, estas enviando texto (el script) de la web antes que la cabecera, por eso no puede ejecutar la cabecera. Si usas 'header', tienes que vigilar de NO ESCRIBIR NADA en la web antes de usarlo, ello incluye, ningún echo, ningún tag ni siquiera un espacio en blanco antes de la llamada a PHP.

Para solucionar esto, te propongo dos modos:
1) Quita el header y has la redirección con JavaScript:
Código:
<?php if(isset($_POST['submit'])) {
$name=$_POST['nombre'];
$email=$_POST['email'];
$message=$_POST['mensaje'];

$msg = "DATOS RECIBIDOS:<br>\n";
$msg .= "Nombre: $name<br><br>\n";
$msg .= "E-mail: $email\n<br><br>";
$msg .= "Mensaje: $message\n<br><br>\n\n";

        $to = "[email protected]";
        $subject = "totilo mensaje";
        $mailheaders = "MIME-Version: 1.0\r\n";
        $mailheaders .= "Content-type: text/html; charset=utf-8\r\n"; 
        $mailheaders .= "From: $email\n";
        $mailheaders .= "Reply-To: $email\n\n";
        
        mail($to, $subject, $msg, $mailheaders);
?>
<script language="JavaScript" type="text/javascript">
alert("Mensaje enviado");
location.href = "index2.php";
</script>
?>
2) Pon el alert en la página 'index2.php' y, por supuesto, borra el script de esta web de modo que quedaría así:
Código:
<?php if(isset($_POST['submit'])) {
$name=$_POST['nombre'];
$email=$_POST['email'];
$message=$_POST['mensaje'];

$msg = "DATOS RECIBIDOS:<br>\n";
$msg .= "Nombre: $name<br><br>\n";
$msg .= "E-mail: $email\n<br><br>";
$msg .= "Mensaje: $message\n<br><br>\n\n";

        $to = "[email protected]";
        $subject = "totilo mensaje";
        $mailheaders = "MIME-Version: 1.0\r\n";
        $mailheaders .= "Content-type: text/html; charset=utf-8\r\n"; 
        $mailheaders .= "From: $email\n";
        $mailheaders .= "Reply-To: $email\n\n";
        
        mail($to, $subject, $msg, $mailheaders);
header('Location: index2.php');
}
?>
Tu eliges.

Un saludo ;)
  #3 (permalink)  
Antiguo 20/11/2008, 08:06
 
Fecha de Ingreso: diciembre-2007
Mensajes: 200
Antigüedad: 16 años, 11 meses
Puntos: 10
Respuesta: Formulario con ALERT

Muchas gracias por tu respuesta,muy bien explicado he usado la misma forma porque index2.php es la misma pagina en donde está el formulario.
  #4 (permalink)  
Antiguo 20/11/2008, 16:06
Avatar de genuine_carlosV2  
Fecha de Ingreso: noviembre-2008
Ubicación: 127.0.0.1
Mensajes: 296
Antigüedad: 16 años
Puntos: 6
Respuesta: Formulario con ALERT

De nada ;)

Tu problema, creo yo, lo hemos tenido todos los que empezamos a dar nuestros pasitos con las webs. Al menos yo me estuve liando un buen tiempo hasta que un amigo me echó una mano y me lo explicó.

Ya sabes, aprende y enseña. Un saludo, amigo ;)
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 18:49.