Este sigur să folosești $_SERVER['REQUEST_URI']?
Am căutat alte răspunsuri și am văzut că $_SERVER['REQUEST_URI']
este de obicei recomandat și este răspunsul acceptat pentru obținerea URI-ului curent al paginii împreună cu $_SERVER['HTTP_HOST']
.
Am analizat codul sursă al WordPress și este folosit pe scară largă și acolo.
Dar am găsit unele controverse legate de faptul că nu funcționează pe IIS. Poate a fost doar o problemă din trecut? Am încercat chiar să instalez IIS pe PC-ul meu pentru a verifica, dar nu pot să-l configurez și pare exagerat doar pentru a confirma acest lucru.
Se pare că este singura variabilă SERVER care include informațiile pe care le doresc:
/pane-slug/nggallery/tags/dark-colors/
partea evidențiată din exemplu este adăugată prin NextGEN Gallery 2 și este accesibilă doar prin $_SERVER['REQUEST_URI']
, nimic altceva. Anterior era accesibilă folosind get_query_var, dar nu mai este.
Dacă $_SERVER['REQUEST_URI']
nu este setat, simularea lui prin setarea manuală și crearea lui pe baza PHP_SELF
și QUERY_STRING
oferă rezultate neechivalente.
Așadar, este sigur să te bazezi pe faptul că $_SERVER['REQUEST_URI']
este întotdeauna disponibil pentru utilizare în instalările WP? Presupun că da, deoarece codul de bază al WordPress îl folosește, dar a trebuit să întreb.
$_SERVER['REQUEST_URI']
nu va fi gol în WordPress, deoarece este completat în wp_fix_server_vars()
(fișierul wp-includes/load.php
).
Această funcție este apelată în wp-settings.php
înainte de încărcarea oricărui plugin. Deci îl puteți folosi.
Dar întotdeauna escapați valoarea. Este globală și poate fi modificată de orice alt cod, așa că nu vă puteți încrede în valoarea sa.
Un caz diferit este accesarea valorii prin
filter_input(INPUT_SERVER, 'REQUEST_URI');
Accesul la scriere de către WordPress nu va afecta valoarea, deoarece filter_input()
preia întotdeauna valoarea originală. Deși aceasta este abordarea mai modernă și mai curată, s-ar putea să eșueze în unele circumstanțe. Consultați și acest thread pe Stack Overflow.

Mulțumesc mult, informații excelente. Acum pot să dezinstalez IIS și să-l uit :) Am căutat în fișierele WP $_SERVER['REQUEST_URI'] în masă, dar cumva am sărit peste ceea ce ai evidențiat. Desigur că o să-l scapez, nu am încredere în nimic. Aveam nevoie doar să știu dacă e utilizabil. Mulțumesc din nou.
