PHP kézikönyv
Előző
8.
Fejezet.
Változók
Következő
Egy HTML űrlap (form) elküldésével az űrlap összes beviteli mezőjének értéke automatikusan elérhetővé válik a szkript számára a PHP segítségével.
Ha a track_vars szolgáltatás be van kapcsolva, ezek a változók a $HTTP_POST_VARS, $HTTP_GET_VARS, és / vagy $HTTP_POST_FILES, asszociatív tömbökben foglalnak helyet a változók forrásának megfelelően.
További információkért ezekről a változókról olvasd el az Előre definiált változók című részt.
Példa 8-1.
Egyszerű űrlap változó példája
form action=" foo.php "method="post" Name: input type="text "name="usernev" br input type="submit "/ form
Ha elküldjük a fenti űrlapot, akkor a PHP létrehozza a $HTTP_POST_VARS[ 'usernev'] Ha elküldjük a fenti űrlapot, akkor a PHP létrehozza a $HTTP_POST_VARS['usernev'] változót.
Ha a register_globals beállítás aktív, akkor ez a változó elérhető lesz $usernev globális változóként is.
Megjegyzés:
A magic_quotes_gpc konfigurációs beállítás hatással van a GET, POST és COOKIE metódusokkal kapott értékekre.
Bekapcsolva a (Ez a "PHP", biz'a!) szövegből automágikusan (Ez a \"PHP\", biz\'a!) lesz, hogy megkönnyítse az adatbázisba írást.
Lásd még: addslashes(), stripslashes() és magic_quotes_sybase!
A PHP megérti és kezeli a tömbökbe rendezett űrlapváltozókat. (Lásd related faq!) Hasznos lehet csoportosítani az összetartozó változókat, vagy az olyan űrlapelemeket, ahol több lehetőség közül nem csak egy választható.
Példa 8-2.
Összetettebb űrlapváltozók
form action=" array.php "method="post" Név: input type="text "name="szemelyes[nev]" br Email: input type="text "name="szemelyes[email]" br Sör: br select multiple name="ital[] "option value="warthog" Warthog option value="guinness "Guinness option value="stuttgarter" Stuttgarter Schwabenbräu / select input type="submit "/ form
PHP 3-ban ilyen módon csak egydimenziós tömbök hozhatók létre, míg PHP 4-ben nincs ilyen korlátozás.
Az űrlap elküldésekor megoldható, hogy gomb helyett képet használunk ilyesféle jelölés segítségével:
input type=" image "src="image.gif" name="elkuld "
Ha a felhasználó a képre kattint, a kiszolgálóra a következő két változó jut el: elkuld_x-et és elkuld_y-t.
Ezek tartalmazzák a kattintás képen belüli koordinátáit.
A tapasztaltabbak biztos megjegyeznék, hogy a változónevek nem aláhúzást, hanem pontot tartalmaznak, de a PHP a pontot automatikusan aláhúzássá konvertálja.
A PHP támogatja a Netscape specifikációja által definiált HTTP sütiket.
A süti olyan mechanizmus, amely a távoli böngészőn tesz lehetővé adattárolást, és így lehetővé teszi a visszatérő felhasználók azonosítását.
A sütiket a setcookie() függvénnyel lehet beállítani.
A sütik a HTTP fejléc részei, így a SetCookie függvényt bármilyen kimenet generálása előtt kell meghívni.
Ugyanezt a megkötést kell betartani a header() függvénnyel.
Bármilyen süti, amelyet a klienstől érkezik, automatikusan egy PHP változóba kerül, úgy, mint a GET és a POST metódus adatai.
Ha több adatot akarsz rendelni egy sütihez, egyszerűen rakj [] -t a cookie neve után.
Például:
setcookie( "EnSutim[]", "tesztelem", time()+3600);
Vigyázz, mert a süti felülírja az előző azonos nevű sütit, hacsak nem különbözik a path vagy a domain.
Így pl. egy bevásárlókocsi megírásakor jó egy számlálót is elhelyezni, hogy elkerüljük a problémát.
Példa 8-3.
SetCookie Példa
$Szamlalo++; setcookie("Szamlalo", $Szamlalo, time()+3600); setcookie("Kocsi[$Szamlalo]", $elem, time()+3600);
A PHP automatikusan létrehozza az elérhető környezeti változókat, mint egyszerű PHP változókat.
echo $HOME; / * Megmutatja a HOME környezeti változót, ha van. * /
Mivel az információ ami a GET, POST és Cookie mechanizmuson keresztül jön, mind automatikusan PHP változókat generál, ezért néha jobb, ha direkt a környezeti változókból olvassuk ki, hogy tudjuk, valójában melyik változatból olvasunk.
A getenv() függvényt lehet erre használni.
A környezeti változókat be is lehet állítani a putenv() függvénnyel.
Általában a PHP nem változtatja meg a változók neveit, amikor a szkript megkapja őket.
A pont viszont nem érvényes karakter egy PHP változóneven belül.
Az ok megértéséért nézd a:
$varname.ext; / * érvénytelen változónév * /
Emiatt fontos, hogy PHP automatikusan helyettesíti a pontokat aláhúzásjellel.
Mivel a PHP határozza meg a változók típusát és konvertálja őket (általában) szükség szerint, nem mindig nyilvánvaló, hogy milyen típusú egy pillanatban egy adott változó.
A PHP-nek számos függvénye van, amelyek egy változó típusát hivatottak eldönteni.
Ezek: gettype(), is_long(), is_double(), is_string(), is_array(), és is_object().
Előző
Tartalom
Következő
Változó változók
Fel
Állandók