Documente Academic
Documente Profesional
Documente Cultură
Web Dev
Web Dev
Suport de curs: 2009-2010 Autor: Lect. univ. dr. Horea Oros Universitatea din Oradea Departamentul de Matematic i Informatic
1
Aplicaii web
n Browser Scripting n JavaScript, HTML DOM, DHTML, VBScript, AJAX n Server Scripting n SQL, ASP, PHP, ADO
PHP introducere
n PHP este un limbaj de programare
puternic ce ruleaz pe server cu care se pot crea pagini web dinamice i interactive. n PHP este folosit pe scar larg, este gratuit, alternativ eficient ASP de la Microsoft n PHP este potrivit pentru dezvoltare web i poate fi inclus n codul HTML.
3
PHP introducere
n Sintaxa PHP este similar cu cea a
limbajului C. n PHP este folosit adesea mpreun cu serverul web Apache pe diferite sisteme de operare. n Poate fi folosit i cu IIS pe sisteme Microsoft.
Introducere PHP
n Un fiier PHP poate conine text, taguri HTML
i scripturi. Scripturile PHP sunt executate pe server. n Trebuie cunoscut HTML, limbaje script (browser side)
Ce este PHP?
n PHP = PHP: Hypertext Preprocessor n PHP limbaj scripting server side, la fel ca
ASP n PHP este executat pe server n PHP suport multe baze de date (MySQL, Informix, Oracle, Sybase, Solid, PostgreSQL, Generic ODBC etc.) n PHP este open source n PHP se poate descrca i folosi gratis
6
scripturi n Fiierele PHP sunt returnate browser-ului ca fiiere ce conin doar cod HTML n Au extensia ".php", ".php3 .php4, .php4 sau ".phtml"
Ce este MySQL?
n Server pentru baze de date n Ideal att pentru aplicaii mici ct i pentru
cele foarte mari n MySQL suport standardul SQL n MySQL compilat pe o serie de platforme n MySQL este gratis
Apache+PHP+MySQL
n PHP + MySQL sunt cross-platform (se poate
dezvolta pe Windows i se poate pune pe sistem Linux) n De ce PHP? n PHP ruleaz pe diferite platforme (Windows, Linux, Unix, etc.) n PHP este compatibil cu aproape toate serverele folosite (Apache, IIS, etc.) n PHP este gratis www.php.net
Apache+PHP+MySQL
n PHP este simplu de nvat i ruleaz eficient
Instalarea serverului web Apache pe o main Windows sau Linux Instalarea PHP pe Windows sau Linux Instalare MySQL pe Windows sau Linux machine XAMPP - WAMP
10
Sintaxa PHP
n Sintaxa PHP nu se poate vedea prin View
Source pentru ca codul PHP este transformat pe server in HTML n Codul PHP trebuie delimitat de <?php ... ?> n Exemplu:
<html> <body> <?php echo "Hello World"; ?> </body> </html>
11
Sintaxa PHP
n Fiecare linie trebuie s se termine cu ; n ; este separator de instruciuni n Instruciuni pentru afiarea textului: echo,
Variabile PHP
n Variabilele se folosesc pentru a stoca
numere, stringuri, valori ntoarse din funcii pentru a fi folosite ulterior n Toate numele de variabile ncep cu $ n Exemplu: $var = valoare; n PHP este un limbaj de programare slab tipizat
13
Stringuri PHP
n Rolul string-urilor este de a gestiona textul
<?php $txt="Hello World"; echo $txt; ?>
n Operatorul de concatenare
<?php $txt1="Hello World"; $txt2="1234"; echo $txt1 . " " . $txt2; ?>
14
Stringuri PHP
Funcia strlen
<?php echo strlen("Hello world!"); // 12 ?>
Operatori PHP
n Operatori aritmetici: +, -, *, /, ++, -n Atribuire: =, +=, -=, *=, /=, .=, %= n Operatori relaionali: ==, !=, <, >, <=, >= n Operatori logici: &&, ||, ! n
16
Instruciunea if...else
if (condiie) cod ce se executa cnd condiia e true; else cod ce se executa cnd condiia e fals;
<html> <body> <?php $d=date("D"); if ($d=="Fri") echo "Have a nice weekend!"; else echo "Have a nice day!"; ?> </body> </html>
17
Instruciunea elseif
<html> <body> <?php $d=date("D"); if ($d=="Fri") echo "Have a nice weekend!"; elseif ($d=="Sun") echo "Have a nice Sunday!"; else echo "Have a nice day!"; ?> </body> </html>
18
Instruciunea switch
switch (expr) { case label1: cod care se execut cnd expr = label1; break; case label2: cod care se execut cnd expre = label2; break; default: cod; }
19
Tablouri
n Fiecare element al unui tablou are un ID n Tipuri de tablouri
n n n
Numerice (ID numeric) Asociative (fiecare ID este asociat cu o valoare) Multidimensionale $names = array("Peter","Quagmire","Joe"); ID-ul numeric este generat automat
21
n Tablouri numerice:
n n
Tablouri
ID-ul numeric generat manual
$names[0] = "Peter"; $names[1] = "Quagmire"; $names[2] = "Joe";
<?php echo $names[1] . " and " . $names[2] . " are ". $names[0] . "'s neighbors"; ?>
22
Tablouri asociative
n Fiecare element este o pereche (cheie,
valoare) n Exemplu $ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34); <?php echo "Peter is " . $ages['Peter'] . " years old."; ?>
23
Tabouri multidimensionale
n Fiecare element al tabloului poate fi un tablou
$families = array ( "Griffin"=>array ( "Peter", "Lois", "Megan), "Quagmire"=>array ( "Glenn), "Brown"=>array ( "Cleveland", "Loretta) ); echo Este " . $families['Griffin'][2] . " membru al familiei"; Dac este afiat...
24
Tablouri asociative
Array ( [Griffin] => Array ( [0] => Peter [1] => Lois [2] => Megan ) [Quagmire] => Array ( [0] => Glenn ) [Brown] => Array ( [0] => Cleveland [1] => Loretta [2] => Junior ) )
25
Instruciuni repetitive
n while n do while n for n for each
26
while
<html> <body> <?php $i=1; while($i<=5) { echo "The number is " . $i . "<br />"; $i++; } ?> </body> </html>
27
do - while
<html> <body> <?php $i=0; do { $i++; echo "The number is " . $i . "<br />"; } while ($i<5); ?> </body> </html>
28
for
<html> <body> <?php for ($i=1; $i<=5; $i++) { echo "Hello World!<br />"; } ?> </body> </html>
29
foreach
n Folosit pentru a itera peste tablouri
<html> <body> <?php $arr=array("one", "two", "three"); foreach ($arr as $value) { echo "Value: " . $value . "<br />"; } ?> </body> </html>
30
Funcii PHP
n PHP are foarte multe funcii (>700) n Se pot crea funcii definite de utilizator n Funcie = bloc de cod ce poate fi executat
oricnd n Funcia ncepe cu "function()" n Numele funciei trebuie s indice scopul ei n Blocul funciei delimitat de {, }
31
pentru a accesa datele din formulare n Fiecare element dintr-un formular HTML va fi disponibil n mod automat n scriptul PHP n Exemplu de formular:
<html> <body> <form action="welcome.php" method="post"> Name: <input type="text" name="name" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> </body> </html>
35
reduce ncrcarea serverului n Validarea se poate face i pe server (recomandat dac se interacioneaz cu baze de date) n Recomandat ca postarea unui formular s se face pe aceeai pagin. n Dac formularul conine date eronate utilizatorului i sunt prezentate erorile pe aceeai pagin
37
PHP $_GET
n Variabila $_GET este folosit pentru a
culege datele de pe formulare care au method = get n Variabila $_GET este un tablou de perechi (nume, valoare) trimise de metoda HTTP GET n Informaiile trimise cu GET sunt vizibile n bara de adres a browser-ului (max. 100 caractere)
38
PHP $_GET
<form action="welcome.php" method="get"> Name: <input type="text" name="name" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> n bara de adres: .../welcome.php?name=Horea&age=30
39
PHP $_GET
welcome.php Welcome <?php echo $_GET["name"]; ?>. <br /> You are <?php echo $_GET["age"]; ?> years old!
40
PHP $_GET
n Nu se folosete cnd se trimit parole n Adresa cu valorile cmpurilor poate fi
100 de caractere
41
PHP $_REQUEST
n Conine valorile din:
n
42
PHP $_POST
n Folosit pentru a obine datele din formulare
trimise cu metoda post n Este un tablou asociativ conine perechi (nume, valoare) n Exemplu:
<form action="welcome.php" method="post"> Enter your name: <input type="text" name="name" /> Enter your age: <input type="text" name="age" /> <input type="submit" /> </form>
43
PHP $_POST
n n bara de adres .../welcome.php n n welcome.php
Welcome <?php echo $_POST["name"]; ?>. <br /> You are <?php echo $_POST["age"]; ?> years old!
44
PHP $_POST
n Datele nu sunt afiate n bara de adres n Nu exist o limit asupra lungimii datelor n Paginile nu pot fi incluse n Favorites sau
Bookmarks
45
PHP date()
n Funcie folosit pentru a obine data n diferite
moduri n Sintaxa: date(format,timestamp) n Timestamp (opional) = numrul de secunde de la 1 Ianuarie 1970 la 00:00:00 GMT n Timestamp (implicit) = data i ora curent
46
?>
47
48
PHP include
n Funciile include() sau require() sunt folosite
pentru a include coninutul un fiier ntr-un fiier php nainte de a fi procesat pe server
n n
include() genereaz un avertisment dar scriptul continu require() genereaz eroare fatal i scriptul se oprete
</body> </html>
50
<html> <body> <a href=index.php">Home</a> | <a href=about.php">About Us</a> | <a href="contact.php">Contact Us</a>
51
<?php include("menu.php"); ?> <h1>Welcome to my home page</h1> <p>Some text</p> </body> </html>
n La fel cu about.php i contact.php
52
continu
54
55
56
r read only r+ read/write w write only (dac exist l terge) w+ read/write (dac exist l terge) a append (se pstreaz coninutul) a+ read/append (se pstreaz coninutul) x creeaz fiier nou(dac exist return eroare) x+ read/write (dac exist return eroare)
57
atunci ntoarce valoare 0 <html> <body> <?php $file=fopen("welcome.txt","r") or exit("Unable to open file!"); ?> </body> </html>
58
59
fiierului
modul w, a sau x
60
<?php $file = fopen("welcome.txt", "r") or exit("Unable to open file!"); while(!feof($file)) { echo fgets($file). "<br />"; } fclose($file); ?>
61
<?php $file=fopen("welcome.txt","r") or exit("Unable to open file!"); while (!feof($file)) { echo fgetc($file); } fclose($file); ?>
62
cnd se transmit date binare (fiiere) n Reprezint un mare risc de securitate n Doar userii autorizai ar trebui s poat face acest lucru
64
PHP cookie
n Cookie sunt folosite pentru a identifica un
user n Este un fiier mic pe care serverul l salveaz pe calculatorul user-ului n Cnd este cerut o pagin va fi trimis i cookie-ul salvat anterior n Cu PHP se pot crea i obine valorile cookie
68
PHP cookie
n Creare cu setcookie() trebuie s apar
<?php setcookie("user", "Alex Porter", time()+3600); ?> <html> <body> </body> </html>
69
PHP cookie
n Obinerea unei valori cookie:
n
n Exemplu:
<?php // Tiparirea unui cookie echo $_COOKIE["user"]; // Vizualizarea tuturor cookie-urilor print_r($_COOKIE); ?>
70
PHP cookie
n Pentru verifica dac un cookie a fost setat se
<html> <body> <?php if (isset($_COOKIE["user"])) echo "Welcome " . $_COOKIE["user"] .!<br />"; else echo "Welcome guest!<br />"; ?> </body> </html>
71
PHP cookie
asigurm c data i ora la care expir este anterioar datei i orei curente <?php // se stabilete data la o ora in urma setcookie("user", "", time()-3600); ?>
n Stergerea unui cookie trebuie s ne
72
PHP - sesiuni
n O variabil de sesiune PHP este folosit
pentru a stoca informaii sau a modifica setri pentru o sesiune utilizator n Variabilele sesiune stocheaz informaie despre un singur utilizator i sunt disponibile tuturor paginilor aplicaiei n Dup prsirea website-ului variabilele sesiune sunt terse n Pentru stocarea permanent a informaiilor e nevoie de o baz de date.
73
PHP - sesiuni
n Sesiunile funcioneaz prin crearea unui ID
unic (UID) pentru fiecare vizitator al aplicaiei web n Variabilele sunt stocate pe baza acestui UID n UID-ul este salvat ntr-un cookie sau este propagat prin URL
74
PHP - sesiuni
n Pornirea unei sesiuni PHP
PHP - sesiuni
n Stocarea unei variabile de sesiune <?php session_start(); $_SESSION['views']=1; // stocarea datelor de sesiune ?> <html> <body> <?php //obtinerea datelor de sesiune echo "Page views=". $_SESSION['views']; ?> </body> </html>
76
PHP - sesiuni
n Contor de vizionri ale paginii
<?php session_start(); if(isset($_SESSION['views'])) $_SESSION['views']= $_SESSION['views']+1; else $_SESSION['views']=1; echo "Views=". $_SESSION['views']; ?>
77
PHP - sesiuni
n Distrugerea unei sesiuni: unset() sau
PHP - email
n Se pot trimite email-uri direct dintr-un script
mail(to,subject,message,headers,parameters)
79
PHP - email
<?php $to = "someone@example.com"; $subject = "Test mail"; $message = "Hello! This is a simple email message."; $from = "someonelse@example.com"; $headers = "From: $from"; mail($to,$subject,$message,$headers); echo "Mail Sent."; ?>
80
} else //daca "email" nu este completat afiseaza formularul { echo "<form method='post' action='mailform.php'> Email: <input name='email' type='text' /><br /> Subject: <input name='subject' type='text' /><br /> Message:<br /> <textarea name='message' rows='15' cols='40'> </textarea><br /> <input type='submit' /> </form>"; } ?></body> </html>
81
someone@example.com%0A Cc:person2@example.com %0A Bcc:person3@example.com, person3@example.com, anotherperson4@example.com, person5@example.com%0AB To:person6@example.com n Email-ul va ajunge i la alte adrese
82
<html> <body> <?php function spamcheck($field) { //filter_var() sanitizes the e-mail //address using FILTER_SANITIZE_EMAIL $field=filter_var($field, FILTER_SANITIZE_EMAIL); //filter_var() validates the e-mail //address using FILTER_VALIDATE_EMAIL if(filter_var($field, FILTER_VALIDATE_EMAIL)) { return TRUE; } else { return FALSE; } } if (isset($_REQUEST['email']))...............
83
85
86
particularizat n O funcie care este apelat cnd are loc o eroare n Sintaxa:
error_function(error_level,error_message, error_file,error_line,error_context)
n Primii 2 parametri obligatorii n Ultimii 3 opionali
87
function customError($errno, $errstr) { echo "<b>Error:</b> [$errno] $errstr<br />"; echo "Ending Script"; die(); }
89
erori inclus n PHP n Stabilirea manipulatorului de erori definit de user: set_error_handler("customError"); n Funcia accept i al doilea argument (error_level) care indic tipul erorilor ce vor fi tratate n n cazul acesta vor fi trate toate erorile
90
(log) al serverului sau la un fiier (n funcie de cum este configurat) n Funcia error_log() poate fi folosit pentru a trimite mesajele de eroare ntr-un fiier sau pe server n Erorile pot fi trimise i prin email
94
PHP excepii
n Excepiile sunt folosite pentru a schimba
controlul execuiei scriptului atunci cnd are loc o eroare n PHP 5 introduce mecanismul excepiilor pentru gestionarea erorilor n Mecanismul excepiilor modalitate orientat obiect
96
PHP excepii
n Ce se ntmpl cnd are loc o excepie?
n n
Starea curent a codului este salvat Execuia codului va trece la un funcie manipulator de excepii predefinit (sau definit de programator) Execuia poate continua la starea salvat, execuia se poate ncheia sau poate continua dintr-un alt loc
97
PHP excepii
n Utilizare elementar a excepiilor n Cnd este lansat o excepie codul ce
urmeaz n bloc nu mai este executat i se sare la blocul catch corespunztor n Dac nu exist bloc catch corespunztor va fi lansat o eroare fatal cu mesajul: "Uncaught Exception
98
PHP excepii
<?php // exceptie lansata si neprinsa function checkNum($number) { if($number>1) { throw new Exception(Valoare trebuie sa fie mai mica"); } return true; } checkNum(2); ?>
99
PHP excepii
n try, throw i catch n n blocul try se pune codul care poate lansa
excepii n throw se folosete pentru a lansa excepia n Blocul catch este locul unde se intercepteaz excepia
100
PHP excepii
<?php function checkNum($number) { if($number>1) { throw new Exception("Valoare trebuie sa fie mai mica "); } return true; } try { checkNum(2); echo Numarul e OK'; } catch(Exception $e) { echo 'Message: ' .$e->getMessage(); } ?>
101
PHP excepii
n Stabilirea unui manipulator de excepii la
102
PHP - filtrare
n Filtrele PHP sunt folosite pentru a valida
datele care vin din surse nesigure, de ex. date introduse de user n Testarea, filtrarea i validarea datelor utilizator reprezint o parte important a oricrei aplicaii web n Orice aplicaie web se bazeaz pe date introduse de user aa c e important s ne asigurm c aplicaiile primesc date corecte
103
PHP - filtrare
n Filtrarea datelor de intrare reprezint una din
Date introduse n formulare Cookie Date de la webservice-uri Variabile server Rezultate ale interogrilor bazelor de date
104
PHP - filtrare
n Funcii pentru filtrare:
n n n n
filter_var() filtreaz o singur variabil cu un filtru specificat filter_var_array() filtreaz mai multe variabile cu acelai filtru sau cu filtre diferite filter_input obine o variabil de intrare i o filtreaz filter_input_array obine mai multe variabile de intrare i le filtreaz cu acelai filtru sau cu filtre diferite
105
PHP - filtrare
<?php $int = 123; if(!filter_var($int, FILTER_VALIDATE_INT)) { echo("Integer is not valid"); } else { echo("Integer is valid"); } ?>
106
PHP - filtrare
n Exist dou tipuri de filtre:
n
Filtre de validare
n n n
Folosite pentru a validate datele introduse Reguli de formare stricte (URL, email, IP) Return tipul sau false (la eec) Permit sau interzic anumite caractere n stringuri Nu sunt reguli pentru formatul datelor ntotdeauna ntorc string-uri
107
PHP - filtrare
n Opiuni i indicatori (flag)
n
<?php $var=300; $int_options = array( "options"=>array ( "min_range"=>0, "max_range"=>256 ) ); if(!filter_var($var, FILTER_VALIDATE_INT, $int_options)) { echo("Integer is not valid"); } else { echo("Integer is valid"); } ?>
108
PHP - filtrare
n Validare datelor de intrare
<?php if(!filter_has_var(INPUT_GET, "email")) { echo("Input type does not exist"); } else { if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL)) { echo "E-Mail is not valid"; }else { echo "E-Mail is valid"; } } ?>
109
PHP - filtrare
n Curarea datelor de intrare
<?php if(!filter_has_var(INPUT_POST, "url")) { echo("Input type does not exist"); } else { $url = filter_input(INPUT_POST, "url", FILTER_SANITIZE_URL); } ?>
110
PHP Quiz
1. Ce nseamn PHP?
a. b. c. d.
Personal Home Page Private Home Page Personal Hypertext Processor PHP: Hypertext Preprocessor
PHP Quiz
2. Care sunt delimitatorii pentru scripturile
PHP?
a. b. c. d.
PHP Quiz
3. Cum scriei Hello World n PHP?
a. b. c.
PHP Quiz
4. Care este simbolul cu care ncep numele
& $ !
PHP Quiz
5. Cum se termin o instruciune PHP?
a. b. c. d.
PHP Quiz
6. Sintaxa PHP seamn cel mai mult cu:
a. b. c.
PHP Quiz
7. Cum se obin informaiile dintr-un formular
PHP Quiz
8. Cnd se folosete POST datele sunt afiate
Da Nu
PHP Quiz
9. n PHP se pot folosi att ct i pentru a
delimita string-uri
a. b.
Da Nu
10
PHP Quiz
10. Fiierele incluse trebuie s aib extensia .inc
a. b.
Da Nu
11
PHP Quiz
11. Cum se include fiierul time.inc?
a. b. c. d.
<% include file="time.inc" %> <?php include_file("time.inc"); ?> <!--include file="time.inc"--> <?php require("time.inc"); ?>
12
PHP Quiz
12. Cum se creeaz o funcie n PHP?
a. b. c.
13
PHP Quiz
13. Cum se deschid pentru citire fiierul
time.txt?
a. b. c. d.
14
PHP Quiz
14. PHP permite trimiterea de email-uri direct
din scripturi?
a. b.
Da Nu
15
PHP Quiz
15. Cum se realizeaz conexiunea la o baz de
date MySQL?
a. b. c. d.
16
PHP Quiz
16. Cum se poate aduna 1 la valoarea variabilei
$count?
a. b. c. d.
17
PHP Quiz
17. Cum se adaug un comentariu n PHP?
a. b. c. d.
18
PHP Quiz
18. PHP poate rula pe IIS de la MS?
a. b.
Da Nu
19
PHP Quiz
19. n PHP 5 suportul pentru MySQL este
Da Nu
20
PHP Quiz
20. Care nume de variabil nu este valid?
a. b. c.
21
Curs PHP-MySQL
Aplicaii web
n Browser Scripting n JavaScript, HTML DOM, DHTML, VBScript, AJAX n Server Scripting n SQL, ASP, PHP, ADO
PHP-MySQL
n MySQL este cel mai popular sistem de baze
PHP-MySQL
n Interogri ntrebri pe care le adresm
bazei de date
n
PHP-MySQL - conectare
n nainte de a putea folosi baza de date trebuie
mysql_connect(servername,username,password);
Opional. Serverul la care se conecteaz Implicit "localhost:3306" Opional. Username cu care se face logarea. Implicit este numele userului care deine procesul server (root) Opional. Parola folosit pentru logare. Implicit este ""
5
PHP-MySQL - conectare
n Exemplu:
<?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('Could not connect: ' . mysql_error()); } ?>
6
PHP-MySQL - deconectare
n La terminarea scriptului conexiunea este
<?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('Could not connect: ' . mysql_error()); } // cod mysql_close($con); ?>
7
trebuie s folosim funcia mysql_query() n mysql_query() folosit pentru a trimite o comand sau o interogare la o conexiune MySQL
tabele n Sintaxa: CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, column_name3 data_type, ....... )
10
11
Stocheaz numere reale. Numrul maxim de cifre de la partea ntreag i de la partea zecimal pot fi specificate ca parametri.
12
varchar(size)
13
Descriere ENUM prescurtare la ENUMERATED list. Poate stoca 65535 valori enumerate ntre ( ). Dac se introduce o valoare care nu e n list atunci se va insera cu un blank SET similar cu ENUM. SET poate avea maxim 64 de elemente n list i poate stoca mai mult de o variant
14
set
folosit pentru indexare, identificare unic a nregistrrilor i pentru stabilirea relaiilor ntre tabele n Valoarile dintr-un cmp care e cheie primar nu pot fi null n ntotdeauna cheia primar este cmp indexat n Indexarea duce la gsirea mai rapid a nregistrrilor pe baza valorii chei
15
mysql_query($sql, $con);
16
tabele n Sintaxa:
n
n Nu se face distincie ntre litere mari i mici n Pentru a executa comanda se folosete
17
date n Formularul:
<html> <body> <form action="insert.php" method="post"> Prenume: <input type="text" name=prenume" /> Nume: <input type="text" name=nume" /> Vrsta: <input type="text" name=varsta" /> <input type="submit" /> </form> </body> </html>
19
PHP-MySQL SELECT
n Comanda SELECT se folosete pentru a
21
PHP-MySQL SELECT
<?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 persoana"); while($row = mysql_fetch_array($result)) { echo $row[prenume'] . " " . $row[nume']; echo "<br />"; } mysql_close($con); ?>
22
PHP-MySQL SELECT
<?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 persoana"); //afisarea rezultatelor ntr-un tabel echo "<table border='1'> <tr> <th>Prenume</th> <th>Nume</th> </tr>"; while($row = mysql_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row[prenume'] . "</td>"; echo "<td>" . $row[nume'] . "</td>"; echo "</tr>"; } echo "</table>"; mysql_close($con); ?>
23
LIKE
24
SELECT n Sintaxa:
SELECT column_name(s) FROM table_name ORDER BY column_name
26
28
PHP-MySQL UPDATE
n Folosit pentru a modifica datele din tabele n Sintaxa:
n
29
PHP-MySQL UPDATE
<?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("my_db", $con); mysql_query("UPDATE persoana SET varsta = '36' WHERE prenume= 'Peter' AND nume = 'Griffin'"); mysql_close($con); ?>
30
31
32
PHP - ODBC
n ODBC este un API care permite conexiunea
Administrative Tools n Control Panel. Double-click Data Sources (ODBC). Se alege System DSN. Click pe Add n System DSN. Select Microsoft Access Driver. Click Finish. Pe ecranul urmtor, click Select pentru a localiza baza de date. Baza de date primete un Data Source Name (DSN). Click OK.
33
PHP - ODBC
n Funcia odbc_connect() se folosete pentru
conexiunea la o surs de date ODBC n Funcia odbc_exec() se folosete pentru a executa o comand SQL
$conn=odbc_connect('northwind','',''); $sql="SELECT * FROM customers"; $rs=odbc_exec($conn,$sql);
34
PHP - ODBC
n Funcia odbc_fetch_row() folosit pentru a
obine o nregistrare
n
odbc_fetch_row($rs)
Curs AJAX
Aplicaii web
n Browser Scripting n JavaScript, HTML DOM, DHTML, VBScript, AJAX n Server Scripting n SQL, ASP, PHP, ADO
AJAX
n AJAX Asynchronous JavaScript And XML n AJAX tip de programare popularizat de
Google n 2005 cu Google Suggest n AJAX nu este un nou limbaj de programare ci o nou modalitate de a folosi standarde existente n AJAX permite crearea de aplicaii web mai rapide, mai bune i mai prietenoase
AJAX
n Cerine: HTML/XHTML, JavaScript n JavaScript-ul comunic direct cu serverul,
folosind obiectul XMLHttpRequest. Folosind acest obiect JavaScript poate schimba date cu serverul fr a rencrca pagina n AJAX folosete transfer asincron de date ntre browser i web server permind paginilor s cear secvene mici de informaie de la server n loc de pagini ntregi
4
AJAX
n Aplicaiile web for fi mai mici, mai rapide i
mai prietenoase n AJAX este o tehnologie browser independent de softul de pe webserver n AJAX este bazat pe:
n n n n
AJAX
n Standardele pe care se bazeaz sunt bine
definite, suportate de majoritatea browserelor n Aplicaiile AJAX sunt independente de browser i platform n Avantaje ale aplicaiilor web fa de cele desktop:
n n n
Mai muli utilizatori Mai uor de instalat i actualizat Mai uor de dezvoltat
6
AJAX
n Dezavantaje ale aplicaiilor web fa de cele
desktop:
n
prietenoas n Pentru a folosi AJAX nu trebuie nvat nimic nou se bazeaz pe standarde existente
AJAX
n Tradiional n JavaScript dac vrem s lum
informaii din baze de date sau din fiiere de pe server avem nevoie de
n n n n n
formulare HTML metodele GET sau POST. se apas butonul Submit, se ateapt s rspund serverul, se ncarc o nou pagin
AJAX
n Datorit interaciunii cu serverul aplicaiile
web tipice ruleaz lent n Cu AJAX JavaScript-ul comunic direct cu serverul prin intermediul obiectului XMLHttpRequest n Cu HTTP Request pagina web poate cere date de la server n fundal fr a rencrca pagina i fr ca userul s observe aceasta
AJAX
n XMLHttpRequest permite actualizarea paginii
web cu date de pe server dup ce pagina s-a ncrcat n Google suggest funcioneaz dup acest principiu se ncepe tastarea cuvntului i Google sugereaz o list de termeni de cutare n XMLHttpRequest n Internet Explorer 5.0+, Safari 1.2, Mozilla 1.0 / Firefox, Opera 8+, and Netscape 7.
10
AJAX
n username completata de user n time completat de AJAX
<html> <body> <form name="myForm"> Name: <input type="text" name="username" /> Time: <input type="text" name="time" /> </form></body> </html>
11
AJAX
n Crearea obiectului XMLHttpRequest n IE folosete ActiveXObject n Alte browsere XMLHttpRequest
12
13
readyState pstreaz starea rspunsului de la server; de fiecare dat cnd se schimb se execut funcia onreadystatechange
14
15
AJAX
xmlHttp.onreadystatechange=function() { if(xmlHttp.readyState==4) { // Scoate datele din raspunsul serverului } }
16
AJAX
n Proprieti
n
Arg 1: metoda get sau post Arg 2: url-ul scriptului de pe server Arg 3: request gestionat asincron
18
20
pagin web cu un server pe msur ce userul introduce introduce date ntr-un formular n http://localhost/ajax/suggest.htm
21
22
23
24
26