Sunteți pe pagina 1din 195

1

NOTE DE CURS - PROGRAMARE WEB -

2010

Lect. drd. Cristina ZAMFIR

Reading this material will enable you to build dynamic websites. If youve build websites using plain HTML, you realiye the limitations of this approach. Statistic content from a pure HTML website is just that static. It stays the same unless you physically update it. Your users cant interact with the site in any meaningful fashion. Using a language such PHP and database such as MySQL allows you to make your sites dynamic: to have them be customizable and contain real-time information.

Tehnologia client/server.

Evoluia arhitecturii client/sever


4

Sistemele de prelucrare pe loturi Sistemele de prelucare n timp real Sistemele de prelucare cu acces multiplu Sistemele de prelucrare client/server

Sistemele de prelucrare pe loturi


5

foloseau calculatoare de tip mainframe care executau lucrri, numite job. Componenta care controla lucrrile se numea monitor (supervizor). Supervizorul se ocupa de nlnuirea i supravegherea lucrrilor, fr a interveni operatorul. Lucrrile erau executate secvenial, pe msur ce soseau. Informaia nu era procesat pn cnd aceasta nu este complet

Sistemele de prelucrare n timp real


6

au aprut odat cu extiderea capacitii de memorie. executau complet lucrrile ntr-o cuant de timp. ntre terminale i calculatorul central existau comunicaii directe n ambele sensuri. au fost create cu scopul de a permite controlarea unor activiti din afara SC (operaiile de I/O).

Sistemele de prelucrare cu acces multiplu


7

au aprut o dat cu apariia minicalculatoarelor ofer posibilitatea utilizrii simultane de ctre mai muli utilizatori a resurselor de calcul, prin procesul de mprire a timpului de utilizare a procesorului (time-sharing). se asigur distribuirea resurselor unui sistem de prelucrare a informaiei ntre mai muli utilizatori independeni, alocndu-se pentru fiecare dintre ei o cuant de timp.

Sistemele de prelucrare client/server


8

au aprut ca o necesitate a conectrii microcalculatoarelor (PC) pentru partajarea resurselor (fizice, logice sau informaionaleBD).

Concepte n domeniul reelelor de calculatoare


9

Reea de calculatoare ansamblul de calculatoare interconectate ntre ele prin medii de comunicaie, asigurnd utilizarea n comun a resurselor fizice, logice i informaionale. Medii de comunicaie - mediu fizic prin intermediul cruia se pot transmite date. Arhitectura schema general a unui sistem pentru a realiza un anumit mod de funcionare. Tehnologie modalitatea de implementare a unei arhitecturi. Tehnologia client-server - o modalitate de a separa o aplicaie n dou pri distincte. Client (front-end) reprezint consumatorul de servicii. Server (back-end) reprezint furnizorul de servicii i acioneaz ca un mainframe Middleware (produse program de intermediere) component proiectat pentru a ascunde prii de front-end (client) nivelurile inferioare ale reelei

Caracteristicile arhitecturii client/server


10

serviciu-relaie ntre procese ce se execut pe calculatoare separate. resurse partajate-server-ul poate servi mai muli clieni n acelai timp protocoale asimetrice-existena relaiei de tipul unul la muli ntre server i client. transparena locaieiascunderea unor informaii clienilor referitoare la poziia serverului n cadrul unei reele comunicaie bazat pe mesaje-interaciunea ntre calculatoare se face prin mecanismul de transmisie de mesaje. ncapsularea serviciilor-un mesaj specific server-ului serviciul cerut. scalabilitate-pot fi scalate pe orizontal sau vertical. integritate-datele i codul server-ului sunt reinute centralizat, ceea ce implic o actualizare i securizare eficiente a datelor partajate.

Tipuri de soluii client/server


11

Server de fiiere Server de baze de date Server de aplicaii Server Web Server de aplicaii web

Server de fiiere
12

utilizate pentru stocarea programelor i fiierelor de date; reprezint o form primitiv de acces la date, care necesit multiple schimburi de mesaje ntre server i clieni, sunt dublate de servere de tiprire.

Server de baze de date


13

sunt calculatoarele pe care ruleaz un SGBD, folosind un limbaj SQL permit iniializarea, accesarea i ntreinerea bazelor de date clientul trimite cereri SQL server-ul de baze de dateexecut accesul la baza de date rezultatul comenzilor SQL este returnat clientului prin intermediul reelei.

Server de aplicaii
14

sunt utilizate n controlul unor dispozitive periferice de la distan utilizarea unui server de aplicaii presupune (re)programarea att a server-ului ct i a clienilor

Server Web
15

sunt utilizate pentru stocarea paginilor web are ca scop primirea fiierele de pe server ntr-un format specific browser-ului de web i de a le transmite prin intermediul reelei. sunt create pentru a transmite coninut static unui numr mare de utilizatori.

Server de aplicaii web


16

sunt proiectate pentru a extinde server-ele de web pentru coninutul dinamic. se aga de server-ul de web intercepteaz automat utilizatorii care doresc un coninut dinamic.

17

Caracteristici i soluii de arhitecturi

Componentele arhitecturii client/sever


18

Arhitectura client/server-arhitectur de reea n care fiecare calculator din reea este un client sau un server. Calculatorul client-interacioneaz cu un utilizator. Are dou sarcini: logica prezentrii i logica aplicaiei. Calculatorul server-orice calculator de birou puternic, al crui rol este de a furniza servicii i resurse utilizatorilor.

Sarcinile calculatorului client


19

logica prezentrii reprezint interfaa cu utilizatorul: asigur coordonarea interaciunii dintre utilizator i aplicaie include detalii privitoare la afiarea tuturor informaiilor pe ecranul calculatorului. include i partea de preluare a datelor de la utilizator logica aplicaiei - acea parte a programului care decide ce aciuni trebuie s se execute n diferite situaii i implementeaz regulile afacerii.

Sarcinile calculatorului server


20

responsabil cu administrarea accesului la baza de date: sortarea datelor, selectarea acelora de care are nevoie clientul, asigurarea c ali clieni nu ncearc modificarea unor nregistrri pe care ali clieni le vizualizeaz

Avantajele i dezavantajele arhitecturii client/server


21

Avantaje au o securitate mai bun; performanele pot fi mbuntite uor; raportul calitate / pre este mai bun. Dezavantaje complexitatea, nefiind simplu de configurat i de administrat; necesiti - pentru a putea deservi un numr mare de clieni, server-ul trebuie s fie un calculator foarte performant; pre - performanele server-ului scad o dat cu creterea numrului de utilizatori.

Tipuri de arhitecturi client/server


22

Arhitectura client/server pe dou niveluri Arhitectura client/server pe trei niveluri Arhitectura client/server pe mai multe niveluri

Arhitectura client/server pe dou niveluri


23

a avut drept surs arhitectura file server a mbuntit: utilizabilitatea; scalabilitatea i flexibilitatea are trei componente repartizate pe dou niveluri: interfaa cu utilizatorul, logica aplicaiei i gestiunea bazei de date

Arhitectura client/server pe trei niveluri


24

este adugat un nivel suplimentar (nivel de mijloc sau server de aplicaii), ntre client i server-ul bazei de date clientul (primul nivel) este reprezentat de interfaa sistemului cu utilizatorul server-ul de baze de date (nivelul trei) furnizeaz funcionalitatea gestiunii bazei de date server-ul de aplicaii (nivelul de mijloc) furnizeaz servicii de administrare a regulilor afacerii i a prelucrrii datelor

Arhitectura client/server pe mai multe niveluri


25

nivelul de mijloc este mprit n dou sau mai multe niveluri cu funciuni diferite cele mai cunoscute aplicaii cu o astfel de arhitectur sunt aplicaiile Internet.

26

Introducere n limbajul PHP

Caracteristici ale PHP


27

Tipuri de limbaje de scriptare: client side interpreteaz scripturile doar dup ce paginile care conin script-urile au fost descrcate; server side - scripturile sunt rulate pe partea de server nainte ca pagina care conine scriptul s fie trimis browser-ului.

Pentru a putea rula un script PHP


28

parser (analizorul, interpretorul) PHP interpreteaz scripturile PHP server de web (Apache) care accept cererile HTTP formulate de clieni i le ofer rspunsurile la cererile formulate, adugnd i datele cerute. browser (client de web) cu ajutorul su se vizualizeaz rezultatele.

Sintaxa i semantica limbajului


29

Sintaxa limbajului reprezint totalitatea regulilor de scriere a programelor, astfel nct s fie acceptate de ctre interpretorul PHP. Semantica limbajului se refer la semnificaia construciilor sintactice corecte.

Vocabularul limbajului PHP


30

caractere utilizate-setul de caractere al limbajului: litere mari i mici, cifre, i o serie de caractere speciale identificatorii-modaliti de definire a datelor, funciilor, cuvintelor cheie. Identificatorii ncep ntotdeauna cu o liter. separatorii-elemente care separ identificatorii: spaiu, punct i virgul i virgula comentarii

Scrierea i executarea script-urilor


31

<?php phpinfo(); ?>


http://localhost/director/pagina calculatorul hazd (localhost) adresa IP 127.0.0.1 poate nlocui numele calculatorului gazd phpinfo() - ofer o serie de informaii despre PHP liniile de cod n limbajul PHP sunt finalizate cu ;

Funcionarea script-urilor PHP


32

Tipuri de date n PHP


33

Tipuri scalare Boolean ntreg stocate pe 32 de bii. Numr real reprezentate pe 64 bii ir de caractere trebuiesc incluse ntre ghilimele. Tipuri compuse Tablouri este asocierea dintre elementele tabloului i cheile sale.

Exemple de tipuri de date


34

2 numr ntreg -3 numr ntreg - 4 este eroare deoarece are spaiu 5.0 nu este numr ntreg 2.3e4 este numr real 2 nu este numr real 4 nu este numr ntreg ir de caractere $clasa[1] = limbaj

Caractere speciale
35

\n trecere la linie nou \ ghilimele \$ - simbolul $ \\ - caracterul backslash

Variabile i constante PHP


36

Variabile ncep cu $ urmate de o liter sau _. n limbajul PHP nu se precizeaz tipul de variabil. Atribuirea valorilor se face prin atribuire: atribuire prin valoare atribuire prin referin folosind simbolul &. Constante se definesc prin funcia define(). Odat definite, valorile lor nu se modific i pot fi utilizate oriunde. define($nume_constanta,valoare[,case sensitive])

Variabile dinamice
37

Variabila dinamic este denumit folosind o pereche de simboluri ale dolarului ($$) i este asociat cu o variabil obinuit care are un nume similar i include un singur simbol al dolarului.

$nume=Popa; $nume_persoana=nume; echo $$nume_persoana;

Conversia automat de tip a variabilelor


38

Reguli: Dac irul ncepe cu o valoare numeric, valoarea irului este dat de valoarea numeric respectiv; n caz contrar, valoarea irului este zero. Dac un punct zecimal sau un exponent (e sau E), este asociat cu valoarea numeric, tipul variabilei rezultante este dublu; n caz contrar, tipul valorii rezultante este un ntreg.

Conversia manual de tip a variabilelor


39

(int), (integer) - conversie forat la ntreg (real), (double), (float) - conversie forat la dublu (string) - conversie forat la ir (array) - conversie forat la tablou (object) - conversie forat la obiect

Exemple de conversie de tip


40

$x = 1; $y = $x+ 1 se aduna; echo $y


Conversie automat

$x = 1; $y = 2.5; $z = $x + (integer) $y; echo $z


Conversie manual

Exemple de variabile i constante


41

$a $1a nu este variabil $_1a nu este variabil $A $a+b nu este variabil define(constanta,Programare web) define(constanta,Programare web, true)

Operatori aritmetici
42

/ - mprire zecimal % - modulo returnnd restul . concatenare

Operatori de concatenare
43

=== - identic == - egal !== - nu este identic <> sau != - diferit

Operatori logici
44

AND sau && - I logic OR sau || - SAU logic ! negaia logic

Operatori de incrementare i decrementare


45

$x=$y-$x=++$y

Funcii
46

rand() genereaz aleator o valoare rand($a,$b)genereaz aleator o valoare ntre a i b max($a,$b,...) valoarea maxim dintr-un ir sqrt($a) scoate radicalul din variabila a pow($baza,$exponent) ridic baza la putere constant(nume_constanta) ntroarce valoarea constantei settype($variabila,tip) convertete variabila la tipul de dat dorit gettype($variabila) afieaz tipul variabilei

47

Structuri de control n PHP

Structura altenativ (condiional) 1


48

if...else expresia este evaluat la valoarea sa boolean

if(expresie) {secventa de instructiuni1} [else{secventa de instructiuni2}]

Structura altenativ (condiional) 2


49

Elseif evalueaz expresia la valoarea sa de TRUE.

if(expresie1) {secventa de instructiuni} elseif(expresie2) {secventa de instructiuni2} else {secventa de instructiuni3}

Structura alternativ (condiional) 3


50

Switcheste folosit atunci cnd trebuie ca valoarea unei variabile sau expresii s fie comparat cu diferite valori.

switch($variabila) {case valoare1: secvena instruciuni1 break; case valoare2: secvena instruciuni2 break; ................................................. case valoaren: secvena instruciunin break; }

switch($variabila) {case valoare1: secvena instruciuni1 break; case valoare2: secvena instruciuni2 break; ................................................. default: secvena instruciuni break; }

Structura repetitiv 1
51

While execut un set de instruciuni att timp ct expresia este evaluat la valoarea sa de TRUE.

while(expresie) { secv_instruciuni }

while(expresie): secv_instruciuni endwhile;

Structura repetitiv 2
52

Do...while verificarea valorii de adevr a condiiei se face dup execuia grupului de instruciuni.

do secven de instruciuni while(expresie);

Structura repetitiv 3
53

Foreste o structur de ciclare cu numr cunoscut de pai. for(expresie1;expresie2;expresia3) {secven de instruciuni} Expresie1 expresia de iniializare a variabilei de ciclare Expresie2 expresia de test Expresie3 expresia de incrementare

Structura repetitiv 4
54

Foreach folosit pentru parcurgerea tablourilor. Tablou


foreach($tablou as $valoare) {secven de instruciuni}

Matrice
foreach($tablou as $valoare) foreach($valoare as $valoare1) {secven de instruciuni}

Alte instruciuni
55

Continue folosit n instruciunile de ciclare pentru a omite restul iteraiei curente i pentru a continua execuia instruciunii iterative. Break folosit pentru ntreruperea execuiei unei instruciuni repetitive. Instruciunile care se afl dup break nu vor mai fi executate.

56

Utilizarea tablourilor n PHP

Crearea unui tablou


57

Crearea unui tablou se poate face prin: atribuirea unei valori pentru o variabil din tablou; invocarea funciei array().

Crearea unui tablou prin atribuire


58

$limbaje[] = C; $limbaje[] = PHP; $limbaje[] =Pascal;


$limbaje[PHP] = Ridicat; $limbaje[Pascal]=Mediu; $limbaje[C] =Redus;

$limbaje[0] = C; $limbaje[1] = PHP; $limbaje[] =Pascal;

Crearea unui tablou prin funcia array()


59

$limbaje=array(10=>C, PHP, Pascal);


$limbaje=array(PHP=>Ridicat,Pascal =>Mediu, C=>Redus);

Crearea unui tablou multi-dimensional


60

$date["PHP"] = array("simplu", "popular"); $date[Pascal"] = array(dificil", "nepopular"); $date[C"] = array(simplu", "popular");

$date= array("PHP"=>array("simplu","popular"), "Pascal"=>array("dificil","nepopular"), "C"=>array("dificil", "popular"));

Parcurgerea unui tablou


61

se poate face prin precizarea numelui tabloului i a cheii aferente valorii; $y = 3 * $x[1]; se parcurge secvenial tabloul cu ajutorul instruciunii for;

<?php $limbaje = array(0=>"C", 1=>"PHP", 2 =>"Pascal"); $limita = count($limbaje); for ($i = 0; $i < $limita; $i++) { echo "<BR>".$i."=>".$limbaje[$i]; } ?>

Precizarea unui element dintr-un tablou multidimensional


62

<?php $a = array(array(2, 5), array(1, 4), array(4,5)); $b = $a[1][1] + $a[2][0]; echo $b; ?>

Afiarea unui caracter dintr-un ir de caractere


63

pentru afiarea unui caracter din cadrul unui ir de caractere se va folosi urmtoarea form: $b=$var{pozitie}

<?php $a = 'Programare WEB'; $b = $a{11}; echo $b; ?>

64

Utilizarea funciilor n PHP

Definirea unei funcii


65

function nume_functie(nume_argument) // aici se insereaza corpul functiei

Numele funciei este case-sensitive

function calculeaza_arie($inaltime,$latime) return $inaltime * $latime;


Funcia va ntoarce o valoare

Apelarea unei funcii


66

apelarea funciei se face prin specificarea numelui funciei i a argumentelor $arie = calculeaza_arie(2,4); pentru a nu mai afia mesajele de avertizare se va folosi simbolul @.

Definirea funciilor cu argumente prestabilite


67

<?php function impozit_vanzari($cantitate ,$rata = 0.0725) { echo "<BR>cantitate=".$cantitate; echo "<BR>rata=".$rata; return $cantitate*$rata;} $cumparaturi = 123.45; echo "<BR>cumparaturi = ".$cumparaturi; $impozit = impozit_vanzari($cumparaturi,0.08); echo "<BR>impozit = ".$impozit; echo "<BR>"; $cumparaturi = 123.45; echo "<BR>cumparaturi = ".$cumparaturi; $impozit = impozit_vanzari($cumparaturi); echo "<BR>impozit = ".$impozit; ?>

Variabile i referine
68

Limbajul PHP folosete dou tipuri de variabile: globale-sunt declarate n afara funciilor. Domeniul de existen a unei variabile globale nu include i corpul funciei. Pentru a putea fi folosit inclusiv n corpul acesteia se va folosi instruciunea GLOBAL. GLOBAL $var1, $var2, $var3; locale-sunt create n interiorul funciei i sunt distruse atunci cnd se termin execuia funciei. statice-valoarea unei variabile locale trebuie s se pstreze de la o apelare la alta a funciei. STATIC $var1, $var2, $var3;

Exemplu variabil global - greit


69

<?php $pret= 13.5; $cantitate= 250; function cumpara() { return $pret * $cantitate;} echo "Suma pe care trebuie sa o platiti este ". cumpara(); ?>

Exemplu variabil global - bun


70

<?php $pret= 13.5; $cantitate= 250; function cumpara() { GLOBAL $pret, $cantitate; return $pret * $cantitate;} echo "Suma pe care trebuie sa o platiti este ". cumpara(); ?>

Exemplu variabile locale


71

<?php function local() { $x = 5; echo "<br>In corpul functiei x = ".$x; } $x = 2; echo "<br>In rest x = ".$x; local(); echo "<br>In rest x = ".$x; ?>

Exemplu variabil static


72

<?php function locala() { $x = $x + 1; echo "<br> x = ".$x;} function statica() { STATIC $x; $x = $x + 1; echo "<br> x = ".$x;} locala(); locala(); echo "<br>"; statica(); statica(); ?>

Utilizarea referinelor 1
73

Operatorul referin modific valoarea variabilei dup ultima modificare.

<?php $a = 'Disciplina'; $b = &$a; echo 'Valoarea variabilei $a este '.$a.'<br>'; echo 'Valoarea variabilei $b este '.$b.'<br>'; $b='Programare Web'; echo 'Variabila $b are valoarea Programare Web'; echo '<br>Valoarea variabilei $a va deveni '.$a; ?>

Utilizarea referinelor 2
74

Operatorul referin dac se folosete la definirea funcie, atunci se va folosi i la atribuirea valorii.

<?php function &refer ( ) {global $s; return $s;} $s = "Continut 1"; $z = &$s; $z='Continut 2'; $y=&refer(); echo $y;?>

Funcii
75

isset($variabila)-verific dac variabila a fost setat sau nu current($tablou)-returneaz valoarea curent a tabloului next($tablou)-valoarea urmtorului element al tabloului prev($tablou)-valoarea elementului anterior key($tablou)-ntoarce cheia valorii curente explode(delimitator,$sir)-transform un ir ntr-o matrice list($var1,$var2)-atribuie variabile cum acestea ar fi tablouri implode(delimitator,$tablou)-transform matricea ntr-un ir de caractere

ISSET
76

<?php if(isset($_POST['adresa']='a')) {echo 'Mesaj';} else {echo 'Mesaj 1';} ?>

Current, next, prev


77

Fie tabloul:

10 f def

a 34 435

c abc 1ad

Care va fi rezultatul execuiei secvenei:


<?php $matrice=array(array(10,'a','c'),array('f',34,'abc'),array('def',43, '1ad')); $prim_element=current($matrice[0]); $urmat_element=next($matrice[2]); $anterior_element=prev($matrice[2]); echo 'Primul element este: '.$prim_element.'<br>'; echo 'Urmatorul element este: '.$urmat_element.'<br>'; echo 'Elementul anterior este: '.$anterior_element.'<br>'; ?>

EXPLODE
78

Fie irul format din seria i numrul facturii(GL567). S se pstreze n variabila serie_factura seria facturii i n nr_factura numrul facturii.

79

<?php $factura='GL-567'; $separare=explode('-',$factura); $serie_factura=$separare[0]; $nr_factura=$separare[1]; echo 'Seria facturii este '.$serie_factura.' si numarul este '.$nr_factura;?>

<?php $factura='GLX-56567'; list($serie_factura,$nr_factura)=explode('-',$factura); echo 'Seria facturii este '.$serie_factura.' si numarul este '.$nr_factura; ?>

IMPLODE
80

Fie seria unei facturi identificat prin variabila serie_f i numrul facturii identificat prin variabila nr_f S se concateneze cele dou variabile ntr-una singur i separatorul dintre acestea s fie spaiul

81

<?php $serie_f='GLX'; $nr_f=456; $factura=$serie_f.' '.$nr_f; echo 'Factura are seria si numarul '.$factura; ?> <?php $serie_f='GL'; $nr_f=45786; $matrice_factura=array($serie_f,$nr_f); $factura=implode(' ',$matrice_factura); echo 'Factura are seria si numarul '.$factura; ?>

82

LUCRUL CU FORMULARE

Formular definiie i definire


83

Component web care preia datele introduse de utilizator i le transmite server-ului Introducerea unui formular n cadrul documentelor HTML se face prin tag-ul:

<form name="nume_formular" method="nume_metod" action="URL_script">


name numele formularului method metoda de transmisie a datelor action - specific browser-ului ce se va ntmpla cu datele introduse

Transmiterea datelor la server-ul de Web


84

Transmiterea datelor se face prin : Metoda POST-preia datele introduse n cadrul formularului i le transmite server-ului prin intermediul protocolului HTTP. Datele transmise nu pot fi vizualizate n cadrul adresei. Metoda GET-preia datele din cadrul elementelor formularului, le codific i apoi le adaug n cadrul adresei URL, astfel c se poate vedea numele cmpului i valoarea sa. Datele apar n cadrul adresei URL sub form de perechi de forma nume=valoare.

Metoda POST-fiier HTML


85

<form action="fisier_prelucrare.php" method="post" name="Primul_formular" > <table width="284" border="0" align="center"> <tr> <td width="122">Nume si prenume</td> <td width="152"><input name="date_personale" type="text" ></td> </tr> <tr> <td>Adresa</td> <td><textarea name="adresa" rows="2"> </textarea> </td> </tr> <tr> <td colspan="2"><div align="center"> <input type="submit" name="Submit" value="Prelucreaza datele"> </div></td> </tr> </table> </form>

Metoda POST fiierul de prelucrare PHP


86

<?php echo "Am inregistrat numele si prenumele dvs.: <strong>". $_POST[date_personale]. </strong> si va trimitem coletul la adresa <strong>".$_POST[adresa]."</strong>"; ?>

Adresa URL prin metoda POST

Metoda GET fiierul de prelucrare PHP


87

<body> <?php echo "Am inregistrat numele si prenumele dvs.: <strong>". $_GET[date_personale]. </strong> si va trimitem coletul la adresa <strong>".$_GET[adresa]."</strong>"; ?> Adresa URL prin metoda GET

Lucrul cu elemente de formular


88

controale de tip text (cmp de editare); control de tip textarea; butoane radio; casete de validare; controlul de tip list (select). cmpuri ascunse

Controale de tip cmp de editare


89

<input name="nume" type="password" size="33" maxlength="15">


TYPE specific tipul cmpului de editare SIZE precizeaz dimensiunea cmpului de editare MAXLENGTH specific numrul maxim de caractere care pot fi introduse n cmpul de editare VALUE reprezint valoarea iniial a cmpului de editare.

Controale de tip textarea


90

<textarea name="textarea" rows="10"></textarea>

cols="43"

COLS stabilete numrul total de caractere care sunt introduse pe un rnd ROWS precizeaz numrul rndurilor care se pot include n cadrul cmpului de editare

Butoane radio
91

<label> <input type="radio" value="o2">Optiunea2 </label>

name="Nume_grup"

TYPE specific tipul de buton NAME precizeaz numele grupului din care face parte VALUE reprezint valoarea asociat butonului radio

Casete de selecie
92

<input name="o1" type="checkbox" value="checkbox"> NAME specific numele opiunii TYPE precizeaz tipul de buton VALUE reprezint valoarea asociat casetei de validare

Controlul de tip list


93

<SELECT NAME=oras[] MULTIPLE SIZE=numar> <option value="BC">Bacau</option> <option value=GL">Galati</option> </select>


NAME atribuie listei de selecie un nume MULTIPLE se pot alege mai multe opiuni, iar numele va trebui s aib numele urmat de [] SIZE precizeaz numrul de elemente vizibile din list VALUE atribuie o valoare de tip text care va fi transmis server-ului, sub form de perechi "name = value

Exemple Lucrul cu butoane radio-static/HTML


94

<form action="fisier_prelucrare_radio.php" method="post" name="Formular" > <table width="375" border="0" align="center"> <tr> <td width="129">Nume si prenume</td> <td width="236"><input name="date_personale" type="text" id="date_personale"></td> </tr> <tr> <td>Tip persoana </td> <td><p> <label> <input type="radio" name="tip_persoana" value="Persoana Fizica"> Persoana fizica</label><br> <label> <input type="radio" name="tip_persoana" value="Persoana Juridica"> Persoana juridica</label><br> </p></td> </tr> <tr> <td colspan="2"><div align="center"> <input type="submit" name="Submit" value="Prelucreaza datele"> </div></td> </tr> </table> </form>

Exemple Lucrul cu butoane radio static fiierul de prelucrare


95

<?php echo "Numele si prenumele dvs. este: <strong>". $_POST[date_personale] ."</strong> si sunteti <strong>".$_POST[tip_persoana]."</strong>."; ?>

Exemple Lucrul cu butoane radio-dinamic


96

<?php mysql_connect('localhost','root',''); mysql_select_db('curs'); $selectie=mysql_query('select * from grad_didactic'); while($rand=mysql_fetch_array($selectie)) {$grad=$rand['denumire_grad']; echo'<label>'; echo'<input type="radio" name="grad_didactic" value="'.$grad.'">'.$grad.'</label>'; echo'<br>'; } ?>

Exemple
Lucrul cu casete de validare-static/ HTML
97

<form action="fisier_prelucrare_checkbox.php" method="post" name="Formular"> <table width="480" border="0" align="center"> <tr> <td width="249">Nume si prenume</td> <td width="221"><input name="date_personale" type="text id="date_personale"></td> </tr> <tr> <td>Selectati marcile de produs preferate </td> <td><p> <input name="Samsung" type="checkbox" value="Samsung"> Samsung </p> <p> <input name="Panasonic" type="checkbox" value="Panasonic"> Panasonic </p> </td> </tr> <tr> <td colspan="2"><div align="center"> <input type="submit" name="Submit" value="Selecteaza produsele"> </div></td> </tr> </table> </form>

98

Exemple Lucrul cu casete de validare-static fiierul de prelucrare PHP

<?php echo "Numele si prenumele dvs. este: <strong>". $_POST[date_personale]. "</strong> si ati ales urmatoarele marci de produse: "; if(isset($_POST[Samsung]) and isset($_POST[Panasonic])) echo "Samsung si Panasonic"; else if (isset($_POST[Samsung])) echo "Samsung"; else if (isset($_POST[Panasonic])) echo "Panasonic"; ?>

Exemple Lucrul cu casete de validare-dinamic


99

<?php mysql_connect('localhost','root',''); mysql_select_db('curs'); $selectie=mysql_query('select * from angajat'); while($rand=mysql_fetch_array($selectie)) {$id_angajat=$rand['id_angajat']; $nume_prenume=$rand[nume_angajat]. '.$rand[prenume_angajat]; $nume_casuta='c'.$id_angajat; echo'<p><input type="checkbox" name="'.$nume_casuta. value="'.$nume_casuta.'">'.$nume_prenume.'</p>'; } ?>

100

Exemple Lucrul cu casete de validare-dinamic fiierul de prelucrare

<?php mysql_connect('localhost','root',''); mysql_select_db('curs'); $selectie=mysql_query('select * from angajat'); echo 'Persoanele selectate de dvs. sunt:'; while($rand=mysql_fetch_array($selectie)) {$id_angajat=$rand['id_angajat']; $nume_casuta='c'.$id_angajat; if(isset($_POST[$nume_casuta])) {$selectie2=mysql_query('select * from angajat where id_angajat='.$id_angajat); while ($rand2=mysql_fetch_array($selectie2)) {$nume_prenume=$rand2[nume_angajat].' '.$rand2[prenume_angajat]; echo '<ul>'; echo '<li>'.$nume_prenume; echo '</ul>'; } } } ?>

Redirecionarea ctre o pagin nou


101

se realizeaz cu ajutorul: funciei header() Tag-ului HTML meta

Exemplu header()
102

<?php $mesaj="Numele si prenumele dvs. este: <strong>". $_POST[date_personale] ."</strong> si ati ales: "; if(isset($_POST[Samsung]) and isset($_POST[Panasonic])) {$mesaj=$mesaj."Samsung si Panasonic";} else if (isset($_POST[Samsung])) {$mesaj=$mesaj."Samsung";} else if (isset($_POST[Panasonic])){$mesaj=$mesaj."Panasonic";} else {header("location:Selectie.html");} echo $mesaj; ?> <html> </html> se va apela funcia header() doar n cazul n care utilizatorul nu selecteaz nici o caset de validare din cele prezetate Rezultatul obinut n urma apelului acestei funcii este deschiderea unei noi pagini, Selectie.html, care poate include orice element

Tag-ul HTML META


103

<meta http-equiv= refresh" url=index.php?eroare=1" />

content=

secunde;

Combinarea codului HTML i PHP pe o singur pagin


104

se folosete atunci cnd se dorete prelucrarea datelor din cadrul unui formular n aceeai pagin cu codul HTML static se va crea un formular care va avea ca i aciune variabila $_SERVER['PHP_SELF']

105

NOIUNI FUNDAMENTALE DESPRE BAZELE DE DATE I SQL

Concepte de baz-BD relaionale


106

O baz de date relaional stocheaz datele n tabele Are capacitatea de a stabili relaii ntre date din mai multe tabele Bazele de date relaionale au la baz limbajul de interogare SQL SQL-limbaj care poate obine accesul la date stocate n mai multe tabele, poate filtra datele dorite i poate sorta, rezuma i afia rezultatele

Crearea unei baze de date


107

Crearea unei BD se face plecnd de la modelul logic al bazei de date http://localhost/phpmyadmin/

utf8_general_ci-compar irul de caractere folosind un limbaj general i nu este case-sensitive utf8_general_cs-compar irul de caractere folosind un limbaj general i este case-sensitive CREATE DATABASE BD_IE;

Crearea tabelelor din baza de date


108

CREATE TABLE BD_IE.student (nr_matricol INT NOT NULL AUTO_INCREMENT PRIMARY KEY , nume_student CHAR( 20 ) NOT NULL , prenume_student CHAR( 20 ) NOT NULL , CNP VARCHAR( 13 ) NOT NULL )

Limbajul SQL nu este case-sensitive

Accesul la datele unei baze de date


109

Selectarea datelor din baza de date SELECT Inserarea datelor n baza de date INSERT teregerea datelor din baza de date DELETE Modificarea datelor n baza de date - UPDATE

SELECTAREA datelor
110

Componenta SQL-ului care permite formarea interogrilor este DML (Data ManipulationLanguage) DML permite accesul la datele bazei de date,dar i inserarea de noi date, actualizarea sau tergerea celor existente Selectarea datelor se face prin comanda SELECT

Comanda SELECT-regsirea datelor


111

Cea mai simpl interogare este selectarea tuturor datelor dintr-un tabel SELECT * FROM tabel * - precizeaz toate cmpurile din tabel selectarea doar a anumitor cmpuri se face prin precizarea acestora
SELECT camp1, camp2 FROM tabel formatul datelor de ieire plaseaz fiecare rnd al tabelului pe o linie separat i prezint coloanele ntr-o ordine arbitrar

Comanda SELECT-sortarea datelor gsite


112

pentru sortarea datelor regsite n urma filtrrii se va folosi ORDER BY


SELECT nume_cmpuri FROM tabel ORDER BY nume_cmpuri DESC/ASC

clauza va fi stabilit la sfritul instruciunii SELECT. dup sortarea dup mai multe cmpuri, acestea vor fi aranjate n funcie de ordinea care a fost precizat. ordinea de aranjare a rezultatelor se va face n funcie de cuvntul cheie DESC sau ASC

Comanda SELECT-sortarea datelor gsite


113

SELECT cod_produs,den_produs,pret_produs FROM produs ORDER BY den_produs DESC,pret_produs ASC SELECT cod_produs,den_produs, pret_produs FROM produs ORDER BY den_produs, pret_produs ASC SELECT cod_produs,den_produs, pret_produs FROM produs ORDER BY den_produs, pret_produs SELECT cod_produs,den_produs, pret_produs FROM produs ORDER BY 2,3

Comanda SELECT-filtrarea datelor


114

Filtrarea datelor se face cu ajutorul clauzei WHERE


SELECT nume_cmpuri FROM tabel WHERE camp operator valoare

Clauza WHERE, care specific criteriile de cutare, se plaseaz imediat dup clauza FROM. Operator poate fi unul dintre operatorii de verificare: egal, diferit, mai mare, mai mic sau egal, ntre (BETWEEN ...AND...), LIKE, IS NULL, IN, NOT LIKE, NOT IN

Comanda SELECT-filtrarea datelor


115

SELECT den_produs, pret_produs FROM produs WHERE pret_produs=3.87 SELECT den_produs, pret_produs FROM produs WHERE pret_produs!>3.87 SELECT den_produs, pret_produs FROM produs WHERE pret_produs=3.87 SELECT cod_produs FROM produs WHERE den_produs IS NULL SELECT den_produs, pret_produs FROM produs

Comanda SELECT Combinarea clauzelor WHERE


116

dac se dorete filtrarea dup mai multe cmpuri se vor folosi n clauza WHERE cei doi operatori AND sau OR
SELECT nume_cmpuri FROM tabel WHERE camp op val AND/OR camp1 op val1

op-reprezint operatorul de selecie Primul operator care se prelucreaz este operatorul AND apoi OR

Comanda SELECT-combinarea clauzelor


117

SELECT den_produs, pret_produs FROM produs WHERE cod_produs=P27 AND pret_produs=5 SELECT den_produs, pret_produs FROM produs WHERE cod_produs=P27 OR pret_produs=5 SELECT cod_produs, den_produs, pret_produs FROM produs WHERE den_produs=produs1 OR den_produs=produs2 AND pret_produs>=5 SELECT cod_produs, den_produs, pret_produs FROM produs WHERE (den_produs=produs1 OR den_produs=produs2) AND pret_produs>=5

Comanda SELECT-operatorul IN
118

este folosit pentru a specifica un domeniu de condiii. Operatorul preia o list cu elemente delimitate prin virgul i sunt incluse ntre paranteze. poate include i o alt alt clauz SELECT are acelai rol ca i operatorul OR

SELECT nume_cmpuri FROM tabel WHERE nume_camp IN (valori)

valori-este lista de valori din care se poate alege

Comanda SELECT- operatorul IN


119

SELECT cod_produs, den_produs, pret_produs FROM produs WHERE den_produs IN (produs1,produs2) SELECT cod_produs, den_produs, pret_produs FROM produs WHERE den_produs=produs1 OR den_produs=produs2 SELECT nr_matricol,nume, prenume FROM student WHERE cod_specializare IN (SELECT cod_specializare FROM specializare WHERE cod_specializare=1 )

Comanda SELECT-operatorul NOT


120

Neag orice condiie pe care o precede.

SELECT nume_cmpuri FROM tabel WHERE NOT nume_camp op valoare

op-este operatorul care se va nega

Filtrarea prin caracterele de nlocuire


121

se face prin intermediul operatorului LIKE urmat de caraceterle de nlocuire:


Caracterul % - gsete orice caracter, indiferent de cte ori apare; Caracterul _ - are aceeai aciune ca %, dar nlocuiete un singur caracter; Caracterul [] este folosit pentru specificarea unui set de caractere, dintre care unul trebuie s corespund unui caracter n poziia specificat. Plasarea unui ^ n faa caracterului nu va cuta dup acele caractere.

Filtrarea datelor prin caractere de nlocuire


122

SELECT nume_cmpuri FROM tabel WHERE nume_camp LIKE %sircaractere% SELECT nume_cmpuri FROM tabel WHERE nume_camp LIKE _ircaractere_ SELECT nume, prenume FROM student WHERE nume LIKE [PT]%

Comanda SELECT-gruparea datelor


123

Grupurile se realizeaz cu ajutorul clauzei GROUP BY

SELECT nume_cmpuri FROM tabel GROUP BY camp

Comanda SELECT-gruparea datelor


124

Presupunem c avem baza de date produs cu urmtoarele cmpuri: cod_produs, denumire, pret, cantitate, categorie_produs. Se dorete afiarea pentru fiecare dintre categorii de produs cantitatea cea mai mare de produs din stoc. SELECT categorie_produs, MAX(cantitate) FROM produse GROUP BY categorie_produs

Efectuarea calculelor matematice


125

se vor folosi datele gsite n urma seleciei;

SELECT cod_prod,nume_prod,pret_prod, cantitate*pret_prod AS valoare FROM produse_comandate WHERE serie_f=GL AND nr_f=123

Concluzii comanda SELECT


126

clauza ORDER BY se plaseaz ultima n cadrul sintaxei comenzii SELECT clauza WHERE se plaseaz imediat dup precizarea tabelului n care se face selecia (FROM)

127

NOIUNI FUNDAMENTALE DESPRE BAZELE DE DATE I SQL

INSERAREA datelor n baza de date


128

Se poate utiliza n mai multe moduri:


Pentru a insera un singur rnd complet; Pentru a insera un singur rnd parial; Pentru a insera rezultatele unei interogri.

Comanda INSERT-rnd complet


129

Valorile trebuiesc introduse n ordinea n care sunt definite coloanele, n caz contrar valoarea ntoars este NULL. INSERT INTO nume_tabel VALUES (valori_de_introdus)

Comanda INSERT-rnd parial


130

Pentru a elimina situaia n care nu se tie cu exactitate ordinea n care s se introduc datele, se va folosi urmtoarea sintax:
INSERT INTO nume_tabel (campuri) VALUES (valori_de_introdus)

n cazul n care un cmp nu este completat cu o valoare, n mod automat i se va insera valoarea NULL. Dac cmpul omis nu accept valoarea NULL atunci SGBD-ul va genera un mesaj de eroare i rndul nu va fi inserat.

Comanda SELECT-sortarea datelor gsite


131

SELECT cod_produs,den_produs,pret_produs FROM produs ORDER BY den_produs DESC,pret_produs ASC SELECT cod_produs,den_produs, pret_produs FROM produs ORDER BY den_produs, pret_produs ASC SELECT cod_produs,den_produs, pret_produs FROM produs ORDER BY den_produs, pret_produs SELECT cod_produs,den_produs, pret_produs FROM produs ORDER BY 2,3

Comanda SELECT-filtrarea datelor


132

Filtrarea datelor se face cu ajutorul clauzei WHERE


SELECT nume_cmpuri FROM tabel WHERE camp operator valoare

Clauza WHERE, care specific criteriile de cutare, se plaseaz imediat dup clauza FROM. Operator poate fi unul dintre operatorii de verificare: egal, diferit, mai mare, mai mic sau egal, ntre (BETWEEN ...AND...), LIKE, IS NULL, IN, NOT LIKE, NOT IN

Comanda INSERT- date regsite


133

Este folosit pentru a introduce ntr-un tabel rezultatul unei instruciuni SELECT

INSERT INTO nume_tabel (campuri) SELECT campuri_tabel_importat FROM nume_tabel1 nume_tabel reprezint numele tabelului n care se vor introduce datele campuri reprezint numele campurilor n care se introduc datele campuri_tabel_importat reprezint structura tabelului din care se import datele nume_tabel reprezint numele tabelului din care se import datele.

Comanda INSERT-date regsite


134

INSERT INTO Clienti (cod_client,nume_client,tip) SELECT cod_client, nume_client, tip_client FROM ClientiNoi WHERE cod_client IN (C1,CL1,CL3)

Copierea datelor dintr-un tabel n altul


135

Nu folosete instruciunea INSERT. Pentru a copia coninutul unui tabel n cadrul unui alt tabel nou se va folosi instruciunea CREATE TABLE.
CREATE TABLE tabel_nou AS SELECT nume_cmpuri FROM tabel

Copierea datelor dintr-un tabel n altul


136

CREATE TABLE tabel_nou AS SELECT nume_student, prenume_student FROM student

137

NOIUNI FUNDAMENTALE DESPRE BAZELE DE DATE I SQL (2)

ACTUALIZAREA datelor n BD
138

Se va folosi instruciunea UPDATE i poate fi folosit n dou moduri:


Pentru actualizarea anumitor nregistrri din cadrul unui tabel Pentru actualizarea tuturor rndurilor dintr-un tabel.

UPDATE nume_tabel SET coloana1=valoare1, coloana2=valoare2,... WHERE coloana= valoare Dac lipsete clauza WHERE se vor actualiza toate

rndurile din tabel

TERGEREA datelor din BD


139

Se va folosi instruciunea DELETE i poate fi folosit n dou moduri:


Pentru tergerea anumitor nregistrri din cadrul unui tabel Pentru tergerea tuturor rndurilor dintr-un tabel.

DELETE FROM nume_tabel WHERE coloana= valoare

Dac lipsete clauza WHERE se vor actualiza toate rndurile din tabel

140

ALTE MODURI DE CREARE A INSTRUCIUNILOR SELECT

UNIUNEA tabelelor-echi-uniune
141

Uniunea reprezint un mecanism folosit pentru asocierea tabelelor din cadrul unei instruciuni SELECT. n urma unei uniuni se va returna un singur set de date de ieire i asociaz instantaneu rndurile corecte din fiecare tabel.

SELECT nume_cmpuri_dorite_din tabele FROM tabel1, tabel2 WHERE tabel1.camp1=tabel2.camp1

dac nu este precizat clauza WHERE atunci se va realiza produs cartezian

UNIUNEA tabelelor
142

SELECT den_produs,pret_produs,den_producator FROM produs, producator WHERE producator.id_producator=produs.id_producator

SELECT den_produs,pret_produs,den_producator FROM produs, producator

UNIUNEA tabelelor-uniunea interioar


143

Uniunea interioar specific tipul uniunii

SELECT nume_cmpuri_dorite_din tabele FROM tabel1 INNER JOIN tabel2 ON tabel1.camp1=tabel2.camp1 SELECT den_produs,pret_produs,den_producator FROM produs INNER JOIN producator ON produs.id_producator=producator.id_producator

UNIUNEA ntre mai multe tabele


144

SELECT nume_cmpuri_dorite_din tabele FROM tabel1, tabel2,tabel3 WHERE tabel1.camp1=tabel2.camp1 AND tabel3.camp2=tabel.camp2 SELECT den_produs,pret_produs,cantitate,den_producator FROM produs, producator,comanda_produs WHERE producator.id_producator=produs.id_producator AND comanda_produs.id_produs=produs.id_produs AND nr_comanda=G123

145

INTERACIUNEA NTRE SCRIPTURILE PHP I MYSQL

MySQL server de baze de date


146

Pentru a putea realiza cererile MySQL este necesar s stabilim o legatur cu serverul MySQL. Pentru a stabili aceast legatur trebuie specificai 4 parametri strict necesari:
Numele hostului unde este stocat baza de date MySQL. Numele utilizatorului Parola Numele Bazei de Date necesare.

mysql_connect(server,user,parola) mysql_select_db(bd)

Interaciune PHP i MySQL


147

Pentru interactiunea PHP-MySQL sunt utilizate mai multe funcii: mysql_connect-deschide conexiunea cu server-ul mysql_close-nchide conexiunea cu MySQL mysql_fetch_array-extrage un rnd ca o matrice mysql_insert_id-preia ID din ultima interogare mysql_num_rows-numr rndurile mysql_num_fields-numr cmpurile mysql_query-trimite o interogare MySQL mysql_result-preia rezultatul mysql_select_db-selecteaz baza de date mysql_error-ntoarce un mesaj de eroare n urma operaiei MySQL

mysql_connect i mysql_close
148

mysql_connect(nume_server,nume_utilizator,parola) mysql_close($conexiune) <?php $legatura=mysql_connect('localhost', root', ''); if (!$legatura) { die('Eec la conectare: ' . mysql_error()); } echo 'Conectare cu succes'; mysql_close($legatura); ?>

Exemplu
149

<?php mysql_connect(localhost,root,); mysql_select_db(bd_ie); mysql_query(INSERT INTO student(nume,prenume,CNP) VALUES(.$_POST[nume]., .$_POST[prenume]., .$_POST[CNP].)); echo Ultima inregistrare introdusa are codul .mysql_insert_id(); $selectie=mysql_query(SELECT * FROM student); while($rand=mysql_fetch_array($selectie)) {$nume_student=$rand[nume]; $prenume_student=$rand[prenume]; $CNP_student=$rand[CNP]; echo Numele dvs. este .$nume_student. si prenumele .$prenume_student. si aveti CNP-ul .$CNP_student;} ?>

150

FUNCII DE DATE I TIMP. FUNCII CARACTER. ALTE TIPURI DE FUNCII.

Funcii de date i timp


151

checkdate(int $month,int $day,int $year )-valideaz data date(string $format)-ntoarce data curent conform unui format getdate()-ntoarce un tablou asociativ coninnd informaia despre dat i or gettimeofday()-ntoarce un tablou ce conine datele ntoarse n rezultatul apelului funciei de sistem

Checkdate
152

<?php var_dump(checkdate(2, 29, 2001)); ?> Funcia var_dump va afia informaii despre variabil. ntoarce o valoare boolean.

Date
153

Format a A d F h H i j l m s w y Y z

Efect am sau pm AM sau PM Ziua lunii de forma 01 pn la 31 Luna, sub form de caractere (March) Ora format pe 12 ore (01-12) Ora format pe 24 ore (00-23) Minute, de la 00 la 59 Ziua din lun, adic de la 1 la 31 Ziua sptmnii Luna, adic de la 1 la 12 secunde ziua sptmnii format ntreg, unde 0 reprezint Duminic pn la 6 reprezint Smbt anul cu 4 cifre anul cu 2 cifre ziua din an, adic de la 0 la 365

Date
154

<?php echo date(l,j F, Y); ?>

Getdate
155

timestamp seconds minutes hours mday wday mon year yday weekday month

Valoare secunde minute ore ziua din lun sub form de numr Ziua din sptmn sub form de numr Luna sub form de numr anul Ziua din an, sub form de numr Ziua, (Friday) Luna, (May)

Getdate
156

<?php $data=getdate(); echo $data[mday]... $data[month]...$data[year] ?>

Gettimeofday
157

Cheie Valoare sec secunde usec microsecunde minuteswest Minute vest fa de Greenwich

<?php echo gettimeofday(); ?>

Funcii pe iruri de caractere


158

explode (string $delimiter, string $string [, int $limit]) ltrim/ rtrim/ trim(string $str[,string $charlist]) md5 (string $str) str_ireplace ($search,$replace,$subject) str_repeat(string $input,int $multiplier ) str_replace($search, $replace, $subject[, $count]) strcasecmp(string $str1 , string $str2 ) strcmp(string $str1 , string $str2 ) stripos(string $haystack, string $needle) strlen ( string $string ) substr ( string $string , int $start [, int $length ] ) str_replace($search, $replace, $subject)

Explode
159

explode (string $delimiter, string $string [, int $limit])


$delimitereste caracterul dup care se face mprirea $string irul care este mprit $limitprecizeaz n cte subiruri se mparte. Valoarea negativ este interpretat ca i 1.

<?php $sir="subsir1 subsir2 subsir3"; $subsir=explode(" ",$sir); echo $subsir[0]; echo $subsir[1]; $sir1='sir1|sir2|sir3'; print_r(explode('|',$sir1,2)); print_r(explode('|',$sir1,-1));?>

Ltrim/ rtrim/ trim


160

ltrim/ rtrim/ trim(string $str) -elimin spaiile din stnga, dreapta sau din ambele capete ale irului
<?php $variabila= valoare variabila ; echo trim($variabila); ?>

Md5
161

md5 (string $str)-codific irul de caractere. ntoarce un ir de 32 de caractere hexazecimale. nu va mai putea fi decodificat <?php $variabila='programare1'; if(md5($variabila)=='be394f7907863ddf6edfacecdf476aa8') echo 'S-a scris Programare'; else exit('Nu este ceea ce trebuie'); ?> Funcia exit($mesaj)-afieaz mesajul i ntrerupe execuia script-ului curent

Str_ireplace
162

str_ireplace ($search,$replace,$subject) nlocuiete un ir de caractere cu un alt ir de caractere, fr a face diferen ntre litere mari i litere mici
<?php $sir='Joi avem cursul de PW'; $modificare = str_ireplace("PW", "Programare Web",$sir); echo $modificare; ?> <?php $sir='Joi avem cursul de PW'; $modificare = str_ireplace(pw", "Programare Web",$sir); echo $modificare; ?>

Str_repeat
163

str_repeat(string $input,int $multiplier )-repet un ir de caractere


<?php $sir='repetare '; $repeta=str_repeat($sir,4); echo $repeta; ?>

Str_replace
164

str_replace($search, $replace, $subject[, $count]) nlocuiete toate apariiile irului de caractere cutat cu irul de nlocuire, fiind case-sensitive
$search ce anume va nlocui $replace irul cu care se va nlocui $subject irul unde se va nlocui $count va returna numrul rezultatelor gsite

Dac $subject este tablou, atunci irul se va nlocui n toate elementele tabloului.

Str_replace
165

<?php $sir='Joi avem cursul de PW'; $modificare = str_replace("pw", "Programare Web",$sir); echo $modificare;?> <?php $sir='Joi avem cursul de PW'; $modificare = str_replace("pw", "Programare Web",$sir); echo $modificare;?> <?php $sir='Joi avem cursul de Programare Web'; $vocale=array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U"); $modificare=str_replace($vocale,"",$sir); echo $modificare;?> <?php $sir='Joi avem cursul de PW'; $vocale=array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U"); $modificare=str_replace($vocale,"",$sir,$aparitii); echo $modificare.'<br>'.$aparitii;?>

Strcasecmp
166

strcasecmp(string $str1 , string $str2 )-compar dou iruri fr a face distincie ntre litere mari i mici i va ntoarce >0 dac primul ir este mai mare dect al doilea ir, <0 dac primul este mai mic dect al doilea i 0 dac sunt egale
<?php $var1="sir"; $var2="SIR"; if(strcasecmp($var1,$var2)==0) {echo 'Sirurile sunt la fel';} ?>

Strcmp
167

strcmp(string $str1 , string $str2 )-compara doua siruri de caractere fcnd diferen ntre litere mari i litere mici
<?php $var1="sir"; $var2="SIR"; if(strcasecmp($var1,$var2)==0) {echo 'Sirurile sunt la fel';} else echo 'Sirurile nu sunt la fel'; ?>

Stripos
168

stripos($sir, $cautare)-gsete poziia primei apariii a unui ir de caractere ntr-un alt ir, fr s fac diferen ntre literele mici si cele mari
$sir irul n care se face cutarea $cautare irul care este cutat

<?php $cauta='a'; $sir='Joi la ora 10 avem PW'; $pozitie=stripos($sir,$cauta); if($pozitie!==false) {echo "Pozitia este ".$pozitie;} else echo "Nu s-a gasit caracterul cautat"; ?>

Substr
169

substr ($sir, $inceput [,$lungime ])-returneaz o parte a irului


$inceput<0 - se va porni de la sfrit ctre nceput $lungime<0 - nu se vor lua ultimele $lungime caractere.

<?php $rest=substr("abcdef",-1); $rest=substr("abcdef",-2); $rest=substr("abcdef",-3,1); $rest=substr("abcdef",0,-1); $rest=substr("abcdef",2,-1); $rest=substr("abcdef",4,-4); $rest=substr("abcdef",-3,-1); ?>

Strlen
170

strlen ($sir)-obine lungimea unui ir de caractere


<?php $sir='Am de cautat litera a'; $numar=strlen($sir); echo $numar ?>

Alte tipuri de funcii-funcii matematice


171

abs ( mixed $number )-valoarea absolut a unui nr. ceil ( float $value )-rotunjete la cel mai mare nr. ntreg exp ( float $arg )-calculeaz exponeniala floor ( float $value )-rotunjete la cel mai mic nr. ntreg max/min(array $values ) mixed max/min(mixed $val1,mixed $val2 [,mixed $val3...]) pow(number $baza,number $exponent) rand ( int $min , int $max ) round(float $val[,int $precision=0]) sqrt ( float $arg )

Exemple 1
172

<?php $abs=abs(-4.2); ?> <?php $a=ceil(7.9); $b=ceil(-7.5); echo $a; echo $b;?> <?php echo round(3.4); echo round(3.5); echo round(1.95583,2); ?>

<?php echo exp(5.7); ?> <?php echo floor(4.3); echo floor(9.999); echo floor(-3.14); ?>

Exemplu max/min
173

Dac argumentul este tablou va afia valoarea cea mai mare din tablou PHP evalueaz irurile de caracter ca fiind 0 dac este comparat cu un numr ntreg, dar va returna irul. Dac se compar tablouri, atunci evaluarea se va face de la stnga la dreapta.

Exemplu max/min
174

<?php echo max(1, 3, 5, 6, 7); echo max(array(2, 4, 5)); echo max(0, 'hello'); echo max('hello', 0); echo max(-1, 'hello'); $val = max(array(2,4,8),array(2,5,7)); $val = max('string',array(2,5,7),42); ?>

175

LUCRUL CU SESIUNI DE UTILIZATOR

Definire
176

Sesiunea permite stocarea de informaii n cadrul unei variabile pentru a fi utilizat n cadrul mai multor pagini. sesiunile nu pstreaz valorile stocate pe calculatorul utilizatorului pstreaz informaiile pn la nchiderea browser-ului, sau pn cnd utilizatorul distruge n mod explicit sesiunea curent

Crearea unei sesiuni


177

pentru a putea lucra cu sesiuni trebuie s se deschid sesiunea folosind funcia session_start() session_start() se introduce n antetul paginii web la crearea unei sesiuni se creeaz un identificator de sesiune (SID) setarea variabilelor sesiune se face prin variabila superglobal $_SESSION[nume_variabila] la fiecare pagin care folosete variabila sesiune va trebui deschis sesiunea nu se transmite variabila de la o pagin la alta, ci informaiile coninute n aceasta

Manipularea variabilelor sesiune


178

session_id()-afl identificatorul sesiunii dac se dorete atribuirea unei anumite valori pentru sesiune, aceasta va fi declarat nainte de a deschide sesiunea

<?php session_id('1a2bda3bad'); session_start(); echo Identificatorul sesiunii curente SID=". session_id(); ?>

Distrugerea unei sesiuni


179

session_destroy()- distruge sesiunea i va terge i toate variabilele sesiune unset(nume_variabila_sesiune)-terge variabila de sesiune specificat session_unset()-terge toate variabilele de sesiune, dar nu i sesiunea n sine

180

LUCRUL CU DOSARE I FIIERE

Includerea fiierelor
181

Se face cu ajutorul funciilor: include() sau require(); include_once() sau require_once (); Util n includerea fiierelor este directiva include_path: include_path .:/director1/director2/htdocs/director3/director4/

Includerea fiierelor - exemplu


182

<?php for ($i=1;$i<=3;$i++) {$includefisier="fisier$i".".txt"; echo 'Se include fisierul $includefisier: <br>'; include($includefisier); echo '<br>; } ?> <?php for ($i=1;$i<=2;$i++) { echo 'Se include continutul fisierului cu numele <strong> fisier1.txt</strong>: <br>'; $fisier_inclus=include_once ("fisier1.txt"); echo '<br>; } ?>

Returnarea unei valori dintr-un fiier inclus


183

ntreruperea execuiei codului din cadrul fiierului inclus se face cu ajutorul instruciunii return. Tot codul aflat dup aceast instruciune nu mai este executat.

Returnarea unei valori dintr-un fiier inclus - exemplu


184

<?php $fisier=include("fisier_return.php"); echo 'Fisierul inclus are ca rezultat valoarea: '. $fisier.'.'; ?> <?php $a=56; $b=34; $c=20; return $c; $c=$a+$b; ?>

Verificarea fiierelor
185

verificarea existenei fiierelor file_exists(nume_fisier.extensie). verificarea tipului de entitate is_file(nume_fisier) is_dir(/director) verificarea strii unui fiier is_readable(nume_fisier) is_writable(nume_fisier) is_executable(nume_fisier) dimensiunea unui fisier filesize(nume_fisier)

Manipularea fiierelor
186

crearea fiierelor - touch(nume_fisier) tergerea unui fiier - unlink(nume_fisier) nchiderea fiierului - fclose().

Manipularea fiierelor
187

Deschiderea unui fiier fopen().

fopen ("nume_fisier", "mod_de_deschidere")


r - fiierul este deschis pentru citire; r+ - fiierul este deschis pentru citire i scriere; w - fiierul este deschis doar pentru scriere, iar coninutul su este ters. Dac fiierul nu exist, atunci acesta va fi creat; w+ - fiierul este deschis pentru citire i scriere, iar coninutul su este ters. Dac fiierul nu exist, atunci acesta va fi creat; a - fiierul este deschis doar pentru scriere, iar pointerul este plasat la sfrit. Dac fiierul nu exist, atunci acesta va fi creat;

a+ - fiierul este deschis pentru scriere i citire, iar pointerul este plasat la sfrit. Dac fiierul nu exist, atunci acesta va fi creat.

Operaii cu fiiere - citirea


188

Citirea din fiier se poate face: linie cu linie cu ajutorul funciei fgets($variabila_fisier_deschis, lungime ) octet cu octet folosind funcia fread ($variabila_fisier_deschis, numar_octeti) caracter cu caracter prin intermediul funciei fgetc ($variabila_fisier_deschis)

Operaii cu fiiere - citirea


189

<?php $deschidere_fisier=@fopen("index.txt","r") or die("Nu s-a putut deschide fisierul"); while(!feof($deschidere_fisier)) {$citeste_fisier_linie=fgets($deschidere_fisier, 1024); echo "$citeste_fisier_linie<br>"; } fclose($deschidere_fisier); ?> <?php $deschidere_fisier=@fopen("index.txt","r") or die("Nu s-a putut deschide fisierul"); while(!feof($deschidere_fisier)) {$citeste_fisier_octet=fread($deschidere_fisier, 26); echo "$citeste_fisier_octet<br>"; } fclose($deschidere_fisier); ?>

Operaii cu fiiere - citirea


190

Funcia fread () permite citirea coninutului unui fiier, dar nu permite i stabilirea locaiei de unde s porneasc aceasta funcia fseek() permite stabilirea poziiei curente n cadrul unui fiier

fseek ($variabila_fisier_deschis, pozitie)

Operaii cu fiiere - citirea


191

<?php $deschidere_fisier=@fopen("index.txt","r") or die("Nu s-a putut deschide fisierul"); $marime_fisier=filesize("index.txt"); $valoare=(int)($marime_fisier/3); fseek($deschidere_fisier,$valoare); $citeste_fisier_punct=fread($deschidere_fisier,($marime_fisier$valoare)); echo $citeste_fisier_punct; fclose($deschidere_fisier); ?>

Operaii cu fiiere scrierea


192

Scrierea n cadrul unui fiier se face cu ajutorul funciei fwrite() sau fputs().
fwrite ($variabila_fisier_deschis, sir_caractere)

irul de caractere trebuie s se ncheie cu terminatorul de linie \n.

Operaii cu fiiere scrierea


193

<?php $deschidere_fisier=@fopen("index.txt","w") or die(mesaj"); fwrite($deschidere_fisier,"Fwrite scrie peste ceea ce deja exista. <br>La sfarsitul sirului care este scris se va adauga terminatorul de linie.\n"); fclose($deschidere_fisier); $deschidere_fisier=@fopen("index.txt","r") or die("Nu s-a putut deschide fisierul"); $citire=fgets($deschidere_fisier,1024); echo $citire; fclose($deschidere_fisier);?> <?php $deschidere_fisier=@fopen("index.txt","a") or die(mesaj"); fputs($deschidere_fisier,"Fputs adauga textul la sfarsitul fisierului.\n"); fclose($deschidere_fisier); $deschidere=@fopen("index.txt","r") or die("Nu s-a putut deschide fisierul"); while(!feof($deschidere)) {$citire=fgets($deschidere); echo $citire; echo '<br>';} fclose($deschidere);?>

Exemplu contor vizitatori


194

<?php $fisier_contor="contor.txt"; if(file_exists($fisier_contor)) {$deschide_fisier=@fopen($fisier_contor,"r+"); $contor=@fgetc($deschide_fisier); $contor=$contor+1; fclose($deschide_fisier); $deschide_fisier=@fopen($fisier_contor,"w"); fputs($deschide_fisier,$contor); } else {$creeaza_fisier=@fopen($fisier_contor,"w"); $contor="1"; fwrite($creeaza_fisier,$contor); fclose($creeaza_fisier); echo $count; }?>

Manipularea dosarelor
195

Crearea unui director - mkdir() mkdir (nume_dosar, int permisiune) tergerea unui director - rmdir(nume_director). Deschiderea unui director - opendir(nume_diector). nchiderea directorului - closedir($dosar_deschis) Citirea coninutul directorului - readdir(). Modificarea directorului de lucru - chdir(dir_modif). Determinarea locaiei unui director - getcwd().