Windows.  Vírusy.  Prenosné počítače.  internet.  Kancelária.  Verejné služby.  Vodiči

Klienti prehliadača môžu odosielať informácie na webový server.

Pred odoslaním informácií prehliadač ich zakóduje pomocou schémy nazývanej kódovanie URL. V tejto schéme sú páry názov/hodnota spojené znakmi rovnosti a rôzne páry sú oddelené ampersandom.

Meno1=hodnota1&meno2=hodnota2&meno3=hodnota3

Medzery sú odstránené a nahradené znakom + a všetky ostatné nealfanumerické znaky sú nahradené hexadecimálnymi hodnotami. Po zakódovaní sa informácie odošlú na server.

GET metóda

Metóda GET odosiela zakódované informácie o používateľovi pripojené k žiadosti o stránku. Sú stránky a zakódované informácie od seba oddelené? otáznik.

http://www.test.com/index.htm?name1=value1&name2=value2

  • Metóda GET vytvára dlhý reťazec, ktorý sa zobrazuje v protokoloch vášho servera v poli „Umiestnenie“ prehliadača.
  • Metóda GET je obmedzená na odosielanie maximálne 1024 znakov.
  • Nikdy nepoužívajte metódu GET, ak máte heslo alebo iné citlivé informácie na odoslanie na server.
  • GET nemožno použiť na prenos binárnych údajov, ako sú obrázky alebo textové dokumenty, na server.
  • K údajom odoslaným metódou GET je možné pristupovať pomocou premennej prostredia QUERY_STRING.
  • PHP poskytuje asociatívne pole $_GET na prístup ku všetkým odoslaným informáciám pomocou metódy GET.

if($_GET["meno"] || $_GET["vek"]) ( echo "Vitajte ". $_GET["meno"]; echo "Ste ". $_GET["vek"]. " rokov "; VÝCHOD(); )

meno: Vek:

metóda POST

Metóda POST prenáša informácie cez HTTP hlavičky. Informácie sú zakódované tak, ako je opísané v prípade metódy GET a umiestni sa do hlavičky QUERY_STRING.

  • Metóda POST nemá žiadne obmedzenie na veľkosť údajov, ktoré je potrebné odoslať.
  • Metódu POST možno použiť na odosielanie ASCII aj binárnych údajov.
  • Údaje odoslané pomocou metódy POST prechádzajú cez hlavičku HTTP, takže bezpečnosť závisí od protokolu HTTP. Použitím zabezpečeného protokolu HTTP môžete zaistiť bezpečnosť vašich informácií.
  • PHP poskytuje asociatívne pole $_POST na prístup ku všetkým informáciám odoslaným pomocou metódy POST.

Vyskúšajte nasledujúci príklad umiestnením zdrojového kódu do skriptu test.php.

