Server php fără păcat. Matrice superglobală $_SERVER
$HTTP_SERVER_VARS [șters]
(PHP 4 >= 4.1.0, PHP 5, PHP 7)
$_SERVER -- $HTTP_SERVER_VARS [șters] — Informații despre server și mediul de execuție
Descriere
Variabila $_SERVER este o matrice care conține informații precum anteturile scripturilor, căile și locațiile. Intrările din această matrice sunt create de serverul web. Nu există nicio garanție că fiecare server web va oferi oricare dintre ele; serverul poate omite unele dintre ele sau poate furniza altele care nu sunt enumerate aici. Cu toate acestea, multe dintre aceste variabile sunt prezente în specificația » CGI/1.1, așa că vă puteți aștepta să fie implementate pe serverul dvs. web.
Variabila $HTTP_SERVER_VARS conține aceleași informații inițiale, dar nu este superglobală. (Rețineți că $HTTP_SERVER_VARS și $_SERVER sunt variabile diferite, așa că PHP le tratează în consecință). De asemenea, rețineți că „matricele lungi” au fost eliminate în PHP 5.4.0, deci $HTTP_SERVER_VARS nu mai există.
Indici
Puteți găsi sau nu oricare dintre următoarele elemente în matricea $_SERVER. Rețineți că puține, dacă există, articole vor fi disponibile (sau vor face cu adevărat diferența) dacă PHP rulează pe linia de comandă.
„PHP_SELF” Numele fișierului script care rulează în prezent, în raport cu rădăcina documentului. De exemplu, $_SERVER["PHP_SELF"] în scriptul de la http://example.com/foo/bar.php ar fi /foo/bar.php . Constanta __FILE__ conține calea completă și numele fișierului curent (adică, conectat). Dacă PHP rulează pe linia de comandă, această variabilă conține numele scriptului, începând cu PHP 4.3.0. Anterior nu era disponibil."argv" O serie de argumente transmise scriptului. Când scriptul este rulat pe linia de comandă, oferă acces asemănător C la opțiunile din linia de comandă. Când este apelată prin metoda GET, această matrice va conține șirul de interogare."argc" Conține numărul de parametri trecuți scriptului (dacă este lansat pe linia de comandă).„GATEWAY_INTERFACE” Conține versiunea specificației CGI utilizată de server; De exemplu" CGI/1.1". „SERVER_ADDR” Adresa IP a serverului pe care rulează scriptul curent."NUMELE SERVERULUI" Numele gazdei pe care rulează scriptul curent. Dacă scriptul rulează pe o gazdă virtuală, acesta va conține numele definit pentru gazda virtuală respectivă.„SERVER_SOFTWARE” Șirul de identificare a serverului specificat în anteturi atunci când apare un răspuns la o solicitare.„SERVER_PROTOCOL” Numele și versiunea protocolului de informații prin care a fost solicitată pagina; De exemplu " HTTP/1.0"; „REQUEST_METHOD” Ce metodă a fost folosită pentru a solicita pagina; De exemplu " OBȚINE", "CAP", "POST", "A PUNE".
„REQUEST_TIME” Marca temporală a începerii cererii. Disponibil începând cu PHP 5.1.0.„REQUEST_TIME_FLOAT” Marca temporală a începerii cererii, cu precizie de microsecunde. Disponibil începând cu PHP 5.4.0."ȘIR DE INTEROGARE" Șirul de interogare, dacă există, care a preluat pagina.„DOCUMENT_ROOT” Directorul rădăcină al documentului în care este executat scriptul curent este exact cel specificat în fișierul de configurare a serverului.„HTTP_ACCEPT” Conținutul antetului Accept: din cererea curentă, dacă există." HTTP_ACCEPT_CHARSET " Conținutul antetului Accept-Charset: din cererea curentă, dacă există. De exemplu: " izo-8859-1,*,utf-8". " HTTP_ACCEPT_ENCODING " Conținutul antetului Acceptare-codare: gzip". " HTTP_ACCEPT_LANGUAGE " Conținutul antetului Limba de acceptare: din cererea curentă, dacă există. De exemplu: " ro". „HTTP_CONNECTION” Conținutul antetului Conexiune: din cererea curentă, dacă există. De exemplu: " Ține în viață". „HTTP_HOST” Conținutul antetului Gazdă: din cererea curentă, dacă există.„HTTP_REFERER” Adresa paginii (dacă există) care a adus browserul utilizatorului la această pagină. Acest antet este setat de browserul web al utilizatorului. Nu toate browserele îl instalează, iar unele vă permit să modificați conținutul antetului HTTP_REFERER ca o funcție suplimentară. Într-un cuvânt, chiar nu se poate avea încredere în el." HTTP_USER_AGENT " Conținutul antetului Agent utilizator: din cererea curentă, dacă există. Această linie conține browserul pe care utilizatorul l-a folosit pentru a solicita această pagină. Un exemplu tipic este linia: Mozilla/4.5 (X11; U; Linux 2.2.9 i586). Printre altele, puteți utiliza această valoare cu funcția get_browser() pentru a adapta rezultatul paginii dvs. la capacitățile browserului utilizatorului„HTTPS” Acceptă o valoare nevidă dacă solicitarea a fost făcută prin protocolul HTTPS.cometariu:
Scriptul PHP se iese după trimiterea antetelor (adică după efectuarea oricărei ieșiri fără a pune în tampon ieșirea), dacă cererea a fost făcută folosind metoda CAP.
„REMOTE_ADDR” Adresa IP de la care utilizatorul vizualizează pagina curentă."GAZDA LA DISTANTA" Gazda la distanță de la care utilizatorul vizualizează pagina curentă. Căutarea inversă DNS se bazează pe valoarea variabilei REMOTE_ADDR.cometariu: Rețineți că atunci când utilizați ISAPI cu IIS, valoarea va fi oprit, dacă solicitarea nu a fost făcută prin HTTPS.
„REMOTE_PORT” Portul de pe mașina de la distanță care este utilizat pentru a comunica cu serverul web.„REMOTE_USER” Utilizator autentificat.„REDIRECT_REMOTE_USER” Utilizatorul autentificat dacă solicitarea a fost redirecționată intern.„SCRIPT_FILENAME”cometariu: Serverul dvs. web trebuie să fie configurat pentru a crea această variabilă. De exemplu, în Apache aveți nevoie de prezența directivei Căutare nume de gazdă activatăîn fișierul httpd.conf astfel încât această variabilă să fie creată. Vezi si gethostbyaddr().
Calea absolută către scriptul care se execută în prezent.
„SERVER_ADMIN” Această variabilă își obține valoarea (pentru Apache) dintr-o directivă din fișierul de configurare a serverului. Dacă scriptul rulează pe o gazdă virtuală, aceasta va fi valoarea definită pentru gazda virtuală respectivă.„SERVER_PORT” Portul de pe computerul server pe care îl folosește serverul web pentru a se conecta. Pentru setările implicite, valoarea va fi " 80 "; folosind SLL, de exemplu, această valoare va fi configurată pentru conexiunile HTTP securizate.cometariu:
Dacă scriptul este rulat pe linia de comandă (CLI) folosind o cale relativă, cum ar fi file.php sau ../file.php , variabila $_SERVER["SCRIPT_FILENAME"] va conține calea relativă specificată de utilizator.
„SERVER_SIGNATURE” Un șir care conține versiunea serverului și numele gazdei virtuale care este adăugat la paginile generate de server, dacă este activat.„PATH_TRANSLATED” Calea bazată pe sistemul de fișiere (nu pe rădăcina documentului) către scriptul curent, după ce serverul a făcut orice mapare virtual-real.cometariu: Pentru a obține un port fizic (real) în Apache 2, trebuie să instalați UseCanonicalName = ActivatȘi UseCanonicalPhysicalPort = Activat, în caz contrar, această valoare poate fi înlocuită și nu poate returna valoarea reală a portului fizic. Bazarea pe această valoare este nesigură în contextul aplicațiilor care necesită securitate sporită.
„SCRIPT_NAME” Conține calea către scriptul care se execută în prezent. Acest lucru este util pentru paginile care trebuie să indice către ele însele. Constanta __FILE__ conține calea completă și numele fișierului curent (adică inclus).„REQUEST_URI” URI care a fost transmis pentru a accesa această pagină. De exemplu, " /index.html". „PHP_AUTH_DIGEST” Când se efectuează autentificarea HTTP Digest, acestei variabile i se atribuie antetul „Autorizare”, care este trimis de client (acesta trebuie apoi utilizat pentru validarea corespunzătoare).„PHP_AUTH_USER” Când se realizează autentificarea HTTP, această variabilă este setată la numele de utilizator furnizat de utilizator.„PHP_AUTH_PW” Când se realizează autentificarea HTTP, această variabilă este setată la parola furnizată de utilizator.„AUTH_TYPE” Când se realizează autentificarea HTTP, această variabilă este setată la tipul de autentificare care este utilizat.„PATH_INFO” Conține orice cale furnizată de utilizator după numele scriptului, dar înaintea șirului de interogare, dacă este disponibil. De exemplu, dacă scriptul curent este solicitat de adresa URL http://www.example.com/php/path_info.php/some/stuff?foo=bar , atunci variabila $_SERVER["PATH_INFO"] va conține /niste chestii?>cometariu: Începând cu PHP 4.3.2, variabila PATH_TRANSLATED nu mai este setată implicit în Apache 2 SAPI, în comparație cu Apache versiunea 1, unde a fost setată la aceeași valoare ca variabila SCRIPT_FILENAME atunci când nu este utilizată de Apache. Această modificare a fost făcută pentru a se conforma cu specificația CGI, unde variabila PATH_TRANSLATED ar trebui să existe numai atunci când este definită PATH_INFO. Utilizatorii Apache 2 pot folosi directiva AcceptPathInfo = Activatîn fișierul de configurare httpd.conf pentru a seta variabila PATH_INFO.
Rezultatul rulării acestui exemplu va fi ceva de genul acesta.
În primul rând, vom îmbunătăți pagina de înregistrare adăugând posibilitatea de a încărca un avatar. Imaginea sursă trebuie să fie în format jpg, gif sau png. De asemenea, nu ar trebui să depășească 2 MB. Nu vă faceți griji, după ce este comprimat de script, dimensiunea avatarului va fi de aproximativ 3 kb și format jpg. Deschide pagina reg.phpși adăugați-l în etichetă < formă> linia enctype="multipart/form-data", ca în exemplu: