Ļoti bieži rodas nepieciešamība datus pārsūtīt no klienta pārlūkprogrammas uz servera failu ar skriptu šo datu apstrādei. Apskatīsim, kā tieši organizēt php parametru pārsūtīšanu uz skriptu.
Tas ir nepieciešams
Pamata zināšanas par PHP un HTML valodām
Instrukcijas
1. solis
Datu transportēšanai no tīmekļa veidlapām HTTP (HyperText Transfer Protocol) ir paredzētas divas metodes - GET un POST. Tie atšķiras no tā, kā tie tiek pārsūtīti no klienta lietojumprogrammas (pārlūka) uz servera lietojumprogrammu (izpildāmo php skriptu). GET metode šim nolūkam izmanto adreses joslu. Tas ir, tam pārsūtīto mainīgo nosaukumi un vērtības, izmantojot jautājuma zīmi (?), Tiek tieši pievienoti skripta adresei (vai URL - Uniform Resource Locator). Piemēram, URL varētu izskatīties šādi:
Šeit skriptam search.php tiek nodots mainīgais ar nosaukumu num ar vērtību 30, mainīgais newwindow ar vērtību 1 un seifs ar izslēgtu vērtību. Serveris, saņēmis šādu pieprasījumu, iesniedza "?" atdala faila adresi un visu pārējo sadala mainīgo nosaukumu un vērtību pāros. Iegūtie pāri tiek aizpildīti masīvā $ _GET, no kura adresē norādītais php skripts tos varēs iegūt. Vienkāršākajā formā formas HTML kods šo datu nosūtīšanai no pārlūkprogrammas uz serveri, izmantojot GET metodi, varētu izskatīties šādi:
Un vienkāršākais php skripts šo datu saņemšanai ir šāds:
<? php
$ num = $ _GET ['num'];
$ newwindow = $ _GET ['newwindow'];
$ drošs = $ _GET ['drošs'];
?>
Būtiskākie mainīgo lielumu nodošanas, izmantojot GET metodi, trūkumi:
- ierobežots datu apjoms, jo URL garums nedrīkst pārsniegt 255 rakstzīmes;
- ar šo metodi nevar pārsūtīt visas HTML koda rakstzīmes;
- pārsūtītie dati ir redzami lietotājam, kas ne vienmēr ir pieņemami no drošības viedokļa;
2. solis
Šīs neērtības un ierobežojumus var novērst, izmantojot citu metodi - POST. Lai pārsūtītu datus - galvenes, tiek izmantotas īpašas tīkla pakešu zonas. Visos citos aspektos atšķirības starp šīm metodēm ir minimālas - iepriekšminētajā datu sūtīšanas veidā mainīsies tikai metodes nosaukums:
Un php skriptā tikai datu masīva nosaukums:
<? php
$ num = $ _POST ['num'];
$ newwindow = $ _POST ['newwindow'];
$ seifs = $ _POST ['drošs'];
?>