if($_POST["meno"] || $_POST["vek"]) ( if (preg_match("[^A-Za-z"-]",$_POST["meno"])) ( zomrieť (" neplatné meno a meno by mali byť alfa"); ) echo "Vitajte ". $_POST["meno"]; echo "Ste ". $_POST["vek"]. "rokov."; exit(); )

meno: Vek:

$_REQUEST premenná

PHP premenná $_REQUEST obsahuje obsah ako $_GET, $_POST, teda $_COOKIE. Budeme diskutovať o premennej $_COOKIE keď hovoríme o cookies.

Premennú PHP $_REQUEST možno použiť na získanie výsledku z údajov formulára odoslaných pomocou metód GET a POST.

Táto a nasledujúce časti stručne popíšu, ako vytvoriť základné webové aplikácie pomocou PHP. To, čo bolo diskutované v tejto časti, zjavne nestačí na to, aby vaša aplikácia komunikovala s používateľom a formulovala v závislosti od akcií, ktoré vykonal, alebo parametrov, ktoré zadal. Čo chýba? Nie je dostatok vedomostí o tom, ako organizovať zadávanie používateľských údajov a prenos týchto údajov na server. Mali by ste už mať základné vedomosti o tom, ako programovo spracovať informácie prijaté na serveri.

Metódy HTTP požiadaviek a ich parametre

Akákoľvek dynamická webová aplikácia generuje odpoveď používateľovi v súlade s ním zadanými parametrami alebo akciami vykonanými na strane klienta. Kontaktovanie servera sa najčastejšie skladá z dvoch typov požiadaviek: pomocou metódy GET alebo metódy POST. Niekoľko slov o rozdieloch medzi týmito dvoma typmi žiadostí.

GET metóda:

    Parametre sa odovzdávajú v hlavičke HTTP požiadavky, takže sú viditeľné na príkazovom riadku a takúto požiadavku je možné uložiť ako záložky. Keďže celková dĺžka hlavičky je obmedzená, je obmedzený aj počet a dĺžka parametrov odovzdaných pomocou GET.

    Predpokladá sa, že výsledky niekoľkých identických požiadaviek GET vykonaných v rade by mali byť rovnaké.

Spôsob POST:

    Parametre požiadavky sa odovzdávajú v tele požiadavky HTTP, takže sa nenachádzajú v príkazovom riadku. Počet a veľkosť parametrov je neobmedzená.

    Predpokladá sa, že výsledky viacerých identických požiadaviek POST môžu vrátiť rôzne hodnoty, pretože môžu zmeniť vlastnosti cieľového objektu.

Metóda GET by sa mala použiť na získanie obsahu informačného zdroja podľa parametrov, keď nie je potrebné vykonávať zmeny v dátových štruktúrach cieľového zdroja a má zmysel uložiť požiadavku (URL) do záložiek. Metóda GET môže byť rýchlejšia ako podobné požiadavky využívajúce metódu POST.

Metóda POST by sa mala použiť, keď potrebujete skryť parametre odovzdané serveru z adresy URL. Táto metóda by sa mala použiť aj v požiadavkách na zmeny obsahu cieľového zdroja, pričom sa poskytne popis týchto zmien v parametroch (v tele požiadavky).

Cesta k zdroju?parameter1=hodnota1¶meter2=hodnota2&…

Ak nemáte špeciálny HTML formulár na vyplnenie parametrov, môžete odladiť fungovanie vašej PHP aplikácie zadaním testovacích parametrov priamo na príkazovom riadku prehliadača, napríklad:

Http://site/php-samples/sql.php?sql=select * from d_staff

Na prístup k parametrom požiadavky na strane servera by ste mali použiť globálne polia $_GET A $_POST resp. Ak vašej aplikácii nezáleží na tom, akou metódou sa k nej pristupuje, mali by ste použiť pole $_REQUEST, ktorý kombinuje údaje polí $_GET a $_POST, napríklad takto:

$sql = isset($_REQUEST["sql"]) ? $_REQUEST["sql"] : "";

V tomto príklade program zisťuje, či bol zadaný parameter „sql“: ak áno, priradí jeho hodnotu zodpovedajúcej premennej, a ak nie, priradí jej prázdnu hodnotu.

Definovanie parametrov HTTP požiadavky cez HTML formulár

Samozrejme, manuálne definovanie parametrov priamo v príkazovom riadku prehliadača nie je príliš pohodlné. Táto metóda je vhodná na programové vykonávanie HTTP požiadaviek, keď webové aplikácie medzi sebou komunikujú. Na zadanie a vykonanie prvotného overenia údajov na strane klienta by ste mali použiť formuláre HTML a . Nižšie je uvedený príklad najjednoduchšieho formulára, pomocou ktorého sa zadáva textový parameter (hodnota), ktorý sa následne odovzdá serveru ako parameter metódy POST.

metóda ="príspevok" akcie =’sql.php’ > SQL:

Atribút metódy prvku formulára určuje metódu, ktorá určuje spôsob prenosu údajov na server (získanie alebo odoslanie). Atribút akcie určuje php súbor, ktorá žiadosť spracuje. Ak by mal byť obslužným programom aktuálny súbor, potom nie je potrebné pridávať atribút action. Pre všetky prvky, ktorých hodnota musí byť odovzdaná ako parameter požiadavky HTTP, musíte definovať jedinečnú hodnotu pre atribút name. Je to hodnota atribútu meno bude index v poliach $_GET, $_POST alebo $_REQUEST (pozri príklad vyššie). Stlačením tlačidla predložiť odošle formulár so všetkými zadanými hodnotami na server.

Pre metódu POST

Obsah formulára je zakódovaný presne rovnakým spôsobom ako pri metóde GET (pozri vyššie), ale namiesto pridania reťazca do adresy URL sa obsah požiadavky odošle ako blok údajov v rámci operácie POST. Ak je prítomný atribút ACTION, potom hodnota adresy URL, ktorá sa v ňom nachádza, určuje, kam sa má tento blok údajov odoslať. Táto metóda, ako už bolo uvedené, sa odporúča na prenos veľkých blokov údajov.

Informácie zadané používateľom a odoslané na server pomocou metódy POST sa poskytujú na štandardnom vstupe do programu špecifikovaného atribútom action alebo do aktuálneho skriptu, ak je tento atribút vynechaný. Dĺžka odosielaného súboru sa odovzdáva v premennej prostredia CONTENT_LENGTH a typ údajov sa odovzdáva v premennej CONTENT_TYPE.

Údaje môžete odosielať iba metódou POST pomocou formulára HTML, pretože údaje sa odosielajú v tele požiadavky a nie v hlavičke, ako je to v prípade GET. V súlade s tým môžete zmeniť hodnotu parametrov iba zmenou hodnoty zadanej vo formulári. Pri použití POST používateľ nevidí údaje odoslané na server.

Hlavnou výhodou požiadaviek POST je ich väčšia bezpečnosť a funkčnosť v porovnaní s požiadavkami GET. Preto sa metóda POST častejšie používa na prenos dôležitých informácií, ako aj informácií veľkého rozsahu. Nemali by ste sa však úplne spoliehať na bezpečnosť tohto mechanizmu, pretože údaje požiadavky POST môžu byť tiež sfalšované, napríklad vytvorením súboru HTML na vašom počítači a jeho vyplnením potrebnými údajmi. Navyše nie všetci klienti môžu používať metódu POST, čo obmedzuje jej prípady použitia.

Pri odosielaní údajov na server akýmkoľvek spôsobom sa prenášajú nielen údaje zadané používateľom, ale aj množstvo premenných nazývaných premenné prostredia, ktoré charakterizujú klienta, jeho prevádzkovú históriu, cesty k súborom atď. Tu sú niektoré z premenných prostredia:

  • REMOTE_ADDR – IP adresa hostiteľa (počítača), ktorý odosiela požiadavku;
  • REMOTE_HOST – názov hostiteľa, z ktorého bola odoslaná požiadavka;
  • HTTP_REFERER – adresa stránky odkazujúcej na aktuálny skript;
  • REQUEST_METHOD – metóda, ktorá bola použitá pri odoslaní požiadavky;
  • QUERY_STRING – informácie nachádzajúce sa v adrese URL za otáznikom;
  • SCRIPT_NAME – virtuálna cesta k programu, ktorý sa má spustiť;
  • HTTP_USER_AGENT – informácie o prehliadači, ktorý klient používa

Zatiaľ sme len spomenuli, že požiadavky klientov sú na serveri spracovávané pomocou špeciálneho programu. V skutočnosti si tento program môžeme napísať sami, a to aj v PHP, a s prijatými dátami bude robiť, čo chceme. Aby ste mohli napísať tento program, musíte sa oboznámiť s niektorými pravidlami a nástrojmi, ktoré PHP na tento účel ponúka.



V rámci skriptu PHP existuje niekoľko spôsobov, ako získať prístup k údajom odoslaným klientom prostredníctvom protokolu HTTP. Pred PHP 4.1.0 sa prístup k takýmto údajom uskutočňoval pomocou názvov prenášaných premenných (pamätajte, že údaje sa prenášajú vo forme párov „názov premennej, symbol „=“, hodnota premennej“). Ak teda bolo zadané napríklad first_name=Nina, potom sa v skripte objavila premenná $first_name s hodnotou Nina. Ak bolo potrebné rozlíšiť, akým spôsobom boli dáta prenášané, tak sa použili asociatívne polia $HTTP_POST_VARS a $HTTP_GET_VARS, ktorých kľúčmi boli názvy prenášaných premenných a hodnotami boli hodnoty ​týchto premenných. Ak je teda pár first_name=Nina odovzdaný metódou GET, potom $HTTP_GET_VARS["first_name"]="Nina".

Nie je bezpečné používať názvy odovzdaných premenných priamo v programe. Preto bolo počnúc PHP 4.1.0 rozhodnuté použiť špeciálne pole – $_REQUEST – na prístup k premenným prenášaným prostredníctvom HTTP požiadaviek. Toto pole obsahuje dáta prenášané pomocou metód POST a GET, ako aj pomocou HTTP cookies. Ide o superglobálne asociatívne pole, t.j. jeho hodnoty možno získať kdekoľvek v programe pomocou názvu zodpovedajúcej premennej (prvku formulára) ako kľúča.

Príklad 4.2. Povedzme, že sme vytvorili formulár na registráciu účastníkov do korešpondenčnej školy programovania, ako v príklade vyššie. Potom do súboru 1.php, ktorý spracováva tento formulár, môžete napísať nasledovné:

";$str .="Vybrali ste si študovať kurz ".$_REQUEST["kurs"];echo $str;?>

Ak sme potom do formulára zadali meno „Vasya“, priezvisko „Petrov“ a spomedzi všetkých kurzov vybrali kurz PHP, na obrazovke prehliadača sa nám zobrazí nasledujúca správa:

Po zavedení poľa $_REQUEST boli polia $HTTP_POST_VARS a $HTTP_GET_VARS kvôli konzistencii premenované na $_POST a $_GET, ale samotné z dôvodu kompatibility s predchádzajúcimi verziami PHP nezmizli z používania. Na rozdiel od svojich predchodcov sa polia $_POST a $_GET stali superglobálnymi, t.j. prístupné priamo a vo vnútri funkcií a metód.

Uveďme príklad použitia týchto polí. Povedzme, že potrebujeme spracovať formulár obsahujúci vstupné prvky s názvom meno, priezvisko, kurs (napríklad formulár.html vyššie). Údaje boli prenesené metódou POST a údaje prenášané inými metódami nechceme spracovávať. Dá sa to urobiť nasledovne:

";$str .= "Vybrali ste si študovať kurz na tému ". $_POST["kurs"];echo $str;?>

Ak potom na obrazovke prehliadača zadáme meno „Vasya“, priezvisko „Petrov“ a spomedzi všetkých kurzov vyberieme kurz PHP, zobrazí sa nám správa ako v predchádzajúcom príklade:

Dobrý deň, Vasya Petrov! Rozhodli ste sa študovať kurz PHP

Aby sa zachovala schopnosť spracovávať skripty staršie ako PHP 4.1.0, bola zavedená direktíva register_globals, ktorá povoľuje alebo zakazuje prístup k premenným priamo podľa ich názvov. Ak je parameter register_globals=On v súbore nastavení PHP, k premenným odovzdaným na server pomocou metód GET a POST možno pristupovať jednoducho podľa ich názvov (t. j. môžete napísať $first_name). Ak register_globals=Off, potom musíte napísať $_REQUEST["first_name"] alebo $_POST["first_name"], $_GET["first_name"], $HTTP_POST_VARS["first_name"], $HTTP_GET_VARS["first_name"]. Z bezpečnostného hľadiska je lepšie túto direktívu zakázať (t.j. register_globals=Off). S povolenou direktívou register_globals budú polia uvedené vyššie obsahovať aj údaje odovzdané klientom.

Niekedy potrebujete poznať hodnotu premennej prostredia, napríklad metódu použitú na odoslanie požiadavky alebo IP adresu počítača, ktorý požiadavku odoslal. Tieto informácie môžete získať pomocou funkcie getenv(). Vracia hodnotu premennej prostredia, ktorej názov je odovzdaný ako parameter.

Ako sme už povedali, ak sa použije metóda GET, údaje sa prenesú pridaním reťazca dotazu vo forme párov názov_premennej=hodnota do adresy URL zdroja. Čokoľvek za otáznikom v URL je možné získať pomocou príkazu

Getenv("QUERY_STRING");

Vďaka tomu je možné pomocou metódy GET prenášať dáta aj v inej forme. Napríklad môžete zadať iba hodnoty niekoľkých parametrov pomocou znamienka plus a v skripte môžete analyzovať reťazec dopytu na časti alebo môžete odovzdať hodnotu iba jedného parametra. V tomto prípade sa v poli $_GET objaví prázdny prvok s kľúčom rovným tejto hodnote (celý reťazec dopytu) a znak „+“, ktorý sa vyskytuje v reťazci dopytu, bude nahradený podčiarkovníkom „_“.

Pri metóde POST sa údaje prenášajú iba pomocou formulárov a používateľ (klient) nevidí, aké údaje sa odosielajú na server. Aby ich videl, musí hacker nahradiť náš formulár svojím vlastným. Potom server odošle výsledky spracovania nesprávneho formulára na nesprávne miesto. Aby ste tomu zabránili, môžete skontrolovať adresu stránky, z ktorej boli údaje odoslané. Môžete to urobiť znova pomocou funkcie getenv ():

Getenv("HTTP_REFERER");

Teraz je čas vyriešiť problém sformulovaný na začiatku prednášky.

Ahojte všetci! V tomto článku sa pozrieme na to, ako spracovať požiadavky POST v NodeJS.

POST požiadavky sa líšia od GET otázky, ktoré sme zvažovali v predchádzajúcich článkoch, v tom, že údaje v nich sa prenášajú v uzavretej forme. Toto sa veľmi často používa na prenos informácií z formulárov. V minulom článku sme práve vytvorili formulár, použime ho na spracovanie POSTžiadosti.

Keďže taká pohodlná metóda ako dotaz(), Pre POST neexistujú žiadne požiadavky, musíme nainštalovať doplnok tzv Analyzátor tela. Môžete ho nájsť a stiahnuť na webovej stránke NPM.

Po stiahnutí a inštalácii zahrňte rozšírenie do súboru app.js:

Var bodyParser = require("body-parser");

Teraz napíšme nasledujúci kód:

Var urlencodedParser = bodyParser.urlencoded((extended: false));

Toto middleware Pre POSTžiadosti.

Teraz začnime prijímať a spracovávať naše POSTžiadosť:

App.post("/contact", urlencodedParser, function(req, res) (
res.render("kontakt-úspech", (údaje: req.body));
});

Tento kód robí nasledovné: keď odošleme formulár, prepojí sa na stránku /kontakt(t. j. sebe) a pošle ho tam POSTžiadosť. Toto sme my POST zachytíme požiadavku, použijeme náš analyzátor na okamžité prijatie údajov v normálnej forme a potom vykreslíme stránku podľa šablóny kontakt-úspech(túto šablónu vytvoríme neskôr), kde objekt prejdeme údajov obsahujúci objekt, ktorý bol vrátený z odpovede metódy syntaktického analyzátora telo() s vlastnosťami rovnakými ako názvy polí formulára( SZO, oddelenie, e-mailom) a hodnoty, ktoré sme tam zadali. Vo všeobecnosti je všetko jednoduché a vďaka parseru podobné spracovaniu GETžiadosti.

Teraz vytvoríme šablónu views/contact-success.ejs, kde skopírujeme celý kód zo súboru kontakt.ejs. Formulár vymažeme a do odseku napíšeme nasledovné:

Ďakujeme, že ste nás oslovili.


Kontaktovali ste<%= data.who %>od<%= data.department %>oddelenie


Odpovieme Vám na email:<%= data.email %>

Myslím, že tu je všetko jasné a nie je potrebné vysvetľovať.

A to je na dnes všetko. Dokončili sme štúdium platformy NodeJS, a teraz máte všetku potrebnú vedomostnú základňu na vytváranie skvelých aplikácií založených na nej. Na upevnenie vedomostí však budeme tvoriť zoznam úloh v NodeJS už čoskoro! Nenechajte si to ujsť!

(Denver distribúcia) a naučili ste sa písať jednoduché programy v PHP, potom je čas naučiť sa, ako môže prehliadač (klient) zadávať požiadavky na server a dostávať vhodné odpovede. Na príklade vytvorenia jednoduchého HTML formulára si preštudujeme základné princípy takejto interakcie.

Ak sa už dobre orientujete v adresároch v Denveri, môžete si vytvoriť ľubovoľný súbor PHP v adresári, ktorý vám vyhovuje, a začať písať kód. Pre tých, ktorí si ešte nie sú istí svojimi schopnosťami, vám odporúčam urobiť nasledovné: na virtuálnom disku s Denverom (zvyčajne Z) v domovskom priečinku vytvorte priečinok lekcií. Ďalej v tomto priečinku vytvorte ďalší priečinok - www. Toto je váš pracovný priečinok projektu, ktorý bude prístupný z panela s adresou vášho prehliadača. Reštartujte Denver, aby bol vytvorený hostiteľ zaregistrovaný v systéme. Nakoniec v priečinku www vytvorte súbor index.php. Toto bude hlavný súbor s vaším kódom.

Ako vidíte, ide o bežné značenie HTML, ale súbor sme nazvali index.php, čo znamená, že teraz môžeme do dokumentu vložiť ľubovoľné inštrukcie v PHP.

Ak teraz vo svojom prehliadači prejdete na http://lessons/, uvidíte nasledujúci výsledok:

Vyplňte polia (napríklad: meno – Vasya, rok narodenia – 1990) a kliknite na tlačidlo „odoslať“. čo vidíš? Nič! Opäť ten istý formulár, len prázdny. Neponáhľajte sa však rozčuľovať - ​​pozrite sa na panel s adresou vášho prehliadača. Zmenil sa a teraz vyzerá asi takto:

Http://lessons/index.php?user_name=Vasya&user_year=1990&submit_form=send

To znamená, že server konečne dostal vaše údaje!

Poďme na to teraz.

GET metóda

Po prvé, čo je to vlastne HTML formulár? Toto je rozhranie, ktoré vám umožňuje odosielať akékoľvek údaje z klientskeho prehliadača na server. Pozrite sa na atribúty formulára:

Atribút akcie zodpovedá za adresu príjemcu zasielaných údajov. V našom prípade sa formulár posiela na rovnakú adresu, t.j. na lekcie/index.php.

Pozoruhodný je najmä atribút method, ktorý definuje spôsob odoslania požiadavky na server. Existuje niekoľko takýchto metód a najbežnejšie (a praktické) sú metódy GET a POST. Teraz nás bude zaujímať metóda GET.

Požiadavka GET znamená, že údaje budú odoslané na server priamo cez panel s adresou. Presvedčili ste sa o tom už pri odoslaní formulára – do adresného riadku boli pridané určité údaje. Odkiaľ pochádzajú tieto údaje? Venujte pozornosť vstupným značkám vo formulári HTML. Všetky majú atribút name, ktorý nastavuje názov poľa.

Pri metóde GET sa k hlavnej adrese pridá znak "?" (otáznik), aby server pochopil, že prišli nejaké dáta. Po "?" Samotné dáta idú priamo v tvare meno=hodnota. Ak existuje viac takýchto údajov, sú oddelené symbolom zreťazenia „&“. Odošlite formulár s rôznymi hodnotami polí a presvedčte sa sami.

Nastal čas naučiť sa „chytať“ a spracovávať prijaté dáta. Vzhľadom na to, že atribút action ukazuje na aktuálny súbor index.php, znamená to, že sem prichádzajú dáta, tzv do toho istého súboru napíšeme kód na spracovanie požiadavky GET.

Takže hneď po tagu Pridajme nasledujúci PHP kód:

Uložte súbor, znova prejdite na http://lekcie/, odošlite formulár a - hľa! – čo vidíš?

Hneď po odoslaní formulára server prijaté a spracované prijali údaje a odoslali vašu odpoveď do prehliadača!

Pozrime sa na PHP kód nášho projektu, ktorý predstavuje podmienku:

If (isset($_GET["submit_form"])) ( )

Server skontroluje, či bola prijatá premenná požiadavky GET s názvom submit_form? Teda, zjednodušene povedané, bol formulár vôbec odoslaný? Ak áno, kód PHP na strane servera odošle nový kód HTML so svojou odpoveďou priamo do prehliadača používateľa pomocou príkazu echo. Ak si pozorne preštudujete napísaný kód obsluhy, všetko vám bude hneď jasné!

Táto metóda GET je zaujímavá! Zmeňte panel s adresou na niečo takéto:

Http://lessons/index.php?user_name=Moje-meno&user_year=1900&submit_form=submit

a stlačte tlačidlo "Enter". Server vám odpovie znova, ak už prijal iné údaje! Myslím, že toto je všetko jasné.

Nevýhody metódy GET spočívajú v tom, že po prvé existuje obmedzenie množstva prenášaných dát a po druhé je táto metóda otvorená a akékoľvek informácie je možné zachytiť. Preto osobné údaje užívateľa(prihlasovacie meno, meno, heslo atď.) nemožno nikdy preniesť cez riadok adresy.

metóda POST

Táto metóda zahŕňa prenos údajov v samostatnom toku paketov v tele požiadavky, čo spoľahlivo chráni odosielané údaje a umožňuje prenášať pôsobivé množstvo informácií, ktoré môžu byť obmedzené iba nastaveniami servera. Preto je tento typ žiadosti ideálny na zasielanie osobných údajov a akýchkoľvek typov súborov.

Upravte svoj súbor nahradením názvov premenných $_GET za $_POST v kóde PHP a do formulára napíšte method="POST". Obnovte stránku a odošlite formulár znova. Výsledok bude rovnaký ako pri metóde GET, ale riadok s adresou zostane nezmenený, čo znamená, že údaje boli bezpečne odoslané v zabezpečenej forme v tele samotnej požiadavky.

Na konsolidáciu materiálu vytvoríme malú webovú aplikáciu, ktorá bude vyžadovať prihlasovacie meno a heslo používateľa na vstup na stránku. Ukážkový kód bude pomerne zložitý a vyžaduje si vašu pozornosť a túžbu pochopiť funkčnosť programu PHP.

súbor index.php:

Spustite príklad a uvidíte, čo sa stane. Najprv sa vyžaduje prihlasovacie meno a heslo používateľa (v kóde sme ich definovali ako „admin“ a „tajné“), ak je všetko správne, dostaneme sa na hlavnú stránku webu, ak sú údaje nesprávne, zodpovedajúce zobrazí sa varovanie.

Uvažujme o implementácii tejto technológie.

Upozorňujeme, že nevypisujeme celý kód HTML formulára priamo, ale ukladáme ho do premennej $form.

Buďte opatrní s úvodzovkami! Celý kód HMTL je v jednoduchých úvodzovkách, takže jeho interné úvodzovky musia byť dvojité. Ak si napísal

$form = "...váš kód...",

potom bude interný kód obsahovať opak – jednoduché úvodzovky.

Ďalej riadok 27 skontroluje, či bol formulár odoslaný (podmienka 1 na obrázku), ak nie, zobrazí sa HTML formulár a skript prestane fungovať– funkcia die(). V prehliadači sa okrem formulára nezobrazuje nič iné.

Ak boli údaje prijaté, potom sa premenné POST skontrolujú, či sú v súlade so špecifikovanými (podmienka 2 na obrázku). Ak sa nezhodujú, zobrazí sa varovné hlásenie, zobrazí sa prihlasovací formulár HTML a skript sa znova ukončí (die()).

Ak je splnená druhá podmienka, skript preskočí všetky ostatné príkazy a prejde na zobrazenie hlavnej stránky. (prechod 3 na obr.).

Toto je najjednoduchší príklad. Prirodzene, v reálnych projektoch sa takéto priame kontroly nevykonávajú - prihlasovacie meno a heslo sú uložené v zašifrovanej podobe v súboroch alebo databáze. Preto článok popisuje technológiu interakcie medzi klientom a serverom na základe požiadaviek GET a POST. Na vytváranie plnohodnotných aplikácií je potrebné mať solídne znalosti databáz a objektovo orientovaného programovania. Viac o tom v nasledujúcich článkoch.



Ak si všimnete chybu, vyberte časť textu a stlačte Ctrl+Enter
ZDIEĽAŤ: