„PHP Post“ gavimo ir failų metodai

Turinys

Dažnai mes susiduriame su paprastu tinklalapiu, todėl programuojame HTML kalbą, tačiau eidami į priekį suprantame, kad tai nėra taip paprasta ir kad norime įvesti informaciją, kad vėliau ją peržiūrėtume, tvarkytume ir keistume, ir tam turime pasikliauti duomenų įvedimo formomis. Būtent tą akimirką HTML kalba mums tampa per maža ir mes kreipiamės į kitas kalbas. Dažniausiai yra sukurti įvesties formas PHP, ir tam mes galime naudoti Gauti ir paskelbti metodai.

Abiejų metodų veikimas yra labai paprastas, mes siunčiame formą į php scenarijų, kad mūsų formos informacija būtų prieinama minėtame scenarijuje. Tokiu būdu mes pasiekiame, kad mūsų svetainė būtų interaktyvi ir kad klaviatūra įvesta informacija būtų prieinama peržiūrėti ar galėtume ja naudotis.

Labai svarbu žinoti, kaip sukurti paprastą HTML formą ir tada naudokite vieną iš dviejų metodų.
Paprastos formos pavyzdys yra toks:

 Vartotojas:
Slaptažodis:
Forma yra žyma, nurodanti, kad ketiname sukurti formą HTML. Ir čia naudojami du atributai:
  • veiksmas - tai nurodo, kokio tipo veiksmus atliks mūsų forma, tai yra, ar informacija bus išsiųsta į el. laišką, programą ar tinklalapį.
  • metodas - yra atributas, kuris nuspręs, kokio tipo metodą mes naudojame, gauti ar paskelbti, tai yra, kaip forma bus išsiųsta. Tai gali būti GET arba POST, bet pagal numatytuosius nustatymus, jei nenurodysime, tai bus GET.

Bet dabar koks skirtumas naudojant Pašto metodas ir Gaukite metodą?

Pradėkime nuo „Get“:

GET metodasPirmas dalykas yra tas, kad ankstesniame pavyzdyje forma metodu turime įdėti "Gauk".
Jei siunčiame duomenis per „Get“, informacija siunčiama URL adresu, o kai mūsų prašomas puslapis baigia įkelti siunčiamus duomenis, vartotojas mato, tai yra, įvedant mūsų formos duomenis, šiuo atveju naudotojo vardą ir slaptažodį, minėti duomenys bus matomi mūsų naršyklėje taip:
http://miweb.com/for… password = 1986 m

Kitaip tariant, pirmiausia rodomas mūsų tinklalapio pavadinimas, o po to formos pavadinimas, atskirtas juostele, ty pats žiniatinklio adresas; ir po klaustuko atsiras klaviatūroje įvestų laukų reikšmės.

Norėdami pasiekti informaciją, siunčiamą per gauti su PHP forma yra tokia:

 
Turime naudoti kintamąjį $ _GET su lauko, kurį norime gauti, pavadinimu, norėdami surinkti informaciją ir įvesti ją į bet kurį kintamąjį, tada galėsime ją naudoti kaip ir bet kurį kitą kintamąjį.
Jis vizualizuojamas naudojant aidą ir pasiekiamas arba modifikuojamas taip pat, kaip ir bet kuris kitas kintamasis, kurį naudojame php.

The Gauti metodo trūkumas yra tas, kad įvesta informacija bus matoma ir jis nėra siunčiamas paslėptu būdu. Todėl jei siunčiame konfidencialius duomenis, tokius kaip slaptažodžiai, kredito kortelės ir pan., Mūsų informacija nebus saugi.

Kiti „Get“ naudojimo trūkumas yra tas, kad jei mūsų formoje yra daug laukų, visos reikšmės bus sujungtos mūsų URL, todėl naršyklėje turėsime per ilgą adresą, tačiau maksimalus palaikomas ilgis yra tik 2048 simboliai.

