1

NOTE DE CURS - PROGRAMARE WEB -

2010

Lect. drd. Cristina ZAMFIR

2

Reading this material will enable you to build dynamic websites. If you’ve 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 can’t 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.

3

Tehnologia client/server.

Evoluţia 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  .

Supervizorul se ocupa de înlănţuirea şi supravegherea lucrărilor. pe măsură ce soseau. fără a interveni operatorul. Informaţia nu era procesată până când aceasta nu este completă . Lucrările erau executate secvenţial. numite job.Sistemele de prelucrare pe loturi 5      foloseau calculatoare de tip mainframe care executau lucrări. Componenta care controla lucrările se numea monitor (supervizor).

Sistemele de prelucrare în timp real 6 au apărut odată cu extiderea capacităţii de memorie.  între terminale şi calculatorul central existau comunicaţii directe în ambele sensuri.  executau complet lucrările într-o cuantă de timp.  au fost create cu scopul de a permite controlarea unor activităţi din afara SC (operaţiile de I/O).  .

alocându-se pentru fiecare dintre ei o cuantă de timp. . se asigură distribuirea resurselor unui sistem de prelucrare a informaţiei între mai mulţi utilizatori independenţi.Sistemele de prelucrare cu acces multiplu 7    au apărut o dată cu apariţia minicalculatoarelor oferă posibilitatea utilizării simultane de către mai mulţi utilizatori a resurselor de calcul. prin procesul de împărţire a timpului de utilizare a procesorului (time-sharing).

.Sistemele de prelucrare client/server 8  au apărut ca o necesitate a conectării microcalculatoarelor (PC) pentru partajarea resurselor (fizice. logice sau informaţionaleBD).

Server (back-end) – reprezintă furnizorul de servicii şi acţionează ca un mainframe Middleware (produse program de intermediere) – componentă proiectată pentru a ascunde părţii de front-end (client) nivelurile inferioare ale reţelei        . Tehnologia client-server .o modalitate de a separa o aplicaţie în două părţi distincte. Medii de comunicaţie . Client (front-end) – reprezintă consumatorul de servicii. logice şi informaţionale. asigurând utilizarea în comun a resurselor fizice. Tehnologie – modalitatea de implementare a unei arhitecturi.Concepte în domeniul reţelelor de calculatoare 9  Reţea de calculatoare – ansamblul de calculatoare interconectate între ele prin medii de comunicaţie.mediu fizic prin intermediul căruia se pot transmite date. Arhitectura – schema generală a unui sistem pentru a realiza un anumit mod de funcţionare.

integritate-datele şi codul server-ului sunt reţinute centralizat. încapsularea serviciilor-un mesaj specifică server-ului serviciul cerut. transparenţa locaţiei–ascunderea unor informaţii clienţilor referitoare la poziţia serverului în cadrul unei reţele comunicaţie bazată pe mesaje-interacţiunea între calculatoare se face prin mecanismul de transmisie de mesaje. scalabilitate-pot fi scalate pe orizontală sau verticală. . ceea ce implică o actualizare şi securizare eficiente a datelor partajate. resurse partajate-server-ul poate servi mai mulţi clienţi în acelaşi timp protocoale asimetrice-existenţa relaţiei de tipul „unul la mulţi” între server şi client.Caracteristicile arhitecturii client/server 10         serviciu-relaţie între procese ce se execută pe calculatoare separate.

Tipuri de soluţii client/server 11 Server de fişiere  Server de baze de date  Server de aplicaţii  Server Web  Server de aplicaţii web  .

 sunt dublate de servere de tipărire.  .Server de fişiere 12 utilizate pentru stocarea programelor şi fişierelor de date.  reprezintă o formă primitivă de acces la date. care necesită multiple schimburi de mesaje între server şi clienţi.

 . folosind un limbaj SQL  permit iniţializarea.Server de baze de date 13 sunt calculatoarele pe care rulează un SGBD. accesarea şi întreţinerea 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 reţelei.

Server de aplicaţii 14 sunt utilizate în controlul unor dispozitive periferice de la distanţă  utilizarea unui server de aplicaţii presupune (re)programarea atât a server-ului cât şi a clienţilor  .

Server Web 15    sunt utilizate pentru stocarea paginilor web are ca scop primirea fişierele de pe server într-un format specific browser-ului de web şi de a le transmite prin intermediul reţelei. sunt create pentru a transmite conţinut static unui număr mare de utilizatori. .

. „se agaţă ” de server-ul de web interceptează automat utilizatorii care doresc un conţinut dinamic.Server de aplicaţii web 16    sunt proiectate pentru a extinde server-ele de web pentru conţinutul dinamic.

17 Caracteristici şi soluţii de arhitecturi .

 .Componentele arhitecturii client/sever 18 Arhitectura client/server-arhitectură de reţea în care fiecare calculator din reţea este un client sau un server.  Calculatorul client-interacţionează cu un utilizator. al cărui rol este de a furniza servicii şi resurse utilizatorilor.  Calculatorul server-orice calculator de birou puternic. Are două sarcini: logica prezentării şi logica aplicaţiei.

.Sarcinile calculatorului client 19   logica prezentării – reprezintă interfaţa cu utilizatorul:  asigură coordonarea interacţiunii dintre utilizator şi aplicaţie  include detalii privitoare la afişarea tuturor informaţiilor pe ecranul calculatorului.  include şi partea de preluare a datelor de la utilizator logica aplicaţiei .acea parte a programului care decide ce acţiuni trebuie să se execute în diferite situaţii şi implementează regulile afacerii.

Sarcinile calculatorului server 20 responsabil cu administrarea accesului la baza de date: sortarea datelor.  asigurarea că alţi clienţi nu încearcă modificarea unor înregistrări pe care alţi clienţi le vizualizează  . selectarea acelora de care are nevoie clientul.

 raportul calitate / preţ este mai bun.Avantajele şi dezavantajele arhitecturii client/server 21   Avantaje  au o securitate mai bună.performanţele server-ului scad o dată cu creşterea numărului de utilizatori.  performanţele pot fi îmbunătăţite uşor.pentru a putea deservi un număr mare de clienţi. server-ul trebuie să fie un calculator foarte performant. .  preţ .  necesităţi . nefiind simplu de configurat şi de administrat. Dezavantaje  complexitatea.

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 îmbunătăţit: utilizabilitatea. scalabilitatea şi flexibilitatea are trei componente repartizate pe două niveluri: interfaţa cu utilizatorul. logica aplicaţiei şi gestiunea bazei de date .

