php lectii

20
1 LIMBAJUL PHP CUPRINS LIMBAJUL PHP ........................................................................................................................................................................2 INSTRUCŢIUNILE PHP .............................................................................................................................................................3 LUCRUL CU FISIERE .................................................................................................................................................................7 FUNCTII...................................................................................................................................................................................9 FUNCTIA MAIL ......................................................................................................................................................................11 ŞIRURI DE CARACTERE ..........................................................................................................................................................11 TRANSMITERE DATE CATRE SERVER ....................................................................................................................................14 Formulare -- recapitulare HTML ..........................................................................................................................................14 FINAL RECAPITULARE FORMULARE......................................................................................................................................16 EXEMPLE...............................................................................................................................................................................18

Upload: delia-dobrin

Post on 24-Dec-2015

140 views

Category:

Documents


16 download

DESCRIPTION

manual PHP, info

TRANSCRIPT

Page 1: PHP Lectii

1 LIMBAJUL PHP

CUPRINS LIMBAJUL PHP ........................................................................................................................................................................ 2

INSTRUCŢIUNILE PHP ............................................................................................................................................................. 3

LUCRUL CU FISIERE ................................................................................................................................................................. 7

FUNCTII ................................................................................................................................................................................... 9

FUNCTIA MAIL ......................................................................................................................................................................11

ŞIRURI DE CARACTERE ..........................................................................................................................................................11

TRANSMITERE DATE CATRE SERVER ....................................................................................................................................14

Formulare -- recapitulare HTML ..........................................................................................................................................14

FINAL RECAPITULARE FORMULARE ......................................................................................................................................16

EXEMPLE ...............................................................................................................................................................................18

Page 2: PHP Lectii

2 LIMBAJUL PHP

LIMBAJUL PHP

(acronim pentru Personal Home Page) a fost inventat în 1994 de Rasmus Lerdorf, care dorea să-şi

contorizeze vizitatorii paginii sale de Internet.

Astăzi, se cosideră că PHP este un limbaj de scriptare înglobat în HTML.

Script-urile scrise în acest limbaj se utilizează pe partea de server, dar, local, pe calculator, trebuie să aveţi

instalat pachetul EasyPHP sau XAMPP

Limbajul PHP este asemănător limbajului C.

Script-urile scrise în acest limbaj rulează şi trebuie să se găsească pe server. În linii mari, ele au rolul de a

prelucra datele pe care le trimite utilizatorul de pe propriul calculator şi de a transmite către browser rezultatele

prelucrărilor.

Documentaţia oficială a limbajului se găseşte pe site-ul http://www.php.net sau alte site-uri precum

drogoreanu.ro

Practic, orice script PHP va fi memorat în subfolder-ul www al folder-ului EasyPHP1-8 din Program Files şi va

fi apelat din browser prin "http://localhost/numescript".

Un script PHP are extensia ”php”, iar conţinutul acestuia va fi cuprins între:

<?php

...

?>

Nu uitaţi! Programul EasyPHP trebuie pornit înainte de a apela script-uri PHP:

"Start / All Programs / EasyPHP / EasyPHP".

CONSTANTE. În PHP se pot defini constante cu ajutorul funcţiei define. Forma generală a acesteia este:

define("nume_constanta", valoare)

VARIABILE. Numele unei variabile începe cu "$". În contiNuare, trebuie să fie o literă sau o liniuţă de

subliniere. În rest, puteţi folosi şi cifre. Nu este necesar ca variabilele să fie declarate de la început. Ele se

definesc atunci când sunt folosite. Mai mult, îşi schimbă tipul în funcţie de valoarea RETINUTA

OPERATORI. Mulţi dintre operatorii limbajului PHP sunt cunoscuţi din C++ sau Javascript. Prezentăm, în

ordine descrescătoare, prioritatea operatorilor:

1. !, ++, --, (int), (double), (string)

2. *, +, /

3. <, <=, >, >=

4. ==, !=, ===, !===

5. &

Page 3: PHP Lectii

3 LIMBAJUL PHP

INSTRUCŢIUNILE PHP

sunt asemănătoare celor din C/C++. Din acest motiv, ne vom limita la o scurtă prezentare a lor şi la câteva

exemple de utilizare.

if while require

else for break

elseif foreach continue

switch include return

INSTRUCŢIUNEA IF ARE FORMA GENERALĂ:

if (expresie) instructiune1

