namai - Pradedantiesiems
PHP ir GET bei POST duomenų perdavimo būdai. POST, GET: kuo užklausos skiriasi viena nuo kitos Kas yra duomenų perdavimas naudojant get metodą

apibūdinimas

Metodo atributas praneša serveriui apie užklausos metodą.

Sintaksė

...

Vertybės

Metodo atributo reikšmė yra neskiriama didžiųjų ir mažųjų raidžių. Yra du būdai – gauti ir išsiųsti.

Gauti Šis metodas yra vienas iš labiausiai paplitusių ir skirtas gauti reikiamą informaciją ir perduoti duomenis į adreso juosta. Šiuo atveju poros pavadinimas=reikšmė pridedama prie adreso po klaustuko ir atskiriama ampersandu (& simboliu). Gauti metodo naudojimo patogumas yra tas, kad adresą su visais parametrais galima naudoti pakartotinai, išsaugant jį, pavyzdžiui, naršyklės žymėse, taip pat galite pakeisti parametrų reikšmes tiesiogiai adreso juostoje. post Post metodas siunčia duomenis į serverį pagal naršyklės užklausą. Tai leidžia siųsti daugiau duomenų, nei galima gauti naudojant gavimo metodą, nes jis turi 4 KB apribojimą. Dideli duomenų kiekiai naudojami forumuose, el. pašto paslaugose, pildant duomenų bazes, siunčiant failus ir kt.

Reikalingas atributas

Numatytoji reikšmė

HTML5 IE Cr Op Sa Fx

FORM žyma, metodo atributas



Kuriant bet kokį projektą, vienas elementariausių dalykų yra bendravimas su vartotoju. Galime jo ko nors paklausti ir suteikti teisę atsakyti (apklausa), galime suteikti teisę parašyti savo nuomonę apie prekę ar paslaugą, galime padėti apskaičiuoti mūsų paslaugų kainą, jei reikia sukurti internetinę parduotuvė ir kt.

Visais atvejais vartotojas turi turėti teisę ką nors parašyti ir ką nors paspausti. Tam ir skirtos formos.

Darbas su formomis PHP ir HTML

Formos identifikuojamos pagal formos žymą:

metodo atributas nurodo, kokiu būdu bus pateikta forma. Yra 2 būdai – GET ir POST. Daugiau apie tai skaitykite toliau, o trumpai pakalbėsime apie pagrindinius formos elementus:

Teksto laukas – įveskite tekstą

Teksto laukas, kuriame galite įvesti informaciją. pavadinimo atributas- teksto lauko pavadinimas, vertė- prasmė. Jie atrodo taip:

Mygtukas – Įvesties pateikimas

Mygtukas, naudojamas formoms pateikti. Tai atrodo taip:

Teksto blokas – Textarea

Teksto blokas, dažniausiai naudojamas didelėms žinutėms rašyti. Atributų eilutės, stulpeliai – ilgis ir plotis.

Išvaizda:

Daugiau apie formas skaitykite mūsų svetainėje arba kituose šaltiniuose. Šios pamokos tikslas – parodyti, kaip apdoroti formas naudojant PHP.

GET ir POST metodas pateikiant formas

GET ir POST metodai yra nurodyti formos atribute Metodas, kai ji inicijuojama:

GET metodas perteikia informaciją puslapio adresu, POST metodas– antraštėse. Norėdami geriau suprasti, kas tai yra GET ir POST metodas Parašykime scenarijų, kuris atsiųs mūsų vardą ir pranešimą serveriui, o serveris parodys pranešimą ekrane.

PHP duomenimis gautas naudojant GET metodą saugomi kintamajame $_GET. Duomenys perduodama naudojant POST metodą saugomi kintamajame $_POST.

Pirmiausia parašykite kodą, kad jis veiktų naudojant GET metodą, tada POST metodą.

Formos - dizaino studija OX2.ru

 

print_r($_GET); //Išvesti masyvą naudodami print_r
?>

Tavo vardas:
Pranešimas:



Dabar pakeisime scenarijų, kad duomenys būtų siunčiami naudojant POST metodą.

Formos - dizaino studija OX2.ru

 

print_r($_POST); //Išvesti masyvą naudodami print_r
?>

Tavo vardas:
Pranešimas:



Norėdami geriau suprasti darbą su formas PHP, siųsti ir gauti duomenis POST ir GET metodai, kitoje pamokoje darysime paprastą loginį žaidimą.

Kuriant bet kurį projektą vienas elementariausių dalykų yra bendravimas su vartotoju. Galime jo ko nors paklausti ir suteikti teisę atsakyti (apklausa), galime suteikti teisę parašyti savo nuomonę apie prekę ar paslaugą, galime padėti apskaičiuoti mūsų paslaugų kainą, jei reikia sukurti internetinę parduotuvė ir kt.

OX2 2014-10-05 2014-10-05

Naršyklės klientai gali siųsti informaciją į žiniatinklio serverį.

Prieš siųsdama informaciją, naršyklė ją užkoduoja naudodama schemą, vadinamą URL kodavimu. Šioje schemoje vardo/reikšmių poros sujungiamos lygybės ženklais, o skirtingos poros yra atskirtos ampersandu.

Vardas1=reikšmė1&vardas2=reikšmė2&vardas3=reikšmė3

Tarpai pašalinami ir pakeičiami simboliu +, o visi kiti ne raidiniai ir skaitiniai simboliai pakeičiami šešioliktainėmis reikšmėmis. Kai informacija užkoduota, ji siunčiama į serverį.

GET metodas

GET metodas siunčia užkoduotą vartotojo informaciją, pridėtą prie puslapio užklausos. Ar puslapiai ir užkoduota informacija yra atskirti vienas nuo kito? Klaustukas.

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

  • GET metodas sukuria ilgą eilutę, kuri rodoma jūsų serverio žurnaluose naršyklės lauke „Vieta“.
  • Naudojant GET metodą, galima siųsti tik iki 1024 simbolių.
  • Niekada nenaudokite GET metodo, jei turite slaptažodį ar kitą Konfidenciali informacija siųsti į serverį.
  • GET negalima naudoti dvejetainiams duomenims, pvz., vaizdui arba vaizdui, perduoti tekstinius dokumentus, į serverį.
  • Duomenis, išsiųstus naudojant GET metodą, galima pasiekti naudojant aplinkos kintamasis QUERY_STRING.
  • PHP suteikia asociatyvųjį masyvą $_GET, kad būtų galima pasiekti visą išsiųstą informaciją naudojant GET metodą.

if($_GET["vardas"] || $_GET["amžius"]) ( echo "Sveiki ". $_GET["vardas"]; echo "Tu esi ". $_GET["amžius"]. " metų "; išeiti (); )

Vardas: Amžius:

POST metodas

Metodas PAST perduoda informaciją per HTTP antraštes. Informacija užkoduojama taip, kaip aprašyta metodo atveju GAUTI ir įdėti į antraštę QUERY_STRING.

  • POST metodas neriboja duomenų, kuriuos reikia siųsti, dydžio.
  • POST metodas gali būti naudojamas ASCII ir dvejetainiams duomenims siųsti.
  • Duomenys, siunčiami naudojant POST metodą, pereina per HTTP antraštę, todėl saugumas priklauso nuo HTTP protokolo. Naudodami saugų HTTP galite užtikrinti, kad jūsų informacija būtų apsaugota.
  • PHP pateikia asociatyvų masyvą $_POST, kad būtų galima pasiekti visą informaciją, siunčiamą naudojant POST metodą.

Išbandykite šį pavyzdį įdėdami šaltinisį test.php scenarijų.

