SOFTVERSKO INŽENJERSTVO 2 SK 2020/21 PREDMETNI NASTAVNIK: Doc. Dr Ljubica Kazi Datum: 11.12.2020. TEMA 16 - TEMA OSNOVE PHP PROGRAMIRANJA DOPUNA U ODNOSU NA ODRZANI CAS 1. DEFINICIJA PHP PHP je progamski jezik kreiran od strane Rasmus Lerdorf i nazvan je “Personal Home Page ” tools. Sintaksa PHP je slična sintaksi C jezika. U primeni je na više od 20 miliona domena (www.php.net/usage.php ). PHP se procesira na veb serverima od strane PHP interpretera. 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. 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.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
SOFTVERSKO INŽENJERSTVO 2
SK 2020/21 PREDMETNI NASTAVNIK: Doc. Dr Ljubica Kazi
Datum: 11.12.2020.
TEMA 16 - TEMA OSNOVE PHP PROGRAMIRANJA DOPUNA U ODNOSU NA ODRZANI CAS
1. DEFINICIJA PHP
PHP je progamski jezik kreiran od strane Rasmus Lerdorf i nazvan je “Personal Home Page” tools. Sintaksa PHP
je slična sintaksi C jezika. U primeni je na više od 20 miliona domena (www.php.net/usage.php). PHP se procesira na veb serverima od strane PHP interpretera.
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.
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.
Php kod se može pozicionirati: u okviru html koda kao osnove, kada imamo grafički prikaz
čist php kod, bez html delova.
Ključni elementi sintakse kojima se odreĎuje Php kod - postavlja se 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.
Ključne karakteristike sintakse PHP jezika
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.
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: \"
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
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:
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);
public function SnimiNovuZemlju($Oznaka, $Naziv, $BrojMesta) { $SQL = "INSERT INTO `".$this->bazapodataka."`.`ZEMLJA` (OZNAKA, NAZIV, BROJMESTA) VALUES
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