Arhitectura client/server pe trei niveluri 24     este adăugat un nivel suplimentar (nivel de mijloc sau server de aplicaţii). între client şi server-ul bazei de date clientul (primul nivel) este reprezentat de interfaţa sistemului cu utilizatorul server-ul de baze de date (nivelul trei) furnizează funcţionalitatea gestiunii bazei de date server-ul de aplicaţii (nivelul de mijloc) furnizează servicii de administrare a regulilor afacerii şi a prelucrării datelor .

Arhitectura client/server pe mai multe niveluri 25   nivelul de mijloc este împărţit în două sau mai multe niveluri cu funcţiuni diferite cele mai cunoscute aplicaţii cu o astfel de arhitectură sunt aplicaţiile Internet. .

26 Introducere în limbajul PHP .

.Caracteristici ale PHP 27 Tipuri de limbaje de scriptare:  client side –interpretează scripturile doar după ce paginile care conţin script-urile au fost descărcate.scripturile sunt rulate pe partea de server înainte ca pagina care conţine scriptul să fie trimisă browser-ului.  server side .

Pentru a putea rula un script PHP 28 parser (analizorul.  browser (client de web) – cu ajutorul său se vizualizează rezultatele.  . interpretorul) PHP – interpretează scripturile PHP  server de web (Apache) – care acceptă cererile HTTP formulate de clienţi şi le oferă răspunsurile la cererile formulate. adăugând şi datele cerute.

Semantica limbajului se referă la semnificaţia construcţiilor sintactice corecte.Sintaxa şi semantica limbajului 29 Sintaxa limbajului reprezintă totalitatea regulilor de scriere a programelor. astfel încât să fie acceptate de către interpretorul PHP. .

Identificatorii încep întotdeauna cu o literă. cuvintelor cheie. punct şi virgulă şi virgula  comentarii  .  separatorii-elemente care separă identificatorii: spaţiu. funcţiilor. şi o serie de caractere speciale  identificatorii-modalităţi de definire a datelor.Vocabularul limbajului PHP 30 caractere utilizate-setul de caractere al limbajului: litere mari şi mici. cifre.

.0. ?> • http://localhost/director/pagina • calculatorul hazdă (localhost) • adresa IP 127.oferă o serie de informaţii despre PHP • liniile de cod în limbajul PHP sunt finalizate cu .Scrierea şi executarea script-urilor 31 <?php phpinfo().1 poate înlocui numele calculatorului gazdă • phpinfo() .0.

Funcţionarea script-urilor PHP 32 .

 Tipuri compuse  Tablouri –este asocierea dintre elementele tabloului şi cheile sale.  Număr real –reprezentate pe 64 biţi  Şir de caractere –trebuiesc incluse între ghilimele.  .Tipuri de date în PHP 33 Tipuri scalare  Boolean  Întreg –stocate pe 32 de biţi.

0 – nu este număr întreg 2.Exemple de tipuri de date 34          2 – număr întreg -3 – număr întreg .3e4 – este număr real 2 – nu este număr real “4” – nu este număr întreg ‘şir de caractere’ $clasa[1] = „ limbaj” .4 – este eroare deoarece are spaţiu 5.

caracterul backslash .simbolul $ \\ .Caractere speciale 35     \n – trecere la linie nouă \” – ghilimele \$ .

În limbajul PHP nu se precizează tipul de variabilă.Variabile şi constante PHP 36 Variabile – încep cu $ urmate de o literă sau _.case sensitive])  . Atribuirea valorilor se face prin atribuire:  atribuire prin valoare  atribuire prin referinţă – folosind simbolul &.  Constante – se definesc prin funcţia define(). valorile lor nu se modifică şi pot fi utilizate oriunde. Odată definite. define($nume_constanta.valoare[.

echo $$nume_persoana. $nume=”Popa”. . $nume_persoana=”nume”.Variabile dinamice 37 Variabila dinamică este denumită folosind o pereche de simboluri ale dolarului ($$) şi este asociată cu o variabilă obişnuită care are un nume similar şi include un singur simbol al dolarului.

în caz contrar. este asociat cu valoarea numerică. valoarea şirului este zero. tipul variabilei rezultante este dublu. . valoarea şirului este dată de valoarea numerică respectivă. tipul valorii rezultante este un întreg. în caz contrar.  Dacă un punct zecimal sau un exponent (e sau E).Conversia automată de tip a variabilelor 38 Reguli:  Dacă şirul începe cu o valoare numerică.

Conversia manuală de tip a variabilelor
39

    

(int), (integer) - conversie forţată la întreg (real), (double), (float) - conversie forţată la dublu (string) - conversie forţată la şir (array) - conversie forţată la tablou (object) - conversie forţată 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)

– concatenare .Operatori aritmetici 42    / .împărţire zecimală % .modulo returnând restul .

identic == .egal !== .Operatori de concatenare 43     === .nu este identic <> sau != .diferit .

Operatori logici 44    AND sau && .ŞI logic OR sau || .SAU logic ! – negaţia logică .

Operatori de incrementare şi decrementare 45   $x=$y-$x=++$y .

...$b)–generează aleator o valoare între a şi b max($a.$exponent) – ridică baza la putere constant(“nume_constanta”) – întroarce valoarea constantei settype($variabila.) – valoarea maximă dintr-un şir sqrt($a) – scoate radicalul din variabila a pow($baza.Funcţii 46         rand() – generează aleator o valoare rand($a.”tip”) – converteşte variabila la tipul de dată dorit gettype($variabila) – afişează tipul variabilei .$b.

47 Structuri de control în PHP .

else – expresia este evaluată la valoarea sa booleană if(expresie) {secventa de instructiuni1} [else{secventa de instructiuni2}] ...Structura altenativă (condiţională) 1 48 if.

if(expresie1) {secventa de instructiuni} elseif(expresie2) {secventa de instructiuni2} else {secventa de instructiuni3} .Structura altenativă (condiţională) 2 49 Elseif – evaluează expresia la valoarea sa de TRUE.

...... } switch($variabila) {case valoare1: secvenţa instrucţiuni1 break.......... .......................Structura alternativă (condiţională) 3 50 Switch–este folosită atunci când trebuie ca valoarea unei variabile sau expresii să fie comparată cu diferite valori......... default: secvenţa instrucţiuni break. } .... ..... case valoare2: secvenţa instrucţiuni2 break............... switch($variabila) {case valoare1: secvenţa instrucţiuni1 break....... case valoare2: secvenţa instrucţiuni2 break......... case valoaren: secvenţa instrucţiunin break.................

while(expresie) { secv_instrucţiuni } while(expresie): secv_instrucţiuni endwhile.Structura repetitivă 1 51 While – execută un set de instrucţiuni atât timp cât expresia este evaluată la valoarea sa de TRUE. .

while –verificarea valorii de adevăr a condiţiei se face după execuţia grupului de instrucţiuni. ..Structura repetitivă 2 52 Do. do secvenţă de instrucţiuni while(expresie)..

Structura repetitivă 3 53 For–este o structură de ciclare cu număr cunoscut de paşi.expresie2. for(expresie1.expresia3) {secvenţă de instrucţiuni} Expresie1 –expresia de iniţializare 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 instrucţiuni} Matrice foreach($tablou as $valoare) foreach($valoare as $valoare1) {secvenţă de instrucţiuni} .

