Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Windows 8
  • Skriptet PHP për përpunimin e formave HTML. Mënyrat se si shfletuesi komunikon me serverin

Skriptet PHP për përpunimin e formave HTML. Mënyrat se si shfletuesi komunikon me serverin

JavaScript është bllokuar në shfletuesin tuaj. Ju lutemi aktivizoni JavaScript për funksionimin e sajtit!

Puna me formularët

Format HTML përdoren për të transferuar të dhëna nga përdoruesi i një ueb faqeje në server. PHP ofron një sërë mjetesh speciale për të punuar me forma.

Variablat e paracaktuar

PHP ka një numër variablash të paracaktuar që nuk ndryshojnë në të gjitha aplikacionet që ekzekutohen në një mjedis të caktuar. Quhen edhe variabla të mjedisit ose variablat e mjedisit. Ato pasqyrojnë cilësimet e mjedisit Serveri në internet Apache, si dhe informacione rreth kërkesës të këtij shfletuesi. Është e mundur të merren vlerat e URL-së, vargut të pyetjes dhe elementëve të tjerë të kërkesës HTTP.

Të gjitha variablat e paracaktuar janë të përfshira në grupin asociativ $GLOBALS. Përveç variablave të mjedisit, ky grup përmban edhe variabla globale të përcaktuara në program.

Shembulli 1 Shikoni grupin $GLOBALS

Si rezultat, një listë e të gjitha variablave globale, duke përfshirë variablat e mjedisit, do të shfaqet në ekran. Më të përdorurat janë:

