You are on page 1of 41

KursWebprogramiranja

PHPMySQL




mrBesaraNikola,dipl.ing.

Beograd,2012

KursWebprogramiranjaPHPMySQL

SADRAJ:

PHPUVOD ........................................................................................................ 3
STRUKTURALAYOUTAAPLIKACIJE .................................................................... 15
BAZEDatabase .............................................................................................. 18
KreiranjeSQLbazeprekoPHPMyAdmina........................................................ 18
Unospodatakaukreiranutabelu ..................................................................... 20
IMPORT/EXPORTpodatakauSQLizExcela ................................................. 22
ISPISPODATAKAIZBAZE(SELECT*FROM...)................................................. 25
KreiranjeLOGIN/LOGOUTformulara .............................................................. 26
INSERT,UPDATE,DELETEpodatkaizbaze ........................................................ 31
CKEDITORpaletazaureenjeteksta ............................................................. 33
KomandaGETlinkkaPHPlink.php?add=<?phpecho$name;?>................ 34
SEARCHkreiranjeSeachengine(1polje) ...................................................... 35
SEARCHkreiranjeSeachengine(2polja) ....................................................... 36
FTPFileZillaClientprebacivanjeprezentacijenaserver ................................ 37
PodeavanjanaCPANELU ................................................................................ 39
ExportSQLBasenaRemoteServer .................................................................. 40

2
KursWebprogramiranjaPHPMySQL

PHPUVOD
Nastavak obuke omoguava dalje razvijanje web prezentacije uvodei novi
skriptnijezik(PHP)inekenovetehnologijeizradabazepodataka,konekcije
bazesawebstranicama,ispispodatakaizbazeitd...

Razlike(prednosti)PHPaiHTMLa

(PHP) ima malo drugaiju sintaksu (nain pisanja koda) od HTMLa.


HTML je uz CSS jednostavno opisivao web strane konstrukciju, boje,
fontitd.

PHP kod ima za cilj da odreene elemente (brojeve, podatke iz baze itd)
procesuira (obradi). Na primer ukoliko u HTMLu napiete 2+2, HTML to vidi
kaoskupznakova.Meutim,ukolikotonapieteuPHPukrozsintaksnikodto
vienijeskupznakovanegoodreenevrednostiiPHPkaorezultatuBrowseru
prikazuje vrednost 4. Ovaj jednostavan primer pokazuje sutinsku razliku i
naravnoprednostzatoposlewebdizajnaiuenjaHTMLatrebadaseznanje
nadogradiuenjemPHPaidizajnomdinamikihwebsajtovaiaplikacija.

tajedinamikisajt?

Dabisteshvatiliividelirazlikuizmeudinamikogistatikogsajtadonji
grafikonnajboljeprikazujesutinskurazlikuinaravnoprednostradauPHPu.
Sutinskarazlikajeustrukturiiorganizacijiwebstranica.

3
KursWebprogramiranjaPHPMySQL

WAMPinstalacijaLocalHosta

ZarazlikuodHTMLfajlovakojisemogurenderovatiprekoBrowser
a jednostavnim klikom na fajl, PHP fajlovi se moraju prebaciti na
ServerdabisemoglitestiratiprekoBrowsera.

WAMP je jedan jednostavan i besplatan


programkojisepreuzimasainternetaikoji
predstavlja lokalni server preko koga se
testira i razvija sajt u PHPu. Iskljuivanjem
raunaraiskljuujeseiWAMPserver.

Posle jednostavne instalacije pojavljuje se


ikonica ijim se klikom ukljuuje server
odnosno pojavljuje se ikonica u donjem
desnom delu ekrana (zelene boje). Klikom
levog tastera mia na tu ikonicu pojavljuje
se podmeni sa tri vana linka koji e se
koristitiudaljemradu:

LocalHostprekokogasetestiraaplikacija,
phpMyAdminpanelprekokogasepristupaiureujebazapodataka,
www je direktan pristup folderu gde e se nalaziti folder sa kompletnom
strukturomsajta(fajlindex.php...,folderiimages,jsitd)

LocalHosttestiranjeradaservera

Prepoetkarada(dizajniranjaiprogramiranja)
potrebnojetestiratidalisestranicarenderujeu
Browseru(kaotojeranijebilokodHTML
fajlova)alisadkaoindex.phpfajl.
KliknitenaWAMPserverikonicu(donjidesni
deoekrana)>wwwiufolderuWWWkreirajte
folderkurswebprogramiranja
OtvoriteCodeEditor,snimitetajfajlufolderkurswebprogramiranja
(Saveas>index.php)unesiteosnovnustrukturuwebstraneiunesiteneki
tekstunutarBodytagova.

4
KursWebprogramiranjaPHPMySQL

<!DOCTYPEHTML>
<html>

<head>
<metacharset="utf8">
<title>Test</title>
</head>

<body>

<h2>Pozdrav!</h2>

</body>
</html>

PonovokliknitenaWAMPserverikonicu(donjidesnideoekrana)>LocalHost
>upaneluuodeljkuMyProjectskliknitenalinkkurswebprogramiranja
posleegaseotvaraBrowserkojirenderujeindex.phpstranicusaprikazom
tekstakojisteuneliunutarBodytagova.

Natajnaineteunastavkupredavanjatestiratiaplikacijuposleunosa
odreenihkodova,skriptiitd.


Nakrajuposleuspenogtesta,obriitetajfajlindex.phpikompletansadraj
folderakurswebprogramiranjakojijeposlatVamanaemailkaodeo
prateegmaterijalakopirajteutajfolderistoimenognaziva.

5
KursWebprogramiranjaPHPMySQL

OsnovnaPHPsintaksa

<?php

OVDEIDEPHPKOD

?>

<?php

/*Ovdeidekomentar*/

?>

Varijableioperatori

PHPvarijablesaoperatorima ECHOISPIS
<?php

$x=30;
$y=6;
$z=10; 26
$a=($x+$y)$z;
echo$a;

?>
PHPvarijablesaoperatorima ECHOISPIS
<?php
$x=10;
$y=6;
echo($x+$y);
echo"<br>"; 16
echo($x$y); 4
echo"<br>"; 60
echo($x*$y); 1.6666666666667
echo"<br>"; 4
echo($x/$y);
echo"<br>";
echo($x%$y);
?>

6
KursWebprogramiranjaPHPMySQL

Echo

PrikazrezultatprekoPHPskruptipozivaseprekokomandeECHO.

PHPkodsaprikazom ECHOISPIS
<?php

echo"Ovojeprvaphpskripta!"; Ovojeprvaphpskripta!

?>

StringFunctions

OvafunkcijaomoguavadasedefiniufinkcijevezanoSTRING.String
predstavljaresastavljenuodkaraktera.
STRLENFUNCTIONbrojibrojkarakteraustringukojieseprekokomande
ECHOprikazati

PHPstrlenfunction ECHOISPIS
<?php

echostrlen("Ovdesebrojibrojkarakteraustringu"); 38

?>

PHPstrlenreplace ECHOISPIS
<?php
Umestopodatkakojiimaformu
echostr_replace("_","",$osnovna_strana); ime_prezimeECHOispisjeime
prezime(bezdonjecrtice)
?>

7
KursWebprogramiranjaPHPMySQL

DECIMALEUISPISU

PHPnumber_format ECHOISPIS
<!prikazbroja1000.00sadvedecimale>
<?phpechonumber_format((float)$neto,2,'.','');?>
1000.00
1,000.00
<!prikazbroja1,000.00sadvedecimaleiseparatorzahiljade>
<?phpechonumber_format((float)$neto,2,'.',',');?>

If,Else,ElseIf

PHPkomandaIF ECHOISPIS
<?php
$t=date("H");

if($t<"20"){ Dobardan
echo"Dobardan";
}
?>
PHPkomandaIF...ELSE ECHOISPIS
<?php
$t=date("H");
Dobardan
if($t<"20"){
echo"Dobardan"; ILI
}else{
echo"Lakuno"; Lakuno
}
?>
PHPkomandaIF...ELSE...IF ECHOISPIS
<?php
$t=date("H"); Dobardan

if($t<"10"){ ILI
echo"Dobrojutro";
}elseif($t<"20"){ Dovienja
echo"Dovienja";
}else{ ILI
echo"Lakuno";
} Lakuno
?>

8
KursWebprogramiranjaPHPMySQL

PHPkomandaIF ECHOISPIS
<?php
$i=1;
if($i==1){
echo"Uslovzadovoljen";
} Uslovzadovoljen
if($i==2){
echo"Uslovnijezadovoljen";
}
?>
PHPkomandaIF...ELSE ECHOISPIS
<?php
$i=2;
if($i==1){
echo"Uslovzadovoljen";
} Uslovnijezadovoljen
else{
echo"Uslovnijezadovoljen";
}
?>
PHPkomanda...ELSE...IF ECHOISPIS
<?php
$i=2;
if($i==1)

{
echo"Uslov1zadovoljen";
}

Uslov2zadovoljen
elseif($i==2)


{
echo"Uslov2zadovoljen";
}else

{
echo"Nijedanuslovnijezadovoljen";
}
?>

9
KursWebprogramiranjaPHPMySQL

WhileLoopsiForLoops

WHILEkomandakreiratakozvanupetljukojaprikazujerezultatedokgodje
logikaformaistinita(TRUE).WHILEFORkreiraizvravaikreirarezultatkoise
znadaebiti(naprimer,10rezultat)poodreeomkriterijumu.

PHPkomanda
ECHOISPIS
WHILE
<?php

$brojac=1;
while($brojac<=3)
{
123
echo$brojac."";
$brojac=$brojac+1;
}

?>
PHPkomanda
ECHOISPIS
WHILE
<?php
Thenumberis:1
$x=1; Thenumberis:2
Thenumberis:3
while($x<=5){ Thenumberis:4
echo"Thenumberis:$x<br>"; Thenumberis:5
$x++;
}

?>
PHPkomandaWHILE
ECHOISPIS
FOR
<?php Thenumberis:0
Thenumberis:1
for($x=0;$x<=10;$x++){ Thenumberis:2
echo"Thenumberis:$x<br>"; Thenumberis:3
} Thenumberis:4
Thenumberis:5
?> Thenumberis:6
Thenumberis:7
Thenumberis:8
Thenumberis:9
Thenumberis:10

10
KursWebprogramiranjaPHPMySQL

Include

KomandaINCLUDEomoguadadaseodeenisadrajjednestraniceuPHP
ubaciutekuustranicu.

PHPkomanda Rezultatupregledaupreko
INCLUDE WAMPLocalhosta


<?phpinclude'includes/header.php';?> Ovojetextizheadera


KONEKCIJASABAZOMULOCALHOSTU

<?php

//Konekcijanabazu

mysql_connect("localhost","root",)ordie(mysql_error());
mysql_select_dbime_baze")ordie(mysql_error());

?>


KONEKCIJASABAZOMUREMOTEHOSTU

<?php

//Konekcijanabazu

mysql_connect("____________","korisnik",123456)ordie(mysql_error());
mysql_select_db("ime_baze")ordie(mysql_error());

?>

11
KursWebprogramiranjaPHPMySQL

Cookies(kolaii)

Kolaii nam omoguavaju pohranjivanje informacije o posetiocu na njegovo


raunar,kakobismoprilikomsledeeposetemoglipristupitiistima.Istotakoje
mogue pothranjivati i druge podatke podatke o sadraju korpe kod online
shopa...gdeklikomnaADDTOCARTVaraunarpamtituinformacijudok
vi dalje naruujte druge artikle. Cookie (kolai) postavljamo koristei PHP
funkcijuSetcookie(ime,vrednost,rok_trajanja)

KOLAI MORAMO POSTAVITI U HEADERU PRE HTML KODA KAKO BI


RADILI.

Za primer jedan cookie koji e pokazati vreme zadnjeg poseta koristit emo
dvedatoteke:
make_cookie.php
get_cookie.php

make_cookie.php

<?php
$sat=date("H")+7;
$rok_trajanja=2592000+time();
$sat=date("d.m.Y$sat:i:s");
setcookie(poseta,$sat,$rok_trajanja);
$trajem=2592000/60/60/24;
echo"Kolacicpostavljenna$satstrajanjem$trajemdana"
?>

get_cookie.php

<?php
if(isset($_COOKIE['poseta']))
{
$zadnji=$_COOKIE['poseta'];
$sat=date("H")+7;
$sat=date("d.m.Y$sat:i:s");
echo"Dobrodolinatrag!Sadje$sat<br/>Zadnjaposeta
jebila:".$zadnji;
}else{
echo"Dobrodoli!";
}
?>

12
KursWebprogramiranjaPHPMySQL

Testiranjeskripte:

uWAMPuprekoLocalhostapokretnitemake_cookie.php

Pojavjujeseporukadasteposetilistranicu>zatvoritetustranicu

opetprekoWAMPpokreniteget_cookie.php

Pojavljujeseporuka

Dobrodolinatrag!Sadje18.05.201421:17:15
Zadnjaposetajebila:18.05.201421:15:10

Kao to se vidi iz primera, posetim na neku stranicu, Va pregleda ukljuuje


opciju da pamti tu posetu, tako da ponovnim ulaskom na neku drugu
stranicupregledaregistrujedastevebili(tanoukojevremeitd)...

13
KursWebprogramiranjaPHPMySQL

TipovipodatakaBoolean,Integertip,Floattip,Stringtip

Booleantippodataka
Booleantippodatakajelogickitippodataka.Booleanpromenljivamozedaima
jednuoddvevrednosti:TRUEiliFALSE(nemanikakverazlikeukolikoihpisete
velikim ili malim slovima). Alternativno FALSE vrednost mozete predstaviti
nulom,aTRUEvrednostnekimbrojemkojijerazlicitodnule.

$var=true;//$varpromenljivaimavrednostTRUE
$var=1;//$varpromenljivaimavrednostTRUE
$var=1;//$varpromenljivaimavrednostTRUE
$var=false;//$varpromenljivaimavrednostFALSE
$var=0;//$varpromenljivaimavrednostFALSE

Integertippodataka
Integer tip podataka predstavlja bilo koju celobrojnu vrednost, odnosno broj
kojinesadrirazlomljnideo.

$var=15;
$var=235068;

Floattippodataka
Float tip podataka omogucava Vam da koristite brojeve koji poseduju
razlomljeni deo. Ovaj tip podataka koristi se za predstavljanje valuta, teina,
reastojanjaidrugihveliinazakojecelibrojevinisuadekvatni.

$var=15.45;
$var=235068.653;

Stringtippodataka
Jednostavno receno, string je sekvenca karaktera koji se tretiraju kao
jedinstvena grupa. Stringovi su oznaeni koricenjem jednostrukih ili
dvostrukih navodnika. U sledecem primeru prikazano je nekoliko ispravnih
stringova.

$var="Ovdeidenekareenica";
$var="Ovdeidenekitekst9broj";

14
KursWebprogramiranjaPHPMySQL

STRUKTURALAYOUTAAPLIKACIJE

Nastavakopisujekonstrukcijuaplikacijekojasedizajniraiprogramiranakursu.

15
KursWebprogramiranjaPHPMySQL


16
KursWebprogramiranjaPHPMySQL

17
KursWebprogramiranjaPHPMySQL

BAZEDatabase
KreiranjeSQLbazeprekoPHPMyAdmina

LTMnaWAMPServer
ikonicu>PHPMyAdmin
(otvaraseHomePage)>...
...>UnestiNAZIVBAZE
(malaslovabezrazmaka)>
CREATE>...

CreateNewTable>GO>...
Nazivtabelepovrstipodatakapodacioknjigama,podacioautoruisl),
Brojpoljakojasepopunjavaju(Naprimer,id,ime,lokacija,adresa...).



Definisati pravila kod unosa u
tabelu naziv polja, polje sa
tekstomisl.
>Fieldname:id,ime,prezime
> definii TIP fielda kod
primarnog stavi INT, ostali
Varchar>...

> U polje Lenght definii


dozvoljen broj unetih znakova
>definiiPrimaryKeyzaprvifield>

>COLLATION:UTF_8_GENERAL_CI(ZasvakopoljedabudetaCOLLATION.Sadruge
straneusamomHTMLkodunasajtuuHEADdelupodesiti...timeseomoguavada
kadseunoseubazuslova,daseuizlaznomformatunasajtutakoepojaveta
slova...

<metacharset="utf8">

18
KursWebprogramiranjaPHPMySQL

NAPOMENA:

KodupitauPHPkoduispredUPITA(SELECT*FROM)ubacitidarezultate($varijabla)
ispisujesapodeenimUTF8davidilatininaslova.

<?php

$varijabla=mysql_query("setnames'utf8'");

?>

> Kod Primary Key NEEKIRATI opciju NULL to znai da ne sme da bude prazno
polje.KadjekoddrugihpojataopcijaekiranaznaidapoljemozebitiiBLANKO.
>ekirajAutoIncerement(Autonumeracija)>...
>Storageengine:MyISAM>SAVE(kreiralismostrukturutabele).

Sledipodeavanjeparametarakod
strukturetabelekoajjekreirana.
Svaki Field se moe podeavati
klikomnaEditikonu,Obrisati.
KlikomnaGododajetenovopolje.
Poljasemogudodavati(definii
parametreinatasterGO)>...


KreiralistejednuTabelusaodreenimpodacimakojasenalaziuBAZI.
PoistomprincipumoeteunutarBAZEkreirativietabelasaklasifikovanim
poljimapremapotrebi.

LTMnalinktekoms_database(NAZIVBAZE)>...
...>otvarasepoljegdesekreiranovatabela(kreiratitabelutekoms_klijenti)>
...>potomprincipukreiratijos2tabele>...

19
KursWebprogramiranjaPHPMySQL

KREIRANA JE BAZA (tekoms_database) SA SVOJIM TABELAMA KOJE IMAJU


SADRAJPREMANAZIVUTABELE.BROJTABELAJE3.
PonovniulazakuBAZUjesteLTMnaWAMPServer>PhpMyAdmin>...
>LTMnatekoms_database(UlaziteuBAZUgdesevidesvetabele)

Unospodatakaukreiranutabelu

Podaciutabelusemoguunositirunopopunjavajuipolja....
LTMnalinktabeletekoms_klijenti(Otvarasestruktutatabele)>...
...>LTMnaINSERT>...

...>otvarasepoljegdeseupisujupodaciubazupodataka...

20
KursWebprogramiranjaPHPMySQL

... > klikom LTMa dodajemo novi red u tabeli gde upisujemo nove podatke
ime se puni tabela 1 > OK. Klikom na GO podatak ili podaci su ubaen u
tabelu.
KlikomLTManBrowseikonicupojavljujesestrukturatabelegdesevideuneti
podaci>...

...>Prikaztabelesasvimunetimpodacima(LTMomnaEditikonicutabelasa
podacimesemoedodatnourediti)

21
KursWebprogramiranjaPHPMySQL


IMPORT/EXPORTpodatakauSQLizExcela

PrekokomandeIMPORTpodacikreirani
udrugomprogramu,naprimerExcelu,
moguseubacitiunasubazudirektno...

>PrethodnotrebakreiratiuExcelu
tabelukaonaslici>...

>NazvatiSheettekoms_duznici(uSQL
toebitinazivtabele)>...

LTMnaWAMPServer>PhPMyadmin>UiukreiranuBAZU
tekoms_database>Definisalismobazupodataka>LTMnaIMPORT>...

>Browse>Nainadiskuxcelfajl
kojitrebadaseimportuje>...

>DefinieFORMATfajlakojise
importujeExcel>GO

>ekiratiColumnsnamesinfirst
row




(PodaciuzprvogredizExcelapostajunazivikolona...VANO!!!)

22
KursWebprogramiranjaPHPMySQL




PodaciizExcelfajlasuubaeni(IMPORTovani)utabelepuneibazu
podacima.

IzslikesemoevidetidaExcelfajl
sadrao podatke za tabelu sa
podacima. Svaka tabela je imala
odreeni broj fielda (ID, Ime,
prezimeisl...premapotrebi).










VANANAPOMENA:

Ukoliko se posle izlaska iz MyPHPAdmina, i ponovnog ulaska pojavi poruka
kaonaslici>...



...>UiuPretraiva(InternetExplorer)>Tools>DeleteBrowsingHistory>
...>ekiratisveparametre>Delete>...

LTMNAWAMPSERVER>MYPHPADMIN>PANELSABAZAMAITABELASE
PONOVOVIDI!!!




23
KursWebprogramiranjaPHPMySQL

BACKUPBAZEILITABELEEXPORTBAZE

EXPORTTABELEILIKOMPLETBAZESASVIMTABELERADISEPREKOTASTERA
EXPORTPOSLEEGASEPOJAVLJUJEPROZORGDETREBAPODESITI

EKIRATIOPCIJU
ADDDROPTABLE

ODEKIRATIOPCIJU
ADDIFNOTEXISTS

EXPORT:SQL(daizlaznifajl
imaekstenziju.sql)...

KLIKOMNAOKPOJAVUJEsE
PROZOR GDE DEFINIETE
GDE DA SNIMITE
EXPORTOVANI FAJL I POD
KOJIMNAZIVOM...



Preporuka je da naziv fajla ima ime fajla i datum da se zna kada je
BEKAPOVANO.

Preko ranije opisane komande IMPORT fajl sa ekstenzijom .sql se ubacuje u


bazusasvimpodeavanjimakaoipodacima.








24
KursWebprogramiranjaPHPMySQL

ISPISPODATAKAIZBAZE(SELECT*FROM...)

<!SQLUPITUpitsvihpodatakaizbaze>

<?php$rezultat=mysql_query("SELECT*FROM___________");?>
<?phpwhile($row=mysql_fetch_array($rezultat))
{
$ime=$row['ime'];
$prezime=$row['prezime'];
?>
<?phpecho$ime;?>
<?phpecho$prezime;?>
<?php//daseprikazusvirezultati
}
?>

<!SQLUPITUpitsvihpodatakaizbaze>

WHEREUSLOV

$rezultat=mysql_query("SELECT*FROMKorisniciWHEREime='Marko'");

PrimeriWHEREklauzule:

WHEREime='Marko'
WHEREgodine>20
WHEREgodineBETWEEN15AND25
WHEREime='Marko'ANDprezime='Markovic'

Ime, prezime, godine su nazivi kolona u kojima se nalazi odreeni podataka


kojiseporedi.

25
KursWebprogramiranjaPHPMySQL

KreiranjeLOGIN/LOGOUTformulara

KreiranjeLOGINformularaomoguavadakorisnikuneseusernameipassword
iposleproveredalisuparametridobriodlsisenastranicukojajesamoza
registrovanekorisnike.

KlikomnalinkLOGOUTlinkvraanapoetnustranicuposleegesemoe
pristupitiskrivenojstranicisamoposleponovnogunosapaparametara...Dabi
uradiliovuvebzpotrebnojekreirai:

Ubaziotvoritinovutabelusatripolja...id,username,passwordiunetineke
parametre(kreiranjetabelepremaranijeopisanimpoglavljimagdejeID
PrimaryKey,Autoincrement...itd),

loginformularsastavljenoddvapolja
usernameipasswordidugmeLogin

check_login.phpfajlgdejePHPskripra
kojaproveravadalisuunestiparametriu
Loginformuartani.

login_zona.phpjestranicanakojusedolaziukolikojeproverapodataka
prola.Tojefaktikitaskrivenastranica,kojamoebitiistoizdizajniranakaoi
ostale,samotonavrhukodamoraimatuskriptu.Takoe,natojstranise
nalaziidugme(Link)>LOGOUTkojeusmeravanafajllogout.php

logout.phpjeposlednjifajlkojisekreiraiimasamoparkodovakojimse
brieuVasembowseruopcijudastebililogovani.Ovdejeakdodatkodda
posetilacodlaskomnatustranuautomatskiseredirektujenapoetnustranicu.
Posletoga,nemoedasevraauBrowserunaskrivenustranicunegosamo
ponovnimlogovanjem.UprilogusuPHPkodovizasvakifajl...

Loginformularutabelarnojformi
ubacitinegdeukod.

26
KursWebprogramiranjaPHPMySQL

LOGINFORMULAR

<tablewidth="300"border="0"align="center"cellpadding="0"
cellspacing="1"bgcolor="#CCCCCC">
<tr>
<formname="form1"method="post"action="check_login.php">
<td>
<tablewidth="100%"border="0"cellpadding="3"cellspacing="1"
bgcolor="#FFFFFF">
<tr>
<tdcolspan="2"><strong>MemberLogin</strong></td>
</tr>
<tr>
<td>Username</td>
<tdwidth="294"><inputname="myusername"type="text"
id="myusername"></td>
</tr>
<tr>
<td>Password</td>
<td><inputname="mypassword"type="text"id="mypassword"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><inputtype="submit"name="Submit"value="Login"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>

27
KursWebprogramiranjaPHPMySQL

check_login.phpskriptakojaproveravalogovanje.

<?php

ob_start();
$host="localhost";//Hostname
$username="root";//username
$password="";//password
$db_name="php_kurs";//baza
$tbl_name="members";//Tablelagdesuusernameipasswordi

include'includes/konekcija.php';

//Definisanjeusernameipaswordakaovarijable
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

//Sigurnost
$myusername=stripslashes($myusername);
$mypassword=stripslashes($mypassword);
$myusername=mysql_real_escape_string($myusername);
$mypassword=mysql_real_escape_string($mypassword);

$sql="SELECT*FROM$tbl_nameWHEREusername='$myusername'and
password='$mypassword'";
$result=mysql_query($sql);

//MySQLbrojiutabeliredgdejeusernameipassword
$count=mysql_num_rows($result);

//Akosepoklapaunetiusernameipasswordsapodacimaiz1reda

if($count==1){

//Registracijausernameipasswordaposleegaseusmeravabastranicu
"admin_panel.php"akonijeuspesnaregistracijavracanastranicu"index.php"
session_register("myusername");
session_register("mypassword");
header("location:admin_panel.php");

}
else{
header("location:index.php");
}

ob_end_flush();
?>

28
KursWebprogramiranjaPHPMySQL

login_zona.phpjeskrivenastranicaposleuspenoglogovanjaodnosnopanel
gde se ureuje baza podataka unoenjem novih podataka, menjanjem ili
brisanjempostojeih.

Ovastranicamoebitiposebnodizjaniranadasadriizgledkaoostalideosajta,
alisaformulraimazaunospodatakaubazu,kaoisadugmdimazamenjanjeili
brisanjepodatakaizbaze!

Poslepromenepodatakarezultatiseautomatskiaurirajunasajtu.Tujelink
LOGOUTnegdeunutarkodakojijelinkovankafajlulogout.php

<?php

//proverajelregistracijauspela,ovodasepostavinapocetakkoda

session_start();
if(!session_is_registered(myusername)){
header("location:index.php");

?>

<HTML>

...

<p>Ukolikoelitedaseodjavitekliknitenalink<a
href="logout.php">Logout</a></p>

29
KursWebprogramiranjaPHPMySQL

logout.phpjefajlgdeskriptakojaunitavasesiju...iredirektujena
poetnustranicu.Takoe,doktrajetajproces(od2sekunde)daposetilacima
uviddasenetodeava,moeteubacitijednugifanimacijukaoiporukudaje
Logoututokukaoiredirekcijanapoetnustranu!

<?php//OvojekodkojiseunistavaLogin

session_start();
session_destroy();

?>

<metahttpequiv="refresh"content="2;url=index.php">

NAPOMENA:Dabisesijakojadefinielogovanjebilodefinisanoinaneki
drugimstranicamakojesusamozaregistrovanekorisnike,napoetkutih
straniaukodutrebadastojisledeikodkojidefiniedajesesijaitupoelau
odnosunastranicuindex.phpodaklejebioLOGIN.

<!pocinjesesijazauspesnologovanje>
<?php
session_start();
if(!session_is_registered(myusername)){
header("location:index.php");
}
?>
<!pocinjesesijazauspesnologovanje>

30
KursWebprogramiranjaPHPMySQL

INSERT,UPDATE,DELETEpodatkaizbaze

INSERT

<!SKRIPTAKOJAPROCESUIRAINSERTPODATKAUBAZU>

<?php

$insert=mysql_query("setnames'utf8'");
$insert="INSERTINTOklijenti(firma,sifra,adresa,grad,pib,mb)

VALUES(

'".$_POST['firma']."',
'".$_POST['sifra']."',
'".$_POST['adresa']."',
'".$_POST['grad']."',
'".$_POST['pib']."',
'".$_POST['mb']."'

)";

$add_member=mysql_query($insert);

?>

<!SKRIPTAKOJAPROCESUIRAINSERTPODATKAUBAZU>

31
KursWebprogramiranjaPHPMySQL

UPDATE

<!SKRIPTAKOJAUPDATEPODATKEUBAZU>

<?php

$id=$_POST['id'];
$firma=$_POST['firma'];
$sifra=$_POST['sifra'];
$adresa=$_POST['adresa'];
$grad=$_POST['grad'];
$pib=$_POST['pib'];
$mb=$_POST['mb'];
$sql=mysql_query("setnames'utf8'");
$sql="UPDATEklijentiSETfirma='$firma',sifra='$sifra',adresa='$adresa',
grad='$grad',pib='$pib',mb='$mb'WHEREid=$id";
$result=mysql_query($sql)
ordie('Errorqueryingdatabase.');

?>

<!SKRIPTAKOJAUPDATEPODATKEUBAZU>

DELETE

<!SKRIPTAKOJABRISEPODATAKIZBAZE>

<?php

$id=$_REQUEST['add'];
mysql_query("DELETEFROMklijentiWHEREid='$id'")
ordie(mysql_error());

?>

<!SKRIPTAKOJABRISEPODATAKIZBAZE>

32
KursWebprogramiranjaPHPMySQL

CKEDITORpaletazaureenjeteksta

CKEDITOR je odlina alatka kojom se


polje gde se unosi text (TEXTAREA)
poboljava toolbarom sa ikonicama
kao u Wordu za formatiranje texta
vrsta i veliina fonta, boldovanje
fonta, podvuena slova, slova u
kurzivuitd...

CKEDITORjeimplementriraipar
koraka...

- foldernazivackeditor(kojisepreuzimasasajta
http://ckeditor.com/download)seodpakuje(Unzip)apotomse
kopiraufodlergdejekompletwebsajt,
- otvoriteformulargdeelitedaubaciteCKEDITOR,idoitedo
linijegdesenalaziubaenTEXTAREA(poljeformularagdese
ubacujetext)iukucajtesledeikod...

<!TextpoljepotrebnokopiratifolderCKEDITOR>

<textareaclass="ckeditor"name="editor1">

</textarea>

<linktype="text/css"href="ckeditor/contents.css"/>
<scriptlanguage="javascript"src="ckeditor/ckeditor.js"></script>

<!TextpoljepotrebnokopiratifolderCKEDITOR>

NAPOMENA:

Vanojedefinisatiid="editor1,NAMEbitrebalodanosinazivKOLONEukoju
sepodatakubacuje.Ispodideskriptasaputanjomgdejeckeditor.js.Nakraju
ideskriptakojaukljuujesamCKEDITORitoprekoid=editor1.

33
KursWebprogramiranjaPHPMySQL

KomandaGETlinkkaPHPlink.php?add=<?phpecho$name;?>

Komanda GET omoguava da se odreeni podaci (varijable) predaju (usmere) ka


odreenomfajlukojipredstavljanekaphpskirptakojaprocesuiraodreenuoperaciju.

Na konkretnom primeru to bi znailo da odreeni element na sajtu koji ima formu linka
(tekst,imageitd)daljealjelinkkaodreenojstrani.

Na primer, uzmimo primer da jedna slika ima u sebi link koji ima klasinu formu (slika iz
folderaimages)aljelinkkastraniproject_single.php:

<a href="project_single.php"><img src="images/slika_1.jpg" alt="" width="160"


height="120"></a>

Tastranaproject_single.phpusebisadriphpkodkojidaljeprocesuiraodreenuskriptu
koja bi trebalo da podatke od ove strane dobije (GET) I dalje obradi. U tom cilju emo
postojeilinkslikemodifikovatisavarijablamaechoispisa

<ahref="project_single.php?add=<?phpecho$name;?>"><imgsrc="images/<?phpecho
$image_1;?>"width="160"height="120"</a></p>

add=.predstavljadodatakkojieseuskriptikojadaljedobijapodataka(GET)porditisa
varijablomIdavatirezultat.Akoseotvoridrugifajlproject_single.phpkojidobijalinktuje
potrebnodefinsiatiulazneparametrekojisedobijajuidaljefiltrirajukrozupit:

<?php

$name=$_GET['add'];
$name=addslashes($name);
$rezultat=mysql_query("SELECT*FROMprojectsWHEREname='$name'");//pretraga
koloneimegdejepodatakimevarijablaizisporucenogformname="name"

?>

Kadasekliknenasliku,kojaimalinkuformiLINK+ADD=...tojeslianprincipkaokadkod
formularaaljeteprekokomandeBUTTONrezultatepretrage,aliutomsluajudrugastrana
tepodatkeprihvataprekokomandePOST.

Kodkreiranjaaplikacijasvemoedabudelink(image,textitd)padaseneograniilida
samo BUTTON isporuuje varijable, onda je potrbno nekad link modifikovati sa dodatkom
ADD=varijablaaudrugomfajluumestoPOSTkomandepostavitidatavarijablasaddobija
(GET)podatkeIdaimaoznakuADD.

34
KursWebprogramiranjaPHPMySQL

SEARCHkreiranjeSeachengine(1polje)

<?php

//PrihvatPOSTpodatakaprekoizformularapolja"lokacija"
$lokacija=$_POST['lokacija'];
$lokacija=addslashes($lokacija);
//Upitpretragakoloneparkinggdesenalazivarijablauzpoljaformulara
kojiisporucujepodatak
$rezultat=mysql_query("SELECT*FROM____________WHEREparking=
'$parking'");
$br_rezultata=mysql_num_rows($rezultat);
/*brojackojibrojikolikoimarezultatapretrage*/
echo"Brojpronadjenihapartmanaje".$br_rezultata."<br>";
?>

<?php//Rezultatipretrage
while($row=mysql_fetch_array($rezultat))
{
$ime=$row['ime'];
$lokacija=$row['lokacija'];
$adresa=$row['adresa'];
?>

<!ISPISREZULTATECHO>
<?phpecho$ime;?>
<?phpecho$lokacija;?>
<?phpecho$adresa;?>
<!ISPISREZULTATECHO>

<?php//daseprikazusvirezultati
}

?>

35
KursWebprogramiranjaPHPMySQL

DODATNEOPCIJEKODPRETRAGE(daunetareimadeorei...)

...

SELECT*FROM_________WHEREparkingLIKE'%$parking%'

...

SEARCHkreiranjeSeachengine(2polja)

<?php

$ime=$_POST['ime'];
$prezime=$_POST['prezime'];
$ime=addslashes($ime);
$prezime=addslashes($prezime);
/*PRETRAGADVAPOLJAUTABELI*/
$rezultat=mysql_query("SELECT*FROMfast_foodsWHEREime='$ime'
ANDprezime='$prezime'");
/*brojackojibrojikolikoimarezultatapretrage*/
$br_rezultata=mysql_num_rows($rezultat);
echo"<strong>Brojpronadjenihfastfoodovaje".$br_rezultata."</strong>";
?>

<?php
while($row=mysql_fetch_array($rezultat))
{
$ime=$row['ime'];
$prezime=$row['prezime'];
?>

<!ECHOispispodatakaizbaze>
<?phpecho$ime;?>
<?phpecho$adresa;?>
<?phpecho$prezime;?>

<?php//daseprikazusvirezultati
}

?>

36
KursWebprogramiranjaPHPMySQL

FTPFileZillaClientprebacivanjeprezentacijenaserver

Zakraj,ostalojedasekompletwebprezentacijaprebacinaserveribudevidljivanamrei.
Prethodnojepotrebnozakupitidomenihostinggdeebitismetenaprezentacija.Poetna
poglavlja objanjavaju detaljno ta je domen i hosting ikroz grafike prikazaje pokazuje
polaznikukursaprinciperadakakoposetilacvidiVasajtodnosnocelokupnastrukturagde
senalazeVaraunaservergdejeprezentacijaposetilackojiposeujeVasajta.
Kompletna konstrukcija jsata sa svim fajlovima i folderima se nalazi u jednom centralnom
foleruTEKOMSKurswebdizajna.Ipreporukajedazasvakisledeisajtkreirateunovom
fodleruodreenognaziva(nazivfirme,licaisl)iunjegaubacujetesvetosteradilizatu
prezentaciju.

Takoe,utomfolderunekasenalaziiposebanfajl(moeakobianNotepadfajl)naziva
WEBINFOukomeenalazitisvipoterbniparametrizapovezovanjenaREMOTEServer.

Posle zavrenog dizjaniranja web prezentacije ostaje samo da prezentaciju prebacimo na


server i ista e odmah vidljiva upisivanjem domena u adres bar. Za prebacivanje
prezentacijekoristiemoprogramiFTPFileZillaClientkojitoveomaefikasnoradi.Koraci
uslanjuprezentacijenaserverseradiuparkoraka:

1. InstalacijaFTPFileZillaClientnaravnoovajkorakjesanapoetku,
2. Povezivanje na REMOTE SERVER preko FTP parametara sa folder gde se
smetaprezentacija(obinojetofolderpublic_html),
3. Slanje sadraja fodlera TEKOMS Kurs web dizajna u fodler na REMOTE
Serveru.

Instalacija FTP FileZilla


Client je vrlo jednostavna i
klikomna ikonicu
FileZilla_3.5.3_win32setup
(instalacija se nalazi u folderu DODATNI
ALATKE ZA KURS kao sastavni deo
dodatnog materijala za kurs. Instalacija
pratikorisnikakrozkorakeiposle5minuta
na Vaem Desktopu se pojavljuje ikonica
FTP FileZilla Client. Klikom na tu ikonicu
otvaraseekrankaonaslici:
LEVI PROZOR je prikaz sadraja
Vaeg raunara (uite u folder
TEKOMSKurswebdizajna),
DESNI PROZOR je sadraj REMOTE
servera odnosno mesta gde emo
smestiti prezentaciju (trenutno je
prozorprazanjernismopovezani).

37
KursWebprogramiranjaPHPMySQL

PovezivanjenaREMOTESERVERjekorakgdejepotrebnoimatenekolikoFTP1parametara
zapovezivanje:

USERNAMEkorisnikoime(obinosamidajetekod
nariivanjahostinga)
PORT:21
HOST:___________________
PASSWORD:(dobijaseodstrane
provajderakodzakupahostinga)
saovimparametrimaVisepovezujetesaREMOTE
serverom.
KliknitenaFILE>SITEMANAGER>NEWSITE(u
desnopoljeupiitenazivkonekcije),
Udesnomprozoruupiiteparametrekaonaslici:

LOGINTYPE:Normal
>CONNECT

Ukoliko ste sve uneli od parametara kako treba, u


DESNOM PROZORU se pojavljuje struktura REMOTE
SERVERA sa fajlovima i fodlerima. Dvoklikom miem
doitedofodelragdesesmetaprezentacijaobinoje
tofodlerpublic.htmlaliponekadmoedabudeifodler
dockroot oko tih parametara najbolje je pozvati
tehnikuslubuprovajderakojajedunadaVamdasve
informacijevezanozakonekcijusaserverom.
Kadastedoliiuliufoldergdesesmetaprezentacija
(DESNO PROZOR), miem selektujte sve fajlove u
LEVOM PROZORU (Vaa web prezentacija u vaem
raunaru)>DESNITASTERMIA>UPLOAD.
SaekatidaseprezentacijakompletprebacinaREMOTESERVER.Prebacivanjeprezentacije
zavisi od koliine materijala, vae brzine interneta. Prvo put Vi prebacujete komplet
prezentaciju,alikasnijedovoljnojeprebacitisamofajlovekojestenaknadnomenjali

Zatvorite FTP FileZilla Client i otvorte Va Browser, i u


upiiteugornjiadresbarpundomen.

1
FTPjeskraenicaodreiFileTransferProtocol,iuprevoduznaiprotokolzaprenos
fajlova(datoteka).

38
KursWebprogramiranjaPHPMySQL

PodeavanjanaCPANELU

Kreiranje baze, kreiranje usera, passworda, import SQL fajla sa tabelom sa


podacima...

UiteuCPANEL>LTMnaMySQL
Database Wizards (arobnjak za
kreiranjebaze)...

KREIRATIBAZU:mojabaza
USERNAME:mojabaza@localhost>ADDUSER(KreiralisteUSERA)
PASSWORD:123456

Kreirali ste Bazu podataka sa parametrima povezivanja koji se poklapaju sa


parametrimauzfolderaConnection

>LTMnaPhpMyAdmin>tusevidikreiranabazamojabaza...

>LTMnamojabaza>IMPORTujteSQLfajlsagdejetabelasapodacimasa
Vaegraunara...

UkreiranubazuuCPANELuubaenajetabelasapodacimauoblikuSQLfajla
... prebacivanjem php fajla iz foldera Connection (FAJL 2) Vaa baza biva
povezanasaskriptom...

Postojanjem dva fajla sa parametrima konekcije (folder konekcija) koje


koristimo po potrebi omoguavate da testirate fajl u lokalu i potom ga
posaljetenaremoteserver.

39
KursWebprogramiranjaPHPMySQL

ExportSQLBasenaRemoteServer

Posleprebacivanjasadrajafolderasajta,potrebnojeprebacitiiSQLbazukao
prateielementsajta.

PretogaseSQLBazamoraExportovatikaoSkripta(ekstenzijaSQL)...
EXPORTTABELEILIKOMPLETBAZESASVIMTABELERADISEPREKOTASTERA
EXPORTPOSLEEGASEPOJAVLJUJEPROZORGDETREBAPODESITI

EKIRATIOPCIJU
ADDDROPTABLE

ODEKIRATIOPCIJU
ADDIFNOTEXISTS

EXPORT:SQL(daizlaznifajl
imaekstenziju.sql)...

KLIKOMNAOKPOJAVUJEsE
PROZOR GDE DEFINIETE
GDE DA SNIMITE
EXPORTOVANI FAJL I POD
KOJIMNAZIVOM...



Preporuka je da naziv fajla ima ime fajla i datum da se zna kada je
BEKAPOVANO.

Preko ranije opisane komande IMPORT fajl sa ekstenzijom .sql se ubacuje u


bazusasvimpodeavanjimakaoipodacima.

FajljesninmljenkaokodkojisemoeotvoritiiNotepadom.Otvaranjemtog
fajla pojavljuje se kod koji pokazuje sadraj SQL baze sve tabele, njihov
formatisl.

OdlaskomnaRemoteServerotvoritinjihovCPanel>otvoritiPhpMyAdmin>
importovatiSQLskriptu...

40
KursWebprogramiranjaPHPMySQL

SQLfajlsapodacimajeubaenubazuiautomatskipovezansastranicamajer
ste pri prebacivanju fajla na Remote Server prebacili i parametre konekcije
DreamweaversaSQL.

41

You might also like