Unelte de baza
Crearea unor pagini dinamice la un nivel performant, precum si punerea lor in functiune, nu poate fi facuta fara anumite programe. Iata cam de ce aveti nevoie:
Browsere - Pentru testarea paginilor este nevoie de mai multe browsere pentru ca nu toate afiseaza acelasi rezultat si este neprofesional sa obligati vizitatorul sa foloseasca un anumit browser doar pentru ca pagina facuta de voi arata si merge mai bine cu acel browser. Deci va recomand sa instalati 2-3 browsere.
Serverul web pentru teste - Daca lucrati cu php-mysql sub windows, sigur aveti nevoie de triada apache-php-mysql sa fie instalata pe calculatorul local. Pentru asta aveti 2 posibilitati: prima ar fi sa downloadati de pe pagina producatorului fiecare aplicatie in parte si sa o instalati manual, urmand apoi sa faceti configurarea manual (lucru nerecomandat incepatorilor) si a doua varianta sa descarcati un program care instaleaza toate acestea gata configurate pe calculator urmand ca voi doar sa va apucati de lucru. Astfel de aplicatii sunt EasyPHP de exemplu (pentru 95,98 dar merge si pe 2000 si xp) si recomandarea mea WAMP5 care merge doar pe windows NT (adica win 2000, xp, 2003, longhorn etc) dar care are multe alte facilitati in plus fata de EasyPHP pe care cu timpul cand veti invata mai multe despte php si mysql o sa le considerati foarte utile.
Editoare web - Asa... Dupa ce ati instalat serverul web si browserele acum va mai trebuie un editor bun pentru a scrie cod si a vizualiza paginile create. Pentru asta recomandarea mea este suita Macromedia (Dreamweaver MX). Puteti descarca Dreamweaver (pentru a scrie cod si a vedea paginile in timp real) de la ei de pe site si tot de la ei va mai recomand Fireworks (daca va ocupati si cu desing-ul paginilor aceasta aplicatie va este utila impreuna cu Adobe Photosop sau Corel Draw) si Flash (daca doriti sa faceti animatie pentru site) Desigur sunt o multime de programe care fac aceleasi lucruri cu ce va recomand eu, dar daca doriti sa deveniti profesionisti recomand sa lucrati cu unelte de profesionisti. Bineinteles ca puteti scrie cod si in Notepad si desena in Paint dar aplicatiile pe care vi le-am recomandat va usureaza extraordinar de mult munca si va semnaleaza rapid erorile din pagini.
Despre PHP
PHP este limbajul ideal pentru construirea de pagini web dinamice. Este usor de invatat, open-source, poate fi rulat pe mai multe platforme si se poate conecta la mai multe tipuri de baze de date. Cel mai important aspect al limbajului este insa posibilitatea de a fi imbricat cu cod HTML. Putem astfel crea pagini HTML statice si din loc in loc, acolo unde este nevoie, sa introducem dinamism cu ajutorul PHP.
Limbajul PHP s-a "nascut" in 1994 din nevoia lui Rasmus Lerdorf de a afla cate persoane ii viziteaza CV-ul online. El a denumit setul de scripturi create PHP, acronimul pentru Personal Home Page. Pe parcursul urmatorilor trei ani limbajul a evoluat dar adevaratul succes a inceput sa il cunoasca de cand Zeev Suraski si Andi Gutmans au rescris motorul PHP de la cap la coada, motor care poarta din versiunea 4 a PHP numele Zend, o combinatie de litere din prenumele creatorilor sai: Zeev si Andi.
Fiind open-source, PHP beneficiaza de suport activ din partea comunitatii online, acesta fiind si motivul cresterii explozive a numarului site-urilor bazate pe PHP.
Interpretorul PHP este cel mai cunoscut limbaj de scripting folosit in acest moment pentru crearea site-urilor Web interactive. Denumirea este un "acronim recursiv" pentru Hypertext PreProcessor. Diferenta esentiala fata de alte limbaje de scripting (gen JavaScript) este faptul ca PHP este un interpretor server-side (operatiile sunt executate de catre server si nu pe calculatorul utilizatorului). Pentru a putea testa pagini PHP aveti nevoie de un server de web (Apache) si de pachetul PHP instalat.
PHP permite folosirea unor elemente specifice limbajelor de programare. Iesirea standard a script-ului PHP devine intrarea standard pentru programul de navigare care vizualizeaza pagina. Asadar, la iesirea standard poate fi scris (de exemplu, prin intermediul comenzii echo) orice tip de cod HTML, acesta fiind interpretat de catre borwser.
Pe langa manipularea continutului paginilor de web, PHP poate trimite headere HTTP pentru autentificare, seta cookie-uri sau redirectiona utilizatorii. Mai mult, cu ajutorul bibliotecilor externe de functii poate parsa fisiere XML, crea si manipula imagini, animatii Shokwave Flash, PDF-uri sau se poate conecta la un server de mail, iar acestea sunt doar cateva din functiile pe care le poate indeplini.
Interpretorul PHP parcurge documentul accesat pana in momentul in care intalneste un marcaj de deschidere care indica faptul ca textul care urmeaza trebuie interpretat ca fiind cod PHP. In continuare, textul este interpretat ca fiind cod PHP pana in momentul in care este intalnit marcajul de inchidere. Intreg textul care nu este interpretat ca fiind cod PHP este furnizat la iesire in forma in care a fost primit ca intrare de catre interpretor. Exista mai multe marcaje care indica inceperea unei secvente de cod PHP, dar doar doua dintre ele sunt folosite de obicei. Daca dorim ca documentul sa respecte specificatiile XML, atunci singura posibilitate de inserare a codului PHP este folosirea unei secvente de tipul:
<?php
//cod PHP
?>
Cea de-a doua posibilitate este utilizarea marcajului <SCRIPT> intr-o maniera asemanatoare celei folosite pentru includerea de script-uri JavaScript. Sintaxa este urmatoarea:
<SCRIPT language = "php">
//cod PHP
</SCRIPT>
Exista alte doua posibilitati, dar acestea sunt folosite rar, in situatii particulare.
Este permisa "iesirea" si "intrarea" in "modul PHP" de oricate ori este necesar in pagina. Aceasta este util cand se lucreaza cu texte de mari dimensiuni.
Pentru ca instructiunile PHP sa fie interpretate corect, acestea trebuie separate prin caracterul ';'.
In PHP, comentariile pot fi inserate folosin sintaxele din C, C++ si shell-urile Unix. Aparitia secventei de caractere '//' sau a caracterului '#' indica faptul ca restul liniei reprezinta un comentariu. Pentru a insera comentarii pe mai multe linii, acestea trebuie delimitate de secventa '/*' la inceput si de secventa '*/' la sfarsit.
Variabile in PHP
Programarea de orice fel, nu doar PHP, are doua elemente de baza: datele si instructiunile. Pentru a lucra cu datele trebuie sa intelegem ce sunt variabilele si tipurile iar pentru a lucra cu instructiuni trebuie sa aflam ce sunt structurile de control si functiile.
O variabila este o zona de memorie caruia i se da un nume pentru a putea fi recunoscuta ulterior si pentru a ne putea referi mai tarziu la ea.
In PHP, o variabila este reprezentata de semnul '$', urmat de numele variabilei. La fel ca in limbajele C/C++ sau Java, pentru denumirea variabilelor se face distinctia intre literele mari si literele mici.
Numele unei variabile poate incepe cu o liniuta de subliniere '_' sau o litera. Restul caracterelor care formeaza numele variabilei pot fi litere, cifre sau liniute de subliniere. In PHP, sunt considerate litere toate caracterele cuprinse intre 'a' si 'z', cele cuprinse intre 'A' si 'Z', precum si cele care au codul ASCII cuprins intre 127 si 255.
Incepand cu versiunea 4, au fost introduse referintele; astfel, o variabila poate referi o alta, astfel incat modificarea valorii uneia duce la modificarea automata a valorii celeilalte. O referinta la o variabila este reprezentata de caracterul '&'. Iata un scurt exemplu:
Scriptul php
<?php
$a = "PHP4 e slab";
$b = &$a;
$b = "PHP4 e foarte bun";
echo $a;
echo "<BR>";
echo $b;
?>
Rezultatul scriptului
PHP4 e foarte bun
PHP4 e foarte bun
Dupa cum se vede, modificarea valorii variabilei $b a dus automat la modificarea automata a valorii variabilei $a.
Sa disecam codul pentru a invata cateva lucruri:
- toate instructiunile PHP se termina cu punct si virgula. Omiterea semnului ; este cea mai frecventa greseala pe care o fac programatorii incepatori.
- codul PHP incepe intotdeauna cu "<?php" si se termina cu "?>". El poate fi imbricat cu cod HTML dupa cum puteti vedea in exemplul de mai sus. Puteti chiar crea pagini HTML fara pic de cod PHP in ele si sa le dati extensia php. Atata vreme cat parser-ul PHP nu "vede" tagurile "<?php...?>", el va trimite pagina neschimbata catre server.
- putem pune diacritice in cadrul unui string insa pentru ca browserul sal e afiseze corect va trebui sa specificam in <head> setul de caractere folosit, la fel ca intr-un document HTML.
- valoarea unei variabile poate fi schimbata dupa necesitati (asa cum am schimbat valoarea lui $a) sau ea va fi schimbata automat in functie de celelalte variabile de care depinde.
Variabile predefinite in PHP
$GLOBALS - pot fi accesate toate variabilele globale care sunt accesibile script-ului PHP curent; acest vector este indexat chiar prin numele variabilelor globale.
$SERVER - contine o serie de variabile ale caror valori sunt setate de server-ul web; majoritatea valorilor variabilelor din acest vector depind de mediul de executie al script-ului curent.
$_GET si $_POST contin variabile primite de script prin intermediul unor transferuri care folosesc metodele HTTP get, respectiv post. De exemplu, prin intermediul acestor vectori pot fi accesate valorile campurilor dintr-un formular care a fost completat si transmis folosind una dintre cele doua metode.
$_COOKIE contine valorile variabilelor care contin informatii referitoare la cookie-urile pastrate pe calculatorul utilizatorului care acceseaza pagina web.
$_FILES contine variabile primite de script prin intermediul incarcarilor de fisiere prin metoda post.
$_ENV contine variabile disponibile prin intermediul mediului in care este executat.
$_REQUEST contine variabile disponibile prin intermediul oricarui tip de mecanism cu ajutorul caruia utilizatorul poate introduce date.
$_SESSION contine variabile care corespund sesiunii curente a script-ului.
Domeniul de vizibilitate al variabilelor PHP
In PHP o variabila poate fi accesata doar in contextul in care a fost definita. De exemplu, o variabila definita in interiorul unei functii nu va putea fi accesata decat de instructiunile din interiorul acelei functii. Mai mult, in mod implicit, o variabila definita in exteriorul unei functii nu va putea fi accesata in interiorul functiei chiar daca ea nu este redefinita in cadrul functiei.
Pentru ca o functie sa aiba acces la o variabila definita in afara ei, variabila trebuie redeclarata ca variabila globala in interiorul functiei.
Sa consideram urmatorul exemplu:
<?php
$a = 1;
function test () {
echo $a;
}
test ();
?>
Rezultatul scriptului
Eroare
Observam ca nu se afiseaza valoarea 1 deoarece instructiunea echo $a se refera la variabila locala $a care nu este definita, deci nu are nici o valoare. In continuare, este o versiune in care instructiunea echo $a va accesa variabila $a definita in afara functiei test ():
Scriptul PHP
<?php
$a = 1;
function test () {
global $a;
echo $a;
}
test ();
?>
Rezultatul scriptului
1
O a doua posibilitate de a accesa o variabila definita in afara functiei este folosirea vectorului $GLOBALS:
Scriptul PHP
<?php
$a = 1;
function test () {
echo $GLOBALS ["a"];
}
test ();
?>
Rezultatul scriptului
1
Documentarea unui script PHP
In afara de a furniza nume descriptive fisierelor care contin scripturile dvs. PHP, trebuie sa includeti in fiecare script atat comentarii care sa permita unui cititor sa determine cu usurinta utilitatea scriptului, cat si alte informatii referitoare la script. De exemplu, puteti include un comentariu care precizeaza numele fisierului care contine scriptul, astfel incat acesta sa apara in fersiunile tiparite ale scriptului. Iata un model sintactic pentru comentariile PHP:
// Scrieti aici comentariul dvs.
Dupa cum se poate vedea, un comentariu incepe cu doua caractere slash, urmate de un spatiu. In continuare, linia contine comentariul, care poate include orice caractere doriti, inclusiv caractere speciale.
O modalitate de a crea un comentariu pe mai multe linii este de a incepe fiecare linie cu ajutorul caracterelor //. Totusi, puteti crea un comentariu din mai multe linii si in alte moduri, daca preferati. Iata un exemplu:
/*
Acesta este un comentariu pe mai multe linii.
Poate fi alcatuit dintr-un numar oricat de mare de linii.
*/
Pentru a incepe un comentariu alcatuit din mai multe linii, scrieti caracterele /*, iar pentru a incheia comentariul, scrieti caracterele */ Intre cele doua perechi de caractere, puteti scrie orice text doriti, folosind oricate linii doriti.
Depanarea unui script PHP
Uneori, in locul datelor de iesire ale scriptului, puteti vedea unul din urmatoarele:
#
Textul scriptului, in loc de datele de iesire ale acestuia
#
O caseta de dialog, prin care sunteti intrebat daca doriti sa descarcati fisierul care contine scriptul.
#
Un mesaj in care se spune ca scriptul nu exista
#
Un mesaj in care se spune ca browserul web nu are permisiunea de a obtine accesul la script
#
Un mesaj in care se spune ca scriptul contine o eroare
La vizualizarea rezultatelor unui script PHP se pot produce numeroase erori, chiar daca scriptul in sine e corect. Daca vedeti textul scriptului sau o caseta de dialog prin care sunteti intrebat daca doriti sa descarcati fisierul care contine scriptul, este posibil ca extensia fisierului script sa fie incorecta sau ca serverul PHP sa nu functioneze. Desi fisierele script PHP trebuie sa aiba, in general, extensia .php, este posibil ca un administrator de sistem sa configureze un server PHP astfel incat acesta sa impuna o alta extensie de fisier.
Daca vedeti un mesaj in care se spune ca scriptul nu exista, este posibil ca sa fi tastat incorect adresa URL. Verificati daca ati tastat corect adresa URL precum si daca ati atasat corect la aceasta numele fisierului care contine scriptul, folosind un slash numai daca adresa URL nu se incheie cu un atare caracter.
Daca vedeti un mesaj in care se arata ca browserul web nu are permisiunea de a obtine accesul la script, poate ca este necesar sa modificati permisiunile fisierului script (cmod).
Daca vedeti un mesaj in care se spune ca scriptul contine o eroare, verificati daca nu au aparut urmatoarele probleme:
- O eroare de tastare, cum ar fi scrierea gresita a cuvantului echo
- O eroare de punctuatie, cum ar fi paranteze, ghilimele duble sau punct si virgula lipsa sau inserate gresit.
- Neincluderea sau includerea eronata a liniilor de delimitare a scriptului, in speta <?php si ?>
- Un marcaj de comentariu (//) care lipseste sau a fost introdus gresit.
Sirurile si caracterele speciale PHP
Spre deosebire de intregi si de numere duble, care contin cu precadere cifre, sirurile pot contine orice caracter. Ca atare, sirurile sunt utile pentru stocarea datelor care nu pot fi calculate, precum nume si adrese. De asemenea, sirurile pot fi utilizate pentru stocarea datelor numerice. Pentru a specifica un sir in PHP, caracterele care alcatuiesc sirul sunt incluse intre ghilimele duble; de exemplu, sirul reprezentand numele "Albert Einstein". Asa cum am mai spus, un sir poate contine date numerice; de exemplu , "3.141516". PHP faciliteaza includerea in siruri a unor caractere speciale, precum caracterele de salt la lini noua sau retur de car, prin furnizarea de secvente escape care reprezinta caractere speciale. Iata secventele escape folosite in PHP:
\n - salt la linie noua
\r - retur de car
\t - caracter de tabulare pe orizontala
\\ - backslash
\$ - simbolul dolarului
\" - ghilimele duble
Ca exemplu, iata un sir care include un retur de car, urmat de un salt la linie noua: "Salut! \r\n". Retineti ca fiecare secventa escape incepe cu un backslash (\). Pentru a include un backslash intr-un sir, trebuie sa folositi secventa escape adecvata, care este alcatuita din doua caractere backslash. Pentru a introduce ghilimele duble in cadrul unui sir fara a folosi secventa escape , puteti include sirul intre ghilimele simple astfel: 'Pe ea o cheama "Nikita"