PHP-Hispano.net Comunidad hispana de desarrollo web
Darse de alta en la web | Recuperar password   
Inicio / Foros / PHP / Redireccionar despues de enviar formulario.

Redireccionar despues de enviar formulario.

13 respuestas 46731 visitas Categoría PHP

Redireccionar despues de enviar formulario.

Avatar de Quique

Nivel 1 (3 posts)

* * * * * * *

0 Agradecimientos

#0 Offline Quique 29 abr 05
Hola:

Llevo unos dias intentando solucioar un problemilla; quiero que una vez que envio un formulario se redireccione el explorador a otra página.

El formulario lo tengo en un html, y al dar al botón llamo a un php, desde este php es desde donde quiero ir a una web dada.

El codigo del form.php es:

<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
</head>
<body>
<?PHP
$to = \"correo@correo.com\";
$nombre = \"$txtNombre\";
$telefono = \"$txtTelefono\";
$email = \"$txtEmail\";
$promocion = \"$ListaPromo\";
$zona = \"$txtZona\";
$precio = \"$txtPrecio\";
$msg .= \"\\nNombre: \".$nombre.\"\\r\\n\";
$msg .= \"Telefono: \".$telefono.\"\\r\\n\";
$msg .= \"e-mail: \".$email.\"\\r\\n\";
$msg .= \"Promocion: \".$promocion.\"\\r\\n\";
$msg .= \"Zona Preferida: \".$zona.\"\\r\\n\";
$msg .= \"Precio no superior a: \".$precio.\"\\r\\n\";
mail($to, \"Consulta desde la web\", $msg);
header(\"Location: http://www.pgina.com\");
?>
</body>
</html>

El error que pega es:

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhost/pagina.com/home/html/pagina/form.php:6) in /var/www/vhost/pagina.com/home/html/pagina/form.php on line 22

He quitado las etiquetas de head, de html y de todo, y no hay manera de arreglarlo.

Supongo que estaréis hasta las narices de este tipo de solucionar este problema, pero es que me he atrancado aqui, y de aqui o salgo.

Espero que me podáis ayudar, muchísimas gracias a todos, un saludo.

Re: Redireccionar despues de enviar formulario.

Avatar de klaus201

Nivel 1 (30 posts)

* * * * * * *

0 Agradecimientos

#1 Offline klaus201 29 abr 05 0 personas consideran útil este post.
Puedes hacerlo con javascript tb, pero es más cutre ?

en lugar del header que te va a petar por haber enviado al navegador codigo, usa el location.

<script>
window.location.href=\'http://www.paginadestino.com\';
</script>

no se si funcionará

Re: Redireccionar despues de enviar formulario.

Avatar de Quique

Nivel 1 (3 posts)

* * * * * * *

0 Agradecimientos

#2 Offline Quique 29 abr 05 0 personas consideran útil este post.
Si que funciona, así lo tenía hecho, pero me gustaría hacerlo en PHP, se que se puede y además es un poco mas mejor,no? jeje.

Muchas gracias por tu respuesta, a ver si alguien puede decirme como hacerlo en PHP.

Gracias a todos!!!

Re: Redireccionar despues de enviar formulario.

Avatar de nils

Nivel 2 (200 posts)

* * * * * * *

1 Agradecimientos

#3 Offline nils 29 abr 05 0 personas consideran útil este post.
el header, lo tienes que poner antes de cualquier salida al navegador.

Re: Redireccionar despues de enviar formulario.

Avatar de Quique

Nivel 1 (3 posts)

* * * * * * *

0 Agradecimientos

#4 Offline Quique 30 abr 05 0 personas consideran útil este post.
Muchas gracias por tu respuesta nils, pero pasa una cosa; no tengo ni idea de esto y el problema es que no se que linea es una salida al navegador.

Siento la torpeza, pero espero que me lo podais explicar.

Gracias y un saludo.

Re: Redireccionar despues de enviar formulario.

Avatar de infinit

Nivel 3 (211 posts)

* * * * * * *

1 Agradecimientos

#5 Offline infinit 30 abr 05 0 personas consideran útil este post.
Cualquier cosa que se muestre al navegador, un espacio es una salida, cualquier html. Los headers tienen que estar antes de todo

InfinitML - Blog con infomación (in)util y desvarios varios.

Gerald

Avatar de Gerald

Nivel 2 (186 posts)

* * * * * * *

0 Agradecimientos

#6 Offline Gerald 30 abr 05 0 personas consideran útil este post.
Un espacio en blanco quizas :D
http://www.php.net/header

redirección

Avatar de kano

Nivel 1 (1 posts)

* * * * * * *

0 Agradecimientos

#7 Offline kano 09 nov 06 0 personas consideran útil este post.
Hola!!

Se que ya es algo tarde para el que puso el post, pero espero que le sirva a la gente que entre despues. :)

