13
INFORMACIONI SISTEM SKOLE Predmetni asistent: Doc. Dr Ljubica Kazi Sk 2020/21 TEMA: OSNOVE PHP PROGRAMIRANJA 1. DEFINICIJA PHP PHP, a scripting language designed specifically for use on the Web, is a tool for creating dynamic Web pages. Rich in features that make Web design and programming easier, PHP is in use on more than 20 million domains (according to the Netcraft survey at www.php.net/usage.php). PHP stands for PHP: HyperText Preprocessor. Creator is Rasmus Lerdorf and it was called Personal Home Page tools. The syntax of the PHP language is similar to the syntax of C. 2. ALATI ZA RAD Da bismo omogućili izvršavanje programskog koda PHP, potrebno je instalirati web serverski softver Apache. Najčešće se ovaj softver distribuira u okviru paketa zajedno sa DBMS jezgrom MySQL. Neki od takvih paketa alata su: XAMPP [1] WAMP [2] Aplikaciju čine fajlovi sa ekstenzijom PHP. Sami fajlovi su u suštini tekstualne datoteke. PHP kod se može pisati u tekst editorima, ali je preglednije koristiti specijalizovane editore ili razvojna okruženja: Notepad ++ Visual studio code i drugi. 3. RAD SA ALATOM XAMPP I PODEŠAVANJA Kada se pokrene XAMPP control panel, startuju se servisi za Apache i MySQL. Za oba servisa se mogu podesiti portovi na tasteru CONFIG u odgovarajućem redu i gornjem tasteru config.

1. DEFINICIJA PHP

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1. DEFINICIJA PHP

INFORMACIONI SISTEM SKOLE

Predmetni asistent: Doc. Dr Ljubica Kazi Sk 2020/21

TEMA: OSNOVE PHP PROGRAMIRANJA

1. DEFINICIJA PHP

PHP, a scripting language designed specifically for use on the Web, is a tool for creating

dynamic Web pages. Rich in features that make Web design and programming easier, PHP is in use on more than 20 million domains (according to the Netcraft survey at

www.php.net/usage.php). PHP stands for PHP: HyperText Preprocessor. Creator is Rasmus Lerdorf and it was called Personal Home Page tools. The syntax of the PHP language is

similar to the syntax of C.

2. ALATI ZA RAD

Da bismo omogućili izvršavanje programskog koda PHP, potrebno je instalirati web

serverski softver Apache. Najčešće se ovaj softver distribuira u okviru paketa zajedno sa DBMS jezgrom MySQL. Neki od takvih paketa alata su:

XAMPP [1] WAMP [2]

Aplikaciju čine fajlovi sa ekstenzijom PHP. Sami fajlovi su u suštini tekstualne datoteke.

PHP kod se može pisati u tekst editorima, ali je preglednije koristiti specijalizovane editore ili razvojna okruženja:

Notepad ++

Visual studio code i drugi.

3. RAD SA ALATOM XAMPP I PODEŠAVANJA

Kada se pokrene XAMPP control panel, startuju se servisi za Apache i MySQL. Za oba servisa se mogu podesiti portovi na tasteru CONFIG u odgovarajućem redu i gornjem

tasteru config.

Page 2: 1. DEFINICIJA PHP

Apache – u fajlu httpd.conf, PODEŠAVANJE PORTOVA: 80, 88, 96 MySQL – u fajlu my.ini, PODEŠAVANJE PORTOVA: 3306, 3307, 3308, 3309

Aplikacija se postavlja u folder: c:/xampp/htdocs, gde se kreira podfolder sa aplikacijom.

Startovanje aplikacije, u zavisnosti od porta i naziva foldera: http://localhost:88/biblioteka/

STRUKTURA WEB APLIKACIJE

SA DINAMIČKOM INTEGRACIJOM IZ DELOVA

Ukoliko se koristi pristup da se web aplikacija dinamički integriše prilikom izvršavanja iz delova, onda bismo imali sledeću strukturu:

BANER

TRAKA SA STATUSOM I LINKOVIMA ZA PRIJAVU I ODJAVU

MENI GLAVNI DEO APLIKACIJE

FUTER

PRIMER:

Page 3: 1. DEFINICIJA PHP

KLJUČNI DELOVI PROGRAMSKOG KODA Početna stranica

Početna stranica koja se učitava u php aplikaciji se zove index.php.

Pozicioniranje php koda i odnos prema html

Php kod se može pozicionirati: u okviru html koda kao osnove, kada imamo grafički prikaz

čist php kod, bez html delova.

Php kod se postavlja u okviru:

<?php

?>

Kada se kombinuje sa html kodom, moguće je php deo umetnuti na početku pre html dela, unutar html dela u okviru head ili body odeljka. Kada se postavi na početku iznad html dela,

prvi se izvršava.

Način pisanja koda

Page 4: 1. DEFINICIJA PHP

Case sensitive PHP kod je CASE sensitive. To znači da se mora voditi računa o velikim i malim

slovima. MySQL kao DBMS po defaultu nije CASE sensitive, ali se može podesiti da jeste. To

znači da se u SQL upitima kojima se obraćamo MySQL bazi podataka iz PHP koda ipak treba obratiti pažnja na velika i mala slova u nazivima tabela, polja i sl. Najbolje

je ustanoviti konvenciju koje je potrebno da se pridržavamo i u SQL skriptu i kasnije u kodu SQL upita. Npr. ako ima više reči, najbolje je koristiti PascalCasing ili

odvajanje reči crticom: Naziv_Sa_Više_Reči.

Korišćenje apostrofa Koriste se 3 vrste apostrofa:

jednostruki (vrednosni) „ … „ – za obeležavanje stringa koji se koristi unutar naredbi, kao podstring unutar SQL upit stringa za konstante koje se pridružuju poljima i sl.

dvostruki (vrednosni) “ … “– za obeležavanje stringa koji se koristi unutar naredbi, kao podstring unutar SQL upit stringa za konstante koje se pridružuju poljima i sl.

kosi (strukturni) `… `- u okviru SQL upita, za obeležavanje naziva baze podataka, naziva tabela, naziva polja u tabelama baze podataka.

Integracija delova aplikacije

Za potrebe run-time učitavanja i integracije delova u okviru celine koriste se naredbe:

include – za manje značajne delove koda, bez kojih bi eventualno moglo da se nastavi izvršavanje. Taj deo koji se dodaje ukoliko ima neki problem (ne postoji ili

ima gresku) se preskace i nastavlja se izvrsavanje preostalog koda. PRIMER: include „NazivPodfoldera/NazivFajla.php‟

<?php include 'delovi/zaglavljeindex.php';?>

require – za značajnije delove koda, bez kojih ne može da se izvršava ostatak programskog koda. Taj deo koji se dodaje ukoliko ima neki problem (ne postoji ili

ima gresku) prekida izvrsavanje preostalog koda. PRIMER: require „NazivPodfoldera/NazivFajla.php‟

require 'delovi/klase/Konekcija.php';

Rad sa promenljivama Promenljive u php se obeležavaju dolarskim znakom $.

Promenljive nije potrebno deklarisati za odreĎeni tip podatka.

Dodela vrednosti se realizuje simbolom = Treba razlikovati proveru, tj. uporeĎivanje vrednosti unutar uslova sa dva znaka jednakosti

==. PRIMER:

$noviKorisnik =”Vrednost”;

Postoji mogućnost type castinga, odnosno transformacija i preciziranja tipa podatka. $VrednostString =(string) $VrednostInteger;

Rad sa stringovima String vrednosti mogu se spajati sa ostalim tekstom na 2 načina:

korišćenjem simbola tačke PRIMER: $ImePrezime=$Ime.” “.$Prezime;

umetanje unutar drugog stringa PRIMER: $ImePrezime=”Marko Markovic”;

echo “Dobrodosli, $ImePrezime”;

Page 5: 1. DEFINICIJA PHP

Rad sa kodnim rasporedima Da bi se specijalni simboli slova latinice ili ćirilice mogli koristiti potrebno je izvršiti

prilagoĎavanja: na nivou baze podataka

PRIMER: Kreiranje baze podataka:

CREATE DATABASE `TURISTICKAAGENCIJA` CHARACTER SET utf8 COLLATE utf8_general_ci;

Postavljanje upita – pre izvršavanja SQL upita pokreće se ova naredba:

mysql_query('SET NAMES "utf8"',$ konekcijaMYSQL); na nivou programskog koda html

<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="sr-RS" xml:lang="sr-RS">

<meta charset="UTF-8"> na nivou podešavanja kodnog rasporeda dodeljenog prilikom snimanja samog fajla

php Primer: Potrebno je podesiti kodni raspored snimanja samog php fajla - u okviru

Notepad ++ u ranijim verzijama je u okviru Encoding postojala opcija Encode in UTF-

8 without BOM; u novijim verzijama ta opcija ne postoji, već se samo postavlja UTF-8. BOM predstavlja nevidljivi bajt na početku fajla PHP koji sprečava prikaz

specijalnih slova latinice i ćirilice.

Prikaz sadržaja na ekran Koriste se sledeće funkcije:

print ”...” ili print ()– prikazuje vrednost stringa na ekran i vraća vrednost uspeha (1), pa se može koristiti u izrazima. Može uzeti samo jedan parametar.

echo ”...” ili echo () – prikazuje vrednost stringa na ekran i ne vraća vrednost pozivom (tip je void).Može uzeti više parametara. Brži je od print.

die() ili exit() – isto je – prikazuje vrednost stringa poruke na ekran i istovremeno

izvršava izlaz iz tog dela programa sa statusom da je došlo do greške. Ne vraća vrednost.

Specifično podešavanje mora se realizovati kada echo sadrži html. S obzirom da echo uzima

string u okviru ”...”, a sam html u podešavanju atributa elemenata takoĎe koristi ”...”, da se ne bi tumačilo da je string prekinut prvom pojavom unutrašenjeg navodnika iz html-a,

potrebno je: prvi način: postaviti kosu crtu ispred svakog internog navodnika ovako: \"

PRIMER: echo "<font face=\"Trebuchet MS\" color:#3F4534 size=\"2px\">$DATUMVESTI</font><br/>";

Page 6: 1. DEFINICIJA PHP

drugi način: koristiti jednostruke vrednosne apostrofe da se oiviči podešavanje

atributa u html PRIMER: echo "<font face=‟Trebuchet MS‟ color:#3F4534 size=‟2px ‟>$DATUMVESTI</font><br/>";

Navigacija

Učitavanje stranica u web aplikaciji može biti: interakcijom sa korisnikom – html elementi:

o hyperlink PRIMER: <a href="index.php" ><font face="Trebuchet MS" color="black" size="2px">&nbsp;&nbsp;Prikaz vesti</font></a>

o form action – sa navoĎenjem stranice koja se učitava nakon izbora dugmeta: PRIMER: <form ACTION="prijavaprovera.php" METHOD="POST">

- bez stranice koja se učitava, što uzrokuje da se učitava ponovo ista

stranica: PRIMER: <form ACTION=" " METHOD="POST">

Kada se ponovo učitava ista stranica, potrebno je proveriti da li je u pitanju prvo učitavanje, ili učitavanje nakon korisnikovog pokretanja form action

izborom nekog dugmeta. Primer: provera i izvršavanje koda za specifičnu situaciju ponovnog

učitavanja iste stranice; ovaj deo koda se izvršava samo ako je pritisnut

taster koji se zove submit. Može biti više raznih dugmadi i više blokova kodova za odgovarajuće dugme. Ovaj kod se stavlja na početku iste stranice

u php bloku, iznad html dela. if(isset($_POST['submit']))

{KOD KOJI SE IZVRŠAVA KADA SE FORMA PONOVO UČITA, KAO REAKCIJA NA DUGME

} automatskim redirektovanjem, tj. učitavanjem druge stranice – php naredba:

PRIMER: if ($status=='admin'){ header ('Location:Welcome.php'); } else { header ('Location:prijava.php');

}

Razmena podataka izmeĎu stranica Razmena podataka izmeĎu stranica se može realizovati:

sesija – postavljanjem podataka u promenljive koje pripadaju sesiji, na raspolaganju su svim stranicama iste aplikacije, dok je sesija otvorena.

redirektovanjem putem URL(get) - prosleĎuje se vrednost promenljive u okviru URL na drugu stranicu. Tretira se kao get metoda i tako se očitava na drugoj stranici. PRIMER: header ('Location:PrikazPodataka.php?filter=4');

get metoda – vrednosti iz elemenata forme se prosleĎuju promenljivima i

vrednostima koje se vide u URL PRIMER: form ACTION="PrikazPodataka.php" METHOD="GET"

Očitavanje vrednosti u okviru druge stranice: $PreuzetaVrednost=$_GET['NazivGrafičkeKontroleForme'];

POST metoda – prosleĎivanje podataka tako da nisu vidljivi na drugi stranicu. PRIMER: form ACTION="PrikazPodataka.php" METHOD="POST" Očitavanje u okviru druge stranice: $PreuzetaVrednost=$_POST['NazivGrafičkeKontroleForme'];

Rad sa sesijama

Omogućavanje da se radi sa naredbama koje se tiču sesije

Page 7: 1. DEFINICIJA PHP

session_start();

Otvaranje sesije – prilikom prve dodele vrednosti u neku promenljivu

$_SESSION["korisnik"] = $noviKorisnik;

Čitanje podataka iz sesije $korisnik=$_SESSION["korisnik"];

Poništavanje svih promenljivih u sesiji

session_unset();

Uništavanje sesije

session_destroy();

Elementi forme – kreiranje i očitavanje vrednosti

datum: <input name="datum" type="date" required />

broj: <input name="cenazadan" type="number" size="80" required maxlength="5" VALUE="" />

tekst:

<input name="nazivmesta" type="text" size="80" required maxlength="250" VALUE="" TABINDEX=7/>

veći tekst u više redova:

<textarea name="opissmestaja" rows="8" cols="60" required />unesite...</textarea>

combo sa fiksnim vrednostima:

<select name="kategorijasmestaja" required TABINDEX=9> <option value="izaberite">izaberite...</option>

<option value="hotel">hotel</option> <option value="privatan smestaj">privatan smestaj</option>

<option value="hostel">hostel</option> </select>

file uplad kontrola: <input type="file" name="file"><br><br>

check box:

<font face="Trebuchet MS" color="darkblue" size="2px"><input type="checkbox" name="karTV" value="TV">TV</font></br>

combo sa dinamičkim vrednostima:

<select name="NazivDrzave" required TABINDEX=9>

<option value="izaberite">izaberite...</option> <?php

if ($num_rowsdrzave>0) {

for ($rowdrzava = 0; $rowdrzava < $num_rowsdrzave; $rowdrzava++) {

$NAZIVDRZAVE=mysql_result($resultdrzave,$rowdrzava,"NAZIV");

Page 8: 1. DEFINICIJA PHP

echo "<option value=\"$NAZIVDRZAVE\">$NAZIVDRZAVE</option>";

} //for

?> </select>

Upload fajlova

$name = $_FILES["file"]["name"]; //$size = $_FILES['file']['size']

//$type = $_FILES['file']['type']

$tmp_name = $_FILES['file']['tmp_name'];

$error = $_FILES['file']['error'];

if (isset ($name)) {

if (!empty($name)) {

$location = 'images/';

if (move_uploaded_file($tmp_name, $location.$name)) {

//echo 'Uploaded'; }

} else

{ //echo 'please choose a file';

}

}

Rad sa XML

XML fajl: <?xml version="1.0" encoding="utf-8"?>

<konekcija> <host>localhost:3309</host>

<korisnik>root</korisnik>

<sifra></sifra> <nazivbaze>turistickaagencija</nazivbaze>

</konekcija>

php kod za čitanje iz XML fajla $xml=simplexml_load_file("parametrikonekcije.xml") or die("Error: Cannot create object");

$host=$xml->host; $korisnik=$xml->korisnik;

$sifra=$xml->sifra;

$this->nazivbaze=$xml->nazivbaze;

Rad sa bazom podataka

Kreiranje MySQL baze podataka sql skriptom

CREATE DATABASE `Baza_dokumenti` CHARACTER SET utf8 COLLATE utf8_general_ci;

Page 9: 1. DEFINICIJA PHP

create table `Baza_dokumenti `.`DOKUMENT`

(

IDDOKUMENTA int NOT NULL AUTO_INCREMENT PRIMARY KEY,

NAZIVDOKUMENTA varchar(300) not null,

ORGJEDINICA int not null,

DATUMOBJAVE date,

DATUMUSVOJEN date,

OPISDOKUMENTA text,

IDTIPA` int not NULL

);

create table `dokument`.`TIPDOKUMENTA`

(

IDTIPDOKUMENTA int NOT NULL AUTO_INCREMENT PRIMARY KEY,

NAZIVTIPA varchar(60) not null

);

ALTER table `dokument`.`DOKUMENT` add constraint FK_TIPDOKUMENTA foreign key (IDTIPA)

references `dokument`.`TIPDOKUMENTA` (IDTIPDOKUMENTA) on delete restrict on update cascade;

Verzije php naredbi za rad sa mysql bazom podataka starija verzija – naredbe tipa mysql

novija verzija – naredbe tipa mysqli

Starija verzija mysql

// ostvarivanje konekcije ka DBMS MySQL

$konekcijaMYSQL = mysql_connect($host, $korisnik, $sifra);

// ostvarivanje konekcije ka bazi podataka $konekcijaDB = mysql_select_db($this->nazivbaze, $this->konekcijaMYSQL);

// zatvaranje konekcije ka DBMS

mysql_close($konekcijaMYSQL;

// sql upit tipa select

$SQL = "SELECT * FROM `".$azapodataka."`.`KORISNIK` WHERE KORISNICKOIME='".$korisnickoime."' AND SIFRA='".$sifra."'";

// izvršavanje sql upita tipa select i punjenje memorijske kolekcije zapisa

$result = mysql_query($SQL);

// odreĎivanje broja zapisa u memorijskoj kolekciji $num_rows = mysql_num_rows($result);

// for ciklus for ($row = 0; $row < $num_rows; $row++)

Page 10: 1. DEFINICIJA PHP

// izdvajanje polja iz jednog reda zapisa iz memorijske kolekcije

MESEC=mysql_result($result,$row,"MESEC");

// aktivan sql upit $SQL = "INSERT INTO `".$bazapodataka."`.`KORISNIK` (IME, PREZIME, KORISNICKOIME,

SIFRA, EMAIL, URLSlike, statusucesca, DatumRodjenja) VALUES ('$Ime', '$Prezime', '$KorisnickoIme', '$Sifra', '$Email', '', '$Status', '$DatumRodjenja')";

// izvršavanje aktivnog upita, gde vraćena vrednost može biti 1 ili 0 i govori o uspehu

realizacije upita

$retval = mysql_query( $SQL, $konekcijaMYSQL);

Novija verzija mysqli

// uspostavljanje konekcije sa DBMS i bazom podataka

$konekcijaDB = mysqli_connect($host,$korisnik,$sifra,$nazivbaze); // izvršavanje aktivnog upita $SQL = "INSERT INTO `".$this->bazapodataka."`.`DOKUMENT` (NAZIVFAJLA, NAZIVDOKUMENTA,

ORGJEDINICA, DATUMOBJAVE, DATUMUSVOJEN, OPISDOKUMENTA, IDTIPA, KORISNIK) VALUES

('$NazivFajla','$NazivDokumenta', $OrgJedinica, $DatumO, $DatumU, '$OpisDokumenta', $IDTIPA,

$KORISNIK)";

$retval = mysqli_query($konekcijaDB, $SQL);

// izvršavanje upita tipa select

$SQL = "SELECT * FROM `".$azapodataka."`.`KORISNIK` WHERE

KORISNICKOIME='".$korisnickoime."' AND SIFRA='".$sifra."'";

$result = mysqli_query($konekcijaDB, $SQL);

// while ciklus

while ($row = $result->fetch_assoc()){

// izdvajanje vrednosti

$ID= $row['IDDOKUMENTA'];

Rad sa transakcijama

// otvaranje transakcije mysql_query("SET AUTOCOMMIT=0");

mysql_query("START TRANSACTION");

// izvršavanje više aktivnih upita $SQL = "INSERT INTO ...";

$retval = mysql_query( $SQL, $konekcijaMYSQL);

$SQL = "UPDATE ...";

$retval = mysql_query( $SQL, $konekcijaMYSQL);

// završavanje transakcije

Page 11: 1. DEFINICIJA PHP

mysql_error();

if (empty($greska)) {

mysql_query("COMMIT"); echo "Snimljeno!";

} else

{ mysql_query("ROLLBACK");

echo "NIJE Snimljeno! Greska:".$greska;

}

Rad sa klasama

Strukturu klase čine atributi i metode. Modifikatori pristupa koji se najčešće koriste su private i public.

Za korišćenje atributa i metoda unutar klase obavezno je pisanje $this-> Pozivanje metoda i atributa izvan klase podrazumeva instanciranje, a zatim korišćenje

$objekat->atribut ili $objekat->metoda.

Primer klase:

<?php class ZemljaDB{

// atributi

private $Konekcija; private $bazapodataka;

public $kolekcijazemlje; public $brojzapisazemlje;

// metode

// ------- konstruktor

public function __construct($NovaKonekcija, $NovaBaza){ // podrazumevamo da je otvorena konekcija, u okviru klase Konekcija

$this->Konekcija = $NovaKonekcija;

$this->bazapodataka = $NovaBaza; }

public function UcitajSveZemlje(){

$SQLdrzave = "select * from `".$this->bazapodataka."`.`ZEMLJA` ORDER BY NAZIV ASC"; $this->kolekcijazemlje = mysql_query($SQLdrzave);

$this->brojzapisazemlje = mysql_num_rows($this->kolekcijazemlje); }

public function SnimiNovuZemlju($Oznaka, $Naziv, $BrojMesta) { $SQL = "INSERT INTO `".$this->bazapodataka."`.`ZEMLJA` (OZNAKA, NAZIV,

BROJMESTA) VALUES ('$Oznaka', '$Naziv', $BrojMesta)"; $retval = mysql_query( $SQL, $this->Konekcija->konekcijaMYSQL);

}

public function DajVrednostPolja ($nazivpolja, $rednibrojzapisa) {

Page 12: 1. DEFINICIJA PHP

$Vrednost=mysql_result($this->kolekcijazemlje,$rednibrojzapisa,$nazivpolja);

return $Vrednost; }

public function ObrisiZemlju($Oznaka) {

$SQL = "DELETE FROM `".$this->bazapodataka."`.`ZEMLJA` WHERE OZNAKA='".$Oznaka."'";

$retval = mysql_query( $SQL, $this->Konekcija->konekcijaMYSQL ); $greska= mysql_error();

return $retval; }

public function UcitajZemlju($Oznaka) { //

$SQL = "select * from `".$this->bazapodataka."`.`ZEMLJA` WHERE OZNAKA='".$Oznaka."'";

$this->kolekcijazemlje = mysql_query($SQL);

$this->brojzapisazemlje = mysql_num_rows($this->kolekcijazemlje);

} // kraj procedure

public function IzmeniZemlju($StaraOznaka, $Oznaka, $Naziv, $BrojMesta) {

$SQL = "UPDATE `".$this->bazapodataka."`.`ZEMLJA` SET OZNAKA='".$Oznaka."', NAZIV='".$Naziv."', BROJMESTA=".$BrojMesta." WHERE OZNAKA='".$StaraOznaka."'";

//echo $SQL;

$retval = mysql_query( $SQL, $this->Konekcija->konekcijaMYSQL ); $greska= mysql_error();

return $retval;

}

public function ProveriJedinstvenostOznake($NovaOznaka){ $SQL = "select * from `".$this->bazapodataka."`.`ZEMLJA` WHERE

OZNAKA='".$NovaOznaka."'";

$result = mysql_query($SQL); $num_rows = mysql_num_rows($result);

$postoji=false; if ($num_rows>0) {

$postoji=true; }

return $postoji; }

} // zavrsetak klase

?>

Korišćenje klase

require 'delovi/klase/ZemljaDB.php';

Page 13: 1. DEFINICIJA PHP

$novaZemljaDB = new ZemljaDB($novaKonekcija, $bazapodataka);

$postoji = $novaZemljaDB->ProveriJedinstvenostOznake($Oznaka); if (!$postoji)

{ $novaZemljaDB->SnimiNovuZemlju($Oznaka, $Naziv, $BrojMesta);

}

Prijava-odjava korisnika

Početna stranica sadrži u okviru trake ispod banera hiper link ka stranici za prijavu

korisnika. U okviru stranice za prijavu, nakon unosa korisničkog imena i šifre, na tasteru

prijava pokreće se kod kojim se proverava u bazi podataka da li postoji taj korisnik. Ukoliko postoji korisnik, otvara se sesija i postavljaju vrednosti podataka korisnika u

promenljive sesije. Nakon toga se automatski redirektuje učitavanje nove stranice koja u traci ispod

banera ima hiperlink za odjavu korisnika. Korišćenjem hiperlinka za odjavu, automatski se prikazuje početna stranica

index.php.

Kada se ponovo učita index.php izvršava se kod za poništavanje sesije i to je konačno deo koda kojim se suštinski odjavljuje korisnik.

LITERATURA

[3] Janet Valade: PHP & MySQL, www.it-ebooks.info [1] xamp - https://www.apachefriends.org/index.html

[2] wamp - http://www.wampserver.com/en/

TEST PITANJA

Razlika strukturnih i vrednosnih apostrofa. Razlika include i require.

Kako se spajaju strigovi? Rad sa kodnim rasporedima, UTF 8 – nivoi podešavanja.

Naredba za prikaz sadržaja na ekran - echo i die. Specifičnosti sintakse prilikom prikaza html sadržaja unutar echo naredbe.

Načini učitavanja drugih stranica. Ponovno ucitavanje stranice kada je form action prazan – kako realizujemo

proveru.

Nacini razmene podataka izmedju stranica. Rad sa sesijom.

Koja je php naredba za čitanje podataka putem post? Realizacija COMBO boxa sa html uz dinamicko ucitavanje i prikaz sadrzaja.

Realizacija upload fajlova. Naredbe za konektovanje na DBMS i bazu podataka u mysql i mysqli.

Naredbe za izvršavanje upita tipa select u u mysql i mysqli. Rad sa transakcijama u PHP

Rad sa klasama u PHP.

Login / Log off – realizacija.