Programarea Web Utilizind Limbajul PHP 11124

Embed Size (px)

DESCRIPTION

Programarea Web utilizind limbajul PHP

Citation preview

www.referat.ro

Cuprins

1Cuprins

2Summary

3Introducere

4Capitolul I. Noiuni de programare web

41.1World Wide Web

51.2Hipertextul

7Capitolul II. Limbajul PHP

72.1Introducere in PHP

72.2Evoluia limbajului, scurt istoric.

82.3Descrierea limbajului PHP:

92.3.1Structura i forma genera a unui script PHP

102.3.2Afiarea informaiilor i Variabilele

122.3.3 Tipuri de date. Conversii de tip

132.3.4Identificatori. Constante

142.3.5Operatori :

172.3.6Instruciunea condiional IF

182.3.7Cicluri

202.3.8Vectori i matrici

212.4Utilizarea Bazelor de Date MySQL folosind PHP.

212.4.1Noiuni generale, prioritile utilizrii bazelor de date in programare PHP.

222.4.2Funciile PHP pentru lucru cu baze de date MySQL

252.4.3Exemple de implimentare a funciilor PHP de lucru cu bazele de date

27Capitolul III. Dezvoltarea unei aplicaii WEB utiliznd limbajul PHP.

273.1 Obiectivele noului sistem

283.2Etapa I : Preproiectarea aplicaiei

293.3Etapa II : Proiectul tehnic

353.4Etapa III: Proiectul de lucru

413.5Etapa IV: Explotarea experimental i testarea sistemului

413.6Etapa V: Darea n exploatare a sistemului.

42Concluzie

43Bibliografie

44Anexe

Introducere

Web-ul actual a evoluat n direcia proiectrii unor situri capabile sa-i actualizeze coninutul n mod dinamic, de la or la or, care s ofere modaliti multiple de interaciune cu vizitatorul (setarea caracteristicilor paginii n funcie de preferinele utilizatorului, afiarea coninutului n funcie de necesitile informaionale ale vizitatorului, participarea la discuii n forumuri, exprimarea prerii despre un anumit subiect prin intermediul sondajelor, cumprarea de produse din magazine virtuale, e.t.c), asigurnd n acelai timp un grad ridicat de securitate (accesul pe baz de autentificare a utilizatorului prin metode sigure). Studiul limbajului PHP prezint o cale dreapt spre nelegerea i dezvoltarea algoritmilor de realizare i funcionare a siturilor dinamice.

Proiectul Programarea WEB utiliznd limbajul PHP a fost realizat n urma analizei asupra sistemului de activitate a unei firme mici care are nevoie de o pagin web pe internet.

Scopul acestei lucrari este analiza sistemului existent, structura unei pagini in functie de necesitatile unui caz concret, construirea arhitecturii noului sistem si proiectarea logic i fizic a componentelor lui. Astfel se va obine proiectarea sistemului informatic n condiiile abordrii structurate a noului sistem. Pe baza proiectului se va realiza o aplicaie utiliznd PHP i MySQL.

Pe aceast pagin se vor gsi toate informaiile despre beneficiar, documente de liceniere, coordonate personale, o colecie de prezentri ale beneficiarului in scop de reclama, si o seciune destinata dialogului intre beneficiar si vizitatorii saitului.

Prin realizarea acestei aplicaii beneficiarul va putea modifica (adaug sau terge) datele prin introducerea numelui de utilizator i parola, aduga noi prospecte si documente.

n urma analizei sistemului vor fi evideniate punctele slabe i cele forte ale tehnologiilor aplicate, se va propune o nou soluie informatic pentru mbuntirea, rezolvarea problemelor de transfer de date, ct i securizarea lor.

Larealizarea acestui proiect se vor folosi metode de proiectare a sistemelorinformatice, programarea n PHP i MySQL a aplicaiei.

Capitolul I. Noiuni de programare web

1.1World Wide Web

nainte de a purcede la programarea propriu-zis WEB, voi face cteva precizri despre semnificaia conceptului World Wide Web (ntr-o traducere aproximativ, pnz de pianjen, cu sensul de reea, extins n lumea larg). Precizrile ar putea prea inutile, dar realitatea este c dei foarte mult lume vorbete despre World Wide Web, puini tiu exact ce reprezint. Mai mult, datorit extinderii sale exponeniale i a extraordinarei sale populariti, adesea noiunea este confundat cu cea de Internet. World Wide Web este ns doar o parte a Internetului.

Internetul exist de mai bine de treizeci de ani. Bazele acestuia au fost puse la sfritul anilor 60, ca urmare a unei iniiative a Departamentului de Aprare al Statelor Unite, care avea drept scop realizarea unei reele robuste i fiabile de comunicaii ntre computere aflate la distan. Reeaua avea rolul de a asigura un contact permanent ntre elementele sale componente, chiar dac o parte din legturi ar fi fost ntrerupte ca urmare a unui atac nuclear. Ulterior, reeaua a ptruns n domeniul civil i a fost adoptat rapid, iniial de lumea academic, mai apoi de companiile comerciale.

Internetul nu este altceva dect un ansamblu alctuit dintr-un numr enorm de reele de computere interconectate, localizate pe toat suprafaa globului, care suport diverse pachete software cum ar fi e-mailul, grupurile de tiri (newsgroup), protocoalele de transfer al fiierelor (FTP), Gopher i World Wide Web. Cu toate avantajele imense oferite de posibilitile de comunicare global a informaiilor ca i de rapiditatea comunicrii, Internetul a rmas, vreme de dou decenii, doar apanajul ageniilor guvernamentale i al mediilor tiinifice. Motivul l-a constituit dezorganizarea sa iniial cvasi-total. Folosirea unor standarde de comunicaie i a unor pachete software foarte diverse reprezentau nite bariere tehnologice aproape insurmontabile pentru utilizatorii obinuii. n plus, informaiile accesibile la acea vreme pe Internet erau prezentate sub forma unor simple fiiere text i nu n forma cunoscut azi. Dezvoltarea exploziv pe care a cunoscut-o Internetul n ultimii zece ani a fost determinat de apariia World Wide Web, care este fr ndoial cel mai popular serviciu oferit de reeaua globala la perioada actual.

World Wide Web a luat natere n 1989, ca urmare a eforturilor unor fizicieni ai CERN (Laboratorul European de Fizica Particulelor) de a pune la punct un sistem standardizat pentru crearea i distribuirea documentelor electronice oriunde pe glob, sistem care s permit integrarea tuturor elementelor media: text, imagini, sunet. Aa cum dovedete imensa sa popularitate, Web-ul s-a dovedit a fi mediul ideal pentru distribuirea informaiilor ntr-o maniera extins i accesibil. Motivul l constituie faptul c Web-ul asigur o interfa hypermediapentru informaii. Hypermedia reprezint variatele tipuri de informaie (text, imagini, fiiere audio i video) care pot fi localizate oriunde pe glob, mpreun cu legturile dintre ele. Pentru a transmite i a afia informaiile hypermedia, Web-ul folosete un protocol de transfer (un set de reguli) care este numit HTTP (Hypertext Transfer Protocol, protocol de transmitere a hypertextului).

Deci, n esen, World Wide Web este o colecie imens de documente interconectate prin intermediul Internetului, care folosete protocolul HTTP pentru a afia elementele hypermedia. Pentru a accesa ori intercomunic cu aceasta baza de date, pe computerul client ruleaz aplicaii numite browsere.

1.2Hipertextul

Pentru ca informaiile s poate fi accesate n manier global i distribuit, ele trebuie stocate ntr-o form special reprezentat de hipertext. Acest termen a fost introdus de Ted Nelson n anul 1965 i se regsete i sub denumirea de text neliniar.Actualmente, definiiile hipertextului sunt diverse, acesta reprezentnd:o form de document electronic;o metod de organizare a informaiilor n care datele sunt memorate ntr-o reea de noduri i legturi, putnd fi accesat prin intermediul navigatoarelor interactive i manipulat de un editor structural.De asemenea, hipertextul denot o tehnic pentru organizarea informaiei textuale printr-o metod complex neliniar, n vederea facilitrii explorrii rapide a unei cantiti mari de date (cunotine). Pentru a vizualiza textul dintr-o asemenea de baz de date, utilizatorul se va folosi de o interfa (browser), traversnd legturile.

Un sistem hipertext (sau hipermedia) este constituit din noduri (concepte) i legturi (relaii ntre concepte). In mod uzual, coninutul unui nod se afieaz la activarea legturii. In mod uzual, coninutul unui nod se afieaz la activarea legturii. Modalitatea de stocare a informaiei n cadrul nodurilor variaz de la sistem la sistem, dar cele mai folosite tehnici utilizeaz limbajele de marcare (SGML sau, mai nou, XML), standardele actuale construite pe baza acestor limbaje fiind HyTime (Hypermedia/Time-based Structuring Language), MHEG {Multimedia and Hypermedia Information Coding Expert Group) sau HTML {HyperText Markup Language). Avantajul major este asigurarea independenei de platforma hardware i software, formatele proprietare conducnd la greuti n navigare, cutare sau ntreinere. Din moment ce nodurile pot conine informaii multimedia, sistemele hipermedia trebuie s fie suficient de flexibile pentru a suporta o multitudine de formate grafice, audio i video.Pentru a reprezenta informaia pe Web a documentelor hipertext se folosete limbajul HTML (HyperText Markup Language), considerat lingua franca a spaiului World Wide Web. Limbajul HTML are o istorie care ncepe cu publicarea n 1986 a specificaiei oficiale a meta-limbajului SGML: Information Processing - Text and Office Systems - Standard Generalized Markup Language". Trecnd prin mai multe etape de dezvoltare limbajul HTML tinde a fi nlocuit de XHTML, variant de tranziie la XML.

Editarea unui document HTML

Pentru a edita un document HTML putem folosi un editor de texte obinuit, cum ar fi

NotePad sau WordPad, parcurgnd urmtorii pai:

Pasul 1. n folderul de lucru curent creai un fiier text nou i salvai-l cu extensia html sau htm.Pasul 2. Deschidei fiierul cu un editor de texte oarecare.

Pasul 3. Introducei marcajele HTML ce definesc structura documentului. Salvai documentul.

Pasul 4. Deschidei un browser Web, scriei n bara de adrese calea ctre fiierul vostru i apsai ENTER. Navigatorul va afia interpretarea etichetelor HTML din documentul vostru.

Capitolul II. Limbajul PHP

2.1Introducere in PHP

PHP, acronim care provine din "PHP: Hypertext Preprocessor", este un limbaj de scripting utilizat pe scar larg, realizat i distribuit n sistem Open Source, care este special realizat pentru a dezvolta aplicaii web, prin integrarea codului PHP n documente HTML. Sintaxa sa provine din C, Java i Perl i este uor de nvat. Scopul principal al limbajului este acela de a scrie rapid pagini web dinamice, dar cu PHP se pot realiza mult mai multe.

PHP este una dintre cele mai interesante tehnologii existente n prezent. Deoarece mbin caracteristici dintre cele mai complexe cu simplitatea n utilizare, PHP a devenit rapid un instrument de frunte pentru dezvoltarea aplicaiilor n Web. Totui, spre deosebire de alte instrumente populare pentru dezvoltarea aplicaiilor Web, cum este Perl, PHP este un limbaj de programare comod pentru nceptori, chiar i pentru cei care nu au mai desfurat activiti de programare n trecut.

Ca i alte limbaje de scripting pentru Web, PHP v permite s furnizai un coninut Web dinamic, adic un coninut Web care se modific automat de la o zi la alta sau chiar de la un minut la altul. Coninutul Web este un element important n susinerea traficului unui sit Web; de regul, vizitatorii nu vor mai reveni la o pagin Web care conine aceleai informaii ca i cele prezentate la ultima vizit. Pe de alt parte, siturile Web frecvent actualizate pot atrage cantiti enorme de trafic.

Mai mult, spre deosebire de limbajele de scripting, precum JavaScript, PHP ruleaz pe serverul Web, nu n browserul Web. n consecin, PHP poate obine accesul la fiiere, baze de date i alte resurse inaccesibile programului JavaScript. Acestea constituie bogate surse de coninut dinamic, care atrag vizitatorii.

Actualmente, PHP este unul din cele mai importante, rspndite i recunoscute limbaje de programare web open-source i server-side. Popularitatea sa a crescut nencetat, statisticile estimnd c PHP este folosit n peste cteva milioane de domenii web.

2.2Evoluia limbajului, scurt istoric.

PHP a fost nceput n 1994 ca o extensie a limbajului server-side Perl, i apoi de o serie de CGI-uri compilate de ctre Rasmus Lerdorf, pentru a genera un curriculum vitae i pentru a urmri numrul de vizitatori ai unui site. Apoi a evoluat n PHP/FI 2.0, dar proiectul open-source a nceput s ia amploare dup ce Zeev Suraski i Andi Gutmans, de la Technion au lansat o nou versiune a interpretorului PHP n vara anului 1998, aceast versiune primind numele de PHP 3.0. Tot ei au schimbat i numele n acronimul recursiv de acum, pn atunci PHP fiind cunoscut ca Personal Home Page Tools. Apoi Suraski i Gutmans au rescris baza limbajului, producnd astfel i Zend Engine n 1999. n mai 2000 a fost lansat PHP 4.0, avnd la baz Zend Engine 1.0. Pe 13 iulie2004 a fost lansat PHP 5, cu Zend Engine II, ce a adus i o orientare obiect mai pronunat i suportnd mai multe caracteristici ale acestui tip de programare.

2.3Descrierea limbajului PHP:

Cu PHP se poate face practic orice. PHP este n principal axat pe partea de scripting ce ruleaz pe server, deci poate face orice face i un program CGI, cum ar fi colectarea de date de la formulare, generarea de coninut dinamic sau trimitere i primire de cookie-uri. Dar PHP poate face mult mai multe.

Exist trei domenii principale unde sunt folosite scripturile PHP.

Scripturi ce ruleaz pe server. Acesta este cel mai tradiional i cel mai important pentru PHP. Este nevoie de trei lucruri pentru a face s mearg: interpretorul PHP (CGI sau modul de server), un server web i un browser web. E nevoie ca serverul de web s fie pornit, cu o conexiune PHP instalat. Se poate accesa rezultatul programelor PHP cu un browser prin intermediul serverului de web.

Scrierea de aplicaii ce ruleaz de partea clientului n mod grafic (GUI). Probabil c PHP nu este limbajul cel mai bun de a scrie aplicaii cu ferestre pentru Windows sau alte sisteme de operare, dar dac este bine cunoscut i se dorete folosirea unor faciliti avansate ale PHP-ului n aplicaiile ce ruleaz de partea clientului, se poate totui folosi PHP-GTK pentru a scrie astfel de programe. De asemenea, exist posibilitatea de a scrie aplicaii ce ruleaz pe platforme diferite folosind aceast metod. PHP-GTK este o extensie a PHP-ului, nedisponibila n distribuia principal de PHP.

PHP poate fi folosit pe aproape toate marile sisteme de operare, incluznd Linux, multe variante de Unix (incluznd HP-UX, Solaris i OpenBSD), Microsoft Windows, Mac OS X, RISC OS, probabil i altele. PHP are de asemenea suport pentru majoritatea serverelor de web din prezent. Acestea includ serverele Apache, Microsoft Internet Information Server, Personal Web Server, Netscape i iPlanet, serverul Oreillz Website Pro, Caudium, Xitami, OmniHTTPd, i multe atele. Pentru majoritatea serverelor PHP are un modul, iar pentru celelalte suport standardul CGI, PHP putnd s lucreze ca un procesor CGI.

Deci, cu PHP, exist libertatea de a alege un sistem de operare i un server de web. Chiar mai mult, exist posibilitatea de a alege programarea procedural sau programarea orientat obiect, sau chiar sa se combine acestea. Cu toate acestea, nu orice facilitate a standardului POO este prezent n versiunea curent a PHP-ului, multe librrii de cod i aplicaii mari (incluznd i librria PEAR) sunt scrise folosind doar cod POO.

Cu PHP programatorul nu este limitat s scoat rezultat HTML. Posibilitile PHP-ului includ afiarea de imagine, fiiere PDF i chiar filmulee Flash (folosind librriile libswf i Ming) toate generate instant. Se poate de asemenea ca rezultatul s fie orice fiier text, cum ar fi XHTML sau orice alte fiiere XML. PHP poate genera automat aceste fiiere i s le salveze n sistemul de fiiere n loc s le afieze, formnd un cache de partea serverului pentru coninutul dinamic.

Una dintre cele mai puternice i importante faciliti n PHP este suportul su pentru o gam larga de baze de date. Scrierea unei pagini de web ce interacioneaz cu o baz de date este incredibil de simpl. PHP suport i ODBC, standardul Open Database Connection, deci se poate conecta la orice alt baz de date ce suporta acest standard mondial.

PHP are de asemenea suport pentru a conversa cu alte servicii folosind protocoale cum ar fi LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (pe Windows) i multe altele. Se pot, de asemenea, deschide socket-uri de reea i se poate interaciona ntre aproape toate limbajele de programare Web. PHP are suport pentru instanierea obiectelor Java i utilizarea lor ntr-un mod transparent ca obiecte PHP. Se pot de asemenea folosi extensii CORBA pentru a accesa obiecte aflate la distan.

Folosind PHP n domeniul comerului electronic, sunt foarte folositoare pentru programul tu de plai online funcii de plat Cybercash, CyberMUT, VeriSign Payflow Pro i CCVS.

2.3.1Structura i forma genera a unui script 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.

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

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

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 = 987Variabile 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:

Aa cum se poate vedea, singura diferen ar fi c scriem n comanda print numele variabilei, fr ghilimele, n locul textului cu ghilimele.

2.3.3 Tipuri de date. Conversii de tipLimbajul PHP suporta urmatoarele tipuri de date:

Integer - utilizat pentru numere ntregi

Double - utilizat pentru numere reale

String - utilizat pentru iruri de caractere

Array - utilizat pentru a stoca date multiple de acelai tip

Object - utilizat pentru a retine obiecte - instane ale claselor

In plus, PHP suporta si tipurile pdfdoc respectiv pdfinfo pentru a asigura suport pentru PDF (standardul Portable Document Format).

PHP este un limbaj slab tipizat. In limbajele puternic tipizate, o variabila poate retine un singur tip de date pe toata durata sa de via, tip asignat la declararea acelei variabile. In PHP variabilele nu trebuie declarate explicit (ele sunt considerate ca fiind declarate implicit la prima lor utilizare in cod), iar tipul de date asignat este determinat de valoarea retinuta in acel moment. Urmtoarele linii de cod sunt corecte in PHP (numele variabilelor PHP sunt prefixate de semnul $):

$var1 = 1;$var1 = "sirul 1";

Tipul datelor extrase din variabile poate fi schimbat forat (casting sau conversie de tip) in expresiile unde acestea intervin. Acest lucru se face prin precizarea noului tip intre paranteze rotunde in fata variabilei respective:

$var1 = 1;$var2 = (double)$var1 + 3.52;Conversia de tip nu afecteaz tipul real al variabilei.

2.3.4Identificatori. Constante

Identificatorii sunt cuvinte care denot entiti intr-un program. Exemple de identificatori sunt: numele de variabile, de funcii sau de clase. In PHP identificatorii trebuie sa respecte urmtoarele reguli:Identificatorii pot fi de orice lungime i pot fi formai din litere, cifre, liniua de subliniere sau semnul dolar.

Identificatorii nu pot ncepe cu o cifra.

Identificatorii sunt de tip "case sensitive" (in cont de litere mici-mari). Spre exemplu, $numepers este diferit de $numePers. Singurii identificatori care nu respect aceast regul sunt cei care denot nume de funcii PHP predefinite.

PHP permite folosirea a doua tipuri de constante:

Constantele de tip valoare sunt precizate direct n expresii dependent de tipul lor:

constantele ntregi: 0, 100, -1320

constantele de tip double: 0.00, 3.1523, -4.5

constantele de tip ir de caractere: "sir1", 'sir2', 'sir cu "gilimele"! ', "ir cu 'apostrof'"

Constantele cu nume se aseamn cu varibilele, dar valoarea lor nu poate fi schimbata de-a lungul programului. Pentru a face codul scris mai lizibil se obinuiete ca numele variabilelor s fie scrise n ntregime cu litere mari. O diferen notabila fa de variabile este aceia c numele acestora nu sunt precedate de semnul $. Declararea constantelor se face cu ajutorul cuvntului cheie define.define("PI",3.14);$unUnghi = PI;$altUnghi = 2*PI;

2.3.5Operatori :

Operatori aritmetici

OperatorDenumireExemplu

+adunare$a + $b

-scdere$a - $b

*nmulire$a * $b

/mprire$a / $b

%Modulo (restul mpririi)$a % $b

++incrementare - post$a++

++incrementare - pre++$a

--decrementare - post$a--

--decrementare - pre--$a

Daca operatorii aritmetici se aplica asupra unor valori de tip string, PHP va ncerca conversia acestora in numere. Daca conversia nu reuete, irurile sunt convertite la valoarea 0.

Operatori pe iruri de caractere

In PHP exist un singur operator pe iruri de caractere, restul operaiilor fiind efectuate prin intermediul unor funcii din biblioteca standard a limbajului. Acest operator este operatorul de concatenare - punct '.'.

$s1 = "irul 1";$s2 = "irul 2";$s3 = $s1."-".$s2; // s3 = "irul 1-Sirul 2"

Operatori de asignare

Operatorii de asignare permit atribuirea de valori variabilelor. Cel mai simplu operator este operatorul '='. El are doi operanzi: o variabiln partea stng i o expresie in partea dreapt. Valoarea expresiei este evaluata apoi atribuita variabilei din partea stngi, n final, returnata de operator. Deoarece = nu este o instruciune PHP ci un operator, el poate intra in expresii complexe de genul:

$a = $b = 4 + ($c = 3); // a = 7, b = 7, c=3

OperatorUtilizareEchivalent cu

+=$a += $b$a = $a + $b

-=$a -= $b$a = $a - $b

*=$a *= $b$a = $a * $b

/=$a /= $b$a = $a / $b

%=$a %= $b$a = $a % $b

.=$s1 .= $s2$s1 = $s1 . $s2

Operatori de referire

Versiunea PHP 4 a introdus un nou operator i anume operatorul de referire '&'. El este un operator unar, avnd ca operand o variabil i permite legrea unui nume de variabila de zona de memorie a variabilei operand. Spre exemplu se consider secvena:

$a = 3;$b = $a; // a = 3, b = 3$b = 5; / a = 3, b = 5

n urma acestei secvene vor exista dou variabile independente $a si $b. Modificarea ulterioara a valorii lui $b nu afecteaz valoarea reinut de $a. Dac, n schimb, considerm secvena:

$a = 3;

$b = &$a;// a = 3, b = 3

$b = 5;

// a = 5, b = 5;

Se va observa ca $b nu este o variabil independenta ci este un nou nume pentru variabil $a (ambele vor indica spre aceeai zona de memorie). Orice modificare a valorii lui $b va afecta n aceiai msuri valoarea lui $a.

Operatori de comparare

OperatorulDenumireExemplu

==egalitate$a == $b

===test de identitate$a === $b

!=inegalitate$a != $b

inegalitate$a $b

mai mare$a > $b

= $b

Daca operanzii nu sunt de acelai tip se va ncerca conversia operanzilor pentru a deveni compatibili i apoi se va face comparaia. In cazul operatorului test de identitate '===' operanzii nu sunt considerai egali daca nu au acelai tip.

Operatori logici

OperatorDenumireRezultat

!negare!$a neaga valoarea logica a lui $a

&&si logic$a && $b ntoarce adevrat doar daca ambele valori $a si $b sunt adevrate

andsi logic $a && $b ntoarce adevrat doar daca ambele valori $a si $b sunt adevrate

||sau logic$a || $b ntoarce adevrat daca cel puin una dintre valorile lui $a sau $b este adevrat

orsau logic$a or $b ntoarce adevrat daca cel puin una dintre valorile lui $a sau $b este adevrat

xorsau exclusiv$a xor $b ntoarce adevrat daca $a si $b au valori logice diferite

Operatori pe bii

Operatorii pe bii ajuta la prelucrarea numerelor ntregi considerate ca iruri de bii.

OperatorDenumireRezultat

~negare pe bii~$a inverseaz valorilor tuturor biilor lui $a

&si pe bii$a &$b doar bii pe 1 in $a si $b simultan sunt setai pe 1 in rezultat

|sau pe bii$a | $b bii pe 1 in $a sau $b sunt setati pe 1 in rezultat

^sau exclusiv pe bii$a ^ $b biii setati in $a sau $b dar nu in ambele sunt setati pe 1 in rezultat

>$b deplaseazbiii din $a la dreapta cu $b poziii

2.3.6Instruciunea condiional IF

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"};

2.3.7Cicluri

Ciclul WHILECiclul WHILE este una din comenzile cele mai utile din PHP. Fr a fi prea complicat. 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.

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 (altfel 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 crem 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
"; }

n scriptul de mai sus noi 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.

InstruciuneaFORInstruciuneafor este inspirata din limbajul C. Ca si while, ea permite execuia unei instruciuni sau a unui bloc de instruciuni inclus intre acolade ('{' si '}') i are sintaxa:

for (expr1; expr2; expr3) instruciunePrima expresie (expr1) este numita expresie de iniializarei se executa o singura dat, necondiionat, la nceputul ciclului. De obicei aceasta expresie conine atribuiri. Expr2 este o condiie logica ce se evalueaz la nceputulfiecreiiteraii. Pentru condiieadevrat se va executa instruciunea din bucl, dac este falsa, repetiia se va ncheia i se va trece la instruciunea de dupfor. Expr3 se numete expresie de iterare si se evalueaz la sfritulfiecreirepetri. Ea are rolul de a asigura trecerea la pasul urmtor (incrementarea contoarelor, citirea datelor urmtoare etc.).

Oricare dintre cele trei expresii pot fi vide. Daca expr3 este vida PHP o va considera adevrata si va cicla la infinit. In acest caz trebuie asigurata o ieire forat din bucla utiliznd una dintre instruciunile de control pentru repetiii

2.3.8Vectori 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 unui 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 bune utilizri a ciclurilor apare pentru a extrage informaiile dintr-un vector. Spre exemplu, dac vrem s scoatem urmtoarea list de nume:

Numele 1 este JohnNumele 2 este PaulNumele 3 este StevenNumele 4 este GeorgeNumele 5 este David

2.4Utilizarea Bazelor de Date MySQL folosind PHP.

2.4.1Noiuni generale, prioritile utilizrii bazelor de date in programare PHP.

Datele sunt obiectul celor mai multe operaii de prelucrare in orice sistem. Funciile clasice de colectare a datelor PHP au randament redus, complexitate nalt si duc la complicarea excesiva a codului programei. O soluie rspndit in acest sens este aplicarea tehnologiilor de gestionare a bazelor de date, care furnizeaz programatorul cu un set de funcii compacte si flexibile pentru lucrul cu datele. Spre deosebire de fiiere, bazele de date prezint multe avantaje, inclusiv o mai mare protecie a integritii datelor si asigurarea partajrii datelor privilegiat.

O baza de date relaionala se numete astfel datorita capacitii sale de a stabili relaii ntre date din mai multe tabele.O baz de date relaional este definit ca fiind un ansamblu de tabele sau relaii ntre care exist anumite legturi, fiecare tabel fiind alctuit din coloane, denumite atribute i linii, denumite i tuple. Ideea fundamental a lui cod a fost c mulimile de entiti se modeleaz convenabil prin tabele a cror descriere, adic antetul, definete tipul de entitate prin atribute sau proprieti, iar liniile reprezint entiti din mulime, sau instane ale tipului de entitate respectiv.O entitate este o realitate obiectiv care exist prin ea nsi. Orice entitate se caracterizeaz prin anumite proprieti, care n cadrul modelului de date sunt reprezentate prin atribute. La rndul lor, entitile sunt reprezentate prin tipuri de entiti. Un tip de entitate este o reprezentare a unei categorii de obiecte din lumea real sau a unei mulimi de entiti de acelai fel, iar atributele sale reprezint caracteristicile generale (intensionale) ale acelei categorii.

Aplicaia software care gzduiete o baza de date se numete "sistem de gestiune a bazelor de date" (SGBD). Exista multe sisteme de gestiune a bazelor de datedestinat utilizrii cu PHP, dintre care cel mai popular este MySQL (Structured Query Language).

In ciuda simplitii sale, SQL este un limbaj foarte puternic, care poate obine accesul la date stocate n mai multe tabele, poate filtra datele dorite si poate sorta, rezuma si afia rezultatele.

n general, bazele de date relaionale i stocheaz datele ntr-un singur fiier sau catalog. Aceasta caracteristica de organizare faciliteaz administrarea datelor, deoarece executarea copiei de siguran, respectiv restaurarea unui singur fiier sau catalog se realizeaz mai uor.

Sistemele de gestiune a bazelor de date relaionale necesita mai multe cicluri de procesor pentru a satisface o cerere de date dect cele necesare pentru accesul la un fiier normal, dar ofer protecie sporit a datelor, iar pentru accesul la distanta uureaz traficul deoarece majoritatea operaiilor sunt efectuate de programul SQL, astfel singurele date transmise in reea ar fi rezultatul cerut.

2.4.2Funciile PHP pentru lucru cu baze de date MySQL

Majoritatea interaciunilor cu o baza de date se desfoar dup un model secvenial simplu:

1. Se deschide o conexiune cu serverul MySQL.

2. Se specifica baza de date la care se va obine accesul.

3. Se emit interogri SQL, se obine accesul la rezultatele interogrilor si se executa operaii PHP.

4. Se nchide conexiunea cu serverul MySQL.

Functii specifice MySQL

FunctieDescriere

database()- Returneaz numele bazei de date deschise

get_lock(s,n)- Obine o blocare a bazei de date

user()- Returneaz numele utilizatorului curent

password(s)- Returneaz irul s, criptat folosind algoritmul aplicat de MySQL parolei

release_lock(s)- Anuleaz blocarea unei baze de date

version()- Returneaz numrul versiunii MySQL

Functii specific PHP pentru lucru cu MySQL

FuncieDescriere

mysql_connect

(nume_gazda, nume_utilizator, parola)Creeaz o conexiune la o baz de date SQL.

Aceasta conexiune va fi utilizata ca punct de acces pentru comenzi MySQL .

mysql_close

(nume_gazda, nume_utilizator, parola)Aceasta funcie nchide conexiunea curenta.

Funcia returneaz TRUE n caz de reuit.

mysql_create_db()Creeaz o baz de date temporar.

Funcia returneaz identificatorul bazei generate.

mysql_drop_db()Funcia distruge ultima baz de date accesat de utilizator. Este comod de combinat funcia create_db.

mysql_query("interogare")Executa o interogare specificata. Aceasta interogare este un de cod SQL care urmeaz a fi executata. Funcia returneaz TRUE daca serverul a reuit sa execute interogarea; n caz contrar, returneaz false.

mysql_select_db(baza_de_date)Funcia selecteaz o baz de date (pot fi mai multe), pentru a lucra ulterior cu tabele. Returneaz TRUE daca poate obine accesul la baza de date invocate.

mysql_insert_id()Cnd introducei un rnd intr-un tabel a crui cheie primara este de tipul AUTO_INCREMENT, funcia determin valoarea cheii primare atribuite de MySQL

last_insert_id()Returneaz valoarea atribuita de MySQL unei coloane AUTO_INCREMENT, indiferent de tipul coloanei. Apelurile ulterioare in script la funcii MySQL nu afecteaz rezultatul returnat.

mysql_tablename($cimp)ntoarce denumirea tabelei, primind ca parametru o variabila indicator spre un careva rnd al tabelei

mysql_free_result($var)Uneori valoarea returnata de o cerere mysql_query() poate conine mii de rnduri, consumnd resurse considerabile ale serverului. Funcia dat elibereaz memoria variabilei generate de acel query.

Functii specific PHP pentru lucru cu MySQL

FuncieDescriere

mysql_fetch_row()Adaug datele intr-o matrice asociativa unde pentru fiecare element avem chei cu numere consecutive (ncepnd de la 0) care reprezint ordinea coloanelor iar valorile lor sunt datele din rndul respectiv

mysql_fetch_assoc()Adaug datele intr-o matrice asociativa unde pentru fiecare element avem chei cu numele coloanelor iar valorile lor sunt datele din rndul respectiv.

mysql_fetch_object()aduce rezultatele rndului sub forma de obiect cu perechile $rnd->coloana

mysql_affected_rows()Returneaz numrul rndurilor afectate de interogarea cea mai recenta de tip INSERT, UPDATE, REPLACE sau DELETE

mysql_num_rows()Returneaz numrul rndurilor afectate de interogarea cea mai recenta de tip SELECT sauSHOW

mysql_num_fields()Determina numrul coloanelor dintr-o interogare intr-un tabel SQL

mysql_field_name()Utilizat pentru a obine numele unei coloane

dintr-un tabel MySQL.

mysql_field_len()Utilizat pentru a obine lungimea unei coloane

dintr-un tabel MySQL

mysql_field_type()Utilizat pentru a obine tipul MySQL al unei coloane dintr-un tabel MySQL

mysql_field_table()Utilizat pentru a determina tabelul MySQL

(daca exista) asociat unei anumite coloane

mysql_info()Returneaz informaie detailat despre ultima accesare la BD de o cerere mysql_query .

2.4.3Exemple de implimentare a funciilor PHP de lucru cu bazele de date

Exemplu care creeaz o tabel in BD si ne afieaz rezultatul operaiei:

Exemplu care ne afieaz toate datele din fiecare coloan de pe fiecare rnd al tabelului :

Exemplul de mai sus v-a afia urmtorul rezultat, in funcie de datele din tabel:

| 1 || Glossa || Mihai Eminescu || poezie || 0000-00-00 || 8.00 |

| 2 || Carte2 || Autor2 || Educativ || 2008-09-16 || 11.00 |

| 3 || Carte3 || Autor3 || Gen3 || 2008-09-16 || 8.30 |

Capitolul III. Dezvoltarea unei aplicaii WEB utiliznd limbajul PHP.

3.1Obiectivele noului sistemObiectivul de baz al aplicaiei n cauz este elaborarea unui sistem PHP/MySQL viabil , util i comod, care ar satisface toate necesitile practice ale domeniului ales, i ar pune n aplicaie baza teoretic descris n capitolul II. Asta presupune necesitatea elaborrii unui plan de aciune, unde vor fi analizate preventiv datelor de intrare, ieire, a bazei informaionale de intrare, a legturilor dintre diverse module operaionale i a funcionalitii sistemului astfel nct toate elementele sale s formeze un ntreg.

Proiectarea unei aplicaii WEB n general presupune parcurgea mai multor etape consecutive, astfel nct sarcina dorit s fie atins cu minim de erori / situaii excepionale i cu performa maxim.

Structura general a sistemului informatic, indiferent de domeniu particular, cuprinde un ansamblu de intrri, prelucrri i ieiri,existente n funcie de obiectivele noului sistem.

Exist mai multe variante de abordare a proiectrii unui sistem informatic WEB: fie se poate pleca de la intrri, fie de la ieiri, fie se poate realiza o variant mixt, dar nu nainte de a le preciza i determina n vederea satisfacerii necesitilor utilizatorului final sau a (beneficiarului proiectului).

Analiznd modul de circulaie a datelor n sistem se determin baza informaional de intrare, apoi se realizeaz celelalte faze ale proiectrii.

Fazele proiectrii se parcurg in ordinea :

Etapa de preproiectare presupune stabilirea obiectivelor generale;

Etapa elaborrii proiectului tehnic :

stabilirea scheletului noului proiect WEB, principalele structuri (DIV blocuri) i stiluri

stabilirea proiectarea ieirilor;

proiectarea bazei informaionale de intrare;

codificarea datelor i stabilirea msurilor de securitate

Elaborarea proiectului de lucru, rezolvarea problemelor puse, proiectarea structural i funcional.

Exploatarea experimentala, tratare situaiilor neprevzute/excepionale.

elaborarea documentaiei/manualului (dac este necesar).

3.2Etapa I : Preproiectarea aplicaiei

Se propune realizarea unei pagini WEB care ar servi drept o platform informaional pentru promovarea serviciilor un specialist/firm de proiectare n domeniu Arhitectur i Urbanism.

La aceast etap vom stabili principalele componente ale viitorului system, privit din exterior. Acest lucru se determina iniial n timpul unui dialog direct cu beneficiarul, care descrie specialistului specificul activitii sale i cerinele de baz fa proiectul n cauz. Ca urmare al dialogului iniial sunt determinate urmtoarele cerine i elemente funcionale :

Necesitatea unei aparene plcute, ntr-o gam de culori calde, care cu ar ncorda ochii vizitatorului dar n acelai timp, ar accentua elementele funcionale de baz i unele momente cheie precum bara de meniuri i numele-prenumele firmei/beneficiarului.

Vizitatorul trebuie imediat dup accesarea paginii s-i dea seama de vectorul profesional al firmei, fr a cuta date suplimentare. Acest lucru poate fi implementat cu ajutorul unor imagini de profil arhitectural.

Pagina va conine 7 module de baz :

Date generale aici vor fi prezentate actele de acreditare care confirm evoluia i acreditarea profesional al beneficiarului.

Servicii va conine lista de servicii prestate de companie/beneficiar.

Parteneri - lista companiilor parteneri de colaborareContacte informaia de contact Guest Book-ul modulul n care eventualii beneficiar vor putea las ntrebar, sugestii comentarii n form scris.Prospecte galeria de imagini de profil, care ar ajuta eventualii clieni ai beneficiarului s aleag un model ngust de construcie n funcie de necesitate.

Administrare modulul de logare i autentificare n sistem de ctre beneficiar pentru a introduce anume schimbri-corectri n sistem de sine stttor.

La aceast etap vor fi colectate toate documentele/actele necesare de la beneficiar care ulterior vor fi ncrcate n sistemul solicitat. Se verific nc odat dac beneficiarul a descris integru toate nuanele sarcinii n cauz i nu vor aprea neclariti pe parcurs, care ar solicita nvestiii suplimentare.3.3Etapa II :ProiectultehnicSe va stabili Designul conceptual al aplicaiei, Arhitectura aplicaiei

n general, aplicaiile client/server pot fi privite ca fiind structurate pe trei nivele: nivelul de prezentare, nivelul de logic a aplicaiei i nivelul de date.

Nivelul de prezentare este format din paginile HTML prin care utilizatorii interacioneaz cu aplicaia. Scopul acestui nivel l reprezint prezentarea ntr-un format prietenos a datelor primite de la nivelul de logic a aplicaiei. Datele se refer att la informaii ce trebuie aduse la cunotina utilizatorului, ct i la indicatori care limiteaz funcionalitatea paginii rezultate. De asemenea, la acest nivel se realizeaz o prelucrare a datelor introduse de utilizator, astfel nct ele s fie trimise mai departe nivelului de logic a aplicaiei ntr-un format recunoscut de acesta.

Nivelul de logic a aplicaiei face legtura ntre celelalte dou nivele. La acest nivel, prin scripturi PHP organizate n librrii, se stabilesc regulile de funcionare a aplicaiei. Aceste scripturi se ocup de operaii precum validarea datelor introduse de utilizator, construirea interogrilor SQL ce vor fi trimise spre execuie nivelului de date, luarea deciziilor n ceea ce privete informaiile care vor fi trimise spre afiare nivelului de prezentare.

Nivelul de date, reprezentat de baza de date MySQL, constituie partea static a aplicaiei, fiind responsabil de stocarea datelor. De la acest nivel datele sunt trimise pentru prelucrri ctre nivelul responsabil de logica aplicaiei. Pe de alt parte, aici sunt stocate informaiile provenite de la utilizatori, dup ce n prealabil acestea au fost validate i prelucrate la nivelul de logic a aplicaiei.

Diagramele cazurilor de utilizare Diagramele cazurilor de utilizare descriu comportamentul sistemului, oferind o imagine de ansamblu asupra modului n care acesta este folosit din punctul de vedere al utilizatorilor. Cazurile de utilizare realizeaz o descriere, din punct de vedere funcional, a sistemului, ansamblul tuturor cazurilor de utilizare i utilizatorii acestora (actorii) formnd modelul cazurilor de utilizare. Aplicaia este structural modelat pentru 2 categorii de utilizatori Administrator i Oaspete

Administratorii sunt oaspei privilegiai cu acces la 2 activiti speciale :

Redactare coninut pagin

ncrcare imagini n galerie

Ambele activiti speciale impun o activitate inclus autentificarea administratorului care la rndul su ofer un serviciu extins de tratare a erorilor.

Diagramele de claseReflect totalitatea elementelor declarative i celor statice, acestea fiind clasele cu atribute i operaii, precum i a relaiilor dintre acestea. Diagrama de Clase reprezint structura static a modelului, adic cele elemente structurale care nu depind de timp.

Motorul de procesare PHP/Apace este clas de tip contor i ocup locul central n ntreg sistemul.

Cu ea comunic interfeele oaspeilor si interfaa administratorului.

SGBD SQL este o clasa serviciu, agregat (parte component) contorului PHP . Ea rspunde de lucrul cu bazele de date

Datelesunt o entitate aflat pe suport fizic i accesate direct de contor, care la rindul su este i ea parte component a acestei colecii de date pe server.Autentificare/Sercuritate este serviciul care rspunde de schimbarea statutului de oaspete n statut de administrator. Este o clas de frontierGaleria Dinamic este i ea la rndul su un motor de procesare care este printe pentru trei sub-clase, ncrcare Imagine , Prezentare Imagine i Distrugere Imagine.

Diagramele de activitateDiagramele de activitate descriu activitilei responsabilitile elementelor care alctuiesc sistemul. O diagramde activitate reprezint interaciunile dintre activiti, adicfluxul de control al trecerii de la o activitate la alta.

Diagrama de activitate este folosit n modelarea aspectelor dinamice ale aplicaiei, presupunnd modelarea proceselor pas cu pas. O diagram de activitate prezint fluxul secvenelor de activiti, putnd fi folosit pentru a descrie activitile realizate n cadrul unei operaii, folosind, dac este cazul, decizii i condiii. Scopul acestor diagrame este acela de a captura aciunile i rezultatele lor. Ele reprezint o cale alternativ de descriere a interaciunilor, cu posibilitatea de specificare a aciunilor ce se vor realiza: ce fac acestea?, cnd au loc? i unde au loc?.

Cea mai complex activitate propus de aplicaie n cauz este procedura de ncrcare imagini.

Diagrama de activitatea de mai sus descrie lista de ntreprinse de administrator, precum i unele reacii din partea sistemului , care ntr-un mod succint dar foarte clar ofer beneficiarului o viziune clar despre sistem. Astfel, pentru a accesa servicul de ncrcare a imaginilor n galierie este necesar mai nti de parcurs procedura de autentificare i redactare. Doar apoi, dac imaginea dorit corespunde cerinelor , aceasta poate fi ncrcat pe pagin n galeria dinamic. Procedura se va ncheia odat cu accesarea butonului eire care ncheie sesiunea administratorului pe server.

Diagramele de componenteDiagramele de componente ne ofer vederi structurale asupra aplicaiei, prin aducerea n prim plan a componentelor sale funcionale care interacioneaz n timpul execuiei pentru buna comportare a aplicaiei. Prin urmare, scopul modelului derivat din aceste vederi este delimitarea modulelor aplicaiei asupra crora trebuie s se concentreze activitatea de implementare, a scopului acestor module, precum i a dependenelor dintre acestea.

Aceast prim diagram are rolul de a sublinia cele patru componente ale aplicaiei i pachetele de librrii care susin funcionalitatea acestora. Fiecare component este vzut ca i client al acestor pachete. Am delimitat cele patru componente din tipul de arhitectur pe trei nivele ales pentru aplicaie, innd totodat cont de caracterul public al mediului Web.

Astfel, componenta de Securitate completeaz aplicaia avnd rolul bine determinat i necesar de asigurare a bunei funcionri a aplicaiei, protejnd-o mpotriva pericolelor prezente n mediul Web, inclusiv mpotriva utilizrii necorespunztoare de ctre beneficiarii si. Pachetul de Autentificare i autorizare satisface cerina aplicaiei de a controla accesul la funcionalitatea acesteia prin intermediul conturilor i a sesiunilor de lucru. n plus, pachetul de Verificare date trimise de utilizator apr mpotriva pericolului executrii de operaii asupra bazei de date prin injectarea de ctre utilizator de comenzi SQL n coninutul datelor trimise ctre server, date care prezint probabilitate mare s fie folosite de server n construcii SQL.

Interfaa reprezint unicul mediu de exprimare a participanilor la comunicarea utilizator aplicaie, vzut ca un schimb bidirecional de informaie. Prin urmare, funcioneaz att ca fa vizibil a aplicaiei, ct i ca modalitate prin care utilizatorul i comunic opiunile, alegerile, deciziile.

Componenta de Procesare - principala responsabilitate pe care o deineeste implementarea logicii de funcionare a aplicaiei, aa cum reiese ea din activitatea de proiectare. Aceast component deine de asemenea responsabilitatea interfarii cu componenta de Date, comportament materializat n pachetul Interfaa cu serverul MySQL.

Componenta de Date execut la cererea explicit a componentei Procesare modificri asupra bazei de date, ndeplinind rolul nivelului de date din arhitectura 3-tier.

Detalii i comentarii n vederea ncheierii proiectului tehnicAa cum un oficiu clasic este situat ntr-o construcie, la fel i pagina web respectiv, va trebui gzduit pe un server Web. Acesta va constitui spaiul comercial virtual, punctul de legtur dintre beneficiar i clienii poteniali. Se poate apela la serviciile unei firme specializate n acest sens. In cazul n care beneficiarul nu posed cunotine, varianta a doua este cu siguran mai adecvat i va da rezultate cu mult mai bune. Ar fi bine ca firma respectiv s asigure i gzduirea web (i eventual nregistrarea domeniului). Vor trebui stabilite tehnologiile.

Orice sistem virtual trebuie s dispun de un sistem de administrare a coninutului care s permit adugarea, modificarea i tergerea produselor din baza de date (text i imagini). De asemenea, nregistrarea comenzilor i a datelor despre clieni ntr-o baz de date este absolut necesar. Adiional poate fi creat i un sistem care s semnaleze prin e-mail lansarea unei comenzi. Dac beneficirul nu insist asupra executrii modului de administrare dinamic, datoria programatorului este s explice acestuia necesitatea unui astfel de modul.

Modulul de prospecte arhitecturale trebuie organizate pe categorii (i eventual subcategorii) astfel nct clienii s poat gsi cu cea mai mare uurin ceea ce caut. O atenie sporit trebuie acordat prezentrii produselor; mai ales imaginile trebuie s fie de calitate excepional, altfel ansele ca vizitatorii s cumpere scad considerabil. E necesar io descriere succint dar informativ n drept cu fiecare imagine.

3.4Etapa III: Proiectul de lucru

Componenta InterfaAm s ncep detalierea implementrii alese pentru componenta de Interfa prin descrierea unor aspecte structurale legate de paginile site-ului.

n mod natural, fiecrui tip de utilizator al aplicaiei i va corespunde cte o pagin de nceput, o pagin de index, care trebuie s combine urmtoarele cerine declarate: s conin opiuni i informaii utile pentru utilizator, s aib aspect plcut i s se ncarce rapid. Dup o scurt dezbatere cu beneficiarul, a fost atins compromisul realizrii paginii conform urmtorului model :

n cadrul acestui format, header-ul conine un banner i o prezentare succint al beneficiarului. Ulterior dup finisarea scheletului, s-a purces la mpodobirea acestuia cu culori, texturi i alte elemente decorative. Toate aceste elemente stilistice, precum i proporiile machetului, pentru comoditatea programatorului au fost introduse ntr-un singur fiier default.css(Vezi anexa) . Cu alte cuvinte a fost aplicat tehnologia de imbricare a stilurilor CSS pentru a optimiza procesul intelectual de baz logica PHP.

Meniul pus la dispoziia utilizatorului este poziionat sub header n poziie orizontal, i conine toate opiunile majore de care beneficiaz acesta n aplicaie. Implimentarea meniului s-a realizat n 3 etape :

Alegerea opiunilor potrivite i gruparea lor dup anumite criterii logice

Crearea unui table in baza de date SQL n care se vor conine elementele meniului

Crearea logicii de baz a funcionalitii meniului n PHP .