A statikus, HTML nyelvű weblapok forrásszövegébe PHP programrészeket illesztünk. Az Apache-ba integrált PHP értelmező ezeket végrehajtja, melynek eredményeként egy módosított HTML-kód generálódik, és az Apache ezt a weblapot küldi ki a kliens felé.
A PHP program függvényhívásokon keresztül éri el a MySQL szervert, és az adatbázisból lekért adatokkal építheti fel a dinamikus weblapot.
Az Apache webszerver
Telepítés után a gépünk web-szerverként használható. A saját gépre
"localhost"
domain névvel vagy az
127.0.0.1
IP címmel hivatkozhatunk.
Az Apache működésének ellenőrzése:
írjuk be a
http://localhost
a böngészőbe URL-t, akkor az Apache bejelentkezik.
A web szerver dokumentumainak gyökérkönyvtára a
htdocs
, amely az Apache telepítési könyvtárából nyílik. Ha ide helyezünk egy
xxx.php
fájlt, akkor futtatása a böngészőben
http://localhost/xxx.php
URL segítségével történik.
MySQL
Lásd az
Adatbázisok
tárgy tananyagában
A HTML nyelv
HTML (HyperText Markup Language):
Az interneten a World Wide Web információs lapok leírására használt nyelv. „Karakteresen formázott” szövegfájlok leírására alkalmas.
Fájlnév kiterjesztés:
.htm
vagy
.html
Alapvető szintaxis:
• Szóköz csak elválasztásra szolgál (egy szóköz egyenértékű akárhány szóközzel) • Enter hatástalan (csak a forrásszöveg tagolására szolgál) A böngésző automatikusan tördeli sorokra a szöveget az aktuális ablakméret szerint.
Tag (= címke) fogalma
Kezdőcímke:
Zárócímke:
A címkenévben kis- és nagybetű használata egyenértékű. A hibás címkéket figyelmen kívül hagyja a böngésző.
HTML fájl felépítési sémája
lapcím ...
...
TITLE rész:
(Megadása nem kötelező.)
BODY rész:
a böngészőablak fejlécében jelenik meg. a böngészőablakban jelenik meg.
Karakterek formázása - 1
Betűstílusok megadása
(hatásuk a megfelelő zárócímkéig terjed):
bold (félkövér);
italic (dőlt);
underlined (aláhúzott);
teletype, azaz fix szélességű betűtípus.
Példa: Forrásszöveg:
Első, második, harmadik
Megjelenítés:
Első,
második,
harmadik
Karakterek formázása - 2
Betűméret megadása:
1 től 7-ig változhat.
, ahol
i
értéke
Betűk színe:
, ahol „rrggbb” hexadecimális RGB színkód: rr = piros, gg = zöld és bb = kék komponensét kell megadni. Egy komponens intenzitása 0 és 255 között (hexadecimálisan 00-tól FF ig) változhat.
Példa:
piros színt jelent.
Bekezdések formázása - 1
Bekezdés (paragrafus) kezdete:
, hatására a szöveg új sorban folytatódik. Nincs zárócímke, hatása a következő
címkéig terjed.
Igazítás megadása:
igazítás balra; igazítás jobbra;
igazítás középre.
Kényszerített sorváltás:
. A szöveg új sorban folytatódik, de ez nem jelent új bekezdést.
Cím (heading) megadása:
, ahol i értéke 1, 2, ..., 6 lehet.
hez tartozik a legnagyobb betűméret. A cím végét
zárócímke jelzi.
Bekezdések formázása - 2
Felsorolások:
•
unordered list
(rendezetlen lista) •
ordered list
(sorszámozott lista) •
list item
(listaelem). A felsorolás egyes pontjai elé kerülő szimbólumok alakját egy
Ebben a bekezdésben bemutatjuk a különféle betűstílusokat: dőlt, vastag, és fix szélességű betűk.
Ez egy felsorolás:
Első tétel
Második tétel
Harmadik tétel
Ebben a szövegben az ékezetes karakterek biztosan jól fognak megjelenni!
Végül linkek különböző webhelyekre: Ugrás a demo lap elejére, vagy az aktuális könyvtár demo2.htm nevű fájljára, vagy egy igazi weblapra
Táblázat készítése
táblázat kezdete táblázat sorának kezdete
(table row)
táblázat bejegyzés kezdete
(table data)
Példa táblázatra
Sorszám
Megnevezés
1.
Első sor
2.
Második sor
Táblázat megjelenése a képernyőn
A PHP nyelv
Interpretált nyelv.
Szintaxis:
a C nyelvhez hasonló, fontosabb eltérések:
Változók:
$név, kis- és nagybetű különbözőnek számít.
• Változót deklarálni nem kell, típusát az első értékadás határozza meg. • Újabb értékadás a típust megváltoztathatja, például
$x=4; $x="alma";
Alaptípusok:
egész, logikai, string, lebegőpontos szám.
Változó állapota:
isset(változó)
változó definiált, egyébként hamis.
értéke igaz, ha a
Szövegkonstans:
'szöveg' vagy "szöveg". "szöveg" esetén a szövegben szereplő PHP változók kiértékelése megtörténik, 'szöveg' esetén nem! A szövegkonstans több sorra tördelhető.
String megjelenítése:
vagy
echo string; print string;
Stringek konkatenációja
például
’alma’.’fa’
„pont” karakterrel történik,
Logikai műveletek:
and, or, xor, ! (negáció), de használható && (és), || (vagy) is.
Logikai konstansok:
true, false.
Tömbök használata:
például
$x=(10,20,30)
, ekkor
$x[1]
értéke 20.
Egysoros kommentár:
# vagy //
Többsoros kommentár:
/* ... */
HTML be ágyazott PHP
A PHP nyelv kétféleképpen használható:
• Önálló programnyelvként (ezzel nem foglalkozunk).
• Az Apache szerver kiegészítő moduljaként.
Jelemzők:
• A PHP programot a HTML forrásszövegébe írjuk.
• A fájlnév kiterjesztése
.php
• Az Apache a PHP modul segítségével végrehajtja a PHP kódot, annak eredményeként generált weblapot küldi el a klienshez, és a böngésző ezt jeleníti meg. • A PHP kód
és
?>
(vagy
karakterpárok között szerepel.
és
?>
)
Példa PHP kódra
# Ez itt már PHP kód print '
A PHP működik ...
'; for($i=0; $i<6; $i++) { print "PHP! \n"; } ?>
A kigenerált weblap
A PHP működik ...
PHP! PHP! PHP! PHP! PHP! PHP!
A képernyőn megjelenő kép
PHP
-
MySQL kapcsolat
A PHP Windows változata már eleve tartalmazza a MySQL támogatást.
függvény segítségével a "show tables" MySQL parancsot küldjük el a DBMS-hez. Ez egy egyoszlopos eredménytáblát ad vissza, amely az adatbázisban tárolt táblák neveit tartalmazza. $res a lekérdezés eredménye.
A
mysql_fetch_row($res)
a $res tábla következő sorát adja vissza egy stringeket tartalmazó tömb formájában. Ha már nincs több sor, akkor a mysql_fetch_row() FALSE értékkel tér vissza.
2. példa: a kigenerált weblap
Ha az adatbázisunkban csak a Könyv és Olvasó táblák vannak, akkor a PHP kód végrehajtása után a következő HTML kód keletkezik:
Jelenlegi adattáblák: 1. Konyv 2. Olvaso
2. példa: a képernyőn megjelenő kép
Jelenlegi adattáblák: 1. Konyv 2. Olvaso
3. példa: Táblázat
Feladat:
A Könyv(könyvszám, szerző, cím) adattábla tartalmának kiírása weblapra táblázatos formában.
A Könyv tábla tartalma: Könyvszám
2276 1782
Szerző
Karinthy Jókai
Cím
Így írtok ti Aranyember
3. példa: a generálandó weblap
Könyvszám
Szerző
Cím
2276
Karinthy
Így írtok ti
1782
Jókai
Aranyember
3. példa: táblázat generálása
$ID=mysql_connect("localhost","adm","pwd"); mysql_select_db("personal"); print ''; $res=mysql_query("select * from konyv"); $nur=mysql_num_rows($res);
print '
'; print '
'; for ($i=0; $i'.mysql_field_name($res,$i).''; } print '
'; for ($i=1; $i<=$nur; $i++) { $row=mysql_fetch_row($res); print '
'; for ($j=0; $j < count($row); $j++) print "
$row[$j]
"; print '
'; } print '
'; mysql_close($ID); ?>
Magyarázat a 3. példához
• A mysql_num_rows($res) függvény a $res tábla sorainak számát adja vissza.
• A mysql_num_fields($res) függvény a $res tábla oszlopainak számát adja vissza.
• A mysql_fields_name($res, $i) függvény a $res tábla i edik oszlopának nevét adja.
• A count($row) függvény a $row tömb elemeinek számát adja.
3. példa: a képernyőn megjelenő kép
4. példa: Kiválasztó mező
Tegyük fel, hogy a Tábla(mező) adattábla rendre az „Első”, „Második” és „Harmadik” stringeket tartalmazza.
A képernyőn megjelenítendő:
4. példa: a generálandó HTML kód
4. példa: kiválasztó mező generálása
function dbselect($qry,$nam) { $res=mysql_query($qry); $nur=mysql_num_rows($res); if (!$nur) return 'EMPTY'; $out="\n\n"; return $out;