PHP Tutorial

Teme vezane za profesionalni razvoj web stranica.
13 post(ov)a • Stranica: 1/2.1, 2

PHP Tutorial

PostPostao/la HepeK » 27 vel 2012, 20:05

Pozdrav čitaoci.

Ovo će biti tutorial sa kojim ćemo proći osnove PHP-a, jezika koji je nastao iz sintaxe C jezika.

Dakle, PHP je server-side programski jezik za generiranje HTML koda. Jedostavnije rečeno PHP kod se izvršava na serverskoj strani prije nego li se stranica prikaže korisniku tj. korisnik ono što se izgenerira vidi kao html kod..

U ovom tutorialu predpostavićemo da poznajete HTML+CSS.

Da bi počeli sa tutorialom potrebne su nam neke pripreme:

-Nemamo server zbog toga ćemo koristiti software koji simulira server na vašem PC. Ja predlažem a i sam koristim .
Prilikom instalacije proći ćete par koraka od kojih je između ostalog i unos passworda za MySQL server koji će nam biti potreban nešto kasnije u tutorialu.

Sada je potrebno da pokrenete server koji ste instalirali tako što odete na lokaciju gdje je instaliran XAMPP (po defaultu C::\xampp\ ) i pokrenete xampp_control.exe i startujete Appache i MySql server na vasem PC-u (localhost)

slika

-Sada nam je potreban neki editor, može i običan notepad ali ja preporučujem prije svega što je besplatan a i userfriendly je a od editora koji se plaćaju preporučujem phpDesigner.

Nakon što smo sve pripremili preći ćemo na prve programerske korake u php-u:

Kreiramo folder u C:\xampp\htdocs\ koji ćemo nazvati "tutorial" a kao korisnik interneta mu pristupamo preko lokacije u browseru - Dakle u njega ćemo snimati sve naše .php fajlove.

Pa predjimo na prvi php fajl koji ćemo nazvati index.php (index.php je inače fajl koji ima prioritet i po defaultu se otvara prilikom otvaranja lokacije što je isto kao i ).

Otvorimo notepad++ i po defaultu je otvoren novi tab za pisanje koda i odmah ćemo takav prazan fajl snimiti kao index.php da bi notepad++ prepoznao da se radi o php fajlu i pomogao nam u pisanju koda prepoznavajući ključne riječi.

slika

Nakon snimanja ostajemo u notepad++ i pišemo prvi kod:

Kod: Označi sve

<?php
echo 
"Ovo je moj prvi kod";
?>


Nakon snimanja i otvaranje lokacije u browseru pijaviće se sledeći ispis:

slika

Sada objašnjenje koda:

Primijetili ste da se php kod navodi izmedju <?php i ?> oznaka, to daje znak serveru da se izmadju tih tagova nalazi php kod tako da možete kombinirati html i php kod bez problema.

Php u svojoj izvornoj biblioteci posjeduje veliki broj "ugrađenih" funkcija među kojima je i echo funkcija koja vrši ispis texta (formatiranog ili ne).

Kroz tutorial ćemo se sretati sa mnogo funkcija koje ćemo postepeno objašnjavati.

Funkcija echo se može zapisivati na dva načina a rezultat je isti:

Kod: Označi sve

<?php
echo 
"Ovo je moj prvi kod";
echo ("Ovo je moj prvi kod");
?>


Treba napomenuti da server čita kod liniju po liniju od početka do kraja i tako je izvršava. OBAVEZNO na kraju svake naredbe stavlja se tačka-zarez ";".

Za sada toliko...
"Ko nema u glavi ima na internetu"
Što čujem - poštujem, dok ne vidim - ne vjerujem.

Re: PHP Tutorial

PostPostao/la HepeK » 28 vel 2012, 20:56

VARIJABLE

U ovom dijelu tutoriala bavićemo se varijablama.

Varijabla (ili promjenljiva) (engl. variable) je jedinica date ili informacije u računarskom programu koja može promijeniti vrijednost u toku izvršavanja programa. Dosta komplicirana definicija ali jedino što trebate znati jeste da u varijablu u php-u smještate podatke (infomacije).

U php-u varijable definišete na sledeći način:

php code
<?php
$a = 5;
$b = 2.5;
$c = "String između dvostrukih navodnika";
$d = 'String između jednostrukih navodnika';
?>


Vidimo da deklarisanje varijabli počinje sa oznakom $ (dollar) i ono što treba napomenuti jeste da prvi karakter u imenu varijable treba biti "_" donja crta ili slovo a poslije nije bitno. A vrijednost deklarisanoj varijabli dodjeljujemo preko operatora "=". Varijabli možemo dodijeliti brojčane vrijednosti (int ili float - cjelobrojne ili decimalne) kao i stringovne (rečenice) tako što pri dodjeli (rečenice) navedemo između para jednostrukih ili dvostrukih navodnika.

php code
<?php
$_varijabla = 5; //ovo je ispravno deklarisanje i dodjela vrijednosti
$varijabla = 5; //ovo je ispravno deklarisanje i dodjela vrijednosti
$1varijabla = 5 //ovo nije ispravno deklarisanje i dodjela vrijednosti (NE SMIJE biti broj prvi karakter...)

/*
$_varijabla = 5; //ovo je ispravno deklarisanje i dodjela vrijednosti
$varijabla = 5; //ovo je ispravno deklarisanje i dodjela vrijednosti
$1varijabla = 5 //ovo nije ispravno deklarisanje i dodjela vrijednosti (NE SMIJE biti broj prvi karakter...)
*/
?>


Primjećujete nešto novo u kodu? Da, to je "//" i koriste se za komentiranje koda i kada server interpretira kod nailaskom na takvu oznaku jednostavno preskače dalji nastavak linije i prelazi na sledeću (što je na prethodnom kodu označeno sivom bojom) a za komentarisanje bloka koda koriste se "/*" i "*/" kao na prethodnom primjeru.

