|
Home -> Manuali e Tutorials -> Guida PHP -> Redirect
Scarica il tutorial | Stampa il tutorial | Cerca nel sito
REDIRECT DI PAGINA IN PHP
Con il linguaggio PHP è possibile creare dei redirect a siti esterni o interni al vostro attraverso l'uso della funzione header(). Per redirect si intende un reindirizzamento ad un altro URL, interno o esterno al vostro sito. In questo modo si può creare un collegamento esterno, direttamente usando il linguaggio PHP, senza far apparire a video nessuna pagina HTML del nostro sito.
header("Location: http://www.php.net/");
Il Redirect serve quindi per inviare "header http" e cioè redirezionare il visitatore su un'altra pagina web. "Location" non trasmette solo un header al browser, ma anche un REDIRECT con codice di stato (302).
Vediamo un esempio pratico; di seguito è riportato il codice e l'esempio per il reindirizzamento di pagina in base a quale link viene cliccato dal visitatore; se si clicca il primo link si accede al sito di Google, mentre sul secondo su HTML.it.
| Google |
HTML.it |
<?php
if($_GET["url"]=="google")
header("Location: http://www.google.it");
else header("Location: http://www.html.it");
?> |
Come potete vedere entrambi i links non puntano direttamente ai corrispondenti siti web, ma al file header.php, di cui è riportato sopra il codice. Affinchè questo possa funzionare, bisogna accodare ad ogni link la coppia url=valore (detta anche "query string").
IMPORTANTE:
Le funzioni header non richiedono nessuna uscita prima della loro esecuzione. In pratica se scrivete anche un solo echo"......"; la pagina con il redirect genera un errore (almeno nella versione PHP 4.3).
Oltre a questo, se prima del redirect avete posizionato un collegamento errato con il database senza la segnalazione di errore, riceverete a video solo l'errore del redirect, mentre in realtà l'errore è da un'altra parte.
In caso di errore il consiglio è di togliere il redirect e testare tutto lo script che lo precede, successivamente reinserite la riga header e riprovate.
HEADER e EXIT
Spesso viene accodata all'istruzione header, la funzione exit(), che blocca il programma senza leggere le funzioni ed il codice sottostante.
<?
.... // Eventuali istruzioni eseguite (tipo applicazioni su database)
header("location: http://....");
exit;
....// Altre istruzioni che non sono mai eseguite
?> |
Torna su | Indice Guida | Pagina << 24 >>
|