if($_POST["vardas"] || $_POST["amžius"]) (if (preg_match("[^A-Za-z"-]",$_POST["vardas"])) ( miršta (" neteisingas vardas ir vardas turi būti alfa"); ) echo "Sveiki ". $_POST["vardas"]; echo "Tu esi ". $_POST["amžius"]. " metų."; išeiti (); )

Vardas: Amžius:

$_REQUEST kintamasis

PHP kintamasis $_REQUEST yra tokio turinio kaip $_GET, $_POST, taip $_COOKIE. Mes aptarsime kintamąjį $_COOKIE kai kalbame apie slapukus.

PHP $_REQUEST kintamasis gali būti naudojamas norint gauti rezultatą iš formos duomenų, pateiktų naudojant GET ir POST metodus.

Juos sieja tai, kad jie veikia vienodai. Techniškai tarp jų nėra jokio skirtumo. Tačiau yra ideologinių skirtumų.

Apie juos kalbėsiu PHP kontekste. Atkreipkite dėmesį, kad HTTP protokolas yra netiesiogiai susijęs su PHP, nes jis buvo sukurtas keistis html puslapiais, o PHP tiesiog išplečia abiejų galimybes.

GET užklausa naudojama duomenims gauti, o POST – siuntimui. (Atminkite, kad techniškai jie veikia taip pat).

Todėl PHP kontekste, remdamiesi šia ideologija, atlikome šiuos veiksmus:
1. Kiekvieną kartą paleidus PHP pagal numatytuosius nustatymus sukuriami superglobaliniai masyvai ($_GET, $_POST).
2. Jei užklausos eilutėje yra klaustukas(?). Viskas po to yra svarstoma parametrus GET užklausą, jie pateikiami formatu "key"="value", o ampersand simbolis (&) naudojamas kaip skyriklis.
Pavyzdys:
GET /index.php?name=Andrey&surname=Galkin
Tai užklausos eilutė, yra 2 parametrai. šie parametrai pateks į $_GET masyvą.
3. $_POST pildomas kitu būdu. šio masyvo turinys pildomas iš „užklausų antraščių“. Tai yra, iš vietos, kuri aiškiai paslėpta nuo akių. Naršyklė pasirūpina visais tokių antraščių kūrimo darbais. Nors kartais kažkas antraštėse redaguojama rankiniu būdu.

Dažniausiai formose (duomenims siųsti) naudojama pašto užklausa.

Pavyzdžiui, turime prisijungimo formą su 2 laukais: prisijungimo vardas ir slaptažodis.

Įsivaizduokime, kad naudojame GET metodą. Tada, pateikdami formą, eisime šiuo adresu /login.php?login=Andrey&password=123 Jūs sutinkate, kad perduoti tokią informaciją tokiu būdu yra visiškai nesaugu. Kiekvienas gali atidaryti jūsų naršyklę ir, pradėjęs įvesti svetainės adresą, gali matyti jūsų slaptažodžius ir prisijungimus iš istorijos.

Bet jei nurodytume POST metodą, gautume tokią užklausą:
POST /login.php (login=Andrey&password=123) tai, kas yra skliausteliuose, būtų paslėpta ir niekaip neišsaugoma naršyklėje.

Apibendrinant:
GET yra patekti į konkretų puslapį tam tikra forma(rūšiavimas, dabartinis tinklaraščio puslapis, paieškos juosta ir kt.).
POST – siunčiant duomenis, kurie neturi įtakos puslapio atvaizdavimui, ta prasme, kad šie duomenys turi įtakos tik scenarijaus rezultatui (prisijungimams, slaptažodžiams, kredito kortelių numeriams, žinutėms ir kt.).

Ir dar viena gera žinia yra ta, kad, pavyzdžiui, jas galima derinti
POST /index.php?page=login (login=Andrey&password=123) Manau, jau pakankamai paaiškinau, kas iš to išeis ir kokie parametrai pateks į kokį masyvą.

GET ir POST metodų naudojimą PHP sunku pervertinti, nes šie metodai yra beveik kiekvienoje svetainėje. Prieš studijuojant toliau aprašytą medžiagą, patariu susipažinti su html žyma

. Pažvelkime į kiekvieną iš šių metodų išsamiai.

GET metodas

GET metodas naudoja URL eilutę duomenims perduoti. Galbūt pastebėjote ilgus ir neaiškius URL. Pavyzdžiui: function.php?login=Alex&email=dezyakin. Šiuo atveju duomenys apdorojami function.php. Po klaustuko „?“ pateikiamas perduodamų parametrų sąrašas (parametrai atskirti „&“) su reikšmėmis: prisijungimo parametrui priskiriama Alex reikšmė, o el. pašto kintamajam – dezyakin. Duomenys bus saugomi superglobaliame masyve $_GET. Toliau pateikiamas GET metodo naudojimo pavyzdys:

Prisijungti: El. paštas: Naudodami superglobalinį masyvą $_GET, rodome priimtas reikšmes:*/ aidas"
login = ". $_GET["prisijungti"] ; echo "
email = ". $_GET["el. paštas"] ; ?>

Atkreipkite dėmesį, kaip skaitome reikšmes iš $_GET superglobaliojo masyvo: $_GET["kintamojo_pavadinimas"]. Mūsų pavyzdyje kintamųjų pavadinimai buvo deklaruoti forma (vardas = prisijungimas ir vardas = el. paštas).

Patarimas:
Prieš apdorojant gautas reikšmes, patariu patikrinti jų egzistavimą per funkcijas isset(kintamojo_pavadinimas) arba tuščias (kintamojo_pavadinimas)- šios funkcijos buvo aptartos ankstesnėje 2 pamokoje: PHP kintamieji. Pavyzdžiui:

egzistavimo patikrinimas naudojant isset: if isset ($_GET["prisijungti"] ) ( operatoriai prisijungimui apdoroti ... } //arba patikrinkite, ar nėra, naudodami tuščią: jei tuščia ($_GET["email"] ) ( elektroninio pašto apdorojimo operatoriai ... } ?>

Formoje galite nurodyti failo, kuris apdoros perkeltas reikšmes, pavadinimą. Tai atliekama naudojant formos atributą action, kuriam galima priskirti šio failo adresą. Pagal numatytuosius nustatymus šis failas yra priskirtas dabartinis failas(t. y. apdorojama faile, kuriame yra forma). Štai pavyzdys, kai duomenys iš formos perkeliami į srcipt.php failą apdoroti:

Prisijungti: El. paštas:

script.php faile turi būti kažkoks informacijos tvarkytuvas, antraip informacija bus perduota tuščia.

GET metodas turi daug trūkumų:

  • Vartotojas mato perduotų parametrų reikšmes;
  • Vartotojas gali lengvai padirbti perduoti parametrai;
  • Nepatogus dvejetainės informacijos perdavimas (turite ją užkoduoti teksto formatu);
  • Perduodamų duomenų kiekis ribotas – 8 KB;

Dėl minėtų trūkumų GET metodas naudojamas tik tais atvejais, kai reikia perduoti nedidelį duomenų kiekį, o šie duomenys niekaip nėra klasifikuojami.

POST metodas

POST metodas nuo GET skiriasi tuo, kad duomenys perduodami privačia forma. Yra superglobalus masyvas $_POST, iš kurio duomenis galima nuskaityti taip: $_POST["kintamojo_pavadinimas"]. Pavyzdžiui:

Prisijungti: "> El. paštas: ">
Naudodami superglobalinį masyvą $_POST, rodome priimtas reikšmes:*/ aidas"
login = ". $_POST["prisijungti"] ; echo "
email = ". $_POST["el. paštas"] ; ?>

Aukščiau pateikto kodo vykdymo rezultatas parodytas paveikslėlyje žemiau:

Kaip matote, URL nėra postscript, tačiau duomenys buvo gauti ir rodomi.

Pastaba:
1) POST metodu perduodamų reikšmių tūris pagal numatytuosius nustatymus yra ribojamas ir yra lygus 8 MB. Norėdami padidinti šią reikšmę, turite pakeisti php.ini direktyvą post_max_size.

2) Ankstesnėse PHP versijose vietoj trumpų superglobalių masyvo pavadinimų $_GET ir $_POST buvo naudojami ilgesni pavadinimai: $HTTP_GET_VARS ir $HTTP_POST_VARS. Pagal numatytuosius nustatymus PHP 5 versijoje jie yra išjungti, tačiau galite juos įjungti php.ini konfigūracijos faile naudodami parametrą register_long_arrays. php 6 versijoje šie ilgi pavadinimai nebus pasiekiami.

