Az alapoktól...

PHP kezdőknek

PHP kezdőknek

15. lecke - Lépjünk kapcsolatba!

2015. október 06. - Frantique

Az igazi programok egyik fontos tulajdonsága az interaktivitás. Amint az emberek is kommunikálnak, úgy a programokkal is kapcsolatba kell lépnünk, hogy hasznos munkát végezzenek. A folyamat leegyszerűsítve:

utasítás -> válasz -> utasítás -> válasz ... 

Az utasítás lehet egy esemény (megnyomunk egy gombot a grafikus felületen, rákattintunk egy linkre), vagy terminálos futtatás esetén egy paraméter értéke. Kezdjük az egyszerűbbel:

Terminálos futtatás

Amennyiben a register_argc_argv be van kapcsolva, elérhetővé válik egy fenntartott változó $argv néven, amely tömb (array) típusú. A futtatás közben megadott paramétereket $argv[1], $argv[2], ... stb. néven érjük el. Az $argv[0] mindig a szkript nevét tartalmazza. Emellett egy $argc nevű változó a megadott paraméterek számát tartalmazza:

php -f pelda.php "első paraméter" "második paraméter"

A pelda.php tartalma legyen ez:

---------------------------

<?php

if ($argc != 3) {      //Ha a paraméterek száma nem 3 (szkript neve + 2 paraméter)
        echo 'Pontosan két paraméter szükséges!'; 
        exit;          // Kilép
}
else {                 // Különben...
        $szkript_neve = $argv[0];
        $elso_parameter = $argv[1];
        $masodik_parameter = $argv[2];
        echo "Szkript: $szkript_neve, #1: $elso_parameter, #2 $masodik_parameter";
        exit;
}

?>

---------------------------

 

A megadott paraméterek értékeivel a programunk dolgozni tud az előzőekben tanultak szerint.

Webszerveres futtatás

Lassan megérkezünk az igazán hasznos területhez: a böngészőben való futtatáshoz. Mielőbb belevágnánk, tisztáznunk kell pár fogalmat: a PHP szerver oldali műveleteket végez, tehát a böngészőben a futása eredményeit láthatjuk, nem ott helyben történnek a PHP-t érintő események. Bármennyire modern legyen egy felület (JavaScript, Ajax-os hívások, stb.), a rendszer továbbra is utasítás -> válasz folyamatokra fog építeni. A böngészők a grafikus felület megjelenítéséhez  HTML-t használnak, amelynek van két speciális interaktivitási módszere: a form és a link. A formban található elemek értékei (szövegmezők, gombok, jelölők, listák) alapesetben POST metóduson keresztül kerülnek a szerverre. A linkek paraméterei pedig GET metódust használnak. 

Szerver oldalon ezen két metódusból származó értékeket fogjuk el, és dolgozzuk fel. Erre két speciális változó áll rendelkezésünkre, amelyek típusa asszociatív tömb:

$_POST['formelem']

és 

$_GET['linkparameter']

Lássunk egy példát! Mentsük el "teszt.php" néven, másoljuk a webszerverünk gyökérkönyvtárába, majd hívjuk meg egy böngészőben, pl. így: "http://szerverem.neve/teszt.php"

---------------------------

 

<?php

$valasz = 'Adj meg bármilyen értéket a fenti szövegmezőbe!';
$linkvalasz = 'Még nem kattintottál a linkre!';

if (isset($_POST['hello'])) {
        $valasz = 'Ezt írtad be:' . $_POST['hello'];
}

if (isset($_GET['linkparameter'])) {
        $linkvalasz = 'A link paramétere: '. $_GET['linkparameter'];
}

echo "<!DOCTYPE html>
<html>
<head><title>Teszt</title></head>
<body>
<form method='post' action='teszt.php'>
<label for='hello'>Szöveg:</hello><input id='hello' type='text' name='hello' value=''><input type='submit' name='do_submit' value='Mehet!'>
</form>
<div>$valasz</div>
<div><a href='teszt.php?linkparameter=valami'>Ez egy link, paraméterrel.</a></div>
<div>$linkvalasz</div>
</body>
</html>";

?>

---------------------------

 FIGYELEM! A fenti példa semmilyen ellenőrzést nem végez a megadott adatokon, csak a működési folyamatot mutatja be. A $_POST és a $_GET meglétét isset() függvénnyel ellenőriztük.

Mindig tervezzük meg alaposan a lépéseket, és ne bízzunk meg vakon semmilyen bejövő adatban! Éles tervezésben az egyik legfontosabb művelet a beérkező adatok ellenőrzése és érvényesítése. A legegyszerűbb és legnaivabb a típusok ellenőrzése (ne engedjünk szöveget ott, ahol számot várunk, stb.), a komolyabbak a különböző adatmanipulációs kísérletek kivédésére irányulnak. Ezekről a későbbiekben tanulunk majd.

 

--------------------------------------------------------------

Feladatok

1. Írjunk egy parancssoros szkriptet, amely 2 paramétert fogad, az első a nevünk, a második az életkorunk! Ellenőrizzük az érkező adatokat, és írjuk ki az eredményt!

2. Írjunk egy webszerveren futó szkriptet, amely a fenti feladat szerint működik!

3. Készítsünk egy webes szkriptet, amely egy alap névjegykártya adatait gyűjti be és jeleníti meg! (Név, telefonszám, emailcím, postai cím)

A bejegyzés trackback címe:

https://php-kezdoknek.blog.hu/api/trackback/id/tr27897056

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása