Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
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
PHP i ASP.NET Uvod u PHP i ASP.NET
Samo “kratki” pregled
Jednostavni primjeri korištenja
Serversko skriptiranje Za razliku od JavaScripta, serverske skripte izvršava
poslužitelj prije slanja http odgovora klijentu
Serversko programiranje: CGI, Servleti
Aplikacije koje poziva web server kako bi odradile složeniji posao prije slanja odgovora klijentu
Skriptni jezici: PHP i ASP
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
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
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
Instalacija php-a Web server mora imati podršku za php – php engine
adria.fesb.hr podržava php
(Ali ne i mysql )
Rad na localhost: wamp ili xampp
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”
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.
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
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) Osnovne naredbe php-a se prepoznaju u bilo kojem obliku
(npr. echo,ECHO,Echo...), ali imena varijabli su case sensitive
Komentari:/* Komentar u jednom ili višeredaka kao u C-u*/// Komentar u jednom redu ako u C++,Javi
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
$ime_varijable=23;
$ime_str_var=“Pozdrav!”;
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)
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; }
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
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++;
++$a
Primjer deinkrementacije: $b=9;
--$b;
$b --;
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
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";}
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;}
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;
}
Superglobals Predefinirane varijable u php-u $GLOBALS $_SERVER $_REQUEST $_POST $_GET $_FILES $_ENV $_COOKIE $_SESSION
http://www.w3schools.com/php/php_superglobals.asp
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>
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
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>
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'].
PHP i MySQL <?php
$con = mysql_connect("localhost","peter","abc123");if (!$con){die('Could not connect: ' . mysql_error());}
// some code?>
Otvaranje i zatvaranje veze <?php
$con = mysql_connect("localhost","peter","abc123");if (!$con){die('Could not connect: ' . mysql_error());}
// some code
mysql_close($con);?>
SQL Standardni jezik za rad s bazama podataka
Structured Query Language
Naredbe:
SELECT, INSERT, UPDATE, DELETE
WHERE, AND,OR
SELECT * FROM Customers;
SELECT DISTINCT City FROM Customers;
SELECT * FROM Customers WHERE Country='Mexico';
SELECT * FROM Customers WHERE CustomerID=1;
SELECT * FROM CustomersWHERE Country='Germany'AND (City='Berlin' OR City='München');
Slanje naredbi <?php
$con = mysql_connect("localhost","peter","abc123");if (!$con){die('Could not connect: ' . mysql_error());}
mysql_select_db("my_db", $con);
mysql_query("INSERT INTO Persons (FirstName, LastName, Age)VALUES ('Peter', 'Griffin', '35')");
mysql_query("INSERT INTO Persons (FirstName, LastName, Age)VALUES ('Glenn', 'Quagmire', '33')");
mysql_close($con);?>
Unos podataka u bazu <?php
$con = mysql_connect("localhost","peter","abc123");if (!$con){die('Could not connect: ' . mysql_error());}
mysql_select_db("my_db", $con);
mysql_query("INSERT INTO Persons (FirstName, LastName, Age)VALUES ('Peter', 'Griffin', '35')");
mysql_query("INSERT INTO Persons (FirstName, LastName, Age)VALUES ('Glenn', 'Quagmire', '33')");
mysql_close($con);?>
Unos podataka forme u bazu <html>
<body>
<form action="insert.php" method="post">Firstname: <input type="text" name="firstname" />Lastname: <input type="text" name="lastname" />Age: <input type="text" name="age" /><input type="submit" /></form>
</body></html>
<?php$con = mysql_connect("localhost","peter","abc123");if (!$con)
{die('Could not connect: ' . mysql_error());}
mysql_select_db("my_db", $con);
$sql="INSERT INTO Persons (FirstName, LastName, Age)VALUES('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
if (!mysql_query($sql,$con)){die('Error: ' . mysql_error());}
echo "1 record added";
mysql_close($con)?>
Dohvat podataka iz baze <?php
$con = mysql_connect("localhost","peter","abc123");if (!$con)
{die('Could not connect: ' . mysql_error());}
mysql_select_db("my_db", $con);
$result = mysql_query("SELECT * FROM Persons");
while($row = mysql_fetch_array($result)){echo $row['FirstName'] . " " . $row['LastName'];echo "<br />";}
mysql_close($con);?>
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+
ASP.NET Server side skriptiranje
Microsoftova tehnologija
ASP – Active Server Pages
IIS (Internet Information Services) – Microsoft Internet Server (besplatan)
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
.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
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 (events) 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
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
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>
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
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.
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" />
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" />
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#
Data Binding asp:RadioButtonList
asp:CheckBoxList
asp:DropDownList
asp:Listbox
Š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
...
72