Redirecționați către o altă pagină php. Cum să setați o redirecționare către o altă adresă URL în PHP înainte ca pagina să se încarce

(PHP 4, PHP 5, PHP 7)

antet — Trimite antet HTTP

Descriere

antet (șir $header [, bool $replace = TRUE [, int $http_response_code ]]): void

header() este folosit pentru trimite HTTP-rupere. Specificația » HTTP/1.1 conține detalii detaliate Descriere HTTP-titluri.

Amintiți-vă că funcția header() poate fi apelată doar dacă nu au fost încă trimise date către client. Adică, ar trebui să fie primul în ieșire, nu ar trebui să existe etichete HTML, linii goale etc. înainte de apel. Destul de des apare o eroare la citirea codului funcțiile fișierului, precum include sau require , există spații sau spații în acest cod linii goale, care sunt tipărite înainte ca header() să fie apelat. Aceleași probleme pot apărea atunci când utilizați PHP/HTML în același fișier.


Lista parametrilor

Linia de titlu.

Există două anteturi speciale. Una dintre ele începe cu „ HTTP/" (caseta nu este importantă) și este folosit pentru a trimite codul stări HTTP. De exemplu, dacă Server web Apache configurat în așa fel încât cererile către fișiere inexistente să fie procesate folosind un script PHP (folosind directiva ErrorDocument), probabil că veți dori să vă asigurați că scriptul generează codul de stare corect.

Un alt tip special de antet este „Locație:”. În acest caz, funcția nu numai că trimite acest antet către browser, dar îi returnează și un cod de stare REDIRECŢIONA(302), dacă codul nu a fost setat anterior 201 sau 3xx.

A inlocui

Parametrul opțional de înlocuire determină dacă antetul similar anterior sau antetul de același tip trebuie înlocuit. În mod implicit, antetul va fi înlocuit, dar dacă treceți FALSE , puteți specifica mai multe antete de același tip. De exemplu:

Http_response_code

Forțează un cod de răspuns HTTP. Rețineți că acest lucru va funcționa numai dacă șirul antetului nu este gol.

Valori returnate

Această funcție nu returnează o valoare după execuție.

Lista de modificări Exemple

Exemplul #1 Dialog de încărcare

Dacă doriți să avertizați utilizatorul să salveze datele trimise, cum ar fi un fișier PDF generat, puteți utiliza antetul » Content-Disposition, care înlocuiește numele de fișier recomandat și face ca browserul să afișeze un dialog de descărcare.

Exemplul #2 Directive pentru lucrul cu memoria cache

Scripturile PHP generează adesea continut dinamic, care nu ar trebui să fie stocat în cache de browser-ul client sau de orice handler intermediar, cum ar fi serverele proxy. Puteți forța dezactivarea memoriei cache pe multe proxy-uri și browsere prin transmiterea anteturilor:

Notă:

În unele cazuri, paginile dvs. nu vor fi stocate în cache de browser, chiar dacă nu ați trecut aceste anteturi. Browserele au anumite setări cu care utilizatorul poate schimba cursul normal al stocării în cache și îl poate dezactiva. Ar trebui să suprascrieți orice setări care ar putea afecta memorarea în cache a scripturilor, trimițând anteturile de mai sus.

În plus, pentru cazurile în care sunt utilizate sesiuni, puteți seta setările de configurare session_cache_limiter() și session.cache_limiter. Aceste setări pot fi folosite pentru a genera automat anteturi de control pentru stocarea în cache.

Note

Notă:

Anteturile vor fi accesate și afișate numai dacă SAPI-ul pe care îl utilizați le acceptă.

Notă:

Pentru a rezolva această problemă, puteți salva ieșirea scriptului. În acest caz, toate datele de ieșire vor fi stocate pe server până când este dată o comandă explicită de a transmite datele. Puteți controla manual tamponarea utilizând funcțiile ob_start() și ob_end_flush() sau setând directiva output_bufferingîn fișierul de configurare php.ini sau ajustând configurația serverului în consecință.

Notă:

Linia de antet de stare HTTP va fi întotdeauna trimisă prima clientului, indiferent dacă apelul header() corespunzător a fost primul sau nu. Această stare poate fi suprascrisă apelând header() cu linie nouă stare în orice moment pot fi trimise anteturi HTTP.

Notă:

ÎN Microsoft Internet Explorer 4.01 are o eroare care împiedică acest lucru să funcționeze. Nu există nicio cale de ocolire. La Microsoft Internet Explorer 5.5 are și acest bug, dar poate fi deja remediat prin instalarea Service Pack 2 sau o versiune ulterioară.

Notă: Dacă modul sigur este activat, uid-ul scriptului va fi adăugat la tărâm părți WWW-Autentificare antet (utilizat pentru autentificarea HTTP).

Notă:

Specificația HTTP/1.1 necesită un URI absolut ca argument » Locație:, inclusiv schema, numele gazdei și cale absolută, deși unii clienți sunt capabili să accepte URI-uri relative. Puteți crea singur un URI absolut folosind $_SERVER["HTTP_HOST"] , $_SERVER["PHP_SELF"] și dirname() :