Ultima actualizare: 1.11.2015
Una dintre principalele modalități prin care datele sunt transmise către un site web este prin prelucrarea formularelor. Formularele sunt elemente de markup HTML speciale care conțin diverse elemente de intrare - casete de text, butoane și așa mai departe. Și cu ajutorul datelor din formular putem introduce câteva date și le trimitem la server. Și serverul procesează deja aceste date.
Crearea formularelor constă din următoarele aspecte:
Crearea elementelor
Atributul action = "login.php" al elementului formular specifică faptul că datele din formular vor fi procesate de script login.php care va fi cu dosarul formular.phpîntr-un singur folder. Iar atributul method = „POST” indică faptul că metoda POST va fi folosită ca metodă de transfer de date.
Acum să creăm un fișier login.php care va avea urmatorul continut:
Parola dvs.: $ parola ";?>
Variabila globală $ _POST este folosită pentru a obține datele din formular. Reprezintă o matrice asociativă de date transmise folosind metoda POST. Folosind cheile, putem obține valorile trimise. Cheile din această matrice sunt valorile atributelor de nume ale câmpurilor de introducere a formularului.
Deoarece atributul nume al câmpului de intrare de conectare este autentificare ( ), apoi în matricea $ _POST valoarea acestui câmp va reprezenta cheia „login”: $ _POST [„login”]
Și din moment ce există situații în care câmpul de intrare nu va fi setat, de exemplu, când mergeți direct la script: http: // localhost: 8080 / login.php... În acest caz, este recomandabil să verificați disponibilitatea datelor folosind funcția isset () înainte de procesarea datelor. Și dacă variabila este setată, atunci funcția isset () va returna true.
Acum putem trece la forma:
Și făcând clic pe butonul, datele introduse prin metoda POST vor fi trimise către script login.php:
Nu trebuie să trimiteți datele formularului către alt script; puteți procesa datele formularului în același fișier de formular. Pentru a face acest lucru, vom schimba fișierul formular.php in felul urmator:
conectare
Securitatea datelor
Securitatea datelor este foarte importantă în PHP. Să aruncăm o privire la câteva mecanisme simple care pot îmbunătăți securitatea site-ului nostru.
Dar mai întâi, să luăm forma din subiectul anterior și să încercăm să introducem câteva date în ea. De exemplu, să introducem în câmpul de conectare „", iar în câmpul parolei textul"
parola
":După trimiterea datelor la marcajul html, va fi injectat codul javascript, care afișează o casetă de mesaj.
Pentru a evita acest tip de problemă de securitate, utilizați funcția htmlentities ():
If (isset ($ _ POST ["login"]) && isset ($ _ POST ["parolă"])) ($ login = htmlentities ($ _ POST ["login"]); $ parola = htmlentities ($ _ POST ["parolă"]); echo "Autentificarea dvs.: $ autentificare
Parola dvs.: $ parola ";)
Și chiar și după introducerea codului html sau javascript, toate etichetele vor fi eliminate și vom obține următoarea ieșire:
O altă caracteristică, funcția strip_tags (), vă permite să eliminați complet etichetele html:
If (isset ($ _ POST ["login"]) && isset ($ _ POST ["parolă"])) ($ login = strip_tags ($ _ POST ["login"]); $ parola = strip_tags ($ _ POST ["parolă"]); echo "Autentificarea dvs.: $ autentificare
Parola dvs.: $ parola ";)
Rezultatul muncii sale cu aceeași intrare va fi următorul rezultat.
Ziua bună tuturor. Alexey Gulynin este în legătură. În ultimul articol, ați aflat despre ce este serializarea în PHP. În acest articol, aș dori să vorbesc despre cum să lucrez cu formulare în PHP... PHP este conceput pentru scripting web, iar procesarea formularelor este poate cea mai importantă în acest proces. În zilele noastre, nici măcar nu poți întâlni site-uri care nu au, de exemplu, înregistrare sau un formular de feedback, sau un chestionar. Forumuri, magazine online, adăugarea unui comentariu, trimiterea unui mesaj pe o rețea de socializare - toate acestea sunt prelucrarea datelor plasate în câmpurile formularului. Să folosim un exemplu pentru a ne da seama cum procesează formulare în PHP.
Vom implementa o sarcină simplă: trebuie să creați 2 câmpuri (nume și prenume), transferați aceste date în scriptul action.php, ca urmare, ar trebui să iasă un salut. „Bun venit, prenume prenume”... Cine a uitat cum sunt create formularele și ce câmpuri există, puteți vedea. Să creăm un fișier test.html:
Vă rugăm să rețineți că fișierul action.php (în cazul nostru) trebuie să fie localizat în același folder cu fișierul test.html. Aici puteți specifica atât căi relative, cât și absolute. Fiți atenți, multe erori sunt asociate cu specificarea incorectă a căii către scriptul de gestionare a formularelor.
Să creăm un fișier action.php cu următorul conținut:
Daca acum deschidem fisierul test.html, completam campurile formularului si facem clic pe butonul, vom ajunge la fisierul action.php, unde va fi afisat un mesaj. În acest caz, browserul se referă la scriptul action.php și îl transmite acestuia prin „?” toate valorile atributelor numelui situate în interiorul etichetelor separat de &. Observați ce este înlocuit cu $ _SERVER.
Ne putem rezolva problema analizând șirul QUERY_STRING folosind funcții standard pentru lucrul cu șiruri în PHP, dar este mai bine să folosim un alt mecanism - acesta este utilizarea matricei $ _REQUEST. PHP plasează toate datele primite din câmpurile formularului în tabloul $ _REQUEST, indiferent de modul în care au fost transferate datele: POST sau GET (puteți afla prin $ _SERVER ["REQUEST_METHOD"]). Permiteți-mi să vă reamintesc cum diferă aceste metode:
Metoda GET este publică, metoda POST este privată, adică. diferă prin modul în care li se transmit parametri. Exemplu:
1) Dacă folosim metoda postării: mysite.ru/request.php.
2) Dacă folosim metoda get: mysite.ru/request.php?myname=ansAlexans&surname=Gulynin ".
De asemenea, pe lângă matricea $ _REQUEST, PHP creează și matricele $ _GET și $ _POST. Să ne implementăm acum sarcina, pe baza cunoștințelor acumulate:
Dacă acum completăm formularul și facem clic pe butonul, vom vedea că scriptul action.php ne întâmpină după nume și prenume. Totul funcționează corect.
Totul este bine aici, dar dacă schimbăm numele scriptului, atunci va trebui să facem modificări în fișierul test.html. Să modificăm fișierul action.php astfel încât, prin accesarea acestuia, fie să fie afișat un formular când nu am trimis nimic, fie un salut când am apăsat butonul:
Acum nu depindem de numele scriptului, pentru că îl setăm prin variabila de mediu $ _SERVER [„SCRIPT_NAME”]. = $ _ SERVER ["SCRIPT_NAME"]?> Este echivalent cu .
Pe lângă variabila de mediu SCRIPT_NAME, există multe altele.
Astăzi vom lucra la crearea unui formular HTML frumos de feedback pentru site, alimentat de PHP și cu protecție antispam încorporată. Nu aveți nevoie de cunoștințe speciale, elementele de bază ale html și logica elementară vor fi suficiente. Vă voi oferi fișiere gata făcute pe care le puteți introduce în site fără modificări sau le puteți ajusta pentru a se potrivi nevoilor dvs.
Am scris recent un articol despre cum să o faceți folosind pluginul Contact Form 7. Puteți, de asemenea, să faceți un formular de feedback pe Joomla și alte CMS populare.
Dar ce zici de site-urile care nu folosesc CMS popular? - Rămâne să faci totul cu mâinile tale.
În plus, utilizarea feedback-ului fără pluginuri este posibilă și pentru WordPress. Pluginurile superflue creează o încărcare considerabilă pe servere, iar abandonarea acestora vă permite să accelerați site-ul.
Puteți comanda instalarea și personalizarea formularului finit pentru 500 de ruble aici (aceasta este pentru cei prea leneși să lucreze cu mâinile sau priceperea nu este suficientă).
Cum funcționează formularul de feedback html
Formularul nostru va avea 5 câmpuri pentru introducerea datelor - nume, adresa de e-mail, număr de telefon, adresa site-ului web, textul mesajului (le puteți șterge sau modifica singur).
Toate câmpurile, cu excepția adresei site-ului web, vor fi obligatorii (puteți configura și dvs. aceasta).
Pentru câmpurile cu o adresă de e-mail și un site web, se va efectua o verificare obligatorie a corectitudinii introducerii datelor.
Formularul final de contact va arăta astfel:
Un formular de contact creat în html necesită 3 elemente pentru a funcționa.
Primul este responsabil pentru structura formularului în sine, pentru tipul și numărul câmpurilor de introducere a datelor. Acesta este un cod HTML normal.
Al doilea este responsabil de prelucrarea datelor pe care utilizatorul le introduce în câmpurile formularului. Acesta stabilește ce, unde și sub ce formă să redirecționeze, după ce se face clic pe butonul de trimitere a mesajului. Pentru implementare este folosit un script PHP special.
Al treilea este responsabil pentru aspect. Setează dimensiunea și poziția câmpurilor de introducere a datelor, adaugă diferite culori și efecte. Toate acestea sunt stabilite de stilurile CSS.
Versiunea demo a formularului
Vom analiza setarea fiecăruia dintre aceste elemente pas cu pas.
Creare layout HTML
Pentru a nu face articolul prea lung și a nu adăuga fiecare element separat, voi da codul html complet, iar mai jos voi descrie fiecare bloc și posibilele modificări.
Pentru a indica formularele în html, se folosește eticheta
, în interiorul căruia se completează parametrii necesari.Să începem cu prima linie.
clasa = „form_contact”- indicăm clasa pentru a seta stiluri CSS în viitor.
acțiune = ”contact-form.php”- specificați numele fișierului cu scriptul care va procesa datele formularului și va trimite mesajul. Dacă fișierul se află în același folder cu pagina cu formularul, atunci este suficient să specificați doar numele fișierului, dacă este în altul, atunci va trebui să specificați calea către fișier.
Apoi sunt 4 blocuri
Responsabil pentru ieșirea câmpurilor pentru introducerea datelor, reiese clar din nume cine este responsabil pentru ce. Câmpurile în sine sunt afișate folosind etichete , în interiorul căruia sunt stabilite următoarele caracteristici:
Tip- responsabil pentru tipul datelor introduse, text - text simplu, e-mail - adresa de e-mail, astfel de câmpuri sunt verificate automat pentru corectitudine (@ trebuie să fie prezente), tel - număr de telefon, url - adresa site-ului.
Nume- numele propriu al elementului în sine, este necesar ca scriptul să știe să folosească datele fiecărui câmp. Dacă creați mai multe câmpuri de același tip, atunci trebuie să atribuiți un nume fiecărui câmp.
Substituent Este un indiciu în interiorul câmpului, textul care înlocuiește câmpul gol al elementului. Poate fi schimbat sau șters; nu afectează funcționarea formularului.
Necesar- acest parametru indică faptul că câmpul este obligatoriu. Puteți decide singur ce elemente sunt necesare și care nu.
model = ”(http | https): //.+”- această construcție servește la verificarea corectitudinii câmpului site-ului, indică faptul că adresa trebuie să conțină http: // text sau https: // text, în caz contrar va apărea o eroare.
Unele câmpuri au un sfat explicativ care apare atunci când selectați un articol. Ea este ranita , unde form_hint este clasa elementului (proprietățile sale sunt scrise în CSS). Puteți seta orice text în indicația pentru fiecare câmp al formularului de contact. Dacă nu aveți nevoie de o astfel de caracteristică, eliminați întreaga etichetă.
Câmpurile pentru introducerea mesajului în sine sunt marcate cu o etichetă
Protectie spam- un câmp invizibil numit name = bezspama. Are un afișaj: niciun stil - asta înseamnă că câmpul este invizibil pentru oameni, dar roboții îl vor completa automat.
Iar elementul final al oricărui formular este butonul pentru trimiterea unui mesaj, acesta este setat de etichetă , care are propria sa clasă pentru personalizarea aspectului și tip „submit”.
Pentru a adăuga sau elimina câmpuri, este suficient să le eliminați pe cele inutile sau să introduceți altele noi prin analogie cu cele existente, înregistrând toate proprietățile și numele pentru acestea.
Stilizarea cu CSS
Dacă te uiți într-un browser la ceea ce s-a întâmplat, vei vedea ceva stângaci și neatrăgător. Pentru a obține un formular frumos de feedback, va trebui să lucrăm la stilurile acestuia (html nu va fi suficient).
Dacă sunteți expert în CSS, atunci puteți seta designul pentru toate elementele de formular fără probleme, nici măcar nu are nevoie de ajutorul meu.
Dacă nu sunteți familiarizat cu stilurile, atunci vă voi oferi pur și simplu un fișier gata făcut, în care totul este deja scris în așa fel încât forma dvs. să fie identică cu cea din exemplu.
Există două moduri de a conecta stiluri:
- Copiați conținutul fișierului în fișierul style.css care este deja pe site-ul dvs. (adăugați până la sfârșit)
- Plasați fișierul pe care l-am dat găzduirii dvs. și conectați-l.
Fișierele de stil sunt conectate cu următorul cod plasat în interior
... Dacă fișierul cu stiluri (styles.css) nu se află în același folder cu pagina html, atunci scrieți calea completă către acesta.În fișierul cu stiluri pe care l-am dat, fiecare element este semnat, prin urmare, puteți face orice modificări la acesta - schimbați culorile, dimensiunile, formele, efectele. Cu cele mai de bază cunoștințe, îl puteți edita cu ușurință.
Configurarea codului PHP (protecție anti-spam adăugată)
Ca și în cazul stilurilor, vă voi oferi un cod gata făcut pentru a gestiona formularul HTML al formularului de contact și pentru a-l proteja de spam. Acest fișier este adaptat pentru o anumită configurație și dacă doriți să setați câmpuri noi sau să le ștergeți pe cele existente, va trebui să faceți modificări în el. Prin urmare, vă voi spune cum funcționează, astfel încât să înțelegeți ce trebuie schimbat.
Pentru site-urile care utilizează codificarea Windows-1251 și php 5.4+, va trebui să adăugați o adăugare la cod legată de funcția htmlspecialchars. Îl voi arăta mai jos. În caz contrar, câmpurile goale vor veni în loc de chirilice.
Rețineți, în proprietățile formularului (în fișierul html) am specificat parametrul acțiune = ”contact-form.php”. Trebuie să creați un fișier numit contact-form.php și să puneți codul de mai jos în el.
\ r \ n Răspuns la: $ e-mail \ r \ n "; dacă (e-mail ($ adresa, $ sub, $ mes, $ de la)) (antet ("Reîmprospătare: 5; URL = https: // site") ; ecou "
";) else (antet ("Reîmprospătare: 5; URL = https: // site "); ecou" ";)) ieșire; / * Ieșire fără mesaj dacă câmpul bezspama este umplut cu roboți de spam * /?>/ * Setați variabile * / $ name = htmlspecialchars ($ _POST ["nume"]); $ email = htmlspecialchars ($ _POST ["e-mail"]); $ tel = htmlspecialchars ($ _POST ["tel"]); $ website = htmlspecialchars ($ _POST ["site-ul"]); $ mesaj = htmlspecialchars ($ _POST [„mesaj”]); $ bezspama = htmlspecialchars ($ _POST ["bezspama"]); / * Adresa și subiectul mesajului dvs. * / $ sub = „Mesaj de pe site-ul XXX”; / * Format scrisoare * / $ mes = „Mesaj de pe site-ul XXX. \ N Nume expeditor: $ name E-mailul expeditorului: $ e-mail Telefon expeditor: $ tel Site-ul expeditorului: site-ul $ Mesaj text: $ mesaj "; if (gol (goal ($ bezspama))) / * Evaluarea câmpului bezspama - trebuie să fie gol * / / * Trimiteți un mesaj folosind funcția de e-mail () * / $ de la = „De la: $ nume<$email>\ r \ n Răspuns la: $ e-mail \ r \ n "; dacă (e-mail ($ adresa, $ sub, $ mes, $ de la)) ( antet (); ecou"
E-mail trimis, în 5 secunde veți fi returnat la pagina XXX" ; } altfel ( antet ( „Actualizare: 5; URL = https: // site”) ; ecou"
E-mailul nu a fost trimis, în 5 secunde veți fi returnat la pagina YYY" ; } Ieșire; / * Ieșiți fără mesaj dacă câmpul bezspama este umplut cu roboți de spam * / |
În primul rând, trebuie să setăm variabilele care vor fi procesate de codul php. Pentru a nu ne confunda, le atribuim aceleași nume ca și în forma în sine, doar toate variabilele încep cu semnul $. Comanda de atribuire în sine arată astfel:
$ title = htmlspecialchars ($ _ POST ["titlu"]);
$ title = htmlspecialchars ($ _POST ["titlu"]); |
Dacă ați adăugat câmpuri de date suplimentare, adăugați numele acestora în blocul de variabile.
Nu luăm toate variabilele din formular. Cel puțin, adresa de e-mail la care va fi trimisă scrisoarea (adresa dumneavoastră) este indicată separat. În acest caz, aceasta este variabila adresa $ - introduceți contul dvs. de e-mail în valoarea sa.
De asemenea, în acest exemplu, valoarea subvariabilei $ este setată în mod explicit - va afișa subiectul literei. Puteți adăuga un subiect de mesaj într-un formular HTML ca câmp de text (cum ar fi numele) și puteți prelua valoarea acestei variabile de acolo.
În blocul format scris, mesajul pe care îl veți primi este configurat. Poate fi diferit de ceea ce a fost scris în câmpul textzonal numit mesaj. Tocmai am făcut o altă variabilă $ mes și am inclus text suplimentar și date importante ale expeditorului (nume, e-mail, telefon, site web). Puteți configura această parte după cum doriți.
Pentru ca scrisorile pe care le primiți să fie semnate cu numele expeditorului, iar adresa lor de retur să fie inclusă în ele, și nu adresa serverului pe care se află fișierul dvs. php, setăm o nouă variabilă $ de la, în ea includem numele și adresa de e-mail ale expeditorului scrisorii.
Apoi funcția de mail efectuează trimiterea scrisorii conform parametrilor specificați. În cazul trimiterii cu succes, apare un mesaj care spune că scrisoarea a fost trimisă, iar după 5 secunde utilizatorul este redirecționat către pagina site-ului dumneavoastră (puteți modifica adresa paginii și timpul de întârziere). Daca emailul nu a fost trimis cu succes apare un mesaj ca emailul nu a fost trimis si dupa 5 secunde trece trecerea la pagina site-ului, la fel puteti seta adresa paginii si ora.
Inserarea unui formular pe pagina unui site
Pentru a introduce formularul de feedback pe care l-ați creat, trebuie să copiați codul html al formularului și să-l lipiți în partea din codul paginii în care doriți să afișați feedback-ul pentru site.
Încă o dată, vreau să vă reamintesc că, dacă fișierul cu programul PHP nu se află în același folder cu pagina pe care se află codul html, atunci în codul formularului în sine trebuie să scrieți calea completă către acesta. , altfel nu va funcționa, deoarece formularul nu va găsi handler de fișiere.
Descărcați fișierele formularului de contact
Anti-spam activ cu introducerea datelor în câmp
Spammerii operează folosind diverse instrumente software, iar unii roboți sunt capabili să ocolească protecția cu un câmp gol, care este încorporat în versiunea de bază. Dacă încep să vă deranjeze, atunci puteți aplica în loc de sau suplimentar protecția simplă cu introducerea datelor într-un câmp special. De exemplu, faceți o expresie matematică prin care vă cere să introduceți un răspuns sau să puneți o întrebare simplă. Acest lucru nu necesită modificări majore în formă.
Vă voi arăta cum să schimbați codul formularului și handlerul PHP pentru a utiliza această metodă antispam. Dacă doriți, nu puteți schimba protecția cu un câmp gol, ci adăugați liniile corespunzătoare la cod și 2 metode vor funcționa pentru dvs. în același timp - în teorie, ar trebui să fie mai eficient.
Primul lucru pe care trebuie să-l facem este să adăugăm un câmp de intrare și o întrebare la codul HTML. Avem deja linia 25 (nume de intrare = „bezspama”) ca bază. Acest câmp este invizibil. Îl transformăm într-unul obișnuit. Pentru a face acest lucru, schimbați întreaga linie în următorul bloc:
|
În loc de expresia matematică 2 + 2 * 2, puteți introduce orice date - aceasta este o întrebare vizuală pentru utilizator. Am eliminat afișajul: niciun stil din câmpul de introducere și am adăugat umplerea necesară.
Următorul pas este modificarea datelor din handlerul PHP, astfel încât acesta să verifice nu pentru golirea acestui câmp, ci pentru corectitudinea datelor introduse. Verificarea noastră a fost făcută pe linia 25 cu expresia goală ($ bezspama). Schimbăm această expresie și vom verifica dacă câmpul completat este egal cu un număr predeterminat. În exemplul meu, expresia matematică este 6, deci întreaga linie va arăta astfel.
Nu este un secret pentru nimeni că cel mai comun mod de interacțiune a unei pagini html cu un site este un formular. Un formular (adică elementul html format din eticheta form) este folosit și de serviciile poștale gratuite, magazinele electronice și multe alte tipuri de site-uri.
Procesarea formularelor simple cu PHP este ușoară. Totuși, din când în când este nevoie să se prelucreze un formular care conține mai multe câmpuri de același tip, în plus, numărul acestora poate varia într-o gamă largă și numărul lor nu este cunoscut în prealabil. PHP prevede pentru astfel de cazuri procesarea aceluiași tip de câmpuri ca o matrice de valori.
Să luăm în considerare mai detaliat opțiunile pentru diferite tipuri de câmpuri.
Câmpuri de text
Câmpurile de text din acest articol se referă la elemente create de etichetele de intrare cu un parametru de tip text și o etichetă textarea. Cel mai ușor este să organizați procesarea unui formular format din mai multe astfel de câmpuri. Lista de mai jos arată o listă cu marcaj html pentru un astfel de formular.
După cum puteți vedea din listă, numele elementelor de formular, din punct de vedere PHP, sunt elemente de matrice. Prin urmare, scriptul PHP care va procesa acest formular va trata întregul set de câmpuri de text din formularul respectiv ca o singură matrice. Elementele individuale pot fi referite prin index sau enumerate folosind lista și fiecare comenzi, ca în exemplul următor.
n ";?>
Comutatoare
Casetele de selectare din acest articol sunt elemente create de etichete de intrare cu un parametru de tip egal cu caseta de selectare. Formularul pentru utilizarea unui număr variabil de „comutatoare” este construit exact în același mod. Rețineți că alegerea unei anumite valori pentru butonul radio (adică valoarea proprietății valorii) nu este importantă. Un exemplu este prezentat în lista de mai jos:
Cu toate acestea, procesarea unui astfel de formular este diferită de procesarea descrisă pentru câmpurile de text. În acest caz, este necesar să se determine dacă vizitatorul site-ului a activat sau nu acest sau acela comutator. Dacă este activat, atunci elementul corespunzător al matricei există, dacă nu, atunci este absent. Următoarea listă arată un exemplu de script PHP care imprimă comutatoarele activate:
Butoane radio
Înainte de a descrie procesarea butoanelor radio, trebuie să vă amintiți cum funcționează acestea. Esența butoanelor radio (elementele create de etichetele de intrare cu valoarea parametrului tip egală cu radio) este aceea că prin selectarea unui buton, utilizatorul deselectează automat un alt buton din același set. Este foarte ușor să combinați butoanele într-un set: toate butoanele dintr-un set au același nume.
Dar valorile (adică parametrii de valoare) butoanelor din set sunt diferite. Iar valoarea butonului selectat cu numele setului va fi trimisă pe site. Ca și în cazul câmpurilor de text și al butoanelor radio, numele setului de butoane radio trebuie să fie formatate ca nume de elemente de matrice în PHP. Un exemplu de astfel de formular este prezentat în următoarea listă:
Procesarea butoanelor radio combină idei, folosind atât câmpurile de text, cât și butoanele radio în procesare. Dacă autorul paginii html nu a setat o valoare implicită, iar utilizatorul nu a selectat un anumit buton din setul de butoane radio, atunci acest element nu va fi prezent în matrice (ca și pentru butoanele radio).
Dacă butonul este selectat, atunci elementul corespunzător al matricei va conține valoarea acestuia (ca și pentru câmpurile de text). Mai jos este o listă a unui exemplu care procesează un formular cu mai multe seturi de butoane radio.
n ";?>
Astfel, nu este nimic dificil în prelucrarea formelor complexe.
JavaScript este blocat în browserul dvs. Vă rugăm să activați JavaScript pentru ca site-ul să funcționeze!
Lucrul cu formulare
Formularele HTML sunt folosite pentru a transfera date de la utilizatorul paginii Web la server. Există o serie de instrumente speciale pentru lucrul cu formulare în PHP.
Variabile predefinite
PHP are un număr de variabile predefinite care nu se schimbă atunci când toate aplicațiile rulează într-un anumit mediu. Ele mai sunt numite variabile de mediu sau variabile de mediu. Acestea reflectă setările mediului de server Apache Web, precum și informațiile de solicitare pentru browserul dat. Este posibil să obțineți valorile URL-ului, șirul de interogare și alte elemente ale solicitării HTTP.
Toate variabilele predefinite sunt conținute în tabloul asociativ $ GLOBALS. Pe lângă variabilele de mediu, această matrice conține și variabile globale definite în program.
Exemplul 1
"; ?>
Ca rezultat, pe ecran va apărea o listă cu toate variabilele globale, inclusiv variabilele de mediu. Cele mai frecvent utilizate:
Variabil | Descriere | Conţinut |
---|---|---|
$ _SERVER [„HTTP_USER_AGENT”] | Numele și versiunea clientului | Mozilla / 5.0 (compatibil; 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 internă a clientului | |
$ _SERVER [„REQUEST_METHOD”] | Metoda de solicitare (GET sau POST) | OBȚINE |
$ _SERVER [„QUERY_STRING”] | La o solicitare GET, datele codificate au fost transmise împreună cu adresa URL | |
$ _SERVER [„REQUEST_URL”] | Adresa completă a clientului, inclusiv șirul de interogare | |
$ _SERVER [„HTTP_REFERER”] | Adresa paginii de pe care s-a făcut cererea | |
$ _SERVER [„PHP_SELF”] | Calea către programul executabil | /index.php |
$ _SERVER [„SERVER_NAME”] | Domeniu | site-ul |
$ _SERVER [„REQUEST_URI”] | cale | /php/php_form.php |
Gestionarea intrărilor utilizatorului
Programul de procesare a intrărilor PHP poate fi separat de textul HTML care conține formularele de intrare sau poate fi plasat pe o singură pagină.
Exemplul 2
Nu există un buton de transfer de date aici, pentru că un singur formular de câmp este trimis automat la apăsarea unei taste
Când procesați un articol cu o selecție cu mai multe valori, trebuie să adăugați o pereche de paranteze drepte la numele articolului pentru a accesa toate valorile selectate. Pentru a selecta mai multe elemente, țineți apăsată tasta Ctrl.
Exemplul 3.1
REZULTAT EXEMPLULUI 3.1:
Exemplul 3.2
- "; foreach (articol $ ca valoare $) echo"
- $ valoare "; ecou"
Exemplul 4. Primirea valorilor din casetele de selectare
$ v) (dacă ($ v) echo „Cunoașteți limbajul de programare $ k!"; else echo" Nu cunoașteți limbajul de programare $ k.
"; } } ?>
REZULTAT EXEMPLULUI 4:
Exemplul 5
"; ?>Este posibil să procesați formulare fără să vă faceți griji cu privire la numele câmpurilor reale.
Pentru a face acest lucru, puteți utiliza (în funcție de metoda de transfer) matricea asociativă $ HTTP_GET_VARS sau $ HTTP_POST_VARS. Aceste matrice conțin perechi nume/valoare pentru fiecare element al formularului trimis. Dacă nu vă pasă, puteți utiliza matricea asociativă $ _REQUEST.
Exemplul 6
"; ?>
Exemplul 7. Gestionarea unui clic pe un buton folosind operatorul „@”.
Folosind funcția antet (), trimițând antetul „Locație” către browser, puteți redirecționa utilizatorul către o pagină nouă.
De exemplu:
header("Location: ex2.php"); ?>
Transfer de fișiere pe server. Incarca fisier. Încărcare
PHP vă permite să transferați fișiere pe server. Formularul HTML pentru trimiterea fișierului trebuie să conțină argumentul enctype = "multipart / form-data".
În plus, trebuie să existe un câmp ascuns numit max_file_size în fața câmpului de copiere a fișierului din formular. Acest câmp ascuns ar trebui să conțină dimensiunea maximă a fișierului transferat (de obicei nu mai mult de 2 MB).
Câmpul de transfer de fișiere în sine este un element INPUT obișnuit cu argumentul tip = „fișier”.
De exemplu:
După ce fișierul este încărcat pe server, este denumit în mod unic și stocat în directorul temporar. Calea completă către fișier este scrisă într-o variabilă globală, al cărei nume este același cu numele câmpului pentru transferul acestui fișier. În plus, PHP stochează câteva informații suplimentare despre fișierul transferat în alte variabile globale:
Exemplul 8
"; echo" dimensiune: ". $ _ FILES [" userfile "] [" size "]."
"; echo" tip: ". $ _ FILES [" userfile "] [" tip "]."
"; } ?>
Exemple de încărcare a fișierelor pe server
Dacă aveți probleme cu serverul care transcodează fișierul încărcat, simbolul cu codul 0x00înlocuit cu un spațiu (caracter cu cod 0x20), adăugați la fișier httpd.conf din directorul Apache (/ usr / local / apache) următoarele rânduri.