Foros del Web » Programando para Internet » PHP »

hacer esperar 5sg antes de redireccionar

Estas en el tema de hacer esperar 5sg antes de redireccionar en el foro de PHP en Foros del Web. buenas, la cosa es que quiero hacer la tipica pagina en la que si no has metido un email correcto te vuelva a mandar al ...
  #1 (permalink)  
Antiguo 17/11/2005, 12:55
 
Fecha de Ingreso: noviembre-2005
Mensajes: 139
Antigüedad: 12 años, 1 mes
Puntos: 0
hacer esperar 5sg antes de redireccionar

buenas,
la cosa es que quiero hacer la tipica pagina en la que si no has metido un email correcto te vuelva a mandar al registro, pero me lo hace de manera instantanea y no se puede ver el mensaje de error. ¿como puedo hacer para que espere unos segundos antes de redireccionar?
el codigo es este:
if(comprobar_mail($email)){/*Si la funcion devuelve TRUE, osea que si esta correcto muestro un mensaje o lo que quiera mostrar*/
$query="INSERT into $tabla values ('','$nombre','$apellido','$nacimiento','$email',' $usuario','$contrasenia')";
print ("The query is:<br>$query<p>");
if (mysql_db_query($nombreBD,$query,$link))
{print ("El registro se realizo correctamente<br>");
}
else
{
print ("El registro no se pudo realizar correctamente<br>");
}
}else{
echo "Sintax Mail Erroneo, por favor introduzca una direccion de email válida";/*Si devolivio False osea que esta mal muestro un mensaje o lo que quiera mostrar*/
header('Location: http://localhost/registro.php');
}


gracias
  #2 (permalink)  
Antiguo 17/11/2005, 12:59
Avatar de jmqc  
Fecha de Ingreso: noviembre-2004
Ubicación: Venezuela
Mensajes: 353
Antigüedad: 13 años
Puntos: 1
Que tal, puedes usar este script en alguna parte de tu codigo:
Código HTML:
<script LANGUAGE="JavaScript">
function redireccionar() 
{
location.href=http://localhost/registro.php
} 
setTimeout ("redireccionar()", 5000);
</script> 
__________________
Ante el desconocimiento ni entendimiento de las cosas decimos que los demás estan locos.

José Quintero. Saludos.
:adios:
  #3 (permalink)  
Antiguo 17/11/2005, 13:02
 
Fecha de Ingreso: noviembre-2005
Mensajes: 139
Antigüedad: 12 años, 1 mes
Puntos: 0
muchas gracias
  #4 (permalink)  
Antiguo 17/11/2005, 13:13
 
Fecha de Ingreso: noviembre-2005
Mensajes: 139
Antigüedad: 12 años, 1 mes
Puntos: 0
jmqc,
lo siento pero soy nuevo en esto y no se donde insertarlo te digo donde lo he metido y el errror que me da:

if(comprobar_mail($email)){/*Si la funcion devuelve TRUE, osea que si esta correcto muestro un mensaje o lo que quiera mostrar*/
$query="INSERT into $tabla values ('','$nombre','$apellido','$nacimiento','$email',' $usuario','$contrasenia')";
print ("The query is:<br>$query<p>");
if (mysql_db_query($nombreBD,$query,$link))
{print ("El registro se realizo correctamente<br>");
}
else
{
print ("El registro no se pudo realizar correctamente<br>");
}
}else{
echo "Sintax Mail Erroneo, por favor introduzca una direccion de email válida";/*Si devolivio False osea que esta mal muestro un mensaje o lo que quiera mostrar*/

<script LANGUAGE="JavaScript">
function redireccionar()
{
location.href=http://localhost/registro.php
}
setTimeout ("redireccionar()", 5000);
</script>


header('Location: http://localhost/registro.php');
}

ERROR
Parse error: parse error in e:\archivos de programa\appserv\www\creadora.php on line 46

La linea 46 es donde empieza tu script
gracias de todas maneras
  #5 (permalink)  
Antiguo 17/11/2005, 13:16
Avatar de leoj90
Usuario baneado!
 
Fecha de Ingreso: agosto-2005
Mensajes: 1.365
Antigüedad: 12 años, 4 meses
Puntos: 0
Cita:
Iniciado por apuenco
echo "Sintax Mail Erroneo, por favor introduzca una direccion de email válida";/*Si devolivio False osea que esta mal muestro un mensaje o lo que quiera mostrar*/

<script LANGUAGE="JavaScript">
function redireccionar()
{
location.href=http://localhost/registro.php
}
setTimeout ("redireccionar()", 5000);
</script>


header('Location: http://localhost/registro.php');
}

ERROR
Parse error: parse error in e:\archivos de programa\appserv\www\creadora.php on line 46

La linea 46 es donde empieza tu script
gracias de todas maneras
Esta fuera del script.


echo "Sintax Mail Erroneo, por favor introduzca una direccion de email válida

<script LANGUAGE='JavaScript'>
function redireccionar()
{
location.href=http://web.com/registro.php
}
setTimeout ('redireccionar()', 5000);
</script>";
  #6 (permalink)  
Antiguo 17/11/2005, 13:23
 
