Ostali smo pri posebni spremenljivki $_GET, ki nam prikaže podatke poslane iz obrazca. Ker pa smo rekli, da ne želimo teh podatkov v URL-ju, bomo uporabili posebno $_POST spremenljivko.
V samem obrazcu moramo metodo spremeniti v post, nato pa se v PHP kodi prav tako sklicevati s $_POST.
V kolikor ste zamudili prvi del, si ga lahko ogledate na strani PHP 1.del.
|
|||||
|
|||||
Tako. Na vrsti je prvi preizkus znanja. Naloga je takšna:
V PHP programskem jeziku napišite funkcijo, ki vrne zmnožek treh števil, ki se jih poda kot argumente funkcije. Funkcija se v začetku zažene in rezultat se izpiše na ekran. Vaše rezultate objavite na forumu. Pomoč: Dobro si poglejte prejšno lekcijo. |
|||||
|
|||||
Če vam je uspelo rešiti prejšno nalogo gremo naprej. Sicer se ustavite in ponovno preberite prvo lekcijo. Oglejmo si kako bi izpisali datum na serverju.
<?php echo date("d.m.y"); ?> Funkcija date torej vrne rezultat na serverju. Podati ji moram en argument v katerem zapišemo format. V tem primeru se bo izpisalo: 22.08.2008 Če bi napisali date("d.m.y"); bi se namesto 2008 izpisalo le 08. S ukazom date pa lahko izpišemo tudi čas. <?php echo date("d.m.y H:i:s"); ?> Na ekranu bo izpisano 22.08.08 11:55:20 . V formatu lahko uporabljamo različna ločila. Glavni znaki pa so:
|
|||||
|
|||||
Na vrsti sta ukaza include ter require. Ta vključita neko datoteko v le-to. Oba delujeta enako, le da različno delujeta ob napaki. Include vrne napako ter nadaljuje z izvajanjem require pa vrne usodno napake in izvanjanje skripte se ustavi.
Pripročam require() seveda pa lahko zaenkrat uporabljamo kar include. Tako bomo videli, da če datoteka ne obstaja tudi podatkov, ki jih bomo želeli črpati iz nje ne bomo dobili. Pa si poglejmo primer. casovneFunkcije.php : <?php $time["navaden"] = date("G.i.s"); $time["datum"] = date("d.m.Y"); $time["vse"] = date("d.m.Y G.i.s"); ?> mojaDatoteka.php: <?php include("casovneFunkcije.php"); echo "Trenuten čas je ".$time["navaden"]; echo "<br>Danes je ".$time["datum"]; echo "<br>Če to združimo dobimo ".$time["vse"]; ?> Torej v datoteki casovneFunckije.php nastavimo določene spremenljivke na neko vrednost. Vendar kako lahko imajo vse tri spremenljivke enako ime? To je mogoče. Spremenljivka $time je pravzaprav množica. Množica se označi z [ in ]. Tako nek objekt v tej množici poimenujemo ter mu določimo vrednost. Skratka objekt "navaden" v množici $time ima vrednost trenutnega časa. Objekt "datum" ima vrednost trenutnega datuma itd. To datoteko smo potem vstavili v datoteko mojaDatoteka.php s funkcijo include(). Tako lahko sedaj dostopamo do vseh spremenljivk v vstavljeni datoteki. |
|||||
|
|||||
Imate radi piškote? Da? Kaj pa računalniške piškote, ki jim pravimo kar cookies? Zagotovo ste jih že poskusili. Piškotki so posebne datotekice shranjene v brskalniku, ki spletnim stranem omogočajo shranjevanje določenih besedic.
Pojdite v Mozillo Firefox in se prijavite v zmago.com. Potem kliknite na Orodja/Možnosti/Zasebnost/Pokaži piškote. Odpre se vam okno s vsemi piškoti v vašem brskalniku. Mnjam! V zgornje polje zapišite zmaga.com in videli boste katere piškote vse si je zmaga.com shranila na vaš računalnik. Jaz sem jih naštel kar 22. Poglejte si njihova imena. Verjetno boste našli piškotek (ali dva) z naslovom anketa ter številko ankete. Zmaga si torej kot pomoč zapiše cookie, da ste že glasovali in kasneje ne morete več. Sedaj pa si poglejmo še en zelo pomemben piškotek. Ta ima ime PHPSESSID . Ta shranjuje podatke o prijavljenem uporabniku. Ste že nestrpni kajne? Gremo na primer. <?php setcookie("mojPrviPiškotek", "kljuka"); echo $_COOKIE["mojPrviPiškotek"]; ?> Najprej smo s funkcijo setcookie nastavili vrednost našega piškotka. Prvi argument je ime drugi pa vrednost piškotka. Potem smo izpisali ta naš cookie s posebno spremenljivko $_COOKIE . PHP ima ogromno teh posebnih spremenljivk kot so $_GET, $_POST, $_SESSION, $_COOKIE, $_SERVER, $_REQUEST, $_ENV vsaka od teh množic (!) pa ima mnogo objektov. Če si sedaj spet pogledamo listo cookiejev in vpišemo zgoraj localhost bomo videli naš cookie. Spodaj piše da poteče ob koncu seje torej ko se brskalnik zapre. Mi lahko to tudi spremenimo tako, da čas podamo v tretjem argmuentu. <?php setcookie("mojPrviPiškotek", "kljuka", time()+3600); echo $_COOKIE["mojPrviPiškotek"]; ?> Če si sedaj pogledamo piškotek vidimo da bo potekel čez eno uro. |
|||||
|
|||||
PHPSESSID pa je poseben piškotek, ki označuje vrednost seje. PHP pozna seje, ki so uporabne pri prijavljanju uporabnikov. Poglejmo si primer.
<?php session_start(); if (isset($_SESSION["prijavljen"])==false) { if (isset($_GET["user"])){ $_SESSION["prijavljen"] = $_GET["user"]; die ("Uspešno ste prijavljeni!"); } die ("Napačno uporabniško ime!"); } echo "Še vedno ste prijavljeni kot ".$_SESSION["prijavljen"]; ?> To pa je že poplava novih funkcij. Gremo lepo po vrsti. Najprej smo pognali funkcijo session_start ki poskrbi, da lahko sploh gledamo v sejo. Ta funkcija je obvezna, če se želimo ukvarjati s sejo. Nato pride na vrsto stavek if , ki z funkcijo isset preveri če objekt "prijavljen" v seji ne obstaja. Če ne obstaja potem preveri, če obstaja argument user Url vrstici. Če obstaja potem nastavi objek "prijavljen" v seji na vrednost, ki ste jo vpisali v url. Če pa user ne obstaja potem z funkcijo die prekine nadaljevanje skripte in hkrati izpiše sporočilo "Napačno uporabniško ime!" . Če pa na začetku stavek if ugotovi, da ste že prijavljeni, potem izpiše "Še vedno ste prijavljeni kot " ter ime. Sedaj poskusite preveriti. Odprite to datoteko. Izpisalo se bo, da je uporabniško ime napačno. Sedaj pa zgoraj v URL vrstici dodajte ?user=zmaga In kliknite enter. Izpisalo se bo uspešno ste prijavljeni. Sedaj zbrišite tisti zadnji del in povovno odprite datoteko. Izpisalo se bo, da ste še vedno prijavljeni kot zmaga. Če se želimo odjaviti moramo pognati ukaz unset($_SESSION) , ki sejo izbriše. |
|||||