UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene...

102
Dejan Kos UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH REŠITEV Diplomsko delo Maribor, junij 2009

Transcript of UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene...

Page 1: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Dejan Kos

UPORABA PHP5, XML, MySQL in AJAX ZA

RAZVOJ SPLETNIH REŠITEV

Diplomsko delo

Maribor, junij 2009

Page 2: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna
Page 3: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

I

Page 4: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna
Page 5: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

I

Diplomsko delo visokošolskega strokovnega študijskega programa

UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH REŠITEV

Študent: Dejan Kos

Študijski program: Visokošolski, Računalništvo in informatika

Smer: Informatika

Mentor: Izr. prof. dr. Matjaž B. Jurič, univ. dipl. inž.

Somentor: doc. dr. Boštjan Brumen

Lektorica: Petra Tori, prof. slov. in univ. dipl. pedagog

Maribor, junij 2009

Page 6: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

II

Zahvala

Zahvaljujem se svojemu mentorju za pomoč

pri diplomski nalogi in projektu

www.potovalka.si. Predvsem pa bi se

zahvalil svojemu dekletu za potrpežljivost in

spodbudo pri študiju, prav tako staršem.

Projekt www.potovalka.si pa ne bi nastal

brez dobrega prijatelja Roka Beigota.

Page 7: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

III

UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH

REŠITEV

Klju čne besede : računalništvo, Php5, MySQL, Xml, Ajax, spletne rešitve

UDK: 004.774/.777(043.2)

Povzetek

V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal

www.potovalka.si. Opisane so tehnologije PHP5, MySQL (podatkovna baza), AJAX, ki

omogoča asnihrono prikazovanje podatkov, in XML, v katerem so lahko shranjeni podatki za

nadaljnjo uporabo. Prav tako so opisane konkurenčne tehnologije ter prednosti in slabosti

izbranih tehnologij.

Cilj diplomske naloge je, da predstavimo razvoj konkretnega portala, od ideje, do

zbiranja specifikacij, načrtovanja, izbire tehnologij ter same realizacije. Opisane so vse

funkcionalnosti, ki jih ponuja portal in do katerih lahko dostopajo uporabniki. Prav tako so

opisane funkcionalnosti, ki jih lahko uporabljajo uredniki. Predstavili smo tudi realne težave,

do katerih smo prišli pri samem razvoju, tako s tehničnega vidika, kot s postavitvijo portala

na internet.

Page 8: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

IV

USING PHP5, XML, MySQL AND AJAX FOR THE

DEVELOPMENT OF WEB SOLUTION

Key Words: computer science, Php5, MySQL, Xml, web solotions UDK : 004.774/.777(043.2) Abstract

In the diploma work the technologies that were used to develop the www.potovalka.si

portal are described: PHP5, MySQL, AJAX that presents the data asynchronously and XML

that can store the data for future use. The benefits and weaknesses of those technologies are

described along with the rival technologies.

The aim of my diploma work is to present the development of a real-world portal. The

idea, the requirements specifications, planning, the choice of technologies and the

construction are described. The functional characteristics of the portal, which the user can

access are described along with the characteristics the editors can use. The problems that may

occur in the process of the development and during the setting up of the portal on the internet

are also described.

Page 9: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

V

KAZALO 1. UVOD ................................................................................................................................ 1 2. OPIS TEHNOLOGIJE PHP............................................................................................... 2

2.1. Uporaba tehnologije PHP........................................................................................... 3 2.2. Sintaksa tehnologije PHP........................................................................................... 4 2.3. Vrste podatkov ........................................................................................................... 6 2.4. Vnaprej definirane spremenljivke .............................................................................. 6 2.5. Polja............................................................................................................................ 7 2.6. Značilnosti tehnologije PHP....................................................................................... 9 2.7. Prednosti tehnologije PHP ......................................................................................... 9 2.8. Slabosti tehnologije PHP.......................................................................................... 10 2.9. Primerjava PHP z ostalimi programskimi jeziki ...................................................... 10

2.9.1 Zbiralnik »smeti« ............................................................................................. 10 2.9.2 Statične ali dinamične tipizacije....................................................................... 11 2.9.3 Interaktivni ali serije......................................................................................... 11 2.9.4 Obseg................................................................................................................ 12 2.9.5 Priljubljenost .................................................................................................... 12 2.9.6 Abstrakcija ....................................................................................................... 12 2.9.7 Struktura knjižnic ............................................................................................. 13

3. OPIS PODATKOVNE BAZE MySQL ........................................................................... 13 3.1. Orodja za upravljanje MySQL podatkovnih baz......................................................14 3.2. Podpora podatkovne baze MySQL .......................................................................... 16 3.3. Arhitektura ............................................................................................................... 16 3.4. Tabele ....................................................................................................................... 18 3.5. Povezovanje MySQL baze s PHP skripto ................................................................ 20 3.6. Prednosti podatkovne baze MySQL......................................................................... 21 3.7. Slabosti podatkovne baze MySQL........................................................................... 22 3.8. Konkurenca MySQL podatkovne baze .................................................................... 22

4. OPIS TEHNOLOGIJE AJAX.......................................................................................... 22 4.1. Tehnologija AJAX in tehnologija WEB 2.0 ............................................................ 24 4.2. Zgodovina................................................................................................................. 25 4.3. Document Object Model (DOM) ............................................................................. 27 4.4. Tehnologija XML in tehnologija XSLT................................................................... 28

4.4.1 XSLT Procesor................................................................................................. 28 4.5. XMLHttpRequest ..................................................................................................... 31

4.5.1 XMLHttpRequest (XHR) zahteva....................................................................31 4.5.2 Ustvarjanje XMLHttpRequest objekta............................................................. 32 4.5.3 Metode objekta XMLHttpRequest ...................................................................34 4.5.4 Lastnosti XMLHttpRequest ............................................................................. 35

4.6. Konkurenčne tehnologije ......................................................................................... 35 4.7. Prednosti in slabosti tehnologije AJAX ................................................................... 36

5. OPIS TEHNLOGIJE XML .............................................................................................. 37 5.1. Oznake...................................................................................................................... 37 5.2. Deklariranje dokumenta ........................................................................................... 38 5.3. Dobro oblikovan dokument...................................................................................... 39 5.4. Komentarji................................................................................................................ 40 5.5. XML imenski prostor (Namespace)......................................................................... 41 5.6. Unicode in znakovni nabor ...................................................................................... 43 5.7. Uporaba XML-ja v praksi ........................................................................................ 44

Page 10: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

VI

5.8. Prednosti in slabosti XML-ja ................................................................................... 44 6. SPLETNI PORTAL www.potovalka.si ........................................................................... 45

6.1. Diagram primerov uporabe ...................................................................................... 46 6.1.1 Diagram primerov uporabe uporabnika ........................................................... 46 6.1.2 Diagram primerov uporabe ponudnika ............................................................ 47 6.1.3 Diagram primerov uporabe administratorja ..................................................... 48

6.2. Arhitekturni načrt ..................................................................................................... 49 6.3. Načrt izdelave portala............................................................................................... 50

6.3.1 Izbira tehnologij in ponudnika spletnega prostora ........................................... 50 6.3.2 Struktura datotek .............................................................................................. 50 6.3.3 Umestitev tehnologij v portal........................................................................... 51

6.4. Specifikacija ............................................................................................................. 52 6.4.1 Funkcije za uporabnike .................................................................................... 52 6.4.2 Funkcije za ponudnike ..................................................................................... 53 6.4.3 Funkcije za administracijo ............................................................................... 53

6.5. Podrobnejši opis funkcionalnosti ............................................................................. 54 6.5.1 Prva stran.......................................................................................................... 54 6.5.2 Prva podstran.................................................................................................... 56 6.5.3 Druga podstran (podrobnejši opis ponudbe) .................................................... 56 6.5.4 Napredno iskanje.............................................................................................. 58 6.5.5 Forum ............................................................................................................... 59

6.6. Podatkovna baza....................................................................................................... 59 6.7. Ogrodje aplikacije .................................................................................................... 62 6.8. Moduli ...................................................................................................................... 63

6.8.1 Levi modul ....................................................................................................... 63 6.8.2 Desni modul ..................................................................................................... 66 6.8.3 Glava modul ..................................................................................................... 66 6.8.4 Noga modul ...................................................................................................... 67

6.9. Forum ....................................................................................................................... 67 6.10. Namen portala ...................................................................................................... 68 6.11. Kratek opis ponudbe............................................................................................. 69 6.12. Podroben opis ponudbe ........................................................................................ 70 6.13. Administracija ...................................................................................................... 73 6.14. Galerija ................................................................................................................. 75 6.15. Napredno iskanje.................................................................................................. 76

6.15.1 1. Sklop............................................................................................................. 76 6.15.2 2. Sklop............................................................................................................. 77

6.16. Za turistične agencije ...........................................................................................78 6.17. Oglaševanje .......................................................................................................... 79

6.17.1 Plačilo na kliku................................................................................................. 80 6.17.2 Zakup »Vroče ta hip« povezav......................................................................... 81 6.17.3 Zakup oglasnega prostora na prvi strani .......................................................... 81 6.17.4 Zakup oglasnega prostora pod ponudbami....................................................... 82 6.17.5 Zakup oglasnega prostora pod ponudbo...........................................................82 6.17.6 Zakup oglasnega prostora na desni strani ........................................................ 83

6.18. Možnost vnašanja ponudb.................................................................................... 83 6.19. Izkušnje ob razvoju portala .................................................................................. 84

7. SKLEP.............................................................................................................................. 86 8. VIRI.................................................................................................................................. 87 9. PRILOGE......................................................................................................................... 89

Page 11: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

VII

9.1. Seznam slik .............................................................................................................. 89 9.2. Seznam preglednic ................................................................................................... 90 9.3. Naslov študenta ........................................................................................................ 90 9.4. Kratek življenjepis.................................................................................................... 90

Page 12: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna
Page 13: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 1

1. UVOD

Danes je veliko tehnologij, s katerimi lahko razvijamo internetne in Windows

aplikacije. Izbor tehnologije, v kateri se bo razvila aplikacija, mora biti trdno premišljen, saj

ne sme biti »ozko« grlo, s katerim se bomo srečali pri samem razvoju. Pred samim razvojem

aplikacije je potrebno pridobiti idejo za razvoj le-te (če jo ne naroči stranka), pridobiti

specifikacije, načrtovati aplikacijo in šele nato izbrati tehnologijo, v kateri se bo aplikacija

razvila. Potrebno je upoštevati vse prednosti/slabosti tehnologij in na podlagi analize izbrati

primerno.

Prvi del diplomskega dela vsebuje predstavitev tehnologij PHP5, MySQL 5, XML in

AJAX, ki povezuje vse skupaj v zaključeno celoto. Predstavili smo tudi praktični primeri za

vsako tehnologijo posebej, ter kako se lahko dopolnjujejo. Vsaka tehnologija ima prednosti in

slabosti, prav tako pa tudi konkurenco. Konkurenca žene razvijalce programskim jezikov

naprej in s tem pripomore, da uporabnik teh programskih jezikov porabijo manj časa za

tehnične probleme, oziroma probleme kako neko zahtevo izvesti in porabijo več časa za

poslovni problem in rešitev le tega. Drugi del diplomske naloge pa vsebuje predstavitev

portala www.potovalka.si in njegovih funkcionalnosti, ki so predstavljene vsem

obiskovalcem, ki portal obiščejo. Portal je izdelan v tehnologijah, ki si opisane v prvem delu.

Predstavljen je celoten razvoj portala, od same ideje, s kakšnim namenom je bil razvit portal,

do zbiranja specifikacij, načrtovanja portala, izbire tehnologij in samega razvoja. Priložene so

tudi slike in opisi posameznih delov strani in modulov, ki so prisotni na portalu.

Pri načrtovanju in razvoju portala smo prišli do nekaterih težav, ki smo jih opisali v

zaključnem delu diplomskega dela. Sicer pa smo z izdelavo tega portala pridobil veliko

izkušenj, ki nam bodo koristile pri nadaljnjih projektih.

Page 14: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 2

2. OPIS TEHNOLOGIJE PHP

PHP (trenutno tri-črkovni rekurzivni akronim za PHP Hypertext Preprocessor, izvirno

pa Personal Home Page Tools, slovenska orodja za osebno spletno stran) je razširjen odprto-

kodni programski jezik, ki je namenjen strežniški uporabi, oziroma za razvoj dinamičnih

spletnih vsebin. Lahko ga primerjamo z Microsoftovim ASP-, VBScript in JScript sistemom,

Sun Mycrosystemovim JSP- in Java sistemom ter CGI- in Perl sistemom. [1] PHP je skriptni

jezik, ki je namenjen za izdelavo dinamičnih spletnih strani. Njegov »oče« je Rasmus Lerdorf,

ki ga je ustvaril leta 1995, danes pa ga ustvarjajo pod PHP Group in je standard za PHP. PHP

je brezplačen programski jezik, združljiv pod licenco PHP Licence in nezdružljiv z licenco

GPL, zaradi omejitve uporabe izraza PHP. Na Sliki 1 je prikazan razvoj PHP-ja skozi čas ter

napoved naslednje verzije. PHP je bil napisan v naslednjih programskih jezikih: [2]

o C,

o Perl,

o Java,

o C++

Slika 1: Pregled verzij PHP skozi čas od leta 1995 do 2008 [2]

Page 15: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 3

2.1. Uporaba tehnologije PHP

PHP je široko uporabljen za splošne namene skriptnega jezika, ki je še posebej primeren

za razvoj spletnih strani/portalov in je lahko vrinjen v HTML. PHP koda se izvaja na

strežniški strani, v nasprotju s HTML-jem, ki se izvaja na odjemalčevi strani. Elementi

HTML kode so v času prevajanja izpuščeni, koda PHP pa se prevede in izvede. PHP se lahko

razporedi na večini spletnih strežnikov, na veliko operacijskih sistemov in platform, kjer se

lahko uporabijo številne relacijske podatkovne zbirke za upravljanje sistemov. Na voljo je

brezplačen in je vključen v PHP Group. Predvideva popolno izvorno kodo za gradnjo,

podaljšanje in prilagoditev za lastno uporabo. Po podatkih s strani Wikipedije je PHP

uporabljen na več kot 20 milijonih spletnih strani in na 1 milijonu spletnih strežnikov. S kodo

PHP lahko poizvedujemo po zbirki podatkov, beremo in pišemo v datoteke, obdelujemo in

ustvarjamo XML, komuniciramo z ostalimi strežniki in izvajamo še mnoge druge operacije.

[2] Na Sliki 2 je prikazan proces procesiranja PHP kode.

Slika 2: Prikaz procesiranja PHP kode[19]

Page 16: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 4

2.2. Sintaksa tehnologije PHP

PHP kodo se razčleni le znotraj svojega mejnika, karkoli zunaj njenega mejnika se

pošlje neposredno kot izhodni parameter in ga PHP ne prevede. Najpogosteje se začetek

mejnika označi z »<?php konec mejnika pa z ?>«, primer takega pisanje kode je prikazan v

izvorni kodi 1. Obstaja tudi druga opcija, »<script language="php">« in »</ script>«, vendar

se v praksi ne uporablja pogosto. Spremenljivke se označijo z dolarjem ($) »$primer = 'Res

očiten primer';« in končajo s podpičjem (;), tipov pa ni potrebno eksplicitno navajati. Vsebino,

ki jo želimo vpisati v neko spremenljivko, zapišemo z enojnim ali dvojnim oklepajem.

Komentarje lahko pišemo s »/*« to je komentar »*/« ali pa »//« to je komentar . Prvi primer se

razlikuje od drugega le v tem, da lahko traja več vrstic, drugi primer pa le eno. Zanke,

