Fiktívny príspevok nový php. PHP a metódy prenosu dát GET a POST. Implementácia podradených tried Model a Controller, vytvorenie View's

  • 20.06.2020

Moderné webové zdroje nielen poskytujú informácie návštevníkovi, ale aj s ním interagujú. Ak chcete komunikovať s používateľom, musíte od neho dostať nejaké informácie. Existuje niekoľko metód na získanie údajov, veľmi bežné sú metódy GET A POST. A podľa toho v PHP existuje podpora pre tieto spôsoby prenosu údajov GET A POST. Pozrime sa, ako tieto metódy fungujú.
GET metódaÚdaje GET metóda sú odovzdané ich pridaním do URL skriptu, ktorý sa vyvoláva na spracovanie prijatých informácií. Ak chcete vysvetliť túto metódu, zadajte adresu URL zdroja do panela s adresou prehliadača a pridajte najprv otáznik (?) a potom riadok num=10. Napríklad

http://domain.ru/script.php?num=10


Ak máte lokálny server, doména bude zvyčajne localhost a predchádzajúci záznam bude vyzerať takto

http://localhost/script.php?num=10


V tomto prípade odovzdáme parameter num rovný 10. Na pridanie nasledujúcich parametrov musí skript použiť oddeľovač ampersand (&), napr.

http://domain.ru/script.php?num=10&type=new&v=text


V tomto prípade sme skriptu odovzdali tri parametre: num s hodnotou 10, type s hodnotou „new“ a v s hodnotou „text“.
Na získanie týchto parametrov v skripte musíte použiť vstavané pole $_GET $_GET["num"], $_GET["type"], $_GET["v"]. Tieto prvky poľa budú obsahovať hodnoty odovzdaných parametrov. Na demonštráciu tohto príkladu vytvorte súbor script.php s nasledujúcim obsahom



Overenie metódy GET v PHP


echo ($_GET["num"]."
");
echo ($_GET["type"]."
");
echo ($_GET["v"]);
?>




A teraz zavolajte tento súbor v prehliadači

http://path/script.php?num=10&type=new&v=text


a v okne prehliadača uvidíte odovzdané parametre. Ale ak zavoláte tento súbor bez dodatočných parametrov http://path/script.php, uvidíte chyby, ktoré interpret vytvorí PHP, že neexistujú žiadne takéto prvky poľa $_GET. Kontrole prijatých údajov od používateľa by sa dal venovať nejeden článok, preto sa v tomto článku nebudem tohto bodu dotýkať.
Ako pravdepodobne chápete, nútiť používateľa zadávať údaje do panela s adresou prehliadača nie je príliš dobré a je úplne nepohodlné. Preto na prijímanie údajov od používateľa potrebujete použiť html formuláre. Napíšeme jednoduchý html formulár.


Zadajte číslo

Máš PC?

Tvoj komentár:





Dovoľte mi trochu okomentovať vytvorený formulár. Formuláre sa vytvárajú pomocou značky formulára. Polia formulára sa vytvárajú pomocou značiek input, select, textarea (môžete si prečítať viac). V značke formulára atribút action určuje adresu URL skriptu, ktorý prijme údaje formulára. V našom prípade sme špecifikovali náš existujúci súbor script.php. Atribút metódy určuje metódu odosielania údajov. Spresnili sme spôsob GET. Teraz už vieme, do akého súboru sa údaje formulára prenesú a akým spôsobom, ostáva už len vymyslieť, kde ich hľadať?!
Tieto údaje formulára odovzdá prehliadač do webového zdroja tak, že ich pripojí k adrese URL: najprv bude otáznik (?), potom budú parametre oddelené znakom &. Názov parametra bude prevzatý z atribútu name, ktorý musí byť uvedený pre každé pole formulára. Hodnota parametra bude závisieť od typu poľa. Ak je pole textové, hodnotou bude text zadaný používateľom. Ak je pole zoznam, skupina prepínačov alebo začiarkavacích políčok, potom hodnota parametra bude hodnotou atribútu value vybraného prvku. Dovoľte mi vysvetliť pomocou nášho formulára ako príkladu. Ak používateľ zadá do vstupného poľa číslo 10, názov parametra bude num (hodnota atribútu name vstupnej značky) a hodnota bude 10 (číslo zadané používateľom). Podľa toho prehliadač vygeneruje pár "num=10". Ak používateľ vyberie zo zoznamu možnosť „Áno“, názov parametra bude typ (hodnota atribútu name značky select) a hodnota bude áno (hodnota atribútu value možnosti tag). V súlade s tým prehliadač vygeneruje pár „typ=áno“.
Teraz tento formulár umiestnime na stránku forma.php.



Formulár na prenos údajov pomocou metód GET a PHP



Zadajte číslo

Máš PC?

Tvoj komentár:









Zadajte ľubovoľné hodnoty do polí formulára a kliknite na tlačidlo „Odoslať“. Po kliknutí na tlačidlo prehliadač otvorí ďalšiu stránku (script.php) a v okne prehliadača sa zobrazia vami zadané údaje. Myslím, že je jasné prečo: prehliadač odovzdá údaje skriptu script.php a v skripte sa tieto údaje spracujú a zobrazia na obrazovke.
metóda POST Teraz sa pozrime, ako metóda funguje POST.
Na odosielanie údajov pomocou POST musíte použiť HTML formuláre. Ako si pamätáme, atribút method značky formulára je zodpovedný za spôsob odosielania údajov formulára. Preto musíte zadať hodnotu POST v atribúte metódy značky formulára. V opačnom prípade môže byť formulár rovnaký ako pri metóde GET. Zmeňme náš formulár, ktorý sme už používali na prenos dát metódou GET, na prenos metódou POST.


Zadajte číslo

Máš PC?

Tvoj komentár:





Ako vidíte, formulár zostáva rovnaký okrem atribútov metódy a akcie. Údaje budú teraz odovzdané skriptu script_post.php. Umiestnime náš formulár na stránku forma_post.php.



Formulár na prenos údajov pomocou metód POST a PHP



Zadajte číslo

Máš PC?

Tvoj komentár:









Teraz musíme napísať skript, ktorý spracuje naše údaje formulára.
Ak chcete prijať údaje v skripte pomocou odovzdanej metódy POST je potrebné použiť vstavané pole $_POST. Kľúčmi tohto poľa budú názvy parametrov. V našom prípade musíme použiť $_POST["num"], $_POST["type"], $_POST["v"]. Tieto prvky poľa budú obsahovať hodnoty prenesených údajov. Ako vidíte, rozdiel oproti použitiu metódy GET je vyjadrený iba v použití poľa $_POST. Preto pre nás nebude ťažké napísať súbor script_post.php:



Overenie metódy POST v PHP


echo ($_POST["num"]."
");
echo ($_POST["typ"]."
");
echo ($_POST["v"]);
?>




Teraz otvorte súbor forma_post.php vo svojom prehliadači. Zadajte nejaké údaje do polí formulára a kliknite na tlačidlo „Odoslať“. Teraz ste si pravdepodobne všimli rozdiel medzi metódou POST a metódou GET - údaje formulára sa nezobrazili v paneli s adresou prehliadača. Údaje podľa metódy POST nemožno preniesť cez panel s adresou prehliadača. Toto je významný rozdiel, ktorý si treba zapamätať.
IN PHP Bez ohľadu na to, ako boli údaje odoslané - metóda POST alebo metóda GET - môžete prijímať údaje pomocou poľa $_REQUEST. Porovnanie metód GET a POST Pri použití metódy GET sa údaje prenesú pripojením k adrese URL. Budú teda viditeľné pre používateľa, čo nie je z bezpečnostného hľadiska vždy dobré. Taktiež maximálne množstvo prenesených dát bude závisieť od prehliadača – od maximálneho povoleného počtu znakov v adresnom riadku prehliadača.
Pri použití metódy POST nebudú údaje viditeľné pre používateľa (nezobrazia sa v adresnom riadku prehliadača). A preto sú bezpečnejšie a následne aj program spracúvajúci tieto dáta je z hľadiska bezpečnosti viac chránený. Taktiež objem prenesených dát je prakticky neobmedzený.
Pri výbere spôsobu prenosu údajov je potrebné vziať do úvahy vyššie uvedené vlastnosti a zvoliť najvhodnejší spôsob.

V PHP sa preddefinovaná premenná $_POST používa na vytvorenie z metódy = "post" v hodnote kolekcie.

$_POST premenná

Formuláre preddefinovaná premenná $_POST sa používa na zber hodnoty z metódy = "post".

Informačný formulár odoslaný metódou POST od, pre kohokoľvek, kto nie je viditeľný (nezobrazuje sa v adresnom riadku prehliadača), a množstvo odosielaných informácií tiež nie je obmedzené.

Poznámka: Štandardne je však maximálne množstvo informácií odosielaných metódou POST 8 MB (dá sa zmeniť nastavením súboru php.ini post_max_size).

Príklady

form.html kód súboru je nasledovný:

本教程 (webová stránka)

名字: 年龄:


Keď používateľ klikne na tlačidlo „Odoslať“, adresa URL bude podobná nasledujúcej:

http://www..php

Súbor „Welcome.php“ teraz môže zhromažďovať premennú $_POST do údajov formulára (Všimnite si, že názov polí formulára sa automaticky zmení na kľúče poľa $_POST):

欢迎 !
你的年龄是 岁。

Demo prístupné cez prehliadač takto:

Kedy použiť metódu = "post"?

Informácie z formulára so spôsobom prenosu POST nie sú nikomu viditeľné a množstvo odosielaných informácií tiež nie je obmedzené.

Keďže sa však značka nezobrazuje v adrese URL, nie je možné túto stránku uložiť ako záložku.

PHP premenná $_REQUEST

Preddefinovaná premenná $_REQUEST obsahuje $_GET, $_POST a obsah $_COOKIE.

$_REQUEST Premenná môže byť použitá na zhromažďovanie údajov formulárov odoslaných prostredníctvom metód GET a POST.

Príklady

Môžete "welcome.php" súbor je upravený takto kód, môže akceptovať $ _GET, $ _POST a ďalšie údaje.

欢迎 !
你的年龄是 岁。

Jednou z najdôležitejších a najobľúbenejších úloh v PHP je prenos dát. Pravdepodobne ste sa s takouto adresou URL stretli viackrát site.ru/page.php?id=114841 alebo formulár so vstupnými poľami text (registrácia, nový komentár a pod.). V tejto a nasledujúcich lekciách budeme hovoriť odovzdávanie údajov do PHP.

Metóda POST v PHP

Metóda pozostáva z dvoch častí: HTML s formulárom a poľami a súborom PHP handler.

Pozor! Aby sme fungovali, musíme sa podľa toho tvoriť iba dva súbory.

Demonštrácia Stiahnite si zdroje
Pozrime sa na príklad s komentármi – implementácia autorizácie používateľa na webovej lokalite:

HTML kód(súbor post.html)



Formulár





Vaše prihlasovacie meno:

Tvoje heslo:







Teraz viac o metódach prenosu údajov. Existujú dva typy GET (cez url, open - url môžete zmeniť manuálne) a POST (cez formulár, zatvorené). Rozdiel bude v obsahu panela s adresou, teda v adrese URL.

Pri prijímaní údajov prenášaných jedným z týchto spôsobov sa údaje zhromažďujú do poľa typu zodpovedajúceho metóde ($_GET alebo $_POST). Existuje tiež pole s názvom $_REQUEST, ktoré môže súčasne obsahovať $_GET aj $_POST. Ale to je pre iné príklady. Väčšinu dát odporúčam prenášať metódou POST.

Teraz sa pozrime na kód obsluhy.

PHP kód(v súbore test_reg.php)

$login = $_POST["prihlásenie"]; // akceptovanie údajov odoslaných POST
$pass = $_POST["pass"]; // login a pass sú názvy vstupných polí

If (($login == "Admin") && ($pass == "Pass"))
echo "Dobrý deň, Admin! Dnes je káva alebo čaj?)";
else echo "Zadali ste nesprávnu kombináciu prihlasovacieho hesla. Skúste znova Späť";
?>
Môžete vidieť, ako zaznamenávame hodnoty polí so zodpovedajúcim názvom v poli $_POST do samostatných premenných, aj keď to možno zhromaždiť aj v $_REQUEST.

V handler možno vypracujeme autorizačnú podmienku - či sa login a heslo vo formulári zhodujú s naším fiktívnym (Admin, resp. Pass). A buď pozdravíme prichádzajúcu osobu (Ahoj, Admin! Dnes je káva alebo čaj?), alebo nie (Zadali ste nesprávnu kombináciu prihlasovacieho mena a hesla. Skúste to znova). Na vytvorenie plnohodnotnej autorizácie sa však ešte musíte zoznámiť s cookies, reláciami a . Ale o tom neskôr.

Priamo v skripte môžete dáta ľubovoľne spracovávať: pridávať, mazať, šifrovať atď. Hlavná vec je poznať názov premennej (nastavený vo forme HTML) a potom ich zbierať pomocou polí $_POST, $_GET a $_REQUEST.

Ďakujem za tvoju pozornosť!

V tejto lekcii sa pozrieme na techniky odovzdávania údajov medzi formulármi a stránkami. Takéto metódy sú POST a GET. O každom si povieme samostatne a podrobnejšie. Vo všeobecnosti je to potrebné na komunikáciu medzi formulármi. Napríklad vyplníme niektoré polia na stránke a potrebujeme ich preniesť na inú stránku na spracovanie.

GET metóda v PHP

Najprv sa pozrime na metódu GET. Vtedy sa všetky premenné a ich hodnoty prenášajú priamo cez adresu. Teraz pomocou príkladu uvidíte všetko a dokonca pochopíte, ako väčšina stránok a fór funguje.
Napríklad máme html stránku, ako je táto:

Príklad stránky na odovzdávanie premenných pomocou Get odkaz

Pozrite si odkaz? Je komplexný a skladá sa z niekoľkých častí. Poďme si to celé rozobrať:
https://stránka— adresa domény alebo, ako sa to tiež nazýva, hostiteľ.
index.php— stránka v PHP, ktorá spracuje požiadavku.
? — symbol oddelenia adresy a bloku s premennými.
Ďalej nasledujú premenné a ich hodnoty, ktoré sú oddelené symbolom & .
meno = Sergey— názov premennej a jej hodnota Sergey.
vek=22- to isté, premenlivý vek, hodnota 22.

Všetko sme vytriedili, teraz sa pozrime, ako sa to spracuje v php pomocou metódy GET.
Stránka index.php, ako si pamätáte, sme na ňu prešli:

Najprv rada: VŽDY skontrolujte správnosť svojich premenných: prázdnotu, súlad s platnými hodnotami atď. Keďže sa všetko prenáša cez panel s adresou, údaje sa dajú ľahko vymeniť a poškodiť stránku. Teraz k samotnému kódu: pomocou , sme skontrolovali prázdnotu premenných mena a veku a ak neboli prázdne, zobrazili sme ich a ak boli prázdne, jednoducho sme to nahlásili.
Je to jednoduché, nesúhlasíte? Môžete napríklad vytvoriť html stránku a vytvoriť prepojenia cez premenné v menu a v index.php spracovať premennú a zobraziť konkrétnu stránku v závislosti od prijatej hodnoty. No, o tom si povieme neskôr, v článku o vytvorení webovej stránky v PHP od nuly. Aby ste nič nezmeškali, odporúčam vám prihlásiť sa na odber RSS.

Metóda POST v PHP

Na demonštráciu fungovania tejto metódy budeme potrebovať trochu viac ako obyčajný riadok s adresou :) Budeme potrebovať vytvoriť HTML stránku s formulárom na vyplnenie, ale nevadí, dám vám hotovú príklad:

Príklad stránky na odovzdávanie premenných pomocou funkcie Post

Vyplňte polia na prenos informácií:

Zadajte svoje meno:

Uveďte prosím svoj vek:



Vytvorili sme teda html stránku s jednoduchým formulárom. Pamätajte, že metódu POST možno použiť iba vo formulári.
Prvým parametrom formulára je „metóda“, definuje metódu, ktorú použijeme na prevod. Ako ste možno uhádli, toto je buď GET alebo POST. Okrem toho, ak je nastavený GET, všetky názvy polí (vo forme názvov premenných), ako aj ich hodnoty, sa odovzdávajú odkazom, ako v časti o metóde GET. Ak je nastavený POST, potom sa všetky názvy a hodnoty premenných prenesú ako požiadavka prehliadača na webový server. To znamená, že nebudú viditeľné v paneli s adresou. V mnohých prípadoch je to veľmi užitočné. POST je tiež bezpečnejší, čo je pochopiteľné, pretože premenné s ich hodnotami už nie je také ľahké upravovať, aj keď je to tiež možné.

Druhým parametrom formulára je „akcia“. Toto je cesta a názov súboru skriptu, ktorému odovzdávame údaje. V našom prípade je to index.php. Táto cesta môže byť prenesená v plnom rozsahu, to znamená takto: action = „https://my_site.ru/index.php“. Ak nezadáte hodnotu parametra „action“, všetky informácie sa prenesú do hlavného skriptu, teda indexovej stránky index.php vášho webu, čo je celkom logické.

Teraz získame údaje z nášho formulára. Keďže sme to odovzdali index.php, nižšie bude kód tejto konkrétnej stránky:

"; echo "name - "; echo $_POST["user_name"]; echo "
vek - "; echo $_POST["vek"]; echo "roky"; ) else ( echo "Premenné nedorazili. Skontrolujte všetko znova."; ) ?>

Nezabudnite skontrolovať prázdnotu a platné hodnoty. Ďalej musíme objasniť, prečo sa naše premenné nazývajú user_name a age? A pozrite sa na polia formulára, ktorý sme vytvorili vyššie. Pozri tam input name="user_name" type="text"? Tu parameter name určuje názov premennej, ktorú získame pomocou tohto poľa. Rovnako je to aj s vekom. Dúfam, že je to jasné. Získanie premennej a jej hodnoty prostredníctvom POST sa takmer nelíši od GET, o ktorom sme hovorili vyššie.

Nuž, ukázalo sa, že je to veľká lekcia, ale jedna z najužitočnejších, pretože odovzdávanie premenných medzi formulármi a stránkami je presne tá interaktivita, na ktorú používame PHP.