Ablakok.  Vírusok.  Jegyzetfüzetek.  Internet.  hivatal.  Segédprogramok.  Drivers

$HTTP_SERVER_VARS [eltávolítva]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_SERVER -- $HTTP_SERVER_VARS [eltávolítva]Szerver és futásidejű információk

Leírás

A $_SERVER változó egy olyan tömb, amely olyan információkat tartalmaz, mint a szkript fejlécek, elérési utak és helyek. A tömb bejegyzéseit a webszerver hozza létre. Nincs garancia arra, hogy minden webszerver biztosítani fogja ezeket; a szerver ezek közül néhányat kihagyhat, vagy megadhat másokat, amelyek itt nem szerepelnek. Ezek közül a változók közül azonban sok megtalálható a » CGI/1.1 specifikációban, így elvárható, hogy egy adott webszerveren is implementálva legyenek.

A $HTTP_SERVER_VARS változó ugyanazokat a kezdeti információkat tartalmazza, de nem szuperglobális. (Ne feledje, hogy a $HTTP_SERVER_VARS és a $_SERVER különböző változók, ezért a PHP ennek megfelelően kezeli őket.) Vegye figyelembe azt is, hogy a PHP 5.4.0-ban eltávolították a "hosszú tömböket", így a $HTTP_SERVER_VARS már nem létezik.

Indexek

A $_SERVER tömbben előfordulhat, hogy nem találja a következő elemeket. Ne feledje, hogy kevés elem lesz elérhető (vagy nagyon fontos), ha a PHP parancssorban fut.

"PHP_SELF" Az éppen végrehajtott szkript fájlneve a dokumentum gyökéréhez viszonyítva. Például a $_SERVER["PHP_SELF"] egy szkriptben a http://example.com/foo/bar.php címen a /foo/bar.php lesz. A __FILE__ konstans tartalmazza az aktuális (azaz benne foglalt) fájl teljes elérési útját és fájlnevét. Ha a PHP fut parancs sor, ez a változó tartalmazza a szkript nevét a PHP 4.3.0 óta. Korábban nem volt elérhető."argv" A szkriptnek átadott argumentumok tömbje. Amikor a szkript a parancssorban fut, C-szerű hozzáférést biztosít a parancssori opciókhoz. Ha a GET metóduson keresztül hívják meg, ez a tömb tartalmazza a lekérdezési karakterláncot."argc" Tartalmazza a szkriptnek átadott paraméterek számát (ha a parancssorban elindult)."GATEWAY_INTERFACE" Tartalmazza a CGI specifikáció kiszolgáló által használt verzióját; Például" CGI/1.1". "SERVER_ADDR" Annak a szervernek az IP-címe, ahol az aktuális szkript fut."SZERVER NÉV" Annak a gazdagépnek a neve, ahol az aktuális szkript fut. Ha a szkript egy virtuális gazdagépen fut, ez tartalmazza a számára meghatározott nevet virtuális gazdagép. "SERVER_SOFTWARE" A kérés megválaszolásakor a fejlécekben megadott szerverazonosító karakterlánc."SERVER_PROTOCOL" Annak az információs protokollnak a neve és verziója, amelyen keresztül az oldalt lekérték; Például " HTTP/1.0"; "REQUEST_METHOD" Milyen módszerrel kérték le az oldalt; Például " KAP", "FEJ", "POST", "PUT".

Megjegyzés:

A PHP szkript leáll a fejlécek elküldése után (vagyis miután bármilyen kimenetet végrehajt kimeneti pufferelés nélkül), ha a kérés a metódussal történt FEJ.

"REQUEST_TIME" A kérés kezdetének időbélyege. PHP 5.1.0 óta elérhető."REQUEST_TIME_FLOAT" A kérés kezdetének időbélyege, mikroszekundum pontossággal. PHP 5.4.0 óta elérhető."QUERY_STRING" A lekérdezési karakterlánc, ha van ilyen, amellyel az oldal lekérésre került."DOCUMENT_ROOT" A dokumentum gyökérkönyvtára, ahol az aktuális szkript fut, pontosan megegyezik a megadottal konfigurációs fájl szerver."HTTP_ACCEPT" Fejléc tartalma elfogad: az aktuális kérésből, ha van ilyen."HTTP_ACCEPT_CHARSET" Fejléc tartalma AcceptCharset: az aktuális kérésből, ha van ilyen. Például: " iso-8859-1,*,utf-8". "HTTP_ACCEPT_ENCODING" Fejléc tartalma Kódolás elfogadása: gzip". "HTTP_ACCEPT_LANGUAGE" Fejléc tartalma Elfogadás-nyelv: az aktuális kérésből, ha van ilyen. Például: " hu". "HTTP_CONNECTION" Fejléc tartalma kapcsolat: az aktuális kérésből, ha van ilyen. Például: " Életben tartani". "HTTP_HOST" Fejléc tartalma házigazda: az aktuális kérésből, ha van ilyen."HTTP_REFERER" Annak az oldalnak a címe (ha van), amely a felhasználó böngészőjét erre az oldalra hozta. Ezt a fejlécet a felhasználó webböngészője állítja be. Nem minden böngésző telepíti, és néhány további funkcióként lehetővé teszi a HTTP_REFERER fejléc tartalmának módosítását. Egyszóval tényleg nem lehet megbízni benne."HTTP_USER_AGENT" Fejléc tartalma Felhasználói ügynök: az aktuális kérésből, ha van ilyen. Ez a karakterlánc annak a böngészőnek a megnevezését tartalmazza, amellyel a felhasználó ezt az oldalt kérte. Tipikus példa erre a sor: Mozilla/4.5 (X11; U; Linux 2.2.9 i586). Többek között ezt az értéket használhatja a függvénnyel get_browser() hogy az oldal kimenetét a felhasználó böngészőjének képességeihez igazítsa"https" Nem üres értéket vesz fel, ha a kérés a HTTPS protokollon keresztül történt.

Megjegyzés: Vegye figyelembe, hogy ha az ISAPI-t IIS-sel használja, az érték a következő lesz ki ha a kérés nem a HTTPS protokollon keresztül történt.

"REMOTE_ADDR" Az az IP-cím, amelyről a felhasználó az aktuális oldalt nézi."REMOTE_HOST" Az a távoli gazdagép, amelyről a felhasználó az aktuális oldalt nézi. A fordított DNS-keresés a REMOTE_ADDR változó értékén alapul.

Megjegyzés: A webszervernek be kell állítania ezt a változót. Például az Apache-ban szükség van a direktíva jelenlétére A gazdagépnév keresése bekapcsolva a httpd.conf fájlban ennek a változónak a létrehozásához. Lásd még gethostbyaddr().

"REMOTE_PORT" A távoli gép portja, amely a webszerverrel való kommunikációra szolgál."REMOTE_USER" A hitelesített felhasználó."REDIRECT_REMOTE_USER" A hitelesített felhasználó, ha a kérést belsőleg irányították át."SCRIPT_FILENAME"

Az abszolút elérési út a szkripthez Ebben a pillanatban kivégzés alatt áll.

Megjegyzés:

Ha a szkript a parancssorban (CLI) fut egy relatív elérési út használatával, például file.php vagy ../file.php , akkor a $_SERVER["SCRIPT_FILENAME"] változó tartalmazza a felhasználó által megadott relatív elérési utat.

"SERVER_ADMIN" Ez a változó értékét (Apache esetén) a szerver konfigurációs fájljában található direktívából kapja. Ha a szkript egy virtuális gazdagépen fut, ez az adott virtuális gazdagéphez meghatározott érték lesz."SZERVER PORT" A szerver számítógép portja, amelyet a webszerver a csatlakozáshoz használ. Az alapértelmezett beállításoknál az érték a következő lesz 80 "; például az SLL használatával ez az érték a biztonságos HTTP-kapcsolatokhoz beállított érték lesz.

Megjegyzés: Az Apache 2 fizikai (valódi) portjának eléréséhez telepítenie kell UseCanonicalName = BeÉs UseCanonicalPhysicalPort = Be, ellenkező esetben ez az érték hamis lehet, és nem adja vissza a fizikai port valós értékét. Erre az értékre hagyatkozni nem biztonságos olyan alkalmazások esetén, amelyek fokozott biztonságot igényelnek.

"SERVER_SIGNATURE" A kiszolgáló verzióját és a kiszolgáló által generált oldalakhoz hozzáadandó virtuális gazdagép nevét tartalmazó karakterlánc, ha engedélyezve van."PATH_TRANSLATED" Fájlrendszer (nem dokumentum gyökér) alapú elérési útja az aktuális szkripthez, miután a szerver elvégezte a virtuális-valós leképezést.

Megjegyzés: A PHP 4.3.2-től kezdődően a PATH_TRANSLATED változó implicit módon nincs beállítva az Apache 2 SAPI-ban, szemben az Apache 1-es verziójával, ahol a SCRIPT_FILENAME értékkel megegyező értékre van állítva, ha az Apache nem használja. Ez a módosítás a CGI specifikációnak való megfelelés érdekében történt, ahol a PATH_TRANSLATED változó csak akkor létezhet, ha a PATH_INFO meg van adva. Az Apache 2 felhasználói használhatják a direktívát AcceptPathInfo = Be a httpd.conf konfigurációs fájlban a PATH_INFO változó beállításához.

"SCRIPT_NAME" Az éppen futó szkript elérési útját tartalmazza. Ez olyan oldalak esetében hasznos, amelyeknek magukra kell mutatniuk. A __FILE__ konstans tartalmazza az aktuális (azaz benne foglalt) fájl teljes elérési útját és nevét."REQUEST_URI" Az oldal eléréséhez átadott URI. Például, " /index.html". "PHP_AUTH_DIGEST" A HTTP Digest hitelesítés végrehajtásakor ez a változó az ügyfél által küldött "Authorization" fejlécre van állítva (amelyet ezután a megfelelő érvényesítéshez kell használni)."PHP_AUTH_USER" A HTTP-hitelesítés végrehajtásakor ez a változó a felhasználó által megadott felhasználónévre lesz beállítva."PHP_AUTH_PW" HTTP-hitelesítés végrehajtásakor ez a változó a felhasználó által megadott jelszóra lesz beállítva."AUTH_TYPE" HTTP-hitelesítés végrehajtásakor ez a változó a használt hitelesítés típusára lesz beállítva."PATH_INFO" Tartalmaz minden felhasználó által megadott elérési utat a szkript neve után, de a lekérdezési karakterlánc előtt, ha elérhető. Például, ha az aktuális szkriptet a http://www.example.com/php/path_info.php/some/stuff?foo=bar URL-címen kérik, akkor a $_SERVER["PATH_INFO"] változó tartalmazni fogja /néhány/cucc?>

A példa futtatásának eredménye valami ilyesmi lesz.

A második leckében még két órát írunk, és teljesen befejezzük a forgatókönyv belső részét.

Terv

Ennek az oktatóanyagnak a célja egy egyszerű alkalmazás létrehozása, amely lehetővé teszi a felhasználók számára a regisztrációt, a bejelentkezést, a kijelentkezést és a beállítások módosítását. Azt az osztályt, amely a felhasználóra vonatkozó összes információt tartalmazni fogja, User néven fogjuk hívni, és a User.class.php fájlban lesz meghatározva. A belépésért/kilépésért felelős osztály neve UserTools (UserTools.class.php).

Egy kicsit az osztályelnevezésről

A helyes hang az, hogy az osztályfájlokat ugyanazon a néven nevezzük el, mint magát az osztályt. Így könnyen meghatározható az osztály mappájában lévő egyes fájlok célja.

Az is gyakori, hogy az osztály fájlnevének végére adják a .class vagy .inc karaktereket. Így egyértelműen meghatározzuk a fájl célját, és a .htaccess segítségével korlátozhatjuk a hozzáférést ezekhez a fájlokhoz.

Felhasználói osztály (User.class.php)

Ez az osztály határoz meg minden felhasználót. A növekedéssel ez az alkalmazás a „Felhasználó” meghatározása jelentősen megváltozhat. Szerencsére az OOP programozás megkönnyíti további felhasználói attribútumok hozzáadását.

Konstruktőr

Ebben az osztályban a konstruktort fogjuk használni - ez egy olyan függvény, amely automatikusan meghívódik az osztály következő példányának létrehozásakor. Ez lehetővé teszi bizonyos attribútumok automatikus közzétételét a projekt létrehozása után. Ebben az osztályban a konstruktor egyetlen argumentumot vesz fel: egy asszociatív tömböt, amely egy sort tartalmaz az adatbázisunkban lévő felhasználók táblájából.

