Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Aljaž Kolar
SPLETNI VMESNIK ŠTUDENTSKEGA KLUBA, NAMENJEN VČLANJEVANJU IN UREJANJU
UGODNOSTI
Diplomsko delo
Maribor, november 2011
I
Diplomsko delo univerzitetnega študijskega programa
SPLETNI VMESNIK ŠTUDENTSKEGA KLUBA, NAMENJEN
VČLANJEVANJU IN UREJANJU UGODNOSTI
Študent: Aljaž Kolar
Študijski program: Univerzitetni – Telekomunikacije
Mentor: doc. dr. Damjan Vlaj
Somentor: izr. prof. dr. Andrej Žgank
Lektorica: Polonca Jazbinšek
Maribor, november 2011
{.ini\'erza v ~Iarihoru
/-llku lleia za
III
ZAHVALA
Zahvaljujem se mentorju doc. dr. Damjanu Vlaju
za pomoč in vodenje pri opravljanju
diplomskega dela. Prav tako se zahvaljujem
somentorju izr. prof. dr. Andreju Žganku.
Posebna zahvala velja moji družini, ki so mi v
času študija vedno stali ob strani, in prijateljem,
za vso kolegialnost v času študija.
IV
SPLETNI VMESNIK ŠTUDENTSKEGA KLUBA, NAMENJEN
VČLANJEVANJU IN UREJANJU UGODNOSTI
Ključne besede: spletni vmesnik, PHP, MySQL, mobilna spletna stran UDK: 004.512.5(043.2)
Povzetek
V diplomi bomo predstavili tehnologije in orodja, s katerimi smo implementirali spletni
vmesnik študentskega kluba, namenjen včlanjevanju in urejanju ugodnosti ter njihovo
namestitev v operacijski sistem Windows XP. Predstavili bomo spletni vmesnik, ki
uporabniku omogoča vpis v študentski klub s spletno pristopno izjavo ter vpogled nad
rabo članskih ugodnosti z mobilno spletno stranjo. Implementirali smo
administratorsko okolje, ki omogoča urejanje članov in članskih ugodnosti, izpis
agregiranega seznama, elektronskih naslovov prijavljenih za prejemanje obvestil in
telefonskih številk prijavljenih za prejemanje SMS obvestil. Cilj diplomske naloge je
implementacija spletne strani, ki olajša delovanje kluba na področju včlanjevanja in
urejanja članskih ugodnosti.
V
STUDENT CLUB WEB INTERFACE FOR MEMBERSHIP AND
BENEFITS MANAGEMENT
Key words: web interface, PHP, MySQL, mobile web page
UDK: 004.512.5(043.2)
Abstract
The graduating thesis presents technologies and tools that were used for the
implementation of the student club web interface for enrollment and benefits
management, and their installation on Windows XP operating system. The thesis
introduces a web interface enabling the user to enroll in the student club using an
online application form and it also offers an insight into the use of members’ benefits
with a mobile web page. An administration environment has been implemented that
allows editing of members and membership benefits, reports aggregate list, registered
e-mail addresses for e-notifications and registered mobile phone numbers for receiving
text messages. The goal of this thesis is the implementation of a web interface that
facilitates the student club work regarding enrollment and benefits management.
VI
VSEBINA
1 UVOD ...................................................................................................................... 1
1.1 PREDSTAVITEV ŠTUDENTSKEGA KLUBA MLADIH ŠENTJUR ................................ 2
1.2 VČLANJEVANJE V ŠTUDENTSKI KLUB MLADIH ŠENTJUR .................................... 3
2 TEHNOLOGIJE IN ORODJA ............................................................................. 5
2.1 JEZIK HTML ..................................................................................................... 5
2.2 PREDLOGE CSS ................................................................................................. 7
2.3 APACHE .......................................................................................................... 9
2.4 JEZIK PHP ....................................................................................................... 11
2.4.1 Dinamično pisanje skripta PHP ................................................................. 14
2.4.2 Standardni podatkovni tipi, globalne in superglobalne spremenljivke ...... 15
2.4.3 Operatorji ................................................................................................... 19
2.4.4 Funkcije ...................................................................................................... 20
2.4.5 Osnovne stavčne strukture .......................................................................... 21
2.5 MYSQL ........................................................................................................... 21
2.5.1 Osnovna pravila SQL ................................................................................. 22
2.5.2 Značilnosti MySQL ..................................................................................... 23
2.6 PHPMYADMIN ................................................................................................. 24
2.7 POVEZAVA PHP-JA IN MYSQL-A .................................................................... 25
3 PRIPRAVA IN NAMESTITEV .......................................................................... 29
3.1 APACHE ........................................................................................................ 29
3.2 PHP ................................................................................................................. 31
3.3 MYSQL ........................................................................................................... 34
3.4 PHPMYADMIN ................................................................................................. 39
3.4.1 Primer uporabe phpMyAdmina .................................................................. 40
3.5 XAMPP .......................................................................................................... 42
4 IMPLEMENTACIJA SPLETNE APLIKACIJE .............................................. 43
4.1 IMPLEMENTACIJA PODATKOVNE BAZE ............................................................. 46
4.2 SPLETNA PRISTOPNA IZJAVA ............................................................................ 48
4.3 ADMINISTRATORSKO OKOLJE .......................................................................... 53
VII
4.4 UVOZ AGREGIRANEGA SEZNAMA ..................................................................... 59
4.5 POŠILJANJE OBVESTIL ...................................................................................... 61
5 IMPLEMENTACIJA MOBILNE SPLETNE STRANI ................................... 64
6 MOŽNOSTI NADALJNEGA RAZVOJA ......................................................... 67
7 SKLEP ................................................................................................................... 68
8 VIRI, LITERATURA ........................................................................................... 69
9 PRILOGE .............................................................................................................. 70
9.1 SEZNAM SLIK ................................................................................................... 70
9.2 SEZNAM TABEL ................................................................................................ 71
9.3 SEZNAM IZVORNIH KOD ................................................................................... 72
9.4 NASLOV ŠTUDENTA ......................................................................................... 72
9.5 KRATEK ŽIVLJENJEPIS...................................................................................... 73
IZJAVA O AVTORSTVU ………………………………………………............74
IZJAVA O USTREZNOSTI DIPLOMSKEGA DELA ….……………………........... 75
IZJAVA O ISTOVETNOSTI TISKANE IN ELEKTRONSKE VERZIJE DIPLOMSKEGA
DELA IN OBJAVI OSEBNIH PODATKOV DIPLOMANTOV …………………........... 76
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 1
1 UVOD
Študentski klub mladih Šentjur je skozi leta razvil kompleksen sistem članstva in članskih
ugodnosti, ki potrebuje natančno vodenje. Seznam vseh preteklih in obstoječih članov, ki
ga na klubu imenujemo agregiran seznam, vsebuje več kot tisoč enot in se še nadgrajuje.
Do sedaj je bil seznam voden v Microsoft Excelovi tabeli, ki pa ne ponuja natančnega
vodenja, saj je vse spremembe potrebno storiti ročno, kar zahteva svoj čas, pogosteje pa
prihaja tudi do napak. Potreba po spremembi sistema včlanjevanja se je pojavila zaradi vse
večje ponudbe subvencij in posledično tudi vse večjega koriščenja le-teh. Prav tako ima
študentski klub iz leta v leto več članov, zaradi česar mora biti dostop do njihovih
podatkov hitrejši in enostavnejši, saj to omogoča učinkovito obveščanje o dogajanju in
delovanju kluba. Nova aplikacija nam bo ponujala hitro in učinkovito vodenje članstva in
pregled nad koriščenjem članskih ugodnosti. Hkrati bo aktivistom kluba s svojimi
funkcionalnostmi omogočila prihranek na času na področju včlanjevanja in evidentiranja
izdaj članskih ugodnosti.
V uvodnem poglavju smo na kratko predstavili Študentski klub mladih Šentjur in pogoje,
ki so pomembni na področju včlanjevanja in nudenja članskih ugodnosti, saj je namen
spletnega vmesnika izboljšava delovanja na omenjenih področjih dela. V drugem poglavju
smo predstavili tehnologije in orodja, ki smo jih uporabili za razvoj aplikacije, v tretjem pa
dva načina namestitve lokalnega strežnika, ki smo ga potrebovali za testiranje aplikacije.
Četrto in peto poglavje sta namenjeni predstavitvi spletnega vmesnika in njegovih
funkcionalnosti ter predstavitvi mobilne spletne strani. V šestem poglavju smo opisali
nekaj možnosti nadaljnjega razvoja vmesnika, medtem ko v sedmem podamo sklep. Viri in
literatura ter priloge se nahajajo v zadnjih dveh poglavjih diplomskega dela.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 2
1.1 Predstavitev Študentskega kluba mladih Šentjur
Študentski klub mladih Šentjur (ŠKMŠ) je organizacija, ki združuje študente, dijake in
ostale zainteresirane. V skladu s svojim programom in smernicami skrbi za obštudijske in
druge aktivnosti mladih na območju Upravne enote Šentjur. Zadovoljujemo številne
interese mladih, zato nudimo vrsto aktivnosti in dejavnosti. Preko stalnih prireditev
združujemo in povezujemo člane ter tako skrbimo za lokalno povezanost mladih.
Sodelujemo tudi s partnerji izven Šentjurja. Nuditi želimo čim več članskih ugodnosti, ki
se kažejo v raznih načinih subvencioniranja (trenutno: kino kupončki, vezava diplomske
naloge, članarina v knjižnici, vstopnice na bazen itd.) in omogočanja popustov.
Slika 1.1: Logotip ŠKMŠ [1].
Vso dogajanje v zvezi z delovanjem kluba od leta 1997 dokumentiramo na lastni spletni
strani, ki domuje na domeni http://www.skms.net/. Njena prednost je obsežen slikovni in
tekstovni material. Zveza študentskih klubov Slovenije (Zveza ŠKIS) nam je leta 2003
podelila nagrado za 2. najboljše spletno mesto med študentskimi klubi. Spletni vmesnik,
namenjen včlanjevanju in urejanju ugodnosti, želimo vključiti v sklop spletišča skms.net.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 3
Slika 1.2: Spletna stran ŠKMŠ [1].
1.2 Včlanjevanje v Študentski klub mladih Šentjur
Predstavili bomo pogoje članstva v klubu, ki so pomembni za implementacijo spletnega
vmesnika. Pogoje članstva v klubu opredeljuje statut. Redni člani društva so redno ali
izredno vpisani študenti kateregakoli javno priznanega visokošolskega programa s stalnim
prebivališčem na območju Upravne enote Šentjur, ki po predpisanem postopku izpolnijo in
podpišejo pristopno izjavo ter ji priložijo originalno potrdilo o vpisu za tekoče študijsko
leto.
ŠKMŠ sodi med študentske klube, ki imajo status študentske organizacije lokalne
skupnosti (status ŠOLS). Eden izmed pogojev ohranitve statusa ŠOLS je, da mora klub
združevati najmanj 15 odstotkov študentov v svoji upravni enoti. Vsako leto se mora do
določenega roka v klub včlaniti vsaj 15-odstotni delež vseh študentov v naši upravni enoti,
kar predstavlja relativno veliko število. Zbiranje članov predstavlja težavo, ki jo želimo
zmanjšati.
Težavo bomo delno rešili s spletnim vmesnikom. Delno zato, ker član postane redni, ko na
klub dostavi originalno potrdilo o šolanju za tekoče šolsko leto. Tega spletni vmesnik
seveda ne more omogočati. Z uporabniškim vmesnikom bomo lažje prišli do podatkov o
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 4
študentih v naši upravni enoti. Z njim bomo študentu povečali dostopnost do prijave s
pristopno izjavo v elektronski obliki, ki je pred tem bila na voljo le na papirju. Tako bomo
učinkoviteje prišli do kontaktov, ki jih bomo lahko uporabili za pridobivanje članov.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 5
2 TEHNOLOGIJE IN ORODJA
V tem poglavju bomo predstavili tehnologije in orodja, ki smo jih uporabili za razvoj
spletnega vmesnika. V naslednjih podpoglavjih se bomo posvetili spletnima programskima
jezikoma HTML in PHP, stilnim predlogam CSS, strežniku Apache, podatkovnemu
strežniku MySQL, poizvedovalnemu jeziku SQL in grafičnemu vmesniku phpMyAdmin.
Naštete tehnologije in orodja bomo opisali, izpostavili nekatere značilnosti in prikazali
primere uporabe. Za uporabo teh tehnologij smo se odločili zato, ker sodijo med
najpogosteje uporabljene za načrtovanje in razvoj dinamičnih spletnih strani in spletnih
aplikacij. Posledično je na medmrežju na voljo največ uporabnega gradiva.
Spletni programski jeziki so po skladnji podobni višjim programskim jezikom, le da ne
potrebujejo prevajalnika. Razdelimo jih lahko na tiste, ki se izvedejo v brskalniku – to so
HTML, javascript, ipd., ter na tiste, ki se izvedejo v strežniškem programu in se kot
dinamična spletna stran pojavijo v brskalniku v obliki običajne kode HTML – to so PHP,
ASP, perl, JSP. Brskalniki so programi za prikaz spletnih strani [2].
2.1 Jezik HTML
HTML (ang. HyperText Markup Language) je označevalni spletni programski jezik za
izdelavo statičnih spletnih strani in velja za osnovo izdelave dinamičnih. Za potrebe
spletnega vmesnika smo ga uporabili za pisanje besedila, ustvarjanje povezav, nalaganje
večpredstavnostnih datotek, izdelovanje vnosnih form in podobno. Pomanjkljivost HTML
je, da ne omogoča interakcije z obiskovalci spletne strani. Statične spletne strani lahko
spreminjamo samo tako, da spremenimo HTML datoteko. Za prevajanje ne potrebujemo
strežnika. V berljive spletne strani kodo pretvorijo brskalniki. Koda nam je na že izdelanih
spletnih straneh vidna, če jo odpremo z urejevalnikom besedil ali pa z ukazom v brskalniku
[10].
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 6
HTML velja za nekakšen temelj spleta in je dolgoleten standard na področju izdelovanja
spletnih strani. Ob pisanju tega diplomskega dela je najnovejša različica nosila številko
HTML 5. Za razvoj in določanje pravil glede pisanja kode skrbi konzorcij W3C, ki
pripravlja preskok na XTML (ang. Extended HyperText Markup Language), razširjeno
različico standarda HTML, ki povzema veliko rešitev iz označevalnega jezika XML (ang.
Extensible Markup Language) [2].
Kodo lahko pišemo v preprostem urejevalniku besedil ali v preglednejših naprednih
urejevalnikih. Pri pisanju se moramo držati standarda ASCII. Datoteke shranjujemo kot
navadno besedilo s končnico .htm (.html). V našem primeru bomo uporabili urejevalnik
EmEditor, saj smo z njim najlažje rešili težavo formatov kodiranja in s tem povezane
težave prevajanja šumnikov.
Primer HTML Zdravo HTML
Izvorna koda 2.1: Program za izpis besedila (index.htm).
Spletni strežniki prepoznajo privzeto stran poljubnega spletnega mesta v datoteki
index.htm, iz katere obiskovalce usmerjamo z nadpovezavami na preostale strani v
spletnem mestu. Ukazi oziroma gradniki, oznake ali značke so vedno med lomljenima
oklepajema (< in >). Vse ostalo, kar ni med tema znakoma, je izključno besedilo.
Protiukazi se izvajajo med lomljenima oklepajema s poševnico () in v obeh primerih
brez presledkov. Da brskalnik prepozna dokument kot spletno stran, moramo kot prvi ukaz
vedno uporabiti značko in jo seveda zaključiti s protiukazom . V osnovi je
HTML dokument, sestavljen iz glave (ukaz head) in telesa (ukaz body). Z ukazom head
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 7
določimo nevidne atribute, ki jih potrebujejo strežniški programi, medtem ko je telo
dokumenta tisto, kar je uporabniku vidno [2].
Slika 2.1: Izpis preprostega HTML dokumenta v brskalniku.
2.2 Predloge CSS
Grafično podobo spletnega vmesnika smo oblikovali s kaskadno slogovno predlogo CSS
(ang. Cascading Style Sheets), ki brskalniku sporoči, kako naj prikaže HTML dokument.
Obstaja več načinov vključevanja slogovnih predlog. Lahko jih vključimo v kodo HTML z
ukazom ali pa jih postavimo znotraj HTML ukaza . Najbolj razširjen način
je ustvariti samostojno tekstovno datoteko, s katero ločimo CSS in HTML dokument.
Shranjujemo jih v datotekah s končnico .css. Ta način je priporočljiv, saj jo lahko
uporabimo ponovno v drugih dokumentih in tako prihranimo čas, ki ga terja urejanje
posameznih elementov HTML. Vsak CSS ukaz je sestavljen iz selektorja in pripisane
oblike. Selektor je lahko ukaz HTML ali pa naše ime za določen stil. Elementom lahko
pripisujemo različne parametre, parametrom pa svoje lastne vrednosti [3].
Načini vstavljanja slogov v dokument:
vstavljanje slogov znotraj značke HTML,
definiranje slogov v glavi dokumenta,
vstavljanje slogov z uvozom iz zunanje datoteke.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 8
Primer CSS /*ukaz za vključevanje slogovne predloge*/ body { background-color:#eeeeee; }/*barva ozadja določena z besedo*/ h1 { /*značka za naslov na prvem nivoju*/ color:blue; /*barva naslova določena z besedo*/ font-weight:bold; /*oblikapisave*/ font:Verdana; /*vrsta pisave*/ } p { /*značka za odstavek*/ color:#000000; /*barva besedila določena s šifro*/ font-weight:italic; /*oblika pisave*/ } Zdravo CSS
Zdravo HTML
Izvorna koda 2.2: Uporaba CSS predlog.
Slika 2.2: Izpis HTML dokumenta z vključenimi CSS predlogami v brskalniku.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 9
2.3 APACHE
Za prevajanje skript PHP in povpraševanje po MySQL podatkovni bazi smo uporabili
spletni strežnik Apache. Leta 2009 je postal prvi med spletnimi strežniki, na katerega je
bilo naloženih več kot 100 milijonov spletnih strani. Priljubljen je zaradi zanesljivosti in
velike prilagodljivosti. Apache po protokolu HTTP usmerja in interpretira podatke,
pridobljene preko spleta oziroma v kolikor ga uporabljamo kot lokalni strežnik (localhost),
preko PHP ali HTML skript, shranjenih na lokalnem disku. Apache deluje v veliki večini
najbolj razširjenih operacijskih sistemov. Strežnik so v praksi program, moduli in nadzorne
datoteke, ki jih spreminjamo in v katere pišemo ter ga tako nastavljamo. S posameznimi
zahtevki za ogled določene spletne strani poskrbi, da so izpolnjeni, nato pa uporabniku
posreduje želeno spletno stran. Če zahtevka ne more izpolniti, javi napako. Verjetno je
vsem uporabnikom interneta najbolj znana napaka številka 404, ko brskalnik iskane spletne
strani ne najde [2] [13].
httpd.conf je navadna besedilna nastavitvena datoteka, ki jo lahko odpremo in spreminjamo
vsebino s skoraj vsakim urejevalnikom besedil. Izključevanje ukazov je preprosto s
komentiranjem vrstic z znakom #. Poleg usmerjanja in podajanja zahtevkov po spletnih
straneh lahko nastavljamo še številne druge pomembne parametre:
nastavitev poti do Apacheja in drugih modulov na disku,
shranjevanje povzetkov delovanja Apacheja,
nastavitev časa za sprejem ali pošiljanje spletnih strani,
nastavitev števila zahtevkov pred javljanjem napake,
nastavitev IP-številke in domenskega imena,
nastavitev podpore za različne module,
nastavitev pravic za uporabnike,
nastavitve glede javljanja različnih napak,
določanje prioritete spletnim stranem,
preusmeritev spletnih strani na želene naslove,
nastavitev jezika za spletno stran,
nastavitve za prikaz v različnih brskalnikih,
varnostne nastavitve [2].
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 10
Slika 2.3: Datoteka httpd.conf.
Strežniki z največjim deležem po uporabi na svetu:
1. Apache
2. Microsoft
3. nginx
4. Google [14]
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 11
2.4 Jezik PHP
PHP (ang. Hypertext Preprocessor ali ang. Personal Home Page) je spletni programski
jezik, ki v povezavi s spletnim strežnikom omogoča dinamično generiranje HTML spletnih
strani. Za spletno stran lahko rečemo, da je dinamična, ko se spreminja glede na
programsko logiko skripte PHP. Kot smo že omenili, se PHP koda izvede na strežniku.
Brskalnik od strežnika prejme že obdelane podatke v obliki HTML skripte. Brskalnik
praktično nikoli ne vidi kode PHP. O tem se lahko prepričamo tako, da na poljubni spletni
strani uporabimo funkcijo pregleda izvorne kode poljubne spletne strani. Vidna nam bo le
HTML koda [5].
PHP je iz programskega jezika Perl leta 1995 razvil Danec Ramus Lerdorf. Oblika
programske kode je vzeta iz C-ja, Jave in Perla, dodanih pa je tudi nekaj unikatnih funkcij.
Namen razvijalcev PHP-ja je bil, da omogočijo hitro gradnjo dinamičnih spletnih strani. Je
zelo prilagodljiv, preprost v kombinaciji s številnimi jeziki in aplikacijami v različnih
operacijskih sistemih ter zelo učinkovit pri pisanju krajših in srednje dolgih spletnih strani.
Z njim lahko razvijamo aplikacije, grafične vmesnike, igre in druge namenske programe, le
da zaradi same zasnove PHP-ja kot jezika za spletne aplikacije to ni smotrno. PHP je
načrtovan tako, da se zlahka povezuje z zbirkami podatkov [2].
Pišemo ga lahko v kateremkoli urejevalniku besedil, samostojno ali v kombinaciji z
drugimi jeziki. Za razčlenitev kode v strežniškem načinu potrebujemo strežniški program,
strežniški modul za podporo PHP-ja, brskalnik za ogled rezultatov in pravilno nastavljen
razčlenjevalnik kode [2].
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 12
Slika 2.4: Prikaz procesiranja kode [4].
Kodo jezika PHP lahko vstavimo v katerokoli vrstico skript HTML in jo shranimo s
končnico .php. Za pisanje kode se priporočajo napredni urejevalniki besedil, ki zmorejo
prikazati zaporedne številke vrstic, saj PHP javlja napako glede na vrstico. Strežnik
prepozna kodo PHP na več načinov. Med najbolj razširjene in združljive z drugimi
tehnologijami spada pisanje med oznakami . Delujejo tudi , ter in . Posamezne skupke ukazov ločimo s
podpičjem (;), prav tako pa z njim velikokrat končamo posamezne vrstice. Zaporedje
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 13
ukazov, ki se izvajajo skupaj, združimo v blok z zavitimi oklepaji. Koda mora v tem
primeru stati med znakoma { in } [5].
Primer PHP Zdravo HTML
Izvorna koda 2.3: Program za izpis besedila (index.php).
Slika 2.5: Izpisa preprostega PHP dokumenta v brskalniku.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 14
Najbolj uporabljene značilnosti PHP-ja so: seje,
piškotki,
XForm,
uporaba oddaljene datoteke,
upravljanje s povezavami,
varen način,
HTTP avtentikacija s PHP,
uporaba PHP iz ukazne vrstice,
upravljanje z nalaganjem,
vztrajne povezave s podatkovno bazo,
POST metoda za nalaganje,
obrazložitev napak,
skupne pasti,
podprta PUT metoda,
nalaganje več datotek [5].
2.4.1 Dinamično pisanje skripta PHP
PHP omogoča operiranje s spremenljivkami v spletni aplikaciji, ki jih prepoznamo po
znaku $. Začnejo se lahko s črko ali s podčrtajem, torej številke in drugi znaki ne smejo
biti na začetku niza, lahko pa sledijo v neomejenem številu. V zgoraj navedenih primerih
izpisa besedila smo uporabili statičen izpis. V nasprotju z ostalimi jeziki nam v PHP-ju ni
treba določiti oblike spremenljivk (int, float, bool, itd.), saj to glede na vsebino naredi PHP
sam [5].
Izvorna koda 2.4: Dinamična skripta.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 15
Slika 2.6: Primer izpisa dinamičnega skripta v brskalniku.
2.4.2 Standardni podatkovni tipi, globalne in superglobalne spremenljivke
Tabela 2.1: Standardni podatkovni tipi.
Vrsta Primer Opis
Celo število 7 celo število
Število s plavajočo vejico 3,235 število s plavajočo vejico
Niz »Nasvidenje« zbirka znakov
Logična spremenljivka false ena od posebnih vrednosti true ali false, ki sodijo med konstante
Predmet spremenljivka s funkcijo new
Polje vpis istega ali drugačnega tipa spremenljivk v polje
Celo število Razpon celega števila je od sistema do sistema različen, običajno pa lahko vzamemo
vrednost 4.294.967.296 (232) in jo razdelimo na dva dela. Dobimo najmanjšo vrednost -
2.147.483.648 in največjo vrednost 2.147.483.648 [2].
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 16
Niz V nize lahko vpisujemo vrednosti niza znakov. Lahko jih združujemo s piko. Pri
spremenljivkah tipa niz lahko uporabimo indekse za dostop do posameznih znakov v nizu,
pri čemer upoštevamo, da ima prvi znak indeks 0 [2].
$readUser = mysql_query("SELECT * FROM clan_student WHERE ime LIKE '$post_user[0]%' AND priimek LIKE '$post_user[1]%' AND cifra='$post_cifra'");
Izvorna koda 2.5: Primer uporabe indeksa za dostop do znaka v nizu.
Izvorna koda 2.5 je primer dostopa do posameznega znaka v nizu, ki smo jo uporabili pri
mobilni verziji spletnega vmesnika. Uporabili smo jo kot varnostni ukrep za prepoznavanje
uporabnika, ki mora za dostop do podatkov vnesti začetnici imena in priimka. Znak v nizu,
ki ga uporabimo za primerjavo z znakom v podatkovni bazi je zapisan s številko v oglatem
oklepaju. Znak % pomeni, da je lahko od želenega znaka v nizu naprej katerikoli poljuben
znak, ki nas v našem primeru ne zanima. Več o mobilni aplikaciji je napisano v petem
poglavju.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 17
Polje V polja vpisujemo spremenljivke v obliki tabel istega ali drugačnega tipa. PHP podpira več
vrst polj, in sicer navadna indeksirana, asociativna in večrazsežna polja [2].
// indeksirano polje $a[0] = "ena"; $a[1] = "dva"; $a[2] = "tri"; // asociativno polje $b["nek kljuc"] = "poljubna vrednost"; $b["drug kljuc"] = "3103"; // več; razsežno polje // lahko si ga predstavljamo kot tabelo podatkov - matriko $c[1]["a"] = "a1"; $c[1]["a"] = "b1"; $c[2]["b"] = "a2"; $c[2]["b"] = "b2";
Izvorna koda 2.6: Polja.
Predmet Spremenljivki določimo predmet s funkcijo new, nato pa z uporabo znaka -> kličemo
funkcije in spremenljivke iz predmeta.
$predmet= new ime_predmeta; echo $predmet->ime_spremenljivke; echo $predmet->ime_funkcije();
Izvorna koda 2.7: Predmet.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 18
Globalne spremenljivke Globalne spremenljivke so dosegljive kjerkoli v programu. Če želimo spremenljivko v
funkciji definirati kot globalno, jo moramo eksplicitno deklarirati z rezervirano besedo
GLOBAL [5].
function clanForm($page) { global $printClan; global $posteArray; global $obcineArray; global $letnikiArray; global $clanstvoDatumArray; global $mesciArray;
Izvorna koda 2.7: Globalne spremenljivke.
V našem primeru smo za potrebe funkcije clanForm, ki jo uporabljamo za izpis vnosne
forme pristopne izjave, ustvarili več globalnih spremenljivk. Spremenljivke smo definirali
zunaj funkcije, a ker jih znotraj le-te potrebujemo, smo jih v funkciji za dostop do njih
definirali kot globalne.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 19
Superglobalne spremenljivke PHP ponuja množico vnaprej definiranih spremenljivk, ki vsebujejo podatke o okolju, kjer
se PHP skripta izvaja. Superglobalne spremenljivke so dosegljive kjerkoli v skripti.
Nekateri primeri superglobalnih spremenljivk:
$GLOBALS – Referenca na vsako spremenljivko, ki je na voljo v globalnem
delu kode. Imena spremenljivk so ključi tega polja.
$_SERVER – S tem pridobimo informacije o spletnem strežniku in odjemalcu.
$_GET – Asociativno polje spremenljivk posredovano trenutni kodi uporabnika
preko parametrov URL.
$_POST – Asociativno polje spremenljivk posredovano trenutni kodi
uporabnika preko metode HTTP POST.
$_COOKIE – Piškotki omogočajo, da podatke, vnesene med obiskom strani,
uporabimo na več straneh.
$_SESSION – Vse spremenljivke, ki so bile povezane s sejo, postanejo na voljo
kodi uporabnika [5] [9].
2.4.3 Operatorji
Operator je simbol, ki določa vrsto operacije v izrazu. Za razliko od klasičnih programskih
jezikov, PHP avtomatsko izvede pretvorbo med podatkovnimi tipi, glede na operand, med
dvema operandoma. PHP pozna aritmetične, operatorje prirejanja, operatorje primerjanja,
logične, operatorje nad nizi, inkremente, dekremente in bitne operatorje. Pri operatorjih
moramo biti pozorni na asociativnost in prioriteto. Asociativnost pove iz katere smeri se
ovrednoti rezultat operatorja v izrazu, prioriteta pa določa vrstni red ovrednotenja
operatorjev v izrazu [5].
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 20
Tabela 2.2: Operatorji.
Operator Opis
( ) združevanje dela izraza
[ ] element polja
! ~ ++ -- logični NE, bitni NE, inkrement, dekrement
/ * % deljenje, množenje, deljenje po modulu
+ - . seštevanje, odštevanje, konkatenacija nizov
> pomik bitov levo in desno
< >= primerjanje
== != === !== primerjanje na enakost, identičnost tipov
& ^ | bitni IN, XOR, ALI
&& IN
|| ALI
? : ternary (uporaba namesto if then else)
= += -= *= /= prirejanje
AND XOR OR logični IN, XOR, ALI
2.4.4 Funkcije
Funkcije veljajo za osrednji del dobro organiziranih skript. Omogočajo lažje branje kode in
ponovno uporabo. Brez njih je težko izpeljati večje projekte.
Izvorna koda 2.8: Uporaba funkcije.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 21
2.4.5 Osnovne stavčne strukture
Osnovne stavčne strukture omogočajo, da se skripte prilagajajo okoliščinam. Skripte
vrednotijo pogoje in v skladu s tem spreminjajo svoje vedenje. Zaradi zmožnosti, da
odloča, so strani PHP dinamične, zmožne spreminjanja rezultatov glede na okoliščine. Na
spodnji sliki si lahko ogledamo osnovne stavčne strukture najpogosteje uporabljenih
stavkov: stavek if, stavek for in stavek while [5].
Slika 2.7: Primeri zapisa osnovnih stavčnih struktur.
2.5 MySQL
Pri dinamičnih spletnih straneh se vsebina shranjuje v zbirke podatkov. Podatkovna baza
MySQL je sistem za hrambo podatkov, ki jih v našem primeru zajemamo preko vnosnih
form spletnega vmesnika. S podatkovnimi bazami upravlja podatkovni strežnik MySQL.
Podatkovni strežnik ponavadi deluje na istem računalniku kot spletni strežnik. Strežnika
delujeta skupaj pri branju in pisanju podatkov ter gradnji spletnih strani kot celote. Za
komunikacijo s podatkovnim strežnikom uporabljamo poizvedovalni jezik SQL (ang.
Structured Query Language). Z njim poizvedujemo in operiramo s podatki v bazi.
Podatkovna baza MySQL je sestavljena iz tabel, kamor se podatki shranjujejo v vrstice in
na njih navezujoče se stolpce. Večina spletnih aplikacij uporablja eno ali več tabel znotraj
ene podatkovne baze [10].
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 22
2.5.1 Osnovna pravila SQL
Ukaze SQL lahko razvrstimo v tri osnovne skupine:
skupina ukazov DDL (Data Definition Language) za opredelitev strukture
podatkovne baze (prim.: CREATE, ALTER, DROP),
skupina ukazov DML (Data Manipulation Language) za poizvedovanje in
ažuriranje v podatkovni bazi (prim.: SELECT, UPDATE, INSERT),
skupina ukazov DCL (Data Control Language) za nadzor nad delovanjem
podatkovne baze (prim.: GRANT, REVOKE, COMMIT).
Najosnovnejši ukazi v jeziku SQL za izdelavo in uporabo podatkovnih baz so:
CREATE – izdelaj,
SELECT – izberi,
INSERT – vnesi,
DELETE – izbriši,
UPDATE – posodobi.
Priporočena je uporaba velikih črk za ukaze, spremenljivke in vsebino pa pišemo po želji
oziroma čim bolj pregledno. Med posamezne ukaze oziroma dele ukazov moramo vstaviti
vsaj en presledek. Nizi oziroma vrednosti morajo biti v narekovajih, ukaze končujemo s
podpičjem (;), z zvezdico (*) zaobjamemo celoten vnaprej določen razdelek (npr. vse
stolpce) [2].
Z naslednjo SQL sintakso iz podatkovne baze izberemo vse študente iz Občine Dobje.
mysql> SELECT * FROM `clan_student` WHERE obcina LIKE 'Dobje' ;
Izvorna koda 2.9: Primer uporabe ukaza SELECT.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 23
Z naslednjo SQL sintakso iz podatkovne baze izbrišemo študenta s člansko številko 501.
mysql> DELETE FROM `clan_student` WHERE id_clan_student = '501' ;
Izvorna koda 2.10: Primer uporabe ukaza DELETE.
Z naslednjo SQL sintakso v podatkovno bazo vstavimo podatke študenta v tabelo
clan_student.
mysql> INSERT INTO `clan_student` VALUES ('515' , 'Marija' , 'Toplak') ;
Izvorna koda 2.11: Primer uporabe ukaza INSERT.
Z naslednjo SQL sintakso v podatkovni bazi posodobimo podatke študenta s člansko
številko 515.
mysql> UPDATE `clan_student` SET e_posta ='[email protected]' WHERE id_clan_student = '515' ;
Izvorna koda 2.12: Primer uporabe ukaza UPDATE.
2.5.2 Značilnosti MySQL
Tabela 2.3: Najpogosteje uporabljene lastnosti polj v MySQL.
Vrsta Opis
PRIMARY_KEY Primarni ključ tabele.
AUTO_INCREMENT Celo število, ki se ob vsakem novem vnosu v kombinaciji s PRIMARY_KEY poveča za ena.
DEFAULT Določimo privzeto vrednost polja.
NULL Vrednost stolpca je lahko prazna.
NOT_NULL Vrednost stolpca ne sme biti prazna.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 24
Primarni ključ enolično identificira vsak zapis v tabeli. Vsebovati mora enolične vrednosti
in ne vrednosti NULL. Vsaka tabela mora vsebovati edinstven primarni ključ, ki je
pomembna informacija za vzpostavljanje entitet med zbirkami podatkov.
Nekaj glavnih značilnosti zbirke podatkov MySQL:
Deluje na različnih operacijskih sistemih.
Podpira različne programske vmesnike: C, C++, Ruby, java, perl, PHP …
Podpira večprocesorski način delovanja.
Podpira več različnih in daljših nizov v stolpcih.
Hitro združevanje podatkov.
Popolna podpora ukazov select in where.
Podpora funkcijam SQL z lastno optimizirano knjižnico.
Optimalen izkoristek pomnilnika.
Mešanje tabel iz različnih zbirk pri povpraševanju za podatki.
Šifrirana gesla omogočajo varno upravljanje na daljavo.
32 indeksiranih vnosov po 500 zlogov na tabelo.
Fiksna in prilagodljiva dolžina vpisov.
Začasne tabele v pomnilniku.
Podpira različne pisave in nabore znakov.
Velikost zbirke je dejansko omejena samo z zmogljivostjo računalnika.
Zelo dobro podprta pomoč na medmrežju.
Strežnik je na voljo kot ločen program v omrežnem okolju strežnik – odjemalec.
Javna licenca GNU [2].
2.6 phpMyAdmin
phpMyAdmin je spletni grafični vmesnik, ki smo ga uporabili za kreiranje podatkovne
baze in tabel spletnega vmesnika. Delo si z njim poenostavimo, saj obstaja bolj zapleten
način z uporabo ukazne vrstice. Namesto pisanja sintakse SQL lahko z nekaj kliki
opravimo isto delo. phpMyAdmin je skupek skript PHP, ki nam omogoča dostop do
strežnika MySQL preko internetne povezave. Velja za eno izmed alternativ, ki nam
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 25
poenostavijo delo s podatkovnimi zbirkami. Preveden je v več jezikov, med drugim tudi v
slovenščino. S praktično uporabo se bomo seznanili v naslednjem poglavju.
2.7 Povezava PHP-ja in MySQL-a
Povezava PHP-ja in MySQL-a prinaša močno kombinacijo za izgradnjo spletnih aplikacij.
PHP omogoča vzpostavitev povezave do podatkov na strežniku MySQL-ovem, ki tako
postanejo dostopni na spletni strani. Kot smo že omenili, je PHP načrtovan tako, da se
zlahka poveže s podatkovno bazo. Tako dosežemo, da spletna stran za obiskovalca postane
interaktivna. V spodnjem primeru bomo prikazali primer registracijskega postopka, kjer je
potrebna primerjava vnesenih podatkov s podatki v tabeli neke podatkovne baze.
Za delovanje aplikacije moramo najprej vzpostaviti povezavo s podatkovno bazo. To
storimo s spodaj navedeno sintakso. Potrebujemo podatke o imenu gostitelja, uporabniško
ime in geslo, ki pa za dostop ni vedno potrebno. Če podatki niso pravilni ali če strežnik ne
deluje, se povezava ne vzpostavi. Prikaže se obvestilo, da povezave ni možno vzpostaviti.
Če je povezava uspešna, s funkcijo mysql_select_db izberemo želeno podatkovno bazo.
Izvorna koda 2.13: Povezava s podatkovno bazo.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 26
Podatke zajemamo s pomočjo vnosnih form, ki jih ustvarimo v HTML-ju in jih nato v
povezavi s PHP-jem vnesemo v želeno MySQL tabelo. Predpostavljamo, da smo s
pomočjo programa phpMyAdmin ustvarili zbirko login, v kateri imamo tabelo admin s
stolpci id_admin, username in password. V tej tabeli imamo shranjena poljubna
uporabniška imena in gesla. Podatke iz vnosnega polja bomo primerjali s podatki v tabeli.
V primeru ujemanja bomo dovolili vstop na naslednjo stran. Stolpec id_admin je
nastavljen na AUTO_INCREMENT. Prilagaja se številu uporabnikov z veljavnimi gesli, saj
se avtomatsko povečuje ob novih vnosih v tabelo. Z zapisom action=login.php v oznaki
smo določili, da se naj vneseni podatki posredujejo v datoteko login.php z
uporabo metode POST.
Prijava Prijava Up. ime:
Geslo:
Izvorna koda 2.14: Vnosna forma za prijavo.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 27
Za primerjavo vnesenih podatkov torej ustvarimo datoteko login.php. Najprej vzpostavimo
povezavo s strežnikom MySQL, kjer je ime gostitelja localhost, uporabniško ime za dostop
je root, geslo za dostop pa ni potrebno. V kolikor povezave ni mogoče vzpostaviti, se v
brskalniku pojavi sporočilo, ki smo ga zapisali pod funkcijo die. Ta funkcija prekine vse
sledeče procese v kodi in javi napako, ki se je zgodila pred tem. Nato izberemo zbirko
podatkov, s katero želimo operirati (login). Vnesene podatke shranimo pod želeno
spremenljivko in nato s pomočjo funkcij mysql_query in mysql_num_rows izvedemo
povpraševanje v zbirki in primerjavo podatkov. V kolikor se podatki ujemajo, izvedemo
sejo ($_SESSION) in preusmerimo uporabnika na naslednjo stran. Funkcija seje priskrbi
uporabniku edinstven indikator, ki ga je nato mogoče uporabiti na podstraneh spletišča.
Slika 2.8: Izpis vnosne forme za prijavo v brskalniku.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 28
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 29
3 PRIPRAVA IN NAMESTITEV
V tem poglavju bomo predstavili pripravo in namestitev tehnologij in orodij, ki smo jih
uporabili za pripravo testnega okolja na lokalnem strežniku. Skripte PHP morajo biti
naložene na strežniku oziroma potrebujejo okolje, v katerem se lahko izvajajo. Ker v
našem primeru ne uporabljamo pravega spletnega strežnika, bomo prikazali dva načina
priprave testnega. Prvi, bolj klasičen način, je ločena namestitev posameznih strežnikov.
Velja za bolj zahtevnega, saj so potrebne mnoge in pravilne nastavitve, da okolje sploh
deluje. Naleteli smo na nekaj težav, ki smo jih nato rešili z brskanjem po medmrežju.
Težave so nastale predvsem zaradi tega, ker je namestitev precej odvisna od vrste in
nastavitev operacijskega sistema. Drugi, precej enostavnejši način, je namestitev testnega
okolja s tako imenovanim trojčkom XAMPP, ki smo ga za potrebe testiranja spletnega
vmesnika tudi uporabili.
3.1 APACHE
S spletne strani http://httpd.apache.org/download.cgi prenesemo zadnjo verzijo strežnika
za operacijski sistem Windows – datoteka s končnico .msi. Inštalacijsko datoteko shranimo
na poljubno mesto in z dvojnim klikom zaženemo čarovnika za namestitev strežnika
Apache. Po sprejetju splošnih pogojev za uporabo v okno Server Information vpišemo
želeno omrežno domeno, ime strežnika in administratorjev elektronski naslov. V našem
primeru za omrežno domeno in ime strežnika določimo localhost. V okno za elektronski
naslov administratorja vpišemo admin@localhost. Vrednosti, ki smo jih vnesli, veljajo za
bolj ali manj privzete. Izberemo možnost, da bomo Apache zaganjali ročno in da naj
strežnik posluša na vratih 8080.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 30
Slika 3.1: Informacije o strežniku.
Ko zaključimo namestitev, odpremo ukazno vrstico v mapi, kamor smo shranili strežnik in
uporabimo ukaz httpd –k install –n »Apache service«. Tako bomo strežnik Apache zagnali
kot eno izmed storitev operacijskega sistema Windows, ki nam bo vedno na voljo.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 31
Slika 3.2: Apache Service Monitor.
Apache Service Monitor je izvršljiva datoteka v mapi Bin, ki omogoča zaustavitev in
ponovni zagon strežnika Apache. Ikono za hiter dostop lahko najdemo poleg ure v
spodnjem desnem kotu ekrana. V kolikor želimo spremeniti privzeto pot do mape z našimi
PHP in HTML datotekami, to storimo v podmapi Conf. Z urejevalnikom besedil odpremo
datoteko httpd.conf in v njej poiščemo vrstico začenši z besedo DocumentRoot ter
popravimo pot do izbrane mape. Po koncu inštalacije se o delovanju strežnika prepričamo
tako, da v naslovno vrstico brskalnika vpišemo http://localhost:8080/ ali
http://127.0.0.1:8080/. Če se pod tem naslovom na ekranu izpiše »It works!«, je to
potrditev, da smo strežnik uspešno namestili [6].
3.2 PHP
Za operacijski sistem Windows na spletni strani http://windows.php.net/download/
najdemo stisnjeno datoteko s končnico .zip, v kateri se nahaja razčlenjevalnik kode PHP.
Ko je datoteka prenesena, jo shranimo v poljubno mapo. Izbiramo lahko med Thread Safe
in Non Thread Safe razširitveno datoteko. Thread Safe zagotavlja, da lahko PHP pravilno
obdeluje več zahtev hkrati, medtem ko Non Thread Safe ne zagotavlja pravilnosti
delovanja. Naredimo mapo PHP in vanjo razširimo vsebino PHP, ki smo jo prenesli.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 32
Poiščemo datoteko php.ini-dist in jo odpremo z urejevalnikom besedil. V vrstici, ki se
začne z extension_dir= ./, navedemo pot do mape PHP. Datoteko nato shranimo v mapo
C:\WINDOWS pod novim imenom php.ini. Datoteka php.ini vsebuje tovarniške nastavitve.
Če želimo spremeniti vedenje razčlenjevalnika, to storimo v php.ini. Poiščemo tudi
datoteko php5ts.dll in jo prekopiramo v sistemsko datoteko C:\WINDOWS\System32. Prav
tako je priporočljivo prenesti vse gonilnike (datoteke s končnico .dll) v omenjeno
sistemsko mapo. V datoteko httpd.conf, ki se nahaja v podmapi CONF strežnika Apache,
moramo dodati naslednje vrstice.
LoadModule php5_module C:…/PHP/php5apache2.dll
AddType application/x-httpd-php .php
PHPIniDir C:…/PHP
Z ukazom LoadModule nakažemo pot do gonilnika, ki poskrbi za pravilno komunikacijo
med razčlenjevalnikom in strežnikom. AddType zagotovi, da bo pogon PHP razčlenjeval
datoteke s pripono .php. V primeru, da na koncu te vrstice namesto pripone .php navedemo
pripono .html, so datoteke HTML obravnavane kot datoteke PHP. Z ukazom PHPIniDir
nakažemo pot do datoteke php.ini. Če smo PHP uspešno namestili, lahko preverimo s
poljubno kodo. V kolikor je bila namestitev uspešna, bo strežnik prevedel kodni zapis, tako
da se bo na ekranu izpisala stran in ne kodni zapis sam. V našem primeru bomo za
testiranje uporabili funkcijo phpinfo();, ki izpiše vse informacije in nastavitve trenutno
delujočega pogona PHP.
Izvorna koda 3.1: Funkcija phpinfo().
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 33
Slika 3.3: Izpis funkcije phpinfo() v brskalniku.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 34
3.3 MySQL
S spletne strani http://dev.mysql.com/downloads prenesemo namestitveno datoteko
strežnika MySQL za operacijski sistem Windows s končnico .msi. Zaženemo inštalacijo, ki
naloži najbolj pogoste dodatke za uporabo in je priporočljiva za večino uporabnikov. Ko se
program naloži, preidemo v čarovnika za nastavitve MySQL strežnika. Izberemo
standardno konfiguracijo in nadaljujemo na naslednjem namestitvenem oknu, kjer
izberemo privzeti konfiguraciji Install As Windows Service in Launch the MySQL Server
automatically. S tem bomo dosegli, da se bo ob vsakem zagonu računalnika avtomatsko
zagnal tudi strežnik MySQL.
Slika 3.4: Konfiguracija strežnika MySQL.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 35
Pri naslednjem namestitvenem oknu poskrbimo za nekatere varnostne ukrepe. Določiti
moramo geslo za delo na strežniku. Ker imamo v našem primeru lokalni strežnik za
potrebe testiranja, določimo privzeto geslo root. V obratni situaciji bi seveda bilo smiselno
določiti močnejše geslo.
Slika 3.5:Varnostne nastavitve strežnika MySQL.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 36
Nazadnje nas čarovnik za namestitev vpraša, če smo prepričani o izbranih nastavitvah in če
želimo, da se nastavitve izvršijo. Izvršitev poteka po korakih, ki so vidni na spodnji sliki.
Slika 3.6: Procesiranje nastavitev strežnika MySQL.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 37
Po končani namestitvi je potrebno uskladiti PHP in MySQL. V nastavitveni datoteki
php.ini poiščemo vrstico s kodo ;extension_dir = ''./ext/'' in odstranimo podpičje. S tem
omogočimo razširitev gonilnikov. Poiščemo tudi vrstico extension_dir = ''./'' in med
narekovaje dodamo ext, ter tako določimo pot do pravilnega modula.
Slika 3.7: Nastavitve v php.ini.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 38
Ko shranimo in zapremo datoteko php.ini, moramo sistemski spremenljivki – Enviroment
Variables v sistemskih lastnostih dodati pot do mape PHP. Spremenljivke okolja v nekem
smislu ustvarijo delovno okolje, v katerem teče proces.
Slika 3.8: Urejanje sistemske spremenljivke.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 39
Potreben je ponovni zagon računalnika in s tem tudi strežnika Apache. V kolikor je bila
namestitev uspešna, nam ponovno klicanje funkcije phpinfo() poda informacije o podpori
MySQL-a.
Slika 3.9: Informacije o podpori MySQL-a.
3.4 phpMyAdmin
S spletne strani http://www.phpmyadmin.net/home_page/downloads.php prenesemo
namestitvene datoteke za inštalacijo phpMyAdmina. Najprej moramo v mapo strežnika
Apache prekopirati prenesene datoteke. V kolikor bi phpMyAdmin uporabljali na spletu, bi
morali v datoteki navesti IP naslov spletnega strežnika. Če phpMyAdmin deluje v testnem
okolju, nastavljanje ni potrebno. Zaženemo ga z dvojnim klikom datoteke index.html, pri
tem pa moramo biti pozorni, da delujeta strežnika Apache in MySQL. Paziti moramo tudi
na to, da se zažene v strežniškem načinu in le znotraj mape [2].
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 40
Slika 3.10: Privzeta stran phpMyAdmina.
3.4.1 Primer uporabe phpMyAdmina
Na prvi prikazani strani lahko izberemo obstoječo zbirko podatkov, jezik uporabniškega
vmesnika ali izdelamo novo zbirko podatkov. Če kliknemo ime zbirke podatkov na levi
strani zaslona, se bodo prikazale tabele v tej zbirki. Lahko brskamo po obstoječih tabelah v
izbrani zbirki podatkov, dodajamo vnose v tabele, dodajamo uporabnike, izdelujemo nove
tabele ali jih spreminjamo, izvažamo in uvažamo podatke itd.
V naslednjih korakih bomo predstavili primer, kako ustvariti novega uporabnika. S klikom
na gumb Privilegiji izberemo želeno uporabniško ime in geslo novega uporabnika. Ker
bomo ustvarili testno okolje, bomo gostitelja določili lokalno. Izbrali bomo možnost
Ustvari zbirko podatkov z enakim imenom in dodeli vse privilegije in s tem novemu
uporabniku zagotovili vse pravice za delovanje z zbirko podatkov, ki se bo imenovala
enako kot uporabniško ime.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 41
Slika 3.11: Dodajanje novega uporabnika v phpMyAdminu.
Kot zanimivost lahko na tej točki pokažemo, kako nam vmesnik phpMyAdmin olajša delo
s podatkovnimi zbirkami. Prvoten način nastavljanja strežnika MySQL je potekal iz
ukazne vrstice. Administriranje strežnika iz ukazne vrstice je lahko zelo zapleteno
opravilo. Delo opravimo precej počasneje in ob velikem številu zbirk podatkov, tabel in
podatkov v njih se lahko kaj hitro izgubimo. phpMyAdmin nam z nekaj kliki precej olajša
delo. Na spodnji sliki je primer sintakse dodajanja novega uporabnika, ki jo je kot rezultat
našega klikanja pripravil phpMyAdmin.
Slika 3.12: SQL sintaksa.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 42
3.5 XAMPP
Za potrebe testiranja spletnega vmesnika smo lokalni strežnik pripravili z namestitvijo
XAMPP-a. Z njim smo se seznanili med študijsko izmenjavo v Španiji na univerzi Rovira i
Virgili, kjer smo ga uporabili pri predmetu Electronic Commerce. XAMPP sodi med tako
imenovane trojčke, ki združujejo namestitev strežnika Apache, programskega jezika PHP,
strežnika MySQL in vmesnika phpMyAdmin. Imenujemo jih trojčki, četudi so po navadi
sestavljeni iz več kot treh aplikacij. Slaba stran trojčkov je, da niso vedno najbolj ažurni.
Priporočljivi so predvsem za začetnike, ki želijo hitro vzpostaviti delujoče osnovno testno
okolje brez večjega poglabljanja v namestitev in konfiguracijo. Na sliki 3.13 nadzorne
plošče XAMPP-a lahko vidimo, kako Apache in MySQL strežnika delujeta na istem
računalniku.
Pomen kratice XAMPP je:
X – velja za simbol več združenih platform v trojčku,
A – Apache HTTP strežnik,
M – MySQL,
P – PHP,
P – Perl.
Slika 3.13: Nadzorna plošča XAMPP.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 43
4 IMPLEMENTACIJA SPLETNE APLIKACIJE
Načrtovanje spletne aplikacije je potekalo po zgledu predhodnega postopka včlanjevanja,
ko so se izpolnjevale papirne pristopne izjave in so se podatki ročno vnašali v tabelo
programa Microsoft Excel. Tak način dela je bil dostikrat zamuden, pogoste pa so bile tudi
napake pri vnašanju in selekcioniranju podatkov, kot so telefonske številke in elektronski
naslovi za pošiljanje obvestil. Prav tako se je z vnašanjem v Excel vodila evidenca izdaje
članskih ugodnosti, kot so na primer kuponi za subvencioniran nakup vstopnic za kino.
Doslednost je pri tem zelo pomembna, saj razlika v ceni članske ugodnosti bremeni klub.
Kot smo že omenili, je načrtovanje spletnega vmesnika potekalo po zgledu predhodnega
realnega procesa včlanjevanja. Na podlagi izkušenj smo s programsko logiko napisano v
jeziku PHP razvili funkcionalnosti spletnega vmesnika. Pri načrtovanju podatkovne baze
smo si pomagali s tabelami predhodnega članskega seznama.
Slika 4.1: Članski seznam v Microsoft Excelu.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 44
Slika 4.2: Seznam ugodnosti v Microsoft Excelu.
Na sliki 4.3 je prikazana privzeta stran spletnega vmesnika. Načrtovali smo ga s
preprostimi skicami in z željo narediti ga čim enostavnejšega. Grafično smo spletni
vmesnik oblikovali s predlogami CSS. Ustvarili smo datoteko style.css in območje spletne
strani (container) porazdelili na glavo (header), levi meni (leftnav), telo (body) in nogo
(footer). Spodnji zapis izvorne kode prikazuje atribute, ki smo jih določili v glavi spletne
strani. S privzete strani usmerjamo uporabnike in administratorja do podstrani vmesnika,
kjer so na voljo funkcionalnosti, ki jih nudi. Naštete so v naslednjem odstavku.
#header { width: 900px; height: 120px; background-color: #990099; border-bottom: 2px solid #000000; font-family: Verdana; letter-spacing: 1.2px; position: relative; }
Izvorna koda 4.1: Primer CSS predloge za glavo vmesnika.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 45
Slika 4.3: Privzeta stran.
Uporabniški vmesniki:
vpis v klub s spletno pristopno izjavo,
pregled porabe članskih ugodnosti na mobilnem aparatu. Administrativni vmesniki:
prijava kot administrator,
potrjevanje članov,
izpis aktualnega članskega seznama,
evidenca porabe vseh članskih ugodnosti za določeno obdobje,
evidenca porabe članskih ugodnosti na člana,
evidentiranje izdanih članskih ugodnosti,
vpis članskih ugodnosti,
izpis elektronskih naslovov, prijavljenih na prejemanje obvestil,
izpis mobilnih telefonskih številk, prijavljenih na SMS obveščanje,
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 46
izpis agregiranega seznama.
4.1 Implementacija podatkovne baze
Za delovanje spletne aplikacije smo s programom phpMyAdmin ustvarili MySQL
podatkovno bazo, imenovano skms_test. Najprej smo ustvarili globalni model na podlagi
analize realnega procesa. Nato smo določili entitete, ki nastopajo v procesu in razvili
konceptualni E-R model. Sledil je zapis logičnega modela in nato izdelava fizične
podatkovne baze. Skripte PHP smo v podatkovni bazi podprli s šestimi entitetami:
clan_student, fakultete, ugodnosti, ugodnosti izdane, univerze in agregiran_seznam.
Na spodnji sliki lahko vidimo entitetno relacijski diagram podatkovne baze skms_test. E-R
diagram je abstraktna predstavitev strukturiranih podatkov, ki se uporabljajo pri
načrtovanju relacijskih podatkovnih baz. Entitete običajno označujemo s samostalniki, ki
jih je možno enolično identificirati in imajo svoje lastnosti oziroma atribute. Relacija
ponazarja način povezave med dvema ali več entitetami. Ko imamo nabor entitet, lahko
med njimi identificiramo relevantna razmerja. Pri tem so pomembne števnosti razmerja, ki
nam povedo, koliko primerkov ene entitete nastopa v povezavi z enim primerkom druge
entitete. Pri binarnih povezavah, kjer sta v igri dva tipa entitet, poznamo tri osnovna
razmerja števnosti. V našem primeru je aktualno razmerje števnosti ena proti več (1 : N).
Na spodnji sliki lahko vidimo, kakšna je števnost razmerja med tabelama clan_student in
ugodnosti_izdane. En primerek tipa entitete clan_student sodeluje v povezavi z enim ali
več primerki tipa entitete ugodnosti_izdane. Torej, nekemu študentu se lahko izda eno ali
več članskih ugodnosti [7].
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 47
Slika 4.4: E-R diagram.
Praviloma bi morala vsaka tabela vsebovati primarni ključ. Primarni ključ je polje ali
nabor polj, ki enolično identificirajo vsak zapis, shranjen v tabeli. To pomeni, da se za
katerikoli dve vrstici v tabeli vrednosti primarnih ključev razlikujejo. Po navadi jih
uporabljamo kot reference preko tujih ključev. Primarnim ključem smo nastavili
avtomatsko povečevanje vrednosti v vsaki naslednji vrstici (auto_increment) ter tako
dosegli raznolikost v vrednostih med njimi. Na spodnji sliki je primer izpisa tabele
fakultete v programu phpMyAdmin. Iz tabel fakultete in univerze črpamo podatke o
obstoječih višjih šolah in visokošolskih zavodih. V tabeli fakultete je id_fak primarni
ključ tabele, medtem ko id_uni velja za referenčni ključ v relaciji s tabelo univerze [7].
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 48
Slika 4.5: Tabeli fakultete in univerze.
4.2 Spletna pristopna izjava
Spletna pristopna izjava je uporabniški vmesnik za pridobivanje podatkov, ki jih
potrebujemo za včlanjevanje v študentski klub. Podatke v formi ločimo na obvezne in
neobvezne. Obvezne smo označili z zvezdico. V kolikor uporabnik ne vpiše podatkov v
obvezna polja, mu sistem javi napako. Prav tako sistem javi napako, ko uporabnik pri
vpisu elektronskega naslova uporabi neveljavne znake (npr.: šumnike). Med obvezne
sodijo podatki o stalnem prebivališču. Omejili smo število izbir, saj se v drsnem meniju
izpišejo le pošte in občine, ki sodijo pod Upravno enoto Šentjur. To smo storili zato,
ker je lahko polnopraven član kluba le študent iz omenjene upravne enote. Uporabnik
mora potrditi tudi izjavo o soglasju s statutom kluba in pravicami ter obveznostmi, ki iz
njega izhajajo. V kolikor uporabnik vnese obvezne podatke, se ti shranijo v podatkovno
bazo. Neobvezne podatke uporabnik izpolni po želji. Če želi lahko izbere možnost
prejemanja SMS obvestil ali elektronskih sporočil ali oboje.
Vnosno formo, ki je narejena v HTML-ju z oznako form, smo v skripti PHP ustvarili
kot funkcijo. Ustvarili smo mesta za vnašanje teksta in označevanje ter drsne menije.
Kličemo jo, ko uporabnik izpolnjuje spletno pristopno izjavo in ko administrator
pregleduje člane. PHP prevzame kontrolo nad vnesenimi podatki z action atributi.
Podatke zajemamo z metodo POST (), ko je vnos podatkov s
strani uporabnika potrjen s klikom na gumb Pristopi ().
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 49
V tabelah 4.1, 4.2 in 4.3 smo demonstrirali primer uspešnega vpisa študenta.
Predstavljene so tudi vejitvene akcije, ko vpis ni uspešen. V prvem scenariju po korakih
predstavimo vpis študenta, ko ta izpolnjuje vnosno formo. V drugem scenariju
predstavimo potrjevanje vnesenih podatkov s strani administratorja.
Slika 4.6: Spletna pristopna izjava.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 50
Tabela 4.1: Primer vpisa študenta.
Vpis študenta
Cilji Vpis študenta v podatkovno bazo.
Sistem Spletni vmesnik
Predpogoj Administrator se uspešno prijavi v sistem.
Pogoj uspešnega zaključka Administrator potrdi študenta v podatkovni bazi.
Pogoj neuspešnega zaključka Administrator ne potrdi študenta v podatkovni bazi.
Prožilec Gumba Pristopi in Potrdi
Tabela 4.2: Primer vpisa študenta: Scenarij 1.
SCENARIJ 1 - uporabnik Korak Akcija
1 Uporabnik na uvodni strani klikne na gumb Spletna pristopna izjava.
2 Odpre se obrazec za vpis podatkov.
3 Uporabnik vpiše podatke ter potrdi vnos.
4 Sistem preveri, če so vpisani zahtevani podatki in če pri vpisu elektronskega naslova ni prepovedanih znakov.
5 Sistem vpiše podatke v podatkovno bazo.
6 Sistem obvesti uporabnika o uspešnosti vpisa.
Razširitve Korak Vejitvena akcija
4a Uporabnik ni izpolnil zahtevanih vnosnih polj oziroma je vpisal napačen elektronski naslov. Sistem zahteva dopolnitev podatkov oziroma obvesti o neustreznosti elektronskega naslova.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 51
Tabela 4.3: Primer vpisa študenta: Scenarij 2.
SCENARIJ 2 - administrator Korak Akcija
1 Administrator na uvodni strani klikne na povezavo Admin.
2 Administrator vpiše pravilno uporabniško ime in geslo.
3 Odpre se stran s seznamom članov na čakanju za potrditev
4 Administrator klikne na Urejanje in potrjevanje člana.
5 Preveri vpisane podatke in člana potrdi, v primeru da je ta pravočasno oddal originalno potrdilo o šolanju.
6 Član je potrjen kot veljaven v podatkovni bazi.
Razširitve Korak Vejitvena akcija
2a Administrator vpiše napačno uporabniško ime in geslo. Sistem javi napako.
5a Administrator člana ne potrdi.
V tabeli 4.4 so prikazana polja in vrste polj tabele clan_student, kamor se preko spletne
pristopne izjave podatki shranjujejo v podatkovno bazo skms_test. Polje
id_clan_student velja za primarni ključ tabele in je v relaciji z isto imenovano entiteto v
tabeli ugodnosti_izdane. V tabeli obstaja tudi relacija s tabelo fakultete, in sicer med
entitetama uni in id_fak. V poljih sms in e_obv označujemo člane, ki želijo prejemati
obvestila. Aplikacija bo na podlagi teh oznak selekcionirala podatke in izpisala seznam
telefonskih številk in elektronskih naslovov. deleted velja za parameter izbrisa člana iz
članskega seznama. Podatki torej niso dejansko izbrisani iz tabele. Če vrednost polja
deleted nastavimo na 0, član ni vključen v aktualni članski seznam.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 52
Tabela 4.4: Polja, vrste polj in komentarji v tabeli clan_student.
Polje Vrsta Komentar
id_clan_student int(11) PRIMARNI KLJUČ
ime varchar(20) ime člana
priimek varchar(20) priimek člana
spol varchar(10) spol člana
ulica varchar(30) naslov člana
posta int(4) poštna številka
obcina varchar(10) občina
datum_roj date datum rojstva člana
tel varchar(12) telefonska številka
e_posta varchar(30) elektronska pošta
uni varchar(5) REFERENČNI KLJUČ
univerza šolanja
letnik varchar(6) letnik šolanja
date date datum vpisa
potrditev tinyint(1) Parameter za potrditev člana na čakanju v polnopravnega člana.
sms tinyint(1) Parameter za prejemanje SMS obvestil.
e_obv tinyint(1) Parameter za prejemanje elektronskih obvestil.
izjava tinyint(1) Izjava o soglasju
clanstvo date veljavnost članstva
cifra int(11) številka člana
deleted int(11) Parameter, ki označuje izbris člana.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 53
4.3 Administratorsko okolje
Za uspešno delovanje vmesnika potrebujemo tudi administratorsko okolje, ki smo ga skrili
pred očmi obiskovalcev tako, da smo ga zaščitili z uporabniškim imenom in geslom. V
primeru uspešne prijave se bo vzpostavila seja, ki bo omogočala delovanje na podstraneh
administratorskega okolja. Podstrani se v skripti PHP izvajajo s pomočjo superglobalne
spremenljivke $_GET, ki je asociativno polje spremenljivk, posredovano trenutni skripti
uporabnika preko parametrov URL [5].
Administrator bo imel pregled nad vpisanimi študenti. V administratorskem okolju bodo
vpisani študenti ločeni na potrjene in na čakajoče na potrditev. Študenti na čakanju za
potrditev bodo s strani administratorja potrjeni takrat, ko se bo preverila relevantnost
vnesenih podatkov in ko bodo na sedež kluba dostavili originalno potrdilo o šolanju za
tekoče šolsko leto. Če član soglaša s statutom kluba, se obenem strinja, da bo dostavil
potrdilo o šolanju. Le na ta način se lahko aktivist kluba prepriča, da ima oseba, ki se želi
včlaniti, status študenta. Administrator bo ob potrditvi osebe omejil članstvo na datum,
vezan na veljaven status študenta, in mu dodelil člansko številko. Ko bo član potrjen, bo
izpisan na članskem seznamu.
Slika 4.7: Administratorsko okolje.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 54
Kot smo že omenili, je vrednost v polju id_clan_stud za vsakega člana edinstvena. V
kombinaciji s spremenljivkami iz URL naslova in spremenljivko $_GET lahko to vrednost
uporabimo kot sklic za prikaz želenih podatkov. Na sliki 4.7 lahko na seznamu članov na
čakanju za potrjevanje najdemo Janeza Novaka. V polju id_clan_stud ima številko 61. S
klikom na povezavo Urejanje & potrjevanje člana v skripti admin.php v funkcijo
clanForm prikličemo podatke o članu. Funkcija nam omogoča urejanje podatkov, hkrati pa
lahko služi za vnos novih podatkov v podatkovno bazo. Na sliki 4.8 roza obarvana sintaksa
se izvaja med pogoji v izvorni kodi 4.2 pri privzetem primeru (deafult:).
Slika 4.8: Izpis podatkov člana na čakanju za potrditev.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 55
Prva stran
članski seznam
članske ugodnosti
Izvorna koda 4.2: Primer uporabe $_GET.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 56
V administratorskem okolju je na voljo tudi aplikacija za delo s klubskimi članskimi
ugodnostmi. Izpisal se bo seznam aktualnih ugodnosti in omejitev porabe le-teh na
določeno obdobje, saj so ene na voljo vsak mesec, druge se lahko koristijo na leto in tretje
na članstvo. Vpisale se bodo lahko na novo pridobljene ugodnosti in izbrisale neaktualne.
Evidenca izdaje ugodnosti bo nudila vpogled na neko določeno obdobje izdaj in vseh
izdanih ugodnosti. Ko bo članu izdana ugodnost, jo bo klubski aktivist evidentiral s
pomočjo aplikacije.
Slika 4.9: Klubske članske ugodnosti.
V tabelah 4.5, 4.6, 4.7 in 4.8 demonstriramo vnos in izdajo članskih ugodnosti. Scenarij v
tabeli 4.6 predstavi vnos nove članske ugodnosti. Scenarij v tabeli 4.8 predstavi izdajo
članske ugodnosti članu, z vejitveno akcijo, ko izdaja ugodnosti ni uspešna.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 57
Tabela 4.5: Primer vnosa nove članske ugodnosti.
Vnos nove članske ugodnosti
Cilji Vnos nove članske ugodnosti.
Sistem Spletni vmesnik
Predpogoj Administrator se uspešno prijavi v sistem.
Pogoj uspešnega zaključka Administrator vnese novo ugodnost in ji določi omejitev porabe na obdobje (mesec, leto, članstvo).
Prožilec Gumb Vnesi ugodnost.
Tabela 4.6: Primer vnosa nove članske ugodnosti: Scenarij.
SCENARIJ Korak Akcija
1 Prijavljen administrator v meniju izbere članske ugodnosti.
2 Izpišejo se vse aktualne ugodnosti in vnosno polje za vnos nove ugodnosti.
3 Administrator vpiše naziv nove ugodnosti in omejitev porabe na obdobje (mesec, leto, članstvo).
4 Sistem vpiše podatke v podatkovno bazo.
5 Sistem novo ugodnost doda na seznam aktualnih ugodnosti.
Tabela 4.7: Primer izdaje ugodnosti.
Izdaja ugodnosti
Cilji Evidentirati izdajo ugodnosti v podatkovni bazi.
Sistem Spletni vmesnik
Predpogoj Administrator se uspešno prijavi v sistem.
Pogoj uspešnega zaključka Administrator evidentira izdano ugodnost članu v podatkovni bazi.
Pogoj neuspešnega zaključka Administrator ne izda ugodnosti članu.
Prožilec Gumb Go
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 58
Tabela 4.8: Primer izdaje ugodnosti: Scenarij.
SCENARIJ Korak Akcija
1 Administrator v meniju izbere Izdaja in pregled ugodnosti.
2 Odpre se seznam izdanih ugodnosti v tekočem mesecu in drsni meni za izbiro člana, ki želi prejeti ugodnost.
3 Administrator izbere člana in klikne na gumb Go.
4 Odpre se seznam ugodnosti in arhiv izdanih ugodnosti izbranemu članu.
5 Administrator v meniju izbere ugodnost in v drsnem meniju količino ter s klikom na gumb Go potrdi izdajo.
6 Izdaja se evidentira v bazi in izpiše na seznamu izdanih ugodnosti članu.
Razširitve Korak Vejitvena akcija
5a Administrator v drsnem meniju za količino ne more izbrati druge vrednosti kot nič, kar pomeni da je član ugodnost že izkoristil.
Za evidenco izdaje članskih ugodnosti smo ustvari dve tabeli. V tabelo 4.9 ugodnosti
vnašamo podatke o aktualnih ugodnostih, dodajamo nove in brišemo stare. V tabeli 4.10
ugodnosti_izdane vodimo evidenco porabe izdanih ugodnosti.
Tabela 4.9: Polja, podatkovni tipi in komentarji v tabeli ugodnosti.
Tabela: ugodnosti
id_ugodnosti int(11) PRIMARNI KLJUČ
naziv varchar(150) naziv ugodnosti
omejitev int(11) količinska omejitev
omejitev_obdobje enum('mesec','leto','clanstvo') omejitev na obdobje – mesec, leto, članstvo
deleted int(11) Parameter, ki označuje izbris ugodnosti.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 59
Tabela 4.10: Polja, podatkovni tipi in komentarji v tabeli ugodnosti_izdane.
Tabela: ugodnosti_izdane
id_ugodnosti_izdane int(11) PRIMARNI KLJUČ
id_ugodnosti int(11) REFERENČNI KLJUČ
id_clan_stud int(11) REFERENČNI KLJUČ
stevilo int(11) omejitev na študenta
opomba varchar(50) polje za vnos opombe
datum_izdaje date datum izdaje ugodnosti
deleted int(11) Parameter, ki označuje izbris.
4.4 Uvoz agregiranega seznama
Agregiran seznam zajema vse člane, ki so kadarkoli bili včlanjeni v Študentski klub mladih
Šentjur. Ker klub obstaja že 15 let, je število vrstic v Excelovi tabeli kar veliko, okoli tisoč.
Potemtakem bi ročno vnašanje podatkov v tabelo MySQL podatkovne baze bilo zamudno
opravilo. phpMyAdmin omogoča uvoz tabele iz Excela v podatkovno bazo, vendar z
manjšo prilagoditvijo Excelove datoteke.
V Excelovi datoteki moramo imeti odprt samo en delovni list s podatki, ki jih želimo
uvoziti v podatkovno bazo. Običajna Excelova datoteka ima končnico .xls. Za uvoz tabele
moramo delovni list v drsnem meniju shraniti v obliki CSV, ki vrednosti v tabeli loči z
ločilom (npr.: podpičjem). V kolikor bi v datoteki imeli več delovnih listov s tabelami, ki
bi jih želeli uvoziti, bi morali vsako posebej shraniti kot posamezno datoteko CSV.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 60
Slika 4.10: Oblika CSV – ločilo je podpičje.
V našem primeru smo seznam uvozili v že obstoječo podatkovno bazo. Ustvariti smo
tabelo agregiran_seznam, kjer smo polja prilagodili tabeli import.csv. Izbrali smo tabelo, v
katero želimo uvoziti podatke in kliknili na Import. Nato smo določili lokacijo datoteke z
besedilom in izbrali format. V naše primeru je to CSV using LOAD DATA. Postopek
izvedemo in podatki so vneseni v tabelo.
Soočilo smo se s težavo vnašanja podatkov, ki vsebujejo šumnike. Podatek se v tabelo ni
uvozil pravilno, če je vseboval šumnik. Težavo smo rešili tako, da smo datoteko CSV
odprli z napredno beležnico EmEditor ter spremenili kodne strani v format UTF-8.
Odkljukali smo izbiro Add a Unicode Signature (BOM) ter tako omogočili prepoznavanje
šumnikov. Tako smo zakodirali vse HTML in PHP skripte, ki jih potrebujemo za delovanje
aplikacije.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 61
Slika 4.11: Uvoz v podatkovno bazo MySQL.
4.5 Pošiljanje obvestil
V administratorsko okolje smo implementirali izpis seznama elektronskih naslovov in
mobilnih številk, katerih naslovniki nam dovolijo pošiljanje elektronskih in SMS obvestil.
V spletni pristopni izjavi obstaja forma, ki uporabnika vpraša, če želi prejemati obvestila.
V kolikor privoli, se to v podatkovni bazi zapiše. S povpraševanjem v skripti PHP iz tabele
izberemo želene podatke in jih izpišemo v seznamu. Pošiljanje elektronskih obvestil
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 62
izvajamo s pomočjo spletne aplikacije MailChimp 1, s katero lahko oblikujemo elektronska
obvestila, enostavno ustvarjamo sezname elektronskih naslovov in spremljamo statistične
rezultate poslanih sporočil. Storitev je brezplačna, v kolikor število elektronskih naslovov
na seznamu ne presega meje, ki je določena za plačljivo. Z aplikacijo smo izpis seznama
elektronskih naslovov prilagodili za lažji uvoz v aplikacijo MailChimp. Če seznam vsebuje
ime, priimek in elektronski naslov, ga lahko z enostavnim kopiranjem prilepimo oziroma
uvozimo v MailChimp. Prednost je tudi v tem, da aplikacija izloči ponavljajoče se
elektronske naslove [11].
Slika 4.12: Kopiranje elektronskih naslovov v aplikacijo MailChimp [11].
1 http://mailchimp.com/
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 63
Pošiljanje SMS obvestil izvajamo s plačljivo storitvijo enosmerni glasnik družbe SiMobil,
ki omogoča, da člane hitro in enostavno obvestimo o aktualnih dogodkih. Enosmerni zato,
ker je možno le pošiljanje kratkih sporočil in ne sprejemanje. Tudi tukaj mobilne
telefonske številke z enostavnim kopiranjem prenesemo na seznam, napišemo želeno
sporočilo in ga posredujemo članom.
Slika 4.13: Enosmerni glasnik [12].
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 64
5 IMPLEMENTACIJA MOBILNE SPLETNE STRANI
V kolikor bo prijava uspešna in bo član postal polnopraven, mu bo omogočeno koriščenje
klubskih članskih ugodnosti. Implementirali smo uporabniški vmesnik prilagojen za
uporabo na mobilnih telefonih, ki bo članu nudil pregled nad rabo ugodnosti. Spletna stran
bo člana obvestila o veljavnosti članstva in o ugodnostih, ki jih je že koristil oziroma, ki jih
še lahko. Za identifikacijo člana smo kot varnostni mehanizem uporabili vnos začetnic
imena in priimka in članske številke. V kolikor kombinacija v podatkovni bazi obstaja,
uporabnik prejme informacije. V tabelah 5.1 in 5.2 demonstriramo primer vpogleda porabe
ugodnosti preko mobilne spletne strani.
Tabela 5.1: Primer vpogleda porabe ugodnosti.
Pregled porabe ugodnosti
Cilji Uporabnik dobi vpogled v rabo članskih ugodnosti
Sistem Spletni vmesnik, prilagojen za uporabo na mobilnih telefonih.
Predpogoj Uporabnik mora biti polnopraven član društva.
Pogoj uspešnega zaključka Uporabnik se seznani z rabo članskih ugodnosti.
Pogoj neuspešnega zaključka Uporabnik v bazi ne obstaja.
Prožilec Gumb Prijava
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 65
Tabela 5.2: Primer vpogleda porabe ugodnosti: Scenarij.
SCENARIJ Korak Akcija
1 Uporabnik se mora identificirati. V vnosno formo vnese začetnici imena in priimka in člansko številko ter klikne na gumb Prijava.
2 Aplikacija uporabnika seznani o veljavnosti članstva in izpiše seznam ugodnosti, ki jih je koristil.
Razširitve Korak Vejitvena akcija
2a Aplikacija uporabnika obvesti, da uporabnik z navedeno kombinacijo ne obstaja.
Izgled mobilne spletne strani smo prav tako kot celoten izgled vmesnika izdelali s
slogovnimi kaskadnimi predlogami CSS. Ustvarili smo samo eno območje, ker jih več
glede na funkcionalnost vmesnika niti ne potrebujemo.
#mobile { width: 200px; background-color: #eeeeee; font-family: Verdana; text-align: center; } #mobile a { color: #000000; text-decoration: underline; font-weight: bold; } #mobile a:hover { color: #0000FF; text-decoration: none; font-weight: bold; }
Izvorna koda 4.3: Enostavna CSS predloga za mobilno spletno stran.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 66
Slika 5.1: Mobilna spletna stran.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 67
6 MOŽNOSTI NADALJNEGA RAZVOJA
Našteli bomo nekaj možnosti nadaljnjega razvoja, ki jih bomo morda v spletni vmesnik
vključili v prihodnje. Do sedaj smo implementirali funkcije, ki imajo največjo težo, ko gre
za včlanjevanje in nudenje članskih ugodnosti.
Vključili bi lahko prijavne forme, prilagojene za včlanitev dijakov in simpatizerjev kluba.
Simpatizerji so ostali zainteresirani za članstvo v klubu, ki nimajo statusa o šolanju.
Omenjeni so lahko člani, a ne redni oziroma polnopravni. Ker klub prireja tudi dogodke,
namenjene širši javnosti, je velikost baze članov ključna, ko gre za informiranje.
Implementirali bi lahko avtomatsko pošiljanje elektronske pošte v trenutku, ko bi člana
potrdili za rednega. Tako bi novega člana informirali o uspešnem vpisu v študentski klub
in ga seznanili s prihajajočimi dogodki in aktualnimi članskimi ugodnostmi.
Zanimiva bi bila tudi implementacija kreiranja PDF formata članske izjave, ki bi si jo
lahko uporabnik shranil oziroma natisnil, jo lastnoročno podpisal ter dostavil na klub.
Pristopna izjava naj bi bila podpisana, a je to pri elektronski formi obrazca nemogoče. Član
bo zato moral podpisati pristopno izjavo takrat, ko bo na klub dostavil originalno potrdilo o
šolanju za tekoče šolsko leto.
Administratorju bi lahko omogočili avtomatsko pošiljanje elektronskih sporočil ob vsaki
novi izpolnitvi spletne pristopne izjave. Tako bi administrator le po potrebi vstopal v
administratorsko okolje in sproti pregledoval vnose.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 68
7 SKLEP
Z izdelavo spletnega vmesnika smo se seznanili s programiranjem dinamičnih spletnih
strani. Za izdelavo spletnega vmesnika smo preučili mnogo literature o PHP-ju, MySQL-u
in ostalih orodjih, pomembnih za izdelavo spletnih aplikacij. Ob težavah smo si pomagali s
svetovnim spletom, ki nudi ogromno informacij. Pri tem je zelo zanimiv portal YouTube,
kjer avtorji kratkih filmov predstavljajo rešitev določenih težav ali pa celo nudijo dobra
navodila za delo z orodji.
Spletna aplikacija bo vsekakor izboljšala proces včlanjevanja in vodenja evidence porabe
članskih ugodnosti, vendar bo cilj dosežen, ko bo študent na sedež kluba dostavil
originalno potrdilo o šolanju. V dosedanji praksi je to predstavljalo največjo težavo, ki je s
spletno aplikacijo ne moremo doseči, vendar si bomo z njo poenostavili delo, saj
pridobimo pomembne kontakte.
Zagotovo to ni končna verzija spletnega vmesnika, saj ga bomo v prihodnosti verjetno
nadgrajevali. Tehnologije in orodja, ki smo jih uporabili za razvoj spletnega vmesnika,
praktično omogočajo rešitev večine težav oziroma realizacije idej, ki se nanašajo na
programiranje spletnih aplikacij.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 69
8 VIRI, LITERATURA
[1] http://www.skms.net, avgust 2011.
[2] M. Štrancar, S. Klemen, PHP in MySQL na spletnem strežniku Apache, druga izd.,
Pasadena, Ljubljana, 2005.
[3] M. Kaltenekar, Hitri vodnik – HTML, CSS in JavaScript – Oblikovanje spletnih
strani, Pasadena, Ljubljana, 2006.
[4] http://onjava.com/pub/a/php/2001/02/22/php_foundations.html, november 2011.
[5] M. Zandstra, Naučite se PHP v 24 urah, Pasadena, Ljubljana, 2004.
[6] http://www.apache.org, september 2011.
[7] T. Mohorič, Podatkovne baze, BI-TIM d.o.o., Ljubljana, 2002.
[8] http://www.w3schools.com, september 2011.
[9] http://www.php.net, september 2011.
[10] L. Beighley, M. Morrison, Head First PHP and MySQL, O'Reilly Media, Inc.,
California, 2009.
[11] http://www.mailchimp.com, oktober 2011.
[12] http://www.simobil.si, oktober 2011.
[13] http://apache-http-server.software.informer.com/wiki, oktober 2011.
[14] http://news.netcraft.com/archives/2011/11/07/november-2011-web-server-
survey.html#more-5091, november 2011.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 70
9 PRILOGE
9.1 Seznam slik
Slika 1.1: Logotip ŠKMŠ [1].
Slika 1.2: Spletna stran ŠKMŠ [1].
Slika 2.1: Izpis preprostega HTML dokumenta v brskalniku.
Slika 2.2: Izpis HTML dokumenta z vključenimi CSS predlogami v brskalniku.
Slika 2.3: Datoteka httpd.conf.
Slika 2.4: Prikaz procesiranja kode [4].
Slika 2.5: Izpisa preprostega PHP dokumenta v brskalniku.
Slika 2.6: Primer izpisa dinamičnega skripta v brskalniku.
Slika 2.7: Primeri zapisa osnovnih stavčnih struktur.
Slika 2.8: Izpis vnosne forme za prijavo v brskalniku.
Slika 3.1: Informacije o strežniku.
Slika 3.2: Apache Service Monitor.
Slika 3.3: Izpis funkcije phpinfo() v brskalniku.
Slika 3.4: Konfiguracija strežnika MySQL.
Slika 3.5: Varnostne nastavitve strežnika MySQL.
Slika 3.6: Procesiranje nastavitev strežnika MySQL.
Slika 3.7: Nastavitve v php.ini.
Slika 3.8: Urejanje sistemske spremenljivke.
Slika 3.9: Informacije o podpori MySQL-a.
Slika 3.10: Privzeta stran phpMyAdmina.
Slika 3.11: Dodajanje novega uporabnika v phpMyAdminu.
Slika 3.12: SQL sintaksa.
Slika 3.13: Nadzorna plošča XAMPP.
Slika 4.1: Članski seznam v Microsoft Excelu.
Spletni vmesnik študentskega kluba namenjen včlanjevanju in urejanju ugodnosti Stran 71
Slika 4.2: Seznam ugodnosti v Microsoft Excel.
Slika 4.3: Privzeta stran.
Slika 4.4: E-R diagram.
Slika 4.5: Tabeli fakultete in univerze.
Slika 4.6: Spletna pristopna izjava.
Slika 4.7: Administratorsko okolje.
Slika 4.8: Izpis podatkov člana na čakanju za potrjevanje.
Slika 4.9: Klubske članske ugodnosti.
Slika 4.10: Oblika CSV – ločilo je podpičje.
Slika 4.11: Uvoz v poda