¿Cómo paneo una página durante una cierta cantidad de segundos antes de redirigir al usuario a otra página HTML/PHP usando PHP?Pausa de redirección de PHP
Respuesta
Actualización: esto funciona, pero puede no ser la solución más adecuada para esta situación. Ver comentarios.
¿Podría ser esto lo que estás buscando?
<?php
sleep(5);
header("Location: http://www.example.com/");
exit();
?>
¿realmente funcionan? Pensé que con la función de suspensión el navegador simplemente dejaba de cargar la página para (en tu ejemplo) 5 segundos ... pero sin tirar la salida – Strae
@DaNieL No he probado esto, por lo que puede estar en lo cierto funciona o no funciona según la configuración del servidor o la hora/lugar a la que llama este código. – Daan
Acabo de probar, funciona, pero evito que todos los demás salgan también .. afaik la función sleep sleep() mantiene en pausa todo el renderizado php, por lo que no debería ser usado para este tipo de problemas – Strae
Las otras 2 opciones son un redireccionamiento de JavaScript usando setTimeout() o una etiqueta meta de actualización con un tiempo de espera.
solución de baja tecnología que no requiere Javascript o incluso PHP:
<html>
<head>
<title>Redirecting...</title>
<meta http-equiv="refresh"
content="10;URL=http://www.newsite.com">
</head>
<body>
You are being automatically redirected to a new location.<br />
If your browser does not redirect you in 10 seconds, or you do
not wish to wait, <a href="http://www.newsite.com">click here</a>.
</body>
</html>
La ventaja de esta solución sobre el uso de la "Ubicación:" encabezado es que no es necesario detener la ejecución del script, que se aparecer al usuario como si el servidor estuviera ocupado o su conexión se hubiera colgado.
Esta solución también le da al usuario la opción de pasar a la nueva página inmediatamente en lugar de tener que esperar x número de segundos mientras su navegador no muestra información.
Editar: Creo que también vale la pena señalar que si decide utilizar el método del encabezado(), debe asegurarse de que la duración de su suspensión() no sea demasiado larga. Creo que la mayoría de los navegadores generan una conexión con tiempo de espera agotado después de no recibir ningún dato del servidor durante 1 minuto.
Sea cuidadoso - algunos navegadores (como Chrome y Opera) no tomarán esta dirección correctamente – Strae
¿De verdad? No sabía eso. Bueno, al menos tienen el enlace para hacer clic en. – Calvin
Sí, no recuerdo exactamente si el navegador que no lo manejó correctamente es Safari, Opera o Chrome. Recuerdo que como 2 de ellos ... pero tal vez arreglaron este problema en el tiempo – Strae
Esto se debe obras:
<?php
header('Refresh: 5; URL=http://yoursite.com/page.php');
//other code
?>
y le permitirá a su usuario ver cualquier tipo de salida que desee (Vas a ser redirigido después de segundos, haga clic Yere si no haga, etc ..)
Realmente me gusta esta solución mucho mejor de lo que publiqué. +1 – Calvin
Esto no funciona con todos los navegadores. – Gumbo
realmente? Probé en cromo, ff, es decir, opera y safari, todo en el entorno de Windows, y todo funciona igual. ¿En qué sistema operativo lo intentó? ¿No podría haber ningún tipo de ajuste del navegador? – Strae
nunca utilice dormir de esta manera. Incluso bajo una ligera carga, su servidor se quedará sin conexiones http. Peor si se acaba el firewall.
El parámetro de retraso en el encabezado de redirección se realiza exactamente por el mismo motivo.
Probar:
<?php
$url=base_url().'page_you_want_to_go_to'
header('Refresh: X; URL=$url');
?>
esto le dará mayor flexibilidad en el intercambio entre el servidor host local y remota.
poner esto en el encabezado.
<meta http-equiv="refresh" content="0.01;makensucces.html" />
en el lugar 0.01 debes poner los segundos, he usado un número decimal.
y en el lugar de makensucces.html debe poner el nombre del archivo que desea.
Si quieres esperar y luego volver a la página anterior aquí es cómo
$referrer = $_SERVER['HTTP_REFERER'];
header ("Refresh: 2;URL='$referrer'");
- 1. redirección de php: encabezados HTML
- 2. PHP redirección sosteniendo la escritura
- 3. PHP Pass de datos con redirección
- 4. 301 o 302 redirección con PHP
- 5. php redirección no cambia la url
- 6. WWW para no WWW redirección con PHP
- 7. pausa de AVCaptureSession?
- 8. php redirección con variables de cadena de consulta HTTP
- 9. Pausa larga incidental Recolección de basura joven pausa
- 10. Pausa de la vista Pausa en una dirección determinada
- 11. PHP pasando una variable con el encabezado de redirección
- 12. Android_Cronómetro pausa
- 13. Pausa de envío al marcador
- 14. Redirección de página
- 15. Bash - redirección de salida
- 16. ¿Tiempo de redirección retrasada?
- 17. ¿Qué significa "redirección de salida ambigua"?
- 18. <noscript> redirección
- 19. AVPlayer, notificación de estado de reproducción/pausa?
- 20. Pausa de la aplicación/estado de reanudación
- 21. Pausa en Python
- 22. C# Pausa entre sendkeys
- 23. Qt Reproducir/Pausa Acción?
- 24. Pausa en TTS android
- 25. Pausa video de youtube, youtube api
- 26. Killing aplicación de Android en pausa
- 27. Controlar un script de matlab (Pausa, Restablecer)
- 28. Receptor de difusión y actividad en pausa
- 29. Parallel.Foreach C# Pausa y función de parada?
- 30. Pausa entre animaciones de fotogramas clave
nunca he entendido por qué tengo que esperar x número de segundos para que me redirigir a otra página por qué habría de hacerlo ? – Thomaschaaf
Becose browser - o la configuración del navegador - no permitirá que la redirección ... y que muestre una página intermedia sea claramente para el usuario, luego la página de carga múltiple sin comprender lo que está sucediendo ... los X (generalmente 5) segundos están ahí para dejar el usuario leyó el mensaje;) – Strae
@Thomaschaaf: Hay algunas razones posibles, a) porque no se dan cuenta de que no hay necesidad, b) publicidad, mientras el usuario 'espera' puede ver un complemento y hacer clic, c) conformidad, todo el mundo lo hace para que todos esperen una página intermitente (es decir, mi jefe me hizo implementar una, aunque nuestro sitio no genera ingresos publicitarios solo porque estaba acostumbrado a verlo y pensaba que nuestros usuarios también lo harían). – Louis