Be to, reikia pridurti, kad gauti metodą dvejetainė informacija ar dokumentai negali būti siunčiami į ją, o priima tik ASCII koduotus simbolius.

Apibendrinant galime pasakyti, kad GET metodas apskritai nėra labai rekomenduojamas, nebent ketiname siųsti nesvarbią informaciją arba nesvarbu, kad ji yra matoma visiems ir kad tai yra mažai informacijos.

POST metodasŠiuo atveju HTML įvesties formoje turėsime įdėti įrašą, o ne gauti metodą. Skirtingai nuo „Get“, informacija, kurią siunčiame per formą, keliauja ne per URL, o užšifruota ar ne per http užklausos turinį.

Kaip naudoti Paskelbti php yra kitas:

 
Kaip ir „Get“, norimo lauko turinį išsaugome bet kuriame kintamajame, bet šį kartą $ _POST. Jis veikia lygiai taip pat, kai reikia jį peržiūrėti, keisti informaciją ir pan.

pranašumai prieš „Get“ jie randa vienas kitą:

  • Naudojant „Get“ nebuvo apribotas 2048 simbolių dydis.
  • Informacija gali keliauti saugiai, jei ją siunčiame per tam tikrus protokolus.
  • Be ASCII koduotų simbolių priėmimo, mes taip pat galime siųsti dvejetainius duomenis.

FILES metodasSu Gaukite metodą sakėme, kad negalima siųsti failų ar dvejetainių duomenų. Su pašto metodas Taip, mes galime siųsti failus, tačiau tai yra speciali pranešimo metodo forma, vadinama FILES, nes identifikatorius yra $ _FILES.
Norėdami tai padaryti, turite pakeisti HTML įvesties forma:

 Įkeliamas failas: 
Pirmoje eilutėje pristatėme tik rezervuotą žodį enctype, kuris yra formos žymos atributas, nurodantis, kaip informacija keliaus, kai ji bus išsiųsta per formą. Į šį atributą įtraukėme daugialypius / formos duomenis, o tai reiškia, kad ketiname siųsti dvejetainius duomenis, o pačioje formoje turime nurodyti, kad tai, kas bus siunčiama, yra failas, įvedant failą įvesties tipu.
Tokiu atveju kintamojo nebenaudosime $ _POST bet mes turime naudoti $ _FILES, o tvarkant failus, patogu tvarkyti klaidas, kaip parodyta šiame pavyzdyje:
 0) {echo "Klaida:". $ _FILES ["failas"] ["klaida"]. "
";} else {echo" Name: ". $ _FILES [" file "] [" name "]."
"; echo" Tipas: ". $ _FILES [" failas "] [" tipas "]."
"; echo" Dydis: ". $ _FILES [" failas "] [" dydis "]."
"; echo" Kelias: ". $ _FILES [" failas "] [" tmp_name "];}?> var13 ->
kur:
-> $ _ FILES ["failas"] ["klaida"] apima klaidos kodą, susietą su atitinkamu failu.
-> $ _ FILES ["failas"] ["vardas"] yra failo pavadinimas.
-> $ _ FILES ["failas"] ["tipas"] yra failo, kuris siunčiamas, jei ši vertė buvo pateikta, tipas. Šis laukas nėra pažymėtas serverio pusėje, todėl informacija gali būti neteisinga.
-> $ _ FILES ["failas"] ["dydis"] nurodo failo dydį, visada išreikštą baitais.
-> $ _ FILES ["failas"] ["tmp_name"] -tai kelias arba laikinas failo, kuriame saugomas į serverį įkeliamas failas, kelias arba laikinas pavadinimas.

IšvadaPo paaiškinimo mes jau žinome, kad protingiausias dalykas yra naudoti POST metodas kurdami mūsų įėjimo formas, kad galėtume saugiau tvarkyti informaciją ir FILES metodas jei norime įkelti failus į mūsų svetainę.

Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave