Përditësimi i fundit: 1.11.2015
Përpunimi i formularit është një nga mënyrat kryesore të transmetimit të të dhënave në një faqe interneti. Formularët janë elementë të veçantë të shënjimit HTML që përmbajnë elemente të ndryshme hyrëse - kuti teksti, butona, etj. Dhe me ndihmën e të dhënave të formularit, ne mund të fusim disa të dhëna dhe t'i dërgojmë në server. Dhe serveri tashmë po i përpunon këto të dhëna.
Krijimi i formularit përbëhet nga aspektet e mëposhtme:
Krijimi i elementit
Atributi veprimi = "login.php" i elementit të formës specifikon që të dhënat e formularit do të përpunohen nga skripti login.php e cila do të jetë me dosjen formë.php në një dosje. Dhe atributi metoda = "POST" tregon se metoda POST do të përdoret si metodë e transferimit të të dhënave.
Tani le të krijojmë një skedar login.php i cili do të ketë përmbajtjen e mëposhtme:
Fjalëkalimi juaj: $ fjalëkalim ";?>
Ndryshorja globale $ _POST përdoret për të marrë të dhënat e formularit. Ai përfaqëson një grup shoqërues të dhënash të paraqitura duke përdorur metodën POST. Duke përdorur çelësat, ne mund të marrim vlerat e dërguara. Çelësat në këtë grup janë vlerat e atributeve të emrit të fushave të hyrjes së formularit.
Meqenëse atributi i emrit të fushës së hyrjes së hyrjes është login ( ), pastaj në grupin $ _POST vlera e kësaj fushe do të përfaqësojë çelësin "login": $ _POST ["login"]
Dhe meqenëse ka situata kur fusha e hyrjes nuk do të vendoset, për shembull, kur shkoni direkt në skript: http: // localhost: 8080 / login.php... Në këtë rast, këshillohet që të kontrolloni disponueshmërinë e të dhënave duke përdorur funksionin isset () përpara se të përpunoni të dhënat. Dhe nëse ndryshorja është vendosur, atëherë funksioni isset () do të kthehet true.
Tani mund t'i drejtohemi formës:
Dhe duke klikuar butonin, të dhënat e futura me metodën POST do të dërgohen në skript login.php:
Ju nuk keni nevojë t'i dërgoni të dhënat e formularit në një skript tjetër; mund t'i përpunoni të dhënat e formularit në të njëjtin skedar formulari. Për ta bërë këtë, ne do të ndryshojmë skedarin formë.php në mënyrën e mëposhtme:
Hyni
Siguria e të dhënave
Siguria e të dhënave është shumë e rëndësishme në PHP. Le të hedhim një vështrim në disa mekanizma të thjeshtë që mund të përmirësojnë sigurinë e faqes sonë të internetit.
Por së pari, le të marrim formularin nga tema e mëparshme dhe të përpiqemi të fusim disa të dhëna në të. Për shembull, le të fusim në fushën e hyrjes "", dhe në fushën e fjalëkalimit tekstin"
fjalëkalimin
":Pas dërgimit të të dhënave në shënjimin html, do të injektohet kodi javascript, i cili shfaq një kuti mesazhi.
Për të shmangur këtë lloj problemi sigurie, përdorni funksionin htmlentities ():
Nëse (isset ($ _ POST ["hyrja"]) && është vendosur ($ _ POST ["fjalëkalim"])) ($ login = htmlentities ($ _ POST ["login"]); $ fjalëkalim = htmlentities ($ _ POST ["fjalëkalimi" ]); jehonë "Hyrja juaj: $ login
Fjalëkalimi juaj: $ fjalëkalim ";)
Dhe edhe pasi të keni futur kodin html ose javascript, të gjitha etiketat do të shpëtojnë dhe do të marrim daljen e mëposhtme:
Një veçori tjetër, funksioni strip_tags (), ju lejon të hiqni plotësisht etiketat html:
Nëse (isset ($ _ POST ["hyrja"]) && është vendosur ($ _ POST ["fjalëkalimi"])) ($ login = strip_etiketat ($ _ POST ["login"]); $ fjalëkalim = strip_tags ($ _ POST ["fjalëkalimi" ]); jehonë "Hyrja juaj: $ login
Fjalëkalimi juaj: $ fjalëkalim ";)
Rezultati i punës së tij me të njëjtën hyrje do të jetë prodhimi i mëposhtëm.
Ditë të mbarë për të gjithë. Alexey Gulynin është në kontakt. Në artikullin e fundit, mësuat se çfarë është serializimi në php. Në këtë artikull, unë do të doja të flas se si të punoj me të forma në PHP... PHP është krijuar për skriptimin në ueb dhe përpunimi i formularit është ndoshta më i rëndësishmi në këtë proces. Në ditët e sotme, nuk mund të hasni as faqe që nuk kanë, për shembull, regjistrim ose një formular reagimi ose një pyetësor. Forumet, dyqanet në internet, shtimi i një komenti, dërgimi i një mesazhi në një rrjet social - e gjithë kjo është përpunimi i të dhënave të vendosura në fushat e formularit. Le të përdorim një shembull për të kuptuar se si procesimi i formave në PHP.
Ne do të zbatojmë një detyrë të thjeshtë: ju duhet të krijoni 2 fusha (emri dhe mbiemri), transferoni këto të dhëna në skenarin action.php, si rezultat, duhet të dalë një përshëndetje "Mirëserdhe, mbiemri i parë"... Kush ka harruar se si krijohen format dhe cilat fusha ka, mund ta shihni. Le të krijojmë një skedar test.html:
Ju lutemi vini re se skedari action.php (në rastin tonë) duhet të jetë i vendosur në të njëjtën dosje si skedari test.html. Këtu mund të specifikoni shtigjet relative dhe absolute. Kini kujdes, shumë gabime shoqërohen me specifikimin e gabuar të rrugës për në skriptin e trajtuesit të formularit.
Le të krijojmë një skedar action.php me përmbajtjen e mëposhtme:
Nëse tani hapim skedarin test.html, plotësojmë fushat e formularit dhe klikojmë në butonin, do të arrijmë te skedari action.php, ku do të shfaqet një mesazh. Në këtë rast, shfletuesi i referohet skriptit action.php dhe ia kalon atë nëpërmjet "?" të gjitha vlerat e atributeve të emrit të vendosura brenda etiketave ndarë nga &. Vini re se çfarë është zëvendësuar për $ _SERVER.
Ne mund ta zgjidhim problemin tonë duke analizuar vargun QUERY_STRING duke përdorur funksione standarde për të punuar me vargje në PHP, por është më mirë të përdorim një mekanizëm tjetër - ky është përdorimi i grupit $ _REQUEST. PHP vendos të gjitha të dhënat e marra nga fushat e formularit në grupin $ _REQUEST, pavarësisht se si u transferuan të dhënat: POST ose GET (mund t'i zbuloni përmes $ _SERVER ["REQUEST_METHOD"]). Më lejoni t'ju kujtoj se si ndryshojnë këto metoda:
Metoda GET është publike, metoda POST është private, d.m.th. ato ndryshojnë në mënyrën se si u kalojnë parametrat. Shembull:
1) Nëse përdorim metodën e postimit: mysite.ru/request.php.
2) Nëse përdorim metodën e marrë: mysite.ru/request.php?myname=ansAlexans&surname=Gulynin ".
Gjithashtu, përveç grupit $ _REQUEST, PHP krijon vargjet $ _GET dhe $ _POST. Le të zbatojmë tani detyrën tonë, bazuar në njohuritë e marra:
Nëse tani plotësojmë formularin dhe klikojmë në butonin, do të shohim se skripti action.php na përshëndet me mbiemër dhe emër. Gjithçka funksionon si duhet.
Gjithçka është në rregull këtu, por nëse ndryshojmë emrin e skriptit, atëherë do të duhet të bëjmë ndryshime në skedarin test.html. Le të modifikojmë skedarin action.php në mënyrë që, duke hyrë në të, ose të shfaqet një formular kur nuk kemi dorëzuar asgjë, ose një përshëndetje kur kemi klikuar butonin:
Tani nuk varemi nga emri i skenarit, sepse e vendosim përmes variablës mjedisore $ _SERVER ["SCRIPT_NAME"]. = $ _ SERVER ["SCRIPT_NAME"]?> Është ekuivalente me .
Përveç ndryshores së mjedisit SCRIPT_NAME, ka shumë të tjerë.
Sot ne do të punojmë për krijimin e një formulari të bukur HTML për komentet e sajtit, të mundësuar nga PHP dhe me mbrojtje të integruar ndaj spamit. Ju nuk keni nevojë për ndonjë njohuri të veçantë, bazat e html dhe logjika elementare do të jenë të mjaftueshme. Unë do të jap skedarë të gatshëm që mund t'i futni në faqe pa ndryshime ose t'i rregulloni për t'iu përshtatur nevojave tuaja.
Kohët e fundit kam bërë një artikull se si ta bëj atë duke përdorur shtojcën e Formularit të Kontaktit 7. Ju gjithashtu mund të bëni vetëm një formular reagimi në Joomla dhe CMS të tjera të njohura.
Por çfarë ndodh me faqet që nuk përdorin CMS të njohura? - Mbetet për të bërë gjithçka me duart tuaja.
Për më tepër, përdorimi i reagimeve pa shtojca është i mundur edhe për WordPress. Shtojcat e tepërta krijojnë një ngarkesë të konsiderueshme në serverë dhe braktisja e tyre ju lejon të shpejtoni faqen.
Mund të porosisni instalimin dhe personalizimin e formularit të përfunduar për 500 rubla këtu (kjo është për ata që janë shumë dembel për të punuar me duart e tyre ose aftësia nuk është e mjaftueshme).
Si funksionon forma e reagimit html
Formulari ynë do të ketë 5 fusha për futjen e të dhënave - emrin, adresën e emailit, numrin e telefonit, adresën e faqes në internet, tekstin e mesazhit (mund t'i fshini ose t'i ndryshoni vetë).
Të gjitha fushat, përveç adresës së faqes së internetit, do të kërkohen (mund ta konfiguroni edhe vetë).
Për fushat me një adresë emaili dhe një faqe interneti, do të kryhet një kontroll i detyrueshëm i saktësisë së futjes së të dhënave.
Formulari përfundimtar i kontaktit do të duket si ky:
Një formë kontakti e krijuar në html kërkon 3 elementë për të punuar.
E para është përgjegjëse për vetë strukturën e formularit, për llojin dhe numrin e fushave të futjes së të dhënave. Ky është kod normal html.
E dyta është përgjegjëse për përpunimin e të dhënave që përdoruesi fut në fushat e formularit. Ai përcakton se çfarë, ku dhe në çfarë forme të përcillni, pasi të klikohet butoni për dërgimin e mesazhit. Një skript i veçantë PHP përdoret për implementim.
E treta është përgjegjëse për pamjen. Vendos madhësinë dhe pozicionin e fushave të futjes së të dhënave, shton ngjyra dhe efekte të ndryshme. E gjithë kjo është vendosur nga stilet CSS.
Versioni demonstrues i formularit
Ne do të analizojmë vendosjen e secilit prej këtyre elementeve hap pas hapi.
Krijimi i paraqitjes HTML
Për të mos e zgjatur shumë artikullin dhe për të mos shtuar secilin element veç e veç, do të jap kodin e plotë html dhe më poshtë do të përshkruaj çdo bllok dhe ndryshimet e mundshme.
Për të treguar format në html, përdoret etiketa
, brenda së cilës plotësohen parametrat e nevojshëm.Le të fillojmë me rreshtin e parë.
klasa = "forma_kontakti"- ne tregojmë klasën për të vendosur stilet CSS në të ardhmen.
action = "contact-form.php"- specifikoni emrin e skedarit me skriptin që do të përpunojë të dhënat e formularit dhe do të dërgojë mesazhin. Nëse skedari është në të njëjtën dosje me faqen me formularin, atëherë mjafton të specifikoni vetëm emrin e skedarit, nëse në një tjetër, atëherë do t'ju duhet të specifikoni shtegun për në skedar.
Pastaj ka 4 blloqe
Përgjegjës për daljen e fushave për futjen e të dhënave, nga emrat është e qartë se cila është përgjegjëse për çfarë. Vetë fushat shfaqen duke përdorur etiketa , brenda së cilës vendosen karakteristikat e mëposhtme:
Lloji- përgjegjës për llojin e të dhënave hyrëse, tekstin - tekst i thjeshtë, email - adresën e emailit, fusha të tilla kontrollohen automatikisht për korrektësi (@ duhet të jetë i pranishëm), numrin e telefonit, url - adresën e faqes.
Emri- emri i vetë elementit, është e nevojshme që skripti të dijë të përdorë të dhënat e secilës fushë. Nëse krijoni disa fusha të të njëjtit lloj, atëherë duhet të caktoni një emër për secilën fushë.
VendmbajtësiËshtë një aluzion brenda fushës, teksti që zëvendëson fushën e zbrazët të elementit. Mund të ndryshohet ose fshihet; nuk ndikon në funksionimin e formularit.
E detyrueshme- ky parametër tregon që fusha është e nevojshme. Ju mund të vendosni vetë se cilët elementë kërkohen dhe cilët jo.
model = ”(http | https): //.+”- ky konstruksion shërben për të kontrolluar korrektësinë e fushës së faqes së internetit, tregon se adresa duhet të përmbajë tekst http: // ose tekst https: //, përndryshe do të ketë një gabim.
Disa fusha kanë një këshillë mjeti që shfaqet kur zgjidhni një artikull. Ajo është e lënduar , ku form_hint është klasa e elementit (vetitë e tij shkruhen në CSS). Mund të vendosni çdo tekst në këshillën e veglave për secilën fushë të formularit të kontaktit. Nëse nuk ju nevojitet një veçori e tillë, thjesht hiqni të gjithë etiketën.
Fushat për futjen e vetë mesazhit janë shënuar me një etiketë
Mbrojtja e spamit- një fushë e padukshme me emrin emri = bezspama. Ka një ekran: asnjë stil - kjo do të thotë se fusha është e padukshme për njerëzit, por robotët do ta plotësojnë atë automatikisht.
Dhe elementi përfundimtar i çdo forme është butoni për dërgimin e një mesazhi, ai vendoset nga etiketa , i cili ka klasën e vet për personalizimin e pamjes dhe shkruani "submit".
Për të shtuar ose hequr fusha, mjafton të hiqni ato të panevojshme ose të futni të reja në analogji me ato ekzistuese, duke regjistruar të gjitha pronat dhe emrat për to.
Stilimi me CSS
Nëse shikoni në një shfletues se çfarë ndodhi, do të shihni diçka të ngathët dhe jo tërheqëse. Në mënyrë që ne të marrim një formular të bukur reagimi, do të duhet të punojmë në stilet e tij (html nuk do të mjaftojë).
Nëse jeni të aftë në CSS, atëherë mund të vendosni dizajnin për të gjithë elementët e formës pa probleme, madje nuk ka nevojë për ndihmën time.
Nëse nuk jeni të njohur me stilet, atëherë thjesht do t'ju jap një skedar të gatshëm, në të cilin gjithçka është shkruar tashmë në atë mënyrë që forma juaj të jetë identike me atë në shembull.
Ka dy mënyra për të lidhur stilet:
- Kopjoni përmbajtjen e skedarit në skedarin style.css që është tashmë në faqen tuaj (shtojeni deri në fund)
- Vendosni skedarin që dhashë në hostin tuaj dhe lidheni atë.
Skedarët e stilit lidhen me kodin e mëposhtëm vendosur brenda
... Nëse skedari me stile (styles.css) nuk është në të njëjtën dosje me faqen html, atëherë shkruani rrugën e plotë për të.Në skedarin me stilet që kam dhënë, çdo element është i nënshkruar, prandaj, mund të bëni çdo ndryshim në të - ndryshoni ngjyrat, madhësitë, format, efektet. Me njohuritë më themelore, mund ta modifikoni lehtësisht.
Konfigurimi i kodit PHP (shtoi mbrojtje kundër spamit)
Ashtu si me stilet, unë do t'ju jap një kod të gatshëm për të trajtuar formën HTML të formularit të kontaktit dhe për ta mbrojtur atë nga mesazhet e padëshiruara. Ky skedar është përshtatur për një konfigurim specifik dhe nëse dëshironi të vendosni fusha të reja ose të fshini ato ekzistuese, do t'ju duhet të bëni ndryshime në të. Prandaj, unë do t'ju tregoj se si funksionon, në mënyrë që të kuptoni se çfarë duhet ndryshuar.
Për faqet që përdorin kodimin Windows-1251 dhe php 5.4+, do t'ju duhet të shtoni një shtesë në kodin që lidhet me funksionin htmlspecialchars. Do ta tregoj më poshtë. Përndryshe, në vend të cirilikës do të vijnë fusha boshe.
Mos harroni, në vetitë e formularit (në skedarin html) kemi specifikuar veprimin e parametrit = "contact-form.php". Duhet të krijoni një skedar të quajtur contact-form.php dhe të vendosni kodin më poshtë në të.
\ r \ n Përgjigju: $ email \ r \ n "; nëse (mail ($ adresa, $ nën, $ mes, $ nga)) (titulli (" Rifresko: 5; URL = https: // sajti ") ;jehonë"
";) else (titulli (" Rifresko: 5; URL = https: // sajti "); jehonë" ";)) dilni; / * Dilni pa mesazh nëse fusha bezspama është e mbushur me bote të padëshiruara * /?>/ * Vendos variabla * / $ name = htmlspecialchars ($ _POST ["emri"]); $ email = htmlspecialchars ($ _POST ["email"]); $ tel = htmlspecialchars ($ _POST ["tel"]); $ website = htmlspecialchars ($ _POST ["faqe interneti"]); $ message = htmlspecialchars ($ _POST ["mesazh"]); $ bezspama = htmlspecialchars ($ _POST ["bezspama"]); / * Adresa juaj dhe subjekti i mesazhit * / $ nën = "Mesazhi nga faqja XXX"; / * Formati i letrës * / $ mes = "Mesazhi nga faqja XXX. \ N Emri i dërguesit: $ emri Email dërguesi: $ email Telefoni i dërguesit: $ tel Uebfaqja e dërguesit: $ website Teksti i mesazhit: mesazh $ "; nëse (bosh ($ bezspama)) / * Vlerësimi i fushës bezspama - duhet të jetë bosh * / / * Dërgoni një mesazh duke përdorur funksionin e postës () * / $ nga = "Nga: emri i $<$email>\ r \ n Përgjigju: $ email \ r \ n "; nëse (mail ($ adresa, $ nën, $ mes, $ nga)) ( kokë (); jehonë"
Email i dërguar, pas 5 sekondash do të ktheheni në faqen XXX" ; } tjetër ( kokë ( "Rifresko: 5; URL = https: // sajti") ; jehonë"
Email-i nuk u dërgua, për 5 sekonda do të ktheheni në faqen YYY" ; } dalje; / * Dil pa mesazh nëse fusha bezspama është e mbushur me spam bots * / |
Para së gjithash, ne duhet të vendosim variablat që do të përpunohen nga kodi php. Për të mos u ngatërruar, ne u caktojmë të njëjtat emra siç ishin në vetë formularin, vetëm të gjitha variablat fillojnë me shenjën $. Vetë komanda e caktimit duket si kjo:
$ title = htmlspecialchars ($ _ POST ["titulli"]);
$ title = htmlspecialchars ($ _POST ["titulli"]); |
Nëse keni shtuar ndonjë fushë të dhënash shtesë, shtoni emrat e tyre në bllokun e variablave.
Ne nuk i marrim të gjitha variablat nga forma. Së paku, adresa e postës elektronike në të cilën do të dërgohet letra (adresa juaj) tregohet veçmas. Në këtë rast, kjo është ndryshorja e adresës $ - shkruani llogarinë tuaj të postës elektronike në vlerën e saj.
Gjithashtu, në këtë shembull, vlera e nën-ndryshesës $ është vendosur në mënyrë eksplicite - ajo do të shfaqë temën e letrës. Ju mund të shtoni një subjekt mesazhi në një formë HTML si një fushë teksti (si emri) dhe të merrni vlerën e kësaj variabli prej andej.
Në bllokun e formatit të shkronjave, mesazhi që do të merrni është konfiguruar. Mund të jetë ndryshe nga ajo që është shkruar në fushën e tekstit të quajtur mesazh. Sapo bëra një variabël tjetër $ mes dhe përfshiva tekst shtesë dhe të dhëna të rëndësishme të dërguesit (emri, posta, telefoni, faqja e internetit) në të. Ju mund ta konfiguroni këtë pjesë sipas dëshirës tuaj.
Kështu që letrat që merrni të nënshkruhen me emrin e dërguesit, dhe adresa e tyre e kthimit të përfshihet në to, dhe jo adresa e serverit ku ndodhet skedari juaj php, ne vendosim një variabël të ri nga $, në të përfshijmë emrin dhe adresën e emailit të dërguesit të letrës.
Pastaj funksioni i postës kryen dërgimin e letrës sipas parametrave të specifikuar. Në rast të dërgimit të suksesshëm, shfaqet një mesazh që thotë se letra është dërguar dhe pas 5 sekondash përdoruesi ridrejtohet në faqen e faqes tuaj (mund të ndryshoni adresën e faqes dhe kohën e vonesës). Nëse emaili nuk është dërguar me sukses, shfaqet një mesazh që emaili nuk është dërguar dhe pas 5 sekondash kalon kalimi në faqen e faqes, në të njëjtën mënyrë mund të vendosni adresën dhe kohën e faqes.
Futja e një formulari në një faqe faqeje
Për të futur formularin e komenteve që keni krijuar, duhet të kopjoni kodin html të formularit dhe ta ngjisni në pjesën e kodit të faqes ku dëshironi të shfaqni komentet për sitin.
Edhe një herë, dua t'ju kujtoj se nëse skedari me programin PHP nuk është në të njëjtën dosje me faqen në të cilën ndodhet kodi html, atëherë në kodin e vetë formularit duhet të shkruani rrugën e plotë për të. , përndryshe nuk do të funksionojë, pasi forma nuk do të gjejë mbajtës skedari.
Shkarkoni skedarët e formularit të kontaktit
Anti-spam aktiv me futjen e të dhënave në terren
Spammers funksionojnë duke përdorur mjete të ndryshme softuerike, dhe disa robotë janë në gjendje të anashkalojnë mbrojtjen me një fushë boshe, e cila është e integruar në versionin bazë. Nëse ata fillojnë t'ju shqetësojnë, atëherë mund të aplikoni në vend të mbrojtjes ose shtesë të thjeshtë me futjen e të dhënave në një fushë të veçantë. Për shembull, bëni një shprehje matematikore duke ju kërkuar të shkruani një përgjigje ose të bëni një pyetje të thjeshtë. Kjo nuk kërkon ndryshime të mëdha në formë.
Unë do t'ju tregoj se si të ndryshoni kodin e formularit dhe mbajtësin PHP për të përdorur këtë metodë antispam. Nëse dëshironi, nuk mund ta ndryshoni mbrojtjen me një fushë të zbrazët, por shtoni linjat e duhura në kod dhe 2 metoda do të funksionojnë për ju në të njëjtën kohë - në teori, duhet të jetë më efikase.
Gjëja e parë që duhet të bëjmë është të shtojmë një fushë hyrëse dhe një pyetje në kodin HTML. Ne tashmë kemi rreshtin 25 (emri i hyrjes = "bezspama") si bazë. Kjo fushë është e padukshme. E kthejmë në një të zakonshme. Për ta bërë këtë, ndryshoni të gjithë rreshtin në bllokun e mëposhtëm:
|
Në vend të shprehjes matematikore 2 + 2 * 2, mund të futni çdo të dhënë - kjo është një pyetje vizuale për përdoruesin. Ne hoqëm stilin e ekranit: asnjë nga fusha e hyrjes dhe shtuam mbushjen e kërkuar.
Hapi tjetër është ndryshimi i të dhënave në mbajtësin PHP në mënyrë që të kontrollojë jo boshllëkun e kësaj fushe, por korrektësinë e të dhënave të futura. Kontrolli ynë u bë në rreshtin 25 me shprehjen bosh ($ bezspama). Ne e ndryshojmë këtë shprehje dhe do të kontrollojmë nëse fusha e mbushur është e barabartë me një numër të paracaktuar. Në shembullin tim, shprehja matematikore është 6, kështu që e gjithë rreshti do të duket kështu.
Nuk është sekret për askënd që mënyra më e zakonshme e ndërveprimit të një faqe html me një sajt është një formular. Një formular (d.m.th., elementi html i formuar nga etiketa e formës) përdoret gjithashtu nga shërbimet postare falas, dyqanet elektronike dhe shumë lloje të tjera faqesh.
Përpunimi i formave të thjeshta me PHP është i lehtë. Sidoqoftë, herë pas here lind nevoja për të përpunuar një formular që përmban disa fusha të të njëjtit lloj, për më tepër, numri i tyre mund të ndryshojë në një gamë të gjerë dhe numri i tyre nuk dihet paraprakisht. PHP siguron për raste të tilla përpunimin e të njëjtit lloj fushash si një grup vlerash.
Le të shqyrtojmë më në detaje opsionet për lloje të ndryshme fushash.
Fushat e tekstit
Fushat e tekstit në këtë artikull i referohen elementeve të krijuar nga etiketat hyrëse me një parametër tipi të tekstit dhe një etiketë të zonës së tekstit. Është më e lehtë të organizosh përpunimin e një formulari të përbërë nga disa fusha të tilla. Lista më poshtë tregon një listë me shënimin html për një formë të tillë.
Siç mund ta shihni nga lista, emrat për elementët e formës, nga pikëpamja PHP, janë elementë të grupit. Prandaj, skripti PHP që do të përpunojë këtë formë do të trajtojë të gjithë grupin e fushave të tekstit në atë formë si një grup të vetëm. Elementet individuale mund të referohen me indeks ose të numërohen duke përdorur listën dhe secilën komanda, si në shembullin e mëposhtëm.
n ";?>
Çelësat
Kutitë e kontrollit në këtë artikull janë elementë të krijuar nga etiketat hyrëse me një parametër tipi të barabartë me kutinë e kontrollit. Formulari për përdorimin e një numri të ndryshueshëm "çelsash" është ndërtuar saktësisht në të njëjtën mënyrë. Vini re se zgjedhja e një vlere specifike të butonit të radios (d.m.th., vlera e veçorisë së vlerës) nuk është e rëndësishme. Një shembull tregohet në listën e mëposhtme:
Megjithatë, përpunimi i një forme të tillë është i ndryshëm nga përpunimi i përshkruar për fushat e tekstit. Në këtë rast, është e nevojshme të përcaktohet nëse vizitori i faqes ka ndezur ose jo këtë ose atë ndërprerës. Nëse aktivizohet, atëherë elementi përkatës i grupit ekziston, nëse jo, atëherë ai mungon. Lista e mëposhtme tregon një shembull skripti PHP që printon çelësat e aktivizuar:
Butonat e radios
Para se të përshkruani përpunimin e butonave të radios, duhet të mbani mend se si funksionojnë ato. Thelbi i butonave të radios (elementë të krijuar nga etiketat e hyrjes me vlerën e parametrit të tipit të barabartë me radion) është se duke zgjedhur një buton, përdoruesi automatikisht çaktivizon një buton tjetër nga i njëjti grup. Është shumë e lehtë për të kombinuar butonat në një grup: të gjithë butonat në një grup kanë të njëjtin emër.
Por vlerat (d.m.th., parametrat e vlerës) të butonave në grup janë të ndryshme. Dhe vlera e butonit të zgjedhur me emrin e grupit do të dërgohet në sit. Ashtu si me fushat e tekstit dhe butonat e radios, emrat e grupeve të butonave të radios duhet të formatohen si emra të elementeve të grupit në PHP. Një shembull i një forme të tillë është paraqitur në listën e mëposhtme:
Përpunimi i butonave të radios kombinon idetë, duke përdorur të dyja fushat e tekstit dhe butonat e radios në përpunim. Nëse autori i faqes html nuk ka vendosur një vlerë të paracaktuar dhe përdoruesi nuk ka zgjedhur një buton specifik në grupin e butonave të radios, atëherë ky element nuk do të jetë i pranishëm në grup (si për butonat e radios).
Nëse zgjidhet butoni, atëherë elementi përkatës i grupit do të përmbajë vlerën e tij (si për fushat e tekstit). Më poshtë është një listë e një shembulli që përpunon një formular me disa grupe butonash radioje.
n ";?>
Kështu, nuk ka asgjë të vështirë në përpunimin e formave komplekse.
JavaScript është bllokuar në shfletuesin tuaj. Ju lutemi aktivizoni JavaScript që sajti të funksionojë!
Puna me formularët
Format HTML përdoren për të transferuar të dhëna nga përdoruesi i faqes së internetit në server. Ekzistojnë një sërë mjetesh speciale për të punuar me forma në PHP.
Variablat e paracaktuara
PHP ka një numër variablash të paracaktuar që nuk ndryshojnë kur të gjitha aplikacionet ekzekutohen në një mjedis të caktuar. Ato quhen edhe variabla mjedisore ose variabla mjedisore. Ato pasqyrojnë cilësimet e mjedisit të serverit në ueb Apache si dhe informacionin e kërkesës për shfletuesin e dhënë. Ë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 paracaktuara janë të përfshira në grupin shoqërues $ GLOBALS. Përveç variablave të mjedisit, ky grup përmban edhe variabla globale të përcaktuara në program.
Shembulli 1
"; ?>
Si rezultat, një listë e të gjitha variablave globale, duke përfshirë variablat e mjedisit, do të shfaqet në ekran. Më të përdorurat:
E ndryshueshme | Përshkrim | përmbajtja |
---|---|---|
$ _SERVER ["HTTP_USER_AGENT"] | Emri dhe versioni i klientit | Mozilla / 5.0 (i pajtueshëm; Googlebot / 2.1; + http://www.google.com/bot.html) |
$ _SERVER ["REMOTE_ADDR"] | adresa IP | 144.76.94.14 |
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"] | Në një kërkesë GET, të dhënat e koduara kaluan së bashku me URL-në | |
$ _SERVER ["REQUEST_URL"] | Adresa e plotë e klientit, duke përfshirë vargun e pyetjes | |
$ _SERVER ["HTTP_REFERER"] | Adresa e faqes nga e cila është bërë kërkesa | |
$ _SERVER ["PHP_SELF"] | Rruga drejt programit të ekzekutueshëm | /index.php |
$ _SERVER ["SERVER_NAME"] | Domeni | faqe |
$ _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 të vetme.
Shembulli 2
Këtu nuk ka asnjë buton për transferimin e të dhënave, sepse një formë e vetme e fushës dorëzohet automatikisht kur shtypet një tast
Kur përpunoni një artikull me një përzgjedhje me shumë vlera, duhet të shtoni një palë kllapa katrore në emrin e artikullit për të aksesuar të gjitha vlerat e zgjedhura. Për të zgjedhur disa artikuj, mbani të shtypur tastin Ctrl.
Shembulli 3.1
REZULTATI I SHEMBULLIT 3.1:
Shembulli 3.2
- "; foreach ($ Item si $ vlerë) jehonë"
- $ vlera "; jehonë"
Shembulli 4. Marrja e vlerave nga kutitë e kontrollit
$ v) (nëse ($ v) jehonë "Ju e dini gjuhën e programimit $ k!"; else echo" Ju nuk e dini gjuhën e programimit $ k.
"; } } ?>
REZULTATI I SHEMBULLIT 4:
Shembulli 5
"; ?>Është e mundur të përpunohen formularët pa u shqetësuar për emrat aktualë të fushave.
Për ta bërë këtë, mund të përdorni (në varësi të metodës së transferimit) grupin shoqërues $ HTTP_GET_VARS ose $ HTTP_POST_VARS. Këto vargje përmbajnë çifte emra/vlerash për secilin element të formularit të paraqitur. Nëse nuk ju intereson, mund të përdorni grupin shoqërues _REQUEST $.
Shembulli 6
"; ?>
Shembulli 7. Trajtimi i një klikimi në një buton duke përdorur operatorin "@".
Duke përdorur funksionin e kokës (), duke dërguar kokën "Vendndodhja" në shfletues, mund ta ridrejtoni përdoruesin në një faqe të re.
Për shembull:
header("Location: ex2.php"); ?>
Transferimi i skedarit në server. Ngarko skedarin. Ngarkoni
PHP ju lejon të transferoni skedarë në server. Formulari HTML për paraqitjen e skedarit duhet të përmbajë argumentin enctype = "multipart / form-data".
Përveç kësaj, duhet të ketë një fushë të fshehur me emrin max_file_size përpara fushës së kopjes së skedarit në formular. Kjo fushë e fshehur duhet të përmbajë madhësinë maksimale të skedarit të transferuar (zakonisht jo më shumë se 2 MB).
Vetë fusha e transferimit të skedarit është një element i rregullt INPUT me argumentin tip = "file".
Për shembull:
Pasi skedari të ngarkohet në server, ai emërohet në mënyrë unike dhe ruhet në drejtorinë e përkohshme. Rruga e plotë e skedarit shkruhet në një ndryshore globale, emri i së cilës është i njëjtë me emrin e fushës për transferimin e këtij skedari. Përveç kësaj, PHP ruan disa informacione shtesë rreth skedarit të transferuar në variabla të tjerë globalë:
Shembulli 8
"; jehonë" madhësia: ". $ _ FILES [" skedari i përdoruesit "] [" madhësia "]."
"; jehonë" shkruani: ". $ _ FILES [" userfile "] [" type "]."
"; } ?>
Shembuj të ngarkimit të skedarëve në server
Nëse keni probleme me transkodimin e serverit të skedarit të ngarkuar, simboli me kodin 0x00 zëvendësohet me një hapësirë (karakter me kod 0x20), shtoni në skedar httpd.conf nga drejtoria Apache (/ usr / local / apache) vijat e mëposhtme.