Izgradnja Web aplikacija Izgradnja Web aplikacija Prof. dr.sc. Dragutin Kermek Sveučilište u Zagrebu Fakultet organizacije i informatike Pavlinska 2, Varaždin 42000 [email protected]11. dio Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin 2 Izgradnja Web aplikacija - FOI Uvod u programiranje na strani poslužitelja/CGI. Programski jezik PHP. Izvršavanje obrade (pretraživanje, zapis podataka i sl.) na strani poslužitelja. Slanje e-mail poruke. Generiranje HTML stranica. Ponovno korištenje koda. Objektna orijentacija. Rad s datumom i vremenom. Korištenje i administriranje baze podataka (MySQL). Realizacija autentikacije i autorizacije korisnika. Programiranje na strani poslužitelja
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.
function brojElemenata($broj) {print "Ukupno elemenata: $broj<br>";
}
function ispisiElemente($lista) {foreach ($lista as $i) {
print $i . "<br>";}
}?>Primjer40_2 – Vlastita klasa - Stog
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin26Izgradnja Web aplikacija - FOI
Rad s datumom i vremenom
Datumski i vremenski podaci imaju značajnu ulogu u mnogim dijelovima Web
aplikacija.
checkdate - validacija gregorijanskog datuma date - formatira lokalno vrijeme/datuma getdate - daje informaciju u datumu/vremenu gettimeofday - daje važeće vrijeme gmdate - formatira GMT lokalno vrijeme/datuma gmmktime - postavlja UNIX timestamp za GMT datumgmstrftime - formatira GMT lokalno vrijeme/datum prema
lokalnim postavkamalocaltime - daje lokalno vrijeme microtime - daje UNIX timestamp s mikrosekundama mktime - daje UNIX timestamp za datum strftime - formatira vrijeme/datuma prema lokalnim
postavkamastrtotime - parsira engleski tekstualni opis datuma/vremena
u UNIX timestamp time - daje važeći UNIX timestamp
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin27Izgradnja Web aplikacija - FOI
Rad s datumom i vremenom / 1.
Kodovi za date funkciju:
d,j - dan u mjesecu (01-31, 1-31) D,l - dan u tjednu (Mon-Sun, Monday-Sunday) F,M - mjesec u godini (January-December, Jan-Dec) g,h - sat u danu u 12 satnom formatu (1-12, 01-12) G,H - sat u danu u 24 satnom formatu (0-23, 00-23) m,n - mjesec u godini (01-12, 1-12)s - sekunde u minuti (00-59)t - ukupan broj dana u mjesecuU - ukupan broj sekundi od 01.01.1970.w - dan u tjednu (0-6) y - godina u 2 brojnom formatuY - godina u 4 brojnom formatu z - dan u godini (0-365)
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin28Izgradnja Web aplikacija - FOI
Rad s datumom i vremenom / 2.
<?phpecho "Danas je " . date("d.m.Y") . "<br>";echo "Sada je " . date("H:i:s") . "<br>";echo "Ovo je " . date("w.") . " dan u tjednu" . "<br>";echo "Ovo je " . date("z.") . " dan u godini" . "<br>";?>
Primjer41 – rad s datumom i vremenom
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin29Izgradnja Web aplikacija - FOI
RAD S BAZAMA PODATAKA
Složeni projekti uglavnom su temeljeni na primjeni baza podataka. U posljednje
vrijeme kada se spominje ozbiljna poslovna primjena WWW-a tada on nije
iznimka od nepisanog pravila primjene baza podataka.
Otvorenost WWW donosi znatno više problema na području sigurnosti i rada
na zaštiti baza podataka.
Na predmetu “Izgradnja Web aplikacija" koristi se baza podataka MySQL
kojoj se pristupa iz PHP-a.
MySQLPHP
engine
Web
server
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin30Izgradnja Web aplikacija - FOI
Otvaranje veze prema poslužitelju MySQL-a
Prvi korak je otvaranja veze prema poslužitelju baze podataka:
resource mysql_connect ( [string server [, string username [, string password [, bool new_link [, int client_flags]]]]])
Svi paremetri su opcionalni tako da se uzimaju pretpostavljene vrijednosti, a to
su “localhost” za server, username se preuzima od vlasnika procesa i password
je prazan
Veza sa MySQL se može uspostaviti funkcijom mysql_pconnect koja otvara
stalnu vezu prema bazi koja se ne zatvara ni sa mysql_close funkcijom
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin31Izgradnja Web aplikacija - FOI
Povezivanje na BP kod MySQL-a
Nakon otvaranja veze prema poslužitelju baze podataka slijedi odabir baze
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin37Izgradnja Web aplikacija - FOI
SQL INSERT kod MySQL-a / 1.
if(! $rs) {echo "Problem kod upisa u bazu podataka!<br>";echo mysql_error();exit;
}
mysql_close($dbc);?>
Primjer42_1 – SQL INSERT kod MySQL-a
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin38Izgradnja Web aplikacija - FOI
PHP funkcije kod MySQL-a
mysql_affected_rows - broj redaka koji su obuhvaćeni prethodnom operacijommysql_change_user - promjena korisnika aktivne vezemysql_client_encoding - vraća tekst karakter setamysql_close - zatvaranje vezemysql_connect - otvaranje veze prema MySQL poslužiteljumysql_create_db - kreiranje baze podatakamysql_data_seek - pomak internog pokazivača rezultatamysql_db_query - slanje SQL upitamysql_drop_db - brisanje baze podatakamysql_errno - vraća vrijednost poruke pogreške prethodne operacijemysql_error - vraća tekst poruke pogreške prethodne operacijemysql_fetch_array - preuzima redak rezultata kao asocijativno poljemysql_fetch_field - vraća informaciju o stupcu iz rezultata kao objektmysql_list_tables - lista tablica u MySQL DMBS-umysql_num_fields - vraća broj polja u rezultatumysql_num_rows - vraća broj redaka u rezultatumysql_pconnect - otvara perzistentnu vezu prema MySQL poslužiteljumysql_result - vraća rezultatmysql_set_charset - postavlja krarakter setmysql_tablename - vraća naziv tablice
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin39Izgradnja Web aplikacija - FOI
Proširenje funkcioalnosti rada s MySQL-a
Sastoji se on nekoliko klasa:
mysqli – predstavlja vezu između PHP i MySQL baze podataka
mysqli_stmt – predstavlja pripremljenu naredbu
mysqli_result – predstavlja rezultat izvršenja naredbe nad bazom podataka
Može se korisititi u objektno orijentiranom ili proceduralnom stilu.
Prvi korak je otvaranja veze prema poslužitelju baze podataka i bazi podataka:
- kreiranje korisnika s lozinkomCREATE USER FOI_korisnik IDENTIFIED BY 'foi2007';
- pridruživanje dozvola korisniku za rad s bazom podatakaGRANT DELETE, INSERT, SELECT, UPDATEON `FOI_PzaWeb`.*TO ' FOI_korisnik '@'localhost' IDENTIFIED BY 'foi2007';
- mogućnost korištenja stare verzije lozinke (bez kripriranja)SET PASSWORD FOR ' FOI_korisnik '@'localhost' = OLD_PASSWORD('foi2007');
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin46Izgradnja Web aplikacija - FOI
Kreiranje tablice - MySQL
Za kreiranje tablice u bazi podataka treba imati dozvolu za tu vrstu operacije.
CREATE TABLE POLAZNICI (maticni_broj CHAR(10) NOT NULL,prezime CHAR(25) NOT NULL,ime CHAR(25) NOT NULL,lozinka CHAR(20) NOT NULL,email_adresa CHAR(40) NOT NULL,datum_kreiranja datetime NOT NULL,datum_promjene datetime NOT NULL,PRIMARY KEY (maticni_broj),INDEX prezime_ime (prezime, ime)
);
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin47Izgradnja Web aplikacija - FOI
SQL
Skup naredbi za upravljenje i rad s podacima baze podataka.
DDL - Data Definition Language (DDL)
DML - Data Manipulation Language (DML)
DCL - Data Control Language (DCL)
TCL - Transaction Control (TCL)
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin48Izgradnja Web aplikacija - FOI
SQL - DDL
Data Definition Language (DDL) – za definiranje strukture baze statements ili
sheme.
CREATEALTERDROP TRUNCATECOMMENTRENAME
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin49Izgradnja Web aplikacija - FOI
SQL - DML
Data Manipulation Language (DML) – za upravljenje/manipulaciju s podacima
u shemi.
SELECTINSERTUPDATEDELETE
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin50Izgradnja Web aplikacija - FOI
SQL - DCL
Data Control Language (DCL) – za postavljenje dozvola.
GRANTREVOKE
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin51Izgradnja Web aplikacija - FOI
SQL - TCL
Transaction Control (TCL) – za upravljenje promjenama koje DML proizvode,
formiranje grupa naredbi - transakcije.
COMMITSAVEPOINTROLLBACKSET TRANSACTION
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin52Izgradnja Web aplikacija - FOI
SQL DCL – MySQL 1.
Dozvola ZnačenjeALL [PRIVILEGES]ALL [PRIVILEGES]ALL [PRIVILEGES]ALL [PRIVILEGES] Sve dozvole osim GRANT OPTIONALTERALTERALTERALTER Dozvola za ALTER TABLEALTER ROUTINEALTER ROUTINEALTER ROUTINEALTER ROUTINE Dozvola promjene ili brisanja pohranjenih proceduraCREATECREATECREATECREATE Dozvola za CREATE TABLECREATE ROUTINECREATE ROUTINECREATE ROUTINECREATE ROUTINE Dozvola kreiranja pohranjenih proceduraCREATE TEMPORARY CREATE TEMPORARY CREATE TEMPORARY CREATE TEMPORARY TABLESTABLESTABLESTABLES Dozvola za CREATE TEMPORARY TABLECREATE USERCREATE USERCREATE USERCREATE USER Dozvola za CREATE USER, DROP USER, RENAME USER, and REVOKE ALL PRIVILEGES.CREATE VIEWCREATE VIEWCREATE VIEWCREATE VIEW Dozvola za CREATE VIEWDELETEDELETEDELETEDELETE Dozvola za DELETEDROPDROPDROPDROP Dozvola za DROP TABLEEVENTEVENTEVENTEVENT Dozvola kreiranja događaja za upravljača događajaEXECUTEEXECUTEEXECUTEEXECUTE Dozvola korisniku da izvršava pohranjene procedureFILEFILEFILEFILE Dozvola za SELECT ... INTO OUTFILE i LOAD DATA INFILEINDEXINDEXINDEXINDEX Dozvola za CREATE INDEX i DROP INDEXINSERTINSERTINSERTINSERT Dozvola za INSERT
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin53Izgradnja Web aplikacija - FOI
SQL DCL – MySQL 2.
Privilege MeaningLOCK TABLESLOCK TABLESLOCK TABLESLOCK TABLES Dozvola za LOCK TABLES za tablice za koje korisnik ima dozvolu SELECTPROCESSPROCESSPROCESSPROCESS Dozvola da korisnik vidi pohranjenje procedura s SHOW PROCESSLISTREFERENCESREFERENCESREFERENCESREFERENCES Nije implementiranoRELOADRELOADRELOADRELOAD Dozvola za FLUSHREPLICATION CLIENTREPLICATION CLIENTREPLICATION CLIENTREPLICATION CLIENT Omogućava korisniku da pita gdje su glavni i pomoćni serveriREPLICATION SLAVEREPLICATION SLAVEREPLICATION SLAVEREPLICATION SLAVE Potrebno za replikaciju pomoćnog serveraSELECTSELECTSELECTSELECT Dozvola za SELECTSHOW DATABASESSHOW DATABASESSHOW DATABASESSHOW DATABASES SHOW DATABASES prikazuje sve baze podatakaSHOW VIEWSHOW VIEWSHOW VIEWSHOW VIEW Dozvola za SHOW CREATE VIEWSHUTDOWNSHUTDOWNSHUTDOWNSHUTDOWN Dozvola za mysqladmin shutdownSUPERSUPERSUPERSUPER Dozvola za CHANGE MASTER, KILL, PURGE MASTER LOGS, i SET GLOBAL, the
mysqladmin debug komande, itdTRIGGERTRIGGERTRIGGERTRIGGER Omogućava korisniku da kreira ili obriše okidačeUPDATEUPDATEUPDATEUPDATE Dozvola za UPDATEUSAGEUSAGEUSAGEUSAGE Sinonim za “bez privilegija”GRANT OPTIONGRANT OPTIONGRANT OPTIONGRANT OPTION Omogućava pridruživanje dozvola
Prof.dr.sc. D.Kermek, Fakultet organizacije i informatike, Varaždin54Izgradnja Web aplikacija - FOI