Foros del Web » Programando para Internet » PHP »

Redireccionar pagina despues de 5 segundos

Estas en el tema de Redireccionar pagina despues de 5 segundos en el foro de PHP en Foros del Web. Hola amigos del foro, bueno soy nuevo en esto de envio por mailers, y tengo problemas con unos codigos. 1. Tengo un formulario web creado ...
  #1 (permalink)  
Antiguo 25/09/2008, 15:08
 
Fecha de Ingreso: abril-2008
Mensajes: 2
Antigüedad: 16 años
Puntos: 0
Redireccionar pagina despues de 5 segundos

Hola amigos del foro, bueno soy nuevo en esto de envio por mailers, y tengo problemas con unos codigos.

1. Tengo un formulario web creado en html y un mailer en php, cuando un usuario X llena sus datos en mi formulario y le da en "Enviar" le sale una pagina con el mensaje que yo he puesto "La informacion ha sido enviada de forma exitosa al siguiente correo ......"; pero lo que yo kiero hacer es que despues de 5 segundos vuelva a mi pagina index o en todo caso a la pagina de mi formulario pero ya vacio...como puedo hacerlo?

2. Hay forma de editar la pagina donde sale el mensaje "La informacion ha sido enviada de forma exitosa al siguiente correo ......", osea ponerle color, otro tipo de letra etc.

Como les dije soy nuevo en esto, y ese mailer.php lo baje de otra page en ingles.
Bueno espero qye me ayuden saludos

Codigo Html: (formulario)
www.suminco-peru.com/Contactanos.html

<form method="POST" action="mailer.php">
<span class="sitetext">
Nombre:<br>
<input type="text" name="nombre" size="50">
<br>
<br>
Empresa:<br>
<input type="text" name="empresa" size="50">
<br>
<br>
E-mail:<br>
<input type="text" name="email" size="50">
<br>
<br>
Direccion:<br>
<input type="text" name="direccion" size="50">
<br>
<br>
Telefono:<br>
<input type="text" name="telefono" size="19">
<br>
<br>Distrito<br>
<select size="1" name="distrito">
<option>Selecciona tu distrito</option>
<option>Otro Departamento</option>
<option>Ancon</option>
<option>Ate-Vitarte</option>
<option>Barranco</option>
<option>Bellavista</option>
<option>Bre&ntilde;a</option>
<option>Callao</option>
<option>Carabayllo</option>
<option>Carmen de la Legua</option>
<option>Cieneguilla</option>
<option>Comas</option>
<option>Chorrillos</option>
<option>Chaclacayo</option>
<option>Chosica</option>
<option>El Agustino</option>
<option>Independencia</option>
<option>Jes&uacute;s Mar&iacute;a</option>
<option>La Molina</option>
<option>La Punta</option>
<option>La Victoria</option>
<option>Lima Cercado</option>
<option>Lince</option>
<option>Lur&iacute;n</option>
<option>Los Oilvos</option>
<option>Magdalena</option>
<option>Miraflores</option>
<option>Pueblo Libre</option>
<option>Puente Piedra</option>
<option>Rimac</option>
<option>San Borja</option>
<option>San Isidro</option>
<option>San Juan Lurigancho</option>
<option>San Juan Miraflores</option>
<option>San Luis</option>
<option>San Miguel</option>
<option>San Martin de Porres</option>
<option>Santa Anita</option>
<option>Santa Rosa</option>
<option>Surco</option>
<option>Surquillo</option>
<option>Villa El Salvador</option>
<option>Villa Maria del Triunfo</option>
</select><br>
<br>
<br>
Producto:<br>
<input type="checkbox" name="check[]" value="balanzas_producto">
Balanzas y Sistemas de Pesaje <br>
<input type="checkbox" name="check[]" value="rodillos_producto">
Rodillos y Elementos para Transportadores de faja <br>
<br>
<br>
Comentarios:<br>
<textarea rows="9" name="comentarios" cols="40"></textarea>
<br>
<br>
<input type="submit" value="Enviar" name="submit">
</span>
</form>

Codigo mailer.php

<?php
if(isset($_POST['submit'])) {

$to = "[email protected]";
$subject = "Email enviado desde la pagina web"; $nombre_field = $_POST['nombre'];
$empresa_field = $_POST['empresa'];
$email = $_POST['email'];
$direccion = $_POST['direccion'];
$telf = $_POST['telf'];
$comentarios = $_POST['comentarios'];
$distrito = $_POST['distrito'];

foreach($_POST['check'] as $value) { $check_msg .= "Checked: $value\n";
}

$body = "From: $nombre_field\n Empresa: $empresa_field\n E-Mail: $email\n Direccion: $direccion\n Telefono: $telefono\n $check_msg\n Distrito: $distrito\n Comentarios:\n $comentarios\n";

echo "Tu email ha sido enviado de forma exitosa a $to!";
mail($to, $subject, $body);

} else {
echo "blarg!";
}
?>
  #2 (permalink)  
Antiguo 25/09/2008, 21:14
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Redireccionar pagina despues de 5 segundos

Cita:
1. Tengo un formulario web creado en html y un mailer en php, cuando un usuario X llena sus datos en mi formulario y le da en "Enviar" le sale una pagina con el mensaje que yo he puesto "La informacion ha sido enviada de forma exitosa al siguiente correo ......"; pero lo que yo kiero hacer es que despues de 5 segundos vuelva a mi pagina index o en todo caso a la pagina de mi formulario pero ya vacio...como puedo hacerlo?
Hay dos maneras.
Una es con Javascript y la otra es usando sleep y header de PHP.

Código PHP:
echo "Tu email ha sido enviado de forma exitosa a $to!";
mail($to$subject$body); 
Te sugiero que pongas el echo debajo de el mail.

Y para esperar 5 segundos y redireccionar:

Código PHP:
mail($to$subject$body);
sleep(5);
header('Location: index.php'); 
O si quieres redireccionar inmediatamente, quitale el sleep.

Y en esta pagina te dicen como hacerlo con Javascript:
http://www.programacion.com/html/art...w_redireccion/

Cita:
2. Hay forma de editar la pagina donde sale el mensaje "La informacion ha sido enviada de forma exitosa al siguiente correo ......", osea ponerle color, otro tipo de letra etc.
Recuerda que PHP es solamente un "Preprocesador de Hipertexto".
Asi como puedes imprimir TEXTO PLANO en una pagina, puedes imprimir etiquetas HTML.
  #3 (permalink)  
Antiguo 26/09/2008, 07:39
 
Fecha de Ingreso: abril-2008
Mensajes: 2
Antigüedad: 16 años
Puntos: 0
Respuesta: Redireccionar pagina despues de 5 segundos

Ey gracias Ronruby, solo una duda, como quedaria el codigo ya que tu me dices que mejor ponga el echo debajo del mail:


mail($to, $subject, $body);
echo "Tu email ha sido enviado de forma exitosa a $to!";
sleep(5);
header('Location: index.html');

} else {
echo "blarg!";
}
?>


Como te comente soy nuevo en esto, disculpa la molestia de mi ignorancia
  #4 (permalink)  
Antiguo 26/09/2008, 08:05
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años
Puntos: 15
Respuesta: Redireccionar pagina despues de 5 segundos

Que tal lya220401, mira si tu quieres que tu script php redireccione a otra pagina web lo puedes hacer con el header, pero si y solo si no hayas enviado nada aun al navegador, ya que la funcion header modifica las cabeceras http, pero si tu envias algo al navegador como por ejemplo si le haces un echo 'Email enviado', te saldrían errores.

Te recomiendo que para redireccionar tu pagina a otra, uses javascript, es mas fácil, mira tu codigo de phpmailer podria ser asi:

Código:
<HTML>
<HEAD>
  <TITLE>Redireccionado</TITLE> 
  <SCRIPT LANGUAGE="JavaScript">
  function redireccionar() {
    setTimeout("location.href=formulario.htm", 5000);//Aqui debes poner a que pagina quieres redireccionar
  }
  </SCRIPT>
</HEAD>
<BODY onLoad="redireccionar()">
<?php
if(isset($_POST['submit'])) {
$to = "[email protected]";
$subject = "Email enviado desde la pagina web"; $nombre_field = $_POST['nombre'];
$empresa_field = $_POST['empresa'];
$email = $_POST['email'];
$direccion = $_POST['direccion'];
$telf = $_POST['telf'];
$comentarios = $_POST['comentarios'];
$distrito = $_POST['distrito'];

foreach($_POST['check'] as $value) { $check_msg .= "Checked: $value\n";
}

$body = "From: $nombre_field\n Empresa: $empresa_field\n E-Mail: $email\n Direccion: $direccion\n Telefono: $telefono\n $check_msg\n Distrito: $distrito\n Comentarios:\n $comentarios\n";

mail($to, $subject, $body);
echo "Tu email ha sido enviado de forma exitosa a $to!";
} else {
echo "blarg!";
}
?>
</BODY>
</HTML>
Espero haberte ayudado, cualquier cosa puedes contactarme por msn ([email protected]), hasta pronto.
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
  #5 (permalink)  
Antiguo 26/09/2008, 08:13
Avatar de degochan  
Fecha de Ingreso: marzo-2008
Mensajes: 27
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Redireccionar pagina despues de 5 segundos

Cita:
Iniciado por lya220401 Ver Mensaje
Ey gracias Ronruby, solo una duda, como quedaria el codigo ya que tu me dices que mejor ponga el echo debajo del mail:


mail($to, $subject, $body);
echo "Tu email ha sido enviado de forma exitosa a $to!";
sleep(5);
header('Location: index.html');

} else {
echo "blarg!";
}
?>


Como te comente soy nuevo en esto, disculpa la molestia de mi ignorancia
unos consejos
Tienes simpre que respetar las ordenes de concatenacion ej:
Código PHP:

 
echo "Tu email ha sido enviado de forma exitosa a $to!";

// deveria ser 
echo "Tu email ha sido enviado de forma exitosa a ".$to 
de esa jorma te ahorraras varios dolores de caveza mas adelante y mas cuando estee en servidores privados en in internet.

ha y para recargar la pagina puedes utilizar java que es lo mas aconsejable ya que que es ejecutado del lado del cliente a diferencia del
Código PHP:
sleep(5); 
que se ejecuta del lado del servidor y eso a la larga satura nuestras paginas.
te lo digo por que he tenido una pagina con muchas vicitas y bueno deprontro se empeso a colgar el server y era solo por esas sentencia ;)
qui te ba el de JavaScript
Código HTML:
<script language="javascript">
setTimeout("",100);
</script> 
proba con ese o sino podes con este que va en heder de la pagina
Código HTML:
<META HTTP-EQUIV="Refresh" CONTENT="5; URL=http://www.direccion.com"> 
bueno pero siempre que puedas dar soluciones del lado del cliente sera mejor a la hora que llegue cuando nuestra pagina comiense a dar frutos y tenga visitas :D
  #6 (permalink)  
Antiguo 26/09/2008, 12:46
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Redireccionar pagina despues de 5 segundos

Código PHP:
echo "Tu email ha sido enviado de forma exitosa a $to!";
sleep(5);
header('Location: index.html'); 
Nooo! No imprimas nada antes de los headers.
Ademas, no es necesario ... Solo redirecciona y ya. El usuario no notara la diferencia, solo creera que la pagina esta cargando.
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 12:06.