Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Windows 8
  • PHP skripte za obradu HTML obrazaca. Načini na koje preglednik komunicira s poslužiteljem

PHP skripte za obradu HTML obrazaca. Načini na koje preglednik komunicira s poslužiteljem

JavaScript je blokiran u vašem pregledniku. Omogućite JavaScript kako bi stranica radila!

Rad s obrascima

HTML obrasci se koriste za prijenos podataka od korisnika web stranice do poslužitelja. PHP nudi brojne posebne alate za rad s obrascima.

Predefinirane varijable

PHP ima niz unaprijed definiranih varijabli koje se ne mijenjaju u svim aplikacijama koje se izvode u određenom okruženju. Također se nazivaju varijablama okruženja ili varijable okoline. Oni odražavaju postavke okoline Apache web poslužitelj, kao i podatke o zahtjevu ovog preglednika. Moguće je dobiti vrijednosti URL-a, niza upita i drugih elemenata HTTP zahtjeva.

Sve unaprijed definirane varijable sadržane su u asocijativnom nizu $GLOBALS. Osim varijabli okruženja, ovaj niz također sadrži globalne varijable definirane u programu.

Primjer 1 Pregledajte niz $GLOBALS

Kao rezultat toga, popis svih globalnih varijabli, uključujući varijable okoline, pojavit će se na ekranu. Najčešće korišteni su:

Opis varijable Sadržaj
$_SERVER["HTTP_USER_AGENT"]Ime i verzija klijentaMozilla/5.0 (kompatibilan; Googlebot/2.1; +http://www.google.com/bot.html)
$_SERVER["REMOTE_ADDR"]IP adresa144.76.78.3
getenv("HTTP_X_FORWARDED_FOR")Interna IP adresa klijenta
$_SERVER["REQUEST_METHOD"]Metoda zahtjeva (GET ili POST)DOBITI
$_SERVER["QUERY_STRING"]Na GET zahtjev kodirani podaci koji se šalju zajedno s URL-om
$_SERVER["REQUEST_URL"]Puna adresa korisnika uključujući niz upita
$_SERVER["HTTP_REFERER"]URL stranice s koje je poslan zahtjev
$_SERVER["PHP_SELF"]Put do programa koji se izvršava/index.php
$_SERVER["SERVER_NAME"]Domenaweb stranica
$_SERVER["REQUEST_URI"]Staza/php/php_forma.php
Rukovanje korisničkim unosom

PHP program za obradu unosa može se odvojiti od HTML teksta koji sadrži forme za unos ili se može smjestiti na jednu stranicu.

Primjer 2 Obrada unosa Primjer 2. Gumb za resetiranje obrasca

Kada kliknete gumb za resetiranje, svi elementi obrasca bit će postavljeni u stanje koje je navedeno u zadanim atributima i obrazac se neće predati.

PHP skripta nije potrebna.

3. Potvrdni okvir

Potvrdni okviri korisniku nude niz opcija i dopuštaju proizvoljan odabir (nijedan, jedan ili više njih).

Bijela
zelena
Plava
Crvena
Crno

// prvi set gumba
// drugi set gumba
// treći set gumba

5. Tekstno polje (tekst)

Prilikom stvaranja uobičajenog tekstualnog polja veličine veličine i maksimalne dopuštene duljine znakova maxlength, atribut tipa preuzima vrijednost text. Ako je parametar vrijednosti naveden, polje će prikazati vrijednost navedenu u varijabli. Prilikom kreiranja polja ne zaboravite navesti naziv polja jer... ovaj atribut je obavezan.

6. Polje za lozinku

Potpuno isto kao tekstualno polje, osim što znakovi koje korisnik upisuje neće biti prikazani na ekranu.

7. Skriveno tekstualno polje (skriveno)

Omogućuje vam prosljeđivanje nekih servisnih informacija skripti bez prikazivanja na stranici.

8. Padajući popis (odaberite)

Oznaka je padajući ili prošireni popis, a može se odabrati jedan ili više redaka u isto vrijeme. Ali vrijednost će biti proslijeđena zadnjem odabranom gumbu.

Popis počinje uparenim oznakama. Oznake vam omogućuju da definirate sadržaj popisa, a parametar vrijednosti definira vrijednost niza. Ako je odabrani parametar naveden u oznaci, tada će red biti inicijalno odabran. Parametar veličine određuje koliko će redaka popis zauzimati. Ako je veličina 1, popis će biti padajući. Ako je naveden višestruki atribut, tada se može odabrati više elemenata s popisa. Ali ova se shema praktički ne koristi, a s veličinom = 1 nema smisla.

Bijelo Zeleno Plavo Crveno Crno

Ako trebate stvoriti padajući izbornik s predvidljivim slijedom. Na primjer, popis s godinama od 2000. do 2050. Zatim se koristi sljedeća tehnika.

9. Višeredno polje za unos teksta (textarea)

Polje za unos teksta s više redaka omogućuje slanje ne samo jednog reda, već nekoliko odjednom. Ako je potrebno, možete navesti atribut readonly, koji zabranjuje uređivanje, brisanje i promjenu teksta, tj. tekst će biti samo za čitanje. Ako je potrebno da se tekst inicijalno prikaže u višerednom polju za unos, tada se mora postaviti između oznaka.

Postoji parametar prelamanja - postavljanje prelamanja redaka. Moguće vrijednosti:

isključeno - onemogućuje prijelaz redaka;

virtualno - prikazuje prijelome redaka, ali šalje tekst kakav je unesen;

fizički - prijelomi redaka ostaju u izvornom obliku.

Prema zadanim postavkama, oznaka stvara prazno polje koje je široko 20 znakova i sastoji se od 2 retka.


Kako bi tekstualno polje od više redaka bilo u skladu s html oblikovanjem (prelamanje redaka pomoću oznake
ili
), zatim upotrijebite funkciju nl2br():

Izvorno umetnuti red 1 Izvorno umetnut red 2 Izvorno umetnut red 3

10. Gumb za učitavanje datoteka (pregledaj)

Služi za implementaciju učitavanja datoteka na poslužitelj. Kada stvarate tekstualno polje, također trebate navesti vrstu polja kao "datoteka".

Prenesi datoteku:

NAČINI KOMUNICIRANJA PREGLEDNIKA I POSLUŽITELJA

Postoji nekoliko metoda koje nudi HTTP protokol. Ovo je važna informacija. Drugih načina nema. U praksi se koriste dva: GET je kada se podaci prenose u adresnoj traci, na primjer, kada korisnik klikne poveznicu. POST - kada klikne gumb na obrascu.

GET metoda

Za prijenos podataka metodom GET ne morate kreirati obrazac na HTML stranici (nitko vam ne brani koristiti obrasce za zahtjeve metodom GET - ali to je glupost) - samo poveznica na dokument uz dodatak niz upita koji može izgledati kao parovi varijabla=vrijednost kombiniraju se pomoću znaka &, a niz se dodaje URL-u stranice pomoću upitnika “? "

Ali ne morate koristiti parove ključ=vrijednost ako trebate proslijediti samo jednu varijablu; da biste to učinili, trebate napisati VRIJEDNOST (ne ime) varijable nakon upitnika.

Prednost prosljeđivanja parametara na ovaj način je u tome što klijenti koji ne mogu koristiti metodu POST (na primjer, tražilice) i dalje mogu jednostavno proslijediti parametre skripti slijedeći vezu i primajući sadržaj.

Loša strana je da jednostavnim mijenjanjem parametara u adresnoj traci korisnik može okrenuti skriptu na nepredvidiv način, što stvara veliku sigurnosnu rupu u kombinaciji s nedefiniranim varijablama i register_globals ili bi netko mogao saznati vrijednost važne varijable (poput ID-a sesije) samo gledanjem na zaslonu monitora.

Za pristup javnim stranicama prosljeđivanjem parametara (povećana funkcionalnost)

Prijenos informacija koji ne utječe na razinu sigurnosti

Za pristup zaštićenim stranicama s proslijeđenim parametrima

Za prijenos informacija koje utječu na razinu sigurnosti

Za prijenos informacija koje korisnik ne može mijenjati (neki prenose tekst SQL upita.

POST metoda

Podatke POST metodom možete poslati samo pomoću obrasca na HTML stranici. Glavna razlika između POST-a i GET-a je u tome što se podaci ne prenose u zaglavlju zahtjeva, već u tijelu, stoga ih korisnik ne vidi. Može se modificirati samo promjenom samog obrasca.

prednost:

Veća sigurnost i funkcionalnost za zahtjeve koji koriste POST obrasce.

mana:

Manja dostupnost.

Za što ga trebate koristiti:

Za prijenos velike količine informacija (tekst, datoteke..);

Za prijenos svih važnih informacija;

Ograničiti pristup (na primjer, koristiti samo obrazac za navigaciju - opcija nije dostupna svim robotskim programima ili grablerima sadržaja).

Za što se ne smije koristiti:

Bez ograničenja.

Učitavanje datoteka metodom POST

PHP može prihvatiti datoteku preuzetu bilo kojim preglednikom. To omogućuje učitavanje tekstualnih i binarnih datoteka. U kombinaciji s PHP autentifikacijom i funkcijama datotečnog sustava, imate potpunu kontrolu nad time kome je dopušteno učitavati datoteke i što učiniti s datotekom nakon što je učitana.

Stranica za učitavanje datoteke može se implementirati pomoću posebnog obrasca koji izgleda otprilike ovako:

//Obrazac za učitavanje datoteka Pošalji ovu datoteku:

U gornjem primjeru, "_URL_" treba zamijeniti vezom na PHP skriptu. Skriveno polje MAX_FILE_SIZE (vrijednost mora biti navedena u bajtovima) mora prethoditi polju za odabir datoteke, a njegova vrijednost je najveća dopuštena veličina datoteke koja se može prihvatiti. Također biste trebali provjeriti jeste li naveli enctype="multipart/form-data" u atributima obrasca, inače datoteke neće biti učitane na poslužitelj.

Pažnja

Opcija MAX_FILE_SIZE je preporuka preglednika, čak i ako bi PHP također provjeravao ovaj uvjet. Zaobilaženje ovog ograničenja na strani preglednika je prilično jednostavno, tako da se ne biste trebali oslanjati na ovu značajku za blokiranje svih većih datoteka. Međutim, ne postoji način da se zaobiđe PHP-ovo ograničenje maksimalne veličine. Svejedno biste trebali dodati varijablu oblika MAX_FILE_SIZE, jer onemogućuje korisnicima da tjeskobno čekaju dok prenose goleme datoteke, samo da bi otkrili da je datoteka prevelika i da prijenos zapravo nije uspio.

Kako definirati metodu zahtjeva?

Direktno:

Getenv("REQUEST_METHOD");

vratit će GET ili POST.

Koju metodu treba koristiti?

Ako se obrazac koristi za traženje nekih informacija, primjerice tijekom pretraživanja, tada ga treba poslati metodom GET. Da biste mogli ažurirati stranicu, možete je označiti i/ili poslati vezu prijatelju.

Ukoliko se kao rezultat slanja obrasca podaci zabilježe ili promijene na serveru, tada ih treba poslati POST metodom, a nakon obrade obrasca obavezno preusmjeriti preglednik GET metodom. Također, POST može biti potreban ako je potrebno prenijeti veliku količinu podataka na poslužitelj (za GET je vrlo ograničen), a također i ako se preneseni podaci ne bi trebali prikazati u adresnoj traci (prilikom unosa prijave i lozinke, na primjer).

U svakom slučaju, nakon obrade POST-a, preglednik uvijek trebate preusmjeriti na neku stranicu, pa makar i istu, ali bez podataka obrasca, kako se oni ne bi ponovno zabilježili kada se stranica osvježi.

Kako prenijeti podatke u drugu datoteku izravno iz tijela PHP programa koristeći metode GET i POST? Primjer za demonstraciju slanja podataka korištenjem metoda POST i GET istovremeno i primanja odgovora od poslužitelja.

Najbolji članci na temu