Professional Documents
Culture Documents
Kurs Web Programiranja Skripta
Kurs Web Programiranja Skripta
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
tajedinamikisajt?
Dabisteshvatiliividelirazlikuizmeudinamikogistatikogsajtadonji
grafikonnajboljeprikazujesutinskurazlikuinaravnoprednostradauPHPu.
Sutinskarazlikajeustrukturiiorganizacijiwebstranica.
3
KursWebprogramiranjaPHPMySQL
WAMPinstalacijaLocalHosta
ZarazlikuodHTMLfajlovakojisemogurenderovatiprekoBrowser
a jednostavnim klikom na fajl, PHP fajlovi se moraju prebaciti na
ServerdabisemoglitestiratiprekoBrowsera.
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)
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
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>...
>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
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.
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'
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> </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
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;?>
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:
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.
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.
37
KursWebprogramiranjaPHPMySQL
PovezivanjenaREMOTESERVERjekorakgdejepotrebnoimatenekolikoFTP1parametara
zapovezivanje:
USERNAMEkorisnikoime(obinosamidajetekod
nariivanjahostinga)
PORT:21
HOST:___________________
PASSWORD:(dobijaseodstrane
provajderakodzakupahostinga)
saovimparametrimaVisepovezujetesaREMOTE
serverom.
KliknitenaFILE>SITEMANAGER>NEWSITE(u
desnopoljeupiitenazivkonekcije),
Udesnomprozoruupiiteparametrekaonaslici:
LOGINTYPE:Normal
>CONNECT
1
FTPjeskraenicaodreiFileTransferProtocol,iuprevoduznaiprotokolzaprenos
fajlova(datoteka).
38
KursWebprogramiranjaPHPMySQL
PodeavanjanaCPANELU
UiteuCPANEL>LTMnaMySQL
Database Wizards (arobnjak za
kreiranjebaze)...
KREIRATIBAZU:mojabaza
USERNAME:mojabaza@localhost>ADDUSER(KreiralisteUSERA)
PASSWORD:123456
>LTMnaPhpMyAdmin>tusevidikreiranabazamojabaza...
>LTMnamojabaza>IMPORTujteSQLfajlsagdejetabelasapodacimasa
Vaegraunara...
UkreiranubazuuCPANELuubaenajetabelasapodacimauoblikuSQLfajla
... prebacivanjem php fajla iz foldera Connection (FAJL 2) Vaa baza biva
povezanasaskriptom...
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.
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