Alte instrucţiuni 55 Continue – folosită în instrucţiunile de ciclare pentru a omite restul iteraţiei curente şi pentru a continua execuţia instrucţiunii iterative. Instrucţiunile care se află după break nu vor mai fi executate.  Break – folosită pentru întreruperea execuţiei unei instrucţiuni repetitive.  .

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 funcţiei array().

$limbaje[] =”Pascal”. $limbaje[“Pascal”]=„Mediu”. $limbaje[“PHP”] = „Ridicat”. . $limbaje[] = „PHP”.Crearea unui tablou prin atribuire 58 $limbaje[] = „C”. $limbaje[1] = „PHP”. $limbaje[0] = „C”. $limbaje[] =”Pascal”. $limbaje[“C”] =”Redus”.

$limbaje=array(„PHP”=>„Ridicat”. „Pascal”). ”C”=>”Redus”). .Crearea unui tablou prin funcţia array() 59 $limbaje=array(10=>„C”. „PHP”.”Pascal” =>„Mediu”.

"nepopular"). "Pascal"=>array("dificil". $date[“C"] = array(“simplu"."popular"). $date[“Pascal"] = array(“dificil". "C"=>array("dificil".Crearea unui tablou multi-dimensional 60 $date["PHP"] = array("simplu"."nepopular"). . "popular"). $date= array("PHP"=>array("simplu". "popular")). "popular").

$i++) { echo "<BR>".Parcurgerea unui tablou 61   se poate face prin precizarea numelui tabloului şi a cheii aferente valorii. 1=>"PHP". <?php $limbaje = array(0=>"C". se parcurge secvenţial tabloul cu ajutorul instrucţiunii for.$limbaje[$i]. $i < $limita. for ($i = 0. $y = 3 * $x[1]. 2 =>"Pascal").$i. } ?> . $limita = count($limbaje)."=>".

5)). array(1. $b = $a[1][1] + $a[2][0]. 5). ?> . array(4. echo $b.Precizarea unui element dintr-un tablou multidimensional 62 <?php $a = array(array(2. 4).

echo $b. $b = $a{11}.Afişarea unui caracter dintr-un şir de caractere 63  pentru afişarea unui caracter din cadrul unui şir de caractere se va folosi următoarea formă: $b=$var{pozitie} <?php $a = 'Programare WEB'. ?> .

64 Utilizarea funcţiilor în PHP .

 Funcţia va întoarce o valoare .Definirea unei funcţii 65 function nume_functie(nume_argument) // aici se insereaza corpul functiei  Numele funcţiei este case-sensitive function calculeaza_arie($inaltime.$latime)  return $inaltime * $latime.

. pentru a nu mai afişa mesajele de avertizare se va folosi simbolul @.Apelarea unei funcţii 66   apelarea funcţiei se face prin specificarea numelui funcţiei şi a argumentelor $arie = calculeaza_arie(2.4).

echo "<BR>".0. return $cantitate*$rata.$rata = 0.$rata.} $cumparaturi = 123.45.$cumparaturi. ?> .$cumparaturi.Definirea funcţiilor cu argumente prestabilite 67 <?php function impozit_vanzari($cantitate . echo "<BR>impozit = ". $cumparaturi = 123.45. echo "<BR>cumparaturi = ".$impozit. $impozit = impozit_vanzari($cumparaturi). echo "<BR>rata=". $impozit = impozit_vanzari($cumparaturi. echo "<BR>cumparaturi = ".0725) { echo "<BR>cantitate=". echo "<BR>impozit = ".08).$impozit.$cantitate.

.  locale-sunt create în interiorul funcţiei şi sunt distruse atunci când se termină execuţia funcţiei.  statice-valoarea unei variabile locale trebuie să se păstreze de la o apelare la alta a funcţiei. $var3. STATIC $var1. $var2.Variabile şi referinţe 68 Limbajul PHP foloseşte două tipuri de variabile:  globale-sunt declarate în afara funcţiilor. GLOBAL $var1. Pentru a putea fi folosită inclusiv în corpul acesteia se va folosi instrucţiunea GLOBAL. $var2. Domeniul de existenţă a unei variabile globale nu include şi corpul funcţiei. $var3.

5. ?> . $cantitate= 250. cumpara().greşit 69 <?php $pret= 13.} echo "Suma pe care trebuie sa o platiti este ".Exemplu variabilă globală . function cumpara() { return $pret * $cantitate.

$cantitate= 250.5. $cantitate. function cumpara() { GLOBAL $pret. return $pret * $cantitate.bun 70 <?php $pret= 13. ?> .Exemplu variabilă globală . cumpara().} echo "Suma pe care trebuie sa o platiti este ".

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

echo "<br> x = ".Exemplu variabilă statică 72 <?php function locala() { $x = $x + 1.} function statica() { STATIC $x.$x.} locala(). locala(). statica(). $x = $x + 1. statica(). ?> . echo "<br> x = ".$x. echo "<br>".

Utilizarea referinţelor 1 73  Operatorul referinţă modifică valoarea variabilei după ultima modificare.$a. echo 'Valoarea variabilei $b este '. echo '<br>Valoarea variabilei $a va deveni '. echo 'Valoarea variabilei $a este '. echo 'Variabila $b are valoarea Programare Web'.$b.'<br>'.'<br>'. $b='Programare Web'.$a. <?php $a = 'Disciplina'. ?> . $b = &$a.

$z = &$s.Utilizarea referinţelor 2 74  Operatorul referinţă dacă se foloseşte la definirea funcţie. $y=&refer(). return $s. echo $y. <?php function &refer ( ) {global $s.} $s = "Continut 1". atunci se va folosi şi la atribuirea valorii.?> . $z='Continut 2'.

$sir)-transformă un şir într-o matrice list($var1.Funcţii 75         isset($variabila)-verifică dacă variabila a fost setată sau nu current($tablou)-returnează valoarea curentă a tabloului next($tablou)-valoarea următorului element al tabloului prev($tablou)-valoarea elementului anterior key($tablou)-întoarce cheia valorii curente explode(“delimitator”.$tablou)-transformă matricea într-un şir de caractere .$var2)-atribuie variabile cum acestea ar fi tablouri implode(“delimitator”.

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

43. echo 'Elementul anterior este: '. '1ad')).'a'.Current. $urmat_element=next($matrice[2]). $prim_element=current($matrice[0]). echo 'Urmatorul element este: '. next.'<br>'.$prim_element.array('def'.$urmat_element.'abc').$anterior_element.'<br>'. ?> .'c').34. $anterior_element=prev($matrice[2]). echo 'Primul element este: '.'<br>'. prev 77 Fie tabloul: 10 f def a 34 435 c abc 1ad Care va fi rezultatul execuţiei secvenţei: <?php $matrice=array(array(10.array('f'.

 Să se păstreze în variabila serie_factura seria facturii şi în nr_factura numărul facturii.  .EXPLODE 78 Fie şirul format din seria şi numărul facturii(GL567).

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 numărul facturii identificat prin variabila nr_f  Să se concateneze cele două variabile într-una singură şi separatorul dintre acestea să fie spaţiul

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 .

specifică browser-ului ce se va întâmpla cu datele introduse .Formular – definiţie ş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 .

astfel că se poate vedea numele câmpului şi valoarea sa. Datele apar în cadrul adresei URL sub formă de perechi de forma nume=valoare.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.  Metoda GET-preia datele din cadrul elementelor formularului. Datele transmise nu pot fi vizualizate în cadrul adresei. le codifică şi apoi le adaugă în cadrul adresei URL. .

Metoda POST-fişier 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> .

?> Adresa URL prin metoda POST .“ </strong> si va trimitem coletul la adresa <strong>".Metoda POST fişierul de prelucrare PHP 86 <?php echo "Am inregistrat numele si prenumele dvs.$_POST[adresa].: <strong>". $_POST[date_personale]."</strong>".

$_GET[adresa].Metoda GET fişierul de prelucrare PHP 87 <body> <?php echo "Am inregistrat numele si prenumele dvs."</strong>".“ </strong> si va trimitem coletul la adresa <strong>". ?> Adresa URL prin metoda GET . $_GET[date_personale].: <strong>".

 câmpuri ascunse  .  controlul de tip listă (“select”).  control de tip “textarea”.  butoane “radio”.  casete de validare.Lucrul cu elemente de formular 88 controale de tip “text” (câmp de editare).

.Controale de tip câmp de editare 89 <input name="nume" type="password" size="33" maxlength="15">     TYPE specifică tipul câmpului de editare SIZE precizează dimensiunea câmpului de editare MAXLENGTH specifică numărul maxim de caractere care pot fi introduse în câmpul de editare VALUE reprezintă valoarea iniţială a câmpului de editare.

Controale de tip “textarea” 90 <textarea name="textarea" rows="10"></textarea>  cols="43" COLS stabileşte numărul total de caractere care sunt introduse pe un rând  ROWS precizează numărul rândurilor care se pot include în cadrul câmpului 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 selecţie 92 <input name="o1" type="checkbox" value="checkbox"> NAME specifică numele opţiunii  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 selecţie un nume MULTIPLE se pot alege mai multe opţiuni. sub formă de perechi "name = value” . iar numele va trebui să aibă numele urmat de [] SIZE precizează numărul de elemente vizibile din listă VALUE atribuie o valoare de tip text care va fi transmisă server-ului.

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/HTML 94 <form action="fisier_prelucrare_radio.

$_POST[tip_persoana]. $_POST[date_personale] ."</strong> si sunteti <strong>". ?> .Exemple Lucrul cu butoane radio – static fişierul de prelucrare 95 <?php echo "Numele si prenumele dvs. este: <strong>"."</strong>.".

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

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> .Exemple Lucrul cu casete de validare-static/ HTML 97 <form action="fisier_prelucrare_checkbox.

"</strong> si ati ales urmatoarele marci de produse: ". else if (isset($_POST[Samsung])) echo "Samsung". if(isset($_POST[Samsung]) and isset($_POST[Panasonic])) echo "Samsung si Panasonic".98 Exemple Lucrul cu casete de validare-static fişierul de prelucrare PHP <?php echo "Numele si prenumele dvs. este: <strong>". ?> . $_POST[date_personale]. else if (isset($_POST[Panasonic])) echo "Panasonic".

‘ '. } ?> .'').$id_angajat.$nume_casuta. mysql_select_db('curs').$nume_prenume.'root'.Exemple Lucrul cu casete de validare-dinamic 99 <?php mysql_connect('localhost'. while($rand=mysql_fetch_array($selectie)) {$id_angajat=$rand['id_angajat'].‘“ value="'.$nume_casuta.$rand[prenume_angajat]. $nume_casuta='c'. $nume_prenume=$rand[nume_angajat]. $selectie=mysql_query('select * from angajat').'</p>'. echo'<p><input type="checkbox" name="'.'">'.

$nume_prenume. sunt:'. while ($rand2=mysql_fetch_array($selectie2)) {$nume_prenume=$rand2[nume_angajat]. } } } ?> . $nume_casuta='c'.$id_angajat). $selectie=mysql_query('select * from angajat').' '.$rand2[prenume_angajat]. mysql_select_db('curs'). while($rand=mysql_fetch_array($selectie)) {$id_angajat=$rand['id_angajat']. echo '</ul>'.100 Exemple Lucrul cu casete de validare-dinamic fişierul de prelucrare <?php mysql_connect('localhost'.'root'. echo '<ul>'. if(isset($_POST[$nume_casuta])) {$selectie2=mysql_query('select * from angajat where id_angajat='.''). echo 'Persoanele selectate de dvs.$id_angajat. echo '<li>'.

Redirecţionarea către o pagină nouă 101  se realizează cu ajutorul:  funcţiei header()  Tag-ului HTML meta .

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

php?eroare=1" /> content= “secunde.Tag-ul HTML META 103 <meta http-equiv= “refresh" url=index. .

Combinarea codului HTML şi PHP pe o singură pagină 104   se foloseşte atunci când se doreşte prelucrarea datelor din cadrul unui formular în aceeaşi pagină cu codul HTML static se va crea un formular care va avea ca şi acţiune variabila $_SERVER['PHP_SELF'] .

105 NOŢIUNI FUNDAMENTALE DESPRE BAZELE DE DATE ŞI SQL .

rezuma şi afişa rezultatele . poate filtra datele dorite şi poate sorta.Concepte de bază-BD relaţionale 106     O bază de date relaţională stochează datele în tabele Are capacitatea de a stabili relaţii între date din mai multe tabele Bazele de date relaţionale au la bază limbajul de interogare SQL SQL-limbaj care poate obţine accesul la date stocate în mai multe tabele.

Crearea unei baze de date 107   Crearea unei BD se face plecând 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’. .

‘CNP’ VARCHAR( 13 ) NOT NULL )  Limbajul SQL nu este case-sensitive .’student’ (‘nr_matricol’ INT NOT NULL AUTO_INCREMENT PRIMARY KEY .Crearea tabelelor din baza de date 108 CREATE TABLE ‘BD_IE’. ‘nume_student’ CHAR( 20 ) NOT NULL . ‘prenume_student’ CHAR( 20 ) NOT NULL .

UPDATE .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 .

actualizarea sau ştergerea celor existente Selectarea datelor se face prin comanda SELECT .SELECTAREA datelor 110    Componenta SQL-ului care permite formarea interogărilor este DML (Data ManipulationLanguage) DML permite accesul la datele bazei de date.dar şi inserarea de noi date.

precizează toate câmpurile din tabel selectarea doar a anumitor câmpuri se face prin precizarea acestora SELECT camp1.Comanda SELECT-regăsirea datelor 111  Cea mai simplă interogare este selectarea tuturor datelor dintr-un tabel SELECT * FROM tabel * . camp2 FROM tabel formatul datelor de ieşire plasează fiecare rând al tabelului pe o linie separată şi prezintă coloanele într-o ordine arbitrară    .

Comanda SELECT-sortarea datelor găsite 112  pentru sortarea datelor regăsite în urma filtrării se va folosi ORDER BY SELECT nume_câmpuri FROM tabel ORDER BY nume_câmpuri DESC/ASC    clauza va fi stabilită la sfârşitul instrucţiunii SELECT. ordinea de aranjare a rezultatelor se va face în funcţie de cuvântul cheie DESC sau ASC . acestea vor fi aranjate în funcţie de ordinea care a fost precizată. după sortarea după mai multe câmpuri.

pret_produs FROM produs ORDER BY den_produs.pret_produs FROM produs ORDER BY den_produs DESC.pret_produs ASC SELECT cod_produs. pret_produs FROM produs ORDER BY den_produs. pret_produs FROM produs ORDER BY 2.den_produs. pret_produs SELECT cod_produs.den_produs.3 .den_produs. pret_produs ASC SELECT cod_produs.den_produs.Comanda SELECT-sortarea datelor găsite 113 SELECT cod_produs.

Comanda SELECT-filtrarea datelor 114  Filtrarea datelor se face cu ajutorul clauzei WHERE SELECT nume_câmpuri FROM tabel WHERE camp operator valoare   Clauza WHERE. LIKE. diferit.). se plasează imediat după clauza FROM. Operator poate fi unul dintre operatorii de verificare: egal.. mai mare. NOT LIKE.. care specifică criteriile de căutare. mai mic sau egal.. între (BETWEEN . IS NULL..AND. NOT IN . IN.

Comanda SELECT-filtrarea datelor 115 SELECT den_produs.87 SELECT den_produs. pret_produs FROM produs WHERE pret_produs=3. pret_produs FROM produs WHERE pret_produs=3. pret_produs FROM produs WHERE pret_produs!>3.87 SELECT den_produs.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 doreşte filtrarea după mai multe câmpuri se vor folosi în clauza WHERE cei doi operatori AND sau OR SELECT nume_câmpuri FROM tabel WHERE camp op val AND/OR camp1 op val1   op-reprezintă operatorul de selecţie Primul operator care se prelucrează este operatorul AND apoi OR .

pret_produs FROM produs WHERE cod_produs=‘P27’ OR pret_produs=5 SELECT cod_produs. pret_produs FROM produs WHERE cod_produs=‘P27’ AND pret_produs=5 SELECT den_produs. den_produs. den_produs.Comanda SELECT-combinarea clauzelor 117 SELECT den_produs. pret_produs FROM produs WHERE den_produs=”produs1” OR den_produs=”produs2” AND pret_produs>=5 SELECT cod_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 condiţii. Operatorul preia o listă cu elemente delimitate prin virgulă şi sunt incluse între paranteze. poate include şi o altă altă clauză SELECT are acelaşi rol ca şi operatorul OR SELECT nume_câmpuri FROM tabel WHERE nume_camp IN (’valori’)  valori-este lista de valori din care se poate alege .

den_produs. prenume FROM student WHERE cod_specializare IN (SELECT cod_specializare FROM specializare WHERE cod_specializare=1 ) .nume. pret_produs FROM produs WHERE den_produs IN (”produs1”. pret_produs FROM produs WHERE den_produs=”produs1” OR den_produs=”produs2” SELECT nr_matricol. den_produs.operatorul IN 119 SELECT cod_produs.Comanda SELECT.”produs2”) SELECT cod_produs.

Comanda SELECT-operatorul NOT 120  Neagă orice condiţie pe care o precede. SELECT nume_câmpuri 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 % .  Caracterul [] – este folosit pentru specificarea unui set de caractere.găseşte orice caracter. dintre care unul trebuie să corespundă unui caracter în poziţia specificată.  . dar înlocuieşte un singur caracter.are aceeaşi acţiune ca %.  Caracterul _ . indiferent de câte ori apare. Plasarea unui ^ în faţa caracterului nu va căuta după acele caractere.

Filtrarea datelor prin caractere de înlocuire 122 SELECT nume_câmpuri FROM tabel WHERE nume_camp LIKE “%sircaractere%” SELECT nume_câmpuri 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_câmpuri FROM tabel GROUP BY camp .

denumire. MAX(cantitate) FROM produse GROUP BY categorie_produs . categorie_produs. pret.Comanda SELECT-gruparea datelor 124 Presupunem că avem baza de date produs cu următoarele cîmpuri: cod_produs. SELECT categorie_produs. cantitate. Se doreşte afişarea pentru fiecare dintre categorii de produs cantitatea cea mai mare de produs din stoc.

pret_prod.nume_prod. cantitate*pret_prod AS valoare FROM produse_comandate WHERE serie_f=“GL” AND nr_f=123 . SELECT cod_prod.Efectuarea calculelor matematice 125  se vor folosi datele găsite în urma selecţiei.

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 selecţia (FROM) .

127 NOŢIUNI FUNDAMENTALE DESPRE BAZELE DE DATE ŞI SQL .

 Pentru a insera rezultatele unei interogări.  Pentru a insera un singur rând parţial.INSERAREA datelor în baza de date 128  Se poate utiliza în mai multe moduri: Pentru a insera un singur rând complet.  .

Comanda INSERT-rând complet 129  Valorile trebuiesc introduse în ordinea în care sunt definite coloanele. INSERT INTO nume_tabel VALUES (valori_de_introdus) . în caz contrar valoarea întoarsă este NULL.

. în mod automat i se va insera valoarea NULL.Comanda INSERT-rând parţial 130  Pentru a elimina situaţia în care nu se ştie cu exactitate ordinea în care să se introducă datele. Dacă câmpul omis nu acceptă valoarea NULL atunci SGBD-ul va genera un mesaj de eroare şi rândul nu va fi inserat. se va folosi următoarea sintaxă: INSERT INTO nume_tabel (campuri) VALUES (valori_de_introdus)  În cazul în care un câmp nu este completat cu o valoare.

pret_produs ASC SELECT cod_produs. pret_produs FROM produs ORDER BY 2. pret_produs FROM produs ORDER BY den_produs. pret_produs SELECT cod_produs.pret_produs FROM produs ORDER BY den_produs DESC.Comanda SELECT-sortarea datelor găsite 131 SELECT cod_produs. pret_produs FROM produs ORDER BY den_produs.3 .den_produs.den_produs.den_produs.den_produs. pret_produs ASC SELECT cod_produs.

AND. între (BETWEEN . diferit.Comanda SELECT-filtrarea datelor 132  Filtrarea datelor se face cu ajutorul clauzei WHERE SELECT nume_câmpuri FROM tabel WHERE camp operator valoare   Clauza WHERE. care specifică criteriile de căutare. IS NULL..).. NOT IN . NOT LIKE.. Operator poate fi unul dintre operatorii de verificare: egal. mai mare. IN. se plasează imediat după clauza FROM. mai mic sau egal. LIKE..

Comanda INSERT. .date regăsite 133  Este folosită pentru a introduce într-un tabel rezultatul unei instrucţiuni 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.

tip) SELECT cod_client. tip_client FROM ClientiNoi WHERE cod_client IN (“C1”.”CL3”) . nume_client.”CL1”.nume_client.Comanda INSERT-date regăsite 134 INSERT INTO Clienti (cod_client.

Pentru a copia conţinutul unui tabel în cadrul unui alt tabel nou se va folosi instrucţiunea CREATE TABLE.Copierea datelor dintr-un tabel în altul 135  Nu foloseşte instrucţiunea INSERT. CREATE TABLE tabel_nou AS SELECT nume_cîmpuri FROM tabel .

prenume_student FROM student .Copierea datelor dintr-un tabel în altul 136 CREATE TABLE tabel_nou AS SELECT nume_student.

137 NOŢIUNI FUNDAMENTALE DESPRE BAZELE DE DATE ŞI SQL (2) .

 UPDATE nume_tabel SET coloana1=valoare1. coloana2=valoare2...ACTUALIZAREA datelor în BD 138  Se va folosi instrucţiunea UPDATE şi poate fi folosită în două moduri: Pentru actualizarea anumitor înregistrări din cadrul unui tabel  Pentru actualizarea tuturor rândurilor dintr-un tabel. WHERE coloana= valoare  Dacă lipseşte clauza WHERE se vor actualiza toate rândurile din tabel ..

ŞTERGEREA datelor din BD 139  Se va folosi instrucţiunea DELETE şi poate fi folosită în două moduri: Pentru ştergerea anumitor înregistrări din cadrul unui tabel  Pentru ştergerea tuturor rândurilor dintr-un tabel.  DELETE FROM nume_tabel WHERE coloana= valoare  Dacă lipseşte clauza WHERE se vor actualiza toate rândurile din tabel .

140 ALTE MODURI DE CREARE A INSTRUCŢIUNILOR SELECT .

SELECT nume_câmpuri_dorite_din tabele FROM tabel1. În urma unei uniuni se va returna un singur set de date de ieşire şi asociază instantaneu rândurile corecte din fiecare tabel. tabel2 WHERE tabel1.camp1  dacă nu este precizată clauza WHERE atunci se va realiza produs cartezian .camp1=tabel2.UNIUNEA tabelelor-echi-uniune 141  Uniunea reprezintă un mecanism folosit pentru asocierea tabelelor din cadrul unei instrucţiuni SELECT.

UNIUNEA tabelelor 142 SELECT den_produs.id_producator=produs.pret_produs.den_producator FROM produs.den_producator FROM produs.id_producator SELECT den_produs. producator .pret_produs. producator WHERE producator.

UNIUNEA tabelelor-uniunea interioară 143  Uniunea interioară specifică tipul uniunii SELECT nume_câmpuri_dorite_din tabele FROM tabel1 INNER JOIN tabel2 ON tabel1.den_producator FROM produs INNER JOIN producator ON produs.id_producator .id_producator=producator.camp1=tabel2.camp1 SELECT den_produs.pret_produs.

tabel2.id_producator=produs.cantitate.id_produs AND nr_comanda=“G123” .camp2=tabel.camp1=tabel2. producator.den_producator FROM produs.id_produs=produs.camp1 AND tabel3.tabel3 WHERE tabel1.camp2 SELECT den_produs.id_producator AND comanda_produs.comanda_produs WHERE producator.pret_produs.UNIUNEA între mai multe tabele 144 SELECT nume_câmpuri_dorite_din tabele FROM tabel1.

145 INTERACŢIUNEA ÎNTRE SCRIPTURILE PHP ŞI MYSQL .

 Numele utilizatorului  Parola  Numele Bazei de Date necesare.’user’.  mysql_connect(‘server’.’parola’) mysql_select_db(‘bd’) .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 specificaţi 4 parametri strict necesari: Numele hostului unde este stocată baza de date MySQL.

Interacţiune PHP şi MySQL 147            Pentru interactiunea PHP-MySQL sunt utilizate mai multe funcţii: mysql_connect-deschide conexiunea cu server-ul mysql_close-închide conexiunea cu MySQL mysql_fetch_array-extrage un rând ca o matrice mysql_insert_id-preia ID din ultima interogare mysql_num_rows-numără rândurile mysql_num_fields-numără câmpurile 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 operaţiei MySQL .

mysql_error()). ?> . if (!$legatura) { die('Eşec la conectare: ' .’parola’) mysql_close($conexiune) <?php $legatura=mysql_connect('localhost'.mysql_connect şi mysql_close 148 mysql_connect(’nume_server’. '').’nume_utilizator’. ‘root'. } echo 'Conectare cu succes'. mysql_close($legatura).

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

. FUNCŢII CARACTER. ALTE TIPURI DE FUNCŢII.150 FUNCŢII DE DATE ŞI TIMP.

int $day.Funcţii de date şi timp 151     checkdate(int $month.int $year )-validează data date(string $format)-întoarce data curentă conform unui format getdate()-întoarce un tablou asociativ conţinând informaţia despre dată şi oră gettimeofday()-întoarce un tablou ce conţine datele întoarse în rezultatul apelului funcţiei de sistem .

2001)). 29.Checkdate 152 <?php var_dump(checkdate(2. . ?> Funcţia var_dump va afişa informaţii 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 până 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 săptămânii Luna, adică de la 1 la 12 secunde ziua săptămânii format întreg, unde 0 reprezintă Duminică până la 6 reprezintă Sâmbătă 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 număr Ziua din săptămână sub formă de număr Luna sub formă de număr anul Ziua din an, sub formă de număr Ziua, (Friday) Luna, (May)

”. $data[’month’].”.”.”.$data[’year’] ?> .Getdate 156 <?php $data=getdate(). echo $data[’mday’].

Gettimeofday
157

Cheie Valoare „sec” secunde „usec” microsecunde „minuteswest” Minute vest faţă de Greenwich

<?php echo gettimeofday(); ?>

Funcţii 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])
$delimiter–este caracterul după care se face împărţirea  $string – şirul care este împărţit  $limit–precizează în câte subşiruri 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));?>

?> . dreapta sau din ambele capete ale şirului <?php $variabila=‘ valoare variabila ‘. echo trim($variabila).Ltrim/ rtrim/ trim 160  ltrim/ rtrim/ trim(string $str) -elimină spaţiile din stânga.

Întoarce un şir de 32 de caractere hexazecimale. if(md5($variabila)=='be394f7907863ddf6edfacecdf476aa8') echo 'S-a scris Programare'. ?>  Funcţia exit($mesaj)-afişează mesajul şi întrerupe execuţia script-ului curent  .  nu va mai putea fi decodificat <?php $variabila='programare1'.Md5 161 md5 (string $str)-codifică şirul de caractere. else exit('Nu este ceea ce trebuie').

$replace. echo $modificare. ?> <?php $sir='Joi avem cursul de PW'. echo $modificare.$sir).$subject) înlocuieşte un şir de caractere cu un alt şir de caractere.Str_ireplace 162   str_ireplace ($search. ?> . "Programare Web". $modificare = str_ireplace("PW". $modificare = str_ireplace(“pw". fără a face diferenţă între litere mari şi litere mici <?php $sir='Joi avem cursul de PW'. "Programare Web".$sir).

$repeta=str_repeat($sir. echo $repeta. ?> .Str_repeat 163  str_repeat(string $input.4).int $multiplier )-repetă un şir de caractere <?php $sir='repetare '.

Str_replace 164   str_replace($search. $count]) înlocuieşte toate apariţiile şirului de caractere căutat 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 numărul rezultatelor găsite  Dacă $subject este tablou. $subject[. $replace. . atunci şirul se va înlocui în toate elementele tabloului.

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

if(strcasecmp($var1.} ?> . string $str2 )-compară două şiruri fără a face distincţie între litere mari şi mici şi va întoarce >0 dacă primul şir este mai mare decât al doilea şir. <0 dacă primul este mai mic decât al doilea şi 0 dacă sunt egale <?php $var1="sir". $var2="SIR".Strcasecmp 166  strcasecmp(string $str1 .$var2)==0) {echo 'Sirurile sunt la fel'.

Strcmp 167  strcmp(string $str1 . string $str2 )-compara doua siruri de caractere făcând diferenţă între litere mari şi litere mici <?php $var1="sir". ?> . if(strcasecmp($var1.$var2)==0) {echo 'Sirurile sunt la fel'. $var2="SIR".} else echo 'Sirurile nu sunt la fel'.

} else echo "Nu s-a gasit caracterul cautat". ?> . $pozitie=stripos($sir.$pozitie. $sir='Joi la ora 10 avem PW'. if($pozitie!==false) {echo "Pozitia este ". $cautare)-găseşte poziţia primei apariţii a unui şir de caractere într-un alt şir.$cauta). fără să facă diferenţă între literele mici si cele mari $sir – şirul în care se face căutarea  $cautare – şirul care este căutat  <?php $cauta='a'.Stripos 168  stripos($sir.

4.2.nu se vor lua ultimele $lungime caractere.-4). $rest=substr("abcdef". $inceput [. $rest=substr("abcdef".  <?php $rest=substr("abcdef".se va porni de la sfârşit către început  $lungime<0 .1).-2).Substr 169  substr ($sir.-1). ?> . $rest=substr("abcdef".$lungime ])-returnează o parte a şirului $inceput<0 .-1).0. $rest=substr("abcdef".-3.-1).-3. $rest=substr("abcdef".-1). $rest=substr("abcdef".

$numar=strlen($sir).Strlen 170  strlen ($sir)-obţine lungimea unui şir de caractere <?php $sir='Am de cautat litera a'. echo $numar ?> .

întreg max/min(array $values ) mixed max/min(mixed $val1. întreg exp ( float $arg )-calculează exponenţiala floor ( float $value )-rotunjeşte la cel mai mic nr.]) pow(number $baza.mixed $val2 [. ceil ( float $value )-rotunjeşte la cel mai mare nr.int $precision=0]) sqrt ( float $arg ) .Alte tipuri de funcţii-funcţii matematice 171           abs ( mixed $number )-valoarea absolută a unui nr...number $exponent) rand ( int $min . int $max ) round(float $val[.mixed $val3.

echo round(3.5).5). echo floor(-3. echo round(1.2).999).14).?> <?php echo round(3. ?> .4).9). echo $a.7).3). ?> <?php $a=ceil(7. ?> <?php echo floor(4.2).Exemple 1 172 <?php $abs=abs(-4. echo $b. $b=ceil(-7. ?> <?php echo exp(5. echo floor(9.95583.

Exemplu max/min 173    Dacă argumentul este tablou va afişa valoarea cea mai mare din tablou PHP evaluează şirurile de caracter ca fiind 0 dacă este comparată cu un număr întreg. Dacă se compară tablouri. . dar va returna şirul. atunci evaluarea se va face de la stânga la dreapta.

array(2. 6. 4.8).7)). 0).array(2. 'hello').4.Exemplu max/min 174 <?php echo max(1. 5)). echo max(-1. ?> . echo max(0. 7).5.5. 3. 'hello'). $val = max(array(2. $val = max('string'.7). echo max('hello'. echo max(array(2. 5.42).

175 LUCRUL CU SESIUNI DE UTILIZATOR .

sau până când utilizatorul distruge în mod explicit sesiunea curentă .Definire 176    Sesiunea permite stocarea de informaţii în cadrul unei variabile pentru a fi utilizată în cadrul mai multor pagini. sesiunile nu păstrează valorile stocate pe calculatorul utilizatorului păstrează informaţiile până la închiderea browser-ului.

ci informaţiile conţinute în aceasta .Crearea unei sesiuni 177       pentru a putea lucra cu sesiuni trebuie să se deschidă sesiunea folosind funcţia 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 foloseşte variabila sesiune va trebui deschisă sesiunea nu se transmite variabila de la o pagină la alta.

session_id(). ?> .Manipularea variabilelor sesiune 178   session_id()-află identificatorul sesiunii dacă se doreşte atribuirea unei anumite valori pentru sesiune. session_start(). echo “Identificatorul sesiunii curente SID=". aceasta va fi declarată înainte de a deschide sesiunea <?php session_id('1a2bda3bad').

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.Distrugerea unei sesiuni 179    session_destroy(). dar nu şi sesiunea în sine .

180 LUCRUL CU DOSARE ŞI FIŞIERE .

 include_once() sau require_once ().Includerea fişierelor 181 Se face cu ajutorul funcţiilor:  include() sau require().:/director1/director2/htdocs/director3/director4/ . Utilă în includerea fişierelor este directiva include_path:  include_path .

txt</strong>: <br>'.$i++) { echo 'Se include continutul fisierului cu numele <strong> fisier1.txt").txt". echo '<br>‘. include(„$includefisier”). $fisier_inclus=include_once ("fisier1. echo '<br>‘. } ?> . } ?> <?php for ($i=1.$i<=2.exemplu 182 <?php for ($i=1.". echo 'Se include fisierul $includefisier: <br>'.Includerea fişierelor .$i++) {$includefisier="fisier$i".$i<=3.

Returnarea unei valori dintr-un fişier inclus 183  Întreruperea execuţiei codului din cadrul fişierului inclus se face cu ajutorul instrucţiunii return. . Tot codul aflat după această instrucţiune nu mai este executat.

$fisier. $b=34. return $c. ?> . echo 'Fisierul inclus are ca rezultat valoarea: '. $c=$a+$b. $c=20.Returnarea unei valori dintr-un fişier inclus . ?> <?php $a=56.php").exemplu 184 <?php $fisier=include("fisier_return.'.'.

Verificarea fişierelor 185     verificarea existenţei fişierelor  file_exists(“nume_fisier.extensie”). verificarea tipului de entitate  is_file(“nume_fisier”)  is_dir(“/director”) verificarea stării unui fişier  is_readable(“nume_fisier”)  is_writable(“nume_fisier”)  is_executable(“nume_fisier”) dimensiunea unui fisier  filesize(“nume_fisier”) .

unlink(“nume_fisier”) închiderea fişierului .Manipularea fişierelor 186    crearea fişierelor .touch(“nume_fisier”) ştergerea unui fişier .fclose(). .

iar pointerul este plasat la sfârşit. atunci acesta va fi creat.  r+ .  w . atunci acesta va fi creat.fişierul este deschis doar pentru scriere.fişierul este deschis pentru scriere şi citire. Dacă fişierul nu există. atunci acesta va fi creat. .fişierul este deschis doar pentru scriere. iar conţinutul său este şters. iar pointerul este plasat la sfârşit. "mod_de_deschidere") r .fişierul este deschis pentru citire şi scriere. Dacă fişierul nu există. fopen ("nume_fisier".fişierul este deschis pentru citire şi scriere.   a+ .Manipularea fişierelor 187  Deschiderea unui fişier – fopen(). iar conţinutul său este şters. Dacă fişierul nu există. atunci acesta va fi creat.  a .fişierul este deschis pentru citire.  w+ . Dacă fişierul nu există.

citirea 188  Citirea din fişier se poate face:  linie cu linie – cu ajutorul funcţiei fgets($variabila_fisier_deschis. numar_octeti)  caracter cu caracter – prin intermediul funcţiei fgetc ($variabila_fisier_deschis) . lungime )  octet cu octet – folosind funcţia fread ($variabila_fisier_deschis.Operaţii cu fişiere .

Operaţii cu fişiere . ?> <?php $deschidere_fisier=@fopen("index. while(!feof($deschidere_fisier)) {$citeste_fisier_octet=fread($deschidere_fisier.citirea 189 <?php $deschidere_fisier=@fopen("index. ?> ."r") or die("Nu s-a putut deschide fisierul"). } fclose($deschidere_fisier). echo "$citeste_fisier_octet<br>". } fclose($deschidere_fisier).txt". 26). echo "$citeste_fisier_linie<br>". while(!feof($deschidere_fisier)) {$citeste_fisier_linie=fgets($deschidere_fisier."r") or die("Nu s-a putut deschide fisierul"). 1024).txt".

dar nu permite şi stabilirea locaţiei de unde să pornească aceasta  funcţia fseek() permite stabilirea poziţiei curente în cadrul unui fişier  fseek ($variabila_fisier_deschis. pozitie) .citirea 190 Funcţia fread () permite citirea conţinutului unui fişier.Operaţii cu fişiere .

fclose($deschidere_fisier)."r") or die("Nu s-a putut deschide fisierul"). $citeste_fisier_punct=fread($deschidere_fisier. ?> .txt".$valoare). $valoare=(int)($marime_fisier/3).txt"). fseek($deschidere_fisier.Operaţii cu fişiere .citirea 191 <?php $deschidere_fisier=@fopen("index. $marime_fisier=filesize("index.($marime_fisier$valoare)). echo $citeste_fisier_punct.

sir_caractere)  Şirul de caractere trebuie să se încheie cu terminatorul de linie „\n”. . fwrite ($variabila_fisier_deschis.Operaţii cu fişiere – scrierea 192  Scrierea în cadrul unui fişier se face cu ajutorul funcţiei fwrite() sau fputs().

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

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

rmdir(“nume_director”). Închiderea directorului .opendir(“nume_diector”).readdir().Manipularea dosarelor 195        Crearea unui director . Modificarea directorului de lucru .mkdir() mkdir („nume_dosar”. int permisiune) Ştergerea unui director . Deschiderea unui director . . Determinarea locaţiei unui director .chdir(“dir_modif”).getcwd().closedir($dosar_deschis) Citirea conţinutul directorului .

Sign up to vote on this title
UsefulNot useful