[else instructiune2]

Dacă expresie produce la evaluare o valoare diferită de zero (true), se execută instructiune1, altfel se execută

instructiune2

Ex: se compara doua variabile si se afiseaza un mesaj

<?php

$a=2;

$b=9;

echo "$a=2<br>";

echo "$b=9<br>";

if ($a>$b) {

echo "$a>$b";

} else {

echo "$a<$b";

}

?>

Exemplu:

<?php

$a=19;

$b=23;

if ($a<$b) {

echo "$a<$b";

} elseif ($a==$b) {

echo "$a==$b";

} else {

echo "$a>$b";

}

?>

INSTRUCŢIUNEA SWITCH ARE FORMA GENERALĂ:

Page 4: PHP Lectii

4 LIMBAJUL PHP

switch (expresie)

{

case exp1 : secventa instructiuni_1; break;

case exp2 : secventa instructiuni_2; break;

...

case expn : secventa instructiuni_n; break;

[default: secventa instructiuni_n+1];

}

unde expresie are semnificaţia de expresie de tip întreg, expi sunt expresii constante de tip întreg, iar

instrucţiuni_i, o secvenţă oarecare de instrucţiuni.

EX: transforma numarul zilei in numele ei

<?php

$ziua=2;

echo $ziua;

echo "<br>";

switch ($ziua) {

case 1:

echo "Luni";

break;

case 2:

echo "Marti";

break;

case 3:

echo "Miercuri";

break;

case 4:

echo "Joi";

break;

case 5:

echo "Vineri";

break;

case 6:

echo "Sambata";

break;

case 7:

echo "Duminica";

break;

}

?>

INSTRUCŢIUNEA FOR ARE FORMA GENERALĂ:

for(exp_iniţializare;exp_test;exp_incrementare)

instrucţiune

După cum se vede, între paranteze se găsesc 3 expresii:

Page 5: PHP Lectii

5 LIMBAJUL PHP

- exp_initializare se foloseşte, de regulă, pentru iniţializarea variabilei de ciclare;

- exp_test se foloseşte pentru a testa dacă se execută instrucţiunea subordonată - dacă expresia produce la

evaluare o valoare diferită de zero (true), instrucţiunea subordonată for se execută;

- exp_incrementare se foloseşte pentru incrementarea variabilei de ciclare.

Principiul de executare este următorul:

P1. Se evaluează exp_iniţializare.

P2. Se evaluează exp_test. În cazul în care aceasta produce o valoare diferită de zero, se execută instrucţiunea

subordonată for, apoi se trece la P3; altfel se trece la instrucţiunea următoare (se termină executarea

instrucţiunii for).

P3. Se evaluează exp_incrementare şi se revine la P2

EX: se initializeaza variabila i cu valoarea 1, se verifica daca este mai mica sau egala cu 10 iar apoi se incrementeaza. La fiecare

iteratie se tipareste variabila i.

<?php

for ($i=1; $i<=10; $i++) {

echo $i."<br>";

}

?>

foreach este o constructie care functioneaza doar cu matrice generand erori cand sunt folosite variabile cu tipuri de date diferite sau

variabile neinitializate. Sintaxa folosita este:

foreach ($matrice as $cheie=>$valoare) {

instructiuni de executat;

}

Exemplu:

<?php

$personal = array(

"Florin" => director,

"Catalin" => inginer,

"Mihai" => economist,

"Sorin" => sofer,

"Diana" => secretara

);

foreach ($personal as $nume => $meserie) {

echo "$nume => $meserie<br>";

}

?>

while este o instructiune de tip bucla. Atat timp cat conditia este adevarata se repeta bucla.

Exemplu:

Page 6: PHP Lectii

6 LIMBAJUL PHP

<?php

$numar=1;

while ($numar<=7) {

echo $numar."<br>";

$numar++;

}

?>

include si require sunt doua functii asemanatoare folosite pentru includerea in paginile php a unor fisiere externe. Diferenta intre

cele doua functii consta in faptul ca daca include da gres scriptul genereaza o avertizare dar functioneaza in continuare in timp ce la

require se termina executarea scriptului.

include "fisier1.php";

require "fisier2.html";

break opreste fortat executia structurilor for, foreach, while, do..while sau switch.

break accepta optional un argument numeric care indica numarul de structuri imbricate a caror functionare este oprita.

Exemplu: la i=6 se opreste executia buclei

<?php

for ($i=0; ;$i++) {

if ($i>6) {

break;

}

echo $i."<br>";

}

?>

continue sare peste restul din iteratia buclei curente si continua executia la inceputul iteratiei urmatoare

continue accepta optional un argument numeric care indica numarul de bucle care vor fi sarite pana la sfarsit.

Exemplu: sare executia peste i==5

<?php

for ($i=0;$i<8;$i++) {

if ($i==5)

continue;

echo $i."<br>";

} ?>

return Daca este chemata din interiorul unei functii declaratia return() opreste imediat executia functiei curente si furnizeaza argumentul ca

valoare a functiei.

Daca este chemata in scop global executia scriptului curent se opreste.

TEMA

Calculează suma pătratelor primelor "x" numere naturale nenule ("x" este număr natural) cu ajutorul

instrucţiunii FOR.

Page 7: PHP Lectii

7 LIMBAJUL PHP

Calculează suma pătratelor primelor "x" numere naturale nenule ("x" este număr natural) cu ajutorul

instrucţiunii WHILE.

Calculează suma pătratelor primelor "x" numere naturale nenule ("x" este număr natural) cu ajutorul

instrucţiunii DO WHILE.

Pentru exemplificare, vom folosi următorul document HTML care trimite o valoare x către server:

<HTML>

<HEAD>

</HEAD>

<BODY>

<FORM action="http://localhost" method="post">

<INPUT type="text" name="x">

<INPUT type="submit" value="Ok">

</FORM>

</BODY>

</HTML>

Fişierul care conţine documentul de mai sus va avea numele de "formular.html" şi va fi reţinut pe

Desktop.

Pe server se va găsi un script, numit ”index.php”, care răspunde trimiţând o valoare către browser.

Elementul INPUT de tip "text" este sub forma unui edit şi permite utilizatorului să introducă date. Acestea se

trimit către browser la apăsarea unui buton de tip "submit". Pentru ca datele să fie recuperate de către script-ul

de pe server, trebuie ca tag-ul <form> să conţină

parametrul method ="post".

Atunci când browser-ul execută o cerere către server, trimite şi valoarea reţinută de input-ul de tip "text".

Valoarea transmisă de input-ul de tip "text", numit x, se recuperează prin $_POST[‘x’].

Această modalitate de transmitere şi recepţionare a parametrilor este generală şi trebuie reţinută.

LUCRUL CU FISIERE

Folosind PHP-ul se pot executa anumite operatii asupra fisierelor aflate pe server cum ar fi:

fopen() = deschide fisierul indicat

fclose() = inchide fisierul

fread() = citeste continutul fisierului

fwrite() = scrie in fisier

filesize() = indica dimensiunea fisierului

Page 8: PHP Lectii

8 LIMBAJUL PHP

Deschiderea fisierelor Sintaxa functiei fopen() este:

fopen(param1, param2);

param1 = fisierul, calea catre fisier sau adresa fisierului care va fi deschis

param2 = modul in care va fi deschis fisierul, si poate avea valorile:

r = fisier deschis doar pentru citire

r+ = fisier deschis doar pentru citire si scriere

w = fisier deschis doar pentru scriere

w+ = fisier deschis pentru citire si scriere iar daca nu exista fisierul il creza

a = fisier deschis pentru adaugare la sfarsit

a+ = fisier deschis adaugare la sfarsit iar daca nu exista fisierul il creza

t = fisier deschis in mod text

b = fisier deschis in mod binar

sau combinatii ale acestora.

Citirea fisierelor Sintaxa functiei fread() este:

$filename="proba.txt";

$handle=fopen($filename, "r");

$contents=fread($handle, filesize($filename));

variabila $handle va fi folosita ulterior si in alte functii

Scrierea in fisiere Sintaxa functiei fwrite() este:

fwrite($handle, "continut ce va fi scris in fisier");

Verificarea drepturilor de acces asupra fisierului Sintaxa functiei is_writable este:

is_writable($filename);

returneaza TRUE daca se poate si FALSE daca nu se poate scrie in fisier

Inchiderea fisierului Sintaxa functiei fclose() este:

fclose($handle);

Folosind aceste functii de baza putem incerca cateva exemple simple.

Exemplu: se verifica dreptul de scriere in fisier. Primul pas este crearea fisierului proba.txt apoi se verifica exemplul care va returna

mesajul Acces interzis scrierii in fisier. Se modifica drepturile asupra fisierului conform Q4 din FAQ adaugand scrierea. Se verifica

iar exemplul care va returna mesajul Acces permis scrierii in fisier.

<?php

$filename="proba.txt";

if(is_writable($filename)) { //se verifica dreptul de scriere in fisier

echo "Acces permis scrierii in fisier";

} else {

Page 9: PHP Lectii

9 LIMBAJUL PHP

echo "Acces interzis scrierii in fisier";

}

?>

Exemplu: adaugam exemplului anterior verificarea deschiderii fisierului.

<?php

$filename="proba.txt";

if(is_writable($filename)) { //se verifica dreptul de scriere in fisier

if(!$handle=fopen($filename, 'a')) { //se verifica deschiderea fisierului

echo "Fisierul <b>".$filename."</b> nu poate fi deschis";

exit; //se incheie executia scriptului

}

echo "Fisierul <b>".$filename."</b> poate fi deschis";

} else {

echo "Acces interzis pentru scriere in fisier";

}

?>

Exemplu: adaugam exemplului anterior scrierea in fisier si tiparirea continutului sau

<?php

$filename="proba.txt";

if(is_writable($filename)) { //se verifica dreptul de scriere in fisier

if(!$handle=fopen($filename, 'a')) { //se verifica deschiderea fisierului

echo "Fisierul <b>".$filename."</b> nu poate fi deschis";

exit; //se incheie executia scriptului

}

if(fwrite($handle, date("j-n-Y g:ia")."\r\n")===FALSE) { //testeaza daca se poate scrie in fisier

die ("Nu se poate scrie in ".$filename.""); //iesire

}

fclose($handle);

$matrice=file($filename); //se citeste continutul fisierului si se stocheaza intr-o matrice

foreach ($matrice as $cheie =>$valoare) {

echo $valoare."<br>"; //printeaza cate o valoare pe un rand

}

} else {

echo "Acces interzis pentru scriere in fisier";

}

?>

FUNCTII

O funcţie poate fi definită oriunde în cadrul script-ului. Argumentele funcţiei sunt separate prin virgulă şi

transmise prin valoare. Executarea funcţiei se încheie odată cu apariţia elementului "return".

În PHP se pot crea funcţii fără prea mari diferenţe faţă de ce ştiţi din C/C++ sau JavaScript. De exemplu, mai

jos este prezentat un script care utilizează o funcţie pentru a calcula aria unui triunghi, pe care apoi o afişează:

<?php

function aria_t($b, $h) { return $b*$h/2; }

$x=3;

Page 10: PHP Lectii

10 LIMBAJUL PHP

$y=8;

echo(aria_t($x,$y));

?>

Pentru a întoarce rezultate se utilizează, aşa cum suntem deja obişnuiţi, return. Forma generală este: "return

expresie".

Transmiterea parametrilor se face prin valoare şi prin referinţă. Pentru a transmite un parametru prin referinţă,

el trebuie precedat de caracterul "&"

GLOBAL VS. LOCAL. O variabilă se numeşte globală dacă a fost definită în afara oricărei funcţii. Implicit,

ea nu poate fi adresată din corpul unei funcţii. Totuşi, există o posibilitate: ataşăm cuvântul "global" înaintea

acestei variabile Variabilele locale sunt variabile create în corpul unei funcţii sau cele create prin transmiterea

parametrilor formali (din antetul funcţiilor). Ele nu sunt recunoscute în afara funcţiilor.

Includerea unor funcţii, dar nu numai, se realizează prin funcţia require("nume_fisier"). Funcţiile trebuie să

se găsească pe site, într-un fişier text (ex.: "functii.txt"). Textul funcţiei (funcţiilor inserate) trebuie să fie

încadrat între <? şi ?> (vezi "Exemplul 4").

Majoritatea funcţiilor care sunt prezentate în tabelul de mai jos au fost deja studiate în limbajul C++:

Exemplu :

<?php

$x=-7.23;

$y=abs($x);

echo($y);

echo("<br>");

echo(abs($y));

?>

Exemlu : construim o functie care aduna 2 variabile

<?php

function adunare($a,$b) {

$suma=$a+$b;

return $suma;

}

$rezultat=adunare(5,16);

echo $rezultat;

?>

Exemplu: o functie care genereaza un tabel

<?php

