Come configurare smartphone e PC. Portale informativo
  • casa
  • Ferro
  • Reindirizzamento volgare php. Come impostare un reindirizzamento a un altro URL in PHP prima che la pagina venga caricata

Reindirizzamento volgare php. Come impostare un reindirizzamento a un altro URL in PHP prima che la pagina venga caricata

Supponiamo che tu voglia visualizzare la pagina https://example.com/final.php agli utenti che accedono alla pagina https://example.com/initial.php. Questo può essere fatto con pochi Metodi PHP, JavaScript e HTML. In questo articolo tratteremo ciascuno dei metodi che puoi utilizzare per reindirizzare PHP su un'altra pagina.

Ecco alcune variabili che utilizzeremo:

Utilizzando la funzione PHP header() per reindirizzare un URL

Se desideri aggiungere un reindirizzamento da partial.php a final.php , puoi inserire il seguente codice nella pagina web individual.php. Invia una nuova intestazione di posizione al browser:

Qui utilizziamo la funzione PHP header() per creare il reindirizzamento. È necessario inserire questo codice prima di qualsiasi codice HTML o testo. Altrimenti riceverai un errore che ti informa che l'intestazione è già stata inviata. È inoltre possibile utilizzare il buffering dell'output per evitare questo errore di invio delle intestazioni. IN seguente esempio questo metodo Reindirizzamenti PHP mostrati in azione:

Per eseguire un reindirizzamento utilizzando la funzione header(), la funzione ob_start() deve essere la prima funzione nello script PHP. Ciò impedirà il verificarsi di errori di intestazione.

COME misura aggiuntiva puoi aggiungere die() o exit() immediatamente dopo il reindirizzamento dell'intestazione in modo che il resto del codice della pagina web non venga eseguito. In alcuni casi robot di ricerca oppure i browser potrebbero non prestare attenzione all'intestazione Posizione. Quali sono le potenziali minacce alla sicurezza del sito:

Per essere chiari: die() o exit() non hanno nulla a che fare con i reindirizzamenti. Vengono utilizzati per impedire l'esecuzione del resto del codice sulla pagina Web.

Quando si reindirizza a una pagina in PHP, si consiglia di utilizzare URL assoluti quando si specifica il valore dell'intestazione Posizione. Ma funzioneranno anche gli URL relativi. Puoi anche utilizzare questa funzione per reindirizzare gli utenti a siti o pagine web esterni.

Conclusione Codice JavaScript-reindirizzare utilizzando la funzione PHP echo()

Questa non è una soluzione PHP pura. Tuttavia, è anche efficace. Puoi usare funzione PHP echo() per generare il codice JavaScript che gestirà il reindirizzamento.

Se utilizzi questa soluzione, non dovrai utilizzare il buffering di output. Ciò impedisce inoltre che si verifichino errori relativi all'invio di intestazioni.

Di seguito sono riportati alcuni esempi che utilizzano metodi diversi JavaScript per il reindirizzamento con pagina corrente ad un altro:

L'unico svantaggio di questo metodo di reindirizzamento a un altro sito PHP è che JavaScript viene eseguito sul lato client. E i tuoi visitatori potrebbero avere JavaScript disabilitato.

Utilizzo dei meta tag HTML per il reindirizzamento

Puoi anche usare HTML di base per eseguire un reindirizzamento. Può sembrare poco professionale, ma funziona. E non devi preoccuparti che JavaScript sia disabilitato nel tuo browser o che abbia precedentemente inviato un errore di intestazione:

Puoi anche utilizzare l'ultima riga dell'esempio precedente per aggiornare automaticamente la pagina ogni "n" secondi. Ad esempio, il seguente codice aggiornerà automaticamente la pagina ogni 8 secondi:

Conclusione

In questo articolo ne ho trattati tre vari metodi reindirizza da indice php, così come i loro vantaggi e svantaggi. Il metodo specifico da utilizzare dipende dagli obiettivi del progetto.

Traduzione dell'articolo "Come posso eseguire un reindirizzamento a un URL diverso prima del caricamento della pagina in PHP" da parte del simpatico team di progetto.

Buono cattivo

(PHP4, PHP5, PHP7)

header — Invia un'intestazione HTTP non elaborata

Descrizione

intestazione (string $header [, bool $replace = TRUE [, int $http_response_code ]]) : void

header() viene utilizzato per inviare un'intestazione HTTP grezza. Consulta la » specifica HTTP/1.1 per ulteriori informazioni sulle intestazioni HTTP.

Ricorda che header() deve essere chiamato prima che venga inviato qualsiasi output effettivo, tramite normali tag HTML, righe vuote in un file o da PHP. È un errore molto comune leggere il codice con funzioni include o require o un'altra funzione di accesso ai file e avere spazi o righe vuote che vengono emesse prima che venga chiamato header(). Lo stesso problema esiste quando si utilizza un singolo file PHP/HTML.


Parametri

La stringa di intestazione.

Ci sono due chiamate di intestazione per casi speciali. La prima è un'intestazione che inizia con la stringa " HTTP/" (maiuscole e minuscole non sono significative), che verrà utilizzato per determinare il codice di stato HTTP da inviare. Ad esempio, se hai configurato Apache per utilizzare un Scritto PHP per gestire le richieste di file mancanti (utilizzando il file ErrorDocument direttiva), potresti voler assicurarti che il tuo script generi il codice di stato corretto.

Il secondo caso speciale è l'intestazione "Location:". Non solo invia questa intestazione al browser, ma restituisce anche a REINDIRIZZARE(302) codice di stato al browser a meno che il file 201 o a 3xx il codice di stato è già stato impostato.

Sostituire

Il parametro opzionale replace indica se l'intestazione deve sostituire un'intestazione precedente simile o aggiungere una seconda intestazione dello stesso tipo. Per impostazione predefinita sostituirà, ma se passi FALSE come secondo argomento puoi forzare più intestazioni dello stesso tipo. Per esempio:

Http_response_code

Forza il codice di risposta HTTP sul valore specificato. Tieni presente che questo parametro ha effetto solo se l'intestazione non è vuota.

Valori restituiti

Non viene restituito alcun valore.

Registro delle modifiche Descrizione della versione
5.1.2 Questa funzione ora impedisce l'invio di più intestazioni contemporaneamente come protezione contro gli attacchi di header injection.
Esempi

Esempio n. 1 Finestra di dialogo Scarica

Se tu vuoi all'utente verrà richiesto di salvare i dati sei invio, ad esempio un file PDF generato, è possibile utilizzare l'intestazione » Content-Disposition per fornire un nome file consigliato e forzare il browser a visualizzare la finestra di dialogo di salvataggio.

I migliori articoli sull'argomento