PHP, sau Hypertext Preprocessor este un limbaj de programare ce rulează pe server și poate oferi o componentă dinamică site-ului, prin trimiterea de răspunsuri la client ce au fost generate on-server, la momentul request-ului.  Astăzi, PHP a devenit un limbaj foarte popular de programare web, datorită simplității sale și ușurinței cu care acesta poate fi învățat. O să vorbesc imediat de unde vine această simplitate și de ce trebuie tratată cu grijă. Cine folosește PHP?

  • Rețelele sociale foarte cunoscute precum Facebook(deși la ora actuală au propriul framework și propriul limbaj, dar primele versiuni au fost scrise în PHP) și Twitter
  • Jocuri online ce nu se bazează pe descărcarea unui anumit software, ca Travian sau Triburile
  • Platforme de editare foarte cunoscute ca WordPress, PhpBB sau Joomla, dar și temele compatibile cu fiecare platformă(tema acestui site conține PHP, fiindcă rulează pe WordPress)
  • Framework-uri pentru e-Commerce

 

De ce este PHP simplu?

Spre deosebire de alte limbaje de programare (C++, Java, .Net), PHP are o curbă de învățare mult mai rapidă. Acest lucru i-a conferit, de-a lungul timpului, o reputație nu tocmai bună, proliferându-se ideea că este un limbaj simplist, deschis erorilor și codului prost scris. Personal, aș zice, în majoritatea cazurilor, că aceste afirmații vin, datorită unei lipse de maturități la nivelul calității codului, în rândul celor care scriu PHP. Nu vreau nici pe departe să sugerez că toți cei care scriu cod PHP îl scriu prost!! Vreau să subliniez că, datorită curbei de învățare rapide, vom putea încă din primele momente să putem rezolva o bună parte din probleme – vom fi foarte productivi și chiar vom termina treaba, dar e posibil ca tot ce-am făcut să nu fie robust.

Problema de mai sus ține și de experiența celui care scrie cod. Chiar dacă ești la început și vei remarca că poți face lucruri utile cu puțin, nu uita să înghiți totul cu un strop de sare…sunt foarte multe de învățat în realitate.

Limbajul este deschis, ai foarte mult control asupra codului, dar paradoxal, aș ruga pe cei cu multă experiență în programare să scrie cod PHP într-o aplicație ce ajunge în producție. Easy to learn…hard to master.

 

Cum funcționează PHP?

Pentru a rula codul PHP trebuie să ai un server ce rulează PHP. Poți să obții serverul fie luând un hosting gratuit cu PHP, fie luând unul plătit sau fie instalând propriul server pe computer. Un fisier .php simplu nu va putea fi citit direct de către browser chiar dacă este pe propriul PC, dar din fericire există câteva programe cunoscute și simple de utilizat ce rezolvă aceasta problema: XAMPP sau WAMPP(LAMP pentru Linux) sunt pachete software ce instalează automat componentele necesare rulării codului PHP. După instalarea programului vei putea testa componentele intrând pe http://localhost.

 

1. Primii pași

Prima oară trebuie să ne familiarizăm un pic cu codul PHP. Deschide editorul tău de texte preferat și scrie:
[cc lang=”php” escaped=”true”]
<?php phpinfo(); ?>[/cc]
Salvează fișierul ca phpinfo.php în htdocs(în XAMPP, sau www în WAMPP), deschide http://localhost și dacă totul este corect vei vedea o pagină cu toate informațiile contului tău. De la username, la parolă, până la ce sistem de operare utilizezi și multe altele.Tot din exemplul de mai sus ne dăm seama că PHP începe cu <?php si se termină cu ?>. Acest criteriu va fi valabil pentru toate fisierele PHP.

Primul script in PHP

[cc lang=”php” escaped=”true”]
<?php
echo “Primul meu script in PHP”;
?>
[/cc]
Primul tău script în PHP utilizează funcția echo. Cu ea putem afișa un string utilizatorului.
[cc lang=”php” escaped=”true”]
<?php
$text = “Primul meu script in PHP!”;
$numar = 7
echo $text.”<br>”;
echo “Primul meu script in PHP! <br>”;
echo $numar.” e numar prim!”;
?>[/cc]
Rezultat:

Primul meu script in PHP!
Primul meu script in PHP!
7 e numar prim!

În PHP variabilele sunt marcate cu un $, urmat de numele variabilei. În variabilă am un string identic cu cel din functia echo. Notația cu punct, de la nivelul primei instrucțiuni echo reprezintă operația de concatenare. În felul acesta, adăugăm după textul din $text un line-break.

Un alt aspect important este modul de definire al variabilelor. Spre deosebire de Java, C sau C++, PHP e dynamic-typed, adică doar la momentul executării script-ului PHP se cunoaște tipul variabilei. Acest lucru este important, iar adesea, o convenție de nume a variabilelor se adoptă atunci când scriem cod PHP, pentru a compensa lipsa tipurilor. Din acest motiv și codul poate fi mai expus riscurilor deoarece nu se poate verifica consistența datelor decât la run-time.

Atentie!

În PHP ghilimelele au un rol important! Ghilimele vor printa continutul variabilelei (stringul), iar apostroafele vor printa numele variabilelei.
[cc lang=”php” escaped=”true”]
<?php
$culoare = “rosii”;
echo “Trandafirii sunt $culoare”;
echo “<br />”;
echo ‘Trandafirii sunt $culoare’;

//Trandafirii sunt rosii
//Trandafirii sunt $culoare

?>[/cc]
Comentariile
Ca in orice limbaj de programare comentariile sunt utilizate pentru a furniza date aditionale programatorului sau userului si nu sunt citite de catre browsere.
[cc lang=”php” escaped=”true”]
<?php
//Acesta este un comentariu

/*
Acest este un bloc mai lung de comentarii.
Se utilizeaza mai rar din motive practice.
*/
?>[/cc]

2.Operatorii

Operatorii sunt simbolurile matematice utilizate pentru a modifica anumite valori. Nu voi enunța sau descrie toti operatorii fiindca există o groază de website-uri ce fac o descriere amănunțită la acestea, ca W3Schools.

 

3.PHP if…else

Instrucțiunea condițională este desigur și în PHP. La modul general, o instrucțiune condițională este locul unde fluxul programului se ramifică.

if (conditia) {codul ce va fi executat daca coditia este adevarata}
[cc lang=”php” escaped=”true”]
<?php
$var1=1;
$var2=2;

//Verificăm daca variabilele sunt egale
if ($var1==$var2){
echo “Cele doua variabile sunt egale!”;
}
//Daca nu sunt egale afișează mesajul
else {
echo “Cele doua variabile sunt diferite!”;
}
?>[/cc]
Codul de mai sus verifica daca variabila $var1 este egală cu $var2. Știm că $var nu este egală cu $var2 așa că se va afișa mesajul “Cele doua variabile sunt diferite!”. Pentru a verifica dacă cele două variabile sunt egale am utilizat operatorul “==”. Utilizarea acoladelor este optională, dar vă recomand să le utilizati tot timpul, fiindcă te ajută să delimitezi unde se termină fiecare declarație, în special când vrei structuri de genul.
[cc lang=”php” escaped=”true”]
if (conditie 1) {
//Daca e îndeplinită condiția 1 execută alta conditie
if(conditie 2) {
//Executa conditia 2 daca este adevarata conditia 1
}
else {  //Afiseaza un mesaj  }
}
else {//Afiseaza un mesaj}[/cc]

 

4. Funcțiile în PHP

Adevărata putere a PHP-ului vine din funcțiile sale. PHP vine cu peste 700 de funcții incluse, ce pot fi chemate, dupa declararea lor, oriunde în pagină.
[cc lang=”php” escaped=”true”]
<?php
//Cream o functie cu numele “nume”
function nume() {
echo “Stefanescu Marian”;
}
echo “Numele meu este “;
//Chemam functia – Nu este necesar sa adaugam $ fiindca deja este declarata
nume();
?>[/cc]
Alt exemplu ce ilustrează o funcție simplă ce calculează suma dintre două numere. Variabila totală calculează suma celorlalte două.
[cc lang=”php” escaped=”true”]
<?php
function suma($x,$y) {
$total=$x+$y;
return $total;
}

echo “1 + 16 = ” . suma(1,16);
?>[/cc]

 

5.Formularele în PHP

În PHP, te vei întâlni adesea de formularele HTML. Acestea sunt de o importanță majoră fiindcă cu ajutorul lor userul poate comunica cu server-ul prin diferite metode. Am ieși din sfera acestui tutorial dacă am trata protocolul HTTP, dar este important de reținut că PHP oferă suport nativ pentru funcțiile implementate în protocolul HTTP.

Să luăm ca exemplu formularul prin care puteți pune comentarii pe acest website. Odată ce ai scris un comentariu și dai submit, prin intermediul protocolului HTTP, o cerere de tip POST se trimite la server. Serverul, prin intermediul unui serviciu intermediar(Apache de ex.), preia această cerere și o trimite la PHP engine. Acesta are suport nativ pentru cererile de tip POST, preia informațiile din această cerere și le prelucrează mai departe. În cazul de față, va stoca conținutul comentariului într-o bază de date MySQL, de pe server. La un moment ulterior, când încarci din nou pagina pe care ai adăugat comentariul, PHP se folosește de ID-ul postării pentru a selecta din baza de date toate informațiile legate de postare(post + comentarii + metadate etc.). Dar să revin…

  1. Creati o nouă filă PHP și salvați-o ca formular.php
  2. Copiați codul de mai jos

[cc lang=”php” escaped=”true”]
<html>
<body>
<form action=”forme.php” method=”get”>
Nume: <input type=”text” name=”nume” />
Varsta: <input type=”text” name=”varsta” />
<input type=”submit” />
</form>
</body>
</html>[/cc]
Formularul de mai sus va fi executat în forme.php, adica chiar în fișierul în care este scrisă, iar metoda prin care se vor lua informațiile va fi GET. Asa că în exemplul următor vom utiliza funcția globală GET pentru a prelua informația din formular ca mai apoi să o afișăm utilizatorului.
[cc lang=”php” escaped=”true”]
<html>
<body>
<form action=”forme.php” method=”get”>
Nume: <input type=”text” name=”nume” />
Varsta: <input type=”text” name=”varsta” />
<input type=”submit” />
</form>
Buna <?php echo $_GET[“nume”]; ?>.<br />
Ai <?php echo $_GET[“varsta”]; ?> ani!

</body>
</html>[/cc]
Dacă de exemplu ai introdus în formular Andrei și 99 de ani, vei vedea:

Buna Andrei.
Ai 99 ani!

Dacă observi am dat câmpurilor numele “nume”, respectiv “varsta”. Funcția GET va prelua informața din câmpul cu numele specificat, ca apoi să arate informațiile introduse utilizatorului. Totuși, funcția GET nu ar trebui să fie utilizată pentru texte foarte mari, mai mari de 2000 de caractere și nici pentru trimiterea unor informații confidențiale.

Exemplul de mai sus se va vedea în browser ca:

http://localhost/formular.php?nume=Andrei&varsta=15

Acelasi principiu este valabil și pentru o formularul unde ai vrea să inserezi o parolă. Vei putea vedea conținutul câmpurilor în URL, lucru periculos, în special dacă ești ți-e calculatorul virusat și este vreun mic progrămel care face screen recording și trimite pe undeva asta. De aceea, la crearea formularelor web, funcția GET se va utiliza foarte rar, fiind înlocuita de cea POST. GET este utilă în elemente dinamice ce țin de comportamentul general al site-ului și nu depind în vreun fel de input din partea user-ului.

Funcția POST se utilizează pentru a prelua informatiile dintr-un formular, dar cu câteva diferențe importante totuși:

  • Informația trimisă prin metoda POST nu afectează URL-ul paginii
  • Dimensiunea maximă a conținutului ce poate fi trimis este de 8MB, dar această valoare poate fi schimbată din php.ini(post_max_size).

[cc lang=”php” escaped=”true”]
<html>
<body>
<form action=”forme.php” method=”post”>
Nume: <input type=”text” name=”nume” />
Varsta: <input type=”text” name=”varsta” />
<input type=”submit” />
</form>
Buna <?php echo $_POST[“nume”]; ?>.<br />
Ai <?php echo $_POST[“varsta”]; ?> ani!

</body>
</html>[/cc]
Comparativ cu exemplul de la funcția GET, am modificat doar metoda prin care se trimite informația (method=”post”) și funcția în sine. Rezultatul va fi același, dar după ce ai apăsat pe submit în URL va apărea:
http://localhost/forme.php

Leave a comment

Your email address will not be published. Required fields are marked *

Send this to a friend