84
Aljaž Kolar SPLETNI VMESNIK ŠTUDENTSKEGA KLUBA, NAMENJEN VČLANJEVANJU IN UREJANJU UGODNOSTI Diplomsko delo Maribor, november 2011

SPLETNI VMESNIK ŠTUDENTSKEGA KLUBA, NAMENJEN …V . STUDENT CLUB WEB INTERFACE FOR MEMBERSHIP AND BENEFITS MANAGEMENT . Key words: web interface, PHP, MySQL, mobile web page . UDK:

  • 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