request_once "db.osztály.php"; osztály Felhasználó ( publikus $id; nyilvános $felhasználónév; nyilvános $hashedPassword; nyilvános $e-mail;
nyilvános $joinDate;
//A konstruktor meghívása új objektum létrehozásakor//Egy asszociatív tömböt vesz fel argumentumként a DB sorral. függvény __construct($data) ( $this->id = (isset($data["id"])) ? $data["id"] : ""; $this->username = (isset($data[" felhasználónév"])) ? $data["felhasználónév"] : ""; $this->hashedPassword = (isset($data["jelszó"])) ? $data["jelszó"] : ""; $this- >email = (isset($data["email"])) ? $data["email"] : ""; $this->joinDate = (isset($data["csatlakozási_dátum"])) ? $adat[" csatlakozás dátuma"] : ""; )
public function save($isNewUser = false) ( //új adatbázis-objektum létrehozása. $db = new DB(); //ha a felhasználó már regisztrálva van és mi"újra //csak frissítjük az adatait. if(!$isNewUser ) ( //az adattömb beállítása $data = array("username" => ""$this->username"", "password" => ""$this->hashedPassword"",
"email" => ""$this->email"");
//az adatbázis sorának frissítése $db->update($data, "users", "id = ".$this->id); )else ( //ha a felhasználót először regisztrálják. $data = array("username" => ""$this->username"", "password" => ""$this->hashedPassword"" , "email" => ""$this->email", "join_date" => """.date("Y-m-d H:i:s",time())."""); $this-> id = $db->insert($adat, "felhasználók"); $this->joinDate = idő(); ) return true; ) ) ?>

Magyarázat

A kód első része, az osztályzónán kívül biztosítja az osztály és az adatbázis kapcsolatát (mert a User osztályban van egy függvény, amely ezt az osztályt igényli).

Az 1. leckében használt „védett” osztályváltozók helyett „nyilvánosként” definiáljuk őket. Ez azt jelenti, hogy az osztályon kívüli bármely kód hozzáfér ezekhez a változókhoz, amikor a User objektummal dolgozik.

A konstruktor egy tömböt vesz fel, amelyben a táblázat oszlopai a kulcsok. Az osztályváltozót a $this->variablename használatával definiáljuk. Ennek az osztálynak a példájában mindenekelőtt azt ellenőrizzük, hogy létezik-e egy adott kulcs értéke. Ha igen, akkor az osztályváltozót erre az értékre állítjuk. Ellenkező esetben üres karakterlánc. A kód a forgalom jelölésének rövid formáját használja, ha:

$érték = (3 == 4) ? "A": "B";

Ebben a példában azt ellenőrizzük, hogy 3 egyenlő-e négy! Ha igen - akkor $érték = "A", nem - $érték = "B". Példánkban az eredmény $érték = “B”.

A felhasználók adatainak mentése az adatbázisba

A mentés funkcióval módosítható az adatbázistábla a User objektum aktuális értékeivel. Ez a függvény az első oktatóanyagban létrehozott DB osztályt használja. Osztályváltozók segítségével beállítjuk a $data tömböt. Ha ez az első alkalom, hogy a felhasználót eltárolják, akkor a $isNewUser $true-ként kerül átadásra (az alapértelmezett érték false). Ha $isNewUser = $true, akkor a DB osztály insert() függvénye kerül meghívásra. Ellenkező esetben az update() függvény kerül meghívásra. Mindkét esetben a felhasználói objektum információi az adatbázisban tárolódnak.

Osztály UserTools.class.php

Ez az osztály a felhasználókkal kapcsolatos függvényeket fogja tartalmazni: login(), logout(), checkUsernameExists() és get(). De ennek az alkalmazásnak a bővítésével még sok mást is hozzáadhat.

//UserTools.class.php request_once "User.class.php"; request_once "db.osztály.php";
osztály UserTools(
//A felhasználó bejelentkezése. Először ellenőrzi, hogy a //felhasználónév és a jelszó egyezik-e az adatbázis egy sorával. //Ha sikeres, állítsa be a munkamenet változóit //és tárolja a felhasználói objektumot.
nyilvános funkció bejelentkezés ($felhasználónév, $jelszó)
{
$hashedPassword = md5($jelszó); $result = mysql_query("SELECT * FROM felhasználók WHERE felhasználónév = "$felhasználónév" ÉS jelszó = "$hashedPassword""); if(mysql_szam_sorok($eredmény) == 1) ( $_SESSION["felhasználó"] = serialize(new User(mysql_fetch_assoc($result))); $_SESSION["bejelentkezési_idő"] = idő(); $_SESSION["bejelentkezés "] = 1; return true; )else( return false; ) )
//A felhasználó kijelentkezése. Törölje a munkamenet változóit. public function logout() ( unset($_SESSION["felhasználó"]); unset($_SESSION["bejelentkezési_idő"]); unset($_SESSION["logged_in"]); session_destroy(); ) //Ellenőrizze, hogy létezik felhasználónév. //Ezt a regisztráció során hívják meg, hogy minden felhasználónév egyedi legyen. public function checkUsernameExists($username) ( $eredmény = mysql_query("válasszon azonosítót olyan felhasználóktól ahol username="$username""); if(mysql_num_rows($result) == 0) ( return false; )else( true return; )
}
//felhasználó beszerzése //felhasználói objektumot ad vissza. A felhasználói azonosítót veszi be bemeneti nyilvános függvénynek get($id) ( $db = new DB(); $result = $db->select("users", "id = $id"); return new User($result ) ) )
?>

login() függvény

A login() függvény magától értetődő. Felveszi a $felhasználónév és a $password felhasználói argumentumokat, és ellenőrzi, hogy egyeznek-e. Ha minden egyezik, létrehoz egy felhasználói objektumot az összes információval, és eltárolja a munkamenetben. Ne feledje, hogy csak a PHP serialize() függvényét használjuk. Létrehozza az objektum tartós változatát, amely könnyen megszüntethető az unserialize() segítségével. A bejelentkezési idő is mentésre kerül. Ez később felhasználható arra, hogy a felhasználók tájékoztatást kapjanak az oldalon való tartózkodásuk időtartamáról.

Azt is észreveheti, hogy a $_SESSION["logged_in"] értéket 1-re állítjuk. Ezzel minden oldalon könnyen ellenőrizhetjük, hogy a felhasználó be van-e jelentkezve. Elég csak ezt a változót ellenőrizni.

logout() függvény

Szintén egyszerű funkció. A PHP unset() függvénye törli a változókat a memóriában, míg a session_destroy() törli a munkamenetet.

checkUsernameExists() függvény

Aki tud angolul, az könnyen megérti a funkciót. Egyszerűen lekérdezi az adatbázist, hogy használ-e ilyen bejelentkezést vagy sem.

get() függvény

Ez a függvény egyedi felhasználói azonosítót vesz fel, és lekérdezi az adatbázist a DB osztály, nevezetesen a select() függvény segítségével. Egy asszociatív tömböt vesz igénybe néhány felhasználói információval, és létrehoz egy új felhasználói objektumot, átadva a tömböt a konstruktornak.

Hol lehet használni? Például, ha olyan oldalt hoz létre, amelyen meghatározott felhasználói profilokat kell megjeleníteni, akkor ezeket az információkat dinamikusan kell átvennie. Ezt így teheti meg: (tegyük fel, hogy az URL http://www.website.com/profile.php?felhasználóazonosító=3)

//megjegyzés: először meg kell nyitnia egy adatbázis-kapcsolatot. //Erről további információkért lásd az 1. részt. //Győződjön meg arról is, hogy az osztály fájljait tartalmazza.
$tools = new UserTools(); $felhasználó = $eszközök->get($_REQUEST["felhasználói azonosító"]); echo "Felhasználónév: ".$felhasználó->felhasználónév.""; echo "Csatlakozás: ".$user->joinDate."";

Könnyen! Ez igaz?

Szerveroldali befejezés: global.inc.php

A global.inc.php a webhely minden oldalához szükséges. Miért? Így minden szokásos műveletet elhelyezünk az oldalon, amire szükségünk van. Például elindítjuk a session_start() parancsot. Az adatbázis-kapcsolat is megnyílik.

request_once "classes/UserTools.class.php";
request_once "classes/DB.class.php";
//csatlakozás az adatbázishoz $db = new DB(); $db->connect();
//inicializálja a UserTools objektumot $userTools = new UserTools(); //indítsa el a munkamenetet
session_start();
//frissítse a munkamenet változóit, ha be van jelentkezve if(isset($_SESSION["logged_in"])) ( $user = unserialize($_SESSION["user"]); $_SESSION["user"] = serialize($userTools-> get($user->id)); ) ?>

Mit csinál?

Itt több dolog is zajlik. Először is megnyitunk egy kapcsolatot az adatbázissal.

Csatlakozás után elindítjuk a session_start() függvényt. A funkció létrehoz egy munkamenetet, vagy folytatja az aktuálisat, ha a felhasználó már be van jelentkezve. Mivel alkalmazásunkat a felhasználók be- és kijelentkezésére tervezték, ez a funkció minden oldalon kötelező.

Ezután ellenőrizzük, hogy a felhasználó be van-e jelentkezve. Ha igen, akkor frissítjük a $_SESSION["felhasználó"] fájlt, hogy megjelenítse a legfrissebb felhasználói információkat. Például, ha egy felhasználó megváltoztatja az e-mail címét, a munkamenet továbbra is tárolja a régit. De az automatikus frissítés segítségével ez nem fog megtörténni.

Ezzel véget is ért a második rész! Holnap várható az utolsó óra ebben a témában.

Minden jót!

Akik többé-kevésbé komolyan tanultak PHP tudd, hogy van egy nagyon hasznos globális tömb PHP, ami az úgynevezett $_SERVER. És ebben a cikkben szeretném elemezni a legnépszerűbb kulcsokat és azok értékeit ebben a tömbben, mivel tudásuk egyszerűen szükséges még egy kezdő számára is. PHP programozó.

Mielőtt folytatná a a $_SERVER globális tömbbe a PHP-ben Csak adok egy kis tippet. Egy csodálatos funkció van beépítve PHP, ami az úgynevezett phpinfo(). Azonnal mondjunk példát a használatára:

phpinfo();
?>

Ennek az egyszerű szkriptnek a végrehajtása eredményeként egy hatalmas táblázatot fog látni, amely különféle változatokat tartalmaz PHP interpreter beállítások, beleértve, a végén egy értéktáblázat lesz globális tömb $_SERVER. Felsorolja az összes kulcsot és a hozzájuk tartozó értékeket. Hogyan segíthet ez neked? És az a tény, hogy ha szüksége van erre vagy arra az értékre, és elfelejti, hogy hívják a kulcsot, akkor használja a függvényt phpinfo() Mindig emlékezhet a nevére. Általában végrehajtja ezt a szkriptet, és azonnal megért engem.

Most térjünk át a legnépszerűbbre $_SERVER tömbkulcsok:

  • HTTP_USER_AGENT- ez a kulcs lehetővé teszi az ügyfél jellemzőinek megismerését. A legtöbb esetben ez határozottan a böngésző, de nem mindig. És még egyszer, ha a böngésző, akkor melyik, erről ebben a változóban tájékozódhat.
  • HTTP_REFERER- tartalmazza a fájl abszolút elérési útját ( PHP szkript, HTML oldal), amelyről erre a szkriptre váltott. Nagyjából, honnan jött az ügyfél.
  • SZERVER_ADDR - IP-cím szerver.
  • REMOTE_ADDR - IP-címügyfél.
  • DOCUMENT_ROOT- fizikai elérési út a webhely gyökérkönyvtárához. Ez az opció a következőn keresztül van beállítva Apache szerver konfigurációs fájl.
  • SCRIPT_FILENAME- fizikai elérési út a hívott szkripthez.
  • QUERY_STRING- egy nagyon hasznos érték, amely lehetővé teszi, hogy egy lekérdezéssel egy karakterláncot kapjon, majd ezt a karakterláncot elemezze.
  • REQUEST_URI- egy még hasznosabb érték, amely nemcsak magát a kérést tartalmazza, hanem a hívott szkript relatív elérési útját is a gyökérből vele együtt. Ezt nagyon gyakran használják a duplikáció eltávolítására index.php, vagyis amikor nálunk van ilyen URL: "http://mysite.ru/index.php"És" http://mysite.ru/" vezet egy oldalra, és URL-ek eltérő, ezért duplikáció, ami rossz hatással lesz a keresőoptimalizálásra. És itt a segítséggel REQUEST_URI definiálhatjuk: index.php vagy nem a forgatókönyvet hívták. És átirányíthatjuk -val index.php(ha jelen volt REQUEST_URI) nélkül index.php. Ennek eredményeként egy ilyen kérés elküldésekor: " http://mysite.ru/index.php?id=5", átirányításunk lesz ide URL: "http://mysite.ru/?id=5". Vagyis megszabadultunk a duplikációtól azáltal, hogy eltávolítottuk a URL ez index.php.
  • SCRIPT_NAME- relatív elérési út a hívott szkripthez.

Talán ezek mind elemek $_SERVER globális tömb PHP-ben amelyeket rendszeresen használnak. Szükség esetén tudniuk kell és tudniuk kell használni.

Ha hibát észlel, jelöljön ki egy szövegrészt, és nyomja meg a Ctrl + Enter billentyűket
OSSZA MEG: