Azt már tudjuk a HTML leckéből, hogy az űrlapokat hogyan hozzuk létre HTML-ben. Ha nem, akkor nézzünk utána. Azt is tudjuk, hogy az űrlap az két módon tudja átadni az adatokat a php-nek (get és post). Azt is tudjuk, hogy mit jelent
- get - az űrlap adatai látszódnak az URL-ben. Akkor hasznos, ha pl. könyvjelzőként mentjük el, hiszen nem kell mindig újraírni. Jelszavaknál és nagyobb tartalmaknál ne használjuk.
- post - az űrlap adatai titkosak. Ezt foglyuk mi is használni.
Ismerkedjünk meg a $_POST-tal (a get is ugyan úgy működik, csak POST helyett GET).
Mi is az a $_POST?
A $_POST valójában egy tömb, mely tartalmazza az űrlap összes elemét név szerint indexelve (tehát name)
Például ha van egy szövegbeviteli mezőm:
<input type="text" name="nevem"/>
Akkor a $_POST['nevem'] veszi fel a beviteli mezőben található értéket.
Akkor használható, ha a form method értéke post (ha get, akkor a $_GET működik).
Hozzunk létre egy űrlapot, ami nevet és életkort kér be. Method az legyen post, az action pedig a php fájl neve (amiben benne lesz a most készülő űrlapunk).
<form action="alap.php" method="post">
Név: <input type="text" name="fname" />
Kor: <input type="text" name="age" />
<input type="submit" name ="submit" />
</form>
Most a php kódrészbe kiírjuk a nevet és az életkort.
<?php
echo "Név: " . $_POST['fname'] . " Kor: " . $_POST['age'];
?>
Az oldalunk még nem tökéletes, hiszen az előtt próbálja kiírni az adatokat, mielőtt megadtuk. Tehát amikor betöltjük az oldalt a php kód lefut, de várja a fname és age adatokat, amik még nincsenek, mert nem adtuk meg.
Emlékszünk még az isset() függvényünkre? Azt vizsgálja, hogy a változó kapott-e már értéket. Ennek segítségével nézzük meg a forgatókönyvet:
HA (a $_POST['submit']-nak már van értéke, mert rákattintottam)
{
AKKOR írja ki a nevet és a kort;
}
Ezt persze egy iffel oldom meg:
if(isset($_POST['submit']))
{
echo "Név: " . $_POST['fname'] . " Kor: " . $_POST['age'];
}
Ha a method get, akkor is ugyanígy járunk el, csak $_POST helyett $_GET- et használunk.
A befejező feladat az űrlapunk tökéletesítése.
Legyen az a feladat, hogyha az illető a gombra kattint, akkor a szöveg ne tűnjön el a szövegdobozokból.
A php kódomat módosítom, hogy a két adatot két változóban tárolja:
if(isset($_POST['submit']))
{
$name = $_POST['fname'];
$age = $_POST['age'];
echo "Név: " . $name . " Kor: " . $age;
}
Ha emlékeztek, akkor a szövegdobozoknak van egy value attribútumuk, ami az alapértéket jelöli. Tehát csak egyszerűen ennek az alapértéke legyen a változó.
Name: <input type="text" name="fname" value="<?php echo $name?>" />
Age: <input type="text" name="age" value="<?php echo $age?>"/>
Az eredmény első indításra egy krikszkraksz lesz, hiszen még nincsenek meg a változóink. Csak annyit kell tenni, hogy a value éréke is az isset($_POST['submit']) feltételhez legyen kötve.
Tehát:
CSAK AKKOR LEGYEN ALAPÉRTÉKE, HA MÁR RÁKATTINTOTTAM A GOMBRA
if(isset($_POST['submit']))
{
echo $age;
}
A végeredmény tehát a következő lesz (html, head, body tagok nincsenek itt):
<?php
if(isset($_POST['submit']))
{
$name = $_POST['fname'];
$age = $_POST['age'];
echo "Név: " . $name . " Kor: " . $age;
}
?>
<form action="alap.php" method="post">
Name: <input type="text" name="fname" value="<?php if(isset($_POST['submit'])) {echo $name;}?>" />
Age: <input type="text" name="age" value="<?php if(isset($_POST['submit'])) {echo $age;}?>"/>
<input type="submit" name ="submit" />
</form>
Ezt mindenképpen alap.php néven mentsük el.
A következő leckékben az eddig megszerzett tudásunkkal készítünk weboldalakat és oldunk meg problémákat :D
Üdv.
VálaszTörlésNyelvi hiba a http://htmlkezdoknek.blogspot.com/2012/01/php-urlapkezeles.html oldalon, a
"post - az űrlap adatai titkosak. Ezt foglyuk mi is használni."
nyelvi hiba foglyuk (főnév)= lyukas fog
fogjuk (ige v. segédige)= a helyes ez esetben.
Kérem javítani.
Köszönettel