Përmbajtja e përshkrimit të ndryshueshme
$_SERVER["HTTP_USER_AGENT"]Emri dhe versioni i klientitMozilla/5.0 (i pajtueshëm; Googlebot/2.1; +http://www.google.com/bot.html)
$_SERVER["REMOTE_ADDR"]adresa IP144.76.78.3
getenv ("HTTP_X_FORWARDED_FOR")Adresa IP e brendshme e klientit
$_SERVER["REQUEST_METHOD"]Mënyra e kërkesës (GET ose POST)MARR
$_SERVER["QUERY_STRING"]GET kërkesë të dhënat e koduara të dërguara së bashku me URL-në
$_SERVER["REQUEST_URL"]Adresa e plotë e klientit duke përfshirë vargun e pyetjeve
$_SERVER["HTTP_REFERER"]URL-ja e faqes nga e cila është bërë kërkesa
$_SERVER["PHP_SELF"]Rruga drejt programit që po ekzekutohet/index.php
$_SERVER["SERVER_NAME"]Domenifaqe interneti
$_SERVER["REQUEST_URI"]Rrugë/php/php_form.php
Trajtimi i të dhënave të përdoruesit

Programi i përpunimit të hyrjeve PHP mund të ndahet nga teksti HTML që përmban formularët e hyrjes, ose mund të vendoset në një faqe.

Shembulli 2 Përpunimi i hyrjes Shembull 2. Butoni i rivendosjes së formës

Kur klikoni butonin e rivendosjes, të gjithë elementët e formularit do të vendosen në gjendjen që është specifikuar në atributet e paracaktuara dhe formulari nuk do të dorëzohet.

Nuk kërkohet skript PHP.

3. Kutia e kontrollit

Kutitë e kontrollit i paraqesin përdoruesit një numër opsionesh dhe lejojnë zgjedhje arbitrare (asnjë, një ose më shumë prej tyre).

E bardha
E gjelbër
Blu
E kuqe
E zezë

// grupi i parë i butonave
// grup i dytë i butonave
// grupi i tretë i butonave

5. Fusha e tekstit (tekst)

Kur krijoni një fushë të rregullt teksti me madhësinë dhe gjatësinë maksimale të lejuar të karaktereve të gjatësisë maksimale, atributi tip merr vlerën e tekstit . Nëse specifikohet parametri i vlerës, fusha do të shfaq vlerën e specifikuar në variabël. Kur krijoni një fushë, mos harroni të specifikoni emrin e fushës, sepse... ky atribut kërkohet.

6. Fusha e fjalëkalimit

Pikërisht njësoj si një fushë teksti, me përjashtim të faktit që karakteret e shtypura nga përdoruesi nuk do të shfaqen në ekran.

7. Fusha e tekstit të fshehur (e fshehur)

Ju lejon të kaloni disa informacione shërbimi në skript pa e shfaqur atë në faqe.

8. Lista rënëse (zgjidh)

Një etiketë është një listë rënëse ose e zgjeruar, dhe një ose më shumë rreshta mund të zgjidhen në të njëjtën kohë. Por vlera do të kalojë në butonin e fundit të zgjedhur.

Lista fillon me etiketat e çiftuara. Etiketat ju lejojnë të përcaktoni përmbajtjen e listës, dhe parametri i vlerës përcakton vlerën e vargut. Nëse parametri i zgjedhur është specifikuar në etiketë, atëherë rreshti do të zgjidhet fillimisht. Parametri i madhësisë përcakton se sa rreshta do të zërë lista. Nëse madhësia është 1, atëherë lista do të jetë një dropdown. Nëse specifikohet atributi i shumëfishtë, atëherë mund të zgjidhen disa elementë nga lista. Por kjo skemë praktikisht nuk përdoret, dhe me madhësi = 1 nuk ka kuptim.

E bardhë E gjelbër Blu E kuqe E zezë

Nëse keni nevojë të krijoni një drop-down me një sekuencë të parashikueshme. Për shembull, një listë me vite nga 2000 deri në 2050. Më pas përdoret teknika e mëposhtme.

9. Fusha e futjes së tekstit me shumë rreshta (textarea)

Një fushë e futjes së tekstit me shumë rreshta ju lejon të dërgoni jo vetëm një rresht, por disa në të njëjtën kohë. Nëse është e nevojshme, mund të specifikoni atributin vetëm për lexim, i cili ndalon redaktimin, fshirjen dhe ndryshimin e tekstit, d.m.th. teksti do të jetë vetëm për lexim. Nëse është e nevojshme që teksti fillimisht të shfaqet në një fushë hyrëse me shumë rreshta, atëherë ai duhet të vendoset midis etiketave.

Ekziston një parametër i mbështjelljes - vendosja e mbështjelljes së linjës. Vlerat e mundshme:

off - çaktivizon mbështjelljen e linjës;

virtuale - tregon ndërprerje të rreshtave, por e dërgon tekstin ashtu siç është futur;

fizike - ndërprerjet e vijave lihen në formën e tyre origjinale.

Si parazgjedhje, etiketa krijon një fushë bosh me gjerësi 20 karaktere dhe përbëhet nga 2 rreshta.


Në mënyrë që një fushë teksti me shumë rreshta të përputhet me formatimin html (mbështjellja e rreshtit duke përdorur etiketën
ose
), pastaj përdorni funksionin nl2br():

Rreshti i futur fillimisht 1 Rreshti i futur fillimisht 2 Rreshti 3 i futur fillimisht

10. Butoni për ngarkimin e skedarëve (shfleto)

Shërben për të zbatuar ngarkimin e skedarëve në server. Kur krijoni një fushë teksti, duhet gjithashtu të specifikoni llojin e fushës si "skedar".

Ngarko skedarin:

MËNYRAT E KOMUNIKIMIT TË SHfletuesit ME SERVER

Ka pak metoda të ofruara nga protokolli HTTP. Ky është informacion i rëndësishëm. Nuk ka rrugë të tjera. Në praktikë, përdoren dy: GET është kur të dhënat transferohen në shiritin e adresave, për shembull, kur përdoruesi klikon një lidhje. POST - kur ai klikon një buton në formular.

Metoda GET

Për të transferuar të dhëna duke përdorur metodën GET, nuk keni nevojë të krijoni një formular në një faqe HTML (askush nuk ju ndalon të përdorni formularë për kërkesa duke përdorur metodën GET - por kjo është marrëzi) - vetëm një lidhje me dokumentin me shtimin e një varg pyetjesh që mund të duket si një variabël=value çiftet kombinohen duke përdorur një ampersand & dhe vargu i shtohet URL-së së faqes duke përdorur një pikëpyetje “? "

Por nuk duhet të përdorni çifte key=value nëse duhet të kaloni vetëm një ndryshore; për ta bërë këtë, duhet të shkruani VALUE (jo emrin) e ndryshores pas pikëpyetjes.

Avantazhi i kalimit të parametrave në këtë mënyrë është se klientët që nuk mund të përdorin metodën POST (për shembull, motorët e kërkimit) ende mund t'i kalojnë parametrat në skript duke ndjekur lidhjen dhe të marrin përmbajtjen.

Ana negative është se thjesht duke ndryshuar parametrat në shiritin e adresave, përdoruesi mund ta kthejë skriptin në një mënyrë të paparashikueshme, kjo krijon një vrimë të madhe sigurie kur kombinohet me variabla të papërcaktuar dhe register_globals ose dikush mund të zbulojë vlerën e një ndryshoreje të rëndësishme. (si ID e sesionit) thjesht duke parë në ekranin e monitorit.

Për të hyrë në faqet publike duke kaluar parametra (funksionalitet i rritur)

Transferimi i informacionit që nuk ndikon në nivelin e sigurisë

Për të hyrë në faqet e mbrojtura me parametra të kaluar

Për të transmetuar informacione që ndikojnë në nivelin e sigurisë

Për të transmetuar informacione që nuk mund të modifikohen nga përdoruesi (disa transmetojnë tekstin e pyetjeve SQL.

Metoda POST

Ju mund të dërgoni të dhëna duke përdorur metodën POST vetëm duke përdorur një formular në një faqe HTML. Dallimi kryesor midis POST dhe GET është se të dhënat nuk transmetohen në kokën e kërkesës, por në trup, prandaj përdoruesi nuk i sheh ato. Mund të modifikohet vetëm duke ndryshuar vetë formën.

Avantazhi:

Siguri dhe funksionalitet më i madh për kërkesat që përdorin formularët POST.

E metë:

Më pak disponueshmëri.

Për çfarë duhet ta përdorni:

Për të transmetuar një sasi të madhe informacioni (tekst, skedarë..);

Për të transmetuar çdo informacion të rëndësishëm;

Për të kufizuar aksesin (për shembull, përdorni vetëm formularin për navigim - një opsion që nuk disponohet për të gjitha programet robotike ose grabitësit e përmbajtjes).

Për çfarë nuk duhet të përdoret:

Asnjë kufizim.

Ngarkimi i skedarëve duke përdorur metodën POST

PHP është në gjendje të pranojë një skedar të shkarkuar duke përdorur çdo shfletues. Kjo bën të mundur ngarkimin e skedarëve tekst dhe binar. I kombinuar me autentifikimin PHP dhe funksionet e sistemit të skedarëve, ju keni kontroll të plotë se kush lejohet të ngarkojë skedarë dhe çfarë të bëjë me skedarin pasi të jetë ngarkuar.

Faqja e ngarkimit të skedarit mund të zbatohet duke përdorur një formë të veçantë që duket diçka si kjo:

//Formulari për ngarkimin e skedarëve Dërgo këtë skedar:

Në shembullin e mësipërm, "_URL_" duhet të zëvendësohet me një lidhje në skriptin PHP. Fusha e fshehur MAX_FILE_SIZE (vlera duhet të specifikohet në bajt) duhet t'i paraprijë fushës së përzgjedhjes së skedarit dhe vlera e saj është madhësia maksimale e lejuar e skedarit për t'u pranuar. Gjithashtu duhet të siguroheni që të specifikoni enctype="multipart/form-data" në atributet e formës, përndryshe skedarët nuk do të ngarkohen në server.

Kujdes

Opsioni MAX_FILE_SIZE është një rekomandim i shfletuesit, edhe nëse PHP do të kontrollonte gjithashtu këtë gjendje. Anashkalimi i këtij kufizimi në anën e shfletuesit është mjaft i lehtë, kështu që nuk duhet të mbështeteni në këtë veçori për të bllokuar të gjithë skedarët më të mëdhenj. Megjithatë, nuk ka asnjë mënyrë për të anashkaluar kufizimin maksimal të madhësisë së PHP. Gjithsesi, duhet të shtoni një variabël të formës MAX_FILE_SIZE, pasi i pengon përdoruesit të presin me ankth gjatë transferimit të skedarëve të mëdhenj, vetëm për të zbuluar se skedari është shumë i madh dhe transferimi në të vërtetë dështoi.

Si të përcaktoni një metodë kërkese?

Direkt:

Getenv("REQUEST_METHOD");

do të kthehet GET ose POST.

Cila metodë duhet përdorur?

Nëse formulari përdoret për të kërkuar disa informacione, për shembull gjatë një kërkimi, atëherë ai duhet të dërgohet duke përdorur metodën GET. Për të qenë në gjendje të përditësoni faqen, mund ta shënoni atë dhe ose t'ia dërgoni lidhjen një miku.

Nëse, si rezultat i paraqitjes së një formulari, të dhënat regjistrohen ose ndryshohen në server, atëherë ato duhet të dërgohen duke përdorur metodën POST, dhe pas përpunimit të formularit, është e domosdoshme të ridrejtoni shfletuesin duke përdorur metodën GET. Gjithashtu, POST mund të nevojitet nëse një sasi e madhe e të dhënave duhet të transferohet në server (për GET është shumë e kufizuar), dhe gjithashtu nëse të dhënat e transferuara nuk duhet të shfaqen në shiritin e adresave (kur futni një hyrje dhe fjalëkalim, për shembull).

Në çdo rast, pas përpunimit të POST-it, gjithmonë duhet ta ridrejtoni shfletuesin në ndonjë faqe, qoftë edhe në të njëjtën, por pa të dhënat e formularit, në mënyrë që kur faqja të rifreskohet, ato të mos regjistrohen më.

Si të transferoni të dhënat në një skedar tjetër direkt nga trupi i një programi PHP duke përdorur metodat GET dhe POST? Një shembull për të demonstruar dërgimin e të dhënave duke përdorur metodat POST dhe GET njëkohësisht dhe marrjen e një përgjigje nga serveri.

Artikujt më të mirë mbi këtë temë