Imeti statično spletno stran danes ni več dovolj. Potrebe po interakciji z uporabnikom so tiste, ki so ključnega pomena za obiskovalca kot lastnika strani. To nam omogoča dinamična spletna stran.
Kaj sploh je dinamična stran ? To je stran, ki se odziva glede na razne pogoje, kot so ura, zahtevani podatki uporabnika, vsebina podatkovne baze itd.
Mi bomo uporabili za izdelavo dinamične spletne strani PHP. PHP pomeni PHP: Hypertext Preprocessor. Je siroko uporaben, odprto kodni HTML vstavljiv skriptni jezik. V HTML dokumentu je PHP skripta (sintaksa podobna C-ju, Javi, Perl-u) ograjena s posebnima PHP oznakama. Programer lahko preklaplja med HTML in PHP kodo in ker se PHP koda izvrsi na strezniku (server-side) , obiskovalec ne vidi PHP kode, ampak le rezultat, npr. HTML, XHTML, XML, sliko. 21521m1217v PHP lahko naredi vsako opravilo, ki ga zmorejo ostali CGI programi, njegova moč lezi v kompatibilnosti z veliko tipi baz, mnogo vgrajenih funkcij za različna dela, podpori različnim protokolom (HTTP, SNMP, NNTP, POP3, IMAP, .), omogoča pa tudi izdelavo svojih vključkov, ki nato delujejo kot celota. PHP je leta 1994 naredil Rasmus Lerdorf, v sredini 1997 sta priskočila na pomoč Zeev Suraski in Andi Gutmans. Na novo sta napisala »parser« in nastala je verzija PHP3. Danes PHP ze ponosno nosi stevilko 5, katera ima dodatne zmoznosti kot so seje, »pravo« objektno programiranje ter seveda je dosti hitrejsi kot njegov predhodnik.
PHP je prvotno bil namenjen spletnemu programiranju, vendar se je zaradi svoje preproste sintakse razsiril tudi na druga področja, kot so npr. ukazni (vrstični) programi, pravi programi z uporabniskim vmesnikom ipd. V tej soli si bomo ogledali kaj zmore PHP v spletni aplikaciji. Preden začnemo moramo razumeti koncept kako poteka naso brskanje po spletu. Najprej uporabnik zahteva stran, preko interneta se prenese zahtevek na aplikacijski streznik, katerega obdela. Aplikacijski streznik po potrebi uporabi skriptni jezik (v nasem primeru PHP), podatkovno bazo ipd. Po končali obdelavi streznik poslje rezultat nazaj uporabniku preko interneta.
Za razvoj svoje aplikacije bomo potrebovali HTTP spletni streznik s podporo PHP, tekstovni urejevalnik, brskalnik in za poznejse delo tudi MySQL streznik ter phpMyAdmin. Naj opozorim da bomo zaradi poznejsih primerov potrebovali PHP verzije 5. Pričakovana Vase znanje je dobro znanje HTML jezika, za poznejse delo z bazami znanje SQL jezika, osnove XML jezika in regularnih izrazov. Preden začnemo bi rad omenil da ima PHP zelo dober priročnik o celotnem jeziku. Opis delovanja, rezerviranih besed, seznam funkcij - VSE. Dosegljiv je na naslovu https://www.php.net na povezavi documentation.
Tako kot pri vsakem začetku programiranja bomo tudi mi napisali svojo »Hello world« skripto. Oznaka za začetek PHP kode je »<?php«, krajsa, ki ne dela na vseh streznikih je »<?«, oznaka za konec kode pa je »?>«. z ukazom »echo« izpisemo dano na izhod, v nasem primeru brskalnik. Torej odprimo tekstovni urejevalnik in napisimo naso skripto:
<?php echo 'Pozdravljen svet!'; ?> |
<tukaj je Slika1>
Shranimo kot hello.php v korenski imenik streznika in odtipkajmo naslov https://localhost/hello.php. Prikaze sem nam napis »Pozdravljen svet!«.
Poglejmo si kaj se je zgodilo. Zgoraj smo ze govorili kako poteka komunikacija med brskalnikom in streznikom. S tem ko smo vpisali naslov v brskalnik in potrdilo smo zahtevali dokument iz streznika. Ker je php končnica na strezniku registrirana kot PHP aplikacija, se je dokument izvedel kot PHP program in vrnil rezultat. Rezultat se je prikazal v brskalniku. Ker se je koda izvedla na strezniku je brskalnik dobil le rezultat in ne kode. Taksnemu jeziku se reče server-side. Druga vrsta so client-side, to je npr. JavaScript, ActionScript itd. Ti se izvedejo na odjemalčevem računalniku zato ne morejo biti tako zmogljivi zaradi varnosti. Če bi odprli ta dokument lokalno ali na strezniku, kjer php končnica ni registrirana kot PHP aplikacija bi se nam prikazala izvorna koda skripte, kar pa seveda ne zelimo.
Omenjeno je bilo da je PHP HTML vstavljiv. To pomeni, da lahko preklapljamo med HTML in PHP kodo kjerkoli in kadarkoli zelimo. Poglejmo si primer.
<html> <head> <title>Zdravo</title> </head> <body> <?php echo 'Zdravo !'; ?> </body> </html> |
Na začetku vidimo golo HTML kodo, za body oznako je začetek PHP kode pred koncem body oznake konec PHP kode in nato dalje spet HTML. Če skripto pozenemo preko streznika ne bo nikjer sledi o PHP kodi ampak bo namesto nje pisalo le »Zdravo!«. V tem primeru nam PHP ne pokaze svoje zmogljivosti, saj bi lahko za isti rezultat uporabili le HTML. Sedaj si bomo pogledali spremenljivki, ki jih HTML ne pozna.
Spremenljivka nam omogoča da ji damo ime, ki bo vsebovala podatke, brez da eksplicitno določimo kaj ti podatki so. Spremenljivkam v PHP-ju ni potrebno določati tipa, čeprav ga imajo. Sproti bomo spoznavali tipe, ki jih pozna PHP, prej pa se bomo naučili dela z spremenljivkami. Poimenovanje spremenljivk je dokaj pomembno, tako da bomo tudi za poznejse pregledovanje vedeli kaj posamezna spremenljivka nosi v sebi.
<?php $revija = 'Pl@net PC'; echo $revija; ?> |
V tem primeru smo priredili spremenljivki z imenom revija vrednost »Pl@net PC« in to spremenljivko izpisali. Spremenljivka se začne z znakom $ sledi ime spremenljivke. Velike in male črke se razlikujejo. Veljavno ime spremenljivke lahko vsebuje stevilke (0-9), črke angleske abecede (a-Z), podčrtaj (_) in znake ASCII tabele med 127 in 255, vendar se ne sme začeti s stevilko. V zgornjem primeru smo določi spremenljivki vrednost tipa niz. Z znakom ' smo povedali da je vsebina tipa niz. Niz lahko določimo tudi z znakom ", kateri se razlikuje s prejsnjim po tem da se niz med dvojnima narekovajema izvede. To pomeni če napisemo spremenljivko znotraj dvojnih narekovajev se bo izpisala njena vsebina. To pa ne velja za enojne narekovaje.
<pre><?php $revija = 'Pl@net PC'; $stevilka = 9; echo "$revija $stevilka \n"; echo '$revija $stevilka \n'; ?></pre> |
<Tukaj je slika2>
V prvem primeru se bo izpisalo pričakovano, v drugem ne, kajti niz se ne izvede ampak se njegova vsebina le izpise. V tem primeru vidimo tudi da je spremenljivka stevilka tipa stevilo. Od niza se razlikuje po tem ker ga ne obdajajo narekovaji in njena zaloga vrednosti so lahko le stevila. Zraven niza in stevila pozna PHP se tip double - stevila z decimalnimi mesti, boolean - zaloga vrednosti sta lahko true ali false, array - polja, object- objekt, resource - vir (iz baze, datoteke ipd.) ter null - predstavlja nično vrednost.
Do zdaj smo uporabljali spremenljivke le da smo jim določili vrednost in jih izpisali. S pomočjo operaterjev lahko različne spremenljivke sestevamo, odstevamo itd., tipa niz lahko sestavljamo, rezemo. Kadar uporabljamo več operatorjev skupaj, moramo poznati njihovo prioriteto. Visji ima večjo prioriteto.
Asociativnost |
Operatorji |
levo | |
levo |
or |
levo |
xor |
levo |
and |
desno |
|
levo |
= += -= *= /= .= %= &= |= ^= ~= <<= >>= |
levo | |
levo | |
levo |
&& |
levo | |
levo | |
levo |
& |
neasociativen | |
neasociativen |
< <= > >= |
Levo |
<< >> |
Levo | |
Levo | |
desno |
! ~ ++ -- (int) (float) (string) (array) (object) @ |
desno | |
neasociativen |
new |
Prioriteta operatorjev
Poznamo več vrst operatorjev. Aritmetični, kateri nam omogočajo aritmetične operacije. Sestevanje (+), odstevanje (-), mnozenje (*), deljenje(/), modul (%) - ostanek pri deljenju. Prireditveni operatorji priredijo vrednost spremenljivki. (=, +=, -=, *=, /=, %=, .=). Bitni operatorji spremenijo bite spremenljivke glede na vrednost izraza. (& , |, ^, ~, <<, >>). Primerjalni operatorji (==, ===, !=, !==, <, <=, >, >=), razlika med == in === aoperatorjema je v tem da slednji primerja tudi tip. Poseben primerjalni operator je t.i. trojni ali »?:«. Operatorji nadzora nad napakami (@). Operator @ pove naj se za dan izraz ne izpise napaka. Izvrsljivi operator (`), dani izraz med dvema izvrsljivima operatorjema smatra kot sistemski ukaz. Povečevalni in zmanjsevalni operatorji (++, --) poveča ali zmanjsa dano vrednost spremenljivki. Če stoji operator na desni strani, izraz vrne vrednost in se sele nato poveča, če pa je na levi pa se najprej poveča in nato vrne vrednost. Logični operatorji (and, or, xor, !, &&, ||). Operatorji zdruzijo dva izraza v enega.
Poglejmo si se uporabo operatorjev na primeru. Zraven v primeru bom uporabljal komentarje.
<?php Tole je več vrstični komentar ki se začne s / in * ter konča s * in / // tole je enovrstični komentar # prav tako tudi to $a = 3; // uporabljen prireditveni operator $a += 5; // tudi ta, pristeje 5 k vrednosti $a torej 8 echo $a; $b = "Zdravo "; // priredimo vrednost spremenljivki b $b .= "Kako kaj ?"; // dodamo k $b "Kako kaj ?", enako kakor $b = $b . "Kako kaj ?"; echo $b; echo // uporabljen bitni operator rezultat je 5 echo "12" ^ "9"; // rezultat je Backspace znak (ASCII 8) // ('1' (ASCII 49)) ^ ('9' (ASCII 57)) = #8 echo "hallo" ^ "hello"; // rezultat so ASCII vrednosti #0 #4 #0 #0 #0 // 'a' ^ 'e' = #4 $izhod = `ls -al`; // izvrsljiv operator ki izvede ukaz ls -al echo "<pre>$izhod</pre>"; // rezultat priredimo spremenljivki izhod in jo izpisemo $a = 5; echo "Vrednost 5: " . $a++; // povečevalni operator, vrne 5 in poveča vrednost echo "Vrednost 6: " . $a; // izpise 6 ?> |
S tem bi zaključili prvi del sole. Naslednjič si bomo ogledali odločitvene stavke, zanke, manipuliranje s podatki, ter počasi bomo vključili podatkovno bazo.
|