function tabel($lim) {

echo "<table border=\"1\">\n";

Page 11: PHP Lectii

11 LIMBAJUL PHP

for ($i=0; $i<=$lim; $i++) {

echo "<tr><td>randul ".$i."</td></tr>\n";

}

echo "</table>";

}

tabel(9); //tabel cu 10 randuri

?>

FUNCTIA MAIL

Folosind functia mail() din PHP pot fi trimise mailuri utilizand urmatoarea sintaxa:

mail(destinatar, subiect, mesaj, header aditional);

destinatar este adresa unde va fi trimis mailul iar daca este necesar mailul poate fi trimis mai multor destinatari, situatie in care

adresele vor fi separate prin virgula

subiect este informatia care va fi afisata in campul subiect

mesaj este corpul mailului. Fiecare linie va fi separata prin LF (\n) si nu va avea mai mult de 70 de caractere

header aditional contine informatii optionale, de exemplu: From, Cc, Bcc fiind separate de caracterele CRLF (\r\n)

Toate mailurile trimise trebuie sa aibe campul From completat. Acest lucru poate fi facut prin adaugarea acestuia in header

aditional sau prin setarea corespunzatoare a adresei in fisierul php.ini din PHP.

Executia functiei mail returneaza TRUE daca mailul a fost acceptat pentru trimitere, altfelFALSE.

Acceptarea mailului pentru trimitere nu inseamna obligatoriu si ca a fost trimis.

Exemplu: trimiterea unui simplu mail

$to="[email protected]";

$subiect="functia mail";

$mesaj="Mail trimis cu functia mail din PHP";

mail($to, $subiect, $mesaj);

Exemplu: trimiterea unui mail la care adaugam header aditional cu campurile From, Cc, Bcc. Pentru ca mailul sa poata contine

etichete HTML trebuie adaugat Content-type. S-au folosit caracterele speciale \r\n pentru afisarea fiecarei informatii pe un nou rand

$to="[email protected]";

$subiect="functia mail";

$mesaj="Mail trimis cu functia mail din PHP";

$headers = 'MIME-Version: 1.0'."\r\n";

$headers .= 'Content-type: text/html; charset=iso-8859-1'."\r\n";

$headers .= 'From: [email protected]'."\r\n";

$headers .= 'Cc: [email protected]'."\r\n";

$headers .= 'Bcc: [email protected]'."\r\n";

mail($to, $subiect, $mesaj, $headers);

ŞIRURI DE CARACTERE

Există un set puternic de funcţii, asemănătoare celor din C++, care lucrează cu ŞIRURI DE CARACTERE.

De asemenea, există şi un operator de concatenare a şirurilor.

Exemplu

Page 12: PHP Lectii

12 LIMBAJUL PHP

<?php

$sir="Un exemplu";

echo ($sir[0]);

?>

Se va afişa primul caracter: "U".

Şirurile se memorează ca o succesiune de caractere ASCII. Putem adresa fiecare caracter al şirului, aşa cum

suntem obişnuiţi, prin indicele său. Primul caracter are indicele 0.

Operatorul de concatenare a şirurilor este punctul.

Funcţia strlen(sir) returnează lungimea şirului (numărul de caractere ale şirului).

strpos(sir1, sir2, [poz_start]) caută dacă sir2 este subşir al lui sir1. În caz afirmativ, returnează poziţia de

început a acestuia, altfel returnează false. Al treilea parametru specifică funcţiei indicele caracterului de unde

să înceapă căutarea. Dacă nu este completat, căutarea începe din poziţia 0.

strstr(sir1,sir2) returnează sir1 din poziţia în care a fost găsit sir2, dacă sir2 este subşir pentru sir1 sau false,

în caz contrar.

strcmp(sir1,sir2) compară lexicografic (alfa-betic) sir1 cu sir2. Valoarea returnată este:

<0, dacă sir1 < sir2;

>0, dacă sir1 > sir2;

=0, dacă sir1 = sir2.

substr(sir,ind,[lung]) returnează subşirul şirului sir, care începe în poziţia ind şi are lungimea lung. Dacă

parametrul lung este absent, se returnează şirul care începe în poziţia ind şi ţine până la sfârşitul şirului sir.

substr_replace(sir1, sir2, ind, [lung]) returnează şirul rezultat prin înlocuirea în sir1, a subşirului care începe

în poziţia ind şi are lungimea lung cu sir2. Dacă parametrul lung este absent, sir2 înlocuieşte subşirul care

începe cu ind şi ţine până la sfârşitul şirului sir2.

MASIVE Limbajul PHP oferă o “libertate” extraordinară de lucru cu masive. Începem prin a spune că

masivele nu se declară. Primele două exemple (alăturate) prezintă modul de lucru cu VECTORI ŞI MATRICE.

EXEMPLU 1 Se creează şi se afişează un vector cu cinci componente:

<?php

for ($i=0;$i<5;$i++) $x[$i]=$i;

for ($i=0;$i<5;$i++) echo("$x[$i] <BR>");

?>

EXEMPLU 2 Se creează şi se afişează o matrice cu 5 linii şi 5 coloane. Elementele din linia "i" şi coloana

"j" reţin valorile "i+j":

<?php

Page 13: PHP Lectii

13 LIMBAJUL PHP

for ($i=0;$i<5;$i++)

for ($j=0;$j<5;$j++) $mat[$i][$j]=$i+$j;

for ($i=0;$i<5;$i++)

{ for ($j=0;$j<5;$j++) echo($mat[$i][$j]." ");

echo("<BR>");

}

?>

Indicii pot fi şiruri de caractere EXEMPLU

<?php

$x["Ioana"]="0724xxx";

$x["Valentina"]="031xxx";

$x["Paul"]="0211xxx";

$x["Cristian"]="0232xxx";

print $x["Ioana"]."<BR>";

print $x["Valentina"]."<BR>";

print $x["Paul"]."<BR>";

print $x["Cristian"]."<BR>";

?>

Faptul că există posibilitatea utilizării unor astfel de indici creează, pe lângă avantaje, probleme. Imaginaţi-vă

că vreţi să parcurgeţi şi să listaţi un astfel de vector. Care este numărul componentelor? Să zicem că pe acesta îl

reţinem într-o variabilă, dar ce valori ia variabila de ciclare?

Aici este utilă instrucţiunea foreach care are rolul de a ne permite o parcurgere uşoară a unui vector:

foreach(vector as indice=>variabila)

secventa_instructiuni

unde vector este masivul, indice este variabila de ciclare, iar variabila, variabila în care se face citirea

Exemplul

<?php

$x["Ioana"]="0724xxx";

$x["Valentina"]="031xxx";

$x["Paul"]="0211xxx";

$x["Cristian"]="0232xxx";

Page 14: PHP Lectii

14 LIMBAJUL PHP

foreach($x as $i=>$nume)

echo($i." ".$nume."<BR>");

?>

TRANSMITERE DATE CATRE SERVER

UN FORMULAR este o grupare de componente HTML care permite trimiterea datelor către server. Pe server,

datele sunt recepţionate de un script PHP care le prelucrează.

Un formular se descrie între tag-urile

<FORM action="script"> şi </FORM>.

Prin script înţelegem numele script-ului care se rulează atunci când datele, comenzile sosesc pe server. Între

cele două tag-uri se inserează diferite componente care permit introducerea datelor sau trimiterea comenzilor.

Formulare -- recapitulare HTML

Folosind formularele webdesignerul sau administratorul site-ului poate colecta diverse informatii de la vizitatori.

Cele mai importante atribute ale etichetei <form> sunt action si method.

action metioneaza adresa scriptului (aflat pe server) care va interpreta formularul. Aceste scripturi pot fi scrise in limbajele PHP sau

Pearl.

method indica metoda folosita de browser pentru transmiterea formularului. Poate lua valorile get si post.

get - datele sunt trimise prin adaugarea la adresa indicata de action. Permite trimiterea unor mici cantitati de date.

post - datele sunt trimise separat si sunt permise cantitati mari de date.

name este un atribut care identifica datele introduse in fiecare camp al formularului

Elementul INPUT – este un element HTML de o mare complexitate. Poate fi de diverse tipuri (type): de la un

buton de validare, la unul radio, un edit, etc. După cum sugerează şi numele, rolul elementului INPUT este de a

permite utilizatorului să introducă date sau comenzi în pagina vizualizată de browser. Un element INPUT se

descrie cu tag-ul următor (formă simplificată):

<INPUT name="nume" type="tip"

value="valoare" align="tip_aliniere">

unde valoare exprimă valoarea afişată de element.

Exemplu: formular cu 2 campuri, buton Trimite si buton Sterge

Page 15: PHP Lectii

15 LIMBAJUL PHP

HTML Afisare

<form action="script.php" method="post">

