Webprogramozó tanfolyam PHP alapjai
Ismétlő feladat Készítsünk egy html űrlapot (form) Egy felhasználó regsztrációja legyen: Felhasználói név, jelszó, jelszó mégegyszer Férfi vagy nő? Kér-e hírlevelet? Milyen nemzetiségű? /legördülő menü/ Milyen témák érdeklik? Leírás (szövegterület, textarea) E-mail címe Elküldés, törlés gomb A kötelező mezők mellé rakjunk piros * -ot Maga az űrlap legyen viszonlag szépen formázva.
PHP – PHP : Hypertext preprocessor
Mi is az a PHP? A PHP a web programozásánál felmerülő problémák megoldására született. Kb. a C és Perl nyelvek egyszerűsített keverékének tekinthető. Elsősorban dinamikus weboldalak létrehozásánál használatos. Beépített SQL adatbáziskönyvtárat kínál, és több más adatbázisfajtát támogat.
A Php működése Server oldali kód Php interpreter (fordító) Rajz Mi kell ahhoz hogy működjön? <?php phpinfo(); ?>
Mivel fogunk foglalkozni? Kommunikáció a serverrel: $_GET tömb $_POST tömb Tömbök array(), print_r() Függvények time(), mail() Cookie ( sütik ) setcookie(), $_COOKIE tömb
Használata Üdvözlő szöveg elhelyezése Példa Továbbfejlesztve Példa 2
I. Feladat Regisztrációs „rendszer” továbbfejlesztése Html: Ezzel már megvagyunk (előző óra) Php (az eddigiek alapján): Jelszó és jelszó mégegyszer ellenőrzése (különben hiba) A kötelező mezőket töltse ki (különben küldjük vissza) Ne engedje hogy névnek ‘Admin’-t adjunk meg
Portál! Ahhoz hogy együttműködjön a keretünkel, egy kis átalakítás kell. El kell távolítani: <html>,<head>,<body> tag-eket A keretbe pedig be kell ágyazni: include(), include_once() require(), require_once()
Menü Elkészítjük a portálunk menüjét (legalábbis az első változatot). Külön file-ba szintúgy mint a regisztrációt.
Konstrukciók Értékadás Elágazás Ciklus $a = ‘Hello’; If ($a == ‘mas’) { print „valami”; } Ciklus For ($i=0; $i<5; $i++) { print $i; } While ($i<5) { print $i; $i=$i+1; }
Galéria Egy egyszerű megoldás: Példa Egy kicsit szebb (meg talán használhatóbb): Példa 2
II. Feladat Fejlesszük tovább a galériát! A kis képekre kattintva jelenjen meg az eredeti kép (segítség: link)! Megoldás
Egy általános megoldás Itt bármi lehet a képek neve. Direktory megnyitása: $dir=Opendir(); Olvasás: $file=Readdir($dir); Példa
A probléma kiküszöbölése A mappákat nem akarjuk kirakni ugyebár... Is_dir($file_azon) Megmondja nekünk hogy egy direktoryval van-e dolgunk. Ez alapján javítsuk ki a galériát! Megoldás
Portál Ezt is integráljuk a portálunkba! A menüben is tüntessük fel!
III. Feladat Az előbb megismert módon készítsük el a menünket is! Tehát a megtalált file-ok alapján építse fel magát.
Idő A time() függvénnyel lekérdezhetjük az aktuális időt (persze ez a server szerinti idő lesz). Ez valami mágikus számot ad nekünk válaszul, ez a timestamp (időbélyeg). Ami nem más mint 1970 január 1. 00:00 óta eltelt másodpercek száma.
IV. Feladat Készítsünk egy egyszerű (de nem túl szép) órát! Megoldás
Tipp Ismerd a függvényket! És használd a www.php.net keresőjét! Akkor nem fogod ezt elkövetni: http://hu.php.net/manual/hu/function.time.php#80868
Elágazás, mégegyszer if (<feltétel_1>) { <utasítások_1> } elseif (<feltétel_2>) <utasítások_2> . elseif (<feltétel_n>) <utasítások_n> else <utasítások_n+1>
Példa If (isset($_GET[‘oldal’])) { } Elseif (isset($_GET[‘picture’]))
Elágazás máshogy switch (<változó>) { case <érték_1>: <utasítás_1> break; . . . case <érték_n>: <utasítás_n> break; default: <utasítás_n+1> }
Switch példa Switch ($_GET[‘nem’]) { case ‘f’: Ferfi(); break; case ‘n’: No(); break; default: Hiba(); }
Ciklus mégegyszer for (<kezdeti értékadás>; <kilépési feltétel>; <léptetés>) { <utasítások> }
Példa For ($i=1;$i<9;$i++) { print ”<a href=‘./main.php?oldal=”.$i.”’ >”.$i.”. oldal</a>”; }
While ciklus (elöltesztelő ciklus) while (<bennmaradási feltétel>) { <utasítások> }
While példa $i=1; While ($i<9) { print ”<a href=‘./main.php?oldal=”.$i.”’ >”.$i.”. oldal</a>”; $i++; }
Do..while (hátultesztelő ciklus) do { <utasítások> } while (<bennmaradási feltétel>);
Hátultesztelő példa $i=1; do { print ”<a href=‘./main.php?oldal=”.$i.”’ >”.$i.”. oldal</a>”; $i++; } while ($i<10);
Megjelenés, testreszabhatóság Készítsünk legalább két CSS file-t az oldalhoz! Készítsünk egy kis menüt ahol választhat közüllük a felhasználó!
Függvények Ha már ennyit használtuk őket, talán írhatnák mi is néhányat. De hogy is? function <függvény_név> (<paraméterek>) { <kód> return <érték>; }
V. Feladat Alakítsuk át az oldalainkat, használjuk függvényeket az egyszerűsítéshez! Jelszó ellenőrzés Űrlap feldolgozás
Egy jobb megoldás Valahogyan tárolnunk kell a választás eredményét, a GET tömb nem az igazi... Sütik! (cookie) setcookie(<név>,<érték>,<lejárati_idő>); $_COOKIE[<név>]=<érték>;
String kezelő függvények strlen(<string>) -> a string hossza is_string(<változó>) -> string-e a változó substr(<string>,<honnan>,<milyen hosszan>) -> string egy darabja substr(<string>,<honnan>) -> string a honnantól strtoupper(<string>) -> csupa nagybetűssé alakítja strtolower(<string>) -> csupa kisbetűssé alakítja
Tömbök $<változó név>=array(); <tömb>[]=<érték>; count(<tömb>) -> tömb elemszáma end(<tömb>) -> a tömb utolsó eleme print_r(<tömb>) -> kiírja a tömb tartalmát in_array(<érték>,<tömb>) -> megkeresi az értéket a tömbben, vagy false
Levélküldés Mail() függvénnyel lehetséges mail(<hová>,<téma>,<üzenet>,<további paraméterek>) Az üzenet egy sora legfeljebb 70 karakter lehet! \n új sor $uzenet=wordwrap($uzenet,70); //feldarabolja megfelelő méretű sorokra
IV. Feladat A regisztrációs űrlap küldje el a felhasználónak hogy milyen adatokkal regisztrált. Megoldás
Házi feladat Készítsünk levélküldő rendszert! Egy űrlap amiben megadható: Kinek küldünk Mi az üzenet Mi a levél témája Kitől kapja az üzenetet PHP kóddal pedig küldjük is ezt el a címzetthez, de előtt ellenőrizzük hogy megfelelően lett-e kitöltve az űrlap.
PHP típusai Típus Példa Leírás Integer 5 Egész szám Double 3.14 Lebegőpontos szám String "Helló„ Karakterlánc Boolean True Logikai változó Array Tömb Object Objektum