<?php echo \"<META HTTP-EQUIV=\\\"Refresh\\\" CONTENT=\\\"0;URL=http://www.tusitio.com/nueva_pagina.php\\\">\"; ?>

ese código lo pones despues del codigo que quieras que haga tu página ej.

<html>
<head><title>pagina antigua</title></head>
<body>
//código html ó php ó nada :P
<form>
</form>
//código html ó php ó nada :P
//por último y antes del fin del body pones tu código
<?php echo \"<META HTTP-EQUIV=\\\"Refresh\\\" CONTENT=\\\"0;URL=http://www.tusitio.com/nueva_pagina.php\\\">\"; ?>
</body>
</html>

Espero que les sirva de algo hasta luego

Re: Redireccionar despues de enviar formulario.

Avatar de naderST

Nivel 2 (91 posts)

* * * * * * *

0 Agradecimientos

#8 Offline naderST 11 nov 06 0 personas consideran útil este post.
Es facil pon al principio de la pag ob_start(); antes de HTML al principio de todo

como redirecciono a la misma pagina

Avatar de faraona

Nivel 1 (1 posts)

* * * * * * *

0 Agradecimientos

#9 Offline faraona 12 jun 07 0 personas consideran útil este post.
Buenas, mi problema es el siguiente, necesito redireccionar a la misma pagina para asi enviar los datos; estos datos los envio por medio de un select, pero no se como hacer para redireccionar a esa misma pagina y que me muestre los datos de los que envie por el POST a la misma pagina en una table.... les agradeceria una pronta respueta..

Re: Redireccionar despues de enviar formulario.

Avatar de ji7o

Nivel 3 (233 posts)

* * * * * * *

8 Agradecimientos

#10 Offline ji7o 12 jun 07 0 personas consideran útil este post.
para redireccionarlo a la misma pagina simplemente en el action del form colocas el nombre de la pagina.
y para que recuperes los varoles que enviaste se me ocurre que con variables de sesion se puede hacer.

action=\'paginaactual.php\'

si puedes mostrar el codigo seria mas facil ayudarte.

exitos

la mejor forma de aprender es practicar, practicar y practicar.

Re: Redireccionar despues de enviar formulario.

Avatar de DarkAngel9

Nivel 1 (12 posts)

* * * * * * *

0 Agradecimientos

#11 Offline DarkAngel9 13 jun 07 0 personas consideran útil este post.
pues como te dijeron, tienes que colocal el header() antes de cualkier salida, osea boora las etiketas HTML del comienzso y listo =P
algo asi kedaria:

[code]

<?PHP
$to = \"correo@correo.com\";
$nombre = \"$txtNombre\";
$telefono = \"$txtTelefono\";
$email = \"$txtEmail\";
$promocion = \"$ListaPromo\";
$zona = \"$txtZona\";
$precio = \"$txtPrecio\";
$msg .= \"\\nNombre: \".$nombre.\"\\r\\n\";
$msg .= \"Telefono: \".$telefono.\"\\r\\n\";
$msg .= \"e-mail: \".$email.\"\\r\\n\";
$msg .= \"Promocion: \".$promocion.\"\\r\\n\";
$msg .= \"Zona Preferida: \".$zona.\"\\r\\n\";
$msg .= \"Precio no superior a: \".$precio.\"\\r\\n\";
mail($to, \"Consulta desde la web\", $msg);
header(\"Location: http://www.pgina.com\");
?>
</body>
</html>
[/code]

Mismo Problema! no sé como redireccionar mi codigo!

Avatar de Elsantodiseni

Nivel 1 (1 posts)

* * * * * * *

0 Agradecimientos

#12 Offline Elsantodiseni 02 oct 11 0 personas consideran útil este post.
Hola! Gracias por la ayuda desde siempre es un placer saber que hay gente que está dispuesta a ayudar! Pego mi codigo para que me ayuden a redireccionar mi formulario de contacto a una pagina para que se confirme que el mensaje ha sido enviado "enviado.html" o que hay un error "error.html".

<?php

if(!$_POST) exit;

$email = $_POST['email'];


//$error[] = preg_match('/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i', $_POST['email']) ? '' : 'INVALID EMAIL ADDRESS';
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$email )){
$error.="Coloque su direccion de e-mail";
$errors=1;
}
if($errors==1) echo $error;
else{
$values = array ('name','email','message');
$required = array('name','email','message');

$your_email = "florencia.caceres1@gmail.com";
$email_subject = "Consulta-".$_POST['subject'];
$email_content = "new message:\n";

foreach($values as $key => $value){
if(in_array($value,$required)){
if ($key != 'subject' && $key != 'company') {
if( empty($_POST[$value]) ) { echo 'PLEASE FILL IN REQUIRED FIELDS'; exit; }
}
$email_content .= $value.': '.$_POST[$value]."\n";
}
}

if(@mail($your_email,$email_subject,$email_content)) {
echo 'Message sent!';
} else {
echo 'ERROR!';
}
}
?>


ESPERO AYUDA URGENTE! MUCHAS GRACIAS !!!!!!!!!!!!!!!!!!!!

Re: Mismo Problema! no sé como redireccionar mi codigo!

Avatar de Danniel

Nivel 1 (1 posts)

* * * * * * *

0 Agradecimientos

#13 Offline Danniel 31 ene 12 0 personas consideran útil este post.
Mi amigo, no se si necesites aun la ayuda. Te dejo el codigo de todos modos.

Tu código php quedaría así:

<?php

if(!$_POST) exit;

$email = $_POST['email'];


//$error[] = preg_match('/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i', $_POST['email']) ? '' : 'INVALID EMAIL ADDRESS';
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$email )){
$error.="Coloque su direccion de e-mail";
$errors=1;
}
if($errors==1) echo $error;
else{
$values = array ('name','email','message');
$required = array('name','email','message');

$your_email = "florencia.caceres1@gmail.com";
$email_subject = "Consulta-".$_POST['subject'];
$email_content = "new message:\n";

foreach($values as $key => $value){
if(in_array($value,$required)){
if ($key != 'subject' && $key != 'company') {
if( empty($_POST[$value]) ) { echo 'PLEASE FILL IN REQUIRED FIELDS'; exit; }
}
$email_content .= $value.': '.$_POST[$value]."\n";
}
}

if(mail($your_email,$email_subject,$email_content)) {
header("Location: enviado.html");
die;
}
else {
header("Location: error.html");
die;
}
}
?>

en donde dice header("Location: enviado.html"); y header("Location: error.html"); dejadlo así, no tienes que ponerle http://www.llllll.com porque si le pones eso te va pegar un error.

Nota:
Los archivos
enviado.html
y
error.html
tienen que estar juntos con el archivo php, (en la misma carpeta) no se que nombre le vayas a dar supongamos que sea enviar.php.
Espero haberte ayudado querido amigo.

Responder mensaje

Para poder participar debes ser un usuario registrado de PHP-Hispano. :: Deseo darme de alta en esta comunidad ::
Login / Password   

Temas relacionados

E Titulo Respuestas Última resp. Creado el Visitas Foro
Pregunta Ayuda con envio de form y redireccionaminto. 3 19 may 07
por MithosN
jue, 17 may 07 (23:22)
por MithosN
704 PHP
Pregunta mi registro no es seguro, Ayuda! 8 31 jul 08
por jcvasquez
jue, 24 jul 08 (18:08)
por 3dy_28
856 PHP

php-hispano.net 2002 - 2013 | XHTML 1.0
Datos Legales | Webmaster