Sunteți pe pagina 1din 19

Mini-curs PHP

Cuprins
Partea 1-a: Introducere Partea 2-a: Afiarea informaiilor i Variabilele Partea 3-a: Instruciunile IF Partea 4-a: Cicluri i Vectori Partea 5-a: E-mail cu PHP Partea 6-a: PHP cu Formulare Partea 7-a: Observaii finale

Partea 1-a
Introducere
Pn nu demult, n Internet erau puini cei care realizau i foloseau fiierele de comenzi scripturile. Recent, ns, tot mai mult lume i construiete propriile pagini Web, sau chiar propriile centre Web, iar limbajele de comenzi, pentru realizarea de script-uri, devin tot mai importante. n acelai timp, aceste limbaje devin tot mai uor de nvat, iar PHP este unul din ele, poate cel mai simplu i cel mai puternic (deocamdat).

Ce este PHP?
PHP vine de la "Hypertext Preprocessor" i este un limbaj de comenzi-script pentru server (se spune c acioneaz pe partea serverului - server-side language). Adic fiierele cu comenzi PHP ruleaz pe serverul Web, nu n navigator, pe staia client. Cu alte cuvinte, nu trebuie s ne batem capul cu compatibilitatea soft a calculatorului personal de pe care navigm. PHP este un limbaj relativ nou (comparativ cu alte limbaje precum Perl (CGI) i Java), dar devine rapid unul dintre cele mai rspndite i mai populare din Internet.

De ce PHP?
De ce ar trebui preferat PHP altor limbaje, precum Perl? i de ce ar trebui s nv'm de fapt un limbaj pentru scripturi? nvarea sau mcar nelegerea unui limbaj care s ne permit scrierea de scripturi Web, poate schimba complet viziunea lrgind grozav posibilitile de publicare i activitate pe Web. Chiar dac putem descrca scripturi gata fcute, din centre precum Hotscripts, acestea, de regul, includ reclama pentru autorul respectiv i nu ne vor oferi exact ce dorim. nelegnd limbajul vom edita mai uor aceste scripturi, pentru ca s fac ceeace dorim, sau chiar putem crea scripturi noi, proprii.

Folosirea scripturilor n propriul centru Web ne permite s adugm multe elemente de noutate i interactivitate, precum formularele de feedback, crile de oaspei, sistemele colaborative numite message boards, contoare ale vizitelor i multe alte elemente mai avansate precum sistemele portal, cele de management al coninutului, gestionarii de reclame (advertising managers), etc. Astfel de elemente sunt necesare pentru a obine o imagine de profesionist. Mai mult, oricine vrea acum s lucreze n industria de proiectare i dezvoltare se centre Web va descoperi c este mult mai simplu s gseasc un loc de munc atunci cnd tie PHP i programarea Web.

Ce ne trebuie?
Aa cum am menionat nainte, PHP este un limbaj pentru scripturi pe partea de server (server-side). Asta nsemn c, utilizatorii nu trebuie s-i instaleze nimic n plus, ca soft, dar pe platforma unde ruleaz serverul Web (gazda Web) trebuie s avem instalat PHP. Acesta poate fi deja inclus (ncorporat) n serverul Web, dar dac nu tim: este sau nu instalat, putem s ne lmurim, ptnd rspunsul cu ajutorul primului script din acest curs. Dac serverul nu suport PHP atunci va trebui s apelai la administratorul su pentru a-l instala, PHP-ul fiind un produs public - putnd fi descrcat gratuit i simplu de la www.php.net. Alt cale este s v gsii o alt gazd Web care suport PHP. Sau s v instalai propriul server Web mpreun cu PHP.

Scrierea n PHP
Pentru a scrie un fiier n PHP pe calculatorul propriu nu v trebuie nimic alceva dect un simplu editor de texte (precum Notepad din Windows). Lansai-l i pregtii-v s scriei primul script PHP.

Declaraia PHP
Scripturile PHP sunt ntotdeauna incluse ntre dou taguri PHP, conform aceleai scheme ca i n HTML. Astea spun serverului s preia information dintre ele i s o interpreteze ca expresie din PHP. Exist trei forme diferite de marcare a expresiilor - comenzilor PHP, i anume: <? comenzi PHP ?> <?php comenzi PHP php?> <script language="php"> comenzi PHP </script>

Toate trei acioneaz - se comport exact la fel. In cele ce urmeaz vom folosi doar prima variant, pentru simplitate (<? i ?>). Dar pot fi folosite, la fel de bine oricare din cele trei. Atenie, combinarea lor nu este ns permis, nu putem folosi pentru deschidere <? iar pentru nchidere </script> , spre exemplu.

Primul script
Primul script PHP este desigur unul banal i totui esenial. Tot ce va face este s furnizeze informaiile despre instalarea i starea PHP-ului pe server. Scriei cu editorul de texte urmtoarele: <? phpinfo(); ?> Aa cum se vede este o singur linie de cod PHP. Este o funcie standard din PHP, numit phpinfo, care va cere serverului s scrie i s transmit un tebel standard cu informaiile de configurare a serverului. O observaie important din acest exemplu: linia de cod PHP se termin cu punct i virgul (;). Asta-i foarte important ca sintax. La fel ca n multe alte limbaje de comenzi sau de programare, liniile trebuie s se termine cu un marcaj anume,adesea tot (;), iar dac acest terminator este omis rezult o eroare.

ncheierea i testarea scriptului


Odat scris, scriptul trebuie salvat ca fiier dndu-i un nume. n acest caz, s-i spunem phpinfo.php. Apoi trebuie s ncrcm fiierul pe server, n spaiul uzual al documentelor Web. Dup asta, folosind navigatorul, apelm scriptul prin URL-ul corespunztor. Dac lucreaz (i dac PHP este instalat pe server) atunci vom obine o list ampl, plin cu detalii despre situaia PHP pe server. Dac scriptul nu lucreaz i apare o pagin alb, atunci avem sau o eroare n modul n care a fost scris scriptul, sau serverul nu suport aceast funcie (situaie extrem de puin probabil). Dac, n locul afirii informaiilor apare o ofert de descrcare a fiierului (download), sau ne apare chiar scriptul aa cum a fost scris (sursa), nseamn c PHP nu este instalat pe server. Caz n care trebuie sau s cutm alt server sau s instalm PHP. Nu stric s pstrai acest script pentru utilizri ulterioare.

Partea 2-a
Aici o s vedem cum scriem i cum rulm scripturi n PHP. Deocamdat tim dac serverul suport (sau nu) PHP-ul i am neles, n mare, cum apare un script PHP, cum este structurat. n partea 2-a vom vedea cum afim informaiile n navigator

Afiarea informaiilor i Variabilele


Introducere
In ultima parte a leciei precedente am discutat cteva din avantajele PHP-ului ca limbaj pentru scripturi, nvnd cum s testm dac avem sau nu PHP instalat pe server. Acum vom vedea cum apar informaiile n navigator i cum utilizm variabilele pentru a prelua informaii.

Scrierea unui text


Pentru a scoate - afia un text n scriptul PHP, avem mai multe posibiliti. Pima, prin utilizarea comenzii print. Print permite afiarea unui text, a unor variabile sau a unor combinaii ale acestora, pe ecran. Instruciunea print este folosit n felul urmtor: print("Hello world!"); Asta s-ar scrie ca fiier PHP n forma: <? print("Hello world!"); ?> care prin apel cu navigatorul va afia pe ecran: Hello world!

Variabile n PHP
Ca i n alte limbaje de programare, n PHP putem defini variabile. Exist cteva tipuri de variabile n PHP, dar cea mai uzual este variabila ir de caractere, numit String. Poate fi folosit pentru texte sau numere. Toate irurile de caractere, toate variabilele string ncep cu semnul $ . Pentru a atribui un text unei variabile string trebuie s folosim o succesiune de forma: $text_salut = "Bun venit pe site-ul meu Web!"; Este o linie simplu de neles, tot ce se afl ntre ghilimele va fi atribuit variabilei string din membrul stng. Desigur, trebuie s ne reamintim cteva reguli privind lucrul cu iruri de caractere. Distinia dintre majuscule i minuscule. Astfel $Welcome_Text difer de $welcome_text Numele de iruri pot conine litere, cifre i semne de subliniere (_), dar nu pot ncepe cu o

cifr sau cu semnul _ Cnd atribuim un numr la un string nu mai e nevoie s punem ghilimelele. Adic este acceptat construcia: $user_id = 987

Variabile de scoatere
Pentru a afia o variabil pe ecran folosim exact aceiai comand ca i pentru a afia un text, cu o mic diferen formal. Astfel, pentru a afia stringul atribuit variabilei $text_salut scriem: <? $text_salut = "Bun venit pe site-ul meu Web!"; print($text_salut); ?> Aa cum se poate vedea, singura diferen ar fi c scriem n comanda print numele variabilei, fr ghilimele, n locul textului cu ghilimele.

Formatul unui text


Din pcate scoaterea - afiajul n aceast form cu print din PHP nu este prea interesant. Totul apare n navigatorul cu caracterele (fontul) predefinite. Dar este foarte simplu s introducem un format n text folosind HTML. Asta pentru c, PHP fiind pe server, codul se execut nainte ca pagina s fie trimis spre navigator. Ceea ce nseamn c doar rezultatele rulrii scriptului sunt trimise, astfel c, n exemplul de mai sus spre navigator se va trimite doar textul: Bun venit pe site-ul meu Web! Iar asta ne permite s includem elementele de formatare - marcare standard din HTML pentru a face ca textul s apar aa cum dorim. Aceste pot fi plasate direct n string-ul din scriptul PHP. Singura problem este c multe taguri HTML pretind ghilimele n sintax. Iar asta ar provoca un conflict cu ghilimelele din irul declarat n script. Putem preciza defini ns care semne de punctuaie au rolul ghilimelelor din script, i care sunt ghilimelele care trebuie ignorate. Sre exemplu, s afim textul de mai sus cu Arial scris cu rou. Asta s-ar scrie: <font face="Arial" color="#FF0000"> </font> Aici avem 4 ghilimele care ar putea ncurca scriptul. Din cauza asta trebuie s adugm un backslash (\) naintea fiecrei ghilimele pentru a face ca scriptul PHP s o ignore. Astfel vom avea:

<font face=\"Arial\" color=\"#FF0000\"> </font> Iar asta poate fi deja inclus n instruciunea print: print("<font face=\"Arial\" color\"#FF0000\">Bun venit pe site-ul meu Web!</font>"); care va face ca pe navigator s apar: Bun venit pe site-ul meu Web! deoarece scriptul a transmis doar codul: <font face="Arial" color="#FF0000">Bun venit pe site-ul meu Web!</font> Pare destul de complicat aceast scoatere de cod HTML, dar vom vedea c exist i o cale ceva mai simpl.

Partea 3-a
n partea 3-a vom introduce i discuta instruciunea condiional If.

Instruciunile IF
Introducere
n cele dou lecii anterioare am vzut cum scriem un text n PHP i cum l atribuim unei variabile. Acum vom vedea cum folosim condiiile, instruciunea IF, pentru a lua decizii n cadrul scriptului.

Definiia instruciunii IF
Instruciunea condiional IF este folosit pentru a compare dou valori i a realiza aciuni diferite n baza rezultatelor testului. Instruciunea urmeaz sintaxa (are forma) IF THEN - ELSE. Partea IF testeaz o condiie. Dac aceasta este adevrat, atunci este urmat ramura THEN. n caz contrar se merge pe ramura ELSE.

Structura instruciunii IF
n general avem urmtoarea structur: IF ('ceva' == 'altceva') {

'Ramura THEN' } else { 'Ramura ELSE' }

Variabilele
Uzual, comparm o variabil cu o anumit poriune de text, cu un numr, sau cu alt variabil. Spre exemplu: if ($username == "webmaster") adic comparm valoarea pe care o ia variabila cu irul precizat de caractere. Ramura THEN a instruciunii fiind executat doar dac variabila are exact valoarea care apare ntre ghilimele, adic dac coincide cu cuvntul 'webmaster'. Dac are ns valoarea 'Webmaster' sau 'WEBMASTER' va fi urmat ramura ELSE.

Construcia ramurii THEN


In cazul de mai sus, putem completa scriptul adugnd o ramur THEN de forma: if ($username == "webmaster") { echo "Please enter your password below"; } care va afia cererea parolei dac numele utilizatorului este webmaster. n caz contrar, nu se afieaz nimic. Putem s lsm instruciunea n aceast form, pentru c nu este obligatoriu s apar o ramur ELSE. Asta-i util mai ales cnd avem condiii multiple.

Construcia ramurii ELSE


Adugarea unei ramuri ELSE este la fel de simpl. Spre exemplu: if ($username == "webmaster") { echo "Please enter your password below"; } else { echo "We are sorry but you are not a recognised user"; } Dar nu suntem limitai doar la o singur linie. Putem aduga orice comand PHP ntre acoladele ramurii respective. Putem chiar include alte instruciuni IF (cuibrite).

Alte comparaii
Exist i alte moduri de a folosi instruciunea IF pentru a compara valori. Comparnd dou variabile diferite ca s vedem dac valorile lor se potrivesc sau nu, spre exemplu:

if ($parola_introdusa == $password) Dar compararea se poate face folosind oricare din simbolurile standard de comparaie, pentru a verifica dac o valoare este mai mic sau egal dect alta: if ($varsta < "13") Sau: if ($date > $finished) Mai mult, putem avea teste multiple ntr-o singur instruciune IF. Spre exemplu, dac avem un formular i vrem s verificm dac vre un cmp a fost lsat necompletat: if ($name == "" || $email == "" || $password == "") { echo "Please fill in all the fields";

Partea 4-a
n lecia urmtoare vom vedea alte cteva moduri de folosire a scriptului PHP pentru alte tipuri de teste i salturi.

Cicluri i Vectori
Introducere
n ultimele lecii ale acestui curs am vzut cum manevrm texte i variabile &ncirc;n PHP i cum putem folosi instruciunea IF pentru a le compara ca s lum decizii. Acum vom vedea cum folosim alt parte important a PHP, salturile.

Ciclul WHILE
Ciclul WHILE este una din comenzile cele mai utile din PHP. Fr a fi prea compl;icat. Un ciclu WHILE va executa, aa cum sugereaz i numele, o anumit parte de cod (un set de instruciuni), atta timp ct este ndeplinit o anumit condiie.

Repetarea de un numr fixat de ori


Dac avem o anumit secven de instruciuni care trebuie repetate de un numr fixat de ori (fr a le rescrie), atunci putem folosi un ciclu while. Spre exemplu, dac vrem s scriem cuvintele "Hello World" de 5 ori, putem face astfel: $times = 5; $x = 0;

while ($x < $times) { echo "Hello World"; ++$x; } Cum interpretm acest script? Primele dou linii sunt doar atribuiri ale variabilelor. Variabila $times capt valoarea din condiia ciclului, n acest caz - 5 . Variabila $x este contorul care va numra de cte ori se execut secvena. Dup aceste atribuiri, urmeaz linia WHILE. Acesta comand repetarea secvenei dintre acolade, ct vreme $x este mai mic dect $times (alfel spus, repetarea pn c,nd $x devine egal cu $times). Secvena care se execut repetat apare n urmtoarele 2 linii (ntre acolade). Dup linia echo care afieaz textul, apare o alt linie foarte important: ++$x; Din programare tim c asta nseamn incrementarea variabilei $x, adic acelai lucru cu: $x = $x + 1; Astfel, la fiecare repetare, variabila $x ia pe rnd valorile 1, 2, 3, 4, 5. La ultima, condiia din linia WHILE nu mai este ndeplinit i ciclul ia sfrit.

Folosirea lui $x
Variabila de contorizare ca ciclului (n cazul de mai sus $x ) poate fi folosit nu numai pentru numrare. Spre exemplu, dac vrem s creem o pagin web cu toate numerele de la 1 la 1000 n ea, putem fie s scriem fiecare numr n parte, fie s folosim urmtoarea secven: $number = 1000; $current = 0; while ($current < $number) { ++$current; echo "$current<br>"; } Ce ar fi de spus despre acest script? Mai nti c am plasat, spre deosebire de cazul dinainte, comanda de incrementare ++$current; naintea instruciunii echo . Asta pentru c dorim s ncepem cu scrierea lui 1 , nu a lui 0. De fapt, linia ++$current; poate fi plasat oriunde n ciclul WHILE. Dup cum se pot efectua orice operaii aritmetice asupra numrului n cauz.

Vectori i matrici

Vectorii sunt structuri obinuite n majoritatea limbajelor de programare. Sunt variabile speciale care pot lua mai mult dect o singur valoare, toate stocate n spaiul propriu numerotat - n vector. Vectorii sunt extrem de utili mai ales la ciclurile WHILE.

Definirea unui vector


Definirea - iniializarea unui vector este puin diferit de cea a unei variabile normale. n exemplul urmtor vom introduce un vector cuprinznd 5 nume: $names[0] = 'John'; $names[1] = 'Paul'; $names[2] = 'Steven'; $names[3] = 'George'; $names[4] = 'David'; Aa cum se vede, componentele unui vector sunt numerotate, pornind de la 0. Pentru a aduga o valoare uneui vector trebuie s specificm poziia din cadrul vectorului - prin intermediul indicelui plasat ntre parantezele drepte [ ].

Citirea unui vector


Citirea unui vector se face exact la fel ca i atribuirea. Tot ce avem de fcut este s precizm numele vectorului i numrul componentei dorite. Astfel, dac vrem s vedem cel de al treilea nume (din vectorul $names ) putem folosi scriptul: echo "Al treilea nume este $names[2]"; Which would output: Al treilea nume este Steven

Folosirea vectorilor i ciclurilor


Una din cele mai utile utilizri a ciclurilor apare pentru a extrage informaiile dintr-un vector. Spre exemplu, dac vrem s scoatem umtoarea list de nume: Numele 1 este John Numele 2 este Paul Numele 3 este Steven Numele 4 este George Numele 5 estes David Putem folosi urmtorul cod: $number = 5; $x = 0;

while ($x < $number) { $namenumber = $x + 1; echo "Numele $namenumber este $names[$x]<br>"; ++$x } Aa cum se poate vedea, folosim variabila $x din acest ciclu pentru a afia numele nregistrate ntr-un vector. Iar pentru afiare am folosit variabila $namenumber care este cu o unitate mai mare dect $x. Asta deoarece numerotarea (indixarea) vectorului pornete de la 0.

Partea 5-a
In lecia urmtoare vom vedea cum trimitem un mesaj e-mail din PHP.

E-mail cu PHP
Introducere
Este extrem de simplu de trimis un mesaj e-mail din PHP, spre deosebire de situaia din alte limbaje de comand care necesit o iniializare aparte, tip CGI. De fapt, n PHP avem doar o singur comand mail() pentru a trimite un mesaj. Utilizat n formatul urmtor: mail($destinatar,$subiect,$corpul_mesajului,$antet); In acest exemplu variabilele indic prin numele lor sintaxa comenzii. De fapt se pot include chiar textele n comand. S le lum pe rnd: Mai nti variabila $destinatar. Aceasta conine adresa e-mail la care s fie transmis mesajul. Variabila $subiect trebuie s conin textul care dorim s apar n linia Subject: a mesajului. Iar variabila $corpul_mesajului conine textul mesajului - coninutul su. Prin variablia $antet se transmit componentele suplimentare din antetul mesajului. Cel mai des e vorba despre cmpul From: , dar poate fi inclus oricare linie din antet, precum Cc:, sau Bcc: .

Trimiterea unui mesaj E-mail


Mai nainte de a expedia un mesaj, dac folosim variabile atunci va trebui ca, mai nti s iniializm aceste variabile. Iat un exemplu: $destinatar = "jalobean@relis.uvvg.ro"; $subiect = "despre PHP"; $corpul_mesajului = "PHP este unul dintre cele mai bune limbaje de comenzi pentru alctuirea scripturilor";

$antet = "From: webmaster@uvvg.ro\n"; mail($destinatar,$subiect,$corpul_mesajului,$antet); echo "Mesaj trimis la $destinatar"; Acest cod va face dou lucruri. Va trimite un mesaj la adresa jalobean@relis.uvvg.ro , cu subject: 'despre PHP' i cu textul: PHP este unul dintre cele mai bune limbaje de comenzi pentru alctuirea scripturilor iar mesajul e-mail va apare ca venind de la webmaster@uvvg.ro . Dar va mai fi transmis i textul: Mesaj trimis la jalobean@relis.uvvg.ro ctre navigator.

Formatul - aspectul mesajului e-mail


In exemplul de mai sus, n variabila $antet, linia From: este ncheiat cu \n. Acesta reprezint un simbol foarte important la trimiterea unui e-mail. Este codul pentru "linie nou". Cum n antetul mesajului (i deci i n variabila $antet) putem avea mai multe linii, fiecare trebuie s se ncheie cu combinaia \n . Acesta este standardul international pentru formatul mesajelor e-mail. Combinaia aceasta de trecere la linie nou ( \n ) poate fi folosit i n corpul mesajului, n variabila $corpul_mesajului . Dar nu are voie s apar nici n adresa de destinaie (n variabila $destinatar ), nici n subiectul mesajului (variabila $subiect ).

Comanda Mail fr variabile


In sintaxa comenzii mail() nu conteaz numele variabilelor ci doar poziia - ordinea lor. Adic, n exemplul de mai sus putem folosi alte patru variabile numite $v1 , $v2 , $v3 i $v4 . Totul se poate scrie i ntr-o singur linie, introducnd direct textul, n forma: mail("jalobean@relis.uvvg.ro","despre PHP","PHP este unul din cele mai bune limbaje","From: webmaster@uvvg.ro\n"); Dar asta devine ceva mai dificil de citit.

Erori
Aa cum orice programator tie foarte bine, este foarte uor s faci greeli ntr-un script, dup cum e foarte simplu s intervin greeli n scrierea adreselor e-mail (n mod special dac folosim scriptul pentru a construi mesajele). Din cauza asta, este util s adugm scriptului o secven de verificare, de forma:

if(mail($to,$subject,$body,$headers)) { echo "Mesajul e-mail a fost trimis la $to cu subiectul: $subject"; } else { echo "A intervenit o eroare la trimiterea mesajului. Verificai scriptul i asigurai-v c adresa e-mail $to este corect"; } Acest script pare suficient de limpede. Dac mesajul este expediat fr probleme, acest fapt va fi comunicat - va apare n fereastra navigatorului. Similar, n cazul unei erori, vom recepiona atenionarea cuvenit, cu sugestii de remediere.

Partea 6-a
In partea 6-a vom continua discuia trimiterii mesajelor din PHP, artnd cum se realizeaz un script PHP pentru construcia unui formular e-mail.

PHP cu Formulare
Introducere
In lecia anterioar am vzut cum folosim PHP-ul pentru a trimite mesaje e-mail dintr-un script. In lecia aceasta vom contiua aceast discuie i vom vedea cum folosim formularele cu PHP, pentru a face scripturile PHP ct mai utile.

Construcia formularului
Scrierea unui formular pentru a fi folosit cu un script PHP se face exact la fel ca i n mod normal, n HTML. Cum acesta este un curs de PHP nu vom intra n detalii privind scrierea formularului, ci vom discuta trei dintre compunentele pe care trebuie s le tii: <input type="text" name="caseta" value="Numele d-voastra"> va afia o caseta pentru introducerea unui text, caset n care apar scrise (la nceput) cuvintele Numele d-voastra. De fapt atributul value n aceast linie este opional. Informaia - textul atribuit atributului name va constitui numele acestei casete text, trebuind s fie unic n formular. <textarea name="mesaj"> Scriei aici mesajul d-voastr. </textarea> va afia o caset mare de text cuprinznd ndemnul 'Scriei aici mesajul d-voastr.'. Si de data aceasta, numele casetei este definit (mesaj) i trebuie s fie unic.

<input type="submit" value="Trimite"> aceast linie va crea un buton de trimitere n formularul respectiv. Desigur putei schimba/alege textul care apare pe buton modificnd expresia atribuit lui value. Toate elementele formularului trebuie s fie cuprinse ntre tagurile <form> . Adic se folosesc cam aa: <form action="prelucrare.php" method="post"> Elementele Formularului i comenzile de formatare, etc. </form> unde valoarea atribuit lui form action spune care este script-ul cruia i se transmit datele (n acest caz fiierul prelucrare.php). Aici putem avea chiar un URL complet (spre exemplu http://relis.uvvg.ro/~jalobean/Cursuri/PHP-proc/prelucrare.php). Metoda method spune formularului cum s transmit datele sale. Cu opiunea POST datele vor fi trimise scriptului ntr-un pachet (stream) atunci cnd acesta le cere. O alt opiune este GET, caz n care datele din formular sunt trimise n forma unui url astfel c vor apare dup un semn ? , precum n exemplul: http://relis.uvvg.ro/~jalobean/Cursuri/PHPproc/prelucrare.php?name=Mihai Nu prea conteaz care metod o folosii, dar este mai bine s folosii POST dac-i vorba de informaii delicate (parole, etc.) pentru ca acestea s nu poat fi vzute n bara de adrese a navigatorului.

Obinerea datelor din formular


Pasul urmtor este s lum, s extragem datele din formularul transmis script-ului, astfel nct s putem face ceva cu ele. Exist dou procedee diferite de extragere a datelor n PHP, care depind de modul n care datele au fost trimise (cu metoda GET sau cu POST). Diferena major dintre cele dou const n faptul c, folosind GET, variabilele i datele vor fi vizibile n adresa paginii, n timp ce folosind POST acestea sunt invizibile. Cu GET, ns, putem transmite informaii ctre script fr un formular, pur i simplu editbd URL-ul. Asta se poate face cam la fel cu transmiterea formularului folosind GET. Avantajul ar fi c, astfel se pot crea legturi la script-uri care vor produce efecte diferite n funcie de legtura selectat. Spre exemplu, putem construi un script care s ne arate diferite pagini Web, funcie de legtura selectat: pagina.php?user=jalobean poate arta pagina mea Web (a utilizatorului jalobean, iar: pagina.php?user=djalobeanu poate arta pagina utilizatorului djalobeanu de pe serverul Relis, folosind acelai script.

Ba este posibil i s transmitem script-ului mai mult dect o singur valoare a unui atribut folosind schema de mai sus i separnd elementele prin simbolul & : pagina.php?user=david&referrer=gowansnet&area=6 Aceste elemente vor putea fi accesate separat folosind variabilele GET: user, referrer i area. Pentru a prelua o variabil care a fost trimis script-ului cu metoda POST trebuie s folosim un apel de forma: $nume_variabila=$_POST['variabila']; care preia, n fond, variabila de la POST (numele unui cmp din formular) i o atribuie variabilei $nume_variabila. Similar, la folosirea metodei GET vom scrie: $nume_variabila=$_GET['variabila']; Iar asta se poate face i trebuie fcut pentru fiecare variabil pe care vrem s o folosim din formular (sau din URL).

Formularul pentru script-ul e-mail


In ncheierea acestei seciuni, s vedem cum aplicm cele discutate mai sus i cum realizm un mecanism care s produc i s ne transmit un mesaj e-mail cu comentariile unui utilizator. Mai nti s pregtim formularul pentru a-l include n pagina HTML: <form action="mail.php" method="post"> Numele: <input type="text" name="nume"><br> Adresa E-mail: <input type="text" name = "email"><br><br> Comentarii<br> <textarea name="comentar"></textarea><br><br> <input type="submit" value="Trimite"> </form> Astfel avem un formular simplu n care utilizatorul poate introduce adresa sa e-mail, numele su i comentariile dorite. Putem desigur s adugm i alte pri ntr-un asemenea formular, cu condiia s actualizm i script-ul. Pentru cazul simplu de mai sus, scriem urmtorul script PHP: <? $numele=$_POST['nume']; $adresa=$_POST['email']; $comentariu=$_POST['comentar']; $catre="jalobean@relis.uvvg.ro";

$mesaj="$numele tocmai a transmis comentariile sale. Acolo spune:\n$comentariu\n\nAdresa sa e-mail a fost: $adresa"; if(mail($catre,"Comentarii din propriul Site",$mesaj,"From: $email\n")) { echo "Multumiri pentru comentariile d-voastra."; } else { echo "Exista o problema la transmiterea mesajului. Verificati, va rog, modul in care ati completat formularul."; } ?> Nu uitai s nlocuii adresa mea e-mail jalobean@relis.uvvg.ro cu propria voastr adres e-mail. Acest script trebuie salvat ca fiier cu numele mail.php , iar ambele fiiere (acesta i pagina Web n care a fost inclus formularul de mai sus) trebuie ncrcate pe serverul Web n zona destinat documentelor accesibile (acolo de unde vor fi apelate). Tot ce a mai rmas atunci de fcut, este s verificm completnd formularul.

Partea 7-a
Aa cum se poate vedea, folosirea formularelor din PHP poate fi extrem de comod i eficient. In lecia urmtoare vom vedea nc cteva lucruri care pot fi realizate i pe care trebuie s le tii despre PHP.

Observaii finale
Introducere
In leciile precedente am vzut elementele de baz privind PHP i scrierea unui script n PHP. Acum vom mai vedea cteva amnunte, oarecum disparate.

Comentariile
Ca la orice limbaj de programare, este important s introducem n script-ul pe care-l facem i comentarii. Dac lucrm la un script mpreun cu altcineva, atunci trebuie s-l ajutm s neleag ce am vrut, cum am abordat problema, ce reprezint variabilele introduse... Dac punem scriptul la dispoziia studenilor sau a comunitii celor preocupai de PHP sau de aplicaia realizat, cu att mai mult este nevoie de comentarii n script. Chiar i dac nu avem planuri att de mari, comentariile ne vor fi de folos peste un timp, atunci cnd vom dori s ne amintim cum am fcut ca s-l putem modifica adaptndu-l altor cerine. In PHP exist dou moduri de a introduce comentarii. Unul folosit pentru o singur linie de comentariu, altul folosit, mai ales, pentru comentarii mai largi, care privesc mai multe linii. Comentariul dintr-o linie se scrie n forma:

// comentariul se poate scrie aici Tot ce apare n linie dup marcajul // va fi ingnorat la execuia scriptului. Marcajul i comentariul aferent poate apare oriunde pe linie (la nceput, sau dup o serie de comenzi, spre exemplu: print "Hello $name"; // Salutam vizitatorul Modul de comentariu pe mai multe linii este: /* The following piece of code will take the input the user gave and will check that it is valid before adding it to the database */ Textul este plasat deci ntre marcajele /* i */ . Tot ce se afl ntre acestea va fi ignorat la execuie. Este foarte important s nu uitm s nchidem comentariul, cu */ , altfel scriptul nu va rula deloc.

Print, Echo i HTML


Aa cum poate ai remarcat, n cele 6 lecii din acest curs, au fost folosite patru moduri diferite de a scoate - transmite informaiile ctre navigator: echo("textul de aici"); echo "textul de aici"; print("textul de aici"; print "textul de aici"; Fiecare din liniile de mai sus face acelai lucru, aa nct putem folosi oricare dintre variante ntr-un script. Si nu exist nici o constrngere de a utiliza o aceeai variant pe parcursul aceluai script. Singura problem este c, aa cum am discutat n lecia a 2-a, toate apariiile semnului " n codul HTML trebuie s apar (s fie nlocuite cu) \" chestie care, la un script lung, poate s dureze. Asta ne conduce la o parte foarte util a PHP. Dac, spre exemplu, creem dinamic un antet al unei pagini Web cu PHP, atunci o s avem o succesiune de coduri cam aa: <? Prima parte a codului PHP ?> Codul HTML <? Partea final a codului PHP ?> Asta merge i mai bine dac codul PHP va continua de unde a fost lsat, adic cam aa:

<? IF Statement { ?> HTML For IF Being Correct <? } else { ?> HTML For IF Being Wrong <? } ?> Trebuie, desigur, s nu uitm s nchidem buclele din instruciunea IF (o eroare destul de frecvent ntlnit).

One Line Prints


Este foarte util s plasm cod HTML n scriptul PHP, dar ce ne facem atunci cnd vrem s punem valoarea unei variabile n acea parte de cod. Spre deosebire de cazul cnd folosim instruciunile echo sau print, nu putem pune numele unei variabile intr-o seciune care nu este cod PHP. In schimb, variabila poate fi inclus ntr-o mic secven PHP. Spre exemplu, dac vrem s scriem numele cuiva, dintr-un script, cu formatare HTML, putem face astfel: <font face="Arial" size="7" color="red"><b><? echo($variablename); ? ></b></font> Adic am adugat pur i simplu n secvena HTML urmtoarea secven PHP: <? echo($variablename); ?> care este totuna cu: <? echo($variablename); ?> doar c-i totul pus ntr-o singur linie.

Concluzii
Acest curs a explicat cteva din elementele de baz ale PHP i ar trebui s v ajute s lucrai cu PHP. Pentru mai multe detalii vizitai PHP.net, pagina oficial a PHP. Ceea ce lipsete din acest curs, cum poate ai observat, este exact folosirea PHP cu o baz de date.

Asta fiind ns una din principalele raiuni pentru care lumea folosete PHP i prezentnd deci un interes aparte, subiectul a fost lsat pentru un curs separat de PHP/MySQL.

S-ar putea să vă placă și