Fecha de Ingreso: noviembre-2005
Mensajes: 139
Antigüedad: 12 años, 1 mes
Puntos: 0
Lo he metido pero no me redirecciona(he puesto local host en vez de web.com).. donde cambio el tiempo de espera?
gracias
  #7 (permalink)  
Antiguo 17/11/2005, 14:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por apuenco
ok, muchas gracias
y otra cuestion (es mi primer programa)
como puedo hacer para que espere unos segundos antes de que me redireccione?
gracias
Puedes usar HTML con sus cabecera META correspondiente a "refresh".

Pero .. la idea NO es que tu script de proceso sea el que: muestre un mensaje, espere un tiempo y redireccione.

El proceso debería ser:

script_proceso.php
Código PHP:
<?
if (tal cosa){
   
header ("Location: mensajes.php?msg=1&donde_ir=nose.php");
   exit;
} else {
   
header ("Location: mensajes.php?msg=2&donde_ir=otronose.php");
   exit;  
}
?>
mensajes.php
Código PHP:
<html>
<head>
<META HTTP-EQUIV=Refresh CONTENT="10; URL=<? echo $_GET['donde_ir'?>">: 
</head>
<body>
<?
if (isset($_GET['msg'])){
   echo 
"El mensaje es: ".$_GET['msg'];
}
?>
</body>
</html>
Si te fijas .. en el script de proceso .. SIEMPRE redirecciono a otro script, concretamente a uno que tengo dedicado para mostrar mensajes de error/exito (podría ser integrado en otro script según corresponda). Se muestra el mensaje y se incluye la cabecera que indica hacia donde redireccionar finalmente.

Usa un par de variables para describir el mensaje y donde ir (URL final tras mostrar el mensaje).

Con este método no se pone en compromiso la seguridad de tus scripts de proceso. Ejemplo: imagina que tu envias un e-mail o generas un registro en una tabla de una BD en tu "script_proceso.php", si mientras esperas para redireccionar a otra página .. por A o B motivo a mi como usuario me diese por recargar la página (en la que estoy que en ese caso es la tuya de "script_proceso.php" .. ) originaría un evio duplicado de ese e-mail . .o un registro duplicado de esos mismos datos .. tanto y tantas veces como al usuario le dé por estar recargando la página.

De esta forma, lo más rápido posible se redirecciona hacia otra página que va a mostrar el mensaje de error, puede esperar todo lo que gustes y hacer todo lo que quieras sin ningún compromiso, si recargo la página . .recargo la de los "mensajes" no la del "proceso".

Un saludo,
  #8 (permalink)  
Antiguo 17/11/2005, 20:37
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago
Mensajes: 212
Antigüedad: 14 años, 7 meses
Puntos: 0
Código PHP:
<?php
require('configuracion.php');
$titulo $_POST["titulo"];
$descripcion $_POST["descripcion"];
$mensaje $_POST["mensaje"];
echo 
'<script type="text/javascript" language="JavaScript1.2" src="../../funciones.js"></script>';

//Hacemos algunas validaciones
if((empty($titulo)) || (empty($descripcion)) || (empty($mensaje))) {
 echo 
"Porfavor ingrese los datos de los campos Titulo, Descripcion y Mensaje.";
 
//Header("Location: agergarnoti.php");
 
echo "<script>setTimeout('redireccionar(./noticias/foro/agergarnoti.php)',5000)</script>";
}else {
//Evitamos que el usuario ingrese HTML
$mensaje htmlentities($mensaje);

// Grabamos el mensaje en la base.
$rs mysql_query("insert into noticias (fecha_noticia,titulo_noticia,desc_noticia, info_noticia) values (NOW(),'$titulo','$descripcion','$mensaje')",$con) or die("Error al grabar un mensaje: ".mysql_error);
//Header("Location: index.php");

echo "<script >setTimeout('redireccionar(./noticias/foro/index.php)',0)</script>";
}
?>
bueno tengo porblemas con el redireccionaminero el archivo js se encuentra dos carpetas hacia atras espero que alguien me ayude para tener mas claro explicare la estructura de las carpetas espero que puedan ayudar a oppillar mi pana ya que he tratado creo que con todo peor nada me ha servido he buscado en google y nada me da indicios en que me estoy equivocndo bueno gracias de antemano
Carpetas
localhost
-/smial
-archivo js
-/noticias
-/foro
-index.php
-agregarnoti.php

Última edición por Cluster; 18/11/2005 a las 06:07
  #9 (permalink)  
Antiguo 18/11/2005, 11:14
 
Fecha de Ingreso: noviembre-2005
Mensajes: 139
Antigüedad: 12 años, 1 mes
Puntos: 0
buenas,
no consigo hacerlo... mi codigo es este pero se queda hay y no va a la pagina que le digo:

<html>
<head>
<title>Untitled</title>
</head>
<body>
<?php
print ("Por favor, introduzaca un email correcto
<script LANGUAGE='JavaScript'>
function redireccionar()
{
location.href=http://localhost/registro.php
}
setTimeout ('redireccionar()', 5000);
</script>");
?>
</body>
</html>


Cluster,
he hecho lo que me has dicho pero de una manera mas sencilla(una pagina para cada mensaje)gracias. lo de META no lo entiendo...prefiero usar el codigo de javascript, pero no funciona.
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 11:10.