3) Prieš apdorojant kintamuosius iš $_POST, patariu patikrinti, ar kintamieji nėra, kaip buvo daroma naudojant GET metodą.



 


Skaityti:



Geriausių belaidžių ausinių įvertinimas

Geriausių belaidžių ausinių įvertinimas

Ar galima nebrangiai įsigyti universalių ausų? 3000 rublių – ar už tokius pinigus galima nusipirkti kokybiškų ausinių? Kaip paaiškėjo, taip. Ir kalba...

Pagrindinė mobiliojo įrenginio kamera dažniausiai yra užpakalinėje korpuso dalyje ir naudojama fotografuoti bei filmuoti

Pagrindinė mobiliojo įrenginio kamera dažniausiai yra užpakalinėje korpuso dalyje ir naudojama fotografuoti bei filmuoti

Atnaujinta planšetės versija su patobulintomis charakteristikomis ir dideliu autonomiškumu.Acer išmanieji telefonai retai lankomi...

Kaip persijungti į kitą operatorių išsaugant savo numerį

Kaip persijungti į kitą operatorių išsaugant savo numerį

Įstatymas dėl telefono numerio išsaugojimo, kai abonentas pereina prie kito mobiliojo ryšio operatoriaus, Rusijoje įsigaliojo gruodžio 1 d. Tačiau paaiškėjo, kad...

phableto apžvalga, brangi, bet labai kompetentinga

phableto apžvalga, brangi, bet labai kompetentinga

Apžvalga apie phablet, brangus, bet labai kompetentingas 2015-03-20 Esu vienintelis batsiuvys pasaulyje be batų, išmaniųjų telefonų apžvalgininkas be savo išmaniojo telefono....

tiekimo vaizdas RSS