Loading documents preview...
Ivica Kartelo
PHP5 MySQL Škola E-92 d.o.o. Split
Naslov: PHP5 MySQL Autor: Ivica Kartelo Urednik: Ivica kartelo Nakladnik: Škola E92 d.o.o. Split www.e92.hr Za nakladnika: Ivica Kartelo Tisak: Kartular d.o.o. Split Prijelom teksta: Ivica Kartelo Grafički dizajn naslovnica: Nebojša Bošnjak U ovoj knjizi pojavljuje se nekoliko zaštićenih znakova i naziva čija je uporaba ograničena zakonom. Popis tih znakova i naziva kao i njihovih vlasnika nalazi se kod nakladnika. © Ivica Kartelo Sva imena firmi, osoba, proizvoda i usluga koja se pojavljuju u primjerima su izmišljena. Autor, Nakladnik i Tiskar ne snose odgovornost za posljedice korištenja ove knjige, niti za pogreške nastale u procesu stvaranja knjige.
ii
Skraćeni sadržaj N a s t a v n a
c j e l i n a
1 :: PHP za početnike...........................................................4
Što ćemo naučiti u prvoj nastavnoj cjelini? .........................................................................................4 Instalacija PHP ....................................................................................................................................4 Moje prve programske instrukcije u PHP-u.........................................................................................5 Zadaci ..................................................................................................................................................8 Test ......................................................................................................................................................8 PHP varijable.......................................................................................................................................9 PHP uvjetni programski kôd..............................................................................................................15 Petlje ..................................................................................................................................................20 Zaključak nastavne cjeline 1..............................................................................................................23 N a s t a v n a
c j e l i n a
2 :: MySQL za početnike...................................................24
Što ćemo naučiti u ovoj nastavnoj cjelini? ........................................................................................24 Instalacija MySQL.............................................................................................................................24 Što je točno MySQL? ........................................................................................................................24 Naša komunikacija s MySQL ............................................................................................................24 N a s t a v n a
c j e l i n a
3 :: PHP pristup MySQL bazi............................................42
Napravimo bazu ulazni_racuni ..........................................................................................................42 PHP kao korisnik ...............................................................................................................................43 Zadaci ................................................................................................................................................50 Test ....................................................................................................................................................50 N a s t a v n a
c j e l i n a
4 :: PHP Blog.....................................................................52
Što ćemo napraviti? ...........................................................................................................................52 Baza 'blog'..........................................................................................................................................52 Auto_increment primary key index ...................................................................................................64 Zadaci ................................................................................................................................................65 Test ....................................................................................................................................................65 N a s t a v n a
c j e l i n a
5 :: PHP Login ...................................................................67
Što ćemo naučiti?...............................................................................................................................67 Sesija..................................................................................................................................................67 Zadaci ................................................................................................................................................75 Test ....................................................................................................................................................76 N a s t a v n a
c j e l i n a
6 :: PHP Objektno orijentirano programiranje...................77
Što ćemo naučiti?...............................................................................................................................77 Klasa ..................................................................................................................................................77 Objekt ................................................................................................................................................79 Klasa nasljednik.................................................................................................................................82 Operator ::..........................................................................................................................................85 iii
Zadaci ................................................................................................................................................87 Test ....................................................................................................................................................91 N a s t a v n a
c j e l i n a
7 :: PHP Smarty .................................................................93
Što ćemo naučiti?...............................................................................................................................93 Razdvajanje XHTML od PHP ...........................................................................................................93 Vježba 1.............................................................................................................................................94 Vježba 3.............................................................................................................................................97 Vježba 4.............................................................................................................................................98 Vježba 5...........................................................................................................................................100 Više sadržaja....................................................................................................................................100 Vježba 6...........................................................................................................................................101 Vježba 7...........................................................................................................................................103 array.................................................................................................................................................103 Vježba 8...........................................................................................................................................103 Asocijativni array ............................................................................................................................103 Zaključak .........................................................................................................................................106 N a s t a v n a
c j e l i n a
8 :: PHP SMARTY i PEAR.............................................107
Što ćemo naučiti?.............................................................................................................................107 Pripreme za vježbe...........................................................................................................................107 Vježba 1...........................................................................................................................................108 Vježba 2...........................................................................................................................................113 Objašnjenje ......................................................................................................................................120 Runtime aplikacije...........................................................................................................................140 N a s t a v n a
c j e l i n a
9 :: CMS ..........................................................................143
Što ćemo naučiti?.............................................................................................................................143 Što je CMS ......................................................................................................................................143 Za one koji ovdje počinju raditi po knjizi........................................................................................144 CMS – instalacija.............................................................................................................................144 CMS - administriranje .....................................................................................................................144 Programirajmo CMS........................................................................................................................148 Vježba 1...........................................................................................................................................148 Vježba 2...........................................................................................................................................153 Vježba 3...........................................................................................................................................161 Vježba 4...........................................................................................................................................163 Vježba 5...........................................................................................................................................167 Vježba 6...........................................................................................................................................172 Vježba 7...........................................................................................................................................173 Vježba 8...........................................................................................................................................178 Vježba 9...........................................................................................................................................182 iv
Vježba 10.........................................................................................................................................183 SQL Join..........................................................................................................................................183 Vježba 11.........................................................................................................................................184 Administracija CMS ........................................................................................................................184 Sažetak.............................................................................................................................................186 N a s t a v n a
c j e l i n a
1 0 :: E-trgovina..............................................................188
Što ćemo naučiti?.............................................................................................................................188 Baza podataka..................................................................................................................................188 PHP Smarty PEAR kôd ...................................................................................................................189 Plaćanje............................................................................................................................................189 Administracija e-trgovine ................................................................................................................191 Sažetak.............................................................................................................................................192 Literatura .........................................................................................................................................192
v
Sadržaj N a s t a v n a
c j e l i n a
1 :: PHP za početnike 11
Što ćemo naučiti u prvoj nastavnoj cjelini? 11 Instalacija PHP 11 Zaustavite rad servisa IIS Admin 11 Instalacija Apachea i PHP 11 Moje prve programske instrukcije u PHP-u 12 Prva PHP aplikacija 12 Pogledajmo u radu našu prvu PHP aplikaciju 12 Objašnjenje moje prve PHP aplikacije 13 Moja druga PHP aplikacija 13 Objašnjenje moje druge PHP aplikacije 14 Zadaci 15 Test 15 PHP varijable 16 Tipovi PHP varijabli 16 Varijable 1 + 2 = 3 16 Objašnjenje 1 + 2 = 3 17 Koliko žive varijable, a koliko živi program 18 Objašnjenje 19 Forma 19 Globalne varijable 20 Objašnjenje 20 Varijable: Zadaci 21 Varijable: Test 22 PHP uvjetni programski kôd 22 IF....ELSE 22 Objašnjenje 23 Zadaci 23 Test 24 Logički i usporedni operatori 24 Tablica istine za logičko 'i' 24 Tablica istine za logičko 'ili' 25 Zadaci iz logičkih i usporednih operatora 25 Objašnjenje logičkih operatora u gornjim primjerima 26 Petlje 27 For 27 Objašnjenje 27 vi
FOR: Zadaci 28 Test 28 While 28 Preporuka profesorima i učenicima 30 Zaključak nastavne cjeline 1 30 N a s t a v n a
c j e l i n a
2 :: MySQL za početnike 31
Što ćemo naučiti u ovoj nastavnoj cjelini? 31 Instalacija MySQL 31 Što je točno MySQL? 31 Naša komunikacija s MySQL 31 MySQL monitor 32 Pokretanje MySQL monitora preko Command Prompt 32 Objašnjenje inicijalnih korisničkih imena MySQL-a 33 Kreiranje baze podataka 'ulazni_racuni' 35 Kreiranje tablica 36 Unos podataka u tablice 37 Pregled tablica 38 Ispravljanje datuma u tablici racuni 39 Brisanje baze. Brisanje tablica 40 Promjene u strukturi tablice 40 Primarni ključ 41 Auto_increment 42 SQL naredba SELECT 44 Grupiranje redaka po nekom zajedničkom podatku (Group by) 44 Group by 46 MySQL funkcije 46 Zadaci 46 Test 47 Zaključak 48 N a s t a v n a
c j e l i n a
3 :: PHP pristup MySQL bazi 49
Napravimo bazu ulazni_racuni 49 Objašnjenje 50 PHP kao korisnik 50 Sjetimo se Command Prompta i MySQL monitora 50 PHP prolazi isti gore opisani postupak 51 Kako se razumiju PHP i MySQL 51 Vidimo što nam je baza vratila 51 Objašnjenje 52 A sad želimo vidjeti tablični prikaz 53 vii
Zadaci 54 Rješenja 54 Zadaci 57 Test 57 N a s t a v n a
c j e l i n a
4 :: PHP Blog 59
Što ćemo napraviti? 59 Baza 'blog' 59 Blog - PHP stranice 59 index.php 59 dodaj.php 60 dodaj_pohrani.php 60 admin.php 61 delete.php 62 edit.php 62 edit_pohrani.php 63 Objašnjenje 64 index.php 64 dodaj.php 66 dodaj_pohrani.php 67 GET i POST 68 Nastavak .php ili .html 68 admin.php 69 edit.php 69 edit_pohrani.php 70 delete.php 71 Auto_increment primary key index 71 Zadaci 72 Test 72 N a s t a v n a
c j e l i n a
5 :: PHP Login 74
Što ćemo naučiti? 74 Sesija 74 loginForm.php 75 login.php 75 sigurnosniKod.php 76 odjava.php 76 tajne_konstante.php 77 77 Objašnjenje 77 loginForma.php 77 viii
login.php 78 sigurnosniKod.php 79 odjava.php 81 tajne_konstante.php 82 Zaključak 82 Zadaci 82 Test 83 N a s t a v n a
c j e l i n a
6 :: PHP Objektno orijentirano programiranje 84
Što ćemo naučiti? 84 Klasa 84 Moja prva klasa 85 Objašnjenje klase 85 Svojstva (properties) klase (ili članovi klase, ili varijable klase) 85 Metode 85 $this 86 Objekt 86 Moj prvi objekt 86 Objašnjenje objekta 86 Instanciranje objekta 87 Inicijaliziranje objekta 87 Objekt poziva svojstvo (properties) 87 Objekt poziva metodu 87 Objašnjenje 87 Konstruktor 87 student.php 87 studenti.php 88 Objašnjenje 88 student.php 88 studenti.php 89 Kad otvorimo studenti.php, vidjet ćemo 89 Objašnjenje 89 Klasa nasljednik 89 studentnasljednik.php 89 studenti_nasljednici.php 90 Objašnjenje 90 studentnasljednik.php 90 studenti_naljednici.php 91 Prijenos vrijednosti preko parametara klase u varijable konstruktora 91 Prijenos vrijednosti preko parametara funkcije u varijable funkcije 91 ix
Zaključak 91 Ovo će biti prikazano na web stranici kad otvorimo stranicu studenti_nasljednici.php 91 Objašnjenje 92 Operator :: 92 Dohvat konstante izvana bez instanciranja klase 92 split.php 92 split2.php 93 Kad otvorimo stranicu split2.php vidjet ćemo 93 Objašnjenje 93 Dohvat statičkih svojstava i statičkih metoda iznutra i izvana bez instanciranja klase 93 split1.php 93 Na stranici će biti prikazano ovo 93 Objašnjenje 93 split1.php 93 Kreiramo statičko svojstvo. 94 Kreiramo statičku metodu 94 Pristupamo IZNUTRA konstanti roditelja 94 Pristupamo iznutra svom statičkom svojstvu 94 Pristupamo izvana statičkoj metodi bez instanciranja objekta 94 Na web stranici će biti prikazano ovo 94 Zadaci 94 Rješenje zadataka 95 Test 98 Odgovori na test 98 N a s t a v n a
c j e l i n a
7 :: PHP Smarty 100
Što ćemo naučiti? 100 Razdvajanje XHTML od PHP 100 Instalacija vježbi 100 Cilj vježbi 100 Vježba 1 101 XHTML i PHP zajedno u istom dokumentu 101 Vježba 2 101 XHTML i PHP razdvojeni 101 Alias 102 Objašnjenje 103 templates_c 103 index.php 103 index.tpl 104 Ključne riječi assign i display 104 x
Zaključak 104 Vježba 3 104 Sadržaj iz baze podataka bez smartya 104 Vježba 4 105 Podaci iz baze podataka prikazani pomoću Smartya 105 index.tpl 106 index.php 106 Objašnjenje 106 templates_c 107 Vježba 5 107 Više sadržaja 107 index.tpl 107 index.php 108 Objašnjenje 108 Vježba 6 108 zaglavlje.tpl 108 index.tpl 109 podnozje.tpl 109 index.php 109 templates_c 109 Objašnjenje index.tpl 109 Vježba 7 110 array 110 index.php 110 index.tpl 110 Web stranica će prikazati ovo 110 Vježba 8 110 Asocijativni array 110 index.php 110 index.tpl 111 Web stranica 112 Objašnjenje 112 Zaključak 113 N a s t a v n a
c j e l i n a
8 :: PHP SMARTY i PEAR 114
Što ćemo naučiti? 114 Pripreme za vježbe 114 Alias 114 Mape za vježbe 115 Vježba 1 115 xi
konfiguracija.inc.php 115 uspostavljanje_smarty.php 115 vrh_aplikacije.php 115 U mapi CONFIGS kreirajte ovaj dokument 116 web_site.conf 116 U mapu BIBLIOTEKE ide mapa Smarty 116 U mapi TEMPLATES kreirajte ove dokumente 116 index.tpl 116 zaglavlje.tpl 116 U mapi k1 kreirajte 116 Web stranica će prikazati ovo 116 templates_c 117 Objašnjenje 117 konfiguracija.inc.php 117 uspostavljanje_smarty.php 118 vrh_aplikacije.php 118 Mapa k1 119 index.php 119 Mapa templates 119 index.tpl 119 Zaključak 119 Vježba 2 120 Priprema za vježbu 2 120 PEAR 120 Instalacija PEAR-a 120 Kreiranje baze podataka 'knjigagostiju' 120 Što će nam prikazati web stranica na kraju ove vježbe 121 Projektiranje web aplikacije u tri sloja 122 Podatkovni sloj 122 podatkovni_objekt.php 122 Poslovni sloj 122 poslovni_objekt.php 123 Prezentacijski sloj 123 knjiga_gostiju.tpl 123 function.load_knjiga_gostiju.php 123 index.tpl 124 zaglavlje.tpl 125 Ostale potrebne nove datoteke i promjene na postojećim datotekama 125 index.php 125 xii
vrh_aplikacije.php 125 uspostavljanje_smarty.php 125 konfiguracija.inc.php 125 dno_aplikacije.php 126 bazapodataka.php 126 Otvorite u web pregledniku aplikaciju Knjiga gostiju 127 Objašnjenje 127 Put kojim je sadržaj stigao iz baze do web stranice 127 index.php 127 vrh_aplikacije.php 128 konfiguracija.inc.php: 128 uspostavljanje_smarty.php: 129 bazapodataka.php.php: 130 Inicijaliziranje prvog objekta 132 Podsjetimo se do kud smo stigli u procesuiranju naše aplikacije 133 poslovni_objekt.php 133 podatkovni_objekt.php 133 poslovni_objekt.php NASTAVAK 134 Na ovom mjestu procesuiranja naše aplikacije 135 Gdje smo stigli? 135 Nastavak objašnjenja 135 index.php 135 index.tpl 135 Poziv {include file="knjiga_gostiju.tpl"} pokrenuo je procesuiranje prezentacijskog sloja 136 function.load_knjiga_gostiju.php 136 function.load_knjiga_gostiju.php – NASTAVAK 139 knjiga_gostiju.tpl 140 Gdje smo stigli? 141 dno_aplikacije.php 141 Kraj procesuiranja 143 Sve instrukcije naše aplikacije na jednom mjestu 143 Runtime aplikacije 147 Sažetak runtimea aplikacije 147 Koliko je u relanomrealnom vremenu trajao runtime? 147 A sad ispričajmo u kratko što su radili naši objekti 148 Još jedan pogled na cijeli naš program - index.php 149 Ostale vježbe 149 Što slijedi 149 N a s t a v n a
c j e l i n a
9 :: CMS 150 xiii
Što ćemo naučiti? 150 Što je CMS 150 Za one koji ovdje počinju raditi po knjizi 151 CMS – instalacija 151 CMS - administriranje 151 Upload slika 153 Promidžba 154 Programirajmo CMS 155 Vježba 1 155 Baza podataka 155 prazna.sql 155 Nakon što smo unijeli podatke naša baza izgleda ovako 157 Relacije među tablicama 159 Vježba 2 160 Rješenje 161 Objašnjenje 164 Vježba 3 168 Objašnjenje 170 Vježba 4 170 Kreiranje URL 170 index.php 171 Linkovi 172 Vježba 5 174 Objašnjenje 176 Vježba 6 179 Vježba 7 180 Vježba 8 185 Tražilica 186 Vježba 9 189 Objašnjenje tražilice 189 Zadatak 190 Zadatak 190 Vježba 10 190 SQL Join 190 Vježba 11 191 Administracija CMS 191 templates 193 smarty_plugins 193 Sažetak 193 xiv
N a s t a v n a
c j e l i n a
1 0 :: E-trgovina 195
Što ćemo naučiti? 195 Baza podataka 195 trgovina.sql 195 PHP Smarty PEAR kôd 196 Plaćanje 196 Promjene koje je potrebno učiniti u postojećem kôdu cms-a 196 index.tpl 196 Dodaj u košaricu 197 jedinica.tpl 197 jedinica_kratko.tpl 198 Administracija e-trgovine 198 E-trgovina u radu 198 Sažetak 199 Literatura 199
xv
Nastavna cjelina 1
:: PHP za početnike
Što ćemo naučiti u prvoj nastavnoj cjelini? U prvoj nastavnoj cjelini ćemo instalirati PHP i Apache na svoje Windows računalo. Počet ćemo od jedne jedine programske instrukcije i naučiti prve ključne riječi print i echo. Slijede PHP varijable. Naučit ćemo koliko žive varijable, a koliko žive programi. Pomoću HTML forme ćemo upoznati najčešće korištene globalne varijable. Nastavnu jedinicu ćemo završiti s IF uvjetnom strukturom i petljama.
Instalacija PHP Upozorenje: Ako već imate instaliran PHP i Apache preskočite ovo poglavlje. Kako ćete znati da li je na vašem računalu instaliran PHP i Apache? Ovako: 1.
Start/Upravljačka ploča (Control Panel)/Administrativni alati (Administrative Tools)/Servisi (Service)/
2.
Ako je na popisu servisa Apache(broj verzije) na vašem računalu je već instaliran web poslužitelj Apache. Najvjerojatnije je onda na vašem računalu već instaliran i PHP. Preskočite poglavlje o instalaciji i prijeđite odmah na poglavlje 'Moje prve programske instrukcije'.
Zaustavite rad servisa IIS Admin Provjerite postoji li na vašem računalu Microsoftov Web poslužitelj IIS. Ako postoji, zaustavite njegov rad ovako: 1.
Start/Upravljačka ploča (Control Panel)/Administrativni alati (Administrative Tools)/Servisi (Service)/Klik na IIS Admin ako postoji u popisu servisa/Klik na Stop.
Tako ste pojednostavnili instalaciju Web poslužitelja Apache.
Instalacija Apachea i PHP Apache je Web poslužitelj. PHP je programski jezik. Download s Interneta XAMPP for Windows. To je najbolji Windows Installer Apachea, PHP-a i MySQL-a. Tipkajte u Google 'xampp' i dobit cete url za download. Kad je XAMPP jednom na vašem računalu, dva puta klik na isti, prihvatite i potvrdite sve što vam ponudi i za par minuta ćete imati sve potrebno za programiranje u PHP-u. Ako na kraju instalacije na svom računalu vidite XAMPP Control Panel u kojem piše Apache Running, možete početi programirati u PHP.
Moje prve programske instrukcije u PHP-u Prva PHP aplikacija U Notepad napišite sljedeći PHP kôd: Pohranite Notepad dokument pod imenom test.php u mapu C:\Program Files\xampp\htdocs\ Napomena: dobra je praksa u polju File type ('Spremi u obliku') odabrati All files ili Svi dokumenti, jer se zna dogoditi da Notepad, suprotno našoj volji, doda još i nastavak .txt, pa će ime datoteke biti test.php.txt. Ukoliko je na vašem računalu podešeno da se nastavci ne vide, onda ćete u Windows Exploreru vidjeti samo test.php, a ne i onaj posljednji nastavak .txt. Da li ćete nastavak vidjeti ili ne, podešava se u Start/Control Panel/File Option.
Pogledajmo u radu našu prvu PHP aplikaciju Otvorite Web preglednik. U polje Address tipkajte ovu adresu: http://localhost/test.php Enter
2
PHP5 Škola E-92
Objašnjenje moje prve PHP aplikacije •
PHP kodiranje uvijek počinjemo s
•
Kao svako programiranje tako i ovo s PHP se sastoji od instrukcija.
•
Instrukcijama moramo na kraju pisati točku zarez ;
•
U gornjem primjeru smo samo pozvali PHP ugrađenu funkciju phpinfo().
•
Ta funkcija se izvršila na Apacheu i Apache nam je poslao rezultat te funkcije.
•
Rezultat te funkcije je impresivan HTML dokument s masu podataka o Apacheu, PHP-u i ostalom softwareu kojeg smo dobili s njima.
•
Već na početku smo se uvjerili kako mogu biti moćne i učinkovite ugrađene funkcije.
Moja druga PHP aplikacija U primjeru test.php rezultat funkcije je HTML dokument. Kad ne koristimo ugrađene funkcije koje će umjesto nas napisati HTML tagove, te HTML tagove moramo pisati mi: 1.
U Notepad dokument tipkajte ovaj PHP programski kôd:
Učenje na daljinu <meta http-equiv="Content-Type" content="text/html; charset=windows-1250" /> PHP5 Škola E-92
3
2.
Pohranite dokument pod imenom pr2.php u mapu C:\Program Files\xampp\htdocs\
3.
Otvorite pr2.php u Web pregledniku pomoću adrese http://localhost/pr2.php
Objašnjenje moje druge PHP aplikacije 1.
PHP kôd pišemo unutar HTML kôda.
2.
PHP kôd je otok unutar HTML dokumenta.
3.
PHP se izvršava na Apacheu.
4.
Rezultat tog izvršavanja zajedno s preostalim HTML kôdom, Apache šalje Web pregledniku.
5.
U Web preglednik će uvijek stići HTML dokument bez PHP kôda.
6.
U gornjoj PHP aplikaciji smo upoznali ključnu riječ "echo". Isti rezultat bismo dobili i s ključnom riječi "print".
7.
"echo" i "print" u PHP jeziku ispisuju na ekranu ono što smo naveli unutar navodnika.
8.
Rezultat gornje PHP aplikacije je pojava Dobar dan! na ekranu.
9.
Pogledate li izvorni kôd dobijene stranice vidjet ćete HTML kôd i Dobar dan!.
10. Rezultat gornje PHP aplikacije, otoka unutar HTML dokumenta, je: Dobar dan! 11. Apache je umjesto php programa poslao web pregledniku rezultat tog programa. Tako web stranice na našim ekranima uvijek sadrže rezultate a ne i programski kôd PHP-a koji je stvorio te rezultate.
4
PHP5 Škola E-92
Zadaci Zadatak 1. 1.
Provjerite postoji li na vašem računalu usluga IIS Admin. Ako postoji, zaustavite je.
2.
Ponovo pokrenite uslugu IIS Admin.
3.
Ponovo zaustavite uslugu IIS Admin.
Zadatak 2. 1.
Instalirajte Apache i PHP.
2.
Koristite XAMPP for Windows.
Zadatak 3. 1. Napišite, pohranite i isprobajte u radu svoj prvi PHP program: Zadatak 4. 1.
Isprogramirajte, pohranite i isprobajte u radu svoju drugu .php stranicu: Učenje na daljinu <meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />
Test Zaokružite točan odgovor: 1.
2.
3.
IIS je a.
Web poslužitelj otvorenog kôda
b.
Microsoftov Web poslužitelj
phpinfo(); je jedna instrukcija. a.
Da.
b.
Ne.
Funkcija phpinfo() se izvršila na Apache-u. a.
Ne.
b.
Da. PHP5 Škola E-92
5
4.
5.
6.
7.
8.
9.
Apache je poslao našem Web pregledniku rezultat funkcije phpinfo(). a.
Ne.
b.
Da.
Rezultat funkcije phpinfo() je impresivni HTML dokument. a.
Da.
b.
Ne.
PHP pišemo unutar HTML kôda. a.
Da.
b.
Ne.
PHP je otok unutar HTML dokumenta. a.
Da.
b.
Ne.
PHP se u našem primjeru izvršava na Apacheu. a.
Ne.
b.
Da.
Stranice koje imaju nastavak .PHP u web preglednik stižu kao čiste HTML stranice bez PHP kôda. a.
Da.
b.
Ne.
PHP varijable Tipovi PHP varijabli PHP ima sedam tipova varijabli. To su: string, integer, float, boolean, array, objekt i resurs. String sadrži znakove i ima svojstvo teksta bez obzira o kojim se znakovima radilo. Integer sadrži cijele brojeve, negativne i pozitivne. Float sadrži decimalne brojeve i cijele brojeve. Boolean sadrži 1 ili 0, samo ta dva broja koja zamjenjuju ključne izraze "true" - istina(1) i "false" nije istina (0). Array je specijalna varijabla po tome što može sadržavati više vrijednosti istovremeno. To su članovi arraya i razlikuju se po ključu (imenu) i indeksu (0, 1, 2, ...). Objekt je još specijalnija varijabla od arraya u toliko što pored više članova istovremeno, još sadrži i svoje funkcije (metode) . Resurs je sve što nije PHP podatak. Na primjer: $x=mysql_query("SELECT * FROM dobavljaci"); Varijabla $x je ovdje dobila sve podatke iz tablice 'dobavljaci', ali oni nisu u strukturi array, niti bilo kojoj drugoj koja bi se mogla odmah koristiti. Zato je varijabla $x u ovoj instrukciji pohranila resurs. Tek će funkcija mysql_fetch_array() od resursa $x napraviti asocijativni array, o kojem će biti puno riječi u nastavku knjige. $x=mysql_query("SELECT * FROM dobavljaci"); while($redak = mysql_fetch_array($x)) U ovoj knjizi ćemo se dobro upoznati sa svim ovim varijablama. 6
PHP5 Škola E-92
Varijable 1 + 2 = 3 1.
U Notepadu tipkajte ovu php stranicu: PHP varijable <meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />
Pohranite pod nazivom pr3.php u mapu htdocs. Otvorite pr3.php u Web pregledniku preko adrese http://localhost/pr3.php Otvorit će se web stranica na kojoj piše 3.
Objašnjenje 1 + 2 = 3 U prethodnom zadatku smo tipkali ovaj PHP program: Ovaj PHP program ima tri instrukcije. Svaka instrukcija završava s točkom zarez i radi lakšeg održavanja programa pisana je u zaseban redak. To je dobra programerska praksa. Apache izvršava PHP program redom odozgo prema dolje, instrukciju po instrukciju. U prvoj instrukciji smo deklarirali i inicijalizirali varijablu x. U PHP programu varijable deklariramo tako što im ispred imena pišemo znak dolara $. Inicijalizirati varijablu znači dodijeliti joj vrijednost, što činimo pomoću znaka jednakosti i ispisa vrijednosti na desnoj strani tog znaka. Kad vrijednost na desnoj strani pišemo bez navodnih znakova " " znači da je vrijednost broj. S navodnim znakovima bi vrijednost bila string (tekst). U prvoj instrukciji uvodimo u program varijablu $x i dodijeljujemo joj vrijednost broj 1. U drugoj instrukciji uvodimo u program varijablu $y i dodijeljujemo joj vrijednost broj 2. U trećoj instrukciji pomoću PHP ključne riječi echo, razmaknice, pa ispisa $x + $y želimo da PHP ispiše na ekran zbroj dviju varijabli. Kao i mi u matematici, tako i PHP za zbrajanje koristi znak +. To je objašnjenje onog što se događalo u glavi programera dok je pisao ovaj program od tri instrukcije. Što se događa na server računalu i serveru Apache za vrijeme izvršavanja ovog PHP programa? U prvoj instrukciji je Apache zauzeo jedno mjesto u memoriji (RAM-u) servera, imenovao to mjesto s $x i na tom mjestu pohranio vrijednost 1. PHP5 Škola E-92
7
U drugoj instrukciji je Apache zauzeo još jedno mjesto u memoriji (RAM-u) servera, imenovao to mjesto s $y i na tom mjestu pohranio vrijednost 2. U trećoj instrukciji je Apache najprije pročitao ključnu riječ 'echo' i znao da ono što slijedi treba ispisati u HTML dokument. Što slijedi u instrukciji iza echo? Slijedi $x i on to ime traži u memoriji RAM-u, pronalazi i uzima vrijednost koju u toj "ladici" zatiče. Zatim slijedi +. Apache prepoznaje taj znak matematičke operacije zbrajanja, uzima ga u "svoju memoriju" i ide dalje. Nailazi na varijablu $y, traži je u RAM-u, i pronalazi u istoimenoj "ladici" vrijednost 2, uzima tu vrijednost 2 u svoju memoriju. U Apachevoj memoriji, a to je RAM servera, se posložila cijela treća instrukcija. Apache razumije tu instrukciju i izvršava je. Zbraja 1 i 2. Rezultat tog izvršavanja je "ispiši 3 u HTML dokument". To se i događa. HTML stranica dobiva 3 u sekciju . Program je izvršen. Apache je naišao na znak ?>. Taj znak Apacheu govori "program je završen". Što Apache učini nakon tog znaka? Prestane izvršavati instrukcije jer ih nema. To je kraj tog PHP programa, ali ne i kraj fizičkog dokumenta na kojem se taj program nalazi. Još uvijek su u RAM-u GLOBALNE varijable $x i $y: $x = 1; $y = 2; Tek nakon , PHP obriše varijable $x i $y. ?>