PHP és MySQL az alapoktól
 9789639425743 [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

Kozmajer Viktor

PHP és MySQL az alapoktól

Kozmajer Viktor

PHP és MySQL az alapoktól

BBS-INFO Kiadó, 2011.

4

PHP és MySQL az alapoktól

Minden jog fenntartva! A könyv vagy annak oldalainak m{sol{sa, sokszorosít{sa csak a kiadó ír{sbeli hozz{j{rul{s{val történhet. Köszönet Hegedűs G{bornak, aki nélkül ez a könyv nem jöhetett volna létre A könyv nagyobb mennyiségben megrendelhető a kiadón{l: BBS-INFO Kiadó, 1630 Bp. Pf. 21. Tel.: 407-17-07 A könyv megír{sakor a szerző és a kiadó a lehető legnagyobb gondoss{ggal j{rt el. Ennek ellenére, mint minden könyvben, ebben is előfordulhatnak hib{k. Az ezen hib{kból eredő esetleges k{rokért sem a szerző, sem a kiadó semmiféle felelősséggel nem tartozik, de a kiadó szívesen fogadja, ha ezen hib{kra felhívj{k figyelmét.

ISBN 978-963-9425-74-3 Kiadja a BBS-INFO Kft. 1630 Budapest, Pf. 21. Felelős kiadó: a BBS-INFO Kft. ügyvezetője Nyomdai munk{k: Biró Family nyomda Felelős vezető: Biró Kriszti{n

Tartalomjegyzék

5

TARTALOMJEGYZÉK 1. Bevezető ............................................................................ 9 2. APACHE, MySQL, PHP ............................................... 11 2.1. Alapfogalmak ......................................................... 11 2.2. Szerveroldali szkriptek és működésük ............... 13 2.3. Az APACHE2TRIAD telepítése ........................... 15 3. A PHP program szerkezete .......................................... 19 3.1. Első PHP programunk .......................................... 20 3.2. PHP kód blokkjainak kijelölésére szolg{ló elemek ..................................................................... 22 4. Függvények .................................................................... 23 4.1. A print függvény ................................................... 23 4.2. A date függvény..................................................... 26 4.3. Matematikai függvények ...................................... 27 5. V{ltozók .......................................................................... 30 5.1. V{ltozó típus{nak lekérdezése – a gettype() függvény ................................................ 34 5.2. V{ltozó típus{nak módosít{sa – a settype() függvény .............................................. 37 6. Oper{torok és kifejezések PHP-ben .......................... 39 7. Vezérlési szerkezetek ................................................... 46 7.1. El{gaz{s – Az IF utasít{s ...................................... 46

6

PHP és MySQL az alapoktól

7.1.1. Példaprogram az IF utasít{s bemutat{s{ra .............................................. 50 7.2. SWITCH szerkezet ................................................. 54 7.2.1. Példaprogram az SWITCH szerkezet bemutat{s{ra: ........................... 55 8. CIKLUSOK ..................................................................... 58 8.1. A WHILE() ciklus................................................... 59 8.2. A DO jelek közé kerül. Többsoros kód esetén a sorok végére pontosvesszőt kell tennünk, ezzel z{rjuk PHP-ben a parancsokat. Figyelem! A tapasztalat szerint ezeknek a pontosvesszőknek a lefelejtése az egyik leggyakoribb kódol{si hiba. Szintaktikailag hib{s kód esetén a PHP értelmező hibaüzenetet jelenít meg a képernyőn, értelemzavaró hiba esetén a tov{bbi végrehajt{st befejezi. Nagy segítség, hogy a hibaüzenetben az értelmező kiírja a hiba helyét is. A PHP értelmező program az al{bbi szab{lyokat veszi figyelembe a PHP kód értelmezése közben: Ha HTML kódot tal{l, azt v{ltoztat{s nélkül {tm{solja az eredmény oldalra.

20

PHP és MySQL az alapoktól

Ha PHP kódot tal{l, azt lefuttatja Ha azt a parancsot kapja péld{ul, hogy „Írd ki!”, akkor a kiírandó szöveget az eredményoldalra írja ki, mégpedig az aktu{lis pozícióba. Ha b{rmilyen m{s parancsot kap, azt végrehajtja és nem nyúl az eredmény oldalhoz.

3.1.

Első PHP programunk

Amikor PHP oldalt írunk, tudatnunk kell a feldolgozóval, mely részeket hajtsa végre. Ha nem adjuk meg, hogy a f{jl mely részei tartalmaznak PHP blokkokat, akkor mindent HTML-nek tekint és v{ltoztat{s nélkül tov{bbküldi a böngésző sz{m{ra. A PHP blokk kijelölésének elhalaszt{sa és ennek következménye egy péld{val jól szemléltethető: 1. Ez esetben nem jelöljük ki a PHP blokkot. Ekkor a böngésző, az előbb leírtak szerint HTMLnek néz mindent. A mi esetünkben a print függvényt (bővebben róla a következő fejezetben) egyszerű szövegként értelmezi és a böngészőnk a print (”Helló vil{g!”); szöveget jeleníti meg. Vastag betűvel jelöltük a két forr{skód azon részeit, amelyekben azok különböznek egym{stól:

A PHP program szerkezete

21

Első PHP programunk

print (”Helló világ!”);

2. Ez esetben m{r kijelöljük a PHP blokkot a következő t{bl{zatban l{tható hagyom{nyos jelöléssel. Ekkor a PHP feldolgozó észleli, hogy mi a print függvényt haszn{ljuk a blokkban és e szerint végre is hajtja a parancsot. Böngészőnkben m{r csak a „Helló vil{g!” szöveg jelenik meg:

Első PHP programunk



22

PHP és MySQL az alapoktól

3.2.

PHP kód blokkjainak kijelölésére szolgáló elemek

Elnevezés

Kezdő elem

Z{ró elem

Rövid

ASP stílusú

Hagyom{nyos

Megjegyzés: A PHP blokkon belül fűzhetünk megjegyzéseket a programunkhoz! Ezt esetünkben fontos megemlíteni, mert a későbbi fejezetek példaként bemutatott forr{skódokban szintén fogok haszn{lni ilyeket. Az egyszerű HTML oldalak szerkesztésnél ilyen esetben a





128

PHP és MySQL az alapoktól

Név Anyja neve Születési hely Születési dátum









Ezzel el is készült a PHP oldalunk! Ha mindent jól gépeltünk és megnézzük a böngészőnkben az oldalt, l{thatjuk, hogy a programunk pontosan azokat a rekordokat íratta ki a képernyőre, amelyeket mi egy kor{bbi feladat sor{n felvittünk:

PHP és MySQL összekapcsolása

131

CMS rendszerek

132

16. CMS rendszerek

CMS: Content Managment System (Tartalomkezelő rendszer). [ltal{ban kevés szaktud{st igénylő internetes alkalmaz{s, mely lehetővé teszi, hogy szinte b{rki összetett weboldalt birtokoljon. Az alkalmaz{s jellegéből adódóan a weboldal rövid idő alatt öszsze{ll, programoz{si tud{st {ltal{ban nem, vagy egészen keveset igényel. A CMS olyan internetes alkalmaz{s, amely {ltal b{rki össze{llíthat egy weboldalt, képeket, tartalmakat vagy ak{r navig{ciót v{ltoztathat akkor is, ha nem vagy alig rendelkezik technikai/programoz{si ismeretekkel. A tartalom (content) a kinézettől, design-tól (layout-tól) elkülönítve, webes adatb{zisban van t{rolva. Layout = kinézet Content = tartalom

CMS rendszerek

133

A CMS alkalmazható többek között web{ruh{zakn{l, port{lokn{l, web-magazin szerkesztésénél illetve m{s egyéb alkalmaz{sn{l. A tartalmak szerkesztéséhez egy kezelőfelület (admin felület) {ll rendelkezésre. Az adatbevitel szöveg- és feltöltő mezőkön (űrlapok, checkbox-ok, radiobutton-ok stb.) keresztül történik, amelyek segítségével a CMS feltölti a megv{ltoztatott f{jlokat a webszerverre. A tartalmak azonnal l{thatók online, az oldal frissítése ut{n. A CMS-ket a praktikuss{guk és könnyen kezelhetőségük mellett azért (is) érdemes megemlíteni, mert a lentebb felsorolt tartalomkezelő rendszerek mindegyike nyílt forr{skódú, ingyenesen letölthető és haszn{lható, PHP-ben íródott, valamint MySQL adatb{zist haszn{l. Így nekünk, jelen ismereteinkkel sem fog különösebb gondot okozni ezek telepítése és alapvető konfigur{l{sa

16.1. A CMS-ek előnyei Komoly szaktud{st nem igényel Adatb{zisban t{rolt tartalom A feltöltött tartalom adatb{zisban t{rolódik, így hordozhatóv{ és több eszköz (böngésző, mobiltelefon, PDA, nyomtat{s) sz{m{ra is könnyen {talakíthatóv{, form{zhatóbb{ v{lik.

134

PHP és MySQL az alapoktól

Dinamikus tartalom Külön modulok segítségével ak{r vendégkönyveket, híreket, fórumot, szavaz{sokat, l{togatotts{gi statisztik{kat, az egész honlapra kiterjedő keresést vagy webshop-ot integr{lhatunk honlapunkba. Ezen fajta kiegészítők sz{ma rengeteg, bőséges v{lasztékból v{logathatunk a CMS-eknél. Naprakész frissítés A tartalom módosít{s{hoz nincs szükség külön cégre, programozókra, extra kiad{sokra – az oldal frissítését saj{t erőforr{sból végzi el! Nem lehet beleavatkozni a weboldal kinézetébe. Erre csak akkor van lehetőség, ha kellő szakértelemmel kicseréljük, felülírjuk a weboldalt alkotó képeket, grafik{kat illetve {tírjuk az adott tém{hoz tartozó CSS stílusf{jlokat a megfelelő helyen és módon. M{sik megold{s, hogy külső fejlesztőtől beszerzünk, letöltünk különböző oldaltém{kat (themes). Sokféle, rendszerezett, különböző kategóri{kba besorolt, ingyenes tém{t tal{lhatunk a lent felsorolt CMS-ek hivatalos honlapjain, illetve a velük foglalkozó, egyéb (sok esetben magyar nyelvű) weblapokon is! Így könnyedén kereshetünk weboldalunk tartalm{hoz illeszkedő, sz{munkra megfelelő designt, kinézetet, amit azt{n p{r kattint{ssal azonnal telepíthe-

CMS rendszerek

135

tünk is, és ami ezt követően azonnal alkalmazható az oldal tém{jaként.

16.2. Magyar nyelven is elérhető CMS rendszerek PHP-Nuke e107 Drupal Joomla GuppY

( http://phpnuke.org ) ( http://e107.org ) ( http://drupal.org ) ( http://www.joomla.org ) (http://www.freeguppy.org )

Ezen CMS-ek nagy része megtal{lható magyar nyelven is, így haszn{latuk még könnyebb és kényelmesebb. [ltal{ban tal{lhatunk olyan magyar nyelvű weboldalakat is, ahol az adott tartalomkezelő rendszerrel foglalkoznak és az aktu{lis frissítésekről, hírektől, újabb bővítményektől és tém{któl kezdve a telepítési útmutatón {t a hibajavít{sokig, sok mindent megtal{lhatunk rajtuk, amik segíthetnek a munk{nkban. Érdemes mindegyik rendszerhez – persze a hivatalos mellett – egy ilyen honlapot is felkeresni az érdeklődő webfejlesztők, webprogramozók és érdeklődők sz{m{ra. Egy példa: PHP NUKE Egy CMS rendszer. Integr{lja mag{ban az öszszes eszközt, amelyet inform{ciós honlap vagy

136

PHP és MySQL az alapoktól

port{l létrehoz{sa (széles értelemben véve) alkalmazunk. Példa a felhaszn{l{s{ra: Intranet (belső) oldalak E-kereskedelmi rendszerek V{llalati port{lok Nyilv{nos ügynökségek Újs{gíró cégek Online cégek Inform{ciós honlapok E-tanul{s rendszerek Hobby weboldalak

16.3. CMS-ek telepítése általánosságban Letöltjük a CMS telepítő csomagj{t, ami {ltal{ban tömörített f{jlban tal{lható. Aj{nlatos az adott CMS hivatalos honlapj{ról letölteni, ahol a legújabb verziókat, valamint a magyar ékezetes betűket is tartalmazó verziókat is megtal{lhatjuk. Ezut{n: 1. A csomagban tal{lható, telepítéshez szükséges f{jlokat kicsomagoljuk és mindegyiküket feltöltjük honlapunk FTP szerverére. 2. Adatb{zis konfigur{l{sa (ez két módon történhet):

CMS rendszerek

137

a. Setup-on keresztül ({ltal{ban ez az install.php-t kell futtatnunk, ennek elérési útj{t kell begépelnünk a böngészőnk címsor{ba). Fontos! A sikeres telepítést követően azonnal töröljük az install.php f{jlt (erre {ltal{ban külön figyelmeztetést is kapunk a telepítéskor)! b. vagy .ini f{jlon keresztül ekkor adatb{zis import{l{sra (DUMP) van szükségünk 3. Admin fiók kialakít{sa, admin felhaszn{lónevünk és jelszavunk megad{sa, amelyekkel később belépve, minden módosít{sra jogosultak leszünk a honlapon és annak admin felületén (ezeket az adatokat soha ne tegyük közzé!). 4. Tartalom, forma, blokkok kialakít{sa. A honlap tém{j{nak, kinézetének be{llít{sa a meglévő sém{kból (tov{bbi tém{kat tölthetünk le az adott CMS honlapj{ról illetve az ezekkel foglalkozó weboldalakról), plugin-ek, kiegészítő funkciók bekapcsol{sa/telepítése, személyre szab{s, tartalommal való feltöltés A telepítés sor{n a CMS-ek egyértelműen megadj{k, hogy melyik mezőbe mit kell kitöltenünk, így a kezdő PHP programozók is könnyűszerrel

138

PHP és MySQL az alapoktól

telepíthetik őket p{r kattint{ssal, minim{lis programoz{si ismeretekkel is. A telepítés ut{n egy grafikus admin felületen keresztül könnyen szerkeszthető, l{tv{nyos külalakkal és hasznos kiegészítőkkel rendelkező honlapot kapunk. Mindenképp érdemes őket kiprób{lni!

Az {br{n az e107 tartalomkezelő rendszer grafikus admin felületének egy részlete l{tható. Jó példa arra, hogy a CMS-eknél milyen {tl{tható kezelőfelületen tudjuk be{llítani telepített weblapunk külső-belső tulajdons{gait, illetve milyen blokkok kialakít{s{ra van lehetőségünk.

139

PHP és MySQL az alapoktól

17. Megvalósítások PHP-vel 17.1. Képgaléria PHP-ben 1.0 Most a megismert PHP nyelv segítségével készítünk egy képgaléri{t. A képeinkből, amiket be akarunk illeszteni a galéri{nkba, először is miniatűröket (thumbnail) készítünk, amiket (egy t{bl{zatba rendezve) beszúrunk egy weboldalba. Ez lesz a péld{nkban a galeria.php. Helyezzük el a nagyméretű képeket a nagy, a thumbnail képeket a mini mapp{ba. Az oldal, amelyikre a galeria.php-ről ugrunk (teh{t, amelyiken megjelennek a nagy képek, lesz a kep.php. Az al{bbi módon szúrjuk be a PHP programunkba a megjelenítendő képeket:

140

PHP és MySQL az alapoktól

Mint l{thatjuk, ez a PHP oldal sem okoz m{r különösebb fejtörést, mivel a szükséges parancsokat m{r megismertük kor{bban. Amit ne felejtsünk el a későbbiekben sem az ilyen oldalakn{l: Ne tegyünk ilyen feldolgozó oldalakba HTML tag-et! Ne hagyjunk üres sorokat (főleg ne az elején)! Ne haszn{ljuk a DELETE parancsot WHERE z{radék nélkül (csak indokolt esetben)! Figyeljünk oda a header függvényre, a z{rójelben megadott Location-t mindig nagy L betűvel írjuk, ne kicsivel, mert különben nem fog működni!

164

PHP és MySQL az alapoktól

Amennyiben ezeket a figyelmeztetéseket betartjuk nem valószínű, hogy oldalunk olyan hib{t jelez vissza, amit nem ismerünk és nem tudjuk mi okozhatja. Az admin felületünk ezzel m{r félkész {llapotban van, még szükségünk van a linkfelvitel.php-ra és annak feldolgozó oldal{ra (a felvisz.php-re), hogy új rekordokat is képesek legyünk beszúrni. 17.5.3. Linkfelvitel.php elkészítése Ebben a pontban elkészítünk egy beviteli űrlapot, melyet kitöltve – és a feldolgozó oldalnak elküldve – a program beszúr egy új rekordot, anélkül, hogy beléptünk volna a phpMyAdmin-ba. A linkfelvitel.php-t szintén admin mapp{ba hozzuk létre. A készítés sor{n az űrlapok fejezetnél tanultakat fogjuk hasznosítani. Vegyük a készítés lépéseit pontról-pontra: 1., Beszúrunk az üres weblapra egy Form-ot a Dreamweaver Form eszközt{r{ból. Elvileg a következőképpen fog kinézni a form tag-je kódnézetben:

Nekünk ebből a method és az action a fontosak. Post metódussal adjuk {t a feldolgozó oldalnak az adatokat (teh{t titkosítva). Az action paraméterben

Megvalósítások PHP-vel

165

megadjuk azt az oldalt, amelyre az űrlap ugrik a ’Felvitel’ gombra való kattint{ssal. Ez lesz a felvisz.php, amelynek a szerkezet a torol.php-hoz lesz hasonló. 2., A form-on belül beszúrunk egy t{bl{zatot, amelybe elhelyezzük az űrlap elemeket (persze ez nem kötelező, de így esztétikusabb és könnyebben form{zható lesz az űrlapunk. Négy űrlap elemet fogunk haszn{lni, mégpedig h{rom Text Field-et és egy Button-t. Nézzük is ezeket egyenként! 3., Az első Text Field, amit beszúrunk, a link nevének megad{sra szolg{l. A szövegmező neve nev lesz. Íme a be{llít{sa Dreamweaver-ben:

4., A m{sodik beviteli mező – ahol az URL címet adjuk meg – szintén Text Field lesz. Ugyanazokat az értékeket {llítottuk be, mint a név esetében, 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 többsoros beviteli mező. Mivel az adatb{zisunkban a ’leiras’ mező típusa TEXT volt, ezért biztosítani kell az űrlapon a meg-

166

PHP és MySQL az alapoktól

felelő helyet a hosszabb leíró szövegek begépeléséhez is:

L{thatjuk, hogy a leiras nevű beviteli mező karakter szélességét 40-re, magass{g{t 10-re {llítottuk, ez{ltal 10 sor magas lett a Text Field. A sortörés módj{t (Wrap) hagyjuk Default-on (az alapbe{llít{son). 6., Most m{r csak egy űrlap elem hi{nyzik: a Button. Helyezzük az oldal alj{ra és adjuk meg a Value értékének, hogy Felvitel. Ez a szöveg fog ez{ltal megjelenni a gombon, az Action be{llít{s pedig marad az alapból be{llított Submit form (vagyis feldolgozó forma). Ezek elhelyezése és be{llít{sa ut{n tulajdonképpen m{r el is készült az űrlapunk, melyet kitöltve új rekordot szúrhatunk be a peldafeladat adatb{zisunkba, a linkek t{bl{ba. Persze még nem fog működni, mivel még egyetlen oldal elkészítése h{tra van, ez az oldal pedig a felvisz.php nevű, torol.php-hez hasonló szerkezetű feldolgozó oldal. Ha a fenti lépések szerint készítjük el a beviteli űrlapunkat, valami hasonlót kell l{tnunk a böngészőnkben a linkfelvitel.php megnyit{sa ut{n:

Megvalósítások PHP-vel

167

Figyelem! Fontos megemlíteni, hogy az URL cím nevű mező kitöltésénél ne feledjük, hogy csak a www-vel kezdődő címet kell megadnunk, a http:// előjel nem kell. Ha mégis kitesszük a linkünk hib{s lesz a linkek.php oldalon (ahol m{r a HTML kódba eleve elhelyeztük a protokoll nevét, hogy ne kelljen minden egyes rekordn{l újra elt{rolni). Ha véletlenül mégis így töltjük fel, akkor hib{s URL-t kapunk: pl.: http://http://www.google.com). Erre figyeljünk oda a feltöltéskor!

168

PHP és MySQL az alapoktól

17.5.4. Felvisz.php elkészítése Az admin felületünk elkészítésének utolsó lépéshez érkeztünk. M{r csak a linkfelvitel.php feldolgozó oldal{t kell elkészítenünk, ami a torol.php-hez hasonlóan csak PHP kódblokkból fog {llni. Itt szintén egy DML-es SQL parancsot fogunk erre a célre haszn{lni, mégpedig az INSERT INTOt és természetesen az űrlapról {tvett paramétereket fogjuk az adatt{bl{nkba beszúrni. L{ssuk: