11.1.2010
1
PHP, ASP.NET
Što ćete naučiti Internet općenito
HTML
CSS
XML
XHTML
Javascript
DOM
DHTML
AJAX
jQuery
PHP
ASP.NET
Ruby On Rails
MS Silverlight
FLASH, SMIL, SVG
...
2
11.1.2010
2
PHP i ASP.NET Uvod u PHP i ASP.NET
Samo “kratki” pregled
Jednostavni primjeri korištenja
PHP PHP - PHP: Hypertext Preprocessor (rukurzivno)
PHP - personal home page (stari akronim)
Riječ je o serverskom skriptiranju
PHP se izvršava na serveru
Podrška za baze podataka (najčešće MySQL)
Open source
Besplatan za korištenje
11.1.2010
3
Uvod PHP Skriptni jezik opće namjene, otvorenog koda Pogodan za razvoj Weba Dostupan na raznim platformama
Windows, Linux, Unix, OS X, ...
Jednostavan za učenje Sintaksa slijedi C, Javu, Perl
http://www.php.net
11.1.2010
4
PHP PHP osmislio Rasmus Lerdorf 1995
Kao set CGI binary-ja
I dalje sudjeluje u razvoju PHP-a
Zeev Saransk i Andi Gutmans
1997 formirali osnovu PHP3
Povijest Prapovijest: niz skripta pisanih u Perlu za obradu podataka
s obrazaca
PHP/FI (Personal Home Page/Forms Interpreter)
Biblioteka funkcija pisanih u C-u
PHP 1.0/2.0 – osnovna funkcionalnost kao i danas
Otvoren za proširenja
PHP3 – razvoj nove jezgre
PHP4 – opet nova jezgra (Zend Engine)
PHP5 – proširen objektni model, aktualna verzija
PHP6 – podrška za Unicode string tip, čišćenje jezika
11.1.2010
5
11.1.2010
6
Povijest Početak kao dio Perl-a 1997 (Personal Home page), Danas najkoristenija verzija 5.x.x Preko 16 milijuna domena koristi PHP
HTML ne radi s podacima (služi samo da oblikuje prikaz hipertekstualnih elemenata)
PHP radi s podacima (obrasci, baze podataka itd..)
Cilj: Jednostavan jezik za brzo stvaranje dinamičkih stranica Weba
PHP datoteka Nije striktno vezana samo za PHP kod
Može sadržavati tekst, HTML i skripte
Nakon obrade PHP datoteke server vraća čisti HTML
Ekstenzije “.php”,”.php3”,”.phtml”
11.1.2010
7
Još o PHP-u Neovisnost o OS i serverskoj platformi –Unix, Linux, Solaris, MacOS,
Windows, FreeBSb, Apache, Netscape...
Multi DataBase Access – MySQL, PostgreSQL, dBase, Oracle, Informix, Sysbase, ODBC itd
Komunicira sa ostalim servisima i protokolima –IMAP, LDAP, SNMP, HTTP, POP, zatim podrška za XML i CORBA OO aplikacije...
PHP je hibridni jezik, podržava proceduralano i objektno orijentirano programiranje, gotovo sve tipove podataka (Boolean, Integer, Floating-point number (float), String, Array, Object, Resource, NULL) itd...
Ostalo : jednostavan, brz, intuitivan, stabilan, open source i besplatan, podržava ekstenzije...
Princip rada PHP-a Proces uključivanja PHP programa uključuje sljedeće
korake: Korisnik putem preglednika zahtijeva određeni resurs (PHP
program, datoteku).
Zahtjev dolazi na poslužitelj koji prepoznaje da se radi o PHP programu.
Poslužitelj poziva PHP engine koji izvršava PHP program koji za rezultat ima HTML kod koji se onda nazad šalje korisniku.
11.1.2010
8
Hello World - PHP
Svaka linija završava sa “;”
“;” je separator koji odvaja instrukcije
Datoteka u kojoj se nalazi ovaj kod mora imati ekstenziju .php (ili slične)
Sintaksa Dinamički dijelovi određeni sa: <?php ?>
Moguće još i konstrukcije: <% %>
<? ?>
<script language='php'> </script>
U trenutku pokretanja .php skripte na serveru se pokreće novi proces
11.1.2010
9
Sintaksa Kombinacija C, C++, Perl, Java te nešto vlastite sintakse Više načina kombiniranja sa HTML-om i escaping from
HTML Case sensitive (uglavnom) ali nije osjetljiv na whitespace
(pazno mjesto, razmak)
Komentari:/* Komentar u jednom ili višeredaka kao u C-u*/# Komentar u jednom redu kao u Java-i// Komentar u jednom redu ako u C++
Sintaksa PHP - Loosely Typed Language
Varijablu nije potrebno deklarirati prije korištenja, PHP automatski deklarira varijablu kad je to potrebno
Nije potrebno definirati tip varijable
Ovisno o vrijednosti, PHP pretvara varijablu u određeni tip
11.1.2010
10
Sintaksa Varijable su osnovni način pohrane podataka ($varijabla),
postoje i predefinirane varijable za lakši rad
U imenu varijable za početni znak možemo koristiti slovo ili podvlaku (underline), a iza toga mogu se koristiti slova, brojevi i podvlake.
Korištenje posebnih znakova nije dozvoljeno.
Imena varijabli su case-sensitive, znači osjetljiva na korištenje malih i velikih slova.
Tipovi podataka Skalarni tipovi
Boolean Integer Float (dvostruka preciznost) String (8-bitni znakovi)
Složeni tipovi Array (simboličko polje, hash) Object (OO funkcionalnost)
Posebni tipovi Resource (pokazuju na vanjske resurse – npr. Otvorene
datoteke) NULL (prazan tip, pridružen varijablama koje nemaju
vrijednost)
11.1.2010
11
Sintaksa Skup operatora sličan C-u
Spajanje stringova -> “.”
Operator identiteta -> “===“ jednakost vrijednosti i tipa
Sintaksa Upravljanje tokom programa
if ... elseif ... Else while, do ... While for, foreach break, continue switch return
Funkcije function fx($x) { return $x; }
11.1.2010
12
Primjer
PHP operatori PHP podržava gotovo sve tipove operatora:
Aritmetički
Logički
Operator spajanja dva niza (string-a)...
Aritemetički: $a + $b - zbrajanje
$a - $b - oduzimanje
$a * $b - množenje
$a / $b - dijeljenje
$a % $b – modul, ostatak cjelobrojnog dijeljenja
11.1.2010
13
PHP operatori Logički:
$a and $b – i a i b $a or $b – a ili be $a xor $b – a ili b, ne oba !$a – nije a $a && $b – i a i b $a || $b – a ili b
Operator spajanja dva niza (string-a): $a = "Spajanje "; $b = $a . "dva niza!";
PHP operatori PHP podržava i pre i post inkrementaciju i
deinkrementaciju varijabli, npr.inkrementacija: $a=5;
$a++; //rezultat je a=6;
++$a //rezultat je a=7;
Primjer deinkrementacije: $b=9;
--$b; //rezultat je b=8;
$b -- //rezultat je b=7;
11.1.2010
14
Kontrole strukture PHP ima ugrađenu višestruku podršku za kontrolu toka i
izraza poznatu iz ostalih jezika: If
If else
If else if
While
Do while
For
Foreach
Switch case
Break , continue
IF struktura IF kontrolna struktura, poznata iz drugih jezika, jedna je
od najvažnijih i u PHP jeziku. Sintaksa je vrlo slična C jeziku. Primjer if strukture je:
if ($a>$b){
echo "Varijabla a je veća od varijable b";
}
Vitičaste zagrade mogu se i izostaviti u posebnim slučajevima
11.1.2010
15
IF ELSE struktura Ova struktura izvršava neku naredbu ili skup naredbi ako
je uvjet ispunjen, a ukoliko nije onda izvršava neki drugi skup naredbi
Primjer:if ($a>$b){echo "Varijabla a je veća od varijable b";} else {echo "Varijabla a je manja od varijable b";}
IF ELSE IF struktura Ova struktura proširuje IF ELSE strukturu sa više ELSE IF
uvjeta, npr:if ($a>$b){echo "Varijabla a je veća od varijable b";} else if ($a ==$b){echo "Varijabla a je jednaka varijabli b";} else {echo "Varijabla a je manja od varijable b";}
11.1.2010
16
WHILE struktura petlje WHILE kontrolne petlje su petlje kod kojih se naredba ili skup naredbi izvršava
dok su ispunjeni zadani uvjeti, npr:$a=1;while ($a<10){echo "Varijabla a je manja od 10!";$a++;}
DO WHILE je proširenje WHILE petlje, ova petlja se za razliku od WHILE petlje izvede bar jedan put, neovisno o tome da li je uvjet ispunjen ili ne, npr.:
$a=1;do {echo "Varijabla a je manja od 10!";$a++;} while ($a<10)
FOR petlja PHP također podržava i FOR kontrolne strukture, čiji je opći oblik:for (izraz1;izraz2;izraz3) {naredbe1;naredbe2;...naredbeN;}
Npr:for ($a=0; $a=<10; $a++) {echo $a;}
11.1.2010
17
Funkcije u PHP-u PHP podržava rad sa funkcijama, kao i ostali programski
jezici, opći oblik definicije funkcije je navođenjem ključne riječi function, npr.:
function ime_funkcije ($argument1, $argument2,
..$argumentN)
{
izrazi1;
izraz2;
...
izrazN;
}
PHP i obrada formi Pretpostavimo jednostavni primjer:
<html><body><form action=“primjer1.php” method=“POST”>Ime : <input type="text" name="ime"><br>Prezime: <input type="text"name="prezime"><br><input type="submit" name="slanje"value="Posalji"></form></body></html>
11.1.2010
18
PHP i obrada formi ♦ PHP program za obradu bio bi (primjer1.php):
<?php
// prihvat i ispis podataka forme
echo " Dobar dan, Vi ste: $ime $prezime ";
?>
♦ Gornji slučaj je moguć ukoliko je
REGISTER_GLOBALS postavljene na ON, a
ukoliko su postavljene na OFF , PHP program
primjer1.php varijable $ime i $prezime mora ove
vrijednosti pročitati iz nizova $_POST['ime'] i
$_POST['prezime'].
Nizovi U PHP-u postoje tri vrste nizova
Numerički nizovi
$cars=array("Saab","Volvo","BMW","Toyota");
$cars[2]="BMW";
Asocijativni nizovi
$ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34);
$ages['Quagmire'] = "30";
Multidimenzionalni nizovi
11.1.2010
19
Multidimenzionalni nizovi
PHP i obrada formi Pretpostavimo jednostavni primjer:
<html>
<body><form action=“primjer1.php” method=“POST”>Ime : <input type="text" name="ime"><br>Prezime: <input type="text"name="prezime"><br><input type="submit" name="slanje"value="Posalji"></form></body></html>
11.1.2010
20
PHP i obrada formi PHP program za obradu bio bi (primjer1.php):
<?php
// prihvat i ispis podataka forme
echo " Dobar dan, Vi ste: $ime $prezime ";
?>
Gornji slučaj je moguć ukoliko je REGISTER_GLOBALS postavljene na ON, a ukoliko su postavljene na OFF , PHP program primjer1.php varijable $ime i $prezime mora oveVrijednosti pročitati iz nizova $_POST['ime'] i$_POST['prezime'].
ASP.NET ASP.NET nije isto što i ASP (klasični ASP)
Klasični ASP – zadnja verzija ASP 3.0
ASP.NET nije povratno kompatibilan sa ASP
Dio .NET Framework-a
Raniji naziv ASP+
11.1.2010
21
ASP.NET Server side skriptiranje
Microsoftova tehnologija
ASP – Active Server Pages
IIS (Internet Information Services) – Microsoft Internet Server (besplatan)
11.1.2010
22
ASP.NET datoteka Slično kao i PHP:
Sadrži HTML, XML, skripte,...
Nastavak .aspx
ASP.NET Pretraživač zatraži ASP.NET file
IIS šalje zahtjev ASP.NET engine-u na serveru
ASP.NET engine čita datoteku, izvodi skripte
Server vrati HTML file
11.1.2010
23
.NET Framework Infrakstuktura za .NET platformu
Izrada i izvođenje Web aplikacija i Web servisa
Cilj:
Smanjiti količinu koda
Pojednostaviti programiranje
Veliki broj klasa na raspolaganju
.NET Framework Sastoji se od 3 dijela:
Programski jezici:
C#
Visual Basic
J#
Serverske i klijentske tehnologije
ASP.NET
Windows Forms
Compact Framework
Razvojna okruženja
11.1.2010
24
ASP.NET ASP.NET 2.0 poboljšava ASP.NET dodajući
podršku za nekoliko novih sadržaja
ASP.NET 3.0 nije nova verzija ASP.NET-a
samo novo ime za ASP.NET 2.0 framework biblioteku sapodrškom za Windows Presentation Foundation,Windows Communication Foundation, WindowsWorkflow Foundation i Windows CardSpace.
Novosti u ASP.NET Bolja podrška za jezike Programabilne kontrole Programiranje pokretano događajima XML bazirane komponente Korisnička provjera, sa računima i ulogama Veća sposobnost rasta Povećana performansa – Kompajliran kod Lakša konfiguracija i implementacija Ne u potpunosti ASP kompatibilno
11.1.2010
25
Podrška za jezike ASP.NET koristi novi ADO.NET
ASP.NET podržava puni Visual Basic, ne VBScript
ASP.NET podržava C# (C sharp) i C++
ASP.NET podržava JScript kao i prije
ASP.NET kontrole ASP.NET sadrži veliki broj HTML kontrola
Skoro svi HTML elementi na stranici mogu bitidefinirani kao ASP.NET kontrolni objekti kojeskripte mogu kontrolirati
ASP.NET također sadrži novi set objektno-orijentiranih ulaznih kontrola
11.1.2010
26
Dodatno o ASP.NET Odlična podrška za događaje (events)
ASP.NET komponente bazirane na XML-u
Autentifikacija korisnika
Korisnički računi i uloge
Jednostavna konfiguracija
Primjer<html>
<body bgcolor="yellow">
<center>
<h2>Hello W3Schools!</h2>
<p><%Response.Write(now())%></p>
</center>
</body>
</html>
11.1.2010
27
ASP.NET Kod unutar <% --%> tagova se izvršava na poslužitelju
Response.Write je ASP.NET kod za pisanje nečega u HTML izlazni tok
Now() je funkcija koja vraća vrijeme i datum sa poslužitelja
Ograničenje u klasičnom ASP-u : blok koda mora biti smješten tamo gdje želite da se izlaz prikaže
Sa klasičnim ASP-om je nemoguće odvojiti izvršni kod od HTML-a. Ovo čini stranicu teško čitljivom i teškom za održavanje.
Server kontrole HTML Server Kontrole – Tradicionalni HTML tagovi
Web Server Kontrole - Novi ASP.NET tagovi
Validation Server Kontrole – Za validaciju inputa
11.1.2010
28
HTML Server kontrole HTML kontrole poslužitelja su HTML tagovi koje server
razumije
HTML elementi ASP.NET datoteka su, po default-u, tretirani kao tekst. Da bi ih se učinilo programabilnima, dodaje se runat=“server" atribut HTML elementu.
Ovaj atribut upućuje da bi element trebao biti tretiran kao kontrola poslužitelja. Id atribut se dodaje kao identifikacija kontrole poslužitelja.
Sve HTML kontrole poslužitelja moraju biti unutar <form> taga sa runat="server" atributom
runat="server" atribut pokazuje da se forma treba obraditi na poslužitelju.
11.1.2010
29
Web Server kontrole Web kontrole poslužitelja su posebni ASP.NET tagovi koje
poslužitelj razumije
Poput HTML kontrole poslužitelja, Web kontrole poslužitelja su također stvorene na poslužitelju i zahtijevaju runat="server" atribut za rad
Sintaksa:
<asp:control_name id="some_id" runat="server" />
11.1.2010
30
Validation Server kontrole Validation kontrole servera se koriste za user-
input. Ako user-input ne prođe potvrdu, prikazati će se error poruka korisniku.
Svaka kontrola vrši specifičnu validaciju
Validacija se vrši nakon što se klikne Button, ImageButton ili LinkButton
Sintaksa:
<asp:control_name id="some_id" runat="server" />
11.1.2010
31
ASP.NET forme Sve server kontrole moraju se nalaziti unutar <form>
taga koji mora sadržavati runat=“server” atribut
Form submit:
<asp:Button id="id" text="label" OnClick="sub" runat="server" />
Kad se forma “submita”, ona se ponovo pojavljuje sa svim vrijednostima radi ViewState objekta
ASP.NET primjer C#
11.1.2010
32
Data Binding asp:RadioButtonList
asp:CheckBoxList
asp:DropDownList
asp:Listbox
11.1.2010
33
Što ćete naučiti Internet općenito
HTML
CSS
XML
XHTML
Javascript
DOM
DHTML
AJAX
jQuery
PHP
ASP.NET
Ruby On Rails
MS Silverlight
FLASH, SMIL, SVG
...
65