Algus Vahepealsetest keerdkäikudest hoolimata paistab, et veebi koostamisel langeb põhirõhk lähiaastatel ikka HTMLi, sinna juurde kuuluva CSSi ja Javaskripti peale. HTMLi kirjutamise ning sealtkaudu saadavate andmetega saab PHP igati mugavasti hakkama. Seetõttu alustamegi õppematerjali lihtsa veebilehe loomisega ning vaikselt lisame sinna programmeerimisvõimalusi. Tutvustav veebileht HTML-faili tüübiks on tekstifail. See tähendab, et see fail võib sisaldada ainult teksti või muid ekraanil nähtavaid sümboleid. Tavalise tekstina olev osa paistab jutuna kasutajatele. Teksti osade eristamiseks aga saab teksti sisse panna < ja > märkide vahele HTMLi märgendeid, millega veebilehitsejat juhatada ja dokumendi struktuuri märkida. Veebilehe esmaseks struktuuriks on deklaratsioon (doctype), HTML-dokument ise - mis jääb märgendite ja vahele. Ning dokument jaguneb päiseks (head) ning sisuosaks (body). Esimeses neist on andmed dokumendi kohta - kes tegi, millal tegi, kui kaua kehtib, märksõnad, lühikirjeldus jm. Sisuosas (body) olev tekst on üldiselt vaatajale nähtav - välja arvatud märgendite nimed, millega teksti juhitakse. Head-osas paiknev title on näha veebilehitseja tiitliribal. Kui korraga avatud palju lehti, siis selle järgi saab vaadata, millist lehte parajasti näha soovitakse. Sisus võib teksti jagada lõikudesse div-märgendite abil. Reavahetust tähistab
. Pealkirja märkimiseks sobivad

koos lõpuga

ning

ja

. Sügavama struktuuri puhul ka suuremate numbritega pealkirjad. Loetelu piiritleb (unordered list). Iga loeteluelemendi ümber tuleb
  • ja
  • . Selliste vahenditega saabki lihtsa veebilehe kokku. Jaagupi leht

    Jaagup

    Sündis 03. mail 1976 Tallinnas.
    Kasvas Mustamäel.

    Huvialad

    Veebileht nähtuna brauseriaknas: PHP algus Eelnev leht saadeti serverist veebilehitsejasse samal kujul nagu ta faillina oli salvestatud. Serveripoolse rakenduse korral aga pannakse failis olev kood enne käima ning siis saadetakse töö tulemus brauserisse. PHP puhul tuleb käivitatav kood panna algustähise vahele. Käsklus echo trükib tulemuse ekraanile Arvutus: Väljund lehel Arvutus: 5 Ülesandeid * Hangi või tee selgeks enesele võimalus PHP-võimelises veebiserveris veebilehtede loomiseks. Windows-masinas sobib näiteks XAMPP või WAMP-nimeline komplekt. * Koosta tervitav leht ja vaata seda veebiserveri kaudu * Muuda lehe sisu ning uuendusnupu vajutuse järel veendu muutuse kajastumises ka veebilehitsejas. * Käivita konspektis olnud näide kahe arvu liitmise kohta. * Muuda arve ja tehet, kontrolli tulemusi. Muutuja, tingimuslause Programmeerimiskeeltes on levinud võimalus andmeid muutuja ehk märksõna alla meelde jätta. PHPs algavad muutujate nimed dollarimärgiga. See võimaldab neid hiljem vabamalt teksti sisse panna. Lõik $eesnimi="Juku"; echo "Tere, $eesnimi!"; trükib aimatavalt välja ”Tere, Juku”. Samuti siis $eesnimi="Juku"; echo "$eesnimi tuli hommikul kooli.
    "; teatab, kes hommikul kooli tuli. Reavahetus
    lause lõpus hoolitseb, et järgnevat juttu alataks järgmiselt realt. Valiku jaoks on käsklus if. Tingimus pannakse ümarsulgude sisse. Kui tingimus vastab tõele (praegusel juhul kinganumber on väiksem kui nelikümmend), siis täidetakse järgnevate looksulgude vahele paigutatud plokk. Sama lugu ka alumise tingimusega. "; $kinganumber=37; if($kinganumber<40){ echo "$eesnimi saab veel lasteosakonnast kingi
    "; } if($kinganumber>45){ echo "Kodanik $eesnimi kingad sobivad naelakastideks."; } ?> Väljund ekraanil: Juku tuli hommikul kooli. Juku saab veel lasteosakonnast kingi Ülesandeid Lisa muutuja perekonnanime tarbeks. Anna sinna väärtus ja kasuta seda lausetes. Koosta eraldi leht, kus kirjas temperatuur. Väljasta, kas vesi on sellel temperatuuril vedel või muutub jääks. Kellaaeg Igal lehe avamisel näitamine on kindel kontroll selle kohta, et veebiserveris lehe loomiseks midagi toimub. Kuna samast serverist võidakse lehti vaadata mitmelt poolt, siis on tarvilik teada anda, millise ajavööndi kellaaega soovitakse. Edasi juba käsklus date annab soovitud tulemuse. Sulgudes olevad tähed näitavad, kuidas kellaaega vormistada. Tekst ikka jutumärkide vahel. Suur H palub tunde näidata 24-tunni süsteemis, i tähendab minuteid ning s sekundeid. Koolonid seal vahel trükitakse lihtsalt välja. Kellaleht

    Kellaaeg

    Väljund: 18:31:39 Ülesandeid Näita kellaajast vaid tunde ja minuteid Näita välja kuupäev. Y tähistab aastat, m kuud ning d päeva. Tollikalkulaator Nagu arvuti sõnastki välja lugeda võib, on arvutamine selle masina juures tähtis ülesanne. Vahel saab arvutada olemasolevate andmete põhjal. Küllalt sageli aga on vaja kasutajalt algandmete määramiseks sisestust. Andmete sisestamiseks on veebilehe jaoks olemas vorm ehk sisestuselementide komplekt. Form-elemendi action-atribuudina määratakse, kuhu aadressile andmed töötlemiseks saadetakse. Kui sihtkohaks on küsimärk, siis tuleb sisestus samale aadressile, kus vormgi avanes. Arvutamine

    Tollikalkulaator

    Monitori diagonaal tollides:
    Andmete kasutamiseks tuleb nad kinni püüda. Muutuja $_REQUEST kaudu saab vormi sisestatud väärtused kätte. echo $_REQUEST["tollid"]*2.54; korrutab saabunud tollide arvu 2,54ga ning väljastab tulemuse sentimeetrites. Arvutamine

    Tollikalkulaator

    Monitori diagonaal tollides:
    Tulemus näha pildina: Eelmine näide oli küll võimalikult lihtne, aga mõnigate puudustega. Lehe avamisel ilmub sinna salapärane ümmargune null. Vastavalt serveri seadetele raskemal juhul isegi veateade andmete puudumise kohta. Seega on hea leht viisakamaks teha. Aitab järgmine lõik: if(empty($_REQUEST["tollid"])){ echo "Ootan sisestust."; } else { echo $_REQUEST["tollid"]." tolli on ". ($_REQUEST["tollid"]*2.54)." cm."; } Inimkeelne tõlge. Kui saabuvaid tolle pole, siis trükitakse, et "Ootan sisestust.". Muul juhul trükitakse, et mitu tolli on mitu sentimeetrit. Kusjuures empty on selline käsklus, mis loeb tühjaks nii parameetri täieliku puudumise (näiteks lehe esmakordsel avamisel, kus keegi ei teagi tolle sisestada) kui lihtsalt tühjaks jäänud teksti (mis juhtub siis, kui vajutada OK-nupule ilma tollide arvu sisestamata). Leht tervikuna. Arvutamine

    Tollikalkulaator

    Monitori diagonaal tollides:
    Vastuses siis kõigepealt oodatakse sisestust. Hiljem antakse viisakas vastus. Ülesandeid Koosta kalkulaator sentimeetritest tollide arvutamiseks. Jagamismärgiks on kaldkriips /. Koosta kalkulaator, kus sisestus on meetrites. Väljastatakse, mitu kilomeetrit see on, mitu detsimeetrit, mitu sentimeetrit ning mitu millimeetrit see on. Ostusumma arvutamine Sisestatavaid väärtusi võib olla mitu. Nende kättesaamiseks tuleb nad panna eri nimedega tekstiväljadesse. Järgnevas näites on ühe välja nimeks hind ja teise nimeks kogus. Neid kahte korrutades saadakse kokku ostusumma. Arvutamine

    Summa kalkulaator

    Kauba tükihind: Ostetav kogus:
    Valik rippmenüüst Tekstiväli on sisestuseks mugav teha. Kuna aga kasutaja pääseb sinna kõike sisestama, siis võib kergesti sisse sattuda ka sobimatut teksti. Kasutajale piiratud arvu valikute andmiseks sobib rippmenüü. Rippmenüü loob element tüübist select. Elemendi nime järgi saab endiselt PHP kaudu kasutaja sisestuse kätte. Atribuudi value juurde kirjutatud väärtus läheb serverisse edasiseks töötluseks, tekst enne option-elemendi lõppu jääb näha kasutajale oma valiku tegemisel. Allpool saab arvutada endist moodi. Arvutamine

    Summa kalkulaator

    Kaup: Ostetav kogus:
    Tulemus lehel: Ülesandeid Pane näide tööle Muuda tooteid ja hindu, katseta tulemust. Loo toodetest kaks rippmenüüd eri nimedega. Näita, kui suur summa tuleb kummagi toote kohta eraldi ning kui palju kahe toote peale kokku. Andmed massiivist Paar harva muutuvat väärtust on hea veebilehe sisse kirjutada. Kui aga andmeid rohkem, neid kasutatakse mitmes kohas või nad kipuvad sageli muutuma, siis on tavaline, et andmete kirjapaneku ja kasutamise kohad erinevad. Andmed on mugav kirja panna eraldi andmebaasi või eraldi faili. Et seda pole veel õpitud, siis piirdume ühise massiiviga, mida ka vajadusel mitmel pool kasutada saab. Massiivi loomiseks sobib käsklus array(). Edasi võib sinna ükshaaval andmed sisse panna. PHP lubab massiivi võtmena kasutada ka teksti. Kui kirjutatakse $kaubad["vorst"]="2.50", siis muutujaks on $kaubad, võtmeks "vorst" ning väärtuseks "2.50". $kaubad=array(); $kaubad["vorst"]="2.50"; $kaubad["juust"]="3.00"; $kaubad["kartul"]="0.45"; Pärast võimalik tsükliga andmed läbi käia. Käsk foreach võtab ükshaaval ette kõik võtme ja väärtuse paarid (mis siinsel juhul on $nimetus ja $hind) ning lubab nendega tsükli keha sees (ehk looksulgude vahel) toimetada. Tulemusena trükitakse välja kõik valikud nõnda, et nimetused jäävad kasutajale silma ette valida. Hinnad aga saadetakse pärast valiku tegemist ning sisestusnupule vajutamist serverisse. foreach($kaubad as $nimetus => $hind){ echo ""; } Serveris tulemuse kokku arvutamine käib ikka endisel moel. Arvutamine

    Summa kalkulaator

    Kaup: Ostetav kogus:
    Ülesandeid Pane näide tööle, muuda andmeid, kontrolli tulemust. Pane lehele kaks valikupaari kaupade ja koguste tarbeks. Näita kummagi paari tarbeks summa eraldi ning lõppu kogusumma. Koosta massiiv, mille võtmeteks on liini bussipeatuste kaugused algpeatusest ning väärtusteks vastavate bussipeatuste nimed. Koosta samade andmetega kaks eri nimedega rippmenüüd. Kasutaja valib kaks peatust, talle teatatakse, kui suur on nende peatuste vahe kilomeetrites. Lisaks eelmisele on kolmandas rippmenüüs valik, kas tegemist on tava-, kiir- või ekspressliiniga. Peidetud väärtustena kuuluvad sinna juurde kilomeetrihinnad. Arvestatakse kokku sõidu maksumus.