Nume:<input type="text" name="nume">

Prenume:<input type="text" name="prenume"><br>

<input type="submit" value="Trimite"><input type="reset"

value="Sterge">

</form>

Nume:

Prenume:

Submit Reset

Eticheta <input> poate avea atributele:

type - indica tipul datelor care vor fi introduse (text=text, submit=trimite, reset=sterge, password=parola, hidden=nu este vizibil,

checkbox=caseta de validare, button=buton, radio=selectarea unui singur element dintr-un grup, file=fisier pentru upload,

image=butonul va fi inlocuit cu o imagine)

name - numele asociat cimpului respectiv. Este folosit la prelucrarea datelor de catre scriptul mentionat in action

size - numarul de caractere vizibile din camp

maxlength - numarul maxim de caractere introduse in camp

readonly - datele prezente in camp nu pot fi modificate

Exemplu: formular continand toate valorile atributului <input>

HTML Afisare

<form action="script.php" method="post">

Nume:<input type="text" name="nume">

Prenume:<input type="text" name="prenume"><br>

Telefon:<input type="text" name="telefon"><br>

Fax:<input type="text" name="fax"><br>

Email:<input type="text" name="email"><br>

Sexul: Masculin<input type="radio" name="sex" value="m"> Feminin<input

type="radio" name="sex" value="f">

Studii: <select> <option value="scoala">Scoala profesionala <option

value="liceu">Liceu <option value="facultate">Facultate </select>

Accesati Internetul de la:

Serviciu<input type="checkbox" name="serv">

Acasa<input type="checkbox" name="acasa">

Internet cafe<input type="checkbox" name="cafe">

Fisier: <input type="file" name="file">

Observatii:<textarea name="obs" rows="5" cols="30"></textarea>

<input type="submit" value="Trimite"><input type="reset" value="Sterge">

</form>

Nume:

Prenume:

Telefon:

Fax:

Email:

Sexul: Masculin Feminin

Studii:

Accesati Internetul de la:

Serviciu

Acasa

Internet cafe

Fisier:

Observatii:

Page 16: PHP Lectii

16 LIMBAJUL PHP

Submit Reset

Constructia select introduce un meniu derulant (lista de selectie), valorile fiind declarate prin option.

In campul textarea se poate introduce text, avand atributele cols (numar de coloane) sirows (numar de randuri).

Daca doriti puteti particulariza butoanele din formular folosind atributul type=image in cadrul etichetei input si indicand fisierul

imagine.

HTML Afisare

<form action="script.php" method="post">

<input type="image" src="trimite.gif" alt="Trimite">

</form>

TRIMITE

FINAL RECAPITULARE FORMULARE

EXEMPLE Sa presupunem ca intr-un formular avem un camp cu name="nume" si method="POST". Fisierul indicat de action va

prelua datele introduse in campul "nume" astfel:

$_POST["nume"];

Exemplu: formular cu un camp si scriptul php de preluare a datelor

<form action="exemplu5_1.php" method="POST">

Nume: <input type="text" name="nume"><br>

<input type="submit" value="Trimite">

</form>

/* urmeaza fisierul exemplu5_1.php */

<?php

$nume=$_POST["nume"];

echo $nume;

?>

Verificarea datelor introduse in formular Pentru a fi siguri ca utilizatorul a completat campurile trebuie sa adaugam scriptului partea de verificare.

Exemplu: folosim acelasi formular dar adaugam partea de verificare

<?php

$nume=$_POST["nume"];

if ($nume=="") {

Page 17: PHP Lectii

17 LIMBAJUL PHP

echo "Campul nume nu este completat";

} else {

echo $nume;

}

?>

Partea de verificare poate avea mai multe conditii simultane.

Exemplu: acelasi formular dar partea de verificare are doua conditii legate prin operatorul OR sau ||

<?php

$nume=$_POST["nume"];

if (($nume=="") || (strlen($nume)<5)) {

echo "Campul nume nu este completat corect";

} else {

echo $nume;

}

?>

Folosind modelele anterioare puteti prelua date si face verificarea pentru toate campurile formularului.

Datele preluate pot fi eventual introduse intr-o baza de date sau prelucrate in vederea trimiterii prin email functie de cerintele

aplicatiei.

In afara preluarii datelor putem folosi formularul si pentru upload-ul fisierelor pe serverdar cu masurile de precautie necesare

pentru a evita eventualele upload-uri de fisiere nedorite pe server.

Pentru upload formularul va contine un camp de tip input cu type="file" iar eticheta formva contine in plus un

argument enctype="multipart/form-data".

Exemplu: formular pentru upload fisiere. Folderul in care se face upload trebuie sa permita operatia de scriere. Din motive de

securitate acest exemplu nu este activ.

<form method="post" action="exemplu5_4.php" enctype="multipart/form-data">

Fisier pentru upload: <input type="file" name="file"><br>

<input type="submit" value="Trimite">

</form>

/* urmeaza fisierul exemplu5_4.php */

<?php

$a=$_FILES["file"]["size"];

$b=$_FILES["file"]["name"];

$c=$_FILES["file"]["tmp_name"];

$d=$_FILES["file"]["type"];

if(($a<10000) && ($a>0)) {

move_uploaded_file($c,$b);

echo "Original file name: ".$b."<br>";

echo "File name after upload: ".$c."<br>";

echo "File size: ".$a."<br>";

echo "File type: ".$d;

}

?>

Page 18: PHP Lectii

18 LIMBAJUL PHP

EXEMPLE

md5 este o metoda de criptare folosind un algoritm special care furnizeaza ca rezultat un numar hexazecimal de 32 caractere

Exemplu: introduceti in formular datele care ulterior vor fi criptate md5

/* urmeaza fisierul test1.html */

<form action="test1.php" method="POST">

Introduceti date spre criptare: <input type="text" name="date"><br>

<input type="submit" value="Trimite">

</form>

/* urmeaza fisierul test1.php */

<?php

$a=$_POST['date']; //preluare date din formular

echo md5($a); //tiparire codare md5

?>

date returneaza un sir functie de parametri ceruti conform tabelului de mai jos

Parametru Semnificatie Exemplu

Y An format 4 cifre 2006

y An format 2 cifre 06

n Luna format 1 sau 2 cifre 7

m Luna format 2 cifre 07

F Luna June

M Luna format 3 litere Jun

j Zi din luna format 1 sau 2 cifre 9

d Zi din luna format 2 cifre 09

l (L mic) Zi din saptamana Friday

D Zi din saptamana format 3 litere Wed

w Zi din saptamana format 1 cifra 0=duminica 6=sambata

z Zi din an (0-365) 123

t Numarul zilelor dintr-o anumita luna 30

g Ora 12h format 1 sau 2 cifre 3

G Ora 24h format 1 sau 2 cifre 21

Page 19: PHP Lectii

19 LIMBAJUL PHP

h Ora 12h format 2 cifre 03

H Ora 24h format 2 cifre 21

i Minute 32

s Secunde 17

a am sau pm pm

A AM sau PM PM

Exemplu: data si ora afisate in mai multe moduri

<?php

echo date("d-m-Y g:i A");

echo"<br>";

echo date("j-F-Y H:i" );

echo"<br>";

echo date("l-M-Y");

?>

strlen returneaza lungimea unui string

Exemplu: returneaza lungimea sirului Another brick in the wall

<?php

$sir="Another brick in the wall";

echo strlen($sir);

?>

trim() elimina spatiile albe din sir

ltrim() elimina spatiile albe din stanga sir

rtrim() elimina spatiile albe din dreapta sir

Exemplu: se elimina succesiv spatiile libere din sir " 234 " folosind ltrim() si apoi rtrim()

<?php

$a=" 234 ";

echo $a."<br>";

echo strlen($a);

$b=ltrim($a);

echo "<br>".$b."<br>";

echo strlen($b);

$c=rtrim($b);

echo "<br>".$c."<br>";

echo strlen($c);

?>

strtolower() converteste un sir la litere mici

strtoupper() converteste un sir la litere mari

Exemplu: se converteste primul sir la litere mici si al doilea la litere mari

Page 20: PHP Lectii

20 LIMBAJUL PHP

<?php

$a="Star Wars Episode III";

echo strtolower($a);

echo "<br>";

$b="atentie inalta tensiune";

echo strtoupper($b);

?>

array_merge() uneste mai multe matrici

Exemplu: uneste doua matrici si tipareste matricea rezultata

<?php

$a=array(apa, aer, foc);

$b=array(fructe, legume, carne);

print_r(array_merge($a,$b));

?>

count() numara elemetele unei matrici

Exemplu:

<?php

$a=array(fructe, legume, carne, lactate);

echo (count($a));

?>