2011-01-01 15 views
7

Sto cercando di reindirizzare una pagina a un'altra pagina e che stavo lavorando con successo. Tuttavia sto cercando di reindirizzare la prima pagina a un'altra pagina con pubblicità. Questa pagina verrà quindi reindirizzare a un'altra pagina dopo cinque secondi.Reindirizzamento una pagina ad un'altra pagina per 5 secondi e poi di nuovo reindirizzamento

sto cercando di farlo in questo modo:

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

Tuttavia sta mostrando l'annuncio in ads.php perfettamente, ma non sta riorientando dopo cinque secondi. Sto ricevendo questo errore nel mio browser 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 collegamento tipico sarei reindirizzando ad sarebbe questo:

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

+1

mi piacerebbe vedere le risposte. Sarà sorprendente –

+0

@Col. Shrapnel - Il pensiero del Natale è stato un bel po 'di giorni fa. :-) –

risposta

5

sulla prima pagina (prima che gli annunci) prima DOCTYPE o html tag messi:

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

Poi su pagina annuncio ha messo questa:

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

questo reindirizzerà immediatamente la prima pagina e sarà reindirizzare il sec seconda pagina dopo 5 secondi. Spero che questo aiuti (la sua dovrebbe anche sbarazzarsi dei non può modificare informazioni di intestazione se lo metti davanti DOCTYPE html e tag).

MODIFICA: Avere anche un javascript può essere un rischio per la sicurezza b/c qualsiasi utente può cambiare la sua posizione. In questo modo hai il pieno controllo su dove viene diretto l'utente.

+0

Non vedo come l'utilizzo di JavaScript per eseguire tale reindirizzamento costituisca un rischio per la sicurezza. In teoria, qualsiasi agente utente potrebbe rifiutarsi di eseguire il reindirizzamento, o farlo solo dopo aver consultato l'utente finale, anche per i codici di stato HTTP standard (3xx). Hai ragione che un utente esperto potrebbe modificare l'origine della pagina e farsi reindirizzare da qualche altra parte, ma potrebbe farlo con la stessa facilità con la barra degli indirizzi del browser! In nessun caso dovresti mai presumere di poter "controllare l'utente", perché non hai alcun controllo sull'agente utente, al di là di sperare che rispetti l'RFC HTTP. – Rob

+0

La ragione per cui ho aggiunto che è b/c potrebbe cambiare la fonte e sanno esattamente dove sta andando. Con php potrebbero non conoscere i nomi dei file, quindi senza che conoscano il nome del file non possono cambiare l'URL. Concesso dopo averlo visitato una volta, verrà memorizzato nella cronologia, ma preferisco semplicemente questo tipo di cose usando qualcosa su cui ho il controllo piuttosto che l'utente. Il più delle volte per gli annunci che un cliente vuole controllare, non che l'utente abbia il controllo su di esso, e questo è più facile da fare con PHP. Sono d'accordo con non controllare l'utente la maggior parte del tempo ma questa è un'eccezione credo. – jefffan24

2

Usa aggiornare meta tag o JavaScript window.location

1

Questo potrebbe aiutare a

setTimeout("javascript window.location",3000) 

con Regar ds

Wazzy

+0

grazie, dove lo metterei? –

0

Tutte le pagine hanno intestazioni e il contenuto. Per reindirizzare un visitatore a un'altra pagina, devi farlo nella sezione dell'intestazione della pagina. Una volta stampato il contenuto della pagina (i tuoi annunci), hai effettivamente iniziato il contenuto, in cui non è possibile tornare indietro per modificare le intestazioni.

Il modo migliore per farlo è quello di avere un javascript come

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

Ciò avverrebbe in html .. probabilmente in fondo alla pagina, prima di – styler1972

+0

ok, ho questo fino ad ora, ma non è ancora il reindirizzamento: ' ' –

+1

javascript non ha una funzione $ _GET. Che php rigorosamente. Quello che puoi fare è ... var url = ; function redirect() {window.location = url; } .... e che dovrebbe funzionare. – jefffan24

Problemi correlati