Väga sageli on nende andmete töötlemiseks vajalik andmete edastamine kliendibrauserist serverifaili koos skriptiga. Vaatame täpselt, kuidas korraldada php-parameetrite ülekandmist skripti.
See on vajalik
Põhiteadmised PHP ja HTML keeltest
Juhised
Samm 1
Andmete transportimiseks veebivormidest HTTP-s (HyperText Transfer Protocol) on ette nähtud kaks meetodit - GET ja POST. Need erinevad kliendirakendusest (brauserist) serverirakendusse (käivitatav php-skript) edastamise viisi poolest. GET-meetod kasutab selleks aadressiriba. See tähendab, et talle edastatud muutujate nimed ja väärtused lisatakse küsimärgi (?) Kaudu otse skripti aadressile (või URL-ile - ühtne ressursside otsija). Näiteks võib URL välja näha järgmine:
Siin edastatakse skriptile search.php muutuja nimega num väärtusega 30, muutuv newwindow väärtusega 1 ja seif muutuja väärtusega off. Server, olles saanud sellise päringu, esitas "?" eraldab failiaadressi ja jagab kõik muu muutujate nimede ja väärtuste paarideks. Saadud paarid täidetakse massiivis $ _GET, millest aadressis määratud php-skript saab need välja tõmmata. Lihtsamas vormis võib vormi HTML-kood nende andmete edastamiseks brauserist serverisse GET-meetodi abil välja näha järgmine:
Ja nende andmete saamiseks on lihtsaim php-skript järgmine:
<? php
$ num = $ _GET ['num'];
$ newwindow = $ _GET ['newwindow'];
$ safe = $ _GET ['ohutu'];
?>
GET-meetodi abil muutujate edastamise olulisemad puudused:
- piiratud andmemaht, kuna URL-i pikkus ei tohi ületada 255 tähemärki;
- selle meetodi abil ei saa kõiki HTML-koodimärke edastada;
- edastatud andmed on kasutajale nähtavad, mis pole turvalisuse seisukohast alati vastuvõetav;
2. samm
Neid ebamugavusi ja piiranguid saab vältida teise meetodi - POST - abil. Andmete edastamiseks kasutab päiseid võrgupakettide eripiirkondi. Muus osas on nende meetodite erinevused minimaalsed - ülaltoodud andmete saatmise vormis muutub ainult meetodi nimi:
Ja php skriptis ainult andmemassiivi nimi:
<? php
$ num = $ _POST ['num'];
$ newwindow = $ _POST ['newwindow'];
$ seif = $ _POST ['ohutu'];
?>