Professional Documents
Culture Documents
Kozmajer - PHP És MySQL Az Alapoktól
Kozmajer - PHP És MySQL Az Alapoktól
PHP s MySQL
az alapoktl
Kozmajer Viktor
PHP s MySQL
az alapoktl
ISBN 978-963-9425-74-3
Kiadja a BBS-INFO Kft.
1630 Budapest, Pf. 21.
Felels kiad: a BBS-INFO Kft. gyvezetje
Nyomdai munk{k: Bir Family nyomda
Felels vezet: Bir Kriszti{n
Tartalomjegyzk
TARTALOMJEGYZK
1. Bevezet ............................................................................ 9
2. APACHE, MySQL, PHP ............................................... 11
2.1. Alapfogalmak ......................................................... 11
2.2. Szerveroldali szkriptek s mkdsk ............... 13
2.3. Az APACHE2TRIAD teleptse ........................... 15
3. A PHP program szerkezete .......................................... 19
3.1. Els PHP programunk .......................................... 20
3.2. PHP kd blokkjainak kijellsre szolg{l
elemek ..................................................................... 22
4. Fggvnyek .................................................................... 23
4.1. A print fggvny ................................................... 23
4.2. A date fggvny..................................................... 26
4.3. Matematikai fggvnyek ...................................... 27
5. V{ltozk .......................................................................... 30
5.1. V{ltoz tpus{nak lekrdezse a
gettype() fggvny ................................................ 34
5.2. V{ltoz tpus{nak mdost{sa
a settype() fggvny .............................................. 37
6. Oper{torok s kifejezsek PHP-ben .......................... 39
7. Vezrlsi szerkezetek ................................................... 46
7.1. El{gaz{s Az IF utast{s ...................................... 46
Tartalomjegyzk
Bevezet
1. Bevezet
Ez a zsebknyv aj{nlott mindazok sz{m{ra,
akik m{r rendelkeznek minim{lis ismeretekkel a
HTML nyelvvel kapcsolatban, megtanult{k a weboldalszerkeszts alapjait, de szeretnnek tov{bb
lpni, a dinamikus weblapok ir{ny{ba. Szintn
hasznos lehet azon olvasknak is, akik m{r megismerkedtek m{s programnyelvekkel s most betekintst szeretnnek nyerni, hogyan is mkdik
mindez webes krnyezetben. Sz{mukra (is) a legide{lisabb v{laszt{s a vil{g egyik legkedveltebb
webprogramozi nyelve, a PHP s a szintn elterjedt MySQL webes adatb{zis-kezel rendszer,
melynek sz{mos elnye van. Segtsgkkel professzion{lis honlapokat programozhatunk le, szszekthetjk ket az {ltalunk ksztett, webes
adatb{zisokkal, amelyeket a vil{gon b{rhonnan
elrhetnk az internet segtsgvel. Weboldalainkat dinamikuss{ tve, ak{r m{sodpercenknt frissl inform{cikkal l{thatjuk el, az adatok felvtelt, mdost{s{t s trlst elvgezhetjk p{r
10
11
Alapfogalmak
12
13
2.2.
Szerveroldali szkriptek
s mkdsk
14
2.3.
15
Az APACHE2TRIAD teleptse
16
17
18
19
3. A PHP program
szerkezete
Egy PHP program nem m{s, mint szokv{nyos
HTML kd, melybe a PHP kd a <?php s a ?>
jelek kz kerl. Tbbsoros kd esetn a sorok
vgre pontosvesszt kell tennnk, ezzel z{rjuk
PHP-ben a parancsokat.
Figyelem! A tapasztalat szerint ezeknek a
pontosvesszknek a lefelejtse az egyik leggyakoribb kdol{si hiba. Szintaktikailag hib{s kd
esetn a PHP rtelmez hibazenetet jelent meg a
kpernyn, rtelemzavar hiba esetn a tov{bbi
vgrehajt{st befejezi. Nagy segtsg, hogy a
hibazenetben az rtelmez kirja a hiba helyt is.
A PHP rtelmez program az al{bbi szab{lyokat veszi figyelembe a PHP kd rtelmezse
kzben:
Ha HTML kdot tal{l, azt v{ltoztat{s
nlkl {tm{solja az eredmny oldalra.
20
3.1.
21
<html>
<head>
<title>Els PHP programunk</title>
</head>
<body>
print (Hell vilg!);
</body>
</html>
2. Ez esetben m{r kijelljk a PHP blokkot a
kvetkez t{bl{zatban l{that hagyom{nyos <?php
?> jellssel. Ekkor a PHP feldolgoz szleli, hogy
mi a print fggvnyt haszn{ljuk a blokkban s e
szerint vgre is hajtja a parancsot. Bngsznkben
m{r csak a Hell vil{g! szveg jelenik meg:
<html>
<head>
<title>Els PHP programunk</title>
</head>
<body>
<?php
print (Hell vilg!);
?>
</body>
</html>
22
3.2.
PHP kd blokkjainak
kijellsre szolgl elemek
Elnevezs
Kezd elem
Z{r elem
<?php
?>
Rvid
<?
?>
ASP stlus
<%
%>
Hagyom{nyos
23
4. Fggvnyek
A fggvnyek olyan parancsok, amelyek
valamilyen mveletet vgeznek, tbbnyire attl
fggen, hogy milyen adatokat kapnak. A
fggvnynek {tadott adatokat mindig z{rjelbe
kell tennnk a fggvny neve ut{n. Esetenknt ezt
elhagyhatjuk. A PHP-ban tbb sz{z beptett
fggvnyt tudunk meghvni, ezek teljes list{j{t
(valamint
ler{s{t
s
haszn{lat{t)
a
http://www.php.net oldalon tal{lhatjuk meg. Ezek
sokszor kiegszlnek, jabb fggvnyeket rnak a
m{r meglvk mell. A kvetkezkben megnznk a beptett fggvnyek kzl nh{nyat
(amelyet a ksbbi pldaprogramokban, forr{skdokban is bemutatunk) a jobb megrts rdekben.
4.1.
A print fggvny
24
Fggvnyek
25
b.,
<html>
<head>
<title>A print fggvny</title>
</head>
<?php
print '<body>';
print ('valami');
print '</body>';
?>
</html>
L{that, hogy HTML kd beptse a PHP
oldalakba
egyszeren
HTML
tartalom
begpelsbl {ll. A PHP feldolgoz figyelmen
kvl hagy mindent a PHP nyit s z{r elemeken
kvl. Egy dokumentumban a HTML elemek kz
tetszleges sz{m PHP kdblokk rhat. A fenti
plda mindkt esetben a valami szt rja ki a
bngsz ablak{ba, csup{n annyi a klnbsg,
hogy a 2. esetben a <body> s </body> tag-eket a
print fggvnnyel rattuk ki.
B{r tbb kdblokkot helyezhetnk el egy
dokumentumon bell, ezek egyttesen alkotnak
egy programot. B{rmi, amit egy megelz
blokkban hat{roztunk meg (v{ltozk, fggvnyek
vagy oszt{lyok), a dokumentumon bell elrhet
lesz a ksbbi blokkban is.
26
A tbb egyttmkd, sszessgben egy nagyobb programot megvalst PHP f{jlt nevezzk
PHP alkalmaz{snak.
4.2.
A date fggvny
Fggvnyek
27
4.3.
Matematikai fggvnyek
Most pedig nzznk nh{ny beptett matematikai fggvnyt. Ezek mindegyikt nem biztos,
hogy haszn{ljuk majd a ksbbi fejezetekben,
viszont hasznosak lehetnek a tov{bbiakban egyes
felhaszn{lk sz{m{ra.
28
a. pi ()
A pi rtkt adja vissza 13 sz{mjegy pontoss{ggal.
A fggvny eredmnye: 3,1415<
b. sqrt ($szam)
A $szam v{ltozban (bvebben: kvetkez
fejezet) elt{rolt sz{mnak adja vissza a ngyzetgykt.
Pl.: sqrt (64)
A fggvny eredmnye: 8
c. abs (sz{m)
Egy sz{m (ez lehet egsz vagy lebegpontos) 0tl val t{vols{g{t adja vissza (vagyis az
abszolt rtkt).
Pl.: abs (-34.56)
A fggvny eredmnye: 34.56
Mint azt m{r a Fggvnyek fejezet bevezetjben is rtuk, a PHP nyelvben megtal{lhat
fggvnyek teljes list{ja, ler{sa, bemutat{sa s
szintaktik{ja megtal{lhat a http://www.php.net
weboldalon.
Fontos mg megemlteni, hogy ugyanitt
megtal{lhatjuk a v{ltozk, konstansok, oper{torok,
el{gaz{sok, ciklusok stb. list{j{t PHP-ben, egy
teljes kr ismertetkkel a nyelv referencia
oldal{n:
Fggvnyek
29
http://www.php.net/manual/en/langref.php
A fenti weboldalon minden szksges inform{cit megtal{lhatunk a PHP teljes kr megismershez, gy annak, aki a jvben komolyabban el
akar mlylni eme programoz{si nyelv rejtelmeiben, aj{nlatos {tnzni s tanulm{nyozni ezen rszletes referenci{kat (csak rdekessg szintjn hoztuk
most fel a PHP hivatalos honlapj{t, a kvetkez
fejezeteknl nem fogunk mindig kln kitrni erre
a weboldalra, de m{r az elejn fontosnak tartottuk
ezt megemlteni.)
Vltozk
30
5. Vltozk
A v{ltoz nvvel ell{tott memriaterlet a
webszerver memri{j{ban. Ezekben adatokat
t{rolunk, mellyel a PHP programunkban
mveleteket vgezhetnk. Jellse: $v{ltoz neve.
A v{ltozknak van neve, tpusa s rtke. A
v{ltoz nevnek megad{sakor figyeljnk arra,
hogy a PHP megklnbzteti a kis s nagybetket!
Pl.: a $szam nem ugyanaz, mint a $Szam!
A nv megad{sakor figyeljnk arra is, hogy ne
haszn{ljunk kezetes betket. Ezenkvl nem
tartalmazhat mg szkzt, valamint speci{lis karaktereket sem. Haszn{lhatjuk viszont az angol abc
betit, az al{hz{s _ karaktert s a sz{mokat is.
Figyelem! A v{ltozk nevnek megad{sakor
figyeljnk arra is, hogy a nv beszdes s
lehetleg rvid legyen. Ez azrt fontos, mert ha a
program r{sa sor{n vagy a ksbbiekben
haszn{lni akarjuk a v{ltozt, akkor gy a nevrl
Vltozk
31
32
Vltozk
33
34
5.1.
Vltozk
35
36
Vltozk
5.2.
37
38
ha
39
6. Opertorok s
kifejezsek PHP-ben
Miut{n megismerkedtnk a v{ltozk deklar{l{s{val s tpusaival, nzzk meg, milyen mveleteket tudunk velk vgezni. Ahhoz, hogy mveleteket (legyen az aritmetikai vagy m{s) vgezhessnk
PHP-ban, m{s programoz{si nyelvekhez hasonlan itt is szksgnk lesz az oper{torok haszn{lat{ra. Mieltt azonban belemlylnnk, nzzk meg
mi is az az oper{tor:
Az oper{tor jel, az operandusok kztt helyezkedik el: pl.: 12 + 32. Ebben az esetben az szszead{s + jel az oper{tor, a 12 s a 32 pedig az
operandusok. Ez a 3 alkotelem gy egy kifejezst
alkot. [ltal{ban az oper{tor jelet mindkt oldalrl
egy operandus z{rja be, persze vannak kivtelek:
++i, --i (l{sd a Vezrlsi szerkezeteknl!).
Az elz fejezetekben m{r haszn{ltunnk is egy
oper{tort a v{ltozk deklar{l{s{n{l, ez pedig az
40
<?php
$szoveg1 = "Hell ";
sz utn raktunk egy szkzt is!!!
$szoveg2 = "vilg!";
print ($szoveg1.$szoveg2);
?>
41
//a Hell
Ha ezt a kettt sszefzzk s kiratjuk a kpernyre, akkor azt kapjuk, hogy Hell vil{g!
sszetett rtkad oper{torok: Ezek lnyeg,
hogy kt oper{tort kapcsolhatunk velk ssze.
Mindegyik ilyen oper{tornak kt alakja van. A
rvidebbeket elg gyakran haszn{lj{k PHP-ben,
mivel egyszerbben rhatunk le velk egy-egy
kifejezst, s ezzel idt sprolhatunk a gpelskor s persze kevesebb karaktert kell felhaszn{lnunk hozz{juk. Persze haszn{lhatjuk a hoszszabb alakot is, az eredmny mindkt esetben
ugyanaz lesz. Mindez a kezdk sz{m{ra kicsit
bonyolult lehet, de nem kell aggdni, knnyen
megszokja az ember ezeket a rvidtett form{kat is:
42
Hagyom{nyos forma
Rvidtett forma
$a = $a + 3
$a += 3
$a = $a - 3
$a -= 3
$a = $a * 3
$a *= 3
$a = $a / 3
$a /= 3
$a = $a % 3
$a %= 3
$a = $a . egy szveg.
$a .= egy szveg.
Oper{tor
Megnevezs
Igaz, ha:
43
Plda
egyenl
A bal oldal
egyenl a jobb
oldallal.
$a = = 12
===
azonos
A kt oldal
nemcsak rtk
szerint, hanem
tpus{t tekintve
is megegyezik.
$a = = = 12
!=
nem
egyenl
A bal s a jobb
oldal nem
egyenl.
$a ! = 12
!==
nem
azonos
A bal s a jobb
oldal nem azonos.
$a ! = = 12
>
nagyobb,
mint
$a > 12
<
kisebb,
mint
$a < 12
>=
nagyobb
egyenl
$a > = 12
==
44
<=
kisebb
egyenl
$a < = 12
Ezekkel az oper{torokkal sokszor fogunk tal{lkozni mg programjaink sor{n, klnsen, ha el{gaz{st vagy pld{ul ciklust ksztnk.
Logikai oper{torok: Ezen oper{torok is fontos
szerepet tltenek be a PHP programoz{sban.
Segtsgkkel kp operandust vagy kt sszehasonlt felttel {ltal keletkezett logikai rtket
hasonlthatunk ssze (ezek ismersek lehetnek
a Boole-algebr{bl):
Oper{tor
Megnevezs
Igaz, ha:
Plda
And
Mind $a mind
$b igaz.
$a and $b
Or
vagy
$a s $b kztt
van igaz.
$a or $b
Xor
kiz{r
vagy
$a s $b kzl
pontosan egy
igaz.
$a xor $b
tagad{s
$a nem igaz.
! $a
45
&&
Mind $a mind
$b igaz.
$a && $b
||
vagy
$a s $b kztt
van igaz.
$a | | $b
Ezek a felsorolt csoportok a legfontosabb oper{torok, amelyeket haszn{lni fogunk programjainkban. A pld{kban is sokszor fel fognak tnni (pl.: a
kvetkez fejezetben) s felttlenl fontos, hogy
megrtsk ezek haszn{lat{t, mert jform{n semmire sem megynk a PHP-val, ha ezeket nem ismerjk.
Vezrlsi szerkezetek
46
7. Vezrlsi szerkezetek
Ez az anyagrsz a kezdk sz{m{ra kicsit bonyolult lehet, {m akik m{r haszn{lt{k a vezrlsi szerkezeteket m{s programoz{si nyelvekben, azoknak
knnyebben rthetik meg ezeket a PHP-n bell.
Mindenesetre jl rthet pld{kon keresztl fogjuk
bemutatni ket, mivel ezek is ltfontoss{gak lehetnek a ksbbi, sszetettebb programok ksztse
sor{n.
7.1.
Elgazs Az IF utasts
47
Az IF utast{s szintaktik{ja:
if ($t>100)
{ igaz g kezdete
else
{ hamis g kezdete
Az IF kulcssz ut{n megadjuk a vizsg{lni kv{nt v{ltozt s a felttelt (a fenti pld{ban $t>10).
Ha a felttel igaz, akkor az igaz, {g, ha hamis, akkor a hamis {g fog vgrehajtdni.
Fontos! Az rtk ad{s = jellel, a vizsg{lat = = jelekkel trtnik (mint pld{ul a C#-ban).
a., Az IF szerkezete ettl eltr is lehet, pld{ul
megadhatjuk, hogy a program csak akkor hajtson
vgre valamilyen mveletet, ha a felttel igaz (vagyis nem adunk meg hamis {gat):
if ($t>100)
{
print (A $t nagyobb, mint szz.);
}
Vezrlsi szerkezetek
48
Vezrlsi szerkezetek
49
50
Vezrlsi szerkezetek
51
if ($szam1>0)
/*Ez az egymsba gyazott elgazs
jelen esetben szksges, mert, ha a
program az ELSE gba tereldik, akkor nem osztaht a szm 2-vel. Ebben
az esetben viszont mg egy elgazssal ettl fggetlenl meg kell nznnk, hogy a 2-vel nem oszthat
szm negatv, vagy pozitv-e.*/
{
print ("A $szam1 nagyobb, mint nulla, viszont nem oszthat kettvel!");
}
else
{
print ("A $szam1 kisebb, mint nulla, s
nem oszthat kettvel!");
}
}
print ("<br />");
if ($szam2>0 and $szam2%2==0) //Most a
$szam2 vltozt vizsgljuk meg ugyangy!
{
print ("A $szam2 nagyobb, mint nulla s
oszthat kettvel!"); //Ebben az esetben az IGAZ g hajtdik vgre.
}
elseif ($szam2<0 and $szam2%2==0)
{
52
}
else
{
if ($szam2>0)
{
print ("A $szam3 nagyobb, mint nulla,
viszont nem oszthat kettvel!");
}
else
{
print ("A $szam3 kisebb, mint nulla, s
nem oszthat kettvel!");
}
}
print ("<br />");
if ($szam3>0 and $szam3%2==0) //A
$szam3 vltoz mr negatv szm, emellett oszthat 2-vel, gy az ELSEIF g hajtdik majd vgre!
{
print ("A $szam3 nagyobb, mint nulla s
oszthat kettvel!");
}
elseif ($szam3<0 and $szam3%2==0)
{
print ("A $szam3 kisebb, mint nulla, s
oszthat kettvel!");
}
Vezrlsi szerkezetek
?>
53
else
{
if ($szam3>0)
{
print ("A $szam3 nagyobb, mint nulla,
viszont nem oszthat kettvel!");
}
else
{
print ("A $szam3 kisebb, mint nulla, s
nem oszthat kettvel!");
}
}
54
7.2.
SWITCH szerkezet
Szintaktik{ja PHP-ben:
switch ($nap) { //Zrjelben a vltoz, amit
vizsglni akarunk.
case 0: print(Ma vasrnap van.); break;
case 1: print(Ma htf van.); break;
case 2: print(Ma kedd van.); break;
.
.
.
default: print(Nem tudom milyen nap
van!); //egy default gat is megadhatunk.
}
A switch utast{s segtsgvel tbbir{ny
el{gaz{st hozhatunk ltre. Az utast{s ut{n
z{rjelek kztt megadott v{ltoz rtke alapj{n
{gaztatunk el. Kapcsos z{rjelek kztt jn az
el{gaz{s kifejtse. Egyes {gakat a case paranccsal
rhatjuk le, mely ut{n jn az rtk (pl.: case 0:). Ha
a case kulcssz ut{n nem sz{mot, hanem szveget
vizsg{lunk, akkor azt termszetesen idz jelek
kz kell tennnk! A kettspont ut{n kifejtjk { }
jelek kztt (nem ktelez kirakni, anlkl is
mkdik), hogy mit csin{ljon adott rtk ut{n.
Fontos! Minden {gat break-kel z{runk le
(klnben, ha kimarad az el{gaz{s {gai tlcsor-
Vezrlsi szerkezetek
55
56
Vezrlsi szerkezetek
57
Ciklusok
58
8. CIKLUSOK
A ciklusok haszn{lata esetn egy vagy tbb
utast{s jra s jra vgrehajtdik. A ciklus egy
utast{sblokk tbbszri vgrehajt{s{ra alkalmazott
programozi eszkz. A PHP m{s programoz{si
nyelvekhez hasonlan lehetv teszi mind az
elltesztels, mind a h{tultesztels, mind pedig a
nvekmnyes (m{s nven sz{ml{l) ciklusok
haszn{lat{t.
Ahhoz, hogy megrtsk a pldaprogramokat
tiszt{ban kell lennnk az inkrement{l s
dekrement{l oper{torok szerepvel s jellsvel:
Inkrement{l mvelet, inkrement{l oper{tor:
Nveljk a v{ltoz rtkt 1-gyel.
$i++ $i=$i+1
Dekrement{l mvelet, dekrement{l oper{tor:
Cskkentjk a v{ltoz rtkt 1-gyel.
$i- - $i=$i-1
Ciklusok
8.1.
59
A WHILE() ciklus
60
Ciklusok
61
10-zel. A ciklusmagban egy print () fggvny segtsgvel kirattuk a $i aktu{lis rtkt, majd ezut{n beszrtunk egy inkrement{l oper{tort, amely
segtsgvel az $i rtkt minden kirat{s ut{n
eggyel nveltk ($i++). Ezek ut{n a ciklus az j
rtkre vonatkozan is megvizsg{lta a vgfelttelt,
s ha az igaznak bizonyult jra s jra vgrehajtotta a ciklusmagban lv utast{sblokkot. A ciklus
akkor fejezdtt be, amikor a $i rtke a 10-et. L{thatjuk, hogy ez nem volt nagy rdngssg, de a
kvetkezkben bonyoldnak a ciklusok.
8.2.
A DOWHILE() ciklus
62
?>
{
print ("$i <br />");
//A ciklusmagban
lv utaststmb mindenflekppen lefut
egyszer!
$i++;
}
while ($i<=10) //A ciklus vgn tallhat
a vgfelttel
Ciklusok
8.3.
63
A FOR() ciklus
64
Ciklusok
8.4.
65
66
{
$s=$i*$j;
//Deklarljuk az 's'
vltoz, ami a szorzs eredmnye
print("<td>$s</td>");
//A bels
ciklus felel azrt is, hogy a szorzs eredmnye megjelenjen a kpernyn.
}
print("</tr>");
}
?>
</table>
<!-- Lezrjuk a tblzatot a PHP kdblokk utn.-->
A vgeredmnynk egy 10 oszlop szles s 10
sor magas t{bl{zat lesz, amely tartalmazza az 1-es
szorzt{bl{tl a 10-esig az sszes szorzat eredmnyt, melyet knnyedn leolvashatunk a t{bl{zatrl.
Els r{nzsre nehznek tnnek a ciklusok, legfkppen a legutbbi pld{ban, de megfelel szint gyakorl{s mellett gyerekj{tk lesz a haszn{latuk!
A kvetkez fejezetben m{r a dinamikusabb
PHP oldalak fel kacsingatunk. Megismerkednk
az rlapokkal s megtanuljunk, hogyan is kell ket
elkszteni, s mi mindenre is tudjuk haszn{lni!
Ciklusok
67
rlapok
68
9. rlapok
A PHP-ben tal{n az egyik legfontosabb szerepe
az rlapoknak van. Ezek segtsgvel tudjuk igaz{n dinamikuss{ tenni weboldalainkat az{ltal,
hogy admin felletet kialaktva tudjuk tartalommal
feltlteni oldalainkat. Ezek segtsgvel krhetnk
be adatot a felhaszn{lktl, amikkel PHP programunk dolgozni, fog. Az adminpanel segtsgvel
felvehetnk, mdosthatunk, trlhetnk tartalmat
oldalainkrl, anlkl, hogy HTML-t szerkesztennk. Ezek kialakt{sa termszetesen nem kis idt
vesz ignybe, azonban a ksbbiekben az erre
sz{nt id tbbszrst sprolhatjuk meg, s knyelmesebben szerkeszthetjk honlapunkat, ahonnan csak akarjuk, weblapszerkeszt program haszn{lata nlkl!
De ne rohanjunk ennyire elre, elszr is nzzk mik is az rlapok elemei s hogyan is kell felpteni egy rlapot!
rlapok
69
rlapok
9.1.
70
rlap elemek:
1. Text Filed
Tulajdons{gai:
a. Char width (karakter szlessg)
b. Max chars (h{ny karakter befogad{s{ra
alkalmas)
c. Type (Single line, Multi line, Password)
Single line: egysoros beviteli mez.
Multiline: tbbsoros beviteli mez. Meglehet
adni a sorok sz{m{t (Num lines) s a hossz
sorok trdelst (Wrap).
Password: jelszbevitelre haszn{lhat (a
bert szveget * csillag karakterrel rejti el).
d. Initial value (Init val): Alaprtelmezett rtk,
megjelenskor mi legyen benne.
e. Name: PHP szempontj{bl az egyik
legfontosabb
tulajdons{g,
mivel
a
feldolgoz{skor a nvvel tudunk hivatkozni a
mez rtkre (a benne lv adathoz
rdemes t{rstani a textfield nevt).
71
a. Name
b. Checked value: feldolgoz{sn{l ez jelzi, hogy
igaz az rtke
c. Initial state: kezd {llapot:
-
Checked: pip{s
Unchecked:
kipip{lva
alaprtelmezsknt
nincs
72
6. List / Men:
submit: feldolgoz
rlapok
9.2.
73
74
rlapok
75
76
77
1., Az elz lps azrt volt 0., mert mieltt elkezdjk a munk{t fontos a tervezs (gy lesz ez majd
akkor is, ha adatb{zist terveznk s ksztnk).
Most l{ssunk hozz{ a tnyleges ksztshez! A
Dreamweaver-ben ksztsnk egy j PHP oldalt:
File New Dinamic page PHP. Mentsk el
index.php nven (persze nem ktelez ez a nv, de
a pld{ban gy fogunk r{ hivatkozni). Az oldalunk
amibe most az rlapot csin{lni fogjuk nem tartalmaz PHP blokkot. Fontos viszont, hogy az rlap
feldolgoz{s{hoz szksges Form belsejbe tegyk
az rlap elemeit, gy els lpsknt szrjuk ezt be
ikonj{ra kattintva (A
az eszkzt{r Form
Dremweaver design nzetben a Form hat{r{t egy
szaggatott piros vonal jelzi, l{sd: a kpen)! A title
TAG-et s a fenti szvegeket n rgtn a ments
ut{n begpeltk, de ezek sz{munkra nem fontosak,
csak azrt vannak feltntetve, hogy l{ssuk mit is
ksztnk. Miut{n elhelyeztk a Form-ot az olda-
78
79
80
b.
81
82
fontos, pl.: bet{rsthatn{nk az egyes krzetsz{mokhoz a mobilszolg{ltat nevt, de ez most neknk nem kell). A mobilsz{m m{sodik felt egy
sima Text Field-el krjk be, ebben nincs semmi
klns, csak azt kell megadni, hogy a mobilsz{m
max 7 karakter legyen (mivel jelenleg a mobilsz{mok ht sz{mjegybl {llnak). me a be{llt{sok:
83
f.
Regisztr{lok! gomb: Mint az rlapok
elemeinek ler{s{n{l tiszt{ztuk, hogy a Button
elemmel tudunk arra a feldolgoz oldalra lpni,
amelyet a Form-unk action TAG-jbe be{lltottunk
(Esetnkben ez a regisztracio.php). A gomboknak
alapbl Submit (Feldolgoz) a neve, ezen nem v{ltoztattunk. A Value mezbe bert szveg fog a
gombon megjelenni feliratknt. Az Action checkbox-okn{l bejellhetjk, hogy milyen feladatot vgezzen a gomb:
Submit form a feldolgoz oldalra ugrik,
Reset form kirti az rlapot (minden trl a
mezkbl, mintha egy j rlapot krtnk volna),
None nem csin{l semmit.
Ezzel {t is vettk azon rlap elemeket, amelyeket a pldaprogramba beillesztettnk. Most nzzk
a feldolgoz oldal felptst!
4., A feldolgoz oldal (regisztracio.php) elksztse.
Az elz pontokban elksztettk az index.php-t,
ami egy komplett rlap, amelyet kitltve a feldolgoz oldalra, a regisztracio.php-ra ugrik a program. Most ezt az oldalt ksztjk el. Ebben m{r
szerepel PHP blokk, viszont rlap elem nem.
84
85
if ($neme= =1)
//A nem kiratshoz mr
szksgnk lesz egy IF elgazsra.
{ //Ha a N Radio Button van bejellve,
akkor annak rtke 1 lesz a feldolgoz oldalon.
print ("N<br />"); //Teht,
ha
a
$neme vltoz rtke 1, akkor azt rja ki, hogy N,
ha nem akkor azt, hogy Frfi.
}
else
{
print ("Frfi<br />");
}
print ("Felhasznl neve: $user<br />");
print ("Jelszava: $pass<br />");
//Itt a jelsz mr lthat lesz!
print ("Mobilszm: +36 $mobil1 $mobil2
<br />");
//A telefonszmot ratjuk ki. Elbb jn a krzetszm, aztn a htjegy mobilszm.
if ($auto= =1)
//A kt Checkbox feldolgozsa is IF elgazssal
trtnik, akrcsak a Radio Button-ok esetben.
{
print ("Igen, van autm.<br />");
}
else
//Ha nem jelltk be a Checkbox-t,
akkor a hamis g fut le.
{
print ("Nem, nincs autm.<br />");
}
86
87
88
89
90
http://localhost/oktatoanyag/urlap2/eredmeny.php
?aszam=4&bszam=6&Submit=Kisz%E1mol%21
A fenti paramterekben az aszam az oldalt takarja, a bszam a b oldalt a Submit pedig a gombra
utal. Fontos megemlteni, hogy a GET-tel trtn
paramter {tad{sn{l az oldal neve ut{n krdjel
jelzi, hogy paramterek kvetkeznek, majd ezeket
felsoroljuk & jellel elv{lasztva. Pld{ul:
http://www.domainnev.hu/oldalneve.php?parame
ter1=0¶meter2=43¶meter3=7
Szrjunk be egy t{bl{zatot a rendezettebb megjelens rdekben, ebben helyezzk el majd a szvegeket s rlap elemeket a kvetkezkppen:
91
92
93
A PHP blokkon kvl szrjunk mg be egy linket, ami az index.php-ra vezet, hogy ha valaki
hib{s sz{mot rt be vagy jra akar sz{moltatni valamit, vissza tudjon lpni!
<p><a href="index.php">Vissza az oldalak megadshoz</a></p>
Amennyiben mindent jl csin{ltunk, akkor a
kvetkezkpen fog mkdni a programunk:
1. Els lpsben berjuk a kt rtket a kt beviteli mezbe:
94
95
SQL adatbzisok
96
SQL adatbzisok
97
98
SQL adatbzisok
99
FK: Foreign
Key (idegen
kulcs)
100
FROM
sor;
101
102
sz{m, szveg s d{tumform{tumoknak s a lefoglalt t{rhely mrete is klnbzik. Most nzzk meg
mely adattpusok sz{munkra legfontosabbak az
adatb{zis-kezelshez. Ezek egy rszt a kvetkez
t{bl{zatban bemutatjuk,, a tbbit megtal{lhatjuk az
interneten a MySQL referencia-knyvben. Akit
rszletesebben rdekelnek ezek, l{togasson el a
http://www.php.net,
illetve
a
http://www.mysql.com oldalra, ahol a teljes lista
megtal{lhat!
T[RHELY
ADATTPUS
ADATTPUS
IGNYE
JELLEMZI
Numerikus adattpusok
bigint
smallint
(eljellel)
smallint
(eljel nlkl)
8 b{jt
2 b{jt
2 b{jt
A legnagyobb egsz
tpus (t{rolhat rtktartom{ny ~ 1019- 1019, eljel nlkl 01020-ig).
- 32 768 s 32 767
kztti egsz sz{mok.
0 s 65 535 kztti
egsz sz{mok.
PHP MyAdmin
tinyint
(eljellel)
tinyint
(eljel
nlkl)
103
1 b{jt
1 b{jt
int, integer
4 b{jt
decimal
pontoss{g
+ 2 b{jt
Szveges adattpusok
char
1 - 255
varchar
1 - 255
b{jt
Rgztett hosszs{g
szveges mez. Akkor haszn{ljuk legink{bb, mikor egy karaktert szeretnnk
t{rolni.
V{ltoz hosszs{g
szveg t{rol{s{ra
alkalmas (maxim{lis
hossza 255 karakter
lehet). Akkor haszn{ljuk, mikor az attribtum rtknek hossza
v{ltoz (ugyanis ez az
104
text
0- 65 535
b{jt
Dtum adattpusok
date
3 b{jt
A Gergely-napt{r
szerinti d{tumok
t{rol{s{ra alkalmas. A
t{rolhat rtktartom{ny 1000. janu{r 1.
9999. december 31.
kztt van.
PHP MyAdmin
datetime
105
8 b{jt
time
3 b{jt
year
1 b{jt
Form{tuma: HH-NN
Pl.: 2010-12-08
A Gergely-napt{r
szerinti d{tumok s
idpontok t{rol{s{ra
alkalmas. A t{rolhat
rtktartom{ny 1000.
janu{r 1. 00:00:00
9999. december 31.
23:59:59 kztt van.
Form{tuma: HH-NN :PP:MM
Pl.: 2011-02-14
22:14:00
Idpont t{rol{s{ra
szolg{l jfl s jfl
1 m{sodperc kztt
Form{tuma:
:PP:MM
Pl.: 14:03:13
A Gergely napt{r
szerinti veket t{rolhatunk benne 1900 s
2155 kztt.
106
PHP MyAdmin
107
108
kszteni, amely gy a Ltrehoz gombra val kattint{ssal el is kszl. A pld{n az egybevetst m{r
be{lltottuk latin2_hungarian_ci-re. Ez azrt fontos, hogy kezetes betket is tudjunk haszn{lni.
[m ennyi nem biztos, hogy elg is lesz. Ha a szervernkn nincs megfelelen be{lltva a karakterkdol{s, akkor knnyen ?-et kaphatunk vissza
pld{ul az s betk helyett. Sajnos az ingyenes
t{rhelyeken ez elg sokszor elfordul (persze nem
mindenhol), de erre is nznk ksbb egy kis praktik{t! Ha begpeltk a nevet s ltrehoztunk egy j
adatb{zist, akkor a bal oldalt l{that Adatb{zis
felirat alatt lv lenyl list{n tudjuk kiv{lasztani
az elksztett adatb{zist, hogy abba adatt{bl{kat
kszthessnk. Meg kell jegyezni, ha ingyenes t{rhelyen szeretnnk adatb{zist kezelni, azt {ltal{ban
elbb aktiv{lni kell az adott szolg{ltat honlapj{n.
Ezek ut{n hozhatunk ltre j t{bl{kat. Adatb{zisbl csak egyet kezelhetnk ekkor (ami {ltal{ban
ugyanazt a nevet viseli, mint az ingyenes t{rhelynk domain neve, amit mi adtunk meg). Ez kicsit
zavar lehet, fleg, ha sok adatt{bl{t akarunk
haszn{lni, de ugye az ingyenessgnek is {ra van<
Ezek a kezd lpsek j adatb{zis ltrehoz{sakor. A kvetkezkben egy pld{n keresztl ksztnk egy adatb{zist, megtanulunk t{bl{t ltrehozni, be{lltani a mezk attribtumait, majd rekordokat feltlteni. Fontos, hogy a plda szerint ksztsk el az adatb{zist, mert erre alapozva a ksbbi-
PHP MyAdmin
109
110
PHP MyAdmin
111
4., Miut{n
elkszltnk, a
phpMyAdmin
bal feln, az
Adatb{zisn{l
kiv{laszt{sra kerlt a peldafeladat adatb{zis s
alatta megjelent a nyilvantartas t{bla linkje (bal
112
A Beszr flre kattintva tudunk rekordot beszrni a phpMyAdmin-on keresztl. A tbbi fl,
ami neknk fontos lehet:
Tartalom: a kiv{lasztott t{bla tartalm{t mutatja
(vagyis a rekordokat list{zza ki)
Struktra: az adott t{bla felptst mutatja (a
3. pont alj{n l{that {br{hoz hasonlan)
SQL: szveges SQL parancsokat tudunk ide
begpelni s lefuttatni, mintha csak a konzol felletet haszn{ln{nk.
Keress: megadhatunk keressi feltteleket ak{r
meznknt is, ha az adatt{bl{n bell keresnk
valamilyen rekordot.
Export, Import: adatb{zismentst (DUMP-ol{st)
tudunk vgezni az elsvel, a m{sodikkal adatb{zist beimport{lni DUMP f{jl segtsgvel
(ezekrl ksbb)
Tevkenysgek: t{bl{kat helyezhetnk, m{solhatunk {t egyik adatb{zisbl a m{sikba, ellenrizhetjk, javthatjuk a t{bl{kat stb.
Kirt: kirti az adatt{bl{t (kitrli a rekordokat, de a t{bla megmarad!)
PHP MyAdmin
113
Anyja
neve
Kov{cs
M{ria
Szab
Anna
Szcs
Tmea
Tak{cs
va
Nagy
Eszter
P{sztor
Jol{n
Csiks
Anita
Juh{sz
Ildik
Szletsi
helye
Budapest
Szletsi
d{tuma
1989-08-05
Kaposv{r
1962-06-03
Budapest
1976-10-12
Szeged
1992-02-05
Salgtarj{n
Gyr
1985-06-25
Eger
1952-12-20
Pcs
1987-03-13
1961-05-03
114
115
116
show databases;
show tables;
use proba;
describe sor;
adatb{zisok mutat{sa
t{bl{k mutat{sa
prba adatb{zis haszn{lata
sr t{bla mutat{sa (ler{sa)
SQL parancsok
117
SELECT
lekr
Joker
karakter
(minden
mezt
kir)
FROM
honnan
sor;
a t{bl{nk
neve
118
4. Aggreg{l fggvnyek
a., Megsz{ml{l{s:
SELECT COUNT(*) FROM sor;
Jelen esetben a sr t{bl{ban sz{molja meg a rekordokat. Ennl a fggvnynl is haszn{lhat az
AS-es {tnevezs (ugyangy az ezt kvetekben
is). Az aggreg{l fggvnyeket MINDIG a SELECT
ut{n rjuk be.
b., Szumm{z{s:
SELECT SUM(mezonev) FROM tablanev;
sszeadja a mezhz tartoz adatokat (csak
numerikus adat sszead{s{ra kpes).
c., Minimum kiv{laszt{s:
SELECT MIN(mezonev) FROM tablanev;
A mez legkisebb rtkt adja vissza.
d., Maximum kiv{laszt{sa:
SELECT MAX(mezonev) FROM tablanev;
A mez legnagyobb rtkt adja vissza.
e.,[tlag sz{mt{s:
SELECT AVG(mezonev) FROM tablanev;
5. SELECT z{radkok Felttel
WHERE kulcssz ut{n trtnik a felttel megad{sa.
SQL parancsok
119
120
SQL parancsok
121
122
14.1. Mi is az a DML?
A DML jelentse Data Manipulate Language,
azaz adatmdost nyelv az SQL-en bell.
123
CMS rendszerek
124
jelsz
125
126
127
A mostani feladatban, egy PHP oldal form{j{ban, kilist{zzuk a kor{bban m{r elksztett
peldafeladat adatb{zisunk nyilvantartas t{bl{j{t,
mghozz{ nv szerint nvekv sorrendben. A parancsokat m{r {tnztk ehhez s a folyamatot is
ismertettk az elz pontban, most pedig megnzzk a forr{skdon keresztl a kszts folyamat{t!
Nagyon oda kell figyelnnk, hogy hol nyitunk s
hol z{runk PHP kdblokkot s persze a szintaktik{ra is gyelnnk kell! Minden lpst lertuk a
megfelel sorhoz a m{r megszokott megjegyzs
form{ban! Most pedig l{ssuk a kdot (<body> tagtl a </body> tag-ig):
<body>
<p align="center"><h2>Nyilvntartsi jegyzk</h2></p>
<p>
<!-- Ksztnk egy tblzatot, amely a PHP kdblokkon kvl szerepel s belerjuk a nyilvantarto nev
adattbla mezinek nevt. -->
<table width="600" border="0" cellpadding="0"
cellspacing="0">
<tr>
<td width="150"><strong>Nv</strong></td>
<td width="150"><strong>Anyja neve
</strong></td>
<td width="150"><strong>Szletsi hely
</strong></td>
128
129
//3. A $parancs szveges vltozban lv parancsot futtatjuk le az adatbzison. A $kapcsolat elhagyhat, ilyenkor az utoljra megnyitott kapcsolaton fog dolgozni. A mostani esetben lekrdezzk a
nyilvantartas tbla sszes mezjt s a 'nv' mez
szerint nvekv sorrendebe rakjuk.
$eredmeny = mysql_query($parancs, $kapcsolat);
//4. A $eredmeny vltozban eltroljuk, hogy a
$parancs-ot hajtsa vgre a PHP fordt a $kapcsolatban megjellt adatbzison.
while ($sor = mysql_fetch_array($eredmeny))
/* 5. Egy WHILE ciklussal feldolgozzuk a rekordokat.
A visszadott eredmny egy 2 dimenzis tblzat lesz.
Ezt soronknt dolgozzuk fel a mysql_fetch_array paranccsal, amely egy sort adja a $eredmenynek a
$sor nev vltozba (amely nevbl addan az adattbla egy sorra, teht egy rekordjra utal). Addig
ratjuk ki a sorok tartalmt, ameddig minden soron
vgig nem mentnk! (Ezrt is kell a WHILE ciklust
alkalmazni.)
A soron bell a tblban lv meznvvel hivatkozhatunk az egyes adatokra ($sor[anyjaneve]) */
{
//ezek utn lezjuk az 1. PHP blokkot, mivel most HTML rsz kvetkezik!
?>
<!-- A WHILE ciklus ciklusmagjban HTML kd van,
mgpedig egy tblzat. A tblzat egy-egy oszlopba kirtajuk az adattbla mindem mezjt. A ciklusmag ltal minden rekord j sorba kerl s a lista az
sszes rekordot tartalmazni fogja. -->
130
</tr>
</table>
<?php
}
//Ezt a PHP blokkot azrt ksztettk, hogy
lezrja a WHILE ciklust az els kapcsoszrjel prjval. Ez nagyon fontos, soha ne felejtsk el kitenni!
mysql_close($kapcsolat);
//6. Az adatbzis kapcsolatot is lezrjuk!
?>
</p>
</body>
Ezzel el is kszlt a PHP oldalunk! Ha mindent
jl gpeltnk s megnzzk a bngsznkben az
oldalt, l{thatjuk, hogy a programunk pontosan
azokat a rekordokat ratta ki a kpernyre, amelyeket mi egy kor{bbi feladat sor{n felvittnk:
131
CMS rendszerek
132
CMS rendszerek
133
A CMS alkalmazhat tbbek kztt web{ruh{zakn{l, port{lokn{l, web-magazin szerkesztsnl illetve m{s egyb alkalmaz{sn{l.
A tartalmak szerkesztshez egy kezelfellet
(admin fellet) {ll rendelkezsre. Az adatbevitel
szveg- s feltlt mezkn (rlapok, checkbox-ok,
radiobutton-ok stb.) keresztl trtnik, amelyek
segtsgvel a CMS feltlti a megv{ltoztatott f{jlokat a webszerverre. A tartalmak azonnal l{thatk
online, az oldal frisstse ut{n.
A CMS-ket a praktikuss{guk s knnyen kezelhetsgk mellett azrt (is) rdemes megemlteni,
mert a lentebb felsorolt tartalomkezel rendszerek
mindegyike nylt forr{skd, ingyenesen letlthet s haszn{lhat, PHP-ben rdott, valamint
MySQL adatb{zist haszn{l. gy neknk, jelen ismereteinkkel sem fog klnsebb gondot okozni ezek
teleptse s alapvet konfigur{l{sa
134
Dinamikus tartalom
Kln modulok segtsgvel ak{r vendgknyveket, hreket, frumot, szavaz{sokat, l{togatotts{gi statisztik{kat, az egsz honlapra kiterjed keresst vagy webshop-ot integr{lhatunk
honlapunkba. Ezen fajta kiegsztk sz{ma rengeteg, bsges v{lasztkbl v{logathatunk a
CMS-eknl.
Napraksz frissts
A tartalom mdost{s{hoz nincs szksg kln
cgre, programozkra, extra kiad{sokra az
oldal frisstst saj{t erforr{sbl vgzi el!
Nem lehet beleavatkozni a weboldal kinzetbe. Erre csak akkor van lehetsg, ha kell
szakrtelemmel kicserljk, fellrjuk a weboldalt alkot kpeket, grafik{kat illetve {trjuk az
adott tm{hoz tartoz CSS stlusf{jlokat a megfelel helyen s mdon.
M{sik megold{s, hogy kls fejleszttl beszerznk, letltnk klnbz oldaltm{kat
(themes). Sokfle, rendszerezett, klnbz kategri{kba besorolt, ingyenes tm{t tal{lhatunk
a lent felsorolt CMS-ek hivatalos honlapjain, illetve a velk foglalkoz, egyb (sok esetben
magyar nyelv) weblapokon is! gy knnyedn
kereshetnk weboldalunk tartalm{hoz illeszked, sz{munkra megfelel designt, kinzetet,
amit azt{n p{r kattint{ssal azonnal telepthe-
CMS rendszerek
135
( http://phpnuke.org )
( http://e107.org )
( http://drupal.org )
( http://www.joomla.org )
(http://www.freeguppy.org )
136
CMS rendszerek
137
138
Az {br{n az e107 tartalomkezel rendszer grafikus admin felletnek egy rszlete l{that. J
plda arra, hogy a CMS-eknl milyen {tl{that
kezelfelleten tudjuk be{lltani teleptett weblapunk kls-bels tulajdons{gait, illetve milyen
blokkok kialakt{s{ra van lehetsgnk.
139
140
galeria.php?foto=1
sszesen 2 oldalra van szksgnk, mivel a
kpeket egy v{ltozban t{roljuk. gy az egyik oldalon a miniatrket t{roljuk (egyrtelmen elnevezve, hogy ksbb knnyebben tudjunk r{juk
hivatkozni), amiknek a linkjbe a
galeria.php?foto=1
scriptet helyezzk be, az egyes sz{m helyett
persze mindig az eggyel nvekv sz{mot kell rnunk. Termszetesen az oldal s a v{ltoz nem
kell, hogy galeria illetve kep legyen, de a plda
sor{n az egyrtelmsg kedvrt ez volt a legegyszerbb elnevezs.
A Properties panel
Dreamweaver-en bell:
gy
fog
kinzni
R{kattintunk az els kpre a galeria.php oldalon, majd az Src (source, forrs) mezben be{lltjuk, hogy melyik thumbnail kpet szrja be s
Megvalstsok PHP-vel
141
honnan. Most a legelst illesszk be, a m{r kor{bban emltett, mini nev mapp{nkbl. A Link mezben pedig megadjuk, hogy a kep.php-ra ugorjunk s a krdjel ut{n {tadunk egy paramtert
(aminek a neve a pld{ban foto), ami az els kp
nevbl addan 1 lesz. A kep.php forr{skdja
lentebb l{that.
Tulajdonkppen annyit csin{ltunk, hogy a kp
nevt paramterben elt{rolva {tadtuk az eredmnyoldalnak, amely img src tag-jbe tettnk egy
rvid kirat{st tartalmaz PHP blokkot, gy az oldal mindig azt a kpet szrja be, amelynek nevt
{tadtuk a paramterben.
Ezzel egy dinamikus kpgalri{t ksztettnk,
melyhez elg volt 2 darab PHP weboldal. Ha csak
HTML-t akartunk volna haszn{lni, akkor minden
egyes nagy kpet kln-kln weboldalba kellett
volna beillesztennk, gy pl.: 50 nagy kp esetn 50
HTML oldal + 1, a kis kpeket tartalmaz weboldalra lett volna szksgnk! rezhet a klnbsg,
hogy egy dinamikus PHP oldal elksztse menynyire megnvelheti a weboldalszerkeszts hatkonys{g{t, s persze ilyen s ehhez hasonl megold{sokkal rengeteg idt takarthatunk meg!
A mi pld{nkban az galeria.php-rl ugrottunk a
kep.php-ra, melynek a forr{skdja gy nz ki:
142
<html>
<head>
<title>PHP kpgalria</title>
</head>
<body>
<?php
$foto=$_GET['foto'].'.jpg';
//a
kp
meghvsa a galeria.php-bl GET-tel, teht ebben
a vltozban troljuk a kp nevt. Ezek utn mg
hozz kell fznnk az tvett paramterhez a kpfjl
kiterjesztst (ami esetnkben, minden kpnl JPG
lesz) s ezltal letroltuk a $foto vltozban a beillesztshez szksges sszes adatot!
?>
<p align="center">PHP kpgalria</p>
<table width="100" border="3" align="center">
<tr>
<td><img src="nagy/<?= $foto ?>"
border="0"></td> //aktulis kp beszrsa
</tr>
</table>
<p align="center"><strong><a
href="galeria.php">Vissza</a></strong></p>
//beszrunk egy visszalp linket, amely a
galeria.php-re mutat, hogy j kpet nyithassunk
meg!
</body>
</html>
Megvalstsok PHP-vel
143
144
Megvalstsok PHP-vel
145
?>
<a href="kep.php?foto=<?= $elozo;
?>">Elz</a>
<?php
}
//A HTML-bl visszalpve egy jabb
kdblokkban lezrjuk az IF utastst a nyit kapcsos
zrjel prjval!
?>
<strong><a
href="index.php">Vissza</a></strong>
<?php //Ismt szksgnk lesz egy IF elgazsra:
ha az tvett foto paramter nem egyenl az utols
kp szmval (a pldban 22 kpnk van a galriban), akkor beilleszti a Kvetkez linket is! Fontos,
hogy mindig az utols kp szmt vizsgljuk ebben az
elgazsban! A hivatkozsba ismt PHP-t csempsznk, paramtert adunk t: a linkre kattintva az
aktulis kpnl eggyel htrbb lv kpet jelenti meg
a kep.php!
if ($_GET[foto] !=22)
{
?>
<a href=kep.php?foto=<?= $kovetkezo;
?>>Kvetkez</a>
<?php
//Az els IF-hez hasonlan itt is
vissza kell lpnnk PHP-be a hivatkozs beszrsa
utn, hogy lezrjuk az elgazs igaz gt.
}
?>
</p></body></html>
146
Megvalstsok PHP-vel
147
148
Megvalstsok PHP-vel
149
150
m{cit (szerver verzi, PHP verzi, kiments idpontja) tartalmaz. Egrrel jelljk ki a szveget
(vagy kattintsunk valahova a szvegbe s Ctrl+A
billentykombin{cit haszn{lva) s m{soljuk be
ezt egy szveges f{jlba (mondjuk Jegyzettmbbe s
mentsk el dump.txt nven). Clszer a nevbe is
berni a kiments d{tum{t, hogy tiszt{ban legynk
mikori is a dump f{jl.
Mivel az adatb{zisunkat valahogy vissza is kell
helyeznnk a dump f{jl segtsgvel, ezt ktflekppen is vgezhetjk:
IMPORT flre kattintva jobb oldalt fenn. Ekkor
meg kell adnunk a szveges f{jl helyt, amibe a
dump-ol{st elmentettk, emellett csak annyi a
dolgunk, hogy a F{jl karakterkszlete lenyl
list{n a latin2-t v{lasszuk (ha a kdol{st nem jl
{lltjuk be, az kezetes betkkel
problm{k lesznek, nem fognak
megjelenni!), majd a Vgrehajt
gombot megnyomjuk.
Megvalstsok PHP-vel
151
152
Enaz
n
sor
Megvalstsok PHP-vel
153
Nv
URL cm
Ler{s
www.google.com
A PHP
nyelv
www.php.net
MySQL
website
www.mysql.com
A http:// protokolljelzst sz{ndkosan nem tettk az URL cm el, mert gy oldjuk meg a
kilist{z{st, hogy a protokollt ne kelljen mindig a
cm el gpelni, ezzel helyet s idt is sprolhatunk! Ha elkszlt az adatt{bla s feltltttk a
rekordokat, jhet a PHP s MySQL sszekapcsol{sa!
154
Megvalstsok PHP-vel
155
156
</tr>
</table>
<br />
<p>
<?php //Miutn a kirats rsz befejeztk, nyitunk
mg egy PHP blokkot s lezrjuk a WHILE ciklust!
Ezzel ksz is az oldal!
}
?>
</p>
</p>
</body>
Megvalstsok PHP-vel
157
j{t
rutinszeren
fogjuk gpelni. [m a
nyilvantartas.php-vel ellenttben, ez az oldal rendelkezni fog egy admin panellel, mely elksztse
ugyan tbb idt vesz ignybe, de ez{ltal, az admin
felletrl dinamikusan szerkeszthetjk majd a
linkjeinket (jabb rekordokat szrhatunk be, illetve
trlhetnk a linkek adatt{bl{bl a megismert
DML parancsok s a PHP MySQL sszefzsnek segtsgvel. A kvetkez pontban az ehhez
szksges PHP oldalakat ksztjk el.
158
Megvalstsok PHP-vel
159
160
Megvalstsok PHP-vel
161
Nagy valsznsggel ennek az oldalnak az elksztse sem jelentett komolyabb elksztst azok
sz{m{ra, akik megrtettk a tananyag ide vonatkoz fejezeteit. Az jdons{g mint m{r azt a forr{skdban is lertuk az ID mez paramter {tad{ssal
trtn tov{bbkldse a torol.php-nek. Persze ez
sem j teljesen, mivel paramter {tad{st sz{mos
esetben haszn{ltunk, mind az rlapokn{l, mind a
kpgalri{n{l, ennek az esetnek a jelentssge,
hogy ez most klnsen azrt fontos, mert a Trls
linkre kattintva csak az a rekord trldik, amelynek a sor{ban a hivatkoz{s volt.
Ha mindent a fenti forr{skd szerint csin{ltunk,
akkor a kvetkez felletet l{thatjuk a bngsznkben, ha megnyitjuk az admin.php-t:
Termszetesen, ha mostani {llapot{ban az oldalon a Trlsre kattintunk, nem fog csin{lni semmit,
mivel a torol.php-t nem ksztettk el. Ugyangy j
linket sem tudunk jelenleg beszrni az adatb{zisba, a linkfelvitel.php s felvisz.php nlkl!
162
Megvalstsok PHP-vel
163
164
Amennyiben ezeket a figyelmeztetseket betartjuk nem valszn, hogy oldalunk olyan hib{t jelez
vissza, amit nem ismernk s nem tudjuk mi
okozhatja. Az admin felletnk ezzel m{r flksz
{llapotban van, mg szksgnk van a linkfelvitel.php-ra s annak feldolgoz oldal{ra (a felvisz.php-re), hogy j rekordokat is kpesek legynk beszrni.
17.5.3. Linkfelvitel.php elksztse
Ebben a pontban elksztnk egy beviteli rlapot, melyet kitltve s a feldolgoz oldalnak
elkldve a program beszr egy j rekordot, anlkl, hogy belptnk volna a phpMyAdmin-ba. A
linkfelvitel.php-t szintn admin mapp{ba hozzuk
ltre. A kszts sor{n az rlapok fejezetnl tanultakat fogjuk hasznostani. Vegyk a kszts lpseit pontrl-pontra:
1., Beszrunk az res weblapra egy Form-ot a
Dreamweaver Form eszkzt{r{bl. Elvileg a kvetkezkppen fog kinzni a form tag-je kdnzetben:
<form id="form1" name="form1"
method="post" action="felvisz.php">
Neknk ebbl a method s az action a fontosak.
Post metdussal adjuk {t a feldolgoz oldalnak az
adatokat (teh{t titkostva). Az action paramterben
Megvalstsok PHP-vel
165
4., A m{sodik beviteli mez ahol az URL cmet adjuk meg szintn Text Field lesz. Ugyanazokat az rtkeket {lltottuk be, mint a nv esetben, csak itt a mez neve cim lesz.
5., A harmadik mez rlap elem is Text Field,
de itt m{r nem Single line-t fogunk haszn{lni, hanem Multi line-t, azaz tbbsoros beviteli mez.
Mivel az adatb{zisunkban a leiras mez tpusa
TEXT volt, ezrt biztostani kell az rlapon a meg-
166
L{thatjuk, hogy a leiras nev beviteli mez karakter szlessgt 40-re, magass{g{t 10-re {lltottuk, ez{ltal 10 sor magas lett a Text Field. A sortrs mdj{t (Wrap) hagyjuk Default-on (az alapbe{llt{son).
6., Most m{r csak egy rlap elem hi{nyzik: a
Button. Helyezzk az oldal alj{ra s adjuk meg a
Value rtknek, hogy Felvitel. Ez a szveg fog
ez{ltal megjelenni a gombon, az Action be{llt{s
pedig marad az alapbl be{lltott Submit form
(vagyis feldolgoz forma).
Ezek elhelyezse s be{llt{sa ut{n tulajdonkppen m{r el is kszlt az rlapunk, melyet kitltve j rekordot szrhatunk be a peldafeladat
adatb{zisunkba, a linkek t{bl{ba. Persze mg nem
fog mkdni, mivel mg egyetlen oldal elksztse
h{tra van, ez az oldal pedig a felvisz.php nev,
torol.php-hez hasonl szerkezet feldolgoz oldal.
Ha a fenti lpsek szerint ksztjk el a beviteli
rlapunkat, valami hasonlt kell l{tnunk a bngsznkben a linkfelvitel.php megnyit{sa ut{n:
Megvalstsok PHP-vel
167
168
Megvalstsok PHP-vel
169
WWW.BBS.HU
A fenti knyvek megrendelhetk a kiad cmn: BBS-INFO Kft. 1630 Bp., Pf. 21.
Nagyobb mennyisg rendels esetn kedvezmnyeket tudunk biztostani.
rsok minden tmakrben: Bulvr - Csald - letmd - Hobbi Dokumentummintk - Erotika - Kultra - Valls - Mese - Ifjsgi
- Mondsok - Idzetek - Mvszet - Receptek - Gasztronmia Regnyek - Novellk - Sport - Szakirodalom - Szmtstechnika
- Trtnelem - Utazs - Versek - Viccek - Egyb
WWW.BETUVETES.HU