Nakon dodjele vrijednosti varijablama sa njima možemo izvršiti 4 matematičke operacije (+,-,*,/) kao i logičke operacije koje ćemo objasniti nešto kasnije..

Sada da odradimo nešto složeniji kod i prođemo sve kroz primjere:


php code
<?php
$a = 5;
$b = 6;
$c = $a+$b;
$d = $b-$a;
$e = $a*$b;
$f = $a/$b;

echo $a.'+'.$b.'='.$c.'<br/>'; //ovo je formatiran ispis a+b=c a <br/> označava novi red.
echo $b.'-'.$a.'='.$d.'<br/>';
echo $a.'*'.$b.'='.$e.'<br/>';
echo $a.'/'.$b.'='.$f.'<br/>';

$string1 = "Ovo je prvi string";
$string2 = "Ovo je drugi string";

echo $string1.' '.$string2.'<br/>'; //sastavljanje stringova u echo funkciji (ubacivanje razmaka između stringova)

$nastavljeni_string = $string1.$string2; //sastavljanje stringova i dodjeljivanje novoj varijabli

echo $nastavljeni_string.' Jos neki string'; //ponovno sastavljanje stringova u echo funkciji
?>


U prethodnom kodu deklarisali smo dvije varijable $a i $b i dodijelili im vrijednosti 5 i 6 respektivno. Zatim smo deklarisali varijablu $c i ujedno joj dodijelili vrijednst zbira varijabli $a i $b...

Primjetili ste da varijable u echo funkciji spajamo operatorom "tačka" ali to nije samo slučaj kod echo funkcije već se tako spajaju stringovi i prilikom dodjele drugoj varijabli.

Da bi shvatili o čemu pričam morate pokrenuti XAMPP kao na početku tutoriala u prvom postu te otvoriti index.php sa notepad++ koji smo isto tako kreirali na početku tutoriala i ubaciti u njega prethodni dio koda.

Sada uputite vaš browser na sledeću lokaciju i ako ste sve odradili kako treba trebali bi imati sledeći ispis:

slika,

To Be Continued...
"Ko nema u glavi ima na internetu"
Što čujem - poštujem, dok ne vidim - ne vjerujem.

Re: PHP Tutorial

PostPostao/la HepeK » 29 vel 2012, 18:18

KONTROLA TOKA

Nakon što smo obradili oblast vezanu za varijable postavlja se pitanje šta kada je potrebno određivati kada se šta izvršava ili da li će se uopšte izvršiti određeni dio (blok) koda skripte te šta uraditi kada je potrebno ponoviti određeni blok koda skripte više puta.

Prvo ćemo obraditi kontrolu toka pomoću if (ako) strukture, odnosno osnovne strukture u php-u za odlučivanje.

Struktura if-a izgleda ovako:

Kod: Označi sve
if(ISKAZ)
{
   BLOK KODA
}


Ovdje ISKAZ igra veliku ulogu tj. ISKAZ odlučuje da li će se izvršiti dio koda unutar para vitičastih zagrada. ISKAZ može biti jedna varijabla ili složeni iskaz poređenja.

Laički rečeno kada server naiđe na if prvo se provjerava iskaz i ako je iskaz TAČAN (true) izvršava se dio koda unutar tijela if-a (unutar para vitičastih zagrada) a ako iskaz nije tačan (FALSE) onda se preksače taj dio koda i nastavlja se kod odmah iza tijela if-a.

Ako je ISKAZ jedna varijabla koja ima ne nultu vrijednost uvijek će se izvršiti dio koda unutar tijela if-a tj sve vrijednosti koje nisu NULL ili 0 (nula) unutar iskaza if-a se tretiraju kao ISTINA.

Treba da obradimo logičke operatore da bi prešli na primjer gdje će te vidjeti na primjeru kako radi if.

== - operator jednakosti
=== - operator "identično"
!= - nije jednako
< - manje
> - veće
<= - manje ili jednako
>= - veće ili jednako

Primjena:

php code
<?php
$a == $b
$a != $b
//..itd
?>


Rezultat upotrebe prethodnih operatora je tačno ili netačno.

Sada je red da se vratimo na IF i kroz primjer shvatimo princim rada...

Otvorimo index.php koji smo kroz prethodne dijelove tutoriala uređivali i otkucajte sledeći kod:

php code
<?php
$a = 5;
$b= 6;
$c =0;
echo "Ovo je demonstracija izvršavanja koda prije if-a <br/>";

if($a<$b)
{
echo "Ovo je demontracija izvršavanja koda iz tijela if-a <br/>";
}

if($a == $b)
{
echo "Ovo se nece izvrsiti jer a nije jednako b <br/>";
}
if($c)
{
echo "Ovo se nece izvrsiti jer c ima vrijednost NULA <br/>";
}
if($a)
{
echo "Ovo se izvršava jer a ima ne nultu vrijednost! <br/>";
}

if($a < $b AND $b>$c)
{
echo "Ovo se izvrsava jer je slozeni iskaz unutar if-a tacan <br/>";
}

if($a < $b OR $b == $a)
{
echo "Ovo se izvrsava jer je slozeni iskaz unutar if-a tačan (tacno ili jedno ili drugo) <br/>";
}
echo "Ovo je demonstracija koda poslije if-a <br/>";
?>


Prethodnim primjerom pokupili smo većinu stvari što se tiče if-a. (Zašto se koji dio koda izvršava ili ne izvršava objašnjeno je unutar echo funkcija.

Sada uputite vaš browser na sledeću lokaciju i ispis je sledeći:

slika

Ako nam je potrebno da se bira između dva blok koda (pitanje koji će se kod izvršiti) u tu svrhu upotrebljavamo strukturu za upravljanjem toka "IF - ELSE" (ako-onda)

Kod: Označi sve
if(ISKAZ)
{
  BLOK KODA IF-a
}
else
{
  BLOK KODA ELSE-a
{


Laički rečeno IF-ELSE radi tako što ako je tačan ISKAZ unutar if-a onda se izvršava kod unutar tijela ifa a ukoliko je ISKAZ ne tačan onda se izvršava dio koda koji se nalazi unutar tijela else-a.

Primjer:

php code
<?php
$a = 7;
$b =6;
if($a == $b)
{
echo "Dio koda koji se izvršava ako a nije jednako b";
}
else
{
echo "Dio koda koji se izvršava ako a nije jednako b";
}
?>


Pokrenemo li imamo ispis:

slika

SWITCH

Switch struktura se koristi za izbor odnosno na osnovu jedne varijable odredjuje se koji dio koda se izvršava..

Kod: Označi sve
SWITCH($varijabla)
{
     case opcija1:
           naredba1;
            ....
           naredban;
           break;
    case opcija2:
           naredba1;
            ....
           naredban;
           break;

      .....

     case opcijan:
           naredba1;
            ....
           naredban;
           break;

      default:
        naredba1;
        naredban;

}


Kod switch-a na osnovu $varijable odnosno na osnovu njene vrijednosti odredjuje se koji dio koda unutar switcha se izvrsava. Ako $varijabla ima vrijednost opcija1 onda se izvršava ono što se nalazi ispod case opcija1: sve do naredbe break kada se izlazi iz switcha i nastavlja dalje izvršavanje koda.

Primjer:

u index.php
php code
<?php

$a = 1;

switch($a)
{
case 1:
$c=6;
echo "Vrijednost varijable \$c je $c <br/>";
break;

case 2:
$c=7;
echo "Vrijednost varijable \$c je $c <br/>";
break;

default:
$c=8;
echo "Vrijednost varijable \$c je $c <br/>";
}

$a = 3;

switch($a)
{
case 1:
$c=6;
echo "Vrijednost varijable \$c je $c <br/>";
break;

case 2:
$c=7;
echo "Vrijednost varijable \$c je $c <br/>";
break;

default:
$c=8;
echo "Vrijednost varijable \$c je $c <br/>";
}
?>


Ispis je:

slika

Ukoliko $varijabla nema vrijednost kao u case-ovima onda se izvršava ako postoji default.

U nastavku ćemo obratiti još par struktura za kontrolu toka...
"Ko nema u glavi ima na internetu"
Što čujem - poštujem, dok ne vidim - ne vjerujem.

Re: PHP Tutorial

PostPostao/la HepeK » 02 ožu 2012, 20:05

Kako sam rekao nastavljamo dalje sa kontrolom toka programa. U ovom dijelu obraditi ćemo petlje.

Dakle više puta nam je potrebno da jedan odredjeni blok koda ponovimo više puta sa ili bez promjena. U tu svrhu koriste se tzv. petlje WHILE, DO-WHILE, FOR i FOREACH.

FOREACH cu vam ostati dužan dok ne steknete određeno znanje koje je preduslov za korištinje.

Posto sam zaboravio obraditi jos dva operatora a koja ćemo koristiti u objašnjenju petlji sada ćemo ih obraditi a to su operatori inkrementiranja i dekrementiranja (++ i -- respektivno)

Ako imamo sledeći kod:

php code
<?php
$i=1;
$j=2;

$i++; //inkrement (varijabla $i ima vrijednost 2 nakon inkrementiranja)
$j--; //dekrement (varijabla $j ima vrijednost 1 nakon dekrementiranja)

echo "Posle inkrementiranja varijabla ima i vrijednost $i a varijabla j ima vrijednost $j posle dekrementiranja <br/><br/>";
$k = ++$j + $i; //korištenje u složenijim izrazima
/*
Varijabla $j ima vrijednost 2, $i ima vrijednost 2 te je 2+2=4 i varijabla $k ima vrijednost 4
*/
echo "Nakon odrađenih operacija varijabla k ima vrijednost $k, varijabla j ima vrijednost $j a varijabla i ima vrijednost $j <br/><br/>";
$k = $j++ + $i;
/*
Varijabla $j prije inkermentiranja ima vrijednost 2 i $j ima vrijednost 2 te je vrijednost varijable $k sada ponovno 4 a onda se inkrementira vrijednost $j varijable i ona ima vrijednost 3
*/
echo "Nakon odrađenih operacija varijabla k ima vrijednost $k, varijabla j ima vrijednost $j a varijabla i ima vrijednost $j </br><br/>";
?>


Ipis:

slika

Sa ispisa vidimo da ++ uvećava vrijednost varijable za 1 a -- smanjuje za 1. Postoje dva načina upotrebe ovih operatora a to su primjena u postfixu i prefixu varijable tj --$varijabla i $varijabla--. Ako se primjene samostalno tj. bez da se koriste u složenim izrazima onda im je svrha ista ali ako se koriste u složenijim izrazima kao na primjeru iznad onda je krajnji rezultat nešto drugačiji.

Dakle na gornjem izrazu u prvom složenijem izrazu inkrement je primjenjen na varijablu $j u prefixu a server to interpretira na sledeći način: Prvo uveća varijablu $j za 1 a onda sabere sa varijablom $i te onda dodijeli varijabli $k.

U drugom složenijem izrazu inkrement je upotrijebljen u postifixu a server to interpretira ovako: Prvo sabere vrijednost varijabli $j i $i te onda tu sumu dodijeli varijabli $k a tek onda uveća vrijednost varijabli $j za 1.

Nadam se da sam bio dovoljno jasan.

Dakle, krećemo sa WHILE petljom.

Njena struktura izgleda ovako:

Kod: Označi sve
while(ISKAZ)
{
  BLOK KODA
}


Vidite da se kao i kod IF-a pojavljuje iskaz koji će odrediti koliko iteracija ce petlja imati, odnosno koliko će se puta izvršiti blok koda unutar tijela while petlje. ISKAZ baš kao kod if-a može biti jedna varijabla koja je ne nulta ili neki logički ili poredbeni iskaz i sve dok je iskaz tačan petlja while će se vrtiti.

Server interpretira while petlju na sledeći način: Nailaskom na ključnu riječ while server provjerava tačnost iskaza u while petlji i ako je iskaz tačan izvrši se blok koda unutar tijela while petlje (unutar para vitičastih zagrada), nakon izvršavanja bloka koda ponovo se provjerava tačnost iskaza i ako je on tačan opet se izvršava isti blok koda i sve se to ponavlja dok je iskaz tačan. Kada iskaz u jednom trenutku ne bude tačan završava se petlja i nastavlja se dalje izvršavati tok skripte.

Najbolje ćete skontati na primjeru:

php code
<?php
$i=1;
$j=10;

while($i<=$j)
{
echo "Iteracija broj".$i;
$i++;
}
?>


Sledeći primjer ima ispis:

slika

Objašnjenje: Početna vrijednost varijable $i je 1 a varijable $j je 10...nailaskom na while petlju provjerava se iskaz "Da li je $i manje ili jednako od $j - tj. Da li je 1 manje ili jednako od 10 - DA, MANJE JE" i to znači da je iskaz TAČAN te se izvršavaju naredbe unutar tijela if-a a u ovom slučaju je to prvo ispis a onda uvećanje varijable $j za 1. (i tako 10 puta se provjerava iskaz...)

DO-WHILE petlja se ne razlikuje puno od WHILE petlje osim po tome što će se naredbe iz tijela while petlje izvršiti barem jednom tj. tačnost iskaza DO-WHILE petlje se provjerava na kraju.

Struktura DO-WHILE petlje je:

Kod: Označi sve
do
{
   BLOK KODA
}
while(ISKAZ)


Interpretacija DO-WHILE petlje je sledeca: nailaskom na ključnu riječ do server prelazi na izvršenje bloka koda unutar tijela do-while petlje a zatim na kraju provjerava tačnost iskaza i ako je iskaz tačan ponovo se izvršava blok koda unutar tijela petlje.

Evo primjera:

php code
<?php

$i=1;
$j=10;

do
{
echo "Vrijednost varijable i je ".$i."<br/>";
$i++;
echo "Nakon inkrementa \$i=$i <br/>"; //kosa crta ispred $i sprečava da se ispise vrijednost varijable
}
while($i<=$j)

?>


Ispis je:

slika

Smatram da ako ste skontali WHILE petlju za ovu nije potrebno dodatno objašnjavanje...

FOR petlja

Klasična brojačka petlja u čijoj strukturi se navodi početna vrijednost brojača i njegovo inkrementiranje:

Kod: Označi sve
for(DODJELA VRIJEDNOSTI; ISKAZ; INKREMENTIRANJE/DEKREMENTIRANJE)
{
     BLOK KODA
}

Kod WHILE petlje smo morali inicijalizirati varijablu od koje je zavisio broj iteracija van tijela petlje a kod FOR petlje u samoj strukturi se inicijalizira takva varijabla a svakom iteracijom se inkrementira ili dekrementira...

Primjer:

php code
<?php
for($i=1;$i<=10;$i++)
{
echo "\$i ima vrijednost $i";
}
?>

Ispis je:

slika

Vidimo da se nailaskom na petlju varijabli $i dodijeli neka vrijednost, zatim se provjerava ISKAZ koji zavisi od $i i ako je ISKAZ tačan onda se izvršava blok koda unutar tijela for petlje a na kraju se inkrementira vrijednost $i varijable te se ponovno provjerava iskaz i tako redom...

To je bilo to o kontroli toka programa...
"Ko nema u glavi ima na internetu"
Što čujem - poštujem, dok ne vidim - ne vjerujem.

Re: PHP Tutorial

PostPostao/la HepeK » 11 ožu 2012, 21:00

Nakon obrade kontrole toka programa u ovom dijelu ćemo obraditi funkcije, njihovo deklarisanje i poziv.

Nekada je potrebno da neki proces bude obavljen vise puta na vise mjesta u kodu. Radi lakseg snalaženja, pojednostavljenja koda, fleksibilnosti čitave skripte koriste se funkcije koje su odovojeni dijelovi koda i kojima proslijedjujemo varijable na osnovu kojih funkcija vraća glavnoj skripti neki podatak a naravno funckija može samo da se izvrši bez da vrati neki podatak.

Funkcije pišemo na sledeći način:

php code
<?php
function imeFunkcije($parametar1,$parametar2,...,$parametarN)
{
//neke naredbe sa varijablama $parametar1,$parametar2,...,$parametarN

}

?>


Pri nailasku na ključnu riječ function server preskače taj dio dok negdje u kodu ta funkcija ne bude pozvana.

Dakle, funkcije pišemo počev od zaglavlja sa ključnom riječju function i navodjenjem imena funkcije zajedno sa parom malih zagrada izmedju kojih navodimo parametre (varijable) koje funkcija ocekuje kao ulaz a kojih moze biti koliko god hocemo. Ono što funkcija treba da odradi navodimo između para vitičastih zagrada.

Poziv funkcije negdje u kodu je vrlo lagan a ogleda se u tome sto navodimo ime funkcije i uz ime par malih zagrada izmedju kojih navodimo varijable koje prosljeđujemo funkciji.

Sve to shvatiti će te na primjeru. Počećemo sa laganim primjerom i napraviti ćemo funkciju koja može obavljati četri računske operacije.

U folderu tutorial pored index.php kreirati ćemo fajl funkcije.php u koji ćemo pisati funkcije koje koristimo kroz tutorial...

u funkcije.php napisati ćemo jednu funkciju koju ćemo nazvati operacije.

php code
<?php
function operacije($operacija,$a,$b)
{
if($operacija == 'sabiranje')
{
$c = $a + $b;
}

if($operacija == 'oduzimanje')
{
$c = $a - $b;
}

if($operacija == 'mnozenje')
{
$c = $a * $b;
}

if($operacija == 'dijeljenje')
{
$c = $a / $b;
}

return $c;

}

?>


A u index.php da bi demonstrirali rad funkcija napisati cemo sledeci kod:

php code
<?php
include('funkcije.php');

$d = 5;
$e = 3;

$f = operacije('sabiranje',$d,$e);

echo "Nakon poziva funkcije operacije('sabiranje',\$d,\$e); rezultat je $f <br/><br/>";

$f = operacije('oduzimanje',$d,$e);

echo "Nakon poziva funkcije operacije('oduzimanje',\$d,\$e); rezultat je $f <br/><br/>";

$f = operacije('mnozenje',$d,$e);

echo "Nakon poziva funkcije operacije('mnozenje',\$d,\$e); rezultat je $f <br/><br/>";

$f = operacije('dijeljenje',$d,$e);

echo "Nakon poziva funkcije operacije('dijeljenje',\$d,\$e); rezultat je $f <br/><br/>";
?>


U funkcije.php kreirali smo funkciju operacije koja očekuje za ulaz tri parametra. Parametar 1 (varijabla) kojeg smo nazvali $operacija odrediti će koja se operacija izvršava a ostala dva parametra su varijable nad kojima vršimo operacije.

Vidimo da je na kraju funkcije stvaljeno return $c, to znači da ono što se sračuna vraća na pozivajuće mjesto i dodjeljuje određenoj varijabli.

U index.php stavili smo include('funkcije.php') a to znači da se fajl pod imenom funkcije.php ubacuje u index.php odnosno sadržaj tog fajla se ubacuje u index.php. To je isto kao da smo na mjesto include.php napisali sve ono što se nalazi u funkcije.php

U index.php demonstriran je i poziv za različite parametre a ispis je:

slika

Kada bi zaboravili jedan parametar proslijediti funkciji pri pozivu javilo bi grešku da funkcija očekuje parametar više. A nekada je potrebno da jedna funkcija obavlja više zadataka sa više ili manje parametara zbog toga se parametrima koji mogu biti izostavljeni u zaglavlju dodjeljuje defaultna vrijednost.

Modifikovacemo funkciju operacije u kojoj je moguće pored parametra $operacije proslijediti samo jedan parametar sa kojim funckija operiše.

funkcije.php
php code
<?php
function operacije($operacija,$a,$b=2)
{
if($operacija == 'sabiranje')
{
$c = $a + $b;
}

if($operacija == 'oduzimanje')
{
$c = $a - $b;
}

if($operacija == 'mnozenje')
{
$c = $a * $b;
}

if($operacija == 'dijeljenje')
{
$c = $a / $b;
}

return $c;

}

?>


index.php

php code
<?php
include('funkcije.php');

$d = 5;
$e = 3;

$f = operacije('sabiranje',$d);

echo "Nakon poziva funkcije operacije('sabiranje',\$d,\$e); rezultat je $f <br/><br/>";

$f = operacije('oduzimanje',$d);

echo "Nakon poziva funkcije operacije('oduzimanje',\$d,\$e); rezultat je $f <br/><br/>";

$f = operacije('mnozenje',$d);

echo "Nakon poziva funkcije operacije('mnozenje',\$d,\$e); rezultat je $f <br/><br/>";

$f = operacije('dijeljenje',$d);

echo "Nakon poziva funkcije operacije('dijeljenje',\$d,\$e); rezultat je $f <br/><br/>";

$f = operacije('dijeljenje',$d);
?>


Dakle stavilimo smo defaultnu vrijednost za treći parametar 2 i prilikom poziva možemo taj treći parametar izostaviti ali umjesto tog trećeg parametra koristi se defaultna virjednost a ukoliko se treći parametar navede koristi se taj parametar koji smo proslijedili a ne defaultni.

Ispis je sledeći:

slika
"Ko nema u glavi ima na internetu"
Što čujem - poštujem, dok ne vidim - ne vjerujem.

Re: PHP Tutorial

PostPostao/la HepeK » 24 ožu 2012, 19:23

NIzovi i rad sa nizovima

Jedan od elemenata u php-u koji se skoro pa uvijek koristi u rješavanju problema jesu nizovi.

Da bi svima bilo jasno reći ću to da je neka "varijabla" u koju smještamo više drugih varijabli te nam je tako lakše organizovati podatke.

Sa nizovima se susrećemo u baratanju sa bazama podataka koje ćemo nešto kasnije obraditi.

Dakle zamislimo niz kao jednu varijablu u koju smještamo više drugih varijabli i organizujemo ih po nekom zakonu, da li to nekim riječima ili možda brojno.

Nizovi mogu biti jednodimenzionalni i višedimenzionalni i moraćemo odraditi i šetanje tim nizovima..

Deklarisanje neke varijable kao nizovne se radi na sledeći način:

php code
<?php
$var = array();
?>


Nakon ove linije koda varijabla $var je deklarisana kao niz i ukoliko joj na standardan način dodijelimo vrijednost onda se ona ponovno vraća u "običnu" varijablu.

Jednodimenzionalni nizovi

Npr. imamo niz brojeva 1 2 3 4 5 6 7 8 9 (1 je na poziciji jedan, 2 je na poziviji dva....9 je na poziciji devet)

Na isti način funkcionisu i jednodimenzionalni nizovi kod brojne indeksacije samo što je recimo kod niza 1 2 3 4 5 6 7 8 9 - 1 na nultoj poziciji, 2 na poziciji jedan...itd

Evo primjer:
u index.php u tutorial folderu cemo napisati sledeći kod
php code
<?php
$var = array(1,2,3,4,5,6,7,'string',9,10);

echo $var[0].'<br/>'; //ispis prvog clana u nizu (sa indeksom 0)
echo $var[5].'<br/>'; //ispis sestog clana u nizu (sa indeksom 5)
echo '---------------------------------------<br/>';
foreach($var as $varijabla) //petlja 1
{
echo $varijabla.'<br/>';
}
echo '---------------------------------------<br/>';
foreach($var as $kljuc => $varijabla) //petlja 2
{
echo 'Pozicija '.$kljuc.': Vrijednost je '.$varijabla.'<br/>';
}
echo '---------------------------------------<br/>';
$broj_clanova_u_nizu = count($var);
$var[4] = 'nova vrijednost';
echo "Broj clanova niza je $broj_clanova_u_nizu <br/>";
echo '---------------------------------------<br/>';
//koristenje for petlje

for($i=0; $i<$broj_clanova_u_nizu; $i++) //petlja 3
{
echo $var[$i].'<br/>';
}
?>


Pogledajte da smo u niz ubacili brojeve i jedan string, dakle nema ograničenja. Indeksiranje brojevima je jednostavno i vrlo lako možemo pristupiti svim članovima niza jednostavno navodeći njihovu poziciju u nizu >> $var[pozicijaUnizu] <<

Na početku primjera izvršili smo deklaraciju niza brojeva od 1 do 10 te ispisali neki od njih klasično navodeći njihovu poziciju u nizu.

Da bi ispisali sve članove niza iskoristićemo foreach petlju koju sam vam ostao dužan objasniti...

Dakle foreach petlja za ulaz očekuje niz i prolazi kroz niz tako što dodjeljuje vrijednost člana niza na odredjenoj poziciji nekoj novoj varijabli koju navedete kao što je to učinjeno u primjeru ($var as $varijabla) i u jednoj iteraciji petlje sa novom varijablom možete raditi što hoćete (u primjeru je ispisana).

Foreach petlja ima onoliko iteracija koliko niz ima članova.

Foreach petlju možete iskoristiti i na drugi način (u primjeru petlja 2) - navodeći i $kljuc koji je u našem primjeru zapravo pozicija člana u nizu. I u primjeru je iskoristeno za ispis.

Umjesto petlje možemo iskoristiti i for petlju tako što za graničnik brojača iskoristimo broj članova niza koji možemo saznati iskorištenjem funkcije COUNT koja vraća broj elemenata u nizu.

Naravno moguće je i mijenjati vrijednosti članova niza i vrši se dodjeljivanje kao i kod bilo koje druge varijable stim da se navodi indeks (broj pozicije u nizu).

Ispis prethodnog primjera je:

slika
"Ko nema u glavi ima na internetu"
Što čujem - poštujem, dok ne vidim - ne vjerujem.

Re: PHP Tutorial

PostPostao/la HepeK » 06 svi 2012, 17:40

GET METODA

Vjerovatno ste do sada vidjeli kod nekih sajtova kilometarski url sa puno nekih brojeva, teksta, oznaka itd...te oznake kriptovane ili ne su pdoaci koji se prenose iz jedne skripte u drugu.

Laički rečeno GET metoda se koristi kada želimo prenijeti neki podatak iz jednog php fajla u drugi. Lako je prenositi podatke kada se sve nalazi u jednom fajlu ali to znatno otežava rad i usporava izvršavanje skripte.

Prvo ćemo objasniti get metodu, a najjednostavnije je da to uradimo preko primjera:

- Iskoristićemo već postojeći index.php kod našeg tutoriala i napravićemo fajl skripta.php

U index.php će da bude sledeći kod:

php code
<?php

$varijabla = 5;
$a="neka varijabla";

echo "<a href='skripta.php?var=".$varijabla."&var2=".$a."'>Ovaj link vodi na fajl skripta.php</a>";
?>


U skripta.php pišemo sledeći kod:

php code
<?php

$varijabla = $_GET['var'];
$a = $_GET['var2'];

echo 'Ovo je prenesena varijabla $var = "'.$varijabla .'" u skripta.php<br/>';
echo 'Ovo je prenesena varijabla $a = "'.$a .'" u skripta.php';
?>


U index.php smo namjestili link koji vodi na skripta.php ali pritom nosi sa sobom dvije varijable koje smo deklarisali prije linka.

Taj link ima href: 'skripta.php?var=".$varijabla."&var2=".$a."' vidimo da otpočinje sa upitnikom "?" a više varijabli se odvaja sa ampersand "&".

Rezultantni link zajendo sa vrijednošću varijabli bi bio http://localhost/tutorial/skripta.php?var=5&var2=neka%20varijabla. Vidimo da su neki karakteri u ovom slučaju prazno mjesto prdstavljeni sa ASCII kodom.

U skripta.php napravićemo prihvat tih varijabli i ispisati ih. $_GET['var'] u našem slučaju sadrži prenesenu varijablu i dodijelićemo je nekoj novoj varijabli.

Ispis je sledeći:

index.php
slika

skripta.php
slika

Vidimo da direktnom promjenom u linku se mijenja i ispis što kod ozbiljnog programiranja može predstavljati problem ali mnogo je lakše kada se zna što se očekuje u tim varijablama pa bilo koji drugu vrijednost odstranjujemo ali o tome ćemo kasnije kada se popnemo na veću razinu sa programiranjem.

U sledećem nastavku tutoriala pišemo o POST metodi i o formama htmla gdje se post metoda koristi.
"Ko nema u glavi ima na internetu"
Što čujem - poštujem, dok ne vidim - ne vjerujem.

Re: PHP Tutorial

PostPostao/la HepeK » 17 kol 2012, 05:10

Nakon malo veće pauze ponovo nastavak tutoriala..

Kao što rekoh u ovom dijelu tutoriala obrađivati ćemo POST i html forme...

Dakle, u index.php stavicemo samo cisti html bez primjese php-a. Dakle napravicemo formu koja ce imati input elemente za ime i prezime i gumb "pošalji"..

html code
<html>
<head>
<title>PHP Tutorial - Programiranje.Org</title>
</head>
<body>
<form method="POST" action="skripta.php">
Ime: <input type="text" name="ime"/><br />
Prezime: <input type="text" name="prezime"/><br />
<input type="submit" name="posalji" value="Posalji"/><br />
</form>
</body>
</html>


Nakon toga napisati ćemo kod u skripta.php koji će izvršiti prihvat podataka iz forme.

php code
<?php
//provjera da li su podaci dosli iz nase forme
if(isset($_POST['posalji']))
{
//preuzimanje podataka iz forme
$ime = $_POST['ime'];
$prezime = $_POST['prezime'];
//testni ispis
echo "Zdravo ".$ime." ".$prezime.", hvala na submitu forme!";
}
?>


Kada otvorimo http://localhost/tutorial/ dobićemo formu kao na sledećoj slici:

slika

A kada u našu formu unesemo za ime "Niko" a za prezime "Nikić" i kliknemo na "Pošalji" gumb browser će upiti na "skripta.php" jer smo tako naveli u action forme (action="skripta.php") i dobićemo ovakav ispis:

slika

Kao metodu prenosa podataka iz forme možemo koristiti i GET metodu (<form method="GET" action="skripta.php">) samo što bi sada prihvat podataka vršili na sledeći način:

php code
<?php
//provjera da li su podaci dosli iz nase forme
if(isset($_GET['posalji']))
{
//preuzimanje podataka iz forme
$ime = $_GET['ime'];
$prezime = $_GET['prezime'];
//testni ispis
echo "Zdravo ".$ime." ".$prezime.", hvala na submitu forme!";
}
?>


A ispis bi bio ovakav:

slika

Obratite pažnju na url...dakle baš kao u dijelu tutoriala koji smo prošli puta obrađivali.

Tip elementa forme može biti, polje za tekstualni unos (kao sada), radio button, checkbox, file, hidden(skriven)....itd ali svi se prihvataju u skripti na isti način osim tipa file koji ćemo naknadno obraditi kada budemo radili upload i rad sa datotekama.

Do kucanja... :ymhug:
"Ko nema u glavi ima na internetu"
Što čujem - poštujem, dok ne vidim - ne vjerujem.

Re: PHP Tutorial

PostPostao/la HepeK » 23 tra 2013, 18:03

Nakon duže pauze ponovno sam tu da napišem koji post. Nadam se da pomaže :)

Ukoliko ste pratili tutorial od početka do sada bi trebali imati dovoljno predznanja za uvođenje baza u php.

Vjerovatno ste se do sada uvidjeli da nakon zatvaranja taba ili kompletnog browsera svi podaci se gube, vjerujem da ste se zapitali kako da natjerate php da pohrani podatke a da ih nakon odredjenog vremena na zahtjev stavi na tanjur. E u tu svrhu koriste se baze i to u php-u najvise SQL baze.

Baza podataka u SQL sastoji se od tabela a tabele od polja ili kolona i redova gdje svaka tabela ima svoj naziv kao i svaka kolona.

Da bi lakše stvorili sliku o bazi zamislite jedan kontejner i u tom kontejneru sortirane kutije a u tim kutijama sortirane kutije cigareta različitih proizvođača - tj u svaku kolonu smještena jedna vrsta cigareta.

Analogija sa bazom je sledeća:
- Baza je kontejner
- Kutija je tabela
- Jedna kolona sa jednom vrstom cigareta je jedno polje ili kolona sa odredjenim nazivom

Da bi vam približio izgled baze pogledajte sledeću ilustraciju:

slika

Dakle, naša baza na slici ima dvije tabele pod nazivom tabela1 i tabela2 te tabela1 ima polja ili nazive kolona id, polje1 i polje2 te u redovima tabela1 postoje dva zapisa.

Da bi pravilno koristili MySql server koji je instaliran uz xampp potrebno je da izvršite dodavanje passworda na pristup sql serveru.

To će te uraditi tako što će te browser uputiti na adresu a nakon toga će te unijeti password koji će te zapamtiti a zatim ponoviti taj password u naredno polje i kliknuti na "Password changing". - kod mene je password "testnipassword" trebat' će nam poslije.

slika

Sada ćemo napraviti našu bazu koju ćemo koristiti kroz ovaj tutorial - nazvati ćemo je test.

Navedite vaš browser na adresu unesite username "root" (bez navodnika) i password koji ste maloprije stvorili - kod mene je testnipassword.

slika

Ukoliko vidite sliku sličnu ovoj onda ste se uspješno logovali! Potrebno je da pod 1 odaberete utf8_general_ci sačekate da se phpmyadmin ponovno učita a zatim pod 2 kliknite na link u meniju pod nazivom Databases baš kao na slici.

Nakon toga bi vam se trebao otvoriti spisak postojećih baza na sql serveru i forma za kreiranje nove baze.

Sada kreiramo novu bazu pod nazivom test popunivši polja kao na slici ispod:

slika

A zatim kliknemo na Create.

(Napomena: utf8_general_ci i utf8_unicode_ci koristimo da bi mogli u bazu zapisati "naša" slova kao što su ŠŽĐČĆ!)

Sada bi na lijevoj strani trebala da bude vidljiva vaša novokreirana baza test kao na slici ispod:

slika

Klikom na naziv baze otvori će vam se forma za kreiranje tabele tj. forma gdje trebate unijeti naziv tabele i koliko ta tabela treba da ima kolona (koliko u kutiji treba da bude kolona cigareta različitih proizvođača).

Za ovaj tutorial kreirati ćemo tabelu pod nazivom tabela1 koja će imata 3 kolone - nakon što smo popunili formu sa odgovarajućim parametrima možemo kliknuti na Go. Sada vam se otvori forma za popunjavanje paramatera pojedinačnih kolona.

slika

Popunite podatke kao na slici i pomjerite kliznik desno te popunite polja ukoliko ne vidite sve te klinite na Save.

Upravo ste kreirali prvu bazu test, tabelu pod nazivom tabela1 sa poljima id, ime, prezime.

Da pojasnimo samo šta je Index PRIMARY što smo stavili za polje pod nazivom id - to govori sql serveru da je to polje primarno i da ne mogu biti dva ista zapisa sa istim ID.

Stavili smo kvakivu na A_I (auto inkrement) da bi pri svakom zapisu id dobijao vrijednost za jedan višu počev od 1 tj. 1 2 3 4 zavisno od toga koliko imamo unosa u tabelu.

Toliko za ovaj put. U sledećem postu obrađujemo konekciju php-a na SQL server te pohranjivanje i dohvatanje podataka iz baze odnosno tabele
"Ko nema u glavi ima na internetu"
Što čujem - poštujem, dok ne vidim - ne vjerujem.

Re: PHP Tutorial

PostPostao/la HepeK » 24 tra 2013, 10:16

Kao što sam rekao u sledećem postu obrađujemo php konekciju sa SQL bazom.

Kao što smo i do sada radili unutar xampp/htdocs/tutorial/index.php fajla brišemo sve i pišemo kod koji nam sada treba.

Dakle, prvo što trebamo da zapamtimo jeste da nam se SQL server nalazi na localhost, da je username za pristupanje SQL serveru root a password kod mene testnipassword.

php code
<?php

$host="localhost"; //host sql servera
$user="root"; //korisničko ime za pristupanje sql serveru
$password="testnipassword"; //password za pristupanje sql serveru
$database="test"; //naziv baze kojoj pristupamo

$connect = mysql_connect($host,$user,$password) or die('<p>Nije moguće trenutno pristupiti serveru!</p>'); //pristupanje sql serveru

mysql_select_db($database,$connect) or die('<p>Nije moguće trenutno pristupiti serveru!</p>'); //odabir baze na sql serveru

?>


Prve 4 linije koda su varijable sa informacijama o hostu, korisniku, passwordu i bazi. Funkcija mysql_connect prihvata tri paramtera - host, korisničko ime i password za pristupanje sql serveru i ukoliko je konektovanje na bazu prošlo uspiješno vraća tzv. link identifier ili možemo to nazvati pokazivač na server koji možemo smjestiti u varijablu a ukoliko se dogodila greška funkcija vraća FALSE i u našem slučaju se ispisuje poruka "Nije moguće trenutno pristupiti serveru!".

Funkcija mysql_select_db prihvata dva parametra a to su naziv baze kojoj pristupamo i link identifier koji je vratila funkcija mysql_connect. Ukoliko je konektovanje na bazu prošlo uspješno funkcija vraća TRUE u suprotnom vraća FALSE i ispisuje se poruka "Nije moguće trenutno pristupiti serveru!".

Sada ukoliko navedete browser na link i ako vidite samo bijelu stranicu uspješno ste spojeni na server i bazu a ukoliko se ispiše greška znači da ste negdje pogriješili - al sam sada rekao mudrost :).

Sada ćemo pokazati jednostavan zapis podataka u našu bazu tj. u tabelu koju smo napravili pod nazivom tabela1 sa poljima id, ime i prezime.

php code
<?php

$host="localhost"; //host sql servera
$user="root"; //korisničko ime za pristupanje sql serveru
$password="testnipassword"; //password za pristupanje sql serveru
$database="test"; //naziv baze kojoj pristupamo

$connect = mysql_connect($host,$user,$password) or die('<p>Nije moguće trenutno pristupiti serveru!</p>'); //pristupanje sql serveru

mysql_select_db($database,$connect) or die('<p>Nije moguće trenutno pristupiti serveru!</p>'); //odabir baze na sql serveru

$ime = "Niko";
$prezime = "Nikić";

$query = "INSERT INTO tabela1 (ime, prezime) VALUES ('$ime','$prezime')"; //naredba za zapis koja se prosljeđuje funckiji mysql_query

if (mysql_query($query)) {
echo('<p>Zapis u bazu prošao uspješno!</p>');
} else {
echo('<p>Dogodila se greška!</p>'.mysql_error());
}
?>


Ukoliko uputite browser na adresu dobit' će te odgovor da li je zapis prošao uspješno ili se dogodila greška (mysql_error() je funkcija koja vraća ispis eventualne greške).

mysql_query je funkcija koja izvršava sql upit koji joj se prosljeđuje u obliku stringa - u našem slučaju taj string smo smjestili u varijablu $query. mysql_query vraća TRUE ukoliko je uspješno zapisan podatak ili FALSE ukoliko to nije slučaj što smo iskoristili za if naredbu (PSEUDO KOD ZA IF: Ako funkcija vrati TRUE ispiši poruku za uspješno snimanje a ako vrati FALSE ispiši poruku za grešku).

Toliko za ovaj put :)
"Ko nema u glavi ima na internetu"
Što čujem - poštujem, dok ne vidim - ne vjerujem.


13 post(ov)a • Stranica: 1/2.1, 2

Na mreži

Trenutno korisnika/ca: / i 1 gost.