funkcije in pogoji so podobni kot v programskih jezikih C, C++ , Java in Perl. [2] V PHP se

lahko piše koda objektno ali proceduralno. Objektno je vsekakor primernejše za večje

projekte, saj lažje vzdržujemo kodo, hkrati pa jo lahko uporabimo tudi na drugih projektih.

Primer objektnega pisanja PHP kode je prikazan v izvorni kodi 4, proceduralnega pa v izvorni

kodi 3.

<html>

<head>

<title>To je test!</title>

</head>

<body>

<?php echo '<p>Testni vnos.</p>'; ?>

</body>

</html>

Izvorna koda 1: Primer vgnezditve PHP v HTML kodo

Page 17: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 5

Rezultat, ki ga prikaže brskalnik, pa je prikazan v izvorni kodi 2.

<html>

<head>

<title>To je test!</title>

</head>

<body>

<p>Testni vnos.</p>

</body>

</html>

Izvorna koda 2: Rezultat PHP procesiranja v HTML kodo

<?php echo 'To je primer';

echo '<br />';

echo 'To je primer PHP';

?>

Izvorna koda 3: Proceduralno pisanje kode

<?php class TestniPrimer { private $vrednost; public function TestniPrimer($vrednostIn) { $this->vrednost = $vrednostIn; } public function izpisiVrednost() { echo $this->vrednost; } public function dodajVrednost($dodajVrednost) { $this->vrednost .= $dodajVrednost; } public function novaVrstica() { echo '<br />'; } } $novPrimer = new TestniPrimer('To je primer '); $novPrimer->izpisiVrednost();

Page 18: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 6

$novPrimer->novaVrstica(); $novPrimer->dodajVrednost('PHP'); $novPrimer->izpisiVrednost(); ?>

Izvorna koda 4: Objektno pisanje kode

2.3. Vrste podatkov

PHP shranjuje cele številke v omejeno območje. Za to območje je značilno, da je 32-

bitni podpisano celo število. Nepodpisana celo število se pretvorijo v vrednosti podpisanega v

določenih okoliščinah, to obnašanje se razlikuje od drugih programskih jezikov. Celo

številčne spremenljivke se lahko dodeli z uporabo decimalne (pozitivnih in negativnih),

oktalne in heksadecimalne notacije. Realne številke so prav tako shranjene v izhodišče

značilnega območja. Lahko se določijo z uporabo v plavajoči vejici zapisa ali dveh oblik

znanstvenega zapisa. PHP ima značilnosti logičnega podatkovnega tipa, ki je podoben

avtohtonim vrstam v Javi in C + +. Pri uporabi logične podatkovne konverzije velja vrsto

pravil, ki niso ničelne vrednosti, so razložene kot resnične in napačne, enako kot v Perl in C +

+. Ničen tip podatkov predstavlja spremenljivko, ki nima vrednosti. Spremenljivke o "viru"

vrste pomenijo sklicevanja na vire iz zunanjih virov. Viri so običajno proizvedeni od funkcij s

posebnim podaljševanjem in se lahko obdelajo v funkciji iz iste razširitve; primeri vključujejo

datoteke, slike, podatkovne baze in vire. Polja lahko vsebujejo elemente katerekoli vrste. PHP

lahko upravlja vključno z viri, predmeti in drugimi nizi. Naročilo se ohrani v seznamu

vrednosti in v seznamu nizov z obema ključema in vrednostnima. [2]

2.4. Vnaprej definirane spremenljivke

PHP predvideva veliko število vnaprej definiranih spremenljivk za vse skripte. [20]

Vnaprej definirane spremenljivke so polja, ki so vgrajena v PHP in so dostopna kjerkoli v

kodi, ne glede na to, v katerem delu kode se uporabijo. Uporabljajo se predvsem za

posredovanje informacij iz HTML na strežnik. Z vnaprej definiranimi spremenljivkami lahko

dostopamo do vseh napak, ki so se zgodile na strani.

Page 19: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 7

o Superglobals - so globalne spremenljivke, ki so vedno na voljo v vseh

področjih

o $GLOBALS - referenčne spremenljivke, ki so na voljo v globalnem obsegu

o $_SERVER – spremenljivke, omogočene s strani strežnika

o $_GET - HTTP GET spremenljivke

o $_POST - HTTP POST spremenljivke

o $_FILES - HTTP prenašanje datotek

o $_REQUEST - zahteva HTTP spremenljivke

o $_SESSION - spremenljivke seje

o $_ENV - okolje spremenljivke

o $_COOKIE - HTTP piškotki

o $Php_errormsg – sporočilo o prejšnji napaki

o $HTTP_RAW_POST_DATA - polje s POST podatki

o $Http_response_header - HTTP glave

o $Argc - število argumentov, ki se prenesejo v skripto

o $Argv - polje, ki se prenese v skripto

Primer prireditve globalne vrednosti je prikazan v izvorni kodi 5.

//vnos podatka

$GLOBALS['upIme'] = 'dejan';

//izpis podatka

echo $GLOBALS['upIme'];

//prikaz podatka

dejan

Izvorna koda 5: Globalne spremenljivke

2.5. Polja

Polja dajo programerju v PHP jeziku veliko prožnosti. Do njih lahko dostopamo

neposredno preko indeksov, hkrati pa nam omogočajo delo z vsemi elementi v polju. Vsebino

lahko razvrščamo po številih, črkah, po indeksih ali pa po lastnem sistemu. Indeks se vedno

začne s številom 0. Primer dela s polji je viden v izvorni kodi 6.

Page 20: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 8

PHP pozna več vrst polj:

Indeksna polja:

$polje[0] = 'Dejan';

$polje[1] = 'Kos';

Večrazsežnostna polja:

$ponudbe[] = array

(

'ime' => 'Vila Bela',

'termini' => array

(

array ( 'od' => '15.5.2008', 'do'=>'20.5.2008'),

array ( 'od' => '20.5.2008', 'do'=>'25.8.2008')

)

);

$ponudbe[] = array

(

'ime' => 'Vila Zelec',

'termini' => array

(

array ( 'od' => '15.4.2008', 'do'=>'20.4.2008'),

array ( 'od' => '20.4.2008', 'do'=>'25.4.2008')

)

);

//izpiše Vila Bela 15.5.2008-20.5.2008

echo $ponudbe[0]['ime'].' '.$ponudbe[0]['termini'][0]['od'].'-'. $ponudbe[0]['termini'][0]['do'];

Izvorna koda 6: Polja v PHP

PHP ima že kar nekaj funkcij, ki nam omogočajo razvrščanje in urejanje polj. Vse so

prikazane na naslovu http://si2.php.net/array, kjer so tudi primeri, kako jih uporabimo.

Primer:

//zapise razvrsti v obratnem vrstnem redu

array_reverse($ponudbe)

Page 21: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 9

2.6. Značilnosti tehnologije PHP

Značilnosti tehnologije PHP je veliko, opisali bomo najbolj uporabljene.

Značilnosti PHP:[21]

o HTTP avtentikacija z PHP

o Piškotki

o Seje

o Obravnavanje XForm

o Upravljanje z nalaganjem:

• POST metoda za nalaganje

• Obrazložitev napake

• Skupne pasti

• Nalaganje več datotek

• podprta PUT metoda

o Uporaba oddaljene datoteke

o Upravljanje s povezavami

o Vztrajne povezave s podatkovno bazo

o Varen način

• zaščiten in varen način

• funkcije omejene/izključene v varnem načinu

o Uporaba PHP iz ukazne vrstice

2.7. Prednosti tehnologije PHP

Opisali bomo prednosti tehnologije PHP z vidika razvijalca, ki razvija praktično

aplikacijo. Prednosti tehnologije PHP:

o Brezplačna uporaba.

o Ima veliko skupnosti, ki »ženejo razvoj« naprej.

o Nizki stroški vzdrževanja in razvoja.

o Visoka učinkovitost in zanesljivost.

o Sposobnost vključevanja kode v HTML kodo.

o Združljiv s strežniki Apache in IIS.

Page 22: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 10

o Deluje na vseh platformah.

o Podpira številne podatkovne baze MySQL, Informix, Oracle, Sybase,

Solid, PostgreSQL, Generic ODBC itd.

2.8. Slabosti tehnologije PHP

Slabosti tehnologije PHP se lahko razvijalec zave šele takrat, ko razvija aplikacijo ali

pa prehaja iz ene tehnologije v drugo.

Slabosti PHP programskega jezika:

o Slab opis napake, če se le-ta pojavi.

o Programske kode ni potrebno prevesti, s tem se poveča nevarnost, da jo

lahko ostali vidijo/odtujijo.

o Spodbuja nepregledno pisanje kode.

o Ne spodbuja modularno programiranje.

2.9. Primerjava PHP z ostalimi programskimi jeziki

Chris Shiflett je razdelil programske jezike v 2 skupini:

o Prilagodljivi in močni: PHP, C, C + +, in Perl.

o Strukturirani in organizirani: Java, Ruby, in ASP.NET.

2.9.1 Zbiralnik »smeti«

Upravljanje s pomnilnikom je pri programiranju največji problem. Priporočljivo

je, da se upravlja s pomnilnikom varčno, vendar pa je tak način programiranja zalo

počasen in posledično tudi "drag". Računalniške operacije, ki skrbijo za pravilno

sproščanje pomnilnika, so veliko cenejše od ure programiranja. Prav tako je zanemarljiv

odstotek tveganja, da program ne bi pravilno deloval. Zato so uvedli zbiralnik "smeti",

ki skrbi za sproščanje pomnilnika, programer pa se lahko ukvarja z vsebinskimi

problemi in reševanjem le-teh. [22]

Page 23: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 11

Programske jezike lahko v tem poglavju razdelimo v 2 skupini:

o hiter zagon: PHP, Java, Ruby, C #, Perl, Python, Smalltalk

o izvajanje je hitro: C, C + +, Objective C, Delphi

2.9.2 Statične ali dinami čne tipizacije

Pomembna primerjava pri programskih jezikih je statična in dinamična tipizacija.

Pri statični tipizaciji je informacija pogojena s spremenljivko. V dinamični pa je

informacija pogojena z vrednostjo spremenljivke. Prednost dinamičnega tipa je, da

programerju ni potrebno specifično navesti, za kateri tip gre. Prednost statične tipizacije

pa je, da prevajalnik lahko odkrije napake, katere je povzroči programer. [22]

o majhno tveganje: PHP, Ruby, Python, Smalltalk, Perl

o veliko tveganje: Java, C #

2.9.3 Interaktivni ali serije

Vprašanje je, kako dolgo traja, da se preklopi iz kontekstnega kodiranja v

izvajanje. Ali obstaja dolgotrajni proces gradnje, ali je porazdeljeno v faze? Krajša kot je

gradnja procesa, bolj je lahko produktivna:

o Interaktivno: PHP, Ruby

o Serija: Java

Dober primer tega je PHP v povezavi z Smarty in Propel. Oba ustvarjata kodo za

izvrševanje. Smarty ne deluje interaktivno, medtem ko Propel zahteva izgradnjo procesa.

[22]

Page 24: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 12

2.9.4 Obseg

Nihče ni bi smel podcenjevati dejavnika obsega. Zakaj se Java obravnava kot

zapletena? Eden od razlogov je, da je izdelana za delovanje na strežniku, mobilnem

telefonu, namiznih računalnikih in tudi pomivalnem stroju. Zaradi velikega obsega jo

vsekakor ni mogoče posplošiti. Vsekakor so specifična orodja kot so Rails in PHP bolj

produktivna na specifičnih aplikacijah: [22]

o Splošno: Java,. NET

o Posebni: PHP, Tirnice

2.9.5 Priljubljenost

Priljubljenost prinaša boljša orodja, večje število razvijalcev, boljšo dokumentacijo

in boljšo produktivnost. Programiranje na nepriljubljenih ali redkeje uporabljenih

platformah je težje. [22]

o Priljubljene: PHP,. NET, Java

o Redke: Python, Ruby, Smalltalk

2.9.6 Abstrakcija

Delo na višji ravni abstrakcije omogoča programerju, da je bolj produktiven.

Računalniška industrija mora neprestano napredovati na abstraktnem nivoju, ne sme se

ozirati nazaj. Poklicni programerji želijo delati na višji stopnji konstrukta, ki je bolj

izrazna. Za isti rezultat je potrebno manj dela in posledično manj vrst kod. Če pogledamo

nazaj, pri jezikih na višji ravni, so potrebovali več programerjev, da so lahko dosegi

sprejemljiv rezultat.[22]

o Enostavni: PHP, C, Java

o Močan: Ruby, Smalltalk, Lisp

Page 25: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 13

2.9.7 Struktura knjižnic

o Funkcionalno usmerjene: C, PHP

o Objektno usmerjene: Java,. NET, Python, Ruby

3. OPIS PODATKOVNE BAZE MySQL

MySQL je sistem za upravljanje s podatkovnimi bazami. Je odprto-kodna

implementacija relacijske podatkovne baze, ki za delo s podatki uporablja jezik SQL. [4]

MySQL deluje na principu odjemalec - strežnik, pri čemer lahko strežnik namestimo

kot sistem, porazdeljen na več strežnikov. Obstaja veliko število odjemalcev, zbirk ukazov in

programskih vmesnikov za dostop do podatkovne baze MySQL. MySQL je napisan v C in C

+ +, SQL razčlenjevalnik uporablja yacc in domač produkt lexer (lexer je program, ki ustvarja

leksični analizator). Je v lasti podjetja MySQL AB, ki je hčerinsko podjetje podjetja Sun. [4]

MySQL je zelo priljubljen pri izdelovalcih spletnih aplikacij. Deluje skorajda na vseh

operacijskih sistemih Aix, BSDi, FreeBSD, HP-UX, i5/OS, Linux, Mac OS X, NetBSD,

Novell NetWare, OpenBSD, eComStation, OS / 2 Warp, Višezadaćni, IRIX, Solaris,

Symbian, SunOS, SCO OpenServer, SCO UnixWare, Sanos, Tru64, Windows 95, Windows

98, Windows ME, Windows NT, Windows 2000, Windows XP in Windows Vista. Napake pa

sporočajo uporabniki preko odprto-kodnega programa Bugzilla. Njegova priljubljenost je

tesno povezana s programskim jezikom PHP, ki je pogosto združen z MySQL-om. Veliko

spletnih strani, ki so med najbolj obiskanimi, uporablja MySQL za hranjenje podatkov:

o Flickr,

o Facebook,

o Wikipedia,

o Google,

o Nokia,

o YouTube …

Page 26: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 14

Knjižnice za dostop do MySQL podatkovne zbirke so na voljo v vseh večjih

programskih jezikih, ki jih ureja tako imenovan API. Dodan je tudi MyODBC ODBC

vmesnik, ki omogoča dodatne programske jezike, ki podpirajo ODBC vmesnik za

komunikacijo z MySQL podatkovno bazo, kot so ASP ali ColdFusion. MySQL strežnik in

uradne knjižnice se večinoma izvajajo v Ansi C / Ansi C + +.

3.1. Orodja za upravljanje MySQL podatkovnih baz

Za upravljanje MySQL podatkovnih baz lahko uporabimo izdelana orodja (ukazni

MySQL in phpMyAdmin). Prav tako jih lahko prenesemo iz spletne strani MySQL

Administrator in MySQL Query Browser, ki sta prosta za uporabo. Obstaja še več

nekomercialnih in komercialnih orodij (SQLyog), ki so na voljo razvijalcem. Grafični primer

phpMyAdmin je prikazan na Sliki 3, na Sliki 4 pa SQLyog.

Slika 3: phpMySQLAdmin – brezplačna različica

Page 27: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 15

Slika 4: SQLyog – plačljiva različica

Page 28: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 16

3.2. Podpora podatkovne baze MySQL

Uporaba MySQL-a je v osnovni različici brezplačna, če pa želimo podporo s strani

proizvajalca, imamo možnost nakupa tudi takih paketov. Glede na izbran paket nam začnejo

odpravljati težave/napake in nam s tem omogočijo kar se da hitro vzpostavitev delujočega

sistema. Take pakete običajno potrebujejo predvsem v večjih podjetjih. Primerjava paketov je

prikazana na Sliki 5.

Slika 5: Cenik podpore ob uporabi MySQL

3.3. Arhitektura

Vtič za podatkovno procesiranje arhitekture zagotavlja standard za upravljanje in

podporo storitvam, ki so skupne v vseh osnovah podatkovnega procesiranja. Le-to ima

komponente strežniške podatkovne baze, ki dejansko opravlja delo na osnovi podatkov, ki so

shranjeni na fizični ravni strežnika. Ta učinek in modularna arhitektura zagotavljata veliko

korist za tiste, ki želijo, da se njihova aplikacija uporablja za:

o skladiščenje podatkov,

o obdelavo transakcij,

o visoke razpoložljivosti itd.

Predvsem pa imajo prednost vmesniki in storitve, ki so neodvisni od katerega koli

podatkovnega procesiranja. Vloga programerja aplikacije in DBA v povezavi z MySQL

Page 29: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 17

podatkovno bazo se nanaša na povezljiv API in vse storitve, ki so nad podatkovnim

procesiranjem. Če se pri aplikaciji naredijo spremembe, ki zahtevajo dodane spremembe na

enem ali več dodatnih podatkovnih procesiranjih, se doda podporo novim potrebam. Torej ni

pomembno, ali se naredijo programske spremembe ali pa le spremembe v postopku, ki so

potrebne za delovanje, v vsakem primeru ima MySQL tako zmogljiv in enostaven API, da je

to mogoče. Arhitektura MySQL strežnika je vidna na sliki 6. [6]

Slika 6: Arhitektura MySQL strežnika[6]

Kot lahko vidimo na Sliki 6, obstaja tudi večje število MySQL načinov hranjenja, ki se

lahko uporabljajo s podatkovno bazo MySQL. Nekateri najbolj pogosti načini vključujejo:

o MyISAM - privzet način hranjena podatkov, ki se največkrat uporablja na internetu,

pri skladiščenju podatkov in v drugih okoljih.

o Pomembno je vedeti, da je možno privzeto nastavitev spremeniti s konfiguracijo

STORAGE_ENGINE spremenljivke.

o InnoDB – uporabljajo se za obdelavo transakcijskih zahtevkov, številne značilnosti

vključujejo ACID transakcije podporo.

Page 30: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 18

o BDB - alternativa transakcija InnoDB, ki podpira COMMIT (izvedi), ROLLBACK

(vrni podatke) in tudi druge transakcijske funkcije.

o Memory - shranjuje vse podatke v RAM za zelo hiter dostop v okoljih, ki zahtevajo

hiter pogled referenčnih in drugih podobnih podatkov.

o Merge - omogoča MySQL DBA ali razvijalcu, da združi logične skupine v skupen niz

enakih MyISAM tabel in ustvari referenco na ta objekt. To je dober način v VLDB

okoljih za skladiščenje podatkov.

o Arhiv - zagotavlja odlično rešitev za shranjevanje in pridobivanje velikih količin

referenčno-zgodovinskih, arhiviranih ali varnostno revizijskih informacij.

o Federativnimi - nudi sposobnost povezovanja ločenih MySQL strežnikov za

ustvarjanje ene logične podatkovne baze iz številnih fizičnih strežnikov. Zelo dobro za

distribuirane ali podmnožico organizacijskih shranjevalnih (data mart) okolij.

o Cluster / NDB - je nakopičen podatkovni način v MySQL, ki je še posebej primeren za

aplikacije z visoko zmogljivimi tehničnimi potrebami, ki zahtevajo tudi najvišjo

možno stopnjo odzivnosti in razpoložljivosti.

3.4. Tabele

Tabele lahko naredimo na 2 načina, preko uporabniškega vmesnika (phpMyAdmin) ali

pa z izvršitvijo sql-a, ki kreira tabelo. Primer je videna v izvorni kodi 7.

CREATE TABLE `DRZAVA` (

`IDDRZAVA` int(11) NOT NULL auto_increment,

`NAZIV` varchar(50) NOT NULL,

`OPIS` text,

`STATUS` int(11) NOT NULL default '0',

PRIMARY KEY (`IDDRZAVA`)

) TYPE=MyISAM AUTO_INCREMENT=1 ;

Izvorna koda 7: Izdelava tabele

- CREATE TABLE kreiramo tabelo in mu dodelimo poljubna polja

- NOT NULL polje ne sme biti prazno

- auto_increment avtomatično povečevanje polja

- int,varchat,text tipizirana polja

Page 31: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 19

- PRIMARY KEY - primarni ključ tabele

Vnos podatkov v tablo DRZAVA je prikazan v izvorni kodi 8.

INSERT INTO `DRZAVA` (NAZIV, OPIS ,STATUS) VALUES('Slovenija', 'Prelepe država z veliko gora in

morja', 1);

Izvorna koda 8: Sql za vstavitev podatkov v tabelo

Posodobitev vsebine izbranega zapisa je prikazan v izvorni kodi 9.

UPDATE DRZAVA SET STATUS = 0 WHERE IDDRZAVA = 1

Izvorna koda 9: Sql za posodobitev polja v bazi

Izbris izbranega zapisa, je prikazan v izvorni kodi 10.

DELETE FROM DRZAVA WHERE IDDRZAVA = 1

Izvorna koda 10: Sql za izbris zapisa v bazi

Izpis vseh zapisov v tabeli DRZAVA, je prikazan v izvorni kodi 11.

SELECT IDDRZAVA, NAZIV,STATUS FROM DRZAVA WHERE STATUS = 1

Izvorna koda 11: Sql za poizvedbo na bazi

Page 32: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 20

Rezultat izpisa iz tabele DRZAVA je prikazan na Sliki 7:

Slika 7: Izpis podatkov iz tabele

3.5. Povezovanje MySQL baze s PHP skripto

Podatki se običajno vnesejo v podatkovno zbirko preko HTML vnosne forme. Ta vnosna

forma pa ob kliku na vnos kliče PHP skripto, ki se poveže z bazo in izvrši vnos. Pred vnosom

se lahko pojavijo še sledeči problemi:

o napačno uporabniško ime in geslo do dostopa PB,

o napačna podatkovna baza,

o napačno povpraševanje/izvedba.

Vsako izmed teh napak lahko prikažemo uporabniku »prijazno«. Primer vnosne forme za

vnos držav z imenom vnosDrzave.html je prikazan v izvorni kodi 12.

<html>

<head>

<title>Vnos držav!</title>

</head>

<body>

<h1>Vnesi državo</h1>

<form action="vnosDrzave.php" method="POST">

Ime države <input type="text" name="drzava" /><br />

Opis <input type="text" name="opis" /><br />

Page 33: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 21

<input type="submit" value="Vnesi" />

</form>

</body>

</html>

Izvorna koda 12: Vnosna forma

Ob kliku na Vnesi pa se izvede php-koda. Primer je prikazan v izvorni kodi 13.

mysql_connect ('localhost','test','test') or die('Napaka!');

mysql_select_db ('drzave') or die('Napaka!');

mysql_query("SET NAMES 'utf8'");

$ime = $_POST['drzava'];

$opis = $_POST['opis'];

if($ime != '')

{

$sql = "INSERT INTO DRZAVA (NAZIV, OPIS ,STATUS) VALUES('$ime', '$opis', 1)";

mysql_query($sql);

echo 'Državo si vnesel uspešno!';

}

else

echo 'Potrebno je vnesi ime države.';

Izvorna koda 13: Vnos podatkov v bazo

3.6. Prednosti podatkovne baze MySQL

Predstavil bom prednosti MySQL podatkovne baze, ki je zelo razširjena in jo

uporablja veliko aplikacij:[23]

o Je enostaven za razumevanje in učenje.

o Podpira zelo veliko podatkov z več kot 50 milijoni vrstic.

o Združljiva je z večino operacijskih sistemov (Unix, Windows …).

o Je prosta za uporabo pod licenčnimi pogoji GNU GPL. Lahko je prilagojena,

da ustreza individualnim zahtevam, in osebno prilagojena v skladu s pogoji uporabe.

o Ima močno skupnost uporabnikov.

Page 34: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 22

3.7. Slabosti podatkovne baze MySQL

Kot vsaka tehnologija ima tudi MySQL nekaj slabosti, ki jih bomo navedli. Slabosti

MySQL podatkovne baze:[24]

o Pomanjkanje nekaterih SQL funkcij.

o Pomanjkanje temeljitega testiranja na nekaterih platformah.

o Težavnost dela z izvorno kodo.

3.8. Konkurenca MySQL podatkovne baze

Razvijalec se lahko, glede na potrebe in izkušnje, odloči za primerno. Glavni

konkurenti MySQL podatkovnih bazi so:

o MsSql,

o Oracle,

o PostgreSQL,

o DB2,

o Microsoft Access.

MsSql in Oracle sta plačljivi razli čici, PostgreSQL pa je, tako kot MySQL, brezplačen.

4. OPIS TEHNOLOGIJE AJAX

AJAX (Asynchronous JavaScript and XML) je skupina medsebojno povezanih

spletnih razvojnih tehnik, uporabljenih za ustvarjanje interaktivnih spletnih aplikacij. Z

AJAX-om si lahko spletne aplikacije izmenjujejo podatke s strežnikom asinhrono v ozadju,

brez potrebe po ponovnem nalaganju strani. S tem je mogoče tekoče in hitrejše spremljanje ter

spreminjanje vsebine na spletni strani. Podatki se prenašajo s pomočjo XMLHttp objektov ali

pa s pomočjo Remote Scripting-a (v starejših brskalnikih, ki ne podpirajo Ajax tehnologije).

Uporaba AJAX tehnologij je značilna za WEB 2.0. Kljub imenu uporaba tehnologij Javascript

in XML ni pogoj za izvajanje Ajax-a.[8]

Page 35: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 23

Ajax aplikacije dajejo vtis, kot da v celoti tečejo na računalniku uporabnika. Običajna

spletna aplikacija za vsako spremembo na strani pošlje HTTP zahtevo, strežnik pa kot

odgovor pošlje celotno stran. Brskalnik mora zato osvežiti celotno stran, s tem pa pride do

motečega obnavljanja strani. Spletna aplikacija je zato počasna in ni podobna namiznim

aplikacijam. Grafični primer je na Sliki 8. [8]

Ajax aplikacije so prirejene za generiranje poizvedb za strežnik, tako da pošljejo samo

tiste podatke, ki jih dejansko potrebujejo. Klic se opravi kot asinhrona komunikacija, torej

medtem ko aplikacija čaka na podatke iz strežnika, lahko uporabnik spletno stran nemoteno

uporablja. Ko so podatki pripravljeni, določena JavaScript funkcija prikaže podatke na strani,

brez potrebe po ponovnem nalaganju. Grafični primer je prikazan na Sliki 9. [8]

Posledica tega je uporabniški vmesnik, ki se veliko hitreje odziva na vnose uporabnika.

Razlog za vpeljavo te tehnologije je tudi, da se med odjemalcem (brskalnikom) in strežnikom

prenese veliko manj podatkov in da poteka nalaganje podatkov asinhrono. Poleg tega se

zmanjša obremenitev spletnega strežnika, ker se veliko obdelave lahko naredi na strani

odjemalca. [8]

Page 36: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 24

Slika 8: Standardna komunikacija brskalnik /

strežnik

Slika 9: Asinhrona komunikacija brskalnik /

strežnik

4.1. Tehnologija AJAX in tehnologija WEB 2.0

WEB 2.0 je izraz, ki se pogosto uporablja za opisovanje najbolj "modernih" spletnih

strani. Vendar to ne sme biti nov koncept za spletne razvijalce. WEB 2.0 je dejansko

konsolidacija številnih obstoječih tehnologij, ki nam omogočajo bogate interaktivne

uporabniške izkušnje preko spleta. Primeri WEB 2.0 tehnologije vključujejo naslednja

področja (vendar niso omejeni nanje):

o Bogate internetne aplikacije (RIA), ki vključujejo AJAX, Adobe Flash,

Silverlight in Moonlight

o Spletne storitve

o Bloge

o Wikije

o Socialno mreženje

o Socialne zaznamke (Social Bookmarking)

o RSS/Atom

Page 37: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 25

Pred začetkom uporabe WEB 2.O na internetu so bile spletne strani pogosto

osredotočene samo na zagotavljanje podatkov uporabnikom. Uporabnik preprosto zahteva

stran, si jo ogleda, odpre drugo stran in si jo ogleda itd.

V nasprotju z vzorci in tehnikami za WEB 2.0 so vse o uporabniški izkušnji z

interneta: AJAX in spletne storitve za bogate, učinkovite uporabniške izkušnje, spletni

dnevniki, wikiji, socialna omrežja in socialni zaznamki za sodelovanje in RSS/Atom, tako da

se lahko uporabniki "naročijo" na podatke.

Ker se tehnologije, kot so AJAX, razvijajo in so sprejete v velikem obsegu na spletu,

postaja WEB 2.0 tehnologija hitro pričakovana uporabniška izkušnja na internetu. Dober

primer je, kako Google vključuje AJAX - aplikacije, kot so zemljevidi, dokumenti, koledarji,

prav tako mu sledi Microsoft s svojimi aplikacijami, kot so hotmail, windowos live aplikacije

itd. Ko bodo uporabniki začeli uporabljati tovrstne aplikacije v polni meri, bodo pričakovali,

da se bodo tudi ostale aplikacije razvile s takimi/podobnimi funkcionalnostmi.[27]

4.2. Zgodovina

Pojem Ajax je leta 2005 skoval in prvič omenil Jesse James Garrett v svojem članku

Ajax: A New Approach to Web Aplications. Tehnologije, na katerih temelji, so se začele

razvijati že v letu 1996, ko je podjetje Microsoft v svojem spletnem brskalniku Internet

Explorer predstavilo konstrukt IFrame. V letu 1998 Microsoft predstavi Remote Scripting,

kjer podatke bere javanski Applet, s katerim komunicira odjemalec s pomočjo programskega

jezika JavaScript. Leta 1999 Microsoft ustvari XMLHttpRequest objekt kot kontrolnik

ActiveX v brskalniku Internet Explorer 5.0, čemur so kmalu sledili ustvarjalci brskalnikov

Mozilla in Safari. Aprila 2006 pa je konzorcij W3C (World Wide Web Consortium) pripravil

prvi osnutek specifikacije Ajax z željo ustvariti uradni standard za spletne strani. [9]

Microsoft je prvi implementiral XMLHttpRequest objekt v Internet Explorerju 5 za

Windows kot ActiveX objekt. Inženirji na Mozilla projektu so implementirali kompatibilno

verzijo za Mozilla 1.0 (in Netscape 7). Apple je naredil isto s Safari 1.2. Podobna

funkcionalnost je bila obravnavana in predlagana W3C standardom (Document Object Model

(DOM) Level 3 Load and Save Specification.). V tem času narašča podpora za

Page 38: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 26

XMLHttpRequest objekt, kar pomeni, da je postal splošni standard, ki ga bo verjetno

potrebno podpreti tudi po W3C specifikaciji. Postal bo dokončen in začel se bo

implementirati v vseh brskalnikih. [15]

Značilno zaporedje operacij ob delu z XMLHttpRequest: [16/str42/2/Using the

XMLHttpRequest Object]

o z JavaSriptom ustavimo nov XMLHttpRequest objekt,

o uporabi XMLHttpRequest objekt, da vstavi asinhron klic do strežnika, definira

klice funkcij, ki se bodo izvršili avtomatično, ko bo strežnik sprejel odziv,

o ukvarjajo se s strežnikom in klicnimi funkcijami,

o vrne se na korak 2.

Izraz Ajax je skupek spletnih tehnologij, ki se lahko uporabljajo za izvajanje spletnih

aplikacij, ki komunicira s strežnikom v ozadju, brez poseganja v trenutno stanje na stran. V

članku Jesseja Jamesa Garretta je pojasnjeno, da so potrebne naslednje tehnologije:[10]

o XHTML in CSS za predstavitev,

o Document Object Model(DOM) za dinamičen izpis in interakcijo s podatki,

o XML in XSLT za izmenjavo, manipulacije in izpis podatkov,

o XMLHttpRequest objekt za asinhrono komunikacijo,

o JavaScript, ki povezuje vse te tehnologije.

Nabor združljivih tehnologij s tehnologijo AJAX je prikazan na Sliki 10.

Slika 10: Nabor združljivih tehnologij

Page 39: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 27

4.3. Document Object Model (DOM)

Document Object Model (DOM) omogoča dostop do poljubnega upravljanja -

dodajanja, brisanja in premikanja - vseh slogov, lastnosti in elementov v dokumentu. Dostop

je mogoč prek vseh programskih jezikov v brskalniku, tudi Java, Javascript / ECMAScript /

JScript in VBScript (MSIE samo). DOM je bil podprt na začetku v IE 5, NS6 in Firefox. [11]

Deluje na podlagi vozlišč in ne omogoča principa »zamenjaj tretjo besedo xxx v 2. odstavku z

drugo besedo yyyy v 3. odstavku« . Primer DOM strukture je prikazan na Sliki 11.

Slika 11: Primer DOM strukture

Do elementov v DOM strukturi lahko dostopamo z Javascriptom na način

document.getElementById (ime elementa) ali pa document. getElementsByName (ime

elementa) in mu nastavljamo poljubne sloge, elemente ... Primer je prikazan v izvorni kodi 14.

function showHide(povejP) {

if (document.getElementById(povejP)) {

if (document.getElementById(povejP+'-pokaz').style.display != 'none') {

document.getElementById(povejP+'-pokaz').style.display = 'none';

document.getElementById(povejP).style.display = 'block';

document.getElementById(povejP+'_pokaz').style.display = 'none';

}

else {

document.getElementById(povejP+'-pokaz').style.display = 'inline';

document.getElementById(povejP).style.display = 'none';

document.getElementById(povejP+'_pokaz').style.display = 'inline';

}

Page 40: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 28

}

}

Izvorna koda 14: Spreminjanje slogov preko DOM

4.4. Tehnologija XML in tehnologija XSLT

XSLT jezik je bil podan s strani World Wide Web Consortium (W3C). Prva verzija je

bila predstavljena 16. novembra 1999. XSL določa opredelitev jezika XML za predstavitev

podatkov in transformacijo. Podatke predstavi na enak način (v istem formatu z istimi stili).

Transformacija pomeni razčlenjevanje vhodnega dokumenta (XML) v drevo vozlišč in nato

preveri izvorni drevo v rezultat. Transformacija je preoblikovanje podatkov v želeno obliko.

Zaradi teh funkcij služi dvema ločenima namenoma, XSLT je bila predlagana in kasneje

sprejeta kot samostojni standard za transformacijo XML-jev. [12]

4.4.1 XSLT Procesor

XSLT procesor kot vhodni podatek dobi drevesno strukturo in generira novo drevesno

strukturo kot izhodni podatek. Operacije XLT procesorja so prikazane na Sliki 12.

Slika 12: Operacije XSLT procesorja [34]

Vhodna struktura se pogosto proizvaja z razčlenjevanjem XML dokumentov in izhodna

struktura bo pogosto serializirana v drug XML dokument. XSLT procesor sam manipulira

drevesno strukturo, ne pa tudi XML znakovni niz. Ta koncept je ključnega pomena za

razumevanje izvajanja bolj zapletene preobrazbe. To pomeni, da razlikovanje vira dokumenta,

Page 41: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 29

ki je nepomemben za drevesno strukturo, ni dostopno XSLT procesorju. Na primer, ni

mogoče uporabiti različne obdelave, glede na to, ali so atributi zaprti z enojnim ali dvojnim

narekovajem, ker se štejejo za različne predstavitve istega osnovnega dokumenta. [12]

Vhodna datoteka XML (primer izvorna koda 15) za XSLT obdelavo uporabi kot primer

izvorno kodo 16. Rezultat XSLT procesiranja pa je primer izvorne kode 17. Na primeru se

vidi, da lahko s XSLT transformacijo prikažemo na poljuben način s poljubnimi dodatki

(izgledom, vključitvijo xhtml-ja ...).

<Rezultati skupina="A">

<tekma>

<datum> 10-Jun-1998 </ datum>

<ekipa igralci="2"> Brazilija </ ekipa>

<ekipa igralci="1"> Škotska </ ekipa>

</ tekma>

<tekma>

<datum> 10-Jun-1998 </ datum>

<ekipa igralci="2"> Maroko </ ekipa>

<ekipa igralci="2"> Norveška </ ekipa>

</ tekma>

<tekma>

<datum> 16-Jun-1998 </ datum>

<ekipa igralci="1"> Škotska </ ekipa>

<ekipa igralci="1"> Norveška </ ekipa>

</ tekma>

<tekma>

<datum> 16-Jun-1998 </ datum>

<ekipa igralci="3"> Brazilija </ ekipa>

<ekipa igralci="0"> Maroko </ ekipa>

</ tekma>

<tekma>

<datum> 23-Jun-1998 </ datum>

<ekipa igralci="1"> Brazilija </ ekipa>

<ekipa igralci="2"> Norveška </ ekipa>

</ tekma>

<tekma>

<datum> 23-Jun-1998 </ datum>

<ekipa igralci="0"> Škotska </ ekipa>

Rezultat skupine A

Brazilja proti Škotski

Igrano dne: 10-jun-1998

Rezultat: Brazilija 2 , Škotska 1

Maroko proti Norveška

Igrano dne: 10-jun-1998

Rezultat: Maroko 2 , Norveška 2

Škotska proti Norveška

Igrano dne: 16-jun-1998

Rezultat: Škotska 1 , Norveška 1

Maroko proti Norveška

Igrano dne: 16-jun-1998

Rezultat: Brazilija 3, Maroko 0

Izvorna koda 16: Rezultat procesiranja XML-ja z

XSLT-jem [34]

Page 42: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 30

<ekipa igralci="3"> Maroko </ ekipa>

</ tekma>

</ Rezultati>

Izvorna koda 15: Vhodni podatek (XML

struktura) [34]

<xsl:transform

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

version="1.0">

<xsl:template tekma="rezultat">

<html>

<head><title>

Rezultat skupine <xsl:value-of select="@skupina"/>

</title></head>

<body><h1>

Rezultat skupine <xsl:value-of select="@skupina"/>

</h1>

<xsl:apply-templates/>

</body></html>

</xsl:template>

<xsl:template tekma="rezultat">

<h2>

<xsl:value-of select="team[1]"/> proti <xsl:value-of

select="team[2]"/>

</h2>

<p>Igrano dne: <xsl:value-of select="datum"/></p>

<p>Rezultat:

<xsl:value-of select="team[1] "/>

<xsl:value-of select="team[1]/@igralci"/>,

<xsl:value-of select="team[2] "/>

<xsl:value-of select="team[2]/@igralci"/>

</p>

</xsl:template>

</xsl:transform>

Izvorna koda 17: XSLT tranformacija [34]

Page 43: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 31

4.5. XMLHttpRequest

4.5.1 XMLHttpRequest (XHR) zahteva

XMLHttpRequest (XHR) je DOM API, ki ga lahko uporabljajo JavaScript in drugi

brskalniki skriptnega jezika za prenos XML in drugih besedilnih podatkov med spletnim

strežnikom in brskalnikom. Podatki vrnjeni iz XMLHttpRequest so pogosti klici, ki

komunicirajo z bazo. XMLHttpRequest se lahko, poleg XML, uporablja za prenos podatkov

še v druge formate, kot so HTML, JSON ali golo besedilo. XMLHttpRequest je pomemben

del AJAX web razvoja tehnike in ga uporablja veliko spletnih mest za izvajanje odzivne in

dinamične spletne aplikacije. Primeri spletnih aplikacij, ki uporabljajo XMLHttpRequest, so

Google Maps, Windows Live's Virtual Zemlje, MapQuest dinamični zemljevid vmesnik,

Facebook in mnogi drugi. [14]

XMLHttpRequest je objekt, ki omogoča JavaScriptu, da izvaja asinhrone zahtevke s

HTTP strežnikih zahtev. Ta funkcija nam omogoča, da naredimo HTTP zahtevek, prejet

odgovor pa ne osveži celotne strani, ampak se izvede povsem v ozadju, s čimer uporabnik ne

vidi novega nalaganja celotne strani, ampak le vsebino, ki smo jo želeli prikazati/spremeniti.

To je zelo pomembno, saj s tem zagotovimo, da je uporabniški del odziven in uporabniku ni

potrebno čakati zaradi nalaganja novih podatkov. [16] Primer AJAX interakcije z

XMLHttpRequest objektom je prikazan na Sliki 13.

Page 44: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 32

Slika 13: XMLHttpRequest [35]

4.5.2 Ustvarjanje XMLHttpRequest objekta

Za ustvarjanje XMLHttpRequest objekta je potrebno najprej preveriti, če ga brskalnik

podpira. Obstajata 2 vrsti XMLHttpRequest objektov: ActivX in XHR. Razlika je v tem, da je

ActiveX podprt s strani Internet Explorer-ja od različice 5 naprej, XHR pa uporablja lasten

JavaScript XHR objekt in je podprt s strani sledečih brskalnikov:

o Mozilla,

o Firefox,

o Netscape,

o Opera,

o Safari.

Page 45: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 33

Primer ustvarjanja XMLHttpRequest objekta je prikazan v izvorni kodi 18.

function ustvariObjekt()

{

var xhp;

try

{

//ustvarjen objekt za vse ostale razen IE

xhp = new XMLHttpRequest(); //ustvarjen objekt

}

catch(e)

{

try{

//ustvarjen objekt za IE

xmlHttp = new ActiveXObject("Microsoft.XMLHttp");

}

catch(e)

{}

}

if(xhp == null)

alert('Objekt ni ustvarjen');

else

alert('Objekt je ustvarjen');

}

Izvorna koda 18: Ustvarjanje objekta XMLHttpRequest

Page 46: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 34

4.5.3 Metode objekta XMLHttpRequest

V Tabeli 4.1 so prikazane metode, ki jih podpirajo Mozilla, Safari in Windows IE 5 ali

novejši brskalniki.

Tabela 4.1. XMLHttpRequest metode[16] Metode Opis

abort() Prekinitev trenutne zahteve.

getAllResponseHeaders() Vrne vrednost vseh HTTP zaglavij

(Headers).

getResponseHeader(»headerName«) Vrne vrednosti izbranega HTTP zaglavja.

open("method", "URL"[, asyncFlag[,

"userName"[, "password"]]])

Vzpostavitev povezave s strežnikom.

Metode so lahko: "GET", "POST" ali

"PUT". Url je lahko relativen ali absoluten.

send(content) Pošlje HTTP zahtevo do strežnika, opcijsko

DOM objekt ali besedilo.

setRequestHeader(label, value) Doda vrednost Labele v http zaglavje

(glavo).

Od metod v Tabeli 4.1 sta najbolj uporabni metodi open() in send(). Open() postavlja

temelje, ki jih potrebujemo za prihajajoče delovanje. Dva zahtevana parametra za HTTP način

delujeta na zahtevo in URL povezavo. Za metode parametra uporabimo "GET", v primeru da

želimo, da se prenesejo podatki preko Url-ja. "POST" pa uporabimo v zaglavju. Preko metode

"POST" lahko pošljemo neomejeno število podatkov, preko "GET" pa le do 512 bajtov. URL

je lahko popoln ali pa relativen. Tretji parameter je logična vrednost, ki nadzoruje, ali bo

prihodnja transakcija uporabila asinhroni način. Privzeta vrednost je »true«, kar pomeni, da se

skripta za obdelavo izvaja takoj po send() metodi, brez čakanja na odziv. Če se nastavi

vrednost na »false«, skripta počaka na zahtevo, ki je bila poslana na strežnik. Čeprav se zdi

dobro, da počaka na odgovor pred nadaljevanjem obdelave, se je potrebno zavedati tveganja v

primeru, če skripta "obvisi". Pojavijo se lahko težave z omrežjem ali pa strežnikom. V tem

primeru se transakcija prepreči oz. se ne izvede. Varnejši način je, da se pošlje asinhrono in

vključi dogodek »onreadystatechange« za zahtevo objekta. [16/str42/2/Using the

XMLHttpRequest Object]

Page 47: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 35

4.5.4 Lastnosti XMLHttpRequest

V Tabeli 4.2 so prikazane lastnosti, ki jih vsebuje XMLHttp zahteva.

Tabela 4.2. XMLHttpRequest lastnosti [16] Lastnosti Opis

onreadystatechange Lovilec izjem, ki se sproži ob vsaki spremembi Request objekta.

readyState Stanja zahtev (Request):

0 - objekt ni inicializiran (neaktiven), uninitialized

1 - objekt se nalaga

2 - objekt je naložen

3 - objekt je interaktiven

4 - objekt je inicializiran

responseText Odziv s strežnika kot string.

responseXML Odziv s strežnika kot DOM XML objekt.

status Številčna oznaka, ki jo vrne strežnik, kot je 404 za "Not Found" ali

200 za "OK"

statusText Tekstovna verzija HTTP statusne kode.

4.6. Konkuren čne tehnologije

Tehnologija AJAX ima kar nekaj konkurence, vendar pa je glede na razširjenost in

uporabnost na prvem mestu. Konkurenčne tehnologije AJAXU so:[28]

o FLASH,

o SVG,

o XUL,

o XAML,

o Java applet.

AJAX tehnologiji oz. skupku teh tehnologij resno sledi le FLASH, saj ga ima

nameščenega že velik odstotek spletnih uporabnikov. Je multimedijska platforma, ki jo razvija

in distribuira Adobe Systems.

Page 48: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 36

o SVG - Scalable Vector Graphics pomeni usmerljiva vektorska grafika. W3C jo

je že sprejel za standard, vendar pa še vedno ni podprta v vseh brskalnikih. Zato je

potrebno namestiti dodatke, katere pa ponujata Adobe SVG Viewer ali Corel SVG

Viewer. [29]

o XUL - XML User Interface Language je označevalni jezik, ki je bil razvit s

strani Mozille. Njegov namen je, da se na hiter način izdela grafični vmesnik oz.

spletno aplikacijo. [30]

o XAML - Extensible Application Markup Language temelji na jeziku XML, ki

ga je razvil Microsoft, vključen pa je že v NET Framwork 3.0. [31]

o Java applet je dostavljen uporabniku v obliki Java bytecode. Java applets lahko

vodijo spletni brskalniki, ki uporabljajo Java Virtual Machine (JVM) ali

AppletViewer. [32]

4.7. Prednosti in slabosti tehnologije AJAX

Predstavil bom prednosti in slabosti tehnologije AJAX.

Prednosti so: [27]

o zmanjšan prenos podatkov,

o nalaganje strani na zahtevo,

o storitev temelji na spletnem razvoju,

o bogate uporabniške izkušnje.

Slabosti so: [27]

o neupoštevane brskalnikove funkcionalnosti (ko uporabnik klikne na gumb

nazaj ali osvežitev),

o poslovna logika lahko obstaja v JavaScript,

o otežen test z avtomatiziranimi orodji.

Page 49: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 37

5. OPIS TEHNLOGIJE XML

Jezik XML (Extensible Markup Language) je izpeljanka jezika SGML (Standard

Generalized Markup Language), ki se uporablja za kreiranje in označevanje tehnične (in tudi

druge) dokumentacije. Iz jezika SGML so na primer izvedeni tudi CML (Chemical Markup

Language), VML(Vector Markup Language), MathML(Mathematical Markup Language) in

še vrsta drugih sorodnih jezikov. XML je metajezik - jezik, s pomočjo katerega se definira

konkreten označevalni jezik, neposredno uporaben za označevanje določene vrste

dokumentov. Dokumenti XML imajo vlogo vsebnikov, v katetre se shranjujejo podatki. Po tej

plati so podobni tablama v relacijski podatkovni bazi in objektom v objektno usmerjeni

podatkovni bazi. Metajezik obsega množico sintaktičnih pravil za kreiranje konkretnega

označevalnega jezika. Po svoji obliki je XML samoopisen jezik, ki z uporabo oznak

pojasnjuje pomene podatkov v dokumentu. Oznake, s katerimi se dokument označi, se smejo

izbrati poljubno. Smiselno pa je, da hkrati odražajo tudi pomen podatka, tako da ga lahko

hkrati razumeta človek in tudi računalnik oz. programska oprema. [17]

5.1. Oznake

Vrednost podatka, ki ga želimo zapisati v dokument, se mora nahajati med dvema

oznakama - začetno oznako in končno oznako (tag). Par oznak, med katerima se nahaja

vrednost, imenujemo element:

<Ime>Peter</Ime>

<priimek>Kovač</priimek>

Tako predstavljata <Ime> in </Ime> začetno iz končno oznako, Peter pa je vrednost

elementa. XML razlikuje med velikimi in malimi črkami, zato mora biti začetna in končna

oznaka zapisana na enak način. Sintaktično pravilno zapisane oznake so tudi:

<ime>Petar</ime>

<PRIImek>Kovač</PRIImek>

Page 50: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 38

V dokumentu se razni elementi lahko shranjujejo tudi kot atributi. Če naj bo v

dokumentu shranjen element (npr. knjiga), ki mu pripada eden ali več atributov (npr: ISBN,

leto izdaje), je zapis naslednji:

<Knjiga ISBN="961.6046-02-0" leto="1995" />

V zgornjem zapisu je knjiga element, ISBN in leto izdaje pa sta atributa. Omenjeni

razpored vrednosti in atributov v oznake se imenuje tudi "prazna oznaka", ker ne obsega tudi

vrednosti elementa. Atribut je sestavljen iz para ime-vrednost, med njima pa stoji enačaj.

Pri poimenovanju oznak veljajo naslednja pravila:

o imena elementov se smejo pričeti s poljubno črko ali podčrtanjem;

o po prvem znaku lahko sledijo črka, številke, pike, pomišljaji, podčrtaji ali

dvopičja;

o imena elementov ne smejo vsebovati kontrolnih znakov (kot so npr. white

space, carige return, line feed, form feed);

o imena elementov se ne smejo pričeti z imenom XML ali xml, ker je to ključna

beseda, ki se uporablja le v posebnih primerih, npr. pri deklaracijah

dokumenta. [17]

5.2. Deklariranje dokumenta

Dokument se prične z deklaracijo XML, ki obsega verzijo dokumenta XML, podatek o

samostojnosti dokumenta ter način kodiranja:

<?xml version="1.0" encoding="UTF-8" standaolne="yes" ?>

Za naše kraje je primerno npr. kodiranje ISO-8859-2, ki je prava podmnožica

kodiranja UTF-8. Določili standalone in encoding sta praviloma opcijski, vendar ju je v

nekaterih primerih potrebno uporabiti. Določilo »standalone="yes"« pomeni, da je dokument

povsem samostojen, določilo »standalone="no"« pa pomeni, da je dokument vezan na kakšen

drug dokument, npr. na pripadajoči DTD (Document Type Defination). Iz predhodno opisanih

fragmentov se lahko sestavi samostojen dokument po imenu Revija. Revija je hkrati tudi

Page 51: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 39

korenski element, ki zajema vse druge elemente v dokumentu. [17] Struktura XML

dokumenta je prikazana v izvorni kodi 19.

<?xml version="1.0" encoding="UTF-8" standaolne="yes" ?>

<Revija>

<avtor>

<Ime>Peter</Ime>

<Priimek>Kovač</Priimek>

<knjiga ISBN="961-6046-02-0" leto="1995"/>

</avtor>

<avtor>

<Ime>Miha</Ime>

<Priimek>Perač</Priimek>

<knjiga ISBN="0-6046-02-0" leto="1995"/>

</avtor>

</Revija>

Izvorna koda 19: Struktura XML dokumenta

5.3. Dobro oblikovan dokument

Dokument sodi med dobro oblikovane, če v njem ni sintaktičnih napak. Nekaj

poglavitnih napotkov, ki omogočajo kreiranje dobro oblikovanih dokumentov:

o dokument se mora pričeti z deklaracijo XML;

o elementu, ki vsebuje podatke (vrednost), morata pripadati začetna in končna

oznaka;

o element, ki ne vsebuje podatkov (vrednosti) pač pa le atribute, se nahaja v

posamični oznaki, ki se pričnejo z »<« in končajo z »/>« v tem primeru

govorimo o prazni oznaki ali o elementu brez podatkov;

o dokument mora obsegati natanko en element, ki vsebuje vse ostale elemente -

tak element se imenuje korenski element;

o element je lahko ugnezden v drug element;

o vrednost atributa se mora nahajati v dvojnih narekovajih;

o obstajajo naslednje znakovne entitete, ki lahko po potrebi nadomestijo osnovne

simbole:

Page 52: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 40

Entiteta Simbol Pomen

&gt; > Večji

&lt; < Manjši

&amp; & Konjunkcija

&apos; ' Apostrof

&quot; '' dvojni narekovaj

Ker imata začetna in končna oznaka »< >« svoj rezerviran pomen, ki se uporablja pri

zapisovanju oznake, je potrebno v primeru uporabe simbolov "večji" in "manjši" znotraj

oznake nadomestiti simbol "večji" z znakovno entiteto "&gt;" in simbol "manjši" z znakovno

entiteto "&lt;". Podobna pravila veljajo tudi za enojni in dvojni narekovanj ter konjunkcijo.

[17]

5.4. Komentarji

XML podpira tudi komentarje, podobne kot so HTML komentarji. Relevantna oblika

komentarja, je prikazana v izvorni kodi 20. [18/225/Comments]

<!-- To je komentar v XML-ju -->

Izvorna koda 20: Komentar v XML-ju

Nerelevantna oblika komentarja pa je prikazana v izvorni kodi 21.

<!---- To je nerelevanten komentar v XML-ju ---->

Izvorna koda 21: Komentar v XML-ju

Page 53: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 41

5.5. XML imenski prostor (Namespace)

XML v osnovni uporablja preprosta imena, kot smo prikazali pri prejšnjih primerih.

Problem s preprostimi imeni izvira iz potencialne dvoumnosti. Na primer, če Alice ustvari

nov element, ga bo poimenovala knjiga. Če pa Bob ustvarja različne elemente, se lahko prav

tako zgodi, da bo uporabil element knjiga. V tem primeru lahko pride do zmede, še posebej v

primeru, da se bosta elementa kdaj združila. Odgovor na tovrsten problem je W3C rešil z

uporabo imenskega prostora v XMl-ju, ki omogoča elemente in imena atributov. Identifikator

izgleda ravno tako kot URI. Z dodatnim imenom, Alice in Bob predpono, ni več nobenih

nejasnosti. Uporaba tovrstne rešitve lahko prinese vrsto nejasnosti ob implementaciji in

izvedbi. [18/225/ XML Namespace]

V XML je v okviru določen z imenskim prostorom URI. Ljudje pogosto uporabljajo

HTTP URI z logičnimi imeni, ki vključujejo ime domene, ki določa organizacijo in logičen

potek strukture. Na primer http://example.org/xml/alice/2006/knjige je veljaven imenski

prostor URI. To ne pomeni, da mora biti dokument, ki je na voljo na URL naslovu, to je le

identifikator, čeprav se začne s http:. Kadar delamo z imenskimi prostori, jih je potrebno

sprva vključiti in jim dodeliti predpono, ki se uporablja kot bližnjica XML dokumenta.

Izberemo lahko katerokoli predpono, vendar ne sme biti enaka drugi predponi, ki je že

uporabljena.

Na primer, lahko izberemo:

o anim,

o Alice

o drugo.

Page 54: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 42

Uporaba predpone zahteva posebno sintakso: xmlns:prefix:="uri".

Primer imenskega prostora v XML je prikazan v izvorni kodi 22.

<?xml version=”1.0” encoding=”UTF-8”?>

<knjige xmlns:alice=”http://example.org/xml/alice/2006/knjige”>

<knjiga>

<naslov>Vrba</naslov >

<avtor >France Prešeren</ avtor >

</ knjiga >

</ knjige>

Izvorna koda 22: Imenski prostor v XML

Ta primer ne prikazuje nobene uporabnosti imenskih prostorov. Prikaz uporabnega

primera uporabe imenskega prostora (z uporabo predpone Alice) je prikazan v izvorni kodi

23.

<?xml version=”1.0” encoding=”UTF-8”?>

<alice: knjige xmlns:alice=”http://example.org/xml/alice/2006/knjige ”>

<alice: knjiga >

<alice:naslov> Vrba</alice: naslov >

<alice:avtor > France Prešeren </alice:avtor >

</alice: knjiga>

</alice: knjige >

Izvorna koda 23: Imenski prostor v XML

V tem primeru je možno združiti Bobove elemente v istem dokumentu (Alicinem), brez

zmede, na način, ki je prikazan v izvorni kodi 24.

<?xml version=”1.0” encoding=”UTF-8”?>

<alice: knjige xmlns:alice=http://example.org/xml/alice/2006/knjige

xmlns:bob=”http://example.org/xml/bob /2005/knjige ”>

<alice: knjiga >

<alice:naslov> Vrba </alice:naslov>

<alice:avtor> France Prešeren </alice:avtor>

</alice: knjiga >

<bob: knjiga naslov=”Podvodni mož ”/>

</alice: knjige >

Izvorna koda 24: Imenski prostor v XML

Page 55: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 43

Imenski prostor je možno uporabiti na kateremkoli elementu, vendar je enostavneje,

da to naredimo na korenskem elementu dokumenta, kar hkrati zagotavlja, da je uporaba vidna

povsod v dokumentu. To je pomembno, ker ni možno uporabiti imenskega prostora z

predpono, razen če obstaja preslikava predpone na elementu, kjer se predpona prikaže na

enem izmed njegovih prednjih elementov.

5.6. Unicode in znakovni nabor

Unicode je standard za računalnike, ki omogoča dosledno manipuliranje z znaki v

vseh jezikih. Unicode predstavlja besedilo kot števila - poznana pa so tudi kot šifrirne točke.

Obstaja točno ena šifrirna točka za znakovni tip - z več kot 1.113.112 šifrirnimi točkami.

Trenutno jih je več kot 96.000 dodeljenih znakov. V teoriji Unicode zahteva 21 bitov, da

zastopa vse njene možne znake, kar v praksi pomeni, da vsak znak zavzema 32 bitov, kar pa

se zdi nekaterim preveč.

XML 1,0 priporoča, da izvajalci podpirajo Unicode, predvsem zadnje dva, UTF-8 in

UTF-16. To zagotavlja, da je z XML mogoče predstaviti podatke v večjezičnosti. Primer je

prikazan v izvorni kodi 25.

<?xml version=”1.0” encoding=”UTF-8”?>

<jeziki>

<jezik xml:lang=”si-sl”>Ta vikend je zelo vroče.</ jezik >

<jezik xml:lang=”en-us”>It’s really hot this weekend.</ jezik >

< jezik xml:lang=”zh-cn”> </ jezik >

< jezik xml:lang=”fr”>Il fait vraiment très chaud ce weekend.</ jezik >

</ jeziki>

Izvorna koda 25: Namespece XML

Uporaba posebnih xml:lang atribut je običajna za določitev človeškega jezika v XML.

Page 56: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 44

5.7. Uporaba XML-ja v praksi

Uporabnost XML-ja v praksi je zelo velika, saj omogoča izpis podatkov v standardno

obliko, ki je neodvisna od platforme in programskega jezika, s katerim se lahko potem ta

XML obdeluje. XML se generira ob določenih urnih intervalih z namenom izpisa podatkov v

naprej dogovorjeno obliko. S tem si zagotovimo vmesni nivo med podatkovno bazo in

uporabnikom, ki želi dostopati do podatkov, ki so v podatkovni bazi. Z XML-jem pa mu

posredujemo samo zanj relevantne/uporabne podatke. XML se lahko nahaja na naslovu, ki je

zaščiten z uporabniškim imenom in geslom. Lahko pa se nahaja tudi na naključnem naslovu,

ki ga ve le uporabnik, kateremu je dostop dodeljen. S takim načinom zaščite se izognemo

nepotrebnim težavam, do katerih bi lahko prišlo, če bi lahko vsi dostopali do podatkov, ki se

nahajajo v XML strukturi.

5.8. Prednosti in slabosti XML-ja

Predstavil bom prednosti in slabosti XML-ja glede na njegovo uporabnost.

Prednosti XML-ja so:

- Učenje XML-ja je še lažje kot pri HTML-ju, z ustreznimi orodji celo ni

potrebno. [25]

- XML omogoča ločitev vsebine od podatkov. Tako ni potrebno spreminjati

obstoječih datotek. [25]

- Iskanje in osnovni zbiri so možni že z eno datoteko. Iskanje je tudi zelo

usmerjeno. [25]

- Podpira Unicode, kar omogoča, da lahko shranjujemo podatke v vseh jezikih.

[26]

- Sprejet je bil na podlagi standardov in je po vsem svetu enak. [26]

- Omogoča validacijo z uporabo shem kot so XSD in Schematron. [26]

- Hierarhična struktura je primerna za večino (vendar ne vse) dokumentov. [26]

- Neodvisna je od platforme in s tem relativno imuna na spremembo tehnologij.

[26]

Page 57: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 45

Slabosti XML-ja pa so: [26]

- XML sintakse je preveč ali pa zelo veliko glede na binearno predstavitev

podobnih podatkov.

- Podatkovni tipi niso podprti. XML ne določena nobenega posebnega pojma za

"integer", "string", "boolean", "datum" …

- Redundanca lahko vpliva na učinkovitost uporabe shranjevalnih enot, prenosa in

časa izvedbe.

6. SPLETNI PORTAL www.potovalka.si

Za praktičen primer diplomske naloge smo želeli razviti portal, na katerem bi bile

združene turistične ponudbe na enem mestu. Ideja za spletni portal www.potovalka.si se nam

je porodila, ko smo se odpravljali na morje in smo zbirali ponudbe po turističnih agencijah,

kar pa nam je vzelo veliko časa. Zapravljanje časa se je nadaljevalo, ko smo iskali podatke o

razmerah na cestah, o vremenu, kakšno bo tistega dne/tedna, kje se ta kraj sploh nahaja, kako

najhitreje priti do tja .... Tako smo prišli do ideje, da bi naredili portal, kjer bi združili

turistične ponudbe in koristne informacije na enem mestu. S to idejo smo se prijavili na

»Najpodjetniško idejo«, ki jo je organizirala Tovarna Podjemov, in se uvrstili v finale, vendar

nismo zmagali.

Page 58: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 46

6.1. Diagram primerov uporabe

6.1.1 Diagram primerov uporabe uporabnika

Na Sliki 14 so prikazani primeri uporabe, ki jih ima uporabnik, ko obišče portal. Vsak

uporabnik se lahko registrira in s tem pridobi funkcionalnosti, ki jih ima registriran uporabnik.

Slika 14: Diagram primerov uporabe za uporabnika

Page 59: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 47

6.1.2 Diagram primerov uporabe ponudnika

Ponudnik ima vse funkcionalnosti, ki jih ima uporabnik in še dodatne, katere mu

omogoči administrator. Ponudnik lahko upravlja s svojimi namestitvami, uporabniki in

podatki, ki se navezujejo nanj. Vse to je razvidno iz Slike 15.

Slika 15: Diagram primerov uporabe za ponudnika

Page 60: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 48

6.1.3 Diagram primerov uporabe administratorja

Administrator ima vse funkcionalnosti, ki jim ima uporabnik in še dodatne možnosti

preverjanja vnosov registriranih uporabnikov, statistike in upravljanje s ponudniki.

Omogočeno mu je tudi ročno zaganjanje skript za obdelavo podatkov ter vnos ponudb preko

XML-jev. Vsi primeri uporabe so razvidni iz Slike 16.

Slika 16: Diagram primerov uporabe za administratorja

Page 61: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 49

6.2. Arhitekturni na črt

Do spletnega portala www.potovalka.si lahko dostopajo vsi uporabniki, ki imajo

internet. Na portal se lahko povežejo s stacionarnim računalnikom, prenosnikom ali

telefonom. Edini pogoj je, da imajo nameščen spletni brskalnik. Komunikacija med

uporabnikom in spletnim portalom poteka preko HTTP strežnika, ki ima požarni zid. Na

strežniku je nameščen linux operacijski sistem z apache strežnikom in PHP 5. Glede na to, da

je portal potovalka.si napisan v skriptnem jeziku PHP, ga ta strežnik prevede v HTML kodo s

pomočjo podatkov, ki se nahajajo v MySQL podatkovni bazi. V ozadju se izvajajo skripte, ki

se povezujejo z MySQL podatkovno bazo in obdelujejo podatke. Arhitekturni načrt je opisan

na spodnji Sliki 17.

Slika 17: Arhitekturni načrt

Page 62: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 50

6.3. Načrt izdelave portala

6.3.1 Izbira tehnologij in ponudnika spletnega pros tora

Za izdelavo takega portala smo se morali odločiti, katero tehnologijo bomo uporabljali,

morala pa je biti hitra in finančno ugodna. Programski jeziki, ki so bili v ožjem izboru:

o .Net,

o Php,

o Java.

Baze:

o MsSql,

o Oracle,

o MySQL.

Glede na to, da je bila prioriteta razviti spletni portal na že obstoječem (zakupljenem)

strežniku, je bilo potrebno izdelati analizo, kateri ponudnik ponuja najugodnejšo in najbolj

stabilno kombinacijo. Po forumih smo šli še preverjati, kakšne izkušnje imajo ostali razvijalci

z zakupi prostorov. Po analizi pa smo se odločil za razvoj v Php5, MySQL 5.xxx, strežnik pa

smo najeli pri ponudniku spletnega prostora hitrost.com.

6.3.2 Struktura datotek

Za hiter in učinkovit razvoj je potrebno definirati logično drevesno strukturo map, kjer

se nahajajo datoteke. Datoteke, ki se bodo vključile večkrat, je potrebno umestiti na tako

mesto, do katerega imajo vse strukture in podstrukture možnost dostopa. Razmisliti smo

morali, kakšno bo ime mape/datoteke, da bi čim bolj pripomoglo k boljši uvrstitvi v

iskalnikih.

Page 63: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 51

6.3.3 Umestitev tehnologij v portal

Generiranje spletnih strani se izvaja na zahtevo uporabnika. Uporabnik ob kliku ali

prihodu na stran pošlje zahtevek za PHP stran, poizvedba se lahko sproži sinhrono ali

asinhrono (AJAX). V primeru, da gre za dinamično stran, se pošlje povpraševanje v obliki sql

stavka v MySQL podatkovno bazo, kjer se podatek zapiše, posodobi ali pa ga vrne. Strežnik

nato generira html vsebino in JavaScript, ki se prenese na uporabnikov brskalnik, lahko se

naloži celotna stran ali pa le del strani ob uporabi AJAX tehnologije.

Dodatno delo se izvaja v ozadju, kjer skripta iz vnaprej znanega naslova prenese XML

datoteko s ponudbami in ostalimi informacijami na strežnik. Nato se izvedejo povpraševanja v

MySQL podatkovno bazo, kjer se izve, ali gre za novo informacijo ali pa za že obstoječ

podatek. V primeru, da gre za novo informacijo, se vstavi v ustrezne tabele, drugače pa se

posodobi ali pa ne naredi ničesar, če ni bila zaznana nobena sprememba. Skripta se izvaja ob

določenih intervalih in poskrbi tudi za konsistentnost podatkov, saj nekateri XML-ji nosijo

podatke, ki so v bazi že zavedeni, vendar na nekoliko drugačen način. Te podatke je potrebno

znati ločiti, da ne pride do težav pri kasnejšem prikazu podatkov. Prikaz uporabljenih

tehnologij je na Sliki 18.

Slika 18: Uporaba tehnologij na portalu

Page 64: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 52

6.4. Specifikacija

Specifikacijo smo izdelali na podlagi analize spletnih strani, ki jih imajo turistične

agencije, in forumov, po katerih so uporabniki spraševali za različne nasvete in informacije.

Zapisovali smo si funkcionalnosti, ki so nas pritegnile in predstavljale dodatno informacijo ob

odločitvi za izbrano ponudbo. Na koncu smo imeli spisek funkcionalnosti, ki bi bile primerne

za portal. Dodali smo še svoje ideje, nekatere obstoječe funkcionalnosti pa smo spremenili.

Na podlagi teh podatkov smo izdelali specifikacijo za portal.

6.4.1 Funkcije za uporabnike

Funkcije portala www.potovalka.si, ki so namenjene uporabniku:

o izpis hotelskih namestitev,

o izpis apartmajskih nastanitev,

o izpis vil,

o izpis hostlov,

o izpis plovil,

o izpis koristih informacij,

o iskanje nastanitev,

o iskanje plovil,

o rezervacija letalskih kart,

o ogled galerij,

o registracija uporabnikov,

o možnost komentiranja vseh ponudb/plovil (registracija),

o objava fotografij (registracija),

o pisanje/branje foruma (registracija),

o pregled vremenskih napovedi,

o prilagojen portal za slabovidne,

o klepet med uporabniki.

Page 65: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 53

6.4.2 Funkcije za ponudnike

Funkcije portala www.potovalka.si, ki so namenjene ponudnikom namestitev/plovil:

o dodajanje/urejanje/brisanje/izpis njihovih namestitev/plovil,

o dodajanje/urejanje/brisanje/izpis uporabnikov, ki imajo dostop do administracije,

o pregled števila klikov na »Podrobnejši ogled turistične ponudbe in rezervacija« po

mesecih/letih,

o urejanje podatkov ponudnika.

6.4.3 Funkcije za administracijo

Funkcije portala www.potovalka.si, ki so namenjene administratorju:

o dodajanje/urejanje/brisanje/izpis ponudnika,

o dodajanje/urejanje/brisanje/izpis uporabnika,

o statistika ob kliku na »Podrobnejši ogled turistične ponudbe in rezervacija« po

mesecih/letih (vse, od izbranega uporabnika),

o izpis/urejanje/brisanje komentarjev in slik,

o statistika obiska,

o urejanje/brisanje/dodajanje reklam,

o ročno poganjanje skript za generiranje XML-jev in obdelavo.

Page 66: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 54

6.5. Podrobnejši opis funkcionalnosti

V nadaljevanju diplomske naloge bomo podrobneje opisali uporabniške

funkcionalnosti. Ponudnikove in administrativne funkcionalnosti pa ne bomo podrobneje

opisovali.

Za realizacijo takega portala je bilo potrebno izdelati specifikacijo, kaj bo portal vseboval:

6.5.1 Prva stran

o Glava:

• logo s sloganom

o Sredina:

• Modul Potovalka.si:

� Po Sloveniji,

� Najem hotelske sobe,

� Poceni letalske karte,

� Hostli,

� Zdravilišča,

� Potovanja po državah,

� Last minute,

� Iskalnik ponudb,

� Kontaktirajte nas.

Smučanje 2008/2009;

� Ponudbe smučanja,

� Smučanje – Francija,

� Smučanje – Avstrija,

� Smučanje – Italija,

� Smučanje – Slovenija,

� Smučanje – Apartmaji.

Page 67: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 55

Najem plovil;

� Seznam plovil za najem,

� Iskanje plovil,

� Jahte,

� Gliserji,

� Jadrnice,

� Katamarani.

Zanimive kategorije;

� Najbolj popularne,

� Apartmaji – Hrvaška,

� Last minute (iz tujine),

� All inclusive.

• Modul Priporočamo – reklama

• Modul Forum z izpisom zadnjih 7 objav

• Modul Iskanje: uporabnik lahko izbere splošni niz ali pa se odloči za napredno

iskanje

• Modul Zanimivo – reklama

• Modul Galerija – uporabnik lahko izbere državo, iz katere si želi ogledati slike,

ki so jih objavile turistične agencije, in se na podlagi le-tega odloči za

počitnikovanje na želeni destinaciji

• Modul vreme - Vreme v Sloveniji za naslednje 3 dni

• Modul povezave:

� Izmenjava povezav,

� Seznam prijateljev,

� Koristne informacije,

� Skrij podrobnosti,

� Nastavi velike črke.

• Sredinski modul:

� Nagovor obiskovalcem,

� Izpis aktualnih ponudb glede na letni čas (smučanje/zadnje ta hip),

Page 68: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 56

� Zadnje dodane ponudbe,

� Potovanje po državah,

� Apartmaji Hrvaška,

� Plovila - jahte, jadrnice, gliserji, katamaran.

• Desni aktualni modul (smučanje/prvi maj/zadnje ta hip).

• Desni modul z naključnimi slikami s povezavo do ponudbe, pod katero spada

slika.

• Desni modul Klepet, kjer se izpisujejo zadnji dodani klepeti, katere lahko

dodajajo uporabniki.

• Desni modul, ki vsebuje 3 zadnje dodane ponudbe.

o Noga:

• podatki o lastniku, portalu in pogojih uporabe

6.5.2 Prva podstran

Prva podstran vsebuje:

o kratek naziv s tipom ponudbe (hotel/apartma/vila/potovanje),

o država/kraj,

o termin letovanja od/do,

o cena,

o slika,

o povezava do želene ponudbe,

o možnost urejanja ponudb po ceni in terminu;

6.5.3 Druga podstran (podrobnejši opis ponudbe)

Druga podstran vsebuje:

o Naziv ponudbe,

o Sezono in tip počitnikovanja,

o Državo,

o Mesto,

Page 69: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 57

o Turistično agencijo, ki ta aranžma ponuja,

o Nastanitev (hotel/apartma/vila),

o Število zvezdic,

o Datum vpisa ponudbe,

o Skrit opis obširne ponudbe z možnostjo prikaza le-te,

o Povezava na podroben opis ponudbe in rezervacijo.

o Termini počitnikovanja:

• Zaporedna številka,

• Datum od,

• Datum do,

• Število dni,

• Število oseb,

• Tip sobe,

• Cena.

o Oglasni prostor,

o Video vsebine kraja/države,

o Modul Prva pomoč, ki vsebuje:

• Vreme za izbrano državo/kraj s povezavo na slikovni prikaz vremena ali pa le

opis vremena,

• Plačilno sredstvo v državi,

• Banke s povezavami do tečajnih list,

• Povezave do cen klicev različnih mobilnih ponudnikov,

• Nasveti pri potovanju z avtomobilom, letalom in vlakom,

• Povezava do wikipedije, kjer je opisana država,

• Pomoč pri zdravstvu, kjer so povezave do različnih zavarovalnic in inštitucij,

ki priporočajo specifične ukrepe za izbrano državo.

o Fotografije s strani agencij (uporabnik mora biti prijavljen),

o Fotografije s strani uporabnikov (uporabnik mora biti prijavljen),

o Možnost pošiljanja izbrane ponudbe na e-naslov z vpisom varnostne kode,

o Modul za oglaševanje.

Page 70: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 58

6.5.4 Napredno iskanje

Napredno iskanje omogoča uporabniku ožji izbor ponudb, ki so mu na voljo, da lažje

najde sebi primerno. Ob končanem iskanju jih lahko ureja po ceni in terminu odhoda. V

naprednem iskalniku lahko uporabnik izbere:

o Iskanje po nastanitvah:

• Prvi sklop:

� Izbira države,

� Izbira sezone,

� Tip počitnikovanja.

• Drugi sklop:

� Izbira države,

� Termin od/do,

� Termin najema od/do/točno,

� Cena od/do,

� Izbira nastanitve,

� Storitve,

� Turistične agencije.

o Iskanje po plovilih:

• Prvi sklop:

� Tip plovila,

� Država najema,

� Izdelovalec.

• Drugi sklop:

� Kraj najema,

� Model plovila,

� Termin najema od/do,

� Termin najema od/do/točno,

� Cena od/do.

Page 71: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 59

6.5.5 Forum

Forum vsebuje kategorije, ki imajo podteme, pri vsaki podtemi pa se na prvem nivoju

izpiše zadnji objavljen prispevek.

Ob kliku na:

o kategorijo, se izpišejo vse podteme,

o podtemo, se izpišejo vsi prispevki, ki so znotraj podteme,

o prispevek, se izpišejo vsi prispevki, katere lahko dodajo tudi drugi uporabniki,

o nov vnos, se odpre forma, kjer lahko uporabnik napiše naslov in sporočilo,

avtomatično pa se ga doda v podtemo, v kateri se je nahajal.

Dodatne funkcionalnosti:

o uporabnik je obveščen o novem vpisu na njegov prispevek preko e-pošte,

o vsi uporabniki so obveščeni o novem vpisu na prvotni prispevek preko e-pošte.

6.6. Podatkovna baza

Podatkovna baza je strukturirana zbirka zapisov ali podatkov, ki so shranjeni v

računalniškem sistemu. Struktura je dosežena s posredovanjem podatkov v skladu z modelom

podatkovne zbirke. [33]

Pomemben faktor pri zasnovi spletne aplikacije je podatkovna baza, ki mora biti dobro

zastavljena, da potem ne pride do težav pri razvoju samega portala/aplikacije. Za načrtovanje

podatkovne baze smo izbirali med dvema orodjema DB Designer 4 (Slika 19) in

PowerDesigner 11 (Slika 20). Prvi je brezplačen, pri drugem pa je potrebno plačati licenco.

Pri DB Designer-ju nas je zmotilo to, da vedno spremeni prvi dve črki v malo začetnico, kar

je lahko problem pri pisanju sql-ov. PowerDesigner ima več dodatkov, eden izmed njih je

generiranje naključnih podatkov, katere lahko potem uvozimo v podatkovno bazo in nato

testiramo hitrost sql-ov. Hitrost je potrebno vsekakor zagotoviti, je eden izmed

najpomembnejših faktorjev, če želimo, da bodo uporabniki uporabljali našo aplikacijo. S hitro

odzivnostjo si zagotovimo, da se bodo uporabniki vračali na naš portal.

Page 72: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 60

Podatkovno bazo smo načrtovali zelo obsežno, saj je vsebovala kar 68 tabel, v končni

verziji pa 75. S tem smo zagotovili veliko možnosti za vsebinske nadgradnje, ki bodo lahko

realizirane na portalu brez posega v podatkovni model oz. njegove dopolnitve. Relacija do

povezave med uporabnikom in stranko je prikazana na Sliki 21. Uporabnik ima ključ od tipa,

kjer se definira, kakšen je tip uporabnika (admin., urednik …) in strankin ključ, ki pove, kateri

stranki pripada uporabnik. Stanka pa ima ključ od tipa stranke, ki nam pove ali gre za:

- turistično agencijo,

- posameznika, ki ponuja storitev,

- izposojevalnico jaht/jadrnic/gliserjev/gumenjakov,

- odprte možnosti.

Slika 19: Designer 4

Page 73: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 61

Slika 20: PowerDesigner 11

Slika 21: Del podatkovnega modela

Page 74: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 62

6.7. Ogrodje aplikacije

Ogrodje aplikacije je prikazano na Sliki 22.

Slika 22: Ogrodje spletne portala www.potovalka.si

Page 75: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 63

6.8. Moduli

Spletni portal www.potovalka.si je sestavljen iz modulov, ki so razporejeni na:

o levi modul,

o desni modul,

o glava modul,

o noga modul.

6.8.1 Levi modul

Levi modul vsebuje:

o turistične ponudbe in ima podkategorije:

• potovalka.si (Po Sloveniji, Najem hotelske sobe, Poceni letalske karte, Hostli,

Zdravilišča, Potovanja po državah, Iskalnik ponudb, Kontaktirajte nas),

• Smučanje 2008/2009 (Ponudbe smučanja, Smučanje otvoritev sezone 2009,

Smučanje - Francija, Smučanje - Avstrija, Smučanje - Italija, Smučanje -

Slovenija, Smučanje - Apartmaji),

• Najem plovil (Seznam plovil za najem, Iskanje plovil, Jahte, Gliserji, Jadrnice,

Katamarani),

• Zanimive kategorije (Najbolj popularne, Apartmaji - Hrvaška, Last minute (iz

tujine), All inclusive)

o Priporočamo (modul, ki je namenjen oglaševanju),

o Forum (predstavljene so zadnje teme, ki so jih napisali uporabniki),

o Iskanje – v osnovi je enostavno, poleg pa je povezava do naprednega iskanja, kjer

lahko uporabniki izberejo želene omejitve,

o Zanimiva povezava do strani, s katerimi si izmenjamo povezave, ali pa reklamna

pasica,

o Galerija omogoča izbiro države, o kateri si želi uporabnik ogledati slike,

o Tridnevna vremenska napoved

o Povezave do:

• izmenjava povezav (prikazane so oglasne pasice, ki jih lahko uporabniki

namestijo na svojo stran/portal),

Page 76: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 64

• Seznam prijateljev (povezave do strani, s katerimi smo si izmenjali povezave),

• Koristne informacije (izpis koristnih informacij o državah, ki so predstavljene

na portalu),

• Skrij podrobnosti (uporabniku lahko skrije vse podrobnosti, ki so prikazane pri

posamezni ponudbi, in si ogleda zgolj ponudbo in termine),

• Nastavi velike črke (na portalu smo poskrbeli tudi za slabovidne, saj jim

omogočamo večjo pisavo in odstranitev grafične podobe). Prikaz uporabe te

funkcionalnosti na Sliki 23.

Page 77: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 65

Slika 23: Portal primeren tudi za slabovidne

Page 78: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 66

6.8.2 Desni modul

Desni modul vsebuje:

o Aktualne ponudbe (trenutno je to prvi maj, naslednji bo last minute),

o Utrinki (prikaže se naključna slika s povezavo do konkretne ponudbe, kjer se nahaja),

o Klepet, uporabniki si lahko izmenjajo mnenja o tekočem dogajanju,

o Zadnje dodane – izpišejo se zadnje 3 dodane ponudbe,

o Agencije – želimo sodelovati s čim več agencijami in to tudi nazorno prikazujemo v

tem modulu.

6.8.3 Glava modul

Prikazan je logotip z možnostjo registracije/prijave na portal, ki uporabnikom

omogoča dodajanje ponudb pod priljubljene, primer je viden na Sliki 24 in izpis le-teh ter

urejanje svojega profila, pa je prikazan na Sliki 25.

Slika 24: Dodajanje ponudbe pod priljubljene

Slika 25: Izpis priljubljenih povezav

Page 79: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 67

6.8.4 Noga modul

Vsebuje napis, kdo je lastnik in kdo ima pravice nad portalom.

6.9. Forum

Forum je namenjen izmenjavi mnenj uporabnikov o potovanjih, hotelih, apartmajih,

prijaznosti osebja in druženju preko spleta. Vsak uporabnik lahko pove svoje mnenje in se ga

ne cenzurira, dokler ni žaljiv. Razdeljen je na poglavja:

o Plaža in morje,

o Destinacije, hoteli, apartmaji, bungalovi ...

o Dogaja se,

o Smučanje,

o Navtika,

o Klepet ob koktejlu,

o Potovalka.si.

V vsakem poglavju lahko uporabnik piše o svoji izkušnji. Primer pregleda foruma je

na Sliki 26.

Slika 26: Pregled foruma

Page 80: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 68

6.10. Namen portala

Spletni portal www.potovalka.si zagotavlja naslednje:

o predstavlja ponudbe turističnih agencij v Sloveniji na enem mestu,

o izpostavljene zadnje dodane ponudbe, aktualne ponudbe, vroče ta hip, last minute/first

minute ponudbe,

o pri iskanju ponudbe imajo uporabniki možnost izbora po naslednjih kriterijih;

• obdobje počitnikovanja,

• dolžina počitnikovanja,

• država/mesto,

• cena,

• tip nastanitve,

• število zvezdic nastanitve,

• oddaljenost od obale/centra,

• turistična agencija,

o omogoča dodajanje fotografij uporabnikov,

o omogoča obveščanje prijateljev o turistični ponudbi,

o na osnovi iskalnih kriterijev izpiše ponudbe, s kratkim opisom, in ponudi direktno

povezavo do spletne strani turistične agencije, ki organizira ponudbo,

o koristne informacije in napotki o državi, v katero potujemo (vremenske napovedi,

tečajnice bank, osnovni podatki o državi, osnovni izrazi v tujem jeziku, zdravstveni

nasveti, povezava na zavarovalnice, letalske ponudnike, mobilne operaterje ...),

o možnost podajanja mnenja in predstavitev mnenj ter ocen posameznih dopustnikov,

o možnost prijave na e-novice v skladu z izbranimi iskalnimi kriteriji,

o zagotavljanje aktualnosti ponudb:

• z dostopom do aplikacije, ki je enostavna za uporabo,

• storitev vnosa novih ponudb na splet.

Page 81: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 69

6.11. Kratek opis ponudbe

Portal je narejen po načelu hitrega dostopa, z največ dvema klikoma uporabnik pride

do ponudbe, ki si jo želi ogledati. Ob kliku na »Po Sloveniji« se izpišejo osnovne značilnosti

in ponudbe s sledečimi podatki. Primer je prikazan na Sliki 27:

o naziv,

o tip ponudbe,

o število zvezdic,

o država,

o kraj,

o termin,

o najnižja cena.

Slika 27: Klik na »Po Sloveniji«

Page 82: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 70

6.12. Podroben opis ponudbe

Ob kliku na »Poglej ponudbo« se izpišejo podatki, ki vsebujejo podroben opis

ponudbe, primer je na Sliki 28:

o ime države in povezava do države na maps.google.com,

o ime kraja in povezava do kraja na maps.google.com,

o naziv agencije in povezava do spletne strani agencije,

o tip nastanitve,

o oddaljenost od obale/centra,

o ocena nastanitve,

o datum vpisa ponudbe,

o obširen opis ponudbe,

o povezava do točnega opisa ponudbe

o termini počitnikovanja, ki vsebujejo:

• datum od,

• datum do,

• število dni,

• tip sobe,

• cena

o videi države/kraja, ki so jo/ga predstavili uporabnik na youtube,

o prva pomoč:

• plačilno sredstvo v državi, v katero uporabnik potuje,

• vreme v slikovni ali opisni obliki,

• povezave do mobilnih operaterjeve, kjer so predstavljene cene klicev v/iz

tujine,

• nasveti pri potovanju z:

i. avtomobilom:

* Izračun poti do želene destilacije;

* pregled razmer na cestah;

* predstavljene so omejitve hitrosti v posameznih državah;

ii. letalom:

* povezava do letališča Jožeta Pučnika;

Page 83: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 71

* povezava do pravic potnikov pri zamudi letal;

* povezava do pravil na letališčih;

iii. vlakom:

* povezava do mednarodnih voznih redov vlakov;

* povezava do ponudnika potovanja z InterRail;

o povezava do Wikipedije posamezne države, kjer si lahko uporabnik prebere vse

osnovne značilnosti države,

o povezava do zdravil, ki jih je priporočljivo vzeti na pot (posebna priporočila za

eksotične države),

o povezava do aktualnih bolezni v državi, v katero potuje uporabnik,

o povezava do zavarovalnic:

• Zavod za zdravstveno zavarovanje,

• CORIS,

• Triglav,

• Generali,

• Adriatic Slovenica,

• Zavarovalnica Maribor,

• Vzajemna

o fotografije, ki jih objavijo agencije/ponudniki,

o pregled fotografij, ki jih objavijo obiskovalci,

o komentarji uporabnikov,

o možnost pošiljanja ponudbe prijatelju.

Page 84: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 72

Slika 28: Izbrana destinacija

Page 85: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 73

6.13. Administracija

Administracija je namenjena turističnim agencijam ali posameznim ponudnikom, ki

želijo imeti pregled nad podatki, ki so jih vpisali na portal, primer je viden na sliki 29. V

administraciji imajo možnost:

o Urejati ponudbo:

• izpisati ponudbe,

• dodajati ponudbe,

• urejati ponudbe,

• brisati ponudbe,

• urediti aktivne/neaktivne ponudbe,

• dodajati sponzorske ponudbe.

o Pregledati podatke o podjetju/posamezniku:

• mesečni račun,

• statistko,

• podatke o podjetju,

• dodati uporabnika, ki se mu omogoči vstop v administracijo,

• brisanje uporabnikov.

o Uporabnik si lahko:

• pregleda osebne podatke,

• spreminja geslo,

• odjavi.

Page 86: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 74

Slika 29: Pregled v administraciji

Uporabnik lahko ročno dodaja ponudbo, kar poteka v štirih korakih. »Čarovnik« ga

vodi skozi vse vprašalnike, ki jih uporabnik izpolni in na koncu potrdi. Povsem enak postopek

poteka pri urejanju ponudbe. Uporabniku je omogočen tudi pregled klikov, na preusmeritvijo

na njihovo konkretno ponudbo in to v realnem času. Poleg je tudi cena, koliko mora plačati za

tekoči mesec, če je izbral določen paket sodelovanja.

Page 87: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 75

6.14. Galerija

Namen prikaza galerije je v tem, da lahko obiskovalec pregleduje slike

apartmajev/hotelov in se na podlagi tega odloči, kam bo odšel. Tak način izbire je primeren,

ko uporabniku ni pomembno, kam bo šel, izbrati mora le državo (primer je prikazan na Sliki

30) in kraj (primer je prikazan na Slika 31). Ob kliku na sliko pa se odpre podrobna ponudba,

kjer si lahko ogleda vse podrobnosti, vključno s ceno.

Slika 30: Izpis mest glede na izbrano državo

Page 88: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 76

Slika 31: Izpis slik glede na izbrano mesto

6.15. Napredno iskanje

Napredno iskanje ponuja natančno iskanje po vseh ponudbah na portalu. Sestavljeno je

iz dveh sklopov.

6.15.1 1. Sklop

Uporabnik lahko izbere med (primer je prikazan na Sliki 32):

o državami,

o sezono (poletje/zima),

o tipom počitnikovanja (Počitnice, Last minute, Smučanje, Zdravilišča, Potovanja).

Page 89: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 77

Slika 32: Prvi sklop pri naprednem iskanju

6.15.2 2. Sklop

Uporabnik lahko izbere med (primer je prikazan na Sliki 33) :

o mestom,

o terminom od/do,

o številom dni, od kdaj do kdaj si želi počitnikovati,

o omeji ceno,

o izbere nastanitev (Hotel, Apartma, Popotovanje, Vila, Izlet),

o storitvijo (Polpenzion, Poln penzion, Vse vključeno, Nočitev, Nočitev z zajtrkom,

Najem apartmaja, Paketna ponudba),

o turistično agencijo.

Page 90: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 78

Slika 33: Drugi sklop pri naprednem iskanju

Uporabnik lahko vse opcije pusti prazne, v tem primeru se prazno polje ne upošteva in

dobi samo tiste omejitve, ki jih je izbral.

6.16. Za turisti čne agencije

Turističnim agencijam je omogočeno:

o brezplačno dodatno oglaševanje agencije,

o plačilo le na klik,

o dvig prepoznavnosti in večja obiskanost njihove spletne strani,

o pridobivanje novih potencialnih strank,

o lažje oblikovanje naslednjih ponudb, saj omogočamo dostop do statistike portala in s

tem dostop do podatkov o interesih obiskovalcev,

o visoka raven storitev, portal bo neprestano prisoten v medijih, sprva predvsem na

spletu, radiu in v časopisih, kar ponovno predstavlja brezplačno dodatno oglaševanje.

Page 91: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 79

6.17. Oglaševanje

Na portalu www.potovalaka.si imajo oglaševalci možnost različnih načinov

oglaševanja. Zato obstaja tudi več opcij, kjer lahko oglaševalci zakupijo svoj prostor oz.

oddajo oglas:

o plačilo na kliku,

o zakup »Vroče ta hip« povezav,

o zakup oglasnega prostora na prvi strani,

o zakup oglasnega prostora pod ponudbami,

o zakup oglasnega prostora pod ponudbo,

o zakup oglasnega prostora na desni strani.

Page 92: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 80

6.17.1 Plačilo na kliku

Obiskovalcu strani se bodo ob iskanju počitnikovanja izpisali rezultati in kratek

opis želene destinacije, za rezervacijo ponudbe in podrobnejši opis pa bo ustvarjena

direktna povezava na spletno stran turistične agencije. Zabeleži se klik na to povezavo

(»Podrobnejši ogled turistične ponudbe«, primer je prikazan na Sliki 34).

Slika 34: Klik na Podrobnejši ogled ponudbe

Page 93: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 81

6.17.2 Zakup »Vro če ta hip« povezav

Na zgornji desni strani spletnega portala so na voljo 3 sponzorske povezave, ki se

menjajo v določenem intervalu. Zabeleži se klik na to povezavo. Modul bo prisoten ves

čas. Primer modula sponzorskih ponudbe je prikazan na Sliki 36.

Slika 35: Sponzorske ponudbe

6.17.3 Zakup oglasnega prostora na prvi strani

Celoten modul Sponzorji se lahko oblikuje po želji. Opremi se lahko z lastnim

tekstom, sliko, flashem … Velikost prostora je do 160 x 160 pik. JavaScriptni jezik ni

dovoljen. Primer modula sponzorji je prikazan na Sliki 36.

Slika 36: Prikaz sponzorja

Page 94: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 82

6.17.4 Zakup oglasnega prostora pod ponudbami

Obiskovalcem se oglasni prostor izpiše pod vsemi razpoložljivimi ponudbami.

Velikost dimenzije ni fiksna, je pa omejena na maksimalno velikost 523 x 150 pik. Primer

umestitve oglasnega prostora je prikazan na Sliki 37.

Slika 37: Izpis vseh razpoložljivih destinacij

6.17.5 Zakup oglasnega prostora pod ponudbo

Obiskovalcem se oglasni prostor izpiše pod vsako izbrano ponudbo. Velikost

dimenzije ni fiksna, je pa omejena na maksimalno velikost 523 x 150 pik. Primer

umestitve oglasnega prostora je prikazan na Sliki 38.

Slika 38: Izpis točno določene destinacije

Page 95: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 83

6.17.6 Zakup oglasnega prostora na desni strani

Obiskovalcem se oglasni prostor izpiše na vseh straneh, razen na prvi. Velikost

dimenzije ni fiksna, je pa omejena na maksimalno velikost 215 x 796 pik. Prikaz

oglasnega prostora na desni je prikazan na Sliki 39.

Slika 39: Prikaz reklame na desni strani

6.18. Možnost vnašanja ponudb

Vnašanje ponudb poteka na 3 načine:

o uporabnik vnaša ponudbe sam preko uporabniškega vmesnika,

o uporabnik/agencija pripravi XML, le-ta se obdela in ponudbe se avtomatično vnašajo

v podatkovno bazo ob dogovorjeni uri,

o na željo uporabnika sami vnašamo ponudbe.

Page 96: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 84

6.19. Izkušnje ob razvoju portala

Pri razvoju omenjenega portala smo pridobili veliko izkušenj s strani razvoja v PHP,

delu s podatkovno bazo MySQL, pri pisanju Sql-ov, načrtovanju portala, uporabniških

izkušnjah, seznanjanja s tehnologijami, delu z veliko količino podatkov, obdelavo XML-jev,

AJAX tehnologijo, govornimi veščinami, navezovanju stikov in drugo. Integracija z ostalimi

storitvami, ki jih ponuja internet, se je izkazala za zelo pozitivno. Na portalu je kar nekaj

integracij z maps (google), translate (google) in google video, ki dajo portalu dodano vrednost

glede novih informacij, ki jih lahko uporabniku ponudi portal.

Zelo pomembno pri razvoju je načrtovanje, saj je pri dobro načrtovanem portalu manj

težav ob naraščanju podatkov in uporabnikov. V praksi smo se veliko seznanjali tudi s

tehničnimi problemi, s katerimi se srečujejo v drugih podjetjih, vendar na koncu smo

ugotovili, da je običajno največji problem človeški faktor, saj se s tehničnega vidika običajno

najde ustrezna rešitev.

S tehničnega vidika smo imeli težave pri:

o Omejitvi izvajanja skript. Glede na to, da je bil prostor najet, se je lahko skripta

izvajala največ 60 sekund, kar pa je povzročilo kar nekaj težav pri sami obdelavi

podatkov XML-ja, ki so se uvažali v podatkovno bazo. Rešil smo jih tako, da smo

napisal več skript, ki so se izvajale zaporedno.

o Veliko časa smo porabili za uredniški del, ki pa ga velika večina ponudnikov/agencij

sploh ne uporablja, ker nimajo časa za vpisovanje, ampak se vse uvaža preko XML-

jev.

o Večji del funkcij smo pisali v eno datoteko, kar se mi zdi manj primerno, bolje bi bilo,

da bi jo razdelil na vsaj štiri manjše.

o Večina destinacijskih slik se nahaja na ponudnikovih strežnikih in se na portalu

www.potovalka.si samo prikazujejo. Velikokrat se je pojavila težava, da njihov

strežnik ni deloval in se je s tem popačila celostna podobo portala. Veliko bolje bi

bilo, če bi bile slike na istem strežniku kot portal.

o Gostovanje na strežniku vsekakor ni optimalna rešitev, ker se pojavljajo tudi

nepričakovani izpadi in s tem izguba obiskovalcev.

Page 97: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 85

Težave ob zagonu portala:

o Poiskati smo morali potrebne partnerje, ki bodo prisotni na portalu, vendar turistične

agencije niso imele veliko posluha, saj so gledali na portal kot na nekaj »neresnega« in

»neuveljavljenega«.

o Preko e-pošte 99 % agencij/podjetij ne odgovarja na kakršno koli ponudbo/vprašanje.

Težko je tudi pridobiti odgovorno osebo za pogovor oz. sestanek.

o Pridobitev individualne reklame na portalu je zelo težka, veliko lažje se pridobi

izmenljivo oglasno pasico ali pa se podjetja raje odločajo za oglaševanje na

ADopartnerju in njemu podobnim. Vendar menim, da bi morala pristopati tudi

individualno, saj bi s tem pridobili obiskovalce/uporabnike na že namenskem portalu.

Page 98: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 86

7. SKLEP

V diplomski nalogi, smo v prvem delu, ki je nekoliko bolj teoretičen, prikazali

uporabo tehnologij PHP, MySQL, AJAX in XML na kratkih praktičnih primerih in opisali

njihove glavne značilnosti, ter konkurente. Najtežje je bilo najti konkurenco za tehnologijo

AJAX, saj je to skup tehnologij, ki je trenutno v trendu. Ugotovili smo, da je učenje

skriptnega jezika PHP zelo lahko dostopno, saj ga v ozadju podpira velika skupnost in mu s

tem omogoča rast prepoznavnosti. Zaradi skupnosti je veliko težav/problemov/nasvetov hitro

rešljivih, saj jih zelo hitro pridobi ob uporabi spletnih iskalnikov. Sintaksa skriptnega jezika

PHP je zelo preprosta, prav tako pa se jo da hitro naučiti. Uporaba MySQL podatkovne baze

je učinkovita, dokler ni potrebno izvajati obdelav podatkov. Zelo bi bilo koristno, če bi imel

MySQL možnost ustvarjanja procedur, katerim bi se dalo nastaviti čas zagona na nivoju

MySQL-a. S pomočjo tehnologije AJAX se lahko razvijajo tehnološko dovršene, hitre

(odzivne), privlačne in uporabniku prijazne aplikacije. Z uporabo tehnologije AJAX je

potrebno še znanje JavaScript-a, XML, DOM-a, CSS-ja, XSLT-ja … Integracijo podatkov iz

drugih aplikacij, lahko dosežemo enostavno z uporabo XML-jev, ki lahko služijo za

izmenjavo podatkov iz ene aplikacije v drugo. Prednost tega je, da se lahko uporabljajo

različne tehnologije, saj lahko vse tehnologije obdelajo ta format zapisa. Kreacija samega

XML-ja je zelo hitra in človeku berljiv format, dokler ni podatkov preveč, saj lahko pride do

težav zaradi prevelike datoteke, ker XML nosi še opis podatkov in s tem dodatne informacije,

ki le povečujejo velikost datotek. V drugem delu diplomske naloge smo predstavili praktičen

primer uporabe vseh tehnologij na portalu www.potovalka.si. Skupek vseh teh tehnologij je

pripomogel k temu, da se je portal razvil v razmeroma hitrem času. Za dobro zasnovano

aplikacijo je potrebno vložiti veliko časa v načrtovanje aplikacije, hkrati pa se je potrebno

zavedati omejitve tehnologij, s katerimi bomo v nadaljevanju razvijali.

Page 99: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 87

8. VIRI

[1] PHP http://sl.wikipedia.org/wiki/PHP (24.1.2009)

[2] PHP http://en.wikipedia.org/wiki/PHP (24.1.2009)

[3] MySQL http://sl.wikipedia.org/wiki/MySQL (24.1.2009)

[4] MySQL http://en.wikipedia.org/wiki/MySQL (24.1.2009)

[5] MySQL - cenik

http://globalspecials.sun.com/store/mysql/ContentTheme/pbPage.categoryEnterprise

(24.1.2009)

[6] MySQL - Arhitektura

http://images.google.si/imgres?imgurl=http://dev.mysql.com/tech-

resources/articles/mysql_5.0_psea1.jpg&imgrefurl=http://dev.mysql.com/tech-

resources/articles/mysql_5.0_psea1.html&usg=__zTRwGYlXXiEHKghzrpqoOKOc6qw=&h

=413&w=572&sz=69&hl=sl&start=1&sig2=UPrCwDRdDV_-

I1F2LokW1Q&um=1&tbnid=01kKt6p-

tgLEkM:&tbnh=97&tbnw=134&ei=jyp8SeO3CIHEjAf7qoGzAQ&prev=/images%3Fq%3DE

ngine%2BArchitecture%2BMYSQL%2B5%26um%3D1%26hl%3Dsl%26client%3Dfirefox-

a%26rls%3Dorg.mozilla:sl:official%26sa%3DN (25.1.2009)

[7] AJAX - sinhrona komunikacija http://sitepointstatic.com/graphics/Fig-

TraditionalModel.png (8.2.2009)

[8] AJAX - asinhrona komunikacija http://sitepointstatic.com/graphics/Fig-

AsyncModel.png (8.2.2009)

[9] AJAX http://sl.wikipedia.org/wiki/AJAX_(programiranje) (8.2.2009)

[10] AJAX http://en.wikipedia.org/wiki/Ajax_(programming) (8.2.2009)

[12] XSLT http://www.ibm.com/developerworks/library/x-xslt/ (14.2.2009)

[13] XSLT http://www.ibm.com/developerworks/xml/library/x-xmlajaxpt2/ (14.2.2009)

[14] XMLHttpRequest http://en.wikipedia.org/wiki/XMLHttpRequest (22.2.2009)

[15] XMLHttpRequest http://developer.apple.com/internet/webcontent/xmlhttpreq.html

(22.2.2009)

[16] AJAX and PHP Building Responsive Web Applications

[17] XML http://amor.fri.uni-lj.si/dejan/delo/studenti/pvis2/gradivo/XML.pdf (28.2.2009)

[18] Eric van der Vlist, Alessandro Vernet, Erik Bruchez, Joe Fawcett, Danny Ayers-

Professional web 2.0 Programing

Page 100: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 88

[19] PHP http://www.onlamp.com/pub/a/php/2001/02/22/php_foundations.html

(19.4.2009)

[20] PHP http://si2.php.net/reserved.variables 8.3.2009 (19.4.2009)

[21] PHP http://si2.php.net/manual/en/features.php (19.4.2009)

[22] PHP http://www.procata.com/blog/archives/2006/02/09/comparing-php-with-other-

languages/ (19.4.2009)

[23] MySQL http://www.ucl.ac.uk/web-services/web-technologies/php-mysql (19.4.2009)

[24] MySQL http://media.wiley.com/product_data/excerpt/20/04712692/0471269220.pdf

(19.4.2009)

[25] XML - prednosti/slabosti http://www.sinonim.com/iwa-

ljubljana/xml/XML%20v%20solstvu.html (27.4.2009)

[26] XML - prednosti/slabosti http://www.techmynd.com/advantages-disadvantages-of-

xml/ (27.4.2009)

[27] AJAX in WEB 2.0 http://www.webreference.com/programming/ajax_introduction/

(27.4.2009)

[28] AJAX - konkurenca http://www.oracle.com/technology/tech/standards/pdf/jsf.pdf

(27.4.2009)

[29] SVG http://sl.wikipedia.org/wiki/SVG (27.4.2009)

[30] XUL http://en.wikipedia.org/wiki/XUL (27.4.2009)

[31] XAML http://en.wikipedia.org/wiki/Extensible_Application_Markup_Language

(27.4.2009)

[32] Java applet http://en.wikipedia.org/wiki/Java_applet (27.4.2009)

[33] Podatkovna baza http://en.wikipedia.org/wiki/Database (16.5.2009)

[34] XSLT http://www.ibm.com/developerworks/library/x-xslt/ (16.5.2009)

[35] XML HttpRequest

http://www.javareference.com/jrexamples/images/ajax_interaction.gif (16.5.2009)

Page 101: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 89

9. PRILOGE

9.1. Seznam slik

Slika 1: Pregled verzij PHP skozi čas od leta 1995 do 2008 [2] ...................................... 2 Slika 2: Prikaz procesiranja PHP kode[19].......................................................................... 3 Slika 3: phpMySQLAdmin – brezplačna različica............................................................. 14 Slika 4: SQLyog – plačljiva različica ................................................................................... 15 Slika 5: Cenik podpore ob uporabi MySQL ....................................................................... 16 Slika 6: Delovanje MySQL strežnika[6].............................................................................. 17 Slika 7: Izpis podatkov iz tabele .......................................................................................... 20 Slika 8: Standardna komunikacija brskalnik / strežnik..................................................... 24 Slika 9: Asinhrona komunikacija brskalnik / strežnik ....................................................... 24 Slika 10: Nabor združljivih tehnologij.................................................................................. 26 Slika 11: Primer DOM strukture........................................................................................... 27 Slika 12: Operacije XSLT procesorja [34].......................................................................... 28 Slika 13: XMLHttpRequest [35] ........................................................................................... 32 Slika 14: Diagram primerov uporabe za uporabnika........................................................ 46 Slika 15: Diagram primerov uporabe za ponudnika ......................................................... 47 Slika 16: Diagram primerov uporabe za administratorja ................................................. 48 Slika 17: Arhitekturni načrt ................................................................................................... 49 Slika 18: Uporaba tehnologij na portalu ............................................................................. 51 Slika 19: Designer 4 .............................................................................................................. 60 Slika 20: PowerDesigner 11................................................................................................. 61 Slika 21: Del podatkovnega modela ................................................................................... 61 Slika 22: Ogrodje spletne portala www.potovalka.si ........................................................ 62 Slika 23: Portal primeren tudi za slabovidne ..................................................................... 65 Slika 24: Dodajanje ponudbe pod priljubljene................................................................... 66 Slika 25: Izpis priljubljenih povezav .................................................................................... 66 Slika 26: Pregled foruma ......................................................................................................67 Slika 27: Klik na »Po Sloveniji« ........................................................................................... 69 Slika 28: Izbrana destinacija ................................................................................................ 72 Slika 29: Pregled v administraciji ........................................................................................ 74 Slika 30: Izpis mest glede na izbrano državo.................................................................... 75 Slika 31: Izpis slik glede na izbrano mesto........................................................................ 76 Slika 32: Prvi sklop pri naprednem iskanju........................................................................ 77 Slika 33: Drugi sklop pri naprednem iskanju ..................................................................... 78 Slika 34: Klik na Podrobnejši ogled ponudbe.................................................................... 80 Slika 35: Sponzorske ponudbe............................................................................................ 81 Slika 36: Prikaz sponzorja .................................................................................................... 81 Slika 37: Izpis vseh razpoložljivih destinacij...................................................................... 82 Slika 38: Izpis točno določene destinacije ......................................................................... 82 Slika 39: Prikaz reklame na desni strani............................................................................ 83

Page 102: UPORABA PHP5, XML, MySQL in AJAX ZA RAZVOJ SPLETNIH … · V diplomski nalogi so predstavljene tehnologije, s katerimi je bil razvit portal . Opisane so tehnologije PHP5, MySQL (podatkovna

Uporaba PHP5, XML, MySQL in AJAX za razvoj spletnih rešitev

Stran 90

9.2. Seznam preglednic

Tabela 4.1. XMLHttpRequest metode[16]............................................................................... 34 Tabela 4.2. XMLHttpRequest lastnosti [16] ............................................................................ 35

9.3. Naslov študenta

Dejan Kos Roje 2 8233 Mirna

Gsm: 040 937 602 e-mail: [email protected]

9.4. Kratek življenjepis

Rojen sem 16. 4. 1984, v Novem mestu, stanujoč na Mirni na Dolenjskem. Srednjo

šolo sem obiskoval na Mirni in zaključil prvih 7 razredov s prav dobrim uspehom, 8. razred

pa z dobrim. Že v srednji šoli me je veselilo delo z računalniki in sem tako že v mladosti

preživel veliko časa pred računalnikom. Velik del časa sem posvečal tudi športu, predvsem

košarki in badmintonu. V srednjo šolo sem hodil na Ekonomsko šolo Novo mesto, in jo

zaključil z dobrim uspehom. Za nadaljnje šolanje sem se odločil na Fakulteti za računalništvo

in informatiko, na katero sem se vpisal leta 2003/04.