2011-01-01 31 views
7

Estoy intentando redirigir una página a otra página y eso estaba funcionando correctamente. Sin embargo, estoy tratando de redirigir la primera página a otra página con anuncios. Esta página luego se redirigirá a otra página después de cinco segundos.Redirigir una página a otra página durante 5 segundos y luego redirigir de nuevo

que estoy tratando de hacer que al hacer esto:

<?php 
include('ads.php'); 
?> 
<?php 
sleep(2); 
$url = $_GET['url']; 
header("Location: ".$url.""); 
exit; 
?> 

Sin embargo, se muestra el anuncio en ads.php perfectamente, pero no está redirigiendo después de cinco segundos. Estoy recibiendo este error en mi navegador web:

Warning: Cannot modify header information - headers already sent by 
(output started at /home/nucleusi/public_html/adverts/ads.php:1) 
in /home/nucleusi/public_html/adverts/index.php on line 7 

Un enlace típica estaría a redirigir a esto sería:

http://domain.com/adverts/index.php/?url=http%3A%2F%2Fitunes.apple.com%2Fmx%2Falbum%2Fstill-got-the-blues%2Fid14135178%3Fi%3D14135158

+1

Me gustaría ver las respuestas. Va a ser increíble –

+0

@Col. Metralla - Pensé que la Navidad fue hace unos días. :-) –

Respuesta

5

en la primera página (antes de los anuncios) antes de que las etiquetas DOCTYPE o html poner:

<?php header("location: adlocationhere.php"); ?> 

Luego, el la página de anuncios pone esto:

<?php header("refresh:5;url=secondredirectafter5seconds.php"); ?> 

Esto redirigirá su primera página inmediatamente y redirigirá su sec una página después de 5 segundos. Espero que esto ayude (también debe deshacerse de la no se puede modificar la información del encabezado si lo pones antes de las etiquetas doctype y html).

EDITAR: También tener javascript lo hace puede ser un riesgo de seguridad b/c cualquier usuario puede cambiar su ubicación. Al hacerlo de esta manera, usted tiene control total sobre hacia dónde se dirige al usuario.

+0

No veo cómo el uso de JavaScript para realizar dicha redirección constituiría un riesgo para la seguridad. En teoría, cualquier agente de usuario podría negarse a realizar la redirección, o hacerlo solo después de consultar al usuario final, incluso para los códigos de estado HTTP estándar (3xx). Tiene razón en que un usuario inteligente podría modificar su fuente de página y ser redireccionado a otra parte, ¡pero podrían hacerlo igual de fácilmente con la barra de direcciones de su navegador! En ningún momento debe asumir que puede "controlar al usuario", porque no tiene control sobre el agente de usuario, más allá de esperar que cumpla con el RFC de HTTP. – Rob

+0

La razón por la que agregué eso es porque podrían cambiar la fuente y saben exactamente hacia dónde se dirige. Con php es posible que no sepan los nombres de los archivos, por lo que, sin ellos, conocer el nombre del archivo no puede cambiar la URL. De acuerdo después de ir a él una vez, se almacenará en la historia, pero prefiero con este tipo de cosas utilizando algo que tengo control en lugar del usuario. La mayoría de las veces, para los anuncios que un cliente quiere controlar, no el usuario tiene control sobre él, y esto es más fácil de hacer con PHP. Estoy de acuerdo con no controlar al usuario la mayor parte del tiempo, pero esta es una excepción, creo. – jefffan24

2

utilizar la renovación etiqueta meta o Javascript window.location

1

Esto podría ayudarlo

setTimeout("javascript window.location",3000) 

con regar ds

Wazzy

+0

gracias, ¿dónde pondría esto? –

0

Todas las páginas tienen cabeceras y el contenido. Para redirigir a un visitante a otra página, debe hacerlo en la sección del encabezado de la página. Una vez que haya impreso el contenido de la página (sus anuncios), habrá comenzado efectivamente el contenido, en el que no hay marcha atrás para modificar los encabezados.

La mejor manera de hacer esto es tener un javascript como

<script> 
function redirect() { window.location = '$url'; } 
setTimeout("redirect();", 5000); 
</script> 
+0

Esto se haría en el html .. probablemente en la parte inferior de la página, antes de – styler1972

+0

bien, tengo esto hasta ahora, pero todavía no está redirigiendo: ' ' –

+1

javascript no tiene una función $ _GET. Ese php estrictamente. Lo que puede hacer es ... var url = function redirect() {window.location = url; } .... y eso debería funcionar. – jefffan24

Cuestiones relacionadas