Kako postaviti pametne telefone i računala. Informativni portal

PHP i obrasci. PHP _SELF u atributu radnje obrasca

Posljednje ažuriranje: 1.11.2015

Jedan od glavnih načina na koji se podaci prenose na web stranicu je obrada obrazaca. Obrasci su posebni HTML elementi za označavanje koji sadrže različite elemente unosa - tekstualna polja, gumbe i tako dalje. A uz pomoć podataka obrasca možemo unijeti neke podatke i poslati ih na poslužitelj. I poslužitelj već obrađuje te podatke.

Izrada obrazaca sastoji se od sljedećih aspekata:

    Napravite element

    u HTML oznaci

    Dodavanje jednog ili više polja za unos ovom elementu

    Postavljanje načina prijenosa podataka: GET ili POST

    Postavljanje adrese na koju će se slati uneseni podaci

Pa napravimo novi obrazac. Da bismo to učinili, definirat ćemo novu form.php datoteku u koju ćemo smjestiti sljedeći sadržaj:

Prijaviti se

Prijaviti se:

Zaporka:

Atribut action="login.php" elementa obrasca označava da će skripta obraditi podatke obrasca. login.php, koji će biti uz datoteku form.php u jednoj mapi. A atribut method="POST" označava da će se POST metoda koristiti kao metoda prijenosa podataka.

Sada napravimo datoteku login.php, koji će imati sljedeći sadržaj:

Vaša lozinka: $password"; ?>

Za dobivanje podataka obrasca koristi se globalna varijabla $_POST. Predstavlja asocijativni niz podataka koji se dostavljaju POST metodom. Pomoću ključeva možemo dobiti dostavljene vrijednosti. Ključevi u ovom nizu su vrijednosti atributa imena polja za unos obrasca.

Budući da je atribut name polja za unos za prijavu postavljen na login ( ), tada će u nizu $_POST vrijednost ovog polja predstavljati ključ "login": $_POST["login"]

A budući da postoje situacije kada polje za unos neće biti postavljeno, na primjer, kada idete izravno na skriptu: http://localhost:8080/login.php. U tom slučaju poželjno je provjeriti njihovu prisutnost prije obrade podataka pomoću funkcije isset(). A ako je varijabla postavljena, funkcija isset() će vratiti true .

Sada se možemo obratiti obrascu:

A pritiskom na tipku, uneseni podaci metodom POST bit će poslani u skriptu login.php:

Nije potrebno slati podatke obrasca u drugu skriptu, moguće je obraditi podatke obrasca u istoj datoteci obrasca. Da biste to učinili, promijenite datoteku form.php na sljedeći način:

Vaša lozinka: $password"; ) ?>

Prijaviti se

Prijaviti se:

Zaporka:

Sigurnost podataka

Organizacija sigurnosti podataka je od velike važnosti u PHP-u. Pogledajmo nekoliko jednostavnih mehanizama koji mogu poboljšati sigurnost naše web stranice.

Ali prvo, uzmimo obrazac iz zadnje teme i pokušajmo unijeti neke podatke u njega. Na primjer, unesite u polje za prijavu "", a u polju lozinke tekst "

zaporka

":

Nakon slanja podataka u html oznaku, ubacit će se javascript kod koji prikazuje okvir s porukom.

Da biste izbjegli ove sigurnosne probleme, trebali biste koristiti funkciju htmlentities():

If(isset($_POST["login"]) && isset($_POST["password"]))( $login=htmlentities($_POST["login"]); $password = htmlentities($_POST["password" ]); echo "Vaša prijava: $login
Vaša lozinka: $password"; )

Čak i nakon unosa html ili javascript koda, sve oznake će se izbjeći i dobit ćemo sljedeći izlaz:

Druga funkcija - funkcija strip_tags() omogućuje vam da potpuno isključite html oznake:

If(isset($_POST["login"]) && isset($_POST["password"]))( $login=strip_tags($_POST["login"]); $password = strip_tags($_POST["password" ]); echo "Vaša prijava: $login
Vaša lozinka: $password"; )

Rezultat njegovog rada s istim ulazom bit će sljedeći izlaz.

Dobar dan svima. Alexey Gulynin je u kontaktu. U prošlom članku naučili ste o serijalizaciji u php-u. U ovom članku želio bih govoriti o tome kako raditi s forme u PHP-u. PHP jezik je dizajniran za programiranje web skripti, a obrada obrazaca je možda najvažnije mjesto u tom procesu. Sada nema stranica koje ne bi imale, primjerice, registraciju ili obrazac za povratne informacije, ili upitnik. Forumi, internetske trgovine, dodavanje komentara, slanje poruke na društvenoj mreži - sve je to obrada podataka smještenih u polja obrasca. Pogledajmo na primjeru kako procesne forme u PHP-u.
Provest ćemo jednostavan zadatak: trebate stvoriti 2 polja (ime i prezime), proslijediti ove podatke skripti action.php, kao rezultat, trebao bi se pojaviti pozdrav "Dobro došli, prezime ime". Tko je zaboravio kako nastaju forme, i koja polja postoje, možete vidjeti. Kreirajmo test.html datoteku:

Ime: Prezime:

Skrećem vam pozornost na činjenicu da se datoteka action.php (u našem slučaju) mora nalaziti u istoj mapi kao i datoteka test.html. Ovdje možete odrediti i relativne i apsolutne staze. Budite oprezni, mnoge su pogreške povezane s pogrešnim putem do skripte za obradu obrasca.

Kreirajmo datoteku action.php sa sljedećim sadržajem:

Ako sada otvorimo test.html datoteku, ispunimo polja obrasca i kliknemo na gumb, završit ćemo u datoteci action.php, gdje će se prikazati poruka. U tom slučaju preglednik pristupa skripti action.php i prosljeđuje je kroz "?" sve vrijednosti atributa imena smještene unutar oznaka , odvojeno & . Primijetite što se zamjenjuje za $_SERVER .

Naš problem možemo riješiti raščlanjivanjem niza QUERY_STRING koristeći standardne PHP funkcije za manipulaciju stringovima, ali bolji mehanizam je korištenje niza $_REQUEST. Sve podatke primljene iz polja obrasca, PHP stavlja u polje $_REQUEST, bez obzira na to kako su podaci poslani: POST ili GET (možete saznati putem $_SERVER["REQUEST_METHOD"] ). Dopustite mi da vas podsjetim kako se ove metode razlikuju:

Metoda GET je javna, POST metoda je privatna, t.j. razlikuju se po načinu prosljeđivanja parametara. Primjer:

1) Ako koristimo post metodu: mysite.ru/request.php.
2) Ako koristimo metodu get: mysite.ru/request.php?myname="Alex"&surname="Gulynin".

Također, pored polja $_REQUEST, PHP stvara nizove $_GET i $_POST. Provedimo sada naš zadatak, na temelju stečenog znanja:

Ako sada ispunimo obrazac i kliknemo na gumb, vidjet ćemo da nas action.php skripta pozdravlja prezimenom i imenom. Sve radi kako treba.

Ovdje je sve u redu, ali ako promijenimo naziv skripte, morat ćemo unijeti promjene u datoteku test.html. Modificirajmo datoteku action.php tako da se pristupom njoj prikazuje ili obrazac kada ništa nismo poslali ili pozdrav kada pritisnemo gumb:

"> Ime: Prezime:

Sada ne ovisimo o nazivu scenarija, jer postavite ga putem varijable okoline $_SERVER["SCRIPT_NAME"]. Konstrukcija =$_SERVER["SCRIPT_NAME"]?> je ekvivalentna konstrukciji .
Osim varijable okruženja SCRIPT_NAME, postoje mnoge druge.

Danas ćemo raditi na izradi prekrasnog HTML obrasca za povratne informacije za web stranicu koja radi na PHP-u i ima ugrađenu zaštitu od neželjene pošte. Ne trebate nikakvo posebno znanje, bit će dovoljne osnove html-a i elementarne logike. Dajem gotove datoteke koje možete ubaciti na stranicu bez promjena ili prilagoditi svojim potrebama.

Nedavno sam napravio članak o tome kako napraviti dodatak za obrazac za kontakt 7. Također možete jednostavno napraviti obrazac za povratne informacije na Joomli i drugim popularnim CMS-ima.

Ali što je s stranicama koje ne koriste popularni CMS? - Ostaje sve raditi ručno.

Osim toga, za WordPress je moguće i korištenje povratnih informacija bez dodataka. Dodatni dodaci stvaraju značajno opterećenje na poslužitelju, a njihovo odbijanje omogućuje vam da ubrzate stranicu.

Ovdje možete naručiti instalaciju i konfiguraciju gotovog obrasca za 500 rubalja (ovo je za one koji su previše lijeni za rad rukama ili vještina nije dovoljna).

Princip obrasca za povratnu informaciju na html-u

Naš obrazac će imati 5 polja za unos podataka - ime, e-mail adresa, telefonski broj, adresa web stranice, tekst poruke (možete ih sami izbrisati ili promijeniti).

Sva polja, osim adrese web stranice, bit će obavezna (to možete i sami konfigurirati).

Za polja s e-mail adresom i web-stranicom izvršit će se obvezna provjera ispravnosti unosa podataka.

Konačni oblik komunikacije će izgledati ovako:


Kontakt obrazac kreiran u html-u zahtijeva 3 elementa za rad.

Prvi je odgovoran za strukturu samog obrasca, za vrstu i broj polja za unos podataka. Ovo je normalan html kod.

Drugi je odgovoran za obradu podataka koje korisnik unosi u polja obrasca. Određuje što, gdje i u kojem obliku poslati nakon što se pritisne gumb za slanje. Za implementaciju se koristi posebna PHP skripta.

Treći je zaslužan za izgled. Postavlja veličinu i položaj polja za unos podataka, dodaje različite boje i efekte. Sve je postavljeno CSS stilovima.

Demo verzija obrasca

Provest ćemo vas kroz konfiguraciju svakog od ovih elemenata korak po korak.

Izrada HTML izgleda

Kako članak ne bi bio predugačak i ne bih dodavao svaki element posebno, dat ću cijeli html kod, a u nastavku ću opisati svaki blok i moguće izmjene.

Oznaka se koristi za označavanje obrazaca u html-u.

, unutar kojeg su ispunjeni potrebni parametri.

Ispravan format" [e-mail zaštićen]"

Ispravan format je "+7-123-4567890"

Ispravan format je "http://someaddress.com"

"Unesite svoje ime" potrebno />

"Unesite adresu e-pošte" potrebno />

"Unesite broj telefona" potrebno />

Ispravan format je "+7-123-4567890"

"Unesite adresu svoje web stranice" uzorak = "(http|https)://.+" />

Ispravan format je "http://someaddress.com"

Počnimo s prvim redom.

class=”obrazac za kontakt”- navedite klasu kako biste u budućnosti postavili CSS stilove.

action=”contact-form.php”- navedite naziv datoteke sa skriptom koja će obraditi podatke obrasca i poslati poruku. Ako se datoteka nalazi u istoj mapi kao i stranica s obrascem, tada je dovoljno navesti samo naziv datoteke, ako se nalazi u drugoj mapi, tada ćete morati odrediti put do datoteke.

Slijede 4 bloka.

Odgovoran za prikaz polja za unos podataka, nazivi jasno pokazuju koji je za što odgovoran. Sama polja se prikazuju pomoću oznaka , unutar kojeg su navedene sljedeće karakteristike:

tip– odgovoran je za vrstu ulaznih podataka, tekst je običan tekst, email je adresa e-pošte, takva polja se automatski provjeravaju na ispravnost (@ mora biti prisutan), tel je broj telefona, url je adresa web stranice.

Ime- naziv samog elementa, potrebno je da skripta zna koristiti podatke svakog polja. Ako napravite nekoliko polja iste vrste, tada morate svakom polju dodijeliti naziv.

rezerviranog mjesta je opis alata unutar polja, tekst koji zamjenjuje prazno polje elementa. Može se mijenjati ili brisati, ne utječe na rad obrasca.

Potreban- Ovaj parametar označava da je polje obavezno. Možete sami odlučiti koji su elementi potrebni, a koji ne.

uzorak=”(http|https)://.+”- ova konstrukcija se koristi za provjeru ispravnosti polja web stranice, označava da adresa mora sadržavati http: // tekst ili https: // tekst, inače će doći do pogreške.

Neka polja imaju opis alata koji se pojavljuje kada je stavka odabrana. Povrijeđena je , gdje je form_hint klasa elementa (njegova svojstva su napisana u CSS-u). Možete odrediti bilo koji tekst u opisu za svako polje obrasca za kontakt. Ako vam takva značajka nije potrebna, samo izbrišite cijelu oznaku.

Polja za unos same poruke označena su oznakom

Moguće je obraditi obrasce bez brige o stvarnim nazivima polja.

Da biste to učinili, možete koristiti (ovisno o metodi prijenosa) asocijativni niz $HTTP_GET_VARS ili $HTTP_POST_VARS. Ovi nizovi sadrže parove ime/vrijednost za svaki element poslanog obrasca. Ako vas nije briga, možete koristiti asocijativni niz $_REQUEST.

Primjer 6

Rukovanje proizvoljnim unosom bez obzira na metodu prijenosa $value) echo "$key == $value
"; ?>

Primjer 7. Rukovanje klikom na gumb pomoću operatora "@".

">

Pomoću funkcije header(), slanjem zaglavlja "Location" pregledniku možete preusmjeriti korisnika na novu stranicu.

Na primjer:

Prijenos datoteke na poslužitelj. Prenesite datoteku. Učitaj

PHP vam omogućuje slanje datoteka na poslužitelj. HTML obrazac za slanje datoteke mora sadržavati argument enctype="multipart/form-data" .

Osim toga, obrazac mora imati skriveno polje pod nazivom max_file_size prije polja za kopiranje datoteke. Ovo skriveno polje treba sadržavati maksimalnu veličinu prenesene datoteke (obično ne više od 2 MB).

Samo polje za prijenos datoteke je normalan INPUT element s argumentom type="file" .

Na primjer:

"method="post">

Nakon što je datoteka učitana na poslužitelj, ona dobiva jedinstveni naziv i pohranjuje se u privremeni direktorij. Cijeli put do datoteke zapisuje se u globalnu varijablu čije ime odgovara imenu polja za prijenos ove datoteke. Osim toga, PHP pohranjuje neke dodatne informacije o proslijeđenoj datoteci u drugim globalnim varijablama:

Primjer 8

Obrada prenesene datoteke "; echo "name: ".$_FILES["userfile"]["name"]."
"; echo "veličina: ".$_FILES["userfile"]["size"]."
"; echo "tip: ".$_FILES["userfile"]["type"]."
"; } ?>
"method="post">

Primjeri učitavanja datoteka na poslužitelj

Ako postoje problemi s pretvorbom prenesene datoteke od strane poslužitelja, simbol s kodom 0x00 zamijenjen razmakom (znakom s kodom 0x20), dodajte u datoteku httpd.conf iz Apache direktorija (/usr/local/apache) sljedeće retke.

CharsetRecodeMultipartForms Off

Vrhunski povezani članci