Hyvin usein on tarpeen siirtää tietoja asiakasselaimesta palvelintiedostoon komentosarjalla näiden tietojen käsittelemiseksi. Katsotaanpa tarkalleen miten organisoida php-parametrien siirto komentosarjaan.
Se on välttämätöntä
Perustiedot PHP- ja HTML-kielistä
Ohjeet
Vaihe 1
Tietojen siirtämiseksi verkkolomakkeista HTTP: ssä (HyperText Transfer Protocol) on kaksi tapaa - GET ja POST. Ne eroavat toisistaan siinä, miten ne siirretään asiakassovelluksesta (selaimesta) palvelinsovellukseen (suoritettava php-komentosarja). GET-menetelmä käyttää tähän osoiteriviä. Toisin sanoen sille lähetettyjen muuttujien nimet ja arvot liitetään suoraan komentosarjan osoitteeseen (tai URL - Uniform Resource Locator) kysymysmerkin (?) Kautta. Esimerkiksi URL voi näyttää tältä:
Tässä search.php-komentosarja välittää muuttujan nimeltä num, jonka arvo on 30, muuttujan newwindow, jonka arvo on 1, ja turvallisen muuttujan, jonka arvo on pois päältä. Palvelin, saatuaan tällaisen pyynnön, "?" erottaa tiedoston osoitteen ja jakaa kaiken muun muuttujien nimien ja arvojen pareiksi. Tuloksena olevat parit täytetään $ _GET-taulukossa, josta osoitteessa määritetty php-komentosarja pystyy purkamaan ne. Yksinkertaisimmassa muodossaan muotoinen html-koodi näiden tietojen lähettämiseksi selaimelta palvelimelle GET-menetelmällä saattaa näyttää tältä:
Ja yksinkertaisin php-komentosarja näiden tietojen vastaanottamiseksi on seuraava:
<? php
$ num = $ _GET ['num'];
$ newwindow = $ _GET ['newwindow'];
$ safe = $ _GET ['turvallinen'];
?>
GET-menetelmää käyttävien muuttujien välittämisen merkittävimmät haitat:
- rajoitettu tietomäärä, koska URL-osoitteen pituus ei saa ylittää 255 merkkiä;
- kaikkia html-koodimerkkejä ei voida siirtää tällä menetelmällä;
- välitetyt tiedot ovat käyttäjän nähtävissä, mikä ei aina ole turvallisuuden kannalta hyväksyttävää;
Vaihe 2
Nämä haitat ja rajoitukset voidaan välttää käyttämällä toista menetelmää - POST. Se käyttää verkkopakettien erityisalueita tiedonsiirtoon. Kaikissa muissa suhteissa näiden menetelmien väliset erot ovat vähäiset - yllä olevassa tiedonsiirtomuodossa vain menetelmän nimi muuttuu:
Ja php-komentosarjassa vain tietoryhmän nimi:
<? php
$ num = $ _POST ['num'];
$ newwindow = $ _POST ['newwindow'];
$ safe = $ _POST ['turvallinen'];
?>