programiranje web aplikacija 1-2

110
Marko Carić

Upload: -

Post on 28-Sep-2015

66 views

Category:

Documents


17 download

DESCRIPTION

Programiranje web aplikacija. Lekcija 1 i 2.

TRANSCRIPT

  • Marko Cari

  • Veb Programiranje PHP HTML CSS JavaScript Ajax JQuery SQL - MySQL XML

  • PHP PHP Hypertext Preporocessor Personal Home Page )ma iroku upotrebu, skript jezik otvorenog koda )zvrava se na serverskoj strani koji omoguava stvaranje

    dinamikih interaktivnih veb stranica Besplatno se preuzima sa Internata Jednostavan za korienje Takoe nudi napredne mogunosti za profesionalne programere Poetna verzija P(P-a napravljena je 1994. godine. Trenutna verzija je 5.5.8.

  • Kako izgleda PHP datoteka? Sadri tekst, (TML, JavaScript i P(P kod P(P kod se izvrava na serverskoj stani, a rezultat se vraa

    veb itau u (TML obliku Podrazumevana ekstenzija je .php

  • ta oe PHP? Generie dinamike veb stranice Stvara, otvara, ita, pie i zatvara datoteke na serveru Prikuplja podatke alje i prima kolaie cookies Upisuje, menja ili brie podatke iz baze podataka Ograniava prava pristupa pojedinim veb stranicama ifruje podatke Izlaz (odgovor servera) ne mora da nude u HTML

    obliku; moe biti PDF, XML, X(TML, Flash...

  • )ato PHP? Pokree se pod razliitim operativni sistemima Windows,

    Linux, Unix, MAC OS X) Kompatibilan je sa skoro svim serverskim programima (Apache, IIS) )ma podrku za razliite baza podataka i za sluajeve razliitih problema Besplatno se preuzima sa www.php.net Efikasno se izvrava na serverskoj strani; ima visoke performanse Ugraene biblioteke za obavljanje velikog broja poslova Lako se ui i upotrebljava Dobra podrka za objektno orijentisano programiranje Prenosivost Izvorni kod dostupan svima

  • ta je MySQL? Brz i robustan sistem za upravljanje relacionim

    bazama podataka. MySQL je viekorisniki i vienitni sistem SQL (Structed Query Language) je standardni jezik za upite u bazi podataka Zato koristimo P(P i MySQL?

    Mogu da rade pod svakim poznatijim operativnim sistemom, ak i kod onih manje popularnih

  • )ato MySQL? Visoke performanse

    http://web.mysql.com/benchmark.html Niska cena Lako se konfigurie i ui Prenosivost Izvorni kod je javno dostupan iroko dostupna podrka u sluaju problema

  • ta je potreo za poetak? Pronai veb hosting koji podrava P(P i MySQL ili )nstalirati web server na svom raunaru i onda na

    njemu instalirati PHP i MySQL Mogu se koristiti integrisana okruenja Wamp, Xampp, Lamp Kreirati php datoteku (.php) u veb direktorijumu i server e je automatski parsirati Nije potrebno dodatno kompajliranje ili instalacija Uputstvo: http://php.net/manual/en/install.php

  • Osnovna PHP sintaksa Sledei kod vraa veb itau tekst "Hello World!" Moja prva PHP stranica

  • Sintaksa Svaka linija koda se zavrava sa takom-zarezom; Dve osnovne komande za ispis teksta (echo i print) Komentari u jednoj ili vie linija:

  • tapaje - echo i print echo zdravo; echo zdravo, pozdrav; echo zdravo; print zdravo; print zdravo;

  • Promenljive Promenljive su skladita za uvanje informacija i moraju

    poeti sa slovom ili donjom crtom _ Sastoje se od slova i/ili brojeva i/ili donje crte ali ne i od praznina Promenljive razlikuju veliinu slova case sensitive Poinju sa oznakom $ posle ega sledi ime promenljive

  • Kreiranje i opseg promenljivih P(P je slabo tipizan jezik, to znai da promenljivoj pre

    dodele vrednosti nije potrebno fiksirati tip (u strogo tipiziranim jezicima C++, Java,... to nije sluaj. $txt="Hello world!"; $x=5; Opseg vidljivosti je deo skripta u kome promenljiva moe biti koriena; postoje etiri razliita opsega: Lokalni Globalni Statiki Parametarski

  • Lokalni opseg Promenljive definisane u okviru funkcije su lokalnog opsega i ne

    vide se van nje Navedeni skript ne proizvodi nikakav izlaz Lokalne promenljive se mogu isto zvati u razliitim funkcijama

  • Globalni opseg Promenljive definisane izvan funkcije nazivaju se globalnim

    promenljivama. Moe im se pristupiti svuda OS)M unutar funkcije za to je potrebno dodatno definisati kljunu re global.

  • Globalni opseg Globalne promenljive se takoe mogu uvati u nizu

    $GLOBALS[indeks], gde indeks predstavlja ime promenljive

  • Statiki opseg Na kraju funkcije, lokalne promenljive se unitavaju; ponekad elimo da ipak ne budu unitene i tada koristimo kljunu re static

  • Parametarski opseg Parametarske promenljive su promenljive ija je vrednost

    prosleena funkciji; parametri se esto zovu argumenti

  • Promenljive tipa String Sadre karaktere i tekst u njima se nalazi izmeu

    apostrofa ili navodnika. Operator nadovezivanja je taka .

  • Strlen() Funkcija strlen odreuje duinu broj karaktera

    stringa esto se koristi u petlji kada elimo da se zaustavimo pre kraja stringa

  • Strpos() Funkcija strpos trai karakter ili string unutar stringa Ako je sekvenca pronaena, vraa se prva pronaena

    pozicija; u suprotnom vraa se FALSE )zlaz je pozicija , poto se rauna da je prvi karakter na poziciji nula.

  • Aritetiki operatori Operator Ime Opis Primer Rezultat

    x+y Sabiranje Zbir 2+2 4

    x-y Oduzimanje Razlika 5-2 3

    x*y Mnoenje Proizvod 5*2 10 x/y Deljenje Ceo deo pri

    deljenju 15/5 3

    x%y Moduo Ostatak pri deljenju

    5%2 10%2

    1 0

    -x Negacija Inevrz -2

    a.b Nadovezivanje Nadovezivanje (i . (a HiHa

  • Dodela vrednosti Dodela Isto to i... Opis x = y x=y Dodela vrednosti levom

    operandu

    x += y x=x+y sabiranje

    x -= y x=x-y oduzimanje

    x *= y x=x*y mnoenje x /= y x=x/y deljenje

    x %= y x=x%y moduo

    a .= b a = a . b nadovezivanje

  • Operator dodele Osnovni operator dodele (=) ita se kao dobija vrednost Na primer: $ukupno = 3; //ukupno dobija vrednost 3 Za sve operatore dodele vai sledee pravilo: vrednost celog iskaza dodele je vrednost koja je

    dodeljena operandu na levoj strani. Na primer: $b = 6 + ($a = 5); //b dobija vrednost 11 Zagrade se upotrebljavaju da se povea prioritet izrauvanja podizraza. Princip je isti kao u matematici!!!

  • Operatori

    inkrementiranja/dekrementiranja Operator Ime Opis

    ++x Pre-inkrement Poveenje x-a za jedan, pa tek onda vraanje vrednosti x

    x++ Post-inkrement Vraanje vrednosti x, pa onda poveanje x-a za jedan

    --x Pre-dekrement Smanjenje vrednosti za x, pa tek onda vraanje vrednosti za x

    x-- Post-dekrement Vraanje vrednosti za x, pa tek onda poveanje vrednosti x-a

  • Operatori ++ i -- Prefiksno uveanje ++ i umanjenje -- Primer prefiksno uveanje $a = 4; echo ++$a; // rezultat je 5, a=5 Sufiksno uveanje ++ i umanjenje -- Primer sufiksno uveanje $a = 4; echo $a++; // rezultat je 4, a=5 Slino se ponaaju i operatori umanjenja

  • Reference Operator referenca &, ampersend se moe koristiti u

    kombinaciji sa operatorima dodele Primer: $a = 5;

    $b = $a;

    $a = 7; // b je i dalje 5

    - - - - - - - - - - - - - - - - - - - -

    $a = 5;

    $b = &$a;

    $a = 7; // i a i b su sada 7 Ponitavanje definicije jedne od promenljivih unset($b);

  • Operatori poreeja Operator Ime Opis Primer

    x==y jednakost True ako su jednaki == vraa false x===y identinost True ako su jednaki i

    ako su istog tipa === vraa false

    x!=y nejednakost True ako su razliiti != vraa true xy nejednakost True ako su razliiti 58 vraa true x!==y neidentinost True ako su razliiti ili

    ako nisu istog tipa !== vraa true

    x>y vee od True ako je x vee od y > vraa false x= vraa false

    x

  • Logiki operatori Operator Ime Opis Primer

    x and y And True ako su i x i y tani x or y Or True ako je barem jedan taan x xor y Xor True ako je samo jedan taan x && y And True ako su i x i y tani x || y Or True ako je barem jedan taan ! x Not True ako je x netaan

  • Funkcija var_dump Ova funkcija prikazuje strukturirane informacije o

    jednom ili vie izraza koje obuhvataju njegov tip i vrednost.

  • Operatori za nizove Operator Ime Opis

    x+y unija

    x==y jednakost

    x===y identinost x!=y nejednakost

    xy nejednakost

    x!==y neidentinost

  • Razlika izeu == i ===

  • Dodatni operatori Uslovni operator slino kao if-else) uslov ? uslov_true : uslov_false ($ocena > 5 ? polozio : pao); Operator zanemarivanja greke $a = @(27/0) Bez operatora @, izvrno okruenje bi generisalo upozorenje delite nulom Operator instanceof class nekaKlasa { }; nekiObjekat = new nekaKlasa(); if (nekiObjekat instanceof nekaKlasa) echo "nekiObjekat je primerak klase "nekaKlasa""

  • Funkcije za rad sa promenljivama string gettype(promenljiva) -utvruje tip promenljive int settype(promenljiva,tip) -menja tip promenljive boolean isset(promenljiva) - true ako je promenljiva

    definisana void unset(promenljiva) - ponitava definiciju promenljive boolean empty(var) -ispituje da li postoji promenljiva i da li ima vrednost koja nije nula is_array is_double, is_float, is_real is_long, is_int, is_integer is_string is_object is_null() is_scalar() is_numeric()

  • Uslovni iskazi - if Ako je trenutno vreme manje od , ispisae se "elim ti lep dan!";

  • Blok naredbi esto unutar jednog uslovnog iskaza, npr if, treba da

    se izvri vie iskaza: if(ocena > 5)

    {

    echo ; echo Polozili ste ispit!; echo ; }

  • If...else

  • If...else if...else
  • Switch Naredba break slui da ne doe do automatskog skoka u sledei case.

  • Petlje while prolazak kroz blok koda dok je odreeni uslov

    zadovoljen do...while prolazak barem jednom kroz blok, a onda ponavljanje dok je uslov zadovoljen for prolazak kroz blok zadati broj puta foreach prolazak kroz blok za svaki element niza

  • While petlja

  • Do...while petlja

  • For petlja

  • Foreach petlja

  • Nizovi Niz (engl. array) je promenljiva odreenog imena

    koja sadri skup vrednosti u nekom redosledu Vrednosti smetene u nizu nazivaju se elementi Jedan niz moe imati vie elemenata, a svaki element po jednu vrednost (tekst, broj, drugi niz)

  • Nizovi Niz sadri vie promenljivih u jednoj koja je ime niza Kreira se naredbom array();
  • Tipovi nizova Indeksirani nizovi Nizovi sa numerikim indeksima Asocijativni nizovi Nizovi sa imenovanim kljuevima kao indeksima Viedimenzionalni nizovi Nizovi sastavljeni od vie nizova

  • Prebrojavanje elemenata u nizu Funkcija count() vraa ukupan broj elemenata u

    nizu koji joj je prosleen Funkcija sizeof() vraa ukupan broj elemenata u nizu koji joj je prosleen Funkcija array_count_values($niz) broji koliko jedinstvenih vrednosti ima u nizu; funkcija vraa asocijativni niz koji sadri tabelu uestanosti klju je element niza, vrednost je broj ponavljanja)

  • Indeksirani nizovi P(P: indeksi uvek poinju sa nulom Inicijalizovanje: niz se pravi jezikom konstukcijom array $lekovi=array(Andol, Brufen, VitaminC); kopiranje jednog niza u drugi pomou operatora = funkcija range automatski pravi niz rastuih brojeva $brojevi = range(1,10);

    $neparni = range(1,10,2); //2 je korak za koji se

    poveava $slova = range (a, z);

  • Indeksirani nizovi count funkcija Automatska dodela vrednosti lanovima niza: $cars=array("Volvo","BMW","Toyota"); Pojedinana dodela: $cars[0]="Volvo";

    $cars[1]="BMW"; $cars[2]="Toyota"; Broj elemenata u nizu moe se dohvatiti naredbom count:

  • Pristupaje sadraju iza Sadraju niza se pristupa pomou imena promenljive i

    indeksa kljua, koji se navodi u uglastim zagradama Primer: $cars[0], $cars[1], $cars[2] Isti sistem numerisanja kao u programskim jezicima C,

    C++, Java, indeks prvog lana u nizu je nula!) Sadraj elementa niza menja se pomou operatora = $cars[0]=Ferari; Moe se dodati i novi element $cars[3]=Peo;

  • Prolazak kroz indeksirani niz

  • Asocijativni nizovi Asocijativni nizovi su odreeni parovima

    klju=>vrednost $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); $age['Peter']="35"; $age['Ben']="37"; $age['Joe']="43";

  • Prolazak kroz asocijativni niz

  • Funkcija each() Kada indeksi niza nisu brojevi, umesto for petlje koristi se petlja foreach i funkcije list() i each() Funkcija each() ita tekui element niza i pomera interni pokaziva na naredni element Funkcija each() redom vraa svaki element u nizu i zaustavlja se kada doe do kraja niza Primer:

    while ( $element = each ( $cars )) {

    echo $element [ key ]; echo - ; echo $element [ value ]; echo ; }

  • Funkcija list() Funkcija list() se upotrebljava da biste niz razdvojili na pojedinane vrednosti list($ime, $godina)=each($age); Funkcija each() iz niza $age izdvaja tekui element i interni pokaziva pomera na naredni element Funkcija list() pretvara elemente 0 i 1 iz niza koji je vratila funkcija each() u dve nove promenljive - $ime i $godina Ceo niz $age se moe obraditi u petlji:

    reset($age);

    while (list($ime, $godina) = each($age))

    echo $ime - $godina ;

  • Funkcije za sortiranje niza sort() sortira niz u rastuem poretku rsort() sortira niz u opadajuem poretku asort() sortira asocijativni niz u rastuem poretku po

    vrednostima ksort() - sortira asocijativni niz u rastuem poretku po kljuevima arsort() - sortira asocijativni niz u opadajuem poretku po vrednostima krsort() - sortira asocijativni niz u opadajuem poretku po kljuevima

  • Sortiraje iza u rastue poretku sort()

    Rastui alfabetski poredak: Rastui numeriki poredak:

  • Sortiraje iza u opadajue poretku sort(), rsort()

    Opadajui alfabetski poredak: Opadajui numeriki poredak:

  • Sortiranje asocijativnog niza u

    rastue poretku asort, ksort Sortiranje asocijativnog niza po vrednostima (asort): Sortiranje asocijativnog niza po kljuevima krsort:

  • Sortiranje asocijativnog niza u

    opadajue poretku arsort, krsort()

    Sortiranje asocijativnog niza po vrednostima u opadajuem poretku: Sortiranje asocijativnog niza po kljuevima u opadajuem poretku:

  • Promena redosleda elemenata niza Funkcija shuffle() nasumino menja redosled

    elemenata u nizu Funkcija array_reverse()pravi kopiju niza sa elementima u obrnutom redosledu Funkcija array_push()dodaje po jedan novi element na kraj niza Funkcija array_pop()uklanja poslednji element niza i vraa ga pozivajuem kodu

  • Primeri $brojevi = array ();

    for ($i=10; $i>0; $i--)

    array_push ($brojevi, $i);

    $brojevi = range(1,10);

    $brojevi = array_reverse($brojevi);

  • Navigacija unutar niza Kada napravimo novi niz, pokaziva upuuje na prvi

    element niza Rezultat current($niz) je prvi element Funkcije each i next pomeraju pokaziva Rezultat each($niz) je tekui element pre nego to se pokaziva pomeri Funkcija next($niz) prvo pomera pokaziva unapred, a zatim vraa nov tekui element Funkcija reset($niz) vraa pokaziva na prvi element u nizu Funkcija end($niz) pomera pokaziva na kraj niza Funkcija prev($niz) pomera pokaziva unatrag za jedno mesto, a zatim vraa nov tekui element

  • Zadatak Napraviti niz od 7 boja. Potrebno je da se u zavisnosti

    od rednog broja dana u nedelji menja boja pozadine.

  • Reeje

    Pozadinska boja

  • Znakovni nizovi skraivaje znakovnih vrednosti

    Funkcija trim() brie beline s poetka i kraja znakovnog podatka. Po definiciji brie znakove za povratak na poetak reda \r) i za prelazak u novi red (\n), horizontalne i vertikalne tabulatore (\t, \x0B), znakove za kraj znakovne vrednosti (\0) i razmake. Ovoj funkciji moete da prosledite i parametar koji sadri eksplicitno zadat spisak znakova koje treba ukloniti umesto ovih navedenih

  • Formatiranje znakovnih vrednosti u

    pogodan oblik za prikazivanje Funkcija n12br() prihvata znakovnu vrednost kao ulazni parametar i sve znake za prelazak u novi red u njoj zamenjuje XHTML oznakama ili HTML oznakom (ovo se koristi za formatiranje teksta) Funkcija printf() prosleuje formatiranu znakovnu vrednost itau Weba, a funkcija sprintf() vraa formatiranu znakovnu vrednost

    printf (Ukupno prodato: %.2f dinara, $ukupno);

  • Pretvaranje malih i velikih slova Upotreba Opis Vrednost

    $ime Programiranje na Vebu

    strtoupper($ime) sva slova menja u velika PROGRAMIRANJE NA VEBU

    strtolower($ime) sva slova menja u mala programiranje na vebu

    ucfirst($ime) menja u veliko slovo prvi znak ulaznog argumenta, ako je alfabetski

    Programiranje na Vebu

    ucwords($ime) menja u veliko slovo prvi znak svake rei koja poinje alfabetskim znakom

    Programiranje Na Vebu

  • Spajanje i razdvajanje znakovnih

    vrednosti Funkcija explode(string granicnik, string text) deli znakovnu vrednost text na mestima gde naie na znakovnu vrednost - graninik. Funkcija vraa niz.

    $email_array = explode (@, $email); $email_array[0]=caric.marko

    $email_array[1]=viser.edu.rs Suprotne ovoj funkciji su implode() i join()

  • Funkcije Implode i Join

    Izlaz: Hello World! Beautiful Day!

  • Poreeje zakovih vredosti int strcmp(string str1, string str2) Funkcija poredi dve znakovne vrednosti str1 i str2 i ako su

    jednake funkcija vraa . Ukoliko po abecednom redosledu vrednost str dolazi iza str, funkcija vraa broj vei od nule, u suprotnom vraa broj manji od nule. int strcasecmp(string str1, string str2)

    )sta kao prethodna, samo ne pravi razliku izmeu malih i velikih slova. Duina znakovne vrednosti ukupan broj znakova moete utvrditi pomou funkcije strlen()

    strlen(hello) je 5

  • Funkcije Funkcija je samostalan modul koji propisuje nain

    pozivanja funkcije, obavlja zadatak i eventualno vraa rezultat. Pozivanje funkcija moja_funkcija(); Pozivanje nedefinisanih funkcija => greka! Nema razlike izmeu malih i velikih slova kod funkcija u PHP (Funk, FUNK, funk... je ista funkcija)

  • Osnovna struktura funkcije Deklaracija poinje sa function, iza koje slede ime

    funkcije i parametri, a zatim i kod koji se izvrava kada je funkcija pozvana Imena funkcija:

    Nova funkcija ne sme da ima isto ime kao neka postojea )me funkcije moe da bude sastavljeno od slova, cifara i donje crte _ )me funkcije ne moe poinjati cifrom P(P ne dozvoljava preklapanje ugraenih funkcija!! Moe da postoji jedan ili vie parametara, ali ne moraju svi biti obavezni

  • Primer U PHP-u postoji preko ugraenih funkcija Takoe, mogue je kreirati svoje funkcije:

  • Prenos parametara po vrednosti engl. pass by value kada funkciji prosledite vrednost parametra,

    unutar funkcije se pravi nova promenljiva koja sadri prosleenu vrednost - kopija originala moe slobodno da se menja, dok izvorna promenljiva ostaje nepromenjena

  • Prosleivaje paraetara po vrednosti

  • Primer funkcije sa dva parametra

  • Prenos parametara po referenci engl. pass by reference kada se parametar prosledi funkciji, ona ne pravi novu promenljivu ve preuzima referencu na originalnu promenljivu referenca se ponaa kao promenljiva, upuuje na original i nema

    sopstvenu vrednost (svaka izmena reference se odnosi i na original) obratiti panju da drugi argument funkcije ima podrazumevanu vrednost, pa se funkcija moe pozvati bez njega.

    function inkrement(&$vr, $ink=1) {

    $vr = $vr + $ink;

    }

    $a=10; echo $a .; inkrement($a); echo $a;

  • Funkcije sa istim imenom U jeziku P(P nije mogue dve funkcije nazvati istim

    imenom iako mogu imati razliit broj ili tip argumenata. function writeName() {

    echo "Marko Cari"; } function writeName1($fname) {

    echo $fname . " Cari."; }

  • Povratna vrednost funkcije - return Izvrenje funkcije se prekida naredbom return

  • Rekurzija Rekurzivne funkcije - one koje pozivaju samu sebe Prednosti: krai kod, elegantnije reenje Nedostaci: optereenje memorije

    function obrnuto_r($str)

    {

    if (strlen($str)>0)

    obrnuto_r(substr($str, 1));

    echo substr($str, 0, 1);

    return;

    }

  • Primer funkcije pravljenje tabele function napravi_tabelu($nesto)

    {

    echo '';

    reset($nesto); // Pokazivac na pocetak niza

    $vrednost = current($nesto);

    while ($vrednost) {

    echo "$vrednost\n";

    $vrednost = next($nesto);

    }

    echo '';

    }

    $moj_niz = array('Prvo polje.','Drugo polje.','Trece polje.');

    napravi_tabelu($moj_niz);

  • HTTP Zahtev i Odgovor (HTTP

    Request/Response) - osnove ivotni ciklus za HTTP zahtev/odgovor) Anatomija HTTP zahteva i odgovora (TTP metodi i njihovo korienje

  • ivoti iklus HTTP zahteva i odgovora

    Korisnik poseuje URL sajta Zatim kreira zahtev koji se prosleuje web serveru putem HTTP protokola Web server vraa odgovor u obliku web stranice putem HTTP protokola

  • ivoti iklus HTTP zahteva i odgovora

    Svaki put kada se klikne na neki link i poseti neka veb stranica, iza scene se odvija prethodna ema. (TTP zahtev se moe inicirati ne samo preko veb itaa. Moe biti realizovan preko TELNET protokola ili preko klijenta pisanog u programskom jeziku recimo Java ili C#.

  • Anatomija metoda HTTP zahteva Neophodno je veb serveru proslediti informaciju o

    izboru metoda kojim se odreuje vrsta zahteva od strane klijenta. Metoda pri (TTP zahtevu sadri sledee opcije: Method = "OPTIONS" | "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "TRACE" | "CONNECT" | extension-method extension-method = token

  • OPTIONS Opcija OPT)ONS ukazuje koja (TTP metoda je

    dostupna klijentu. U zavisnosti od toga kako je veb server konfigurisan, klijentu su najee dostupne samo metode POST i GET.

  • GET zahtev GET zahtev vraa podatke od veb servera

    specificirajui parametre putem URL-a. Na primer, u sledeem (TTP zahtevu, trai se stranica index.html pri emu je specificiran parametar report_id:

    GET /index.html?report_id=34543222 HTTP/1.1

    Host: www.awebsite.com

    User-Agent: Safari/4.0

  • Kada koristiti GET metodu U sluaju da je potrebno videti podatke bez njihovog

    auriranja promene. Ovo u izvesnom smislu odgovara SQL SELECT upitu pri obraanju bazi podataka. U sluaju da zahtev stranica treba da bude upamen i ponovljen (bookmarkable URL) U sluaju da je nebitno ako je zahtev vie puta ponovljen (recimo u vidu posete nekoj stranici)

  • Kada ne koristiti GET metodu Kada se koristi metoda get, podaci preuzeti iz forme,

    vidljivi su u URL putanji. Ne bi se trebao koristiti kada se prenosi lozinka ili osetljiva informacija Prilikom slanja velike koliine podataka. Metoda get nije pogodna za veoma velike vrednosti promenljivih (preko 2000 karaktera) Kada je potrebno neto aurirati na serveru Samo ime metode upuuje da se radi o preuzimanju dovlaenju podataka

  • POST zahtev Koristi telo poruke za prenos podataka do veb servera,

    to pokazuje sledei primer slanja podataka ka veb stranici login.jsp:

    POST /login.jsp HTTP/1.1

    Host: www.awebsite.com

    User-Agent: Safari/4.0

    Content-Length: 27

    Content-Type: application/x-www-form-urlencoded userid=mo&password=mypassw

  • Kada koristiti post metodu Prilikom slanja velike koliine podataka Prilikom slanja osetljivih podataka kao to su

    korisnika imena, lozinke, sigurnosni brojevi itd. Pri potrebe za promenom podataka na veb serveru Samo ime metode upuuje na postavljanje slanje podataka

  • Kada ne koristiti post metodu U sluaju da zahtev stranica treba da bude upamen i

    ponovljen (bookmarkable URL) Kada e zahtevi vratiti isti rezultat prilikom viestrukog slanja idempotent request

  • PUT zahtev PUT je slian POST zahtevu poto za prenos podataka koristi

    telo poruke Koristi se kada je recimo potrebno napraviti novog korisnika pri emu e efekat viestrukog zahteva biti isti kako i onog prvog (idempotentnost) ekvivalentno REPLACE u SQL-u

    PUT /somedatabase/some_doc_id HTTP/1.1

    Content-Length: 240

    Content-Type: application/json

    {

    "Subject":"Resume", "Author":"Mo", "Body":"Find my resume attached

    }

  • HEAD zahtev Koristi se za vraanje informacije o URL-u veb servera i

    vraa isti odgovor kao i POST metoda ali bez tela. HEAD /de HTTP/1.1[CRLF]

    Host: www.google.com[CRLF]

    Connection: close[CRLF]

    User-Agent: Web-sniffer/1.0.37 [CRLF]

    Accept-Encoding: gzip[CRLF]

    Accept-Charset: ISO-8859-1,UTF-8;q=0.7,*;q=0.7[CRLF]

    Cache-Control: no-cache[CRLF]

    Accept-Language: de,en;q=0.7,en-us;q=0.3[CRLF]

    Referer: http://web-sniffer.net/[CRLF]

  • DELETE zahtev Koristi se za brisajne podataka resursa na serveru

    kada je na serveru omoguena realizacija DELETE Ovo se takoe moe postii i POST zahtevom

  • TRACE zahtev Koristi se za vraanje sadraja (TTP zahteva upuenog ka veb serveru, to se moe iskoristiti za otklanjanje greaka. Meutim, to moe otvoriti sigurnosni propust TRACE / HTTP/1.1 Host: www.google.com HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 Date: Tue, 31 Oct 2012 03:01:44 GMT Connection: close Content-Type: message/http Content-Length: 39 TRACE / HTTP/1.1 Host: www.google.com

  • CONNECT zahtev Koristi se uspostavljanje mrene konekcije ka veb serveru preko

    HTTP protokola. Najee se koristi za uspostavu sigurne ifrovane (TTP konekcije tunela izmeu klijenta i veb servera - na primer SSL konekcije. Obian (TTP je neifrovan protokol, dok tunel podrazumeva korienje (TTP CONNECT metode odnosno HTTPS protokola.

    CONNECT remote-server:443 HTTP/1.0 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0;.. Host: remote-server Content-Length: 0 Proxy-Connection: Keep-Alive Pragma: no-cach

  • Forme $_POST i $_GET promenljive se koriste za preuzimanje korisnikog unosa iz forme Svaki element iz forme je automatski vidljiv za PHP

    Ime: Godina:

  • Prihvatanje elemenata iz forme Pri kliku na dugme submit podaci iz forme se alju

    stanici welcome.php Dobro doli ! Imate godina.

  • Validacija unosa Validaciju je poeljno obaviti na klijentskoj strani

    (JavaScript) Validacija je potrebna i na serverskoj strani, pogotovo ako se podaci upisuju u bazu podataka. Dobra navika je da serverska validacija ne podrazumeva preusmeravanje na drugu stranicu, ve ostajanje na istoj stranici gde se nalazi i forma.

  • $_GET promenljiva $_GET promenljiva se koristi za uzimanje podataka iz

    forme kada se koristi metod get method=get Ime: Godina: Dobro doli . Imate godina!

  • $_POST promenljiva $_POST promenljiva se koristi za uzimanje podataka iz

    forme kada se koristi metod post method=post Podaci uzeti iz forme nevidljivi su za ostale korisnike Nije mogue upamtiti stranicu bookmark Dozvoljena veliina podataka za prenos post metodom je mb; dodatno, to se moe promeniti podeavanjem promenljive post_max_size u konfiguracijskoj php.ini datoteci

  • $_POST promenljiva

    Ime: Godina: Dobro doli ! Imate godina.

  • $_REQUEST promenljiva $_REQUEST promenljiva slui kao zamena

    promenljivama $_POST, $_GET, $_COOKIE Moe preuzeti podatke kada se koristi bilo koja metoda (post ili get)

  • Zadatak Napraviti formular za registrovanje korisnika na

    studentskom forumu koji e sadrati polja za ime, telefon, e-mail adresu i potvrdu e-mail adrese. Kada korisnik unese mail koji nije u formatu: ime@domen treba da se ispie poruka da je pogrean unos maila. Ako korisnik ne unese potvrdu maila treba da se ispie da je pogreno potvren mail. Kada korisnik potvrdi mail, ispisuje se poruka da e ifra korisniku ime na mail ime@domen.

  • Reeje
  • Reeje if (strlen($email_niz[1])==0) echo 'Niste lepo uneli e-mail adresu!!!

    Pokusajte ponovo.';

    else if ($uporedi!=0)

    echo 'Niste potvrdili mail adresu, pokusajte ponovo registraciju.';

    else

    echo 'Uspesna registracija naloga: '.$email_niz[0].' Sifra za forum ce uskoro stici na vas mail: '.$email2;

    ?>