01_modul_1

Upload: nicolae-stan

Post on 12-Oct-2015

4 views

Category:

Documents


0 download

TRANSCRIPT

13

13

Partea 1:

Scrierea programelor PHP elementare

Modulul 1

Crearea programelor PHP

Scopuri

nvai s creai un script PHP

nvai s scriei instruciuni PHP care trimit text la un browser Web

nvai s documentai un script PHP

nvai s ncrcai un script PHP ntr-un server prin intermediul protocolului FTP

nvai s executai un script PHP

In acest modul vei nva modul de creare i de executare a programelor PHP. Dac PHP nu este instalat n sistemul dumneavoastr, nu suntei pregtit pentru a rula programele PHP demonstrative prezentate n acest modul. nainte de a rula programele prezentate, trebuie s instalai i s testai limbajul PHP respectnd instruciunile date n Anexa B.

Crearea unui script PHP

Un script PHP poate fi foarte simplu sau foarte complex. Totui, crearea chiar i a unui script PHP complex este extrem de simpl, necesitnd numai un editor de texte obinuit. In aceast seciune, vei nva s creai scripturi PHP simple, care

14

trimit unui browser Web date de ieire sub form de text. De asemenea, vei nva s v documentai scripturile, astfel nct dumneavoastr i alte persoane s putei nelege rapid scopul i structura acestora.

Scrierea scripturilor PHP

Pentru a crea scripturi PHP, majoritatea programatorilor PHP folosesc un editor de texte obinuit. Putei folosi orice editor de texte dorii. Sub Microsoft Windows, programatorii PHP folosesc frecvent programul Windows Notepad. Dac preferai, putei folosi WordPad sau chiar un procesor de texte, precum Microsoft Word. Totui, dac folosii un instrument diferit de Notepad, trebuie s luai msuri pentru a salva scriptul dumneavoastr sub form de document text; n caz contrar, fiierul script conine informaii de formatare care vor deruta serverul PHP.

Dac folosii UNIX sau Linux, putei crea scripturi PHP folosind un program precum vi, emacs sau pico. Programul n sine nu conteaz, atta vreme ct poate crea fiiere text ASCII.

Scrierea scheletului programelor PHP

Fiecare program PHP include dou linii speciale, care indic serverului PHP c textul cuprins ntre cele dou linii este alctuit din instruciuni PHP. Practic, aceste linii pot fi asimilate copertelor unei cri, care pstreaz unitatea programului dumneavoastr PHP.

Pentru a ncepe s scriei un program PHP, lansai editorul dumneavoastr de texte preferat i introducei urmtoarele dou linii n spaiul de lucru al editorului:

ntrebare: Cnd scriu programe n C, folosesc un mediu integrat de dezvoltare (IDE*) precum Microsoft Visual C++, care reprezint o gazd a unor caracteristici speciale, care simplific proiectarea, codificarea i testarea programelor. Exist medii de tip IDE pentru PHP?

Rspuns: Unele editoare de texte, precum vi, asigur un suport special pentru scrierea programelor PHP. De exemplu, caracteristica de colorare a elementelor de sintax, prezent n vi, determin scrierea diferitelor elemente ale programelor PHP n culori diferite. Muli programatori PHP sunt de prere c procedeul de colorare a elementelor de sintax faciliteaz depistarea erorilor din programele proprii.

*Abreviere de la Integrated Development Environment. - N.T.

15

Unele editoare de texte, precum HomeSite al firmei Allaire, asigur colorarea elementelor de sintax i alte caracteristici care vin n sprijinul programatorilor PHP, precum manualele on-line i constructorii de expresii. Cu toate acestea, cnd nvai s scriei programe PHP, probabil c vei gsi utilizarea unui editor de texte obinuit mai simpl dect folosirea unui editor echipat cu funcionaliti PHP speciale, n caz contrar, o bun parte din timpul dumneavoastr va fi alocat nvrii modului de utilizare a instrumentului respectiv, nu scrierii programelor PHP n sine. Dup ce vei cpta experien n scrierea programelor PHP, trebuie s examinai instrumente care v pot ajuta n activitatea dumneavoastr. In acel moment, consultai lista editoarelor PHP, disponibil n Web la adresa http: / / www.itworks .demon. co .uk/phpeditors .htm.

Apoi, salvai scriptul dumneavoastr elementar sub form de fiier text, cu un nume care respect urmtoarele reguli:

Numele fiierului trebuie s fie alctuit numai din caractere minuscule, cifre i liniue. Utilizarea spaiilor i a altor caractere este interzis.

Extensia numelui fiierelor trebuie s fie . php.

Asigurai-v c ai ales un nume semnificativ, care s descrie funcia scriptului dumneavoastr, astfel nct s-l putei identifica rapid dup sptmni sau chiar luni de la crearea acestuia. Vei descoperi c liniuele sunt utile pentru separarea cuvintelor care alctuiesc numele fiierului, mrind astfel lizibilitatea acestuia. De exemplu, un fiier care conine un script PHP ce v permite s vizualizai nivelurile stocurilor aflate pe inventar poate primi numele niveluri-stoc.php. Chiar i la mult timp dup crearea fiierului respectiv, nu vei avea probleme n a determina scopul acestuia.

ntrebare: Aceste reguli de denumire a fiierelor par a avea un caracter deosebit de limitativ. Nu pot folosi i alte caractere pentru denumirea fiierelor care conin scripturi PHP?

Rspuns: Ba da, putei. Dar utilizarea altor caractere v poate provoca necazuri. De exemplu, numele de fiiere din Microsoft Windows nu sunt sensibile la diferena ntre majuscule i minuscule, n timp ce numele de fiiere din UNIX prezint aceast sensibilitate. De asemenea, majoritatea sistemelor de operare prescriu reguli de denumire a fiierelor care difer de regulile pe care trebuie s le respecte adresele Web (URL). Putei evita problemele care apar datorit acestor diferene folosind numai litere minuscule, cifre i liniue n numele fiierelor care conin scripturi PHP.

16

Crearea datelor de ieire pentru un browser WebProgramele PHP execut trei categorii de operaii elementare:

Obin date de la un utilizator.

Execut prelucrri ale datelor, respectiv obin accesul la datele stocate n fiiere i baze de date i le manipuleaz.

Afieaz date astfel nct un utilizator s le poat vizualiza.

Primele dou operaii sunt oarecum mai dificil de realizat dect cea de-a treia. Totui, afiarea datelor astfel nct acestea s fie vizibile utilizatorului este o operaie foarte simpl.

Aa cum paragrafele unui text scris sunt compuse din propoziii, programele PHP sunt alctuite din instruciuni. Regulile care controleaz formarea propoziiilor scrise n limba englez se numesc sintax.* Acelai termen este folosit i pentru a desemna regulile care guverneaz formarea instruciunilor PHP.

Iat o reet" sintactic pentru crearea instruciunii PHP care trimite date de ieire la un browser Web, astfel nct acestea s fie vizibile pentru un utilizator. Aceast instruciune se numete instruciune de reflectare:**

echo(scriei aici un text oarecare);

Observai c instruciunea ncepe de la cuvntul echo i se ncheie cu un caracter punct i virgul. Parantezele i ghilimelele duble se folosesc pentru delimitarea unei expresii de tip text, n cazul nostru scriei aici un text oarecare, care apare la mijlocul instruciunii. Aa cum este indicat prin caracterele scrise cursiv, n locul propoziiei scriei aici un text oarecare putei plasa aproape orice text. Totui, pentru moment, trebuie s includei numai litere, cifre, spatii i semne de punctuaie folosite n

Rspunsuri la test:

Nu; conine litere scrise cu majuscule

Nu; conine liniue de subliniere

Nu; extensia fiierului trebuie s fie . php

Da

*Definiia sintaxei este valabil pentru orice limb, nu numai pentru limba englez - N.T.

**n original echo statement - N.T.

17

alfabetul latin, precum virgula, caracterul punct i virgul, punctul, semnul de ntrebare i semnul exclamrii. De asemenea, putei include caracterele < >, folosite pentru delimitarea etichetelor HTML, respectiv caracterul /, folosit pentru a indica membrul de nchidere al unei perechi de etichete HTML.

De exemplu, iat o instruciune PHP care are drept date de ieire un fragment dintr-un vers din Scrisoarea a III-a de Eminescu:*

echo( Iat vine-un sol de pace);

Perechea de etichete H2 determin formatarea datelor de ieire ca titlu HTML de nivel 2.

ntrebare: Nu exist nici o posibilitate de a include caractere speciale (cum ar fi caracterul ghilimele duble) ntr-o instruciune de reflectare?

Rspuns: Dac includei caractere speciale n textul pe care l folosii efectiv, putei avea probleme. De exemplu, dac ncercai s includei n text un caracter de tip ghilimele duble, vei deruta serverul PHP, deoarece acesta se ateapt ca ghilimelele duble s apar numai la nceputul, respectiv la sfritul textului, nu i n interiorul textului. PHP furnizeaz modaliti speciale de evitare a acestei probleme; vei nva despre ele n Modulul 2.

Documentarea unui script PHP

n afar de a furniza nume descriptive fiierelor care conin scripturile dumneavoastr PHP, trebuie s includei n fiecare script att comentarii care s permit unui cititor s determine cu uurin utilitatea scriptului, ct i alte informaii referitoare la script. De exemplu, putei include un comentariu care precizeaz numele

*Text adaptat.n original se face trimitere la un eveniment din istoria Statelor Unite, puin relevant pentru cititorul romn. N.T. Rspunsuri la test:

echo ("PHP") sau similar

echo("Bill McCarty") sau similar

18

fiierului care conine scriptul, astfel nct acesta s apar n versiunile tiprite ale scriptului.

Iat un model sintactic pentru comentariile PHP:

//Scriei aici comentariul dumneavoastra

Dup cum se poate vedea, un comentariu ncepe cu dou caractere slash, urmate de un spaiu. n continuare, linia conine comentariul dumneavoastr, care poate include orice caractere dorii, inclusiv caractere speciale.

Iat un exemplu simplu de script PHP care include comentarii:

ntrebare: Ce se ntmpl dac doresc s creez un comentariu PHP care se extinde pe mai multe linii? Cum trebuie s procedez?

Rspuns: O modalitate de a crea un comentariu PHP pe mai multe linii este de a ncepe fiecare linie cu ajutorul caracterelor //. Totui, putei crea un comentariu din mai multe linii i n alte moduri, dac preferai. Iat un exemplu:

/*

Acesta este un comentariu pe mai multe linii. Poate fi alctuit dintr-un numr orict de mare de linii.

*/

Pentru a ncepe un comentariu alctuit din mai multe linii, scriei caracterele /*, iar pentru a ncheia comentariul, scriei caracterele */. Intre cele dou perechi de caractere, putei scrie orice text dorii, folosind oricte linii dorii.

Rspunsuri la test:

// Bill McCarty

/*

Strada X nr. 123 Ora Y, PA 12345 */

19

Executarea unui script PHP

Dup ce ai creat un script PHP, vei dori s-1 executi. Dac nu v-ai creat scriptul PHP pe un server unde este instalat PHP, mai nti trebuie s v ncrcai scriptul ntr-un server. In aceast seciune, vei nva s ncrcai i s executai scripturile PHP.

ncrcarea unui script PHP

Probabil c vei avea nevoie de ajutor la ncrcarea unui script PHP, deoarece modul n care vei proceda depinde de metoda de obinere a accesului la server i de modalitatea n care administratorul de sistem a configurat serverul. Trebuie s luai legtura cu administratorul de sistem al serverului dumneavoastr i s afli care este modul de ncrcare a scriptului dumneavoastr. Pentru a v ajuta s nelegei rspunsul administratorului de sistem, aceast sub-seciune descrie unele situaii comune care apar la ncrcarea scripturilor.

Dac obinei accesul de la distant la un server Linux sau UNIX prin intermediul protocoalelor Telnet sau SSH, nici mcar nu este necesar s v ncrcai scriptul; nu trebuie dect s creai scriptul n catalogul adecvat indicat de administratorul dumneavoastr de sistem. Dac folosii un server Microsoft Windows situat n aceeai reea local ca i staia dumneavoastr de lucru, atunci este posibil ca administratorul de sistem s fi alocat o partiie de fiiere n acest scop. n acest caz, ncrcarea scriptului PHP se reduce la copierea fiierului care conine scriptul dumneavoastr n server prin tragerea i plasarea fiierului n partiia de fiiere furnizat.

Dac serverul Windows, UNIX sau Linux nu se afl n reeaua dumneavoastr local, probabil c vei folosi un program precum FTP pentru a ncrca scriptul. n vederea ncrcrii scriptului dumneavoastr prin intermediul protocolului FTP, solicitai administratorului de sistem urmtoarele informaii:

Numele gazdei serverului

Identificatorul dumneavoastr de utilizator i parola pentru deschiderea sesiunii de lucru prin intermediul protocolului FTP

Catalogul n care trebuie s se gseasc scripturile dumneavoastr PHP

Localizatorul uniform de resurse (URL) pe care trebuie s-1 folosii pentru a obine acces la scripturile dumneavoastr.

Pentru a facilita ncrcarea scriptului dumneavoastr, poate c preferai s folosii un client FTP grafic. Putei gsi programe client FTP gratuite, n sistem shareware sau contra cost n arhive de programe, precum http://www.tucows.com. Clientul WS_FTP este un program client FTP foarte popular, adecvat pentru ncrcarea scripturilor dumneavoastr. Dac folosii un program client FTP grafic, ncrcai fiierul prin respectarea instruciunilor distribuite o dat cu programul client.

20

Dac preferai utilizarea programelor n linie de comand, putei folosi clientul FTP inclus n Microsoft Windows, UNIX sau Linux. Programele client existente n fiecare platform funcioneaz n moduri mai mult sau mai puin asemntoare, deci aceleai instruciuni se aplic pentru majoritatea platformelor. Iat care este modul de ncrcare a fiierului dumneavoastr.

1. Dac folosii Windows, lansai o fereastr de comand MS-DOS.

2. Folosii comanda cd pentru a v deplasa n catalogul care conine scriptul dumneavoastr.

3. Emitei comanda

ftp gazda gazda este numele gazdei serverului PHP

4. Ca rspuns la solicitarea identificatorului dumneavoastr de utilizator, introducei identificatorul de utilizator furnizat de administratorul dumneavoastr de sistem.

5. Ca rspuns la solicitarea parolei dumneavoastr, introducei parola furnizat de administratorul dumneavoastr de sistem.

6. Folosii comanda cd pentru a v deplasa n catalogul n care trebuie ncrcat scriptul dumneavoastr.

7. Emitei comanda

Put script script este numele fiierului care conine scriptul

8. Emitei comanda quit.

Iat un exemplu de sesiune FTP care folosete un program client i un server Linux. Dac folosii o alt platform, datele dumneavoastr de ieire vor avea un alt aspect.

Cd/home/bmccarty/scripts

$ ftp ftp.osborne.comconnected to ftp.osborne.com.

220 ftp.osborne.com FTPserver (version wu-2.6.0(1)

Wed Joule 26 15:29:19 PDT 2001) ready.

Name (ftp:bmccarty): bmccarty

331 Password required for bmccarty.

Password: xxxxxxxx

230 User bmccarty logged in.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> cd public_html

250 CWD command successful.

ftp> put test-script.php

local: test-script.php remote: test-script.php

200 PORT command siccessful.

150 Opening BINARY mode data connection for test-script.php.

226 Transfer complete.

34 bytes sent in 0.000446 secs (74 Kbytes/sec)

ftp>quit

221-You have transferred 34 bytes in 1 files.

221- Total traffic for this session was 498 bytes in 1 transfers.

221- Thank you for using the FTP service on ftp.osborne.com.

221 Goodbye.

$

21

ntrebare:Exist i alte modaliti de ncrcare a scripturilor, n afar de partiiile de fiiere Windows i protocolul FTP?

Rspuns: Da, exist numeroase alte modaliti. Uneori, administratorii sistemelor UNIX i Linux le configureaz pe acestea de aa manier nct s v permit s ncrcai scripturi prin intermediul sistemului de fiiere de reea (Network File System - NFS). Unii administratori de sistem furnizeaz pagini Web speciale pe care le putei folosi pentru ncrcarea scripturilor. Dac un server furnizeaz serviciul Secure Shell Service (SSH), putei folosi programul scp pentru a v ncrca scripturile. Aceasta este o metod deosebit de bun, deoarece v protejeaz sesiunea de lucru i datele pe care le transferri mpotriva spionilor" din reea. Transferurile executate cu ajutorul protocolului FTP, de exemplu, trimit identificatorul de utilizator i parola dumneavoastr sub form de text n clar", nu n form codificat, ceea ce poate duce la o bre a securitii sesiunii de lucru.

Executarea unui script

Dup ce v-ai ncrcat fiierul care conine scriptul, suntei pregtit pentru a obine accesul la acesta. Lansai-v browserul Web preferat i deschidei adresa URL asociat scriptului dumneavoastr. Adresa URL trebuie s fie alctuit din adresa URL identificat de administratorul dumneavoastr de sistem, urmat de un slash (/), urmat de numele fiierului care conine scriptul dumneavoastr. Dac adresa URL identificat de administratorul dumneavoastr de sistem se ncheie deja cu un caracter slash, nu trebuie s mai inserai nc un asemenea caracter nainte de numele scriptului dumneavoastr.

De exemplu, s presupunem c dorii s obinei accesul la scriptul dumneavoastr ncrcat, denumit test-script.php. Dac administratorul dumneavoastr de sistem a identificat http://www.osborne.com/-bmccarty ca adres URL a catalogului care conine scripturile dumneavoastr PHP, putei obine accesul la scriptul dumneavoastr prin intermediul adresei URL http://www.osborne.com/-bmccarty/ test-script.php. Dac administratorul dumneavoastr de sistem a identificat http:// www.osborne.com/-bmccarty/ ca adres URL a catalogului care conine scripturile dumneavoastr PHP, putei obine accesul la scriptul dumneavoastr prin intermediul aceleiai adrese URL ca aceea prezentat anterior.

Dac ai tastat corect adresa URL a scriptului dumneavoastr, iar scriptul respectiv nu conine erori, vei vedea datele de ieire ale scriptului dumneavoastr. Felicitri! Ai devenit programator PHP!

22

Proiectul 1-1: Un prim script PHP

n cadrul acestui proiect, vei crea si vei executa un script PHP simplu. Pentru a finaliza proiectul, trebuie s avei acces la un server care accept PHP i ncrcarea fiierelor prin intermediul protocolului FTP.

Crearea unui script PHP

ncrcarea scriptului PHP ntr-un server

Executarea scriptului PHP

Pas cu pas

1 . Folosind un editor de texte, creai un script PHP simplu, care trimite date de ieire sub form de text la un browser Web. Salvai scriptul ntr-un fiier denumit p-1 -1 .proj. Dac preferai s folosii iniial un script ambalat, putei utiliza urmtorul script: