Sunteți pe pagina 1din 19

Universitatea TRANSILVANIA Brasov

Facultatea de Matematica Informatica

Introducere in PHP

Autor : Calburean Ovidiu Ioan

Grupa : 7281
Anul III
Introducere in PHP
Introducere

Până nu demult, în Internet erau puţini cei care realizau şi foloseau fişierele de comenzi -
scripturile. Recent, însă, tot mai multă lume îşi construieşte propriile pagini Web, sau
chiar propriile centre Web, iar limbajele de comenzi, pentru realizarea de script-uri, devin
tot mai importante. În acelaşi timp, aceste limbaje devin tot mai uşor de învăţat, 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ă acţionează pe partea serverului - server-side language). Adică
fişierele cu comenzi PHP rulează pe serverul Web, nu în navigator, pe staţia client. Cu
alte cuvinte, nu trebuie să ne batem capul cu compatibilitatea soft a calculatorului
personal de pe care navigăm. PHP este un limbaj relativ nou (comparativ cu alte limbaje
precum Perl (CGI) şi Java), dar devine rapid unul dintre cele mai răspândite ş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?

Învăţarea sau măcar înţelegerea unui limbaj care să ne permită scrierea de scripturi Web,
poate schimba complet viziunea lărgind grozav posibilităţile de publicare şi activitate pe
Web. Chiar dacă putem descărca scripturi gata făcute, din centre precum Hotscripts,
acestea, de regulă, includ reclama pentru autorul respectiv şi nu ne vor oferi exact ce
dorim. Înţelegând limbajul vom edita mai uşor aceste scripturi, pentru ca să facă ceeace
dorim, sau chiar putem crea scripturi noi, proprii.

Folosirea scripturilor în propriul centru Web ne permite să adăugăm multe elemente de


noutate şi interactivitate, precum formularele de feedback, cărţile de oaspeţi, sistemele
colaborative numite message boards, contoare ale vizitelor şi multe alte elemente mai
avansate precum sistemele portal, cele de management al conţinutului, gestionarii de
reclame (advertising managers), etc. Astfel de elemente sunt necesare pentru a obţine 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ă găsească un loc de
muncă atunci când ştie PHP şi programarea Web.

Ce ne trebuie?

Aşa cum am menţionat î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 lămurim, ăpătând răspunsul cu ajutorul primului script din acest
curs. Dacă serverul nu suportă PHP atunci va trebui să apelaşi la administratorul său
pentru a-l instala, PHP-ul fiind un produs public - putând fi descărcat gratuit şi simplu de
la www.php.net. Altă cale este să vă găsiţi o altă gazdă Web care suportă PHP. Sau să vă
instalaţi propriul server Web împreună cu PHP.

Scrierea în PHP

Pentru a scrie un fişier în PHP pe calculatorul propriu nu vă trebuie nimic alceva decât un
simplu editor de texte (precum Notepad din Windows). Lansaţi-l şi pregătiţi-vă să scrieţi
primul script PHP.

Declaraţia PHP

Scripturile PHP sunt întotdeauna incluse între două taguri PHP, conform aceleaşi 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 acţionează - 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. Atenţie, 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 totuşi esenţial. Tot ce va face este să
furnizeze informaţiile despre instalarea şi starea PHP-ului pe server. Scrieţi cu editorul de
texte următoarele:

<?
phpinfo();
?>

Aşa cum se vede este o singură linie de cod PHP. Este o funcţie standard din PHP,
numită phpinfo, care va cere serverului să scrie şi să transmită un tebel standard cu
informaţiile de configurare a serverului.

O observaţie 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 fişier dându-i un nume. În acest caz, să-i spunem
phpinfo.php. Apoi trebuie să încărcăm fişierul pe server, în spaţiul uzual al documentelor
Web. După asta, folosind navigatorul, apelăm scriptul prin URL-ul corespunzător. Dacă
lucrează (şi dacă PHP este instalat pe server) atunci vom obţine o listă amplă, plină cu
detalii despre situaţia 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ă funcţie (situaţie extrem de puţin
probabilă). Dacă, în locul afişării informaţiilor apare o ofertă de descărcare a fişierului
(download), sau ne apare chiar scriptul aşa cum a fost scris (sursa), înseamnă că PHP nu
este instalat pe server. Caz în care trebuie sau să căutăm alt server sau să instalăm PHP.

Nu strică să păstraţi acest script pentru utilizări ulterioare.


Afişarea informaţiilor şi Variabilele
Introducere

In ultima parte a lecţiei precedente am discutat câteva din avantajele PHP-ului ca limbaj
pentru scripturi, învăţând cum să testăm dacă avem sau nu PHP instalat pe server. Acum
vom vedea cum apar informaţiile în navigator şi cum utilizăm variabilele pentru a prelua
informaţii.

Scrierea unui text

Pentru a scoate - afişa un text în scriptul PHP, avem mai multe posibilităţi. Pima, prin
utilizarea comenzii print. Print permite afişarea unui text, a unor variabile sau a unor
combinaţii ale acestora, pe ecran.

Instrucţiunea print este folosită în felul următor:

print("Hello world!");

Asta s-ar scrie ca fişier PHP în forma:

<?
print("Hello world!");
?>

care prin apel cu navigatorul va afişa pe ecran:

Hello world!

Variabile în PHP

Ca şi în alte limbaje de programare, în PHP putem defini variabile. Există câteva 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 înţeles, tot ce se află între ghilimele va fi atribuit variabilei string
din membrul stâng. Desigur, trebuie să ne reamintim câteva reguli privind lucrul cu şiruri
de caractere.

Distinţia dintre majuscule şi minuscule. Astfel $Welcome_Text diferă de $welcome_text


Numele de şiruri pot conţine litere, cifre şi semne de subliniere (_), dar nu pot începe cu o
cifră sau cu semnul _
Când atribuim un număr la un string nu mai e nevoie să punem ghilimelele. Adică este
acceptată construcţia:

$user_id = 987

Variabile de scoatere

Pentru a afişa o variabilă pe ecran folosim exact aceiaşi comandă ca şi pentru a afişa un
text, cu o mică diferenţă formală. Astfel, pentru a afişa stringul atribuit variabilei
$text_salut scriem:

<?
$text_salut = "Bun venit pe site-ul meu Web!";
print($text_salut);
?>

Aşa cum se poate vedea, singura diferenţă ar fi că scriem în comanda print numele
variabilei, fără ghilimele, în locul textului cu ghilimele.

Formatul unui text

Din păcate scoaterea - afişajul î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 rulării 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ă aşa 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 punctuaţie au rolul ghilimelelor din script, şi care sunt
ghilimelele care trebuie ignorate.

Sre exemplu, să afişăm textul de mai sus cu Arial scris cu roşu. Asta s-ar scrie:

<font face="Arial" color="#FF0000">


</font>

Aici avem 4 ghilimele care ar putea încurca scriptul. Din cauza asta trebuie să adăugăm
un backslash (\) înaintea fiecărei 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 instrucţiunea 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ă.

Instrucţiunile IF
Introducere

În cele două lecţii anterioare am văzut cum scriem un text în PHP şi cum îl atribuim unei
variabile. Acum vom vedea cum folosim condiţiile, instrucţiunea IF, pentru a lua decizii
în cadrul scriptului.

Definiţia instrucţiunii IF

Instrucţiunea condiţională IF este folosită pentru a compare două valori şi a realiza


acţiuni diferite în baza rezultatelor testului. Instrucţiunea urmează sintaxa (are forma) IF -
THEN - ELSE. Partea IF testează o condiţie. Dacă aceasta este adevărată, atunci este
urmată ramura THEN. În caz contrar se merge pe ramura ELSE.

Structura instrucţiunii IF

În general avem următoarea structură:

IF ('ceva' == 'altceva') {
'Ramura THEN'
} else {
'Ramura ELSE'
}
Variabilele

Uzual, comparăm o variabilă cu o anumită porţiune de text, cu un număr, sau cu altă


variabilă. Spre exemplu:

if ($username == "webmaster")

adică comparăm valoarea pe care o ia variabila cu şirul precizat de caractere. Ramura


THEN a instrucţiunii fiind executată doar dacă variabila are exact valoarea care apare
între ghilimele, adică dacă coincide cu cuvântul 'webmaster'. Dacă are însă valoarea
'Webmaster' sau 'WEBMASTER' va fi urmată ramura ELSE.

Construcţia ramurii THEN

In cazul de mai sus, putem completa scriptul adăugând o ramură THEN de forma:

if ($username == "webmaster") {
echo "Please enter your password below";
}
care va afişa cererea parolei dacă numele utilizatorului este webmaster. În caz contrar, nu
se afişează nimic. Putem să lăsăm instrucţiunea în această formă, pentru că nu este
obligatoriu să apară o ramură ELSE. Asta-i util mai ales când avem condiţii multiple.

Construcţia ramurii ELSE

Adăugarea 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 limitaţi doar la o singură linie. Putem adăuga orice comandă PHP între
acoladele ramurii respective. Putem chiar include alte instrucţiuni IF (cuibărite).

Alte comparaţii

Există şi alte moduri de a folosi instrucţiunea IF pentru a compara valori. Comparând


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 comparaţie,
pentru a verifica dacă o valoare este mai mică sau egală decât alta:
if ($varsta < "13")

Sau:

if ($date > $finished)

Mai mult, putem avea teste multiple într-o singură instrucţiune IF. Spre exemplu, dacă
avem un formular şi vrem să verificăm dacă vre un câmp a fost lăsat necompletat:

if ($name == "" || $email == "" || $password == "") {


echo "Please fill in all the fields";

Cicluri şi Vectori
Introducere

În ultimele lecţii ale acestui curs am văzut cum manevrăm texte şi variabile &ncirc;n
PHP şi cum putem folosi instrucţiunea IF pentru a le compara ca să luăm 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. Fără a fi prea compl;icată.
Un ciclu WHILE va executa, aşa cum sugerează şi numele, o anumită parte de cod (un set
de instrucţiuni), atâta timp cât este îndeplinită o anumită condiţie.

Repetarea de un număr fixat de ori

Dacă avem o anumită secvenţă de instrucţiuni care trebuie repetate de un număr fixat de
ori (fără 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 interpretăm acest script? Primele două linii sunt doar atribuiri ale variabilelor.
Variabila $times capătă valoarea din condiţia ciclului, în acest caz - 5 . Variabila $x este
contorul care va număra de câte ori se execută secvenţa. După aceste atribuiri, urmează
linia WHILE. Acesta comandă repetarea secvenţei dintre acolade, câtă vreme $x este mai
mic decât $times (alfel spus, repetarea până câ,nd $x devine egal cu $times). Secvenţa
care se execută repetat apare în următoarele 2 linii (între acolade).
După linia echo care afişează textul, apare o altă linie foarte importantă:

++$x;

Din programare ştim că asta înseamnă incrementarea variabilei $x, adică acelaşi lucru cu:

$x = $x + 1;

Astfel, la fiecare repetare, variabila $x ia pe rând valorile 1, 2, 3, 4, 5. La ultima, condiţia


din linia WHILE nu mai este îndeplinită şi ciclul ia sfârşit.

Folosirea lui $x

Variabila de contorizare ca ciclului (în cazul de mai sus $x ) poate fi folosită nu numai
pentru numărare. Spre exemplu, dacă vrem să creem o pagină web cu toate numerele de
la 1 la 1000 în ea, putem fie să scriem fiecare număr în parte, fie să folosim următoarea
secvenţă:

$number = 1000;
$current = 0;
while ($current < $number) {
++$current;
echo "$current<br>";
}

Ce ar fi de spus despre acest script? Mai întâi că am plasat, spre deosebire de cazul
dinainte, comanda de incrementare ++$current; înaintea instrucţiunii 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 operaţii aritmetice
asupra numărului în cauză.

Vectori şi matrici

Vectorii sunt structuri obişnuite în majoritatea limbajelor de programare. Sunt variabile


speciale care pot lua mai mult decât o singură valoare, toate stocate în spaţiul propriu
numerotat - în vector. Vectorii sunt extrem de utili mai ales la ciclurile WHILE.

Definirea unui vector

Definirea - iniţializarea unui vector este puţin diferită de cea a unei variabile normale. În
exemplul următor vom introduce un vector cuprinzând 5 nume:

$names[0] = 'John';
$names[1] = 'Paul';
$names[2] = 'Steven';
$names[3] = 'George';
$names[4] = 'David';

Aşa cum se vede, componentele unui vector sunt numerotate, pornind de la 0. Pentru a
adăuga o valoare uneui vector trebuie să specificăm poziţia 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 făcut este să
precizăm numele vectorului şi numărul 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 utilizări a ciclurilor apare pentru a extrage informaţiile dintr-un
vector. Spre exemplu, dacă vrem să scoatem umătoarea 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 următorul cod:

$number = 5;
$x = 0;
while ($x < $number) {
$namenumber = $x + 1;
echo "Numele $namenumber este $names[$x]<br>";
++$x
}

Aşa cum se poate vedea, folosim variabila $x din acest ciclu pentru a afişa numele
înregistrate într-un vector. Iar pentru afişare am folosit variabila $namenumber care este
cu o unitate mai mare decât $x. Asta deoarece numerotarea (indixarea) vectorului
porneşte de la 0.

.
E-mail cu PHP
Introducere

Este extrem de simplu de trimis un mesaj e-mail din PHP, spre deosebire de situaţia din
alte limbaje de comandă care necesită o iniţializare aparte, tip CGI. De fapt, în PHP avem
doar o singură comandă mail() pentru a trimite un mesaj. Utilizată în formatul următor:

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 luăm pe rând: Mai întâi variabila $destinatar.
Aceasta conţine adresa e-mail la care să fie transmis mesajul. Variabila $subiect trebuie
să conţină textul care dorim să apară în linia Subject: a mesajului. Iar variabila
$corpul_mesajului conţine textul mesajului - conţinutul său.

Prin variablia $antet se transmit componentele suplimentare din antetul mesajului. Cel
mai des e vorba despre câmpul 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 întâi să
iniţializăm 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 alcătuirea 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 alcătuirea 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

către 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 combinaţia \n . Acesta este standardul international
pentru formatul mesajelor e-mail.

Combinaţia 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 destinaţie (în
variabila $destinatar ), nici în subiectul mesajului (variabila $subiect ).

Comanda Mail fără variabile

In sintaxa comenzii mail() nu contează numele variabilelor ci doar poziţia - 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, introducând 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

Aşa cum orice programator ştie foarte bine, este foarte uşor să faci greşeli într-un script,
după cum e foarte simplu să intervină greşeli în scrierea adreselor e-mail (în mod special
dacă folosim scriptul pentru a construi mesajele). Din cauza asta, este util să adăugăm
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. Verificaţi scriptul şi asiguraţi-
vă că adresa e-mail $to este corectă";
}

Acest script pare suficient de limpede. Dacă mesajul este expediat fără probleme, acest
fapt va fi comunicat - va apare în fereastra navigatorului. Similar, în cazul unei erori, vom
recepţiona atenţionarea cuvenită, cu sugestii de remediere.

Partea 6-a

In partea 6-a vom continua discuţia trimiterii mesajelor din PHP, arătând cum se
realizează un script PHP pentru construcţia unui formular e-mail.
PHP cu Formulare
Introducere

In lecţia anterioară am văzut cum folosim PHP-ul pentru a trimite mesaje e-mail dintr-un
script. In lecţia aceasta vom contiua această discuţie şi vom vedea cum folosim
formularele cu PHP, pentru a face scripturile PHP cât mai utile.

Construcţia 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 ştiţi:

<input type="text" name="caseta" value="Numele d-voastra">

va afişa 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 opţional.
Informaţia - textul atribuit atributului name va constitui numele acestei casete text,
trebuind să fie unic în formular.

<textarea name="mesaj">
Scrieţi aici mesajul d-voastră.
</textarea>

va afişa o casetă mare de text cuprinzând îndemnul 'Scrieţi 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 puteţi


schimba/alege textul care apare pe buton modificând expresia atribuită lui value.

Toate elementele formularului trebuie să fie cuprinse între tagurile <form> . Adică se
folosesc cam aşa:

<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 căruia i se transmit datele
(în acest caz fişierul 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 opţiunea POST datele vor fi
trimise scriptului într-un pachet (stream) atunci când acesta le cere. O altă opţiune 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/PHP-
proc/prelucrare.php?name=Mihai

Nu prea contează care metodă o folosiţi, dar este mai bine să folosiţi POST dacă-i vorba
de informaţii delicate (parole, etc.) pentru ca acestea să nu poată fi văzute în bara de
adrese a navigatorului.

Obţinerea datelor din formular

Pasul următor este să luăm, să extragem datele din formularul transmis script-ului, astfel
încât 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).
Diferenţa 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 informaţii către script fără un formular, pur şi simplu editâbd
URL-ul.

Asta se poate face cam la fel cu transmiterea formularului folosind GET. Avantajul ar fi
că, astfel se pot crea legături la script-uri care vor produce efecte diferite în funcţie de
legătura selectată. Spre exemplu, putem construi un script care să ne arate diferite pagini
Web, funcţie de legătura selectată:

pagina.php?user=jalobean
poate arăta pagina mea Web (a utilizatorului jalobean, iar:
pagina.php?user=djalobeanu
poate arăta pagina utilizatorului djalobeanu de pe serverul Relis, folosind acelaşi script.

Ba este posibil şi să transmitem script-ului mai mult decât o singură valoare a unui atribut
folosind schema de mai sus şi separând 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 câmp 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 făcut pentru fiecare variabilă pe care vrem să o folosim
din formular (sau din URL).
Formularul pentru script-ul e-mail

In încheierea acestei secţiuni, să vedem cum aplicăm cele discutate mai sus şi cum
realizăm un mecanism care să producă şi să ne transmită un mesaj e-mail cu comentariile
unui utilizator.

Mai întâi să pregătim 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 său şi comentariile dorite. Putem desigur să adăugăm şi alte părţi într-un
asemenea formular, cu condiţia să actualizăm şi script-ul. Pentru cazul simplu de mai sus,
scriem următorul 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 uitaţi să înlocuiţi adresa mea e-mail jalobean@relis.uvvg.ro cu propria voastră adresă


e-mail. Acest script trebuie salvat ca fişier cu numele mail.php , iar ambele fişiere (acesta
şi pagina Web în care a fost inclus formularul de mai sus) trebuie încărcate pe serverul
Web în zona destinată documentelor accesibile (acolo de unde vor fi apelate). Tot ce a
mai rămas atunci de făcut, este să verificăm completând formularul.
Observaţii finale
Introducere

In lecţiile precedente am văzut elementele de bază privind PHP şi scrierea unui script în
PHP. Acum vom mai vedea câteva amănunte, oarecum disparate.

Comentariile

Ca la orice limbaj de programare, este important să introducem în script-ul pe care-l


facem şi comentarii. Dacă lucrăm la un script împreună cu altcineva, atunci trebuie să-l
ajutăm să înţeleagă ce am vrut, cum am abordat problema, ce reprezintă variabilele
introduse... Dacă punem scriptul la dispoziţia studenţilor sau a comunităţii celor
preocupaţi de PHP sau de aplicaţia realizată, cu atât mai mult este nevoie de comentarii în
script. Chiar şi dacă nu avem planuri atât de mari, comentariile ne vor fi de folos peste un
timp, atunci când vom dori să ne amintim cum am făcut ca să-l putem modifica
adaptându-l altor cerinţe.

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 execuţia 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
execuţie. Este foarte important să nu uităm să închidem comentariul, cu */ , altfel scriptul
nu va rula deloc.

Print, Echo şi HTML

Aşa cum poate aţi remarcat, în cele 6 lecţii din acest curs, au fost folosite patru moduri
diferite de a scoate - transmite informaţiile către navigator:
echo("textul de aici");
echo "textul de aici";
print("textul de aici";
print "textul de aici";

Fiecare din liniile de mai sus face acelaşi lucru, aşa încât putem folosi oricare dintre
variante într-un script. Si nu există nici o constrângere de a utiliza o aceeaşi variantă pe
parcursul aceluaşi script. Singura problemă este că, aşa cum am discutat în lecţia a 2-a,
toate apariţiile 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 aşa:

<?
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 lăsat, adică cam aşa:

<?
IF Statement {
?>
HTML For IF Being Correct
<?
} else {
?>
HTML For IF Being Wrong
<?
}
?>

Trebuie, desigur, să nu uităm să închidem buclele din instrucţiunea IF (o eroare destul de


frecvent întâlnită).

One Line Prints

Este foarte util să plasăm cod HTML în scriptul PHP, dar ce ne facem atunci când vrem
să punem valoarea unei variabile în acea parte de cod. Spre deosebire de cazul când
folosim instrucţiunile echo sau print, nu putem pune numele unei variabile intr-o
secţiune 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 adăugat pur şi simplu în secvenţa HTML următoarea secvenţă PHP:

<? echo($variablename); ?>

care este totuna cu:

<?
echo($variablename);
?>

doar că-i totul pus într-o singură linie.

Concluzii

Acest curs a explicat câteva din elementele de bază ale PHP şi ar trebui să vă ajute să
lucraţi cu PHP. Pentru mai multe detalii vizitaţi PHP.net, pagina oficială a PHP. Ceea ce
lipseşte din acest curs, cum poate aţi observat, este exact folosirea PHP cu o bază de date.
Asta fiind însă una din principalele raţiuni pentru care lumea foloseşte PHP şi prezentând
deci un interes aparte, subiectul a fost lăsat pentru un curs separat de PHP/MySQL.

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