proiectarea realizarea site si portalurilor web

98
Suport tutorial de curs Anul III Semestrul 5 PROIECTAREA ŞI REALIZAREA SITE-URILOR ŞI PORTALURILOR WEB Cluj-Napoca 2009 UNIVERSITATEA BABEŞ-BOLYAI FACULTATEA DE ŞTIINŢE ECONOMICE ŞI GESTIUNEA AFACERILOR Str. Teodor Mihali, nr. 58-60, 400591, Cluj-Napoca, România Tel: 0264 418655; Fax: 0264 412570 E-mail: [email protected]

Upload: teodor-olteanu

Post on 23-Jul-2015

383 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Proiectarea Realizarea Site Si Portalurilor Web

Suport tutorial de curs

Anul III

Semestrul 5

PROIECTAREA ŞI REALIZAREA SITE-URILOR ŞI PORTALURILOR WEB

Cluj-Napoca 2009

UNIVERSITATEA BABEŞ-BOLYAI

FACULTATEA DE ŞTIINŢE ECONOMICE ŞI GESTIUNEA AFACERILOR Str. Teodor Mihali, nr. 58-60, 400591, Cluj-Napoca, România Tel: 0264 418655; Fax: 0264 412570 E-mail: [email protected]

Page 2: Proiectarea Realizarea Site Si Portalurilor Web

2

I. Informaţii generale • Date de identificare a cursului

Date de contact ale titularului de curs:

Nume: Lector Dr.Liana Stanca Birou: 432, sediul FSEGA Telefon: 0264-418 655 Fax: 0264-418 655 E-mail: [email protected] Consultaţii: Conform cu orarul afişat la sala 432

Date de identificare curs şi contact tutori: Numele cursului: Proiectarea şi realizarea site-urilor şi Portalurilor Web Cod: EBI0093 Pagina web a cursului: http://www.econ. ubbcluj.ro An studiu: Anul 3, semestru 5 Tip: Obligatoriu Tutore: Lect.Dr. Liana Stanca E-mail secundar: [email protected]

• Condiţionări şi cunoştinţe prerechizite Cursul nu are condiţionări prerechizite. Cunoştinţele prerechizite care pot facilita asimilarea materialului sunt legate de programare la nivel de bază şi reţele de calculatoare. Sugerăm ca înainte de parcurgerea materialului să se identifice următoarele cunoştinţele prerechizite:

• structurile de programare de bază: protocol TCP/IP, SMTP, HTTP, modelul Client-Server

• conceptele de programare de bază: reţele de calculatoare, • modelele de procese de producţie software din perspectiva proiectării; • documentaţia necesară proiectării sistemelor informatice.

• Descrierea cursului Cursul prezintă justificarea economică deoarece are ca scop prezentarea unei tehnologi cu ajutorul cărora se pot realiza instrumentele necesare implementării de afaceri electronice. Se începe cu o parte introductivă care prezintă conceptele de bază necesare pentru înţelegerea modului de funcţionare şi implicit de proiectare şi implementare a instrumentelor necesare pentru desfăşurarea afacerilor electronice. Se definesc conceptele de bază (vezi glosarul de termeni). Se descriu tehnnologii Web de proiectare şi implemetare a instrumentelor vitale în desfăşurarea unei afaceri electronice. Piaţa muncii din România oferă un segment semnificativ pentru angajarea de programatori web la companiilor software. Pe baza cunoştinţelor asimilate atât în cadrul acestei dicipline cât şi în cadrul disciplinelor preponderent economice studenţilor li se oferă posibilitatea de a-şi demara propria afacere. Competenţe dobândite prin absolvirea disciplinei: - absolvenţii disciplinei sunt specialişti în informatică economică cu abilităţi de

programare şi tratare a excepţiilor bazându-se pe obiecte şi clase; - însuşirea abilităţilor de concepere, proiectare şi implementare a modelelor de afaceri

electronice cu ajutorul limbajelor HTML,XHTML şi PHP, ceea ce le crează posibilitatea încadrării în domeniul statisticii şi informaticii economice

Page 3: Proiectarea Realizarea Site Si Portalurilor Web

3

- fundamentarea necesarului de resurse umane, materiale şi financiare în raport cu cerinţele obiectivelor fixate de activităţile specifice programării afacerilor on-line;

- au compenţa necesară de a dezvolta aplicaţii specifice afacerilor electronice; - au compenţa necesară de a optimiza metodele de selecţie a alternativelor de

dezvoltare a unei afaceri on-line;. - dobândesc deprinderi de analiză proiectare şi testare a modelelor de afaceri

electronice specifice putând deveni consultanţi în acest domeniu; - dobândesc deprinderi de măsurare a efeicienţei afacerilor on-line; - pot concepe, proiecta, implementa şi testa atât pagini web statice cât şi pagini web

dinamice în speţă un model de afacere electronică; - fundamentarea necesarului de resurse umane, materiale şi financiare în raport cu

cerinţele obiectivelor fixate de activităţile specifice informaticii economice şi de afaceri;participarea la elaborarea, implementarea şi testarea proiectelor informatice axate pe sisteme distribuite cu acces la Internet;

• Organizarea temelor în cadrul cursului Ordinea temelor abordate de curs, conform structurii materialului didactic ce va fi disponibil pe platforma software de învăţământ la distanţă: https://portal.portalid.ubbcluj.ro/ Modul1 :NOŢIUNI FUNDAMENTALE PENTRU CONCEPEREA, PROIECTAREA ŞI IMPLEMENTAREA UNEI APLICAŢII ELECTRONICE

1.1 Reţeaua Internet - concept şi evoluţie 1.2 Modelul CLIENT-SERVER 1.3. Limbaje de scripting pe parte de server 1.4. Server APACHE

Modul2:PREZENTAREA ELEMETELOR DE BAZĂ ALE LIMBAJULUI HTML

2.1. Elemente de limbaj HTML 2.2. Structura unui document HTML 2.3. Tag-uri de formatare a textului 2.4.Stiluri fundamentale de formatare a textului 2.5. Hyperlink-uri 2.6. Liste în site-uri Web 2.7.Marcaje pentru obiecte

Modulul3:PREZENTAREA ELEMETELOR DE BAZĂ ALE LIMBAJULUI XHTML

3.1. Scopul şi obiectivele modulului 3.4.1. Caracteristicile XHTML 3.4.2.Editoarele de fişiere XHTML 3.4.3 Sintaxa Limbajului 3.4.4 Tipuri de date XHTML 3.4.5. Structura documentelor XHTML 3.4.9.Formulare

3.4.10 Cadre Modul4:MYSQL SERVER

4.1. MySQL –concepte de bază, caracterisitci 4.2. Modul de funcţionare a unui server de baze de date pentru Web

Page 4: Proiectarea Realizarea Site Si Portalurilor Web

4

4.3. Tipuri de date SQL 4.4. Privilegii acordate utilizatorilor 4.5. Baze de date- definiţie, proiectare 4.6. Operaţii asupra bazelor de date în MySQL

Modul5:PREZENTAREA LIMBAJULUI DE SCRIPTING PHP 5.1 Limbajului PHP~noţiuni fundamentale 5.2. Principiul de funcţionare a limbajului PHP 5.3. Variabilele PHP 5.4. Variabile şi constante 5.5. Operatori 5.6. Structurile de control 5.7. Tablouri 5.8. Funcţii 5.9. Fişiere 5.10. Stocarea datelor în sistemul utilizatorului cu PHP 5.11. PHP şi formulare HTML

Bibliografie obligatorie

• Formatul şi tipul activităţilor implicate de curs

Bibliografie opţională Pentru paginarea temelor, recomandăm consultarea cuprinsului din partea a doua a materialului de faţă.

Cursul va fi prezentat prin activităţi tutoriale periodice programate conform orarului facultăţii, afişat pe site-ul http://econ.ubbcluj.ro. Prin adresele de e-mail oferită sau la sediul facultăţii, titularul şi tutorii cursului stau la dispoziţia studenţilor pentru consultaţii on-line sau faţă în faţă în afara activităţilor periodice preprogramate. Se încurajează studiile de caz legate de locul de muncă al acelor studenţi care sunt deja angajaţi în domeniul testării software. Activităţile tutoriale sunt, pentru studentul la distanţă, facultative şi nu afectează nota acestuia, obţinută strict prin forma indicată: examen scris şi prezentarea unui proiect ce are ca temă conceprerea, proiectarea şi implementarea unei afaceri virtuale pe baza cunoştinţelor asimilate în cadrul cursului de fată Totuşi, încurajăm participarea interactivă la activităţile tutoriale în special pentru dezvoltarea incrementală a dosarului de testare care va fi notat. • Materiale bibliografice obligatorii 1.[Stanca_07]Stanca L., Suportul tehnologic al afacerilor electronice, Editura Presa Universitară Clujeană, 2007 Biblioteca facultăţii 2.[Stanca_04] Stanca L.,Suportul economic al afacerilor electronice, Editura Presa Universitară Clujeană, 2004 Biblioteca facultăţii 3.[McCarty_02] McCarty, PHP 4, Editura Teora 2002 Biblioteca catedrei [Graeme_site] Graeme M.,PHP/MySQL Tutorial www. hotwired.com /webmonkey databases reţea Internet 4.[Welling_01]Welling L., Thomson L.,PHP and MySQL Web Development, SAMS Publishing, 2001 Biblioteca catedrei Materialele sunt accesibile la biblioteca facultăţii, la biblioteca catedrei sau pot fi puse la dispoziţie de către titularul de curs.

Page 5: Proiectarea Realizarea Site Si Portalurilor Web

5

• Materiale şi instrumente necesare pentru curs Calculator, materialul bibliografic, software licenţiat şi free necesar cursului şi anume triad-ul Apache-MySql-PHP puse la dispoziţie de titularul cursului. • Calendar al cursului Sunt estimate 3 întâlniri preprogramate pe semestru, cu datele şi locaţiile afişate pe site-ul facultăţii la începutul semestrului. Premergător fiecărei întâlniri se recomandă parcurgerea materialului de faţă, pe module pentru a asigura cursivitatea discuţiilor. Conţinutul acestor întâlniri va fi, în ordine: Prima întâlnire – discuţii pe marginea modulelor I, II; A doua întâlnire – discuţii pe marginea modulelor II, III, A treia întâlnire – discuţii pe marginea modului IV. • Politica de evaluare şi notare (orientativ - 1 pagină) Evaluare practică – 50% din notă: Conţinut: Dezvoltarea unui proiect care să conţină o aplicaţie sotfware necesară derulării unei afaceri electronice la alegere. Proiectul va conţine:

• o aplicaţie destinată clientului (partea de front-end); • o aplicaţie destinată administratorului afacerii (partea de back-end) • o bază de date care conţine toate datele necesare pentru realizarea celor 2

aplicaţii. Evaluare teoretică – 50% din notă Conţinut: Test grilă cu întrebări, de dificultate şi pondere în notă echitabile (30 întrebări de 0,3 punct pe întrebare). Nivelul minim pentru promovarea examenului este dat de obţinerea notei 5 la fiecare din cele două părţi (practic şi teoretic). Ambele evaluării vor avea loc la datele programate pentru examen, la sediul facultăţii. Notele vor fi acordate în aceeaşi zi, comunicate personal fiecărui student cu posibilitate de contestare imediată. Nu se vor accepta proiecte practice sau participări la examen la alte date decât cele programate. • Elemente de deontologie academică Tentativele de fraudare atât la examen scris cât şi în dezvoltarea proiectului practic vor fi pedepsite prin anularea examenului şi aplicarea regulamentului instituţional. Nu este admisă în timpul examenului utilizarea mijloacelor de comunicaţie. Contestaţiile se vor soluţiona în maxim 24 de ore de la afişarea rezultatelor. • Studenţi cu dizabilităţi Titularul cursului si tutorii îşi afirmă disponibilitatea, în limita posibilităţilor, de a adapta la cerere, conţinutul şi metodelor de transmitere a informaţiilor, precum şi

Page 6: Proiectarea Realizarea Site Si Portalurilor Web

6

modalităţile de evaluare (examen oral, examen on line) în funcţie de tipul dizabilităţii cursantului. Vom urmări facilitarea accesului egal al tuturor cursanţilor la activităţile didactice. E-mail de contact pentru situaţii deosebite şi suport acordat studenţilor cu dizabilităţi: [email protected] • Strategii de studiu recomandate Recomandăm în ordine:

• parcurgerea materialului de faţă şi contactarea tutorilor pentru orice nelămuriri;

• parcurgerea bibliografiei obligatorii; • cercetarea individuală pe tema cursului, folosind Internetul; • parcurgerea documentaţiilor on-line www.php.net, dev.mysql.com;

Page 7: Proiectarea Realizarea Site Si Portalurilor Web

7

Cuprins

MODULUL 1.

NOŢIUNI FUNDAMENTALE PENTRU CONCEPEREA, PROIECTAREA ŞI IMPLEMENTAREA UNEI APLICAŢII ELECTRONICE.............................................................................................................10

1.1.1. Scopul şi obiectivele modulului ................................................................. 101.1.2. Schema logică a modulului ........................................................................ 101.1.3. Conţinutul informaţional detaliat ............................................................. 111.1.3 .1Reţeaua Internet - concept şi evoluţie ..................................................... 111.1.3.2 Modelul CLIENT-SERVER ................................................................... 121.1.3.3 Limbaje de scripting pe parte de server ................................................. 141.1.3.4. Server APACHE ...................................................................................... 15

MODULUL 2.

PREZENTAREA ELEMETELOR DE BAZĂ ALE LIMBAJULUI HTML ............................................................................................................................ 19

2.2. Scurtă recapitulare a conceptelor prezentate anterior .............................. 202.3. Schema logică a modulului ........................................................................... 202.4.Conţinutul informaţional detaliat ................................................................. 202.4.1. Elemente de limbaj HTML ........................................................................ 202.4.2. Structura unui document HTML .............................................................. 212.3.3 Tag-uri de formatare a textului .................................................................. 222.4.4.Stiluri fundamentale de formatare a textului ........................................... 252.4.5. Hyperlink-uri .............................................................................................. 252.4.6. Liste în site-uri Web ................................................................................... 262.4.7.Marcaje pentru obiecte ............................................................................... 30

MODULUL 3 PREZENTAREA ELEMETELOR DE BAZĂ ALE LIMBAJULUI XHTML..........................................................................................................................37

3.1. Scopul şi obiectivele modulului .................................................................... 383.2. Scurtă recapitulare a conceptelor prezentate anterior .............................. 383.3. Schema logică a modulului ........................................................................... 383.4.Conţinutul informaţional detaliat ................................................................. 393.4.1. Caracteristicile XHTML ............................................................................ 393.4.2.Editoarele de fişiere XHTML ..................................................................... 413.4.3 Sintaxa Limbajului ...................................................................................... 413.4.4 Tipuri de date XHTML ............................................................................... 433.4.5. Structura documentelor XHTML ............................................................. 443.4.8Cadre .............................................................................................................. 483.4.9.Formulare ..................................................................................................... 51

MODULUL4 MYSQL SERVER.................................................................................53 4.1.Scopul şi obiectivele modulului ..................................................................... 544.2. Scurtă recapitulare a conceptelor prezentate anterior .............................. 544.3. Schema logică a modulului ........................................................................... 544.4.1. MySQL –concepte de bază, caracterisitci ................................................ 55

Page 8: Proiectarea Realizarea Site Si Portalurilor Web

8

4.4.2. Modul de funcţionare a unui server de baze de date pentru Web ......... 564.4.3. Tipuri de date SQL ..................................................................................... 574.4.4. Privilegii acordate utilizatorilor ................................................................ 594.4.5. Baze de date- definiţie, proiectare ............................................................. 594.4.6. Operaţii asupra bazelor de date în MySQL ............................................. 60Test de verificare a cunoştinţelor: ....................................................................... 63

MODULUL 5 PREZENTAREA LIMBAJULUI DE SCRIPTING PHP...............65 5.2. Scurtă recapitulare a conceptelor prezentate anterior .............................. 655.3. Schema logică a modulului ........................................................................... 665.4.1 Limbajului PHP~noţiuni fundamentale .................................................... 665.4.2. Principiul de funcţionare a limbajului PHP ............................................. 675.4.3. Variabilele PHP .......................................................................................... 695.4.4. Variabile şi constante ................................................................................. 694. 4.5. OPERATORI ............................................................................................. 715.4.6. Structurile de control ................................................................................. 725.4.7. Tablouri ....................................................................................................... 745.4.8. Funcţii ......................................................................................................... 795.4.9. FIŞIERE ...................................................................................................... 805.4.10. Stocarea datelor în sistemul utilizatorului cu PHP ............................... 825.4.11. PHP şi formulare HTML ......................................................................... 84

Bibliografie completă a cursului ........................................................................................................... 90Bibliografie opţională ............................................................................................................................. 96

Page 9: Proiectarea Realizarea Site Si Portalurilor Web

9

Obiectivele cursului/disciplinei: -Cursul de „Proiectarea şi realizarea site-urilor şi portalurilor Web” îşi propune abordarea problematicii privind programarea Web, folosind triad-ul PHP, MySql şi Apache, fiind aplicată metoda de bază pentru însuşirea tehnicilor de programare web care sunt vitale pentru crearea de aplicaţii performante sub platformele Windows. -Se oferă programatorului toate informţiile necesare pentru stăpânirea limbajului HTML cu scopul de a putea fi folosit în combinaţie cu limbajul de scripting PHP. Se oferă programatorului toate cunoştinţele necesare pentru crearea unor aplicaţii web complexe. Se începe cu abordarea MySql pentru a se furniza informaţiile necesare pentru crearea de baze de date relaţionale pe parte de server de baze de date. Se continuă cu prezentarea conceptelor de bază despre dezvoltarea de programe pe parte de server fapt ce impune abordarea tehnici client-server, a noţiunilor de clienţi şi servere de web cu exemplificare a server-ului Apache. Se abordează de la simplu spre complex modul de programare în limbajul de scripting PHP. -Se abordează problematica accesului la baze de date relationale din cadrul limbajului de scripting PHP.

Page 10: Proiectarea Realizarea Site Si Portalurilor Web

10

2. Suportul de curs

MODULUL 1 NOŢIUNI FUNDAMENTALE PENTRU CONCEPEREA, PROIECTAREA ŞI IMPLEMENTAREA UNEI APLICAŢII ELECTRONICE

1.1.1. Scopul şi obiectivele modulului

Scopul acestui modul este familiarizarea cursantului cu termenul de reţea Internet, cu principiului de funcţionare a modelului clasic de aplicaţii web Client-Server, cu prezentarea limbajelor de scripting pe parte de server şi cu Serverul Apache . Ca obiective, se vor atinge următoarele: 1. Familiarizarea cu conceptele folosite în reţeau INTERNET şi evoluţia acestei reţele 2. Fixarea principiilor de funcţionare a modelului Client-Server 3. Oferirea unei imagini de ansamblu asupra limbajelor de scripting pe parte de server 4. Asimilarea noţiunii de server web 5. Prezentarea serverului web APACHE

1.1.2. Schema logică a modulului

Acest modul este compus din patru subcapitole: primul subcapitol are ca scop evidenţierea conceptului legate de reţeau Internet care stau la baza aplicaţiilor web.

Al doilea subcapitol are ca scop descrierea principiul de funcţionare a modelului Client-Server.

Al treilea subcapitol are ca scop prezentarea teoriei limbajelor pe parte de server şi exemplificarea acestora.

Al patrulea subcapitol are ca scop

prezentarea teoriei legate de serverulu Apache.

Fig.1.1. Structura modulului 1

Recomandǎri privind studiul:

Reţea Internet

Model Client-Server

Limbaje de scripting pe parte de server

Server Apache

Page 11: Proiectarea Realizarea Site Si Portalurilor Web

11

1. Sunt necesare cunoştinţe teoretice de algoritmică şi programare; 2. Studierea conceptelor prezentate în vederea utilizării lor pe parcursul

celorlalte capitole Rezultate aşteptate:

1. Asimilarea conceptelor de bază legate de aplicaţiile electronice. 2. Studenţii trebuie să înţeleagă şi să asimileze pricipiile de bază ale afacerilor

electronice

1.1.3. Conţinutul informaţional detaliat

1.1.3 .1Reţeaua Internet - concept şi evoluţie

Internet-ul este definit ca o colecţie largă de reţele sau ca o “reţea de reţele” [AllenWaytt1998]. Amândouă definiţiile sunt exacte dar insuficiente pentru a defini cu exactitate reţeaua Internet.

Elaborarea unei definiţii complexe pentru reţeaua Internet se dovedeşte a fi o muncă laborioasă deoarece persoane diferite o percep sub aspecte diferite fapt ce a avut ca rezultat apariţia în literatura de specialitate a unui număr mare de definiţii şi accepţiuni ale Internet-ului. După părerea autoarei, având în vedere scopul prezentei lucrări, Internet-ul se poate considera ca fiind un mijloc de acces la o comunitate foarte educată şi cu perspective, care dispune de venituri mai mari decât media.

În concepţia economiştilor [Godeluck2002] apariţia Internet-ului a schimbat radical natura creşterii economice ducând la apariţia unei noi economii bazate pe calităţi intrinseci ale reţelei şi concentrate asupra unui nou gen de întreprinderi.

La baza Internet-ului se află cercetările demarate în 1958 de către Departamentul de Apărare al Armatei Americane, denumit ARPA. ARPA avea misiunea de a efectua, printre altele, cercetări în domeniul tehnologiilor de reţea şi telecomunicaţiilor. Această reţea lega cele mai importante calculatoare din Statele Unite prin intermediul liniilor închiriate.

În anul 1962, noul conducător al agenţiei, Dr. J.C.R. Liecklider, a adoptat o serie de măsuri care au condus la mutarea treptată a acestei organizaţii (ARPA) în sectorul civil, în special în mediul universitar [Bucur2002].

În anul 1969, Departamentul Apărării S.U.A., prin Agenţia pentru Proiecte de Cercetare Avansată (ARPA), a creat o reţea experimentală de comutare de pachete, bazată pe linii telefonice [AllenWaytt1998]. Liniile telefonice erau ideale pentru recepţionarea şi transmiterea informaţiilor prin comutare de pachete. Din această colecţie iniţială de reţele s-a născut ARPANet, unul dintre strămoşii Internet-ului. ARPANet permitea oamenilor de ştiinţă, cercetătorilor şi personalului militar din diverse locuri să comunice prin poştă electronică sau prin convenţii pe calculator, în timp real. De la jumătatea deceniului VII şi până în prezent preocupările cercetătorilor s-au îndreptat cu precădere spre arhitecturile de reţele şi spre găsirea răspunsului la următoarea întrebare “Cum se pot furniza servicii de comunicaţii prin intermediul unui sistem de reţele

interconectate?” [Robu2002]. Rezultatele cercetărilor au condus la dezvoltarea tehnologiilor inter-reţea, la modele de sisteme cu mai multe nivele de protocoale de comunicare-operare şi la paradigma interacţiunii de tip “client-server”.

Page 12: Proiectarea Realizarea Site Si Portalurilor Web

12

În 1972 RFC 354 a creat File Transfer Protocol (FTP), o nouă capitală, deoarece în ea, este specificat formatul datelor schimbate pe reţea, deschizând calea transferului de soft-uri sau de documente [Godeluck2002]. În acelaşi an, Ray Tomlinson a inventat prima adresă electronică între două calculatoare situate la distanţă. Din acel moment orice persoană, care are acces la un calculator conectat la Internet, poate importa soft pe calculatorul său prin intermediul FTP-ului. Tot în anul 1972 a fost înfiinţată la New York, organizaţia International Networking Group sub conducerea lui Vinton Cerf. Scopul principal al acestei organizaţii a fost acela de a crea o “reţea de reţele”, fapt care permitea comunicarea între diferite sisteme eteroclite prin intermediul unui limbaj comun. În acest context, în anul 1978 a fost creat protocolul TCP/IP. Transmision Control Protocol (TCP) împarte mesajele în datagrame, le reansamblează în ordine în momentul sosirii lor la destinatarul precizat în cadrul lor şi trimite apoi expeditorului pachete post adresate. Internet Protocol (IP) transportă datagramele.

În anul 1975 apare o nouă inovaţie în domeniu şi anume newsgroups, adică grupurile de discuţie electronică.

În anii ’80, reţelele conectate la ARPANet au continuat să se extindă. În anul 1982, ARPANet s-a unit cu MILNet, care era o reţea militară, cât şi cu alte reţele. [AllenWaytt1998] Reţeaua Internet s-a născut ca urmare a reuniunii acestor reţele. Pe măsură ce tot mai multe colegii şi companii de cercetare se conectau la Internet, rolul ARPA s-a diminuat. Arhitectura şi protocoalele dezvoltate în cadrul reţelei ARPA până în anii 1979 stau la baza Internet-lui [Robu2002]. Din varianta sa de început, Internet-ul de azi nu mai păstrează decât conceptul de transmisie a informaţiei sub formă de pachete.

În anul 1989, Pentagonul îşi retrage subvenţiile, acţiune ce va avea ca rezultat dispariţia ARPANET-ului. În această perioadă oamenii din întreaga lume intră în posesia NET-ului ca urmare a revoluţiei microinformaticii. Rezultatele acestei revoluţii se vor concretiza în faptul că, atât întreprinderile cât şi persoanele fizice vor putea avea acces la Internet folosind diferite tipuri de conexiuni.

În anul 1995 Internet-ul a fost descoperit de lumea comercială. Din acest an, Internet-ul a început să reprezinte un instrument de creştere a veniturilor pentru toate firmele care s-au adaptat noului mediu de desfăşurare a afacerilor. Internet-ul lărgeşte câmpul de acţiune al comercianţilor [Choy1999] şi înlătură barierele de intrare în acest câmp, chiar şi pentru întrepriderile mici şi mijlocii. El oferă consumatorilor posibilitatea alegerii celor mai competitive produse de pe piaţa globală. În noul context Internet-ul s-a transformat treptat într-un mediu de afaceri. Acest lucru a fost posibil datorită creării şi stabilirii unei legături între telecomunicaţii şi computere. Unul dintre cele mai importante caracteristici ale acestui instrument este faptul că informaţia circulă uşor şi repede în toată lumea ca şi cum ar fi într-un singur oraş.

1.1.3.2 Modelul CLIENT-SERVER

Modelul Client-Server[site17] [LalaniChandak1997] stă la baza tuturor

aplicaţiilor electronice şi serviciilor Internet. Clientul, în general, rulează pe calculatorul utilizatorului şi este folosit pentru a accesa informaţii sau alte aplicaţii din cadrul reţelei Internet. Exemplul de client este browser-ul care poate îndeplini cu succes următoarele sarcini:[site17] emite cererile şi recepţionează datele care se vor afişa; formatează documentele pe baza tag-urilor HTML;

Page 13: Proiectarea Realizarea Site Si Portalurilor Web

13

afişează documentele. Serverul [site17] rulează, în general, pe un calculator centralizator sau aflat la

distanţă, furnizând sau oferind informaţii/servicii clienţilor. Exemple de servere folosite în prezent sunt: Apache, IIS şi etc.

Clientul şi serverul se pot găsi pe acelaşi calculator, în cazul în care se utilizează mecanisme de comunicaţie locală sau pe calculatore diferite, atunci când se folosesc mecanisme de comunicaţie în reţea. (Figura1.2)

Figura 2.1.3.2. Arhitectura client server - adaptare [LalaniChandak1997] Un server web poate fi comparat cu un chelner dintr-un restaurant.[site31]

Chelnerul va fi serverul web, restaurantul va fi mediul în care acesta lucrează (în special sistemul de operare), bucătăria restaurantului va fi sistemul de fişiere din care serverul web va alege fişierele cerute de clienţi. Această comparaţie este posibilă deoarece şi serverul web şi chelnerul au aceeaşi funcţie principală: aceea de a servi.

Un server web este un program care rulează pe un calculator, aşteaptă pe un port o conexiune TCP venită de la un client şi serveşte acestuia pagini web folosind protocolul HTTP. [site31]

Serverul web este un software, un program de sine stătător, un executabil cu o funcţie bine stabilită: accea de a servi la cerere pagini de Internet într-un mod bine determinat. Acest software poate fi: Apache HTTP Server, Microsoft Internet Information Services (IIS), iPlanet Web Server, Roxen WebServer, Zeus WebServer, ş.a. Serverul web rulează pe un calculator. [site31]

Web serverele se pot accesa astfel: http://www.ubbcluj.ro/: cel mai simplu mod de adresare; http://www.ubbcluj.ro/index.html presupune adresarea fişierului

index.html aparţinând subdomeniului ubbcluj ; http://localhost:8080/exemplu/exemplu1.html: pentru a accesa fişierul

exemplu1.html din directorul exemplu de pe maşina locală, prin intermediul serverului care ascultă pe portul 8080;

https://90.86.22.1/exemplu.php: adresarea securizată a fişierului exemplu.php folosind IP-ul maşinii gazdă.

Clientul folosit pentru accesarea serverului web poate fi atât un browser cât şi un alt program capabil să se conecteze la un port TCP (de exemplu: telnet, ftp, etc.).

Browserul [site31] este un program folosit la afişarea de conţinut web. Acesta se impune să poată să interpreteze pagini HTML, să afişeze imagini şi alte forme de conţinut multimedia, să folosească referinţe (link-uri) etc. Cea mai importantă

-

Page 14: Proiectarea Realizarea Site Si Portalurilor Web

14

caracteristică a sa este capacitatea lui de a se conecta prin protocolul TCP la un server web. Metoda de conectare s-a prezentat anterior. În acest context se impune să se precizieze că introducerea unei adrese web (de exemplu: http://www.ubbcluj.ro/exemplu.html) în browser, determină executarea următorilor paşi: [site31][site8][Boian1997] . 1. Browser-ul determină protocolul pe care îl va folosi în dialogul cu serverul web

(http:// = HTTP - HyperText Transfer Protocol). 2. Browser-ul determină adresa web a serverului (www.ubbcluj.ro). 3. Browser-ul determină ce anume trebuie să ceară de la serverul web, adică pagina

html numită exemplu.html. 4. Browser-ul determină adresa IP a maşinii pe care rulează serverul web prin

interogări DNS (Domain Name Service) pe baza adresei web introdusă în address bar.

5. pe baza adresei IP determinată anterior, browserul va crea o conexiune TCP pe portul specificat în URL sau implicit pe portul 80.

6. Browser-ul lansează o cerere GET sau POST către server specificând fişierul dorit: GET /exemplu.html.

7. Serverul web răspunde trimiţând fişierul dorit sau o eroare corespunzătoare în cazul în care trimiterea nu este posibilă (lipsa fişierului, drepturi de acces insuficiente etc.). Aici conexiunea dintre client şi server se încheie.

8. Browser-ul analizează fişierul primit şi îl afişează corespunzător. Browser-ele cele mai cunoscute şi deci cele mai folosite sunt: Microsoft Internet

Explorer, Mozilla, Netscape, Opera, Lynx, etc. Rolul serverului web este, aşa cum s-a precizat mai spus acela de a servi fişiere.

În principal aceste fişiere sunt în format HTML, PHP, ASP şi etc. Serverul web poate să servească şi alte fişiere: imagini, sunete, animaţii, arhive etc. Fişierele care se pun la dispoziţia navigatorului se află stocate într-un director văzut ca rădăcină de către web server (exemplu de strucutră de directoare este: /var/www/html/ pentru serverul web Apache). Acest director se specifică în configuraţia serverului şi în el se vor stoca fişierele şi structura de subdirectoare pe care le va folosi serverul web în căutarea unui fişier cerut de către un client. Servirea unui fişier se efectuează dacă fişierul specificat există, dacă este accesibil de către serverul web şi dacă drepturile de acces nu interzic acest lucru. În cazul neîndeplinirii uneia dintre aceste condiţii, serverul va trimite un cod de eroare sau o pagină predefinită care să informeze despre eroarea apărută. De multe ori, fişierele pe care trebuie să le servească depind de alte programe externe de generare de cod (CGI, ASP, JSP, PHP). Fişierele care necesită astfel de prelucrări vor fi generate de programul extern, a cărui rezultat va fi un fişier HTML nou creat. Acest fişier va fi transferat serverului web, pe care acesta poate să-l servească ca pe orice alt fişier. Acest proces stă la baza tuturor site-urilor dinamice şi este absolut necesar pentru pagini al căror conţinut necesită modificări în funcţie de anumite criterii.

1.1.3.3 Limbaje de scripting pe parte de server

Cu toate avantajele limbajului HTML, el nu poate fi folosit în orice context.

Conţinutul dinamic şi prelucrarea logică depăşesc posibilităţile limbajului HTML fapt ce a determinat apariţia şi dezvoltarea limbajelor de scripting. Limbajele de scripting incluse între tag-urile HML permit lucrul cu variabile, construcţii logice şi interogări ale bazelor de date. În plus, scripturile pot fi folosite cu miniaplicaţii şi controale.

Page 15: Proiectarea Realizarea Site Si Portalurilor Web

15

Limbajele de scripturi [microsoft-site] sunt limbaje simple, concepute pentru operaţii speciale şi care sunt asociate unor aplicaţii sau funcţii. Un script este un program alcătuit dintr-un set de instrucţiuni, elaborate în cazul nostru printr-un limbaj de scripting, destinat unui utilitar sau a unei aplicaţii. Exemple de astfel de limbaje sunt Perl, PHP,VBScript şi JScript. În procesul de construire a paginilor web cu PHP, se pot folosi atât JScript cât şi VBScript sau orice alt limbaj de scripting acceptat.

VBScript Edition [w3schools-site] este un subset al limbajului Visual Basic, fiind folosit pentru dezvoltarea scripturilor destinate browserelor Web şi altor aplicaţii care folosesc controale ActiveX, servere de automatizare şi miniaplicaţii Java.

Principiile de bază ale limbajului VBScript sunt următoarele: pune la dispoziţia dezvoltatorilor care folosesc limbajul VB o modalitate

de dezvoltare pentru Web la nivelul serverului şi al clientului; aduce în Web un limbaj de scripting uşor de folosit şi de înţeles; extinde familia de limbaje VB pe platforme care nu asigură suportul

pentru VB sau VBA. JScript [books-site] este un limbaj de scripting interpretativ, bazat pe obiecte,

proiectat special pentru Internet. Deşi, are mai puţine posibilităţi decât limbajele complete orientate spre obiecte, precum C++ sau Java, JScript este un instrument mai mult decât suficient pentru scopul în care a fost creat, şi anume, dezvoltarea de aplicaţii pentru browsere Web, care folosesc controale ActiveX, miniaplicaţii Java sau servere de automatizare. JScript nu permite scrierea aplicaţiilor independente şi are posibilităţi limitate pentru citirea sau scrierea fişierelor.

PHP este un limbaj de programare pentru server. Codul PHP poate fi integrat în interiorul codului HTML. Scriptul PHP va fi apoi procesat de către server care va returna un fişier HTML. Acest tip de interacţiune permite executarea unor operaţii complexe.

Scriptarea [microsoft-site] este o modalitate relativ simplă de adăugare a conţinutului dinamic la o pagină PHP, mult mai simplă decât folosind interfeţele CGI (Common Graphic Interface). Scriptarea oferă posibilitatea de dezvoltare a conţinutului dinamic mai multor persoane decât oricare alte instrumente, protocoale şi specificaţii de dezvoltare. Spre deosebire de CGI, scriptingul este atractiv şi accesibil maselor largi de programatori, la fel ca Visual Basic şi Microsoft Access

1.1.3.4. Server APACHE

. Din cele prezentate până în acest moment, se observă uşor că aplicaţiile WEB

reprezintă atât prezentul cât şi viitorul. Acestea funcţionează pe baza unei arhitecturi client-server aşa cum s-a arătat în acest capitol. Aplicaţiile realizate cu limbajul HTML combinat cu un limbaj de scripting, în speţă PHP, utilizează un singur client şi anume browser-ul WEB. Limbajul de bază a browser-ului WEB este HTML. Acest limbaj dispune de o serie de tag-uri care descriu modul în care va arăta o pagină WEB. Majoritatea prelucrărilor efectuate de aplicaţiile Web, au loc pe server. O aplicaţie specifică, numită server Web, va asigura comunicarea cu browserul. Un server de baze de date relaţionale stochează informaţiile pe care le va accesa aplicaţia. În final mai este nevoie de un limbaj care să intermedieze interogările ce apar între serverul Web şi serverul de baze de date. Acest limbaj va mai fi utilizat şi pentru a executa anumite operaţii asupra informaţiilor care vin dinspre şi spre serverul Web.

Server-ele Web au ca funcţionalitate de bază, recepţionarea de cereri anonime de la clienţi şi furnizarea de informaţii într-o manieră dorită a fi eficientă şi rapidă

Page 16: Proiectarea Realizarea Site Si Portalurilor Web

16

[Ricart1998]. În fapt, un server Web este un daemon care acceptă conexiuni conform protocolului HTTP, răspunzând cererilor recepţionate de la clienţi. Ca şi alte protocoale utilizate în Internet, protocolul HTTP (HyperText Transfer Protocol) este un protocol de tip cerere-răspuns, bazat pe TCP/IP, destinat transferurilor informaţiilor hipermedia. Apache foloseşte HTTP pentru a comunica cu Internet Explorer, pentru a analiza URL-ul şi a stabili protocolul de conectare în cazul de faţă: http://localhost.

Conform statisticii realizate de Netcraft1

Dorinţa creatorilor Apache, după cum se specifică în site-ul Grupului Apache

, din luna aprilie 2002, efectuate asupra a circa 38 milioane de site-uri, serverul Web cel mai folosit este Apache, ocupând 53,76% din piaţă procent care a continuat să crească direct proporţional cu trecerea anilor şi până în prezent.

Proiectul Apache reprezintă dezvoltarea unui soft colaborativ care urmăreşte cearea şi utilizarea unui Web Server puternic şi robust. Proiectul era condus de către voluntari din întreaga lume. Acest grup de voluntari foloseşte Internet-ul pentru comunicare, planificarea şi dezvoltarea server-ului şi a documentaţiei de rigoare. Ei sunt cunoscuţi sub denumirea de Grupul Apache (Apache Group). În plus, sute de utilizatori au contribuit cu idei, coduri şi documentaţie la acest proiect.

În februarie 1995, cel mai popular Web Server din Internet era HTTP Daemon dezvoltat de Rob McCool la NCSA (National Center for Supercomputing Applications), Universitatea din Illinois. La 1 decembrie 1995 a fost lansat pe piaţă Apache 1.0. Acest Web Server a fost încă de la început un succes şi la mai puţin de un an de la formare Apache a depăşit HTTD (HTTP Daemon) [Ricart1998].

Apache furnizează o implementare robustă a protocolului HTTP. Apache rămâne o platformă pe baza căreia indivizii şi instituţiile pot să construiască sisteme în scopuri experimentale şi nu numai. De obicei, faptul că o companie deţine o piaţă este considerat ca un avantaj economic. Aceasta ar însemna, în acest caz, ca respectiva companie să deţină toate protocoalele prin care se fac tranzacţiile în Internet. Dar, World Wide Web nu este în proprietatea nimănui, iar această proprietate a protocoalelor trebuie prevenită tocmai din această cauză. Existenţa unei implementări robuste a protocoalelor Web care să fie disponibilă absolut gratuit tuturor companiilor este, cu siguranţă, un lucru pozitiv. Pe de altă parte Apache este o entitate organică, cei care beneficează de ea, prin utilizare contribuie de cele mai multe ori la dezvoltarea ulterioară a platformei. Dacă cineva plăteşte pentru un produs software, nu va dori după aceea să-i repare defectele.

2

Ce se petrece pe server atunci când se introduce în bara de adrese a browser-ului http://www.localhost/proiectphp/Index.php de exemplu. Când se acţionează tasta „Enter” browser-ul trimite către serverul de HTTP http://localhost/proiectphp, o cerere afişează conţinutul directorului „proiectphp” dacă se mai adaugă şi „Index.php” atunci se afişează conţinutul paginii „Index.php” din directorul „proiectphp”. Acest server este Apache. Apache este setat să servească browser-ului doar pagini HTML. Paginile HTML pot fi deja pe server sau create, tot acolo, de către alte aplicaţii şi servite ca HTML browser-ului clientului. În momentul în care se cere o pagină cu extensia „.html” de pe server, Apache o serveşte imediat. Dacă se cere o pagină cu extensia „.php”

este ca platforma să fie folosită de cât mai multă lume (companii mari sau mici, instituţii de cercetare, şcoli, Intranet-uri) şi să se acopere cât mai multe domenii de activitate.

1 http://www.netcraft.com/survey 2 http://www.apache.org,

Page 17: Proiectarea Realizarea Site Si Portalurilor Web

17

Apache verifică dacă este configurat să servească pagini cu această extensie şi ce program se ocupă de ele. Astfel, atunci când se cere o pagină cu extensia „.php”, serverul Apache va trimite mai departe cererea către PHP. PHP preia cererea, rulează codul din program şi dacă vede că se cer informaţii din baza de date MySQL, o accesează, extrage informaţiile cerute şi construieşte o pagină HTML pe care o va trimite server-ului Apache pentru ca acesta să o servească clientului. Caracteristicile server-ului Apache sunt: flexibilitate, portabilitate, siguranţă şi extensibilitate. Serverul Apache se distribuie gratuit. Cel mai puternic motiv pentru folosirea acestui server este faptul că poate rula atât sub Unix cât şi sub Windows după preferinţele fiecăruia.

Page 18: Proiectarea Realizarea Site Si Portalurilor Web

18

Teme pentru verificarea cunoştinţelor 1.Internet-ul este definit ca: reţea locală de reţele ; ca o ca o colecţie largă reţea de reţele ca o reuniune de calculatoare pe arie medie de extindere ca o platformă pentru o colecţie de calculatoare 2.TCP (Transmission Control Protocol) are ca funcţie primară corectarea erorilor şi secvenţierea transportului. transmiterea mesajelor în format electronic pe Internet transmiterea de pachete de la sursă la destinaţie definirea modului prin care vor dialoga clientul şi serverul 3.Trăsăturile limbajului HTML sunt: Dependenţa de platformă, Structurarea riguroasă a documentelor, Hipertext Independenţa de platformă, restructurarea riguroasă a documentelor,Hiperlink Hipertext, Independenţa de platformă, Structurarea riguroasă a documentelor Interferenţa cu platforma , Structurarea riguroasă a serverelor, Hiperdocument Răspunsuri 1.Internet-ul este definit ca: reţea locală de reţele ; ca o ca o colecţie largă reţea de reţele ca o reuniune de calculatoare pe arie medie de extindere ca o platformă pentru o colecţie de calculatoare 2.TCP (Transmission Control Protocol) are ca funcţie primară corectarea erorilor şi secvenţierea transportului. transmiterea mesajelor în format electronic pe Internet transmiterea de pachete de la sursă la destinaţie definirea modului prin care vor dialoga clientul şi serverul 3.Trăsăturile limbajului HTML sunt: Dependenţa de platformă, Structurarea riguroasă a documentelor, Hipertext Independenţa de platformă, restructurarea riguroasă a documentelor,Hiperlink Hipertext, Independenţa de platformă, Structurarea riguroasă a documentelor Interferenţa cu platforma , Structurarea riguroasă a serverelor, Hiperdocument

Bibliografie

[Stanca_07]Stanca L., Suportul tehnologic al afacerilor electronice, Editura Presa Universitară Clujeană, 2007 pag:5-16, Biblioteca Facultăţii [Stanca_04] Stanca L.,Suportul economic al afacerilor electronice, Editura Presa Universitară Clujeană, 2004 pag:5-20, Biblioteca Facultăţii [Buraga_05] Buraga S,Proiectarea site-urilor WEB-Design şi funcţionalitate, Editura Polirom, 2005, Biblioteca facultăţii, pag.57-90

Page 19: Proiectarea Realizarea Site Si Portalurilor Web

19

MODULUL 2 PREZENTAREA ELEMETELOR DE BAZĂ ALE LIMBAJULUI HTML

2.1. Scopul şi obiectivele modulului

În cadrul activităţilor de proiectării şi realizării siteurilor şi portalurilor Web un

rol decisiv îl joacă limbajul HTML. După descoperierea elementelor de bază a modului de funcţionare a spaţiului electronic se impune prezentarea în cadrul acestui modul a noţiunilor de bază şi avanstate ale limbajului HTML. Conceptele de bază abordate în cadrul acestui modul sunt:

Trăsăturilor caracteristice ale limbajului HTML; Structurii unei pagini HTML ; Tag-ur de formatare a textului; Stilurilor fundamentale de formatare a textului Hyperlink ; Liste ; Tabele; Imagini; Formulare; Cadre (frame).

Obiective acestui modul sunt: 1. Familiarizarea cu conceptele WEB, pagină WEB, HTTP; 2. Asimilarea caracteristicilor limbajului HTML 3. Descrierea structurii unui document HTML 4. Însuşirea tag-urilor de formatare la nivel de text 5. Însuşirea tag-urilor Hyperlink, liste 6. Prezentarea tag-uri de definire a diverselor obiecte

Recomandǎri privind studiul:

1. Studierea conceptelor prezentate în vederea utilizării lor pe parcursul celorlalte capitole.

2. Asimilarea conceptelor de bază legate de dezvoltarea proiectelor web statice care stau la baza dezvoltării proiectelor web dinamice prezentate în capitolele următoare.

Rezultate aşteptate:

1. Studenţii trebuie să fie capabili să îşi prezinte cunoştinţele teoretice de natură coerentă şi consistentă.

2. Studenţii trebuie să poată proiecta şi implementa un proiect de pagină web statică de mare complexitate.

Page 20: Proiectarea Realizarea Site Si Portalurilor Web

20

2.2. Scurtă recapitulare a conceptelor prezentate anterior În cadrul primului modul s-a impus să se prezinte noţiunile de bază a mediului

virtual, a limbajelor de scripting pe parte de serverşi nu în ultimul rând a principiului de funcţionare a modelului client-server. Pe baza acestor noţiuni se vor creiona toate celălate noţiuni prezentate în modulele viitoare.

2.3. Schema logică a modulului

Acest modul este compus din şapte subcapitole: primul subcapitol are ca scop evidenŢierea conceptului de bază ale limbajului HTML iar în celălate şase subcapitole sunt prezentatea pe rând elemnte de limbaj HTML.

Fig.2.3.1 Structura modulului 2

2.4.Conţinutul informaţional detaliat

2.4.1. Elemente de limbaj HTML

Web-ul este rodul întâlnirii dintre un inventator şi un strateg.[Godeluck2002]

Inventatorul, în acest caz, este Tim Berners-Lee care a conceput Universal Resource Locator (URL). URL este un sistem universal de adresare şi de realizare a concordanţei documentelor pe reţea, fiecare document primind echivalentul unui număr de telefon înregistrat oficial într-un anuar. Trecerea de la un document la altul se va face prin accesarea legăturilor de tip hypertext. Tim Berners Lee este creatorul limbajului HTML, care permite scrierea unui text în cadrul căruia se inserează legături ascunse către alte pagini, care cuprind la rândul lor legături către alte pagini. Aceste legături sunt într-un număr extrem de mare, fiind asemuite cu o pânză de paianjen. Hypertext Transfer Protocol (HTTP) este resursa care permite încărcarea paginilor solicitate de utilizator pe ecranul calculatorului său. Apariţia acestui protocol este considerată de majoritatea specialiştilor în domeniu, ca o etapă decisivă în procesul descentralizării cunoaşterii,

Obiecte HTML

Imagini, Frame-uri, Forme

Hyperlink Liste

Elemente de limbaj HTML

Structura unui document HTML

Tag-uri de formatare fizică şi logică a textului

Page 21: Proiectarea Realizarea Site Si Portalurilor Web

21

proces iniţiat de apariţia Internet-ului. HTTP a făcut posibilă vizitarea site-urilor şi navigarea prin spaţiul virtual.

În literatura de specialitate există o serie de definiţii pentru site-uri Web dintre care s-a ales cea care se potriveşte cel mai bine temei prezentei abordări, aceasta fiind:

“Pagina Web-Document din World Wide Web este alcătuită dintr-un fişier HTML şi din fişierele asociate pentru grafică şi scripturi, aflate într-un anumit director de la o anumită maşină (fiind astfel identificabile printr-o adresă URL). De obicei, o pagină Web conţine legături la alte pagini Web. [Microsoft1999] Primul document dintr-un site web se numeşte pagina de bază ~ index sau home page. Ea serveşte ca punct de plecare într-un sistem hipertext [Microsoft1999] sau, cu alte cuvinte, ea se deschide când se navighează la un site Web. [Plotkin2002] Pagina de bază de regulă are o denumire consacrată, home.html, default.html sau index.html.

HTML-ul (Hypertext Markup Language), este un limbaj cu ajutorul căruia se descrie formatul primar în care documentele sunt distribuite şi vizualizate pe Web. Trăsăturile limbajului HTML sunt: [site2]

1. Independenţa de platformă care înseamnă că un document poate fi afişat în mod asemănător pe computere diferite (deci cu font, grafică şi culori diferite), lucru vital pentru un public ţintă atât de variat.

2. Structurarea riguroasă a documentelor permite convertirea acestora dintr-un format în altul precum şi interogarea unor baze de date formate din aceste documente.

3. Hipertext înseamnă că orice cuvânt, frază, imagine sau alt element al documentului văzut de către un client poate face referinţă la un alt document, ceea ce simplifică mult navigarea între multiplele pagini web sau chiar în interiorul aceleiaşi pagini web.

Deci, HTML defineşte structura şi modul de afişare a informaţiei într-o pagină web, prin intermediul unor marcaje şi a atributelor acestora.

Un document HTML apare ca un text ce conţine o serie de construcţii delimitate de simbolurile “<” şi “>”. Aceste construcţii specifică indicaţii speciale adresate navigatorului (browser-ului) Web. Orice construcţie care apare între simbolurile “<” şi “>” o vom numi marcaj, tag sau instrucţiune. Deoarece este mai scurt, vom folosi în continuare termenul tag. 2.4.2. Structura unui document HTML

Documentele HTML încep cu tag-ul <HTML> şi se termină cu tag-ul

</HTML>. Între aceste tag-uri se vor introduce două secţiuni, şi anume: 1. secţiunea de antet a documentului delimitată de tag-urile:

<HEAD>...</HEAD>, care cuprinde o colecţie de informaţii despre document care nu sunt afişate în browser;

2. secţiunea de corp a documentului delimitată de tag-urile: <BODY>...</BODY>, care cuprinde conţinutul propriu-zis al paginii HTML, adică ceea ce se va afişa în browser.

Deci, un document HTML are următoarea structură: <HTML> <HEAD>....</HEAD>

<BODY>....</BODY> </HTML>

Page 22: Proiectarea Realizarea Site Si Portalurilor Web

22

Tag-ul <BODY> are rolul de a delimita partea principală a unui document HTML şi poate conţine atributele de formatare a acestuia

Tag-urile care pot fi folosite în interiorul secţiunii antet sunt: <TITLE>text</TITLE> ~ se foloseşte pentru a da un titlu documentului

HTML. Acesta va fi afişat în bara de titlu a browser-ului. Tag-ul <META> este folosit pentru a oferi mai multe informaţii serverelor

despre cum trebuie manevrat (identificat, indexat şi catalogat) documentul HTML Tag-ul <STYLE> este introdus într-un document HTML cu scopul de a seta

toate proprietăţile care controlează înfăţişarea sa, inclusiv setarea fontului, culorii, alinierii şi a cadrelor. Tagul <STYLE> este recomandat să se definească în antetul unui document HTML. 2.3.3 Tag-uri de formatare a textului

În cadrul unei pagini Web, ca şi în orice document creat cu un editor de texte cum ar fi, de exemplu, în Word aceasta poate să conţină un text împărţit pe capitole. Titlurile capitolelor şi a paginii se precizează cu tag-ul <Hn>.

Tag-ul <P> se foloseşte pentru a împărţi textul existent în cadrul unui document HTML în paragrafe.

Tag-ul <HR> are rolul de a inserara linii orizontale în cadrul unui document HTML.

Tag-ul <CENTER>...</CENTER> are ca efect alinierea pe centru a materialul (text, imagini, tabele, liste, etc.) introdus între aceste tag-uri.

Tag-ul <NOBR>...</NOBR> are ca efect afişarea textului cuprins între aceste tag-uri pe un singur rând indiferent de lungimea lui. Deci, textul nu poate fi rupt în mai multe linii ca în cazul folosirii tag-ului <P>...</P>.

Tag-ul <PRE>...</PRE> afişează textul scris între cele două tag-uri păstrând formatările efectuate în editorul de documente HTML.

Tag-ul <DIV>...</DIV> se foloseşte în cazul în care se doreşte împărţirea unui document HTML într-o serie de secţiuni.

Tag-ul <FONT>...</FONT> se foloseşte pentru a schimba caracteristicile fontului din cadrul textului unei pagini web. ul de culori utilizat.

În continuare se va da un exemplu de pagină web în care se vor folosi toate tag-urile de formatare a textului unei pagini web prezentate până în acest moment. Această pagină se doreşte a fi un exemplu de utilizare a tag-urilor de formatare a textului într-un document HTML fapt pentru care conţinutul acesteia s-a creat în conformitate cu scopul propus. Pagina care se crează se numeşte ”Exemplu2.html” şi are următorul cod sursă:

<html> <head> <title>Tag-uri de Formatare a textului</title><br> </head> <body bgcolor="yellow"> <H1> Exemple de utilizare a tag-ului &lt;Hn> </H1> <H1> Heading 1 definit cu tag-ul &lt;!-- H1 --> </H1> <H2> Heading 2 definit cu tag-ul &lt;!-- H2 --> </H2> <H3> Heading 2 definit cu tag-ul &lt;!-- H3 --> </H3> <H4> Heading 2 definit cu tag-ul &lt;!-- H4 --> </H4>

Page 23: Proiectarea Realizarea Site Si Portalurilor Web

23

<H5> Heading 2 definit cu tag-ul &lt;!-- H5 --> </H5> <H6> Heading 2 definit cu tag-ul &lt;!-- H6 --> </H6> <H2> Exemple de utilizare a tag-ului &lt;P> cu alinierea acestora la stanga,centru si dreapta </H2> <p align="left">Aici se introduce continutul paragrafului 1</p> <p align="center">Aici se introduce continutul paragrafului 2</p> <p align="right">Un comentariu este definit de tagul <b>&lt;!-- textul comentariului --> </b><br></p> <H2> Exemple de utilizare a tag-ului &lt;HR > cu alinierea acestora la stanga, centru si dreapta si stabilirea lungimii, grosimii, culorii, umbrei</H2> <p> Linia urmatoare are lungimea de 100%, grosimea predefinita, culoarea rosie, aliniata la stanga si nu are umbra. <hr width=100% align="left" color="#ff0000" noshade> <p> Linia urmatoare are are lungimea de 50%, grosimea de 6 cm, culoarea verde, aliniata pe centru si nu are umbra. <hr width=50% size=5 align="center" color="#00ff00" noshade> <p> Linia urmatoare are are lungimea de 30%, grosimea de 10 cm, culoarea albastra, aliniata la dreapta si are umbra. <hr width=30% align=left size=10 color="#0000ff" shade=60%> <H2> Exemple de utilizare a tag-ului &lt;CENTER> </H2> <center> Text afisat in mijlocul paginii web. In cadrul acestui tag pot fi cuprinse toate tag-urile HTML</center> <H2> Exemple de utilizare a tag-ului &lt;NOBR> </H2> <NOBR> Acest tag are ca efect afisarea textului cuprins între aceste tag-uri pe un singur rând indiferent de lungimea lui. Deci textul nu poate fi rupt în mai multe linii ca în cazul folosirii tag-ului &lt;P> </NOBR> <H2> Exemple de utilizare a tag-ului &lt;PRE> </H2> <PRE> Acest tag afişează textul scris între cele două tag-uri pastrand formatarile efectuate în editorului de documente HTML. Acest tag are un singur atribut, si anume, width. Acest atribut indica numărul de caractere dintr-o linie. </PRE> <H2> Exemple de utilizare a tag-ului &lt;ADDRESS> </H2> <center> <ADDRESS>Pentru mai multe informatii contactati-m&atilde; la [email protected]</ADDRESS> <ADDRESS>Adresa sediului firmei: str. Tureni nr.5; Tel:(0264)-909090</ADDRESS> </center> <H2> Trecerea fortata la un nou rand se face utilizand tag-ul &lt;BR> </H2> <p>Crearea fortata a unei noi linii <br> intr-o pagina web <br> se face folosind tag-ul&lt;br></p> <H2> Exemple de utilizare a tag-ului &lt;DIV> </H2> <DIV>Acest tag se foloseste in cazul in care se doreste impartirea unui document HTML intr-o serie de diviziuni.</div> <DIV align="right">Aici s-a definit o noua sectiune cu tag-ul &lt;DIV> aliniata la dreapta.</div> <H2> Exemple de utilizare a tag-ului &lt;DIV> in care s-a inclus tag-ul

Page 24: Proiectarea Realizarea Site Si Portalurilor Web

24

&lt;FONT></H2> <DIV><FONT face="Monotype Corsiva, serif, monospace" size=5 color="Red"> Exemplu de utilizare a tag-ului &lt;FONT> cu setarile face="Monotype Corsiva, serif, monospace" size=5 color="Red" .</font></div> </body></html>

Lansarea în browser a paginii ”Exemplu2.html” creată pe baza codului sursa anterior va arăta ca în Figura 2.1. prezentată în cele ce urmează:

Page 25: Proiectarea Realizarea Site Si Portalurilor Web

25

Figura 2.1. Pagina web “Exemplul2.html”

2.4.4.Stiluri fundamentale de formatare a textului

În cadrul documentelor HTML se pot folosi două categorii de instrucţiuni de formatare, şi anume:[KasaPop1998]

1. Instrucţiuni de formatare fizică, care impun browser-ului un anumit tip de formatare a textului definit de către autorul documentului HTML. Cele mai des folosite astfel de instrucţiuni sunt tag-urile: <I>,<B>,<U> care reprezintă standarde de formatare a textului în aproape toate editoarele de text.

2. Instrucţiuni de formatare logică, prin care se sugerează browser-ului că decizia de formatare a textului îi aparţine lui şi nu intră în sarcina autorului documentului HTML sunt: <CITE>...</CITE>;<EM>...</EM>;<SAMP>...</SAMP> <!--Comentarii--> textul cuprins între delimitatorii „<!--„ şi „-->” nu este

procesat de browser şi se numeşte comentariu. Comentariul are rolul de a explica codul sursă existent într-un fişier, în cazul nostru de tip HTML, pentru o înţelegere mai bună a lui atât de către proprietar cât şi de către persoanele care îl vor citi.

2.4.5. Hyperlink-uri

Într-un web site legăturile joacă rolul principal, deoarece aceastea dau posibilitatea vizitatorului de a naviga printre paginile acestuia. Legăturile sunt introduse într-o pagină web prin intermediul tag-ului <A…>…</A> numit anchor [site2][site33]. O legătură se poate utiliza în următoarele trei moduri:

I. pentru a crea o legătură către un alt document prin intermediul atributului HREF.

Page 26: Proiectarea Realizarea Site Si Portalurilor Web

26

II. Tag-ul <A> se poate folosi pentru lansarea în execuţie a unei aplicaţii de expediere a mesajelor electronice, serviciul Internet mailto: urmat de adresa e-mail.

III. pentru a crea o legătură către o etichetă din cadrul aceluiaşi document, prin utilizarea atributului NAME. Primul pas în cadrul acestei acţiuni este alegerea zonei din pagina Web spre care se doreşte să se sară la activarea legăturii şi definirea în acel loc a unui semn de carte. 2.4.6. Liste în site-uri Web

Elementele listelor se introduc între marcajele <LI> … </LI> ("list item").

Modul de apariţie al elementelor depinde de tipul de listă în care sunt incluse (ordonată, neordonată etc.), determinat de marcajul specific. Există trei tipuri de liste şi anume:

1.Tagurile <OL> … </OL> ("ordered list") se folosesc pentru a defini o listă ordonată. Fiecare element al listei este introdus prin marcajul <LI> … </LI>.

2. Tag-ul <UL> … </UL> se foloseşte pentru a defini o listă neordonată în cadrul căreia elementele sunt introduse prin marcajul <LI> … </LI>.

3. Tagurile <DL> … </DL> se folosesc pentru introducerea unui set de definiţii, referinţe sau indexuri. Fiecare termen al listei este iniţiat de eticheta <DT> (”definition term”), iar semnificaţia asociată este iniţiată de eticheta <DD> (”definition description”). Fiecare definiţie începe pe un rând nou şi este indentată.

În continuare se va da un exemplu de pagină web în care se vor folosi demonstrativ tag-urile de definire a tuturor tipurilor de liste ce pot fi definite în cadrul unei pagini web. Această pagină se doreşte a fi un exemplu de utilizare a tuturor tipurilor de liste învăţate, fapt pentru care conţinutul acesteia s-a creat în conformitate cu scopul propus. Pagina care se crează se numeşte ”Exemplul5.html” şi are următorul cod sursă:

<html> <head> <title>HYPERLINK</title><br> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2"> </head> <body link="red" vlink="blue" alink="yellow"> <H1>LISTE </H1> <H2> Tag-ul &lt;OL> </H2> <p> se folose&#351;te pentru a defini o list&#259; ordonat&#259; astfel:</p> <H3>Liste ordonate simple</H3> <ol> <li>Primul element al listei <li>Al doilea element al listei </ol> <H3>Liste ordonate numerotate cu litere mici</H3> <ol type="a"> <li>Primul element al listei <li>Al doilea element al listei </ol>

Page 27: Proiectarea Realizarea Site Si Portalurilor Web

27

<H3>Liste ordonate numerotate cu litere mari</H3> <ol type="A"> <li>Primul element al listei <li>Al doilea element al listei </ol> <H3>Liste ordonate numerotate cu cifre romane mici</H3> <ol type="i"> <li>Primul element al listei <li>Al doilea element al listei </ol> <H3>Liste ordonate numerotate cu cifre romane mari</H3> <ol type="I"> <li>Primul element al listei <li>Al doilea element al listei </ol> <H3> Tag-ul &lt;OL> poate avea un atribut START=6 </H3> <p> se folose&#351;te pentru a stabili numerotarea intr-o list&#259; ordonat&#259; astfel:</p> <ol START=6> <li>Primul element al listei <li>Al doilea element al listei </ol> <H2> Tag-ul &lt;UL> </H2> <p> se folose&#351;te pentru a defini o list&#259; neordonat&#259; astfel:</p> <H3>Liste neordonate marcate cu disc</H3> <ul type=disc> <li>Primul element al listei <li>Al doilea element al listei </ul> <H3>Liste neordonate marcate cu cerc</H3> <ul type=circle> <li>Primul element al listei <li>Al doilea element al listei </ul> <H3>Liste neordonate marcate cu p&#259;trat</H3> <ul type=square> <li>Primul element al listei <li>Al doilea element al listei </ul> <H2>List&#259; ordonat&#259; care cuprinde o list&#259; neordonat&#259;</H2> <OL> <li>Primul element <li>Al doilea element <ul> <li>Primul subelement <li>Al doilea subelement </ul> </li>

Page 28: Proiectarea Realizarea Site Si Portalurilor Web

28

<li>Al treilea element </OL> <H2> Tag-ul &lt;DL> </H2> <p> se folose&#351;te pentru introducerea unui set de defini&#355;ii, indexuri etc.</p> <h3>List&#259; de defini&#355;ii </h2> <dl> <dt>Precizare termen de definit <dd>Define&#355;ie termen <dt>Precizare termen de definit <dd>Defini&#355;ie termen. </dl> </body> </html>

Lansarea în browser a paginii ”Exemplul5.html” creată pe baza codului sursa

anterior va arăta ca în Figura.2.2. prezentată în cele ce urmează:

Page 29: Proiectarea Realizarea Site Si Portalurilor Web

29

Page 30: Proiectarea Realizarea Site Si Portalurilor Web

30

Figura 2.2. Pagina web “Exemplul5.html”

2.4.7.Marcaje pentru obiecte

Tabelele se definesc cu tag-urilor <TABLE>...</TABLE>. Liniile în cadrul

unui tabel se definesc cu tag-urile <TR>...</TR>. Celulele din cadrul unui tabel se definesc cu tag-urile <TD>...</TD>. Numărul de celule definite reprezintă numărul de coloane ale tabelului. Într-o celulă se pot introduce text, imagini, liste, paragrafe, formulare, linii orizontale, tabele, etc.. Tag-ul <TH>...</TH> se foloseşte pentru a defini prima linie a tabelei, aşa numita linie antet. Tag-ul <CAPTION>...</CAPTION> se foloseşte pentru a da un titlu tabelului

Imaginile [site4] [KasaPop1998] se definesc cu tag-ul <IMG> care nu prezintă tag de sfârşit. Acest tag prezintă atributul src care se foloseşte pentru a afişa o imagine într-un site web. Valoarea acestui atribut este adresa imaginii care se doreşte să se afişeze în site-ul Web. Imaginile se salvează în mod obligatoriu cu extensiile GIF şi JPEG.

Formularele[KasaPop1998] se definesc cu tag-urile <FORM>...</FORM> cărora li se ataşează parametri specifici care definesc metodele de transmitere şi tratare a datelor. Un formular poate conţine obiecte de control de diverse tipuri, definite cu tag-ul <INPUT> şi o varietate de parametri care stabilesc pentru obiectul definit, tipul, dimensiunea şi modul lui de afişare [site5]. Atributele tag-ului <FORM> sunt:[site6] 1. METHOD care poate lua una din valorile GET sau POST. În majoritatea cazurilor când se doreşte să se transmită informaţiile din cadrul obiectelor de pe un formular, este indicat să se folosească valoarea POST a atributului method.

Page 31: Proiectarea Realizarea Site Si Portalurilor Web

31

2. ACTION care poate lua ca valoare adresa URL a scriptului PHP care prelucrează datele adunate prin intermediul formularului. Adresa URL poate fi o adresa completă (de genul http://www.numesite.ro /inregistrare.php), respectiv o adresă parţială, care specifică o cale relativă spre pagina cerută (de exemplu “intregistrare.php“). Între tag-urile <FORM>... </FORM>se pot introduce următoarele obiecte: 1. Casete cu text [site6] [site2] [KasaPop1998] se folosesc pentru a obţine diverse informaţii. Acestea se definesc astfel:

<INPUT TYPE="TEXT" NAME="text"> 2. Butoanele [site6] [KasaPop1998] pot fi de expediere şi de resetare. Butoanele de expediere permit utilizatorului să trimită serverului, datele din cadrul unui formular. Fiecare formular HTML trebuie să prezinte un buton de expediere. Butoanele de expediere, se definesc astfel:

<INPUT TYPE="SUBMIT" VALUE="ok"> Butonul de resetare are rolul de a goli obiectele de pe formularele de informaţii şi se defineşte astfel:

<INPUT TYPE="RESET" VALUE="RESETARE"> 3. Suprafeţele cu text [site6] [KasaPop1998] se crează cu tag-urile <TEXTAREA>...<TEXTAREA>. Textul introdus între cele două tag-uri va apărea în controlul de pe formular creat cu tag-ul <TEXTAREA>. 4. Casete de validare (CHECKBOX) [site6][site3] se definesc astfel: <INPUT TYPE="CHECKBOX" NAME="validare" CHECKED VALUE="text"> 5. Butoane radio [site6][site2][site3] se definesc la fel ca şi casetele de validare prezentând aceleaşi atribute cu deosebirea că atributul TYPE ia valoarea Radio, atributul Name devine obligatoriu, ca în exemplul următor: <INPUT TYPE="RADIO" NAME="text" CHECKED VALUE="text"> 6. Liste derulante [site6][site2] se definesc astfel: <SELECT NAME="fructe" MULTIPLE SIZE="numar"> <OPTION SELECTED VALUE="text">mere</OPTION> <OPTION VALUE="text">pere</OPTION>

7. Frame-urile [site7] [Darnell2001] permit afişarea în cadrul aceleiaşi ferestre a browser-ului a mai multor documente HTML în acelaşi timp. Fiecare pagină Web deschisă în fereastra browser-ului se numeşte frame, iar fiecare frame se com

</SELECT>

portă independent faţă de celelalte frame-uri. <FRAMESET> are rolul de a adăuga un nou set de cadre după antetul document HTML, în locul corpului acestuia. Sintaxa acestui tag este: [Darnell2001] <FRAMESET [rows=rowWidths][cols=colWidths][loadEvents]> ....Definirea Frameset.... </FRAMESET> Fiecare frameset este definit de un set de linii sau coloane. Valorile liniilor sau coloanelor stabilesc suprafaţa de pe ecran pe care fiecare linie/coloană o va ocupa. [site7] Tagul <FRAME> defineşte un singur cadru dintr-un <FRAMESET>. Acest tag nu are etichetă de sfârşit, adică </FRAME>. Sintaxa acestui tag este:

<FRAME [name=][src=][behavior][appearance]> În continuare se vor crea trei pagini web care vor conţine pe rând trei tipurile de

frame-uri care se pot crea ca în exemplele următoare:

Page 32: Proiectarea Realizarea Site Si Portalurilor Web

32

1. „Exemplul9.html” se va crea un frame vertical astfel:

<html> <head> <title>Frame vertical cu 2 coloane</title> </head> <frameset cols="40%,40%"> <frame src="exemplul1.html"> <frame src="exemplu2.html"> </frameset> </html>

Se observă că pagina ”Exemplul9.html” va chema la lansarea ei în browser două pagini html numite ”Exemplul1.html” respectiv ”Exemplu2.html” care vor fi vizualizate de utilizator într-o singură pagină web împărţită pe verticală ca în Figura 2.3.

Figura 2.3. Pagina web ”Exemplul9.html”

2.În prima pagină web numită „Exemplul10.html” se va crea un frame orizontal astfel:

<html> <head> <title>Frameset orizontal cu 2 linii </title> </head> <frameset rows="40%,40%"> <frame src="exemplul1.html"> <frame src="exemplu2.html"> </frameset></html>

Page 33: Proiectarea Realizarea Site Si Portalurilor Web

33

Se observă că pagina ”Exemplul10.html” va chema la lansarea ei în browser două pagini html numite ”Exemplul1.html”, respectiv ”Exemplu2.html” care vor fi vizualizate de utilizator într-o singură pagină web împărţită pe orizontală ca în Figura 2.10.

Figura 2.4. Pagina web ”Exemplul10.html”

3. În prima pagină web numită „Exemplul11.html” se va crea un frame mixt astfel:

<html> <head> <title>Frameset mixt (linii si coloane) </title> </head> <frameset rows="50%,50%"> <frame src=" Exemplul1.html"> <frameset cols="40%,60%"> <frame src="exemplu2.html"> <frame src="exemplul3.html"> </frameset> </frameset> </html>

Se observă că pagina ”Exemplul11.html”, va chema la lansarea ei în browser trei pagini html numite ”Exemplul1.html”, ”Exemplu2.html,” respectiv ”Exemplul3.html” care vor fi vizualizate de utilizator într-o singură pagină web împărţită pe orizontală şi verticală ca în Figura 2.5.

Page 34: Proiectarea Realizarea Site Si Portalurilor Web

34

Figura 2.5. Pagina web ”Exemplul11.html”

Pe baza noţiunilor prezentate în cadrul acestei păţi se poate crea un site web

static de prezentare a unui produs, firme etc.

Page 35: Proiectarea Realizarea Site Si Portalurilor Web

35

Teme pentru verificarea cunoştinţelor

1. Care este structura unui document HTML? 2. Care este tag-ul care permite inserarea unei imagini într-un document HTML? 3. Creaţi o pagină care să fie împărţită în două cadrane verticale în primul cadran

să existe o listă ordonată iar în al doilea cadran să existe o imagine. 4. Creaţi o pagină care să conţină un tabel de forma:

5. Creaţi o pagină HTML care să conţină un tabel de forma:

6. Creaţi o pagină HTML care să conţină un formular de forma:

7. Creaţi o pagină HTML care să conţină o listă ordonată identică cu lista prezentată în imaginea următoare:

Page 36: Proiectarea Realizarea Site Si Portalurilor Web

36

1.Care este ansamblul de tag-uri HTML ce se utilizează la gestiunea listelor neordonate? <UL> <DT> <UL> <OL> <UL> <LI> <UL> <DD> 2.Tag-ul <TH>...</TH> poate fi înlocuit de tag-ul: <TABLE>...</TABLE> <TR>...</TR> <TD>...</TD> <CAPTION>....</CAPTION> 3.Tag-ul <TD>...</TD> are rolul de a defini: liniea a unui tabel coloana a unui tabel celula a unui tabel un tabel Răspunsuri 1.Care este ansamblul de tag-uri HTML ce se utilizează la gestiunea listelor neordonate? <UL> <DT> <UL> <OL> <UL> <LI> <UL> <DD> 2.Tag-ul <TH>...</TH> poate fi înlocuit de tag-ul: <TABLE>...</TABLE> <TR>...</TR> <TD>...</TD> <CAPTION>....</CAPTION> 3.Tag-ul <TD>...</TD> are rolul de a defini: liniea a unui tabel coloana a unui tabel celula a unui tabel un tabel

Page 37: Proiectarea Realizarea Site Si Portalurilor Web

37

Bibliografie

1. [Stanca_07]Stanca L., Suportul tehnologic al afacerilor electronice, Editura Presa Universitară Clujeană, 2007 pag:17-32, Biblioteca Facultăţii 2.[Stanca_04] Stanca L.,Suportul economic al afacerilor electronice, Editura Presa Universitară Clujeană, 2004, Biblioteca Facultăţii 3.[Darnell_01]R.Darnell, Totul despre HTML 4, Editura Teora, 2001, Biblioteca catedrei

Page 38: Proiectarea Realizarea Site Si Portalurilor Web

38

MODULUL 3 PREZENTAREA ELEMETELOR DE BAZĂ ALE LIMBAJULUI XHTML

3.1. Scopul şi obiectivele modulului

În cadrul activităţilor de proiectării şi realizării siteurilor şi portalurilor Web un

rol important îl joacă limbajul XHTML. După descoperierea noţiunilor de bază şi avanstate ale limbajului HTML se impune prezentarea limbajului XHTML. Conceptele de bază abordate în cadrul acestui modul sunt:

Trăsăturilor caracteristice ale limbajului XHTML; Structurii unei pagini HTML ; Rolul documentelor XHTML Prezentarea modulelor XHTML. Sintaxa XHTML

Obiective acestui modul sunt: 1. Asimilarea caracteristicilor limbajului XHTML 2. Descrierea structurii unui document XHTML 3. Însuşirea tag-urilor de formatare la nivel de text 4. Însuşirea tag-urilor Hyperlink, liste 5. Prezentarea tag-uri de definire a diverselor obiecte

Recomandǎri privind studiul:

3. Studierea conceptelor prezentate în vederea utilizării lor pe parcursul celorlalte capitole.

4. Asimilarea conceptelor de bază pentru realizarea unor documente web valide indiferent de tipul browserelor pe care le folosesc utilizatorii.

Rezultate aşteptate:

3. Studenţii trebuie să fie capabili să îşi prezinte cunoştinţele teoretice de natură coerentă şi consistentă.

4. Studenţii trebuie să poată proiecta şi implementa un proiect de pagină web scrisă cu XHTML de mare complexitate.

3.2. Scurtă recapitulare a conceptelor prezentate anterior

În cadrul primului modul s-a impus să se prezinte noţiunile de bază a mediului virtual, a limbajelor de scripting pe parte de serverşi nu în ultimul rând a principiului de funcţionare a modelului client-server. În modul al 2-lea s-a impus pezentarea limabjului HTML necesar pentru dezvoltarea unei pagini web statice complexe. Dezvoltarea unor proiecte mari a impus apariţia pe piaţă a unui nou limbaj numit XHTML care are la bază limbajul HTML 4.0.

3.3. Schema logică a modulului

Acest modul este compus din şapte subcapitole: primul subcapitol are ca scop evidenţierea conceptului de bază ale limbajului XHTML iar în celălate şase subcapitole sunt prezentatea pe rând elemnte de limbaj XHTML.

Page 39: Proiectarea Realizarea Site Si Portalurilor Web

39

Fig.Structura modului 2

3.4.Conţinutul informaţional detaliat

3.4.1. Caracteristicile XHTML

XHTML „Extensible HyperText Markup Language” a fost dezvoltat de Consorţiul WEB pe baza limbajului HTML 4.0 cu ajutorul sintaxei limbajului XML 1.0. Limbajul XHTML este un limbaj declarativ nu un limbaj de programare. Limbajul foloseşte marcaje descriptive pentru definirea modului de prezentare şi a structurii logice a unui document WEB. [9][7][1][2][8]

Rolul limbajului XHTML este de a înlocui limbajul clasic HTML fiind o recomandare a organizaţiei W3C. Prima versiune a limbajului a fost lansată în 26 ianuarie 2000 şi revizuită 1 august 2000, fiind prezentat în 3 variante care definesc 3 tipuri de documente : XHTML1.0. Strict (-documentele de acest tip nu conţin elemente sau atribute demodate) ; XHTML 1.0. Tradiţional (-documentele de acest tip conţin elemente sau atribute HTML demodate) XHTML 1.0. Frameset (-documentele de acest tip se folosesc în situaţiile în care se doreşte utilizarea cadrelor).[9][7][8][1][2]

Versiunea XHTML Basic a fost publicată în 19 dec 2000 şi include un set minimal de module XHTML. Rolul principal al acestei versiuni era de a servi documente hipertext destinate clienţilor WEB Această versiune nu suportă setul complet de module XHTML ex. Telefoane mobile,PDA[9]

În 31 mai 2001 apare Module-Based XHTML care defineşte un nou tip de documente XHTML. În 2006 apare XHTML 2.0. care modifică structura şi semantică a unor module definite în versiunea 1 şi se adaugă noi module XML Events şi FORMs.[7][9] Observaţie: Browsere le afişează corect informaţia chiar şi atunci când nu se respectă constrângerile de XML sau XHTML, dar atunci când se doreşte ca informaţia să poate fi corect interpretată de agenţi software, crowlere, motoare de căutare sau browsere pentru dispozitive mobile este obligatoriu să se respecte toate recomandarile propuse de W3C în acest domeniu.

Familia de documente XHTML este proiectată pentru :[9][8][10][2] 1. a realiza separarea prezentării (realizată exclusiv prin CSS) de structura logică a conţinutului propriu-zis. Avantajul este dat de faptul că paginile vor fi întreţinute mai uşor şi nu în ultimul rând va creşte interoperabilitatea şi accesibilitatea pe diverse platforme 2. documentele XHTML pot fi extinse prin includerea de exemplu a ecuaţiilor matematice editate cu limbajul MathML, grafică vectorială cu limbajul SVG 3. XHTML este un limbaj extensibil deoarece permite introducerea de noi module.

Elemete

XH

TML

Tipuri de date X

HTM

L

DTD

Pagină web creată cu XHTML

Page 40: Proiectarea Realizarea Site Si Portalurilor Web

40

XHTML conţine mare parte din funcţionalitatea de care are nevoie un dezvoltator web. În unele scopuri XHTML este prea complex iar in altele prea simplu. Despărţind XHTML în module, W3C (World Wide web Consortium) a creat seturi mici de elemente bine definite care pot fi utilizate separat pentru diferite dispozitive sau combinate cu alte standarde XML în aplicaţii mult mai complexe.[9] Cu ajutorul modulelor XHTML, designerii pot să:[9] • aleagă elementele care sunt suportate de un dispozitiv • simplifice XHTML pentru dispozitive mai mici • extinde XHTML pentru aplicaţii complexe prin adăugarea de funcţionalităţi

XML (ca spre exemplu MathML, SVG, Voce si Multimedia) • definească profile XHTML ca XHTML Basic (un subset al XHTML pentru

dispozitive mobile) W3C a împărţit XHTML în 28 module:[9]

Numele modulului Descriere Modulul Applet Defineşte elementul applet la care s-a renunţat* Modulul Base Defineşte elementul base Modulul Basic Forms Defineşte elementele basic forms Modulul Basic Tables Defineşte elementele basic table Modulul Bi-directional Text Defineşte elementul bdo Modulul Client Image Map Defineşte elementele browser side image map Modulul Edit Defineşte elementele de editare del si ins Modulul Forms Defineşte toate elementele folosite in formulare (forms) Modulul Frames Defineşte elementele frames Modulul Hypertext Defineşte elementul a Modulul Iframe Defineşte elementul iframe Modulul Image Defineşte elementul img Modulul Intrinsic Events Defineşte atributele eveniment ca onblur si onchange Modulul Legacy Defineşte elementele şi atributele la care s-a renunţat* Modulul Link Defineşte elementul link Modulul List Defineşte elementele de lista ol, li, ul, dd, dt, si dl Modulul Metainformation Defineşte elementul meta Modulul Name Identification Defineşte atributul name la care s-a renunţat Modulul Object Defineşte elementele object şi param Modulul Presentation Defineşte elementele de prezentare ca spre exemplu b si

i Modulul Scripting Defineşte elementele script şi noscript Modulul Server Image Map Defineşte elementele pe parte se server image map Modulul Structure Defineşte elementele html, head, title si body Modulul Style Attribute Defineşte atributul style Modulul Style Sheet Defineşte elementul style Modulul Tables Defineşte elementele utilizate în tabele Modulul Target Defineşte atributul target

Page 41: Proiectarea Realizarea Site Si Portalurilor Web

41

Modulul Text Defineşte elementele de text ca p şi h1 * elementele la care s-a renuntat nu ar trebuie utilizate în XHTML.

Documente XHTML au nevoie de următoarele instrumente de bază:[9][8][2] 1. un editor de text simplu, pentru crearea şi salvarea documentelor XHTML; 2. un instrument de validare XHTML, pentru verificarea sintaxei şi structurii documentelor XHTML; 3. un navigator Web, pentru vizualizarea şi testarea documentelor XHTML.

Validarea trebuie să fie considerată ca o etapă importantă în procesul de redactare al codului XHTML. Pentru a verifica dacă este valid sau nu codul XHTML creat manual, se utilizează aplicaţia de validare W3C – W3C validator: http://validator.w3.org/file-upload.html [8][9] 3.4.2.Editoarele de fişiere XHTML

Există multe unelte pentru editarea de fişiere XHTML, de la simplele editoare text cu „sintaxă colorată” şi până la posibilitatea de a valida online un întreg sit sau pagina web [4]. Exemple de editoare pentru scrierea de pagini HTML şi XHTML:[4][5] − Macromedia Dreamweaver, Notepad, − softul de la http://savannah.nongnu.org/projects/xhtmltools/ − XMLBuddy http://www.download.com/XMLBuddy/3000-7241_4-10422909.html?tag=lst-0-5 − HTML Tidy http://tidy.sourceforge.net/#docs etc.

Documentele XHTML se salvează ca fişiere text Ascii sau Unicod cu extensia html sau htm. Elementul(tag-ul) este componenta structurală de bază a documentelor XHTML. Tag-urile se clasifică pe baza funcţiilor lor : [Anghel_2008]

1.tag pentru corp 2. tag pentru antet

3.4.3 Sintaxa Limbajului

Limbajul XHTML impune un standard riguros propriu XML în cea ce priveşte sintaxa utilizată în scrierea documentelor, reguli folosite sunt precizate în specificaţia XHTML 1.1. [Anghel_2008][9][8]

- fiecare element va avea obligatoriu marcaj de deschidere <element> însoţit de cel de închidere </element>.

- marcajele sunt denumite tag-uri sau etichete -marcajele de închidere pot fi eliminate în cazul elementelor vide prin includerea

lui slash la sfârşitul marcajelor de deschidere precedat de un spaţiu, ex: [Anghel_2008] <img src= “ex.jpg” /> Numele elementelor XHTML nu pot conţine spaţii şi nu pot începe cu număr.

XHTML la fel ca XML este case sensitive. Elementele XHTML tb scrise cu litere mici ex: <table border= ”1 “>

Elementele se clasifică în elemete vide : br, img, input. şi elemente nevide :<p><b>

Obseravţie : Elementele necunoscute introduse într-o pag web sunt ignorate de browser în momentul procesării documentului XHTML lunând în considerare şi afişând numai conţinutul acestora.

În XHTML elementele nevide pot fi imbricate, fiecare pereche de marcaje trebuie inclusă în interiorul altei perechi. Această regulă este cunoscută ca LIFO, adică

Page 42: Proiectarea Realizarea Site Si Portalurilor Web

42

ultimul marcaj deschis este primul închis. [9][8][1][2]Ex : <p> Exemplu de închidere marcaj <b> XHTML</b></p>

Reguli pentru atribute :[9][8][1][2] - trebuie incluse între ghilimele fie şiruri de caractere fie numere - numele atributelor se scriu cu litere mici ; - dacă un atribut are o valoare incorectă aceasta este înlocuită cu valoare

implicită - atributele făra valori sunt : readonly, noresize, noshade. Se scriu astfel:

nume=”nume” Ex: readonly= “readonly”, noresize=” noresize”, noshade=” noshade”. <img src=”ex.jpg” width=”200” heoght=”200” />

Atributele pot fi clasificate astfel:[9][8][1][2] 1. Atribute comune de bază care sunt: id, class şi title. Atributul id (identificator) se

utilizează de către scripturile pe parte de client. (JavaScript) în scopul selectării elementelor XHTML, pentru aplicarea regulilor de formatare CSS sau pt construirea unor relaţii între elemente. Valoarea atributului id tb să fie unică.[2][9][8]

a. Atributul class stabileşte pt un element numele unei clase sau un set de clase. Acelaşi nume poate fi atribuit unui număr neprecizat de elemente. În cazul unui set de nume acestea se separă prin spaţii albe. Acest atribut se foloseşte pt aplicarea regulilor de formatare CSS.

b. Atributul title se foloseşte pentru a furniza informaţii utilizatorului valoarea sa fiind afişată în cele mai multe browsere ca tooltip-uri.

2. Atribute comune pt internaţionalizare sunt :[9][8][2][10] a. xml :lang- specifică limbajul de bază utilizat pt valorile atributelor şi

conţinutul elementului. b. dir-precizează direcţia de bază a textului putând lua vaorile : ltr(left to

right), rtl(right to left) 3. Atribute comune pentru evenimente de mouse sunt: onclick, onmouse,

onmouseup, onmouseover, onmousemove, onmouseout. evenimente de tastatură: onkeypress, onkeydown şi onkeyup.[9][8][2]

4. Atributul de stil comun elementelor XHTML este: style prin care se specifică informaţii de formatare CSS pt elementul curent. Acest atribut combină conţinutul cu formatare. Entităţi reprezintă o porţiune de text (şir de caractere sau simbol) care are

asociat un nume. Se folosesc în documentele XHTML pt generarea simbolurilor speciale, matematice, caractere rezervate, diacritice. Entităţile se accesează prin intermediul construcţiei: &nume_entitate ; sau &#nume; Ex : &copy ; sau &#169 ; este caracterul dedicat copyright. Caracterul alpha : &alpha ; sau &#945 ; Caracterul > : &gt ; sau &#62 ;[9][8][7][2]

Comentarii sunt utilizate pt a oferi informaţii despre conţinutul unei pagini WEB, utile proiectantului paginii, neafişate în browser. Sintaxă : < ! text comentariu se poate întânde pe mai multe rânduri sau pe un sg rând !> Spaţiile albe, tab şi newline sunt ignorate.[9][8][2]

Documentele XHTML sunt valide dacă respectă sintaxa stabilită de recomandările Consorţiului Web. Pentru validare documentelor XHTML după crearea lor se utilizează instrumentul Validator pus la dispoziţie de W3C la adresa http://validator.w3.org sau aplicaţia gratuită Tidy(http://tidy.sourceforge.net/) . Aplicaţia Tidy poate fi folosit pentru a converti paginile HTML în XHTML. Aplicaţia Tidy este o

Page 43: Proiectarea Realizarea Site Si Portalurilor Web

43

aplicaţie în linie de comandă. Există şi o versiune grafică a aplicaţiei Tidy numită gui_tidy care poate fi descărcată de la adresa http://www.paehl.de/tidy/. Aplicaţia gui_tidy precizează erorile de sintaxă existente în documentul supus validării precum şi varianta corectă a acestora. [Anghel_2008] 3.4.4 Tipuri de date XHTML

Tipuri de date XHTML pentru valorile atributelor XHTML sunt : [Anghel_2008]

1. Şiruri de caractere 2. URI – sunt case sensitive (părţi ale acestora nu sunt case sensitive(ex :numele

maşinilor)) 3. Culori : care se reprezintă fie ca un număr hexazecimal : #000000(negru),

#ffffff(alb) fie ca nume de culoare : ex : black, alb etc. Observatie: Folosirea atributelor pt specificarea culorilor este descurajată deoarece pe diverse platforme aceeaşi culoare nu arată la fel. În XHTML 1.0 Strict nu sunt incluse aceste atribute.

4.Lungimi :pixeli, procent din spaţiul orizontal sau vertical disponobil, lungimi relative de ex : 1*, 2* şi 3* porţiunii corespunzătoare i se alocă 20 pixeli, 40 pixeli şi respectiv 60 pixeli.

5. MIME sau conţinut : ce conţine o resursă : text/html (browserul procesează resursa ca şi cum ar fi un document HTML), image/png, image/gif, text/css şi video/mpeg. Tipul MIME al documentelor XHTML (=tipuri de continut): text/HTML-browswerul va procesa documentul ca un document HTML; application/XHTML+XML-browserul va procesa documentul utilizand reguli sintactice XHTML; text/XML sau application/XML-pot fi precizate pentu documente din familia XML, inclusive XHTML

Date script sunt datele incluse între marcajele <script> </script>. Conţinutul acestor taguri nu se interpretează de browser ci de către motorul limbajului de script. [Anghel_2008]

Date de stil sunt datele incluse între marcajele <style> </style>. Browserele nu interpretează conţinutul ca marcaj XHTML[Anghel_2008]

Nume de cadre ţintă trebuie să înceapă cu un caracter alfabetic (a-z ,A-Z) browserul ignorând numele care nu respectă această regulă. _blank, _self, _parent,_top.[9][8][7][2]

XHTML permite o mai bună structurare şi înţelegere a conţinutului informaţiei de diverse programe software dar şi de către dispozitive mobile care au cunoscut o dezvoltare fantastică şi unde browserele se dezvoltă, doar beneficiind de resurse mai puţine si limitate in comparatie cu un sistem desktop. Pentru dispozitivele mobile site-urile sunt mai simple iar multe dintre acestea nu sunt afişate corespunzător şi datorită faptului că nu respecta recomandarile XHTML 1.0. [Anghel_2008][2]

Deci, XHTML este limbajul binecunoscut HTML, dar scris cu reguli XML care se doreşte a fi pasul următor în dezvoltarea WWW-ului. Se doreşte ca atât utilizatorii de pe calculatoare normale cât şi cei care folosesc dispozitive mobile să poată accesa orice sit web fără probleme. De asemenea folosind XHTML multe produse software sau agenţi pot folosi informaţiile de pe site-uri intr-un mod corect.

Page 44: Proiectarea Realizarea Site Si Portalurilor Web

44

3.4.5. Structura documentelor XHTML

Orice document HTML trebuie să aibă un singur nod rădăcină şi acela trebuie să fie <html>.Un document XHTML se compune din trei părţi principale: [Anghel_2008][2]

• declaraţia DOCTYPE • secţiunea <head> • secţiunea <body>

Exemplu de document XHTML: <!DOCTYPE ...> <html xmlns="http://www.w3.org/1999/xhtml"> <head> //tag folosit pentru diverse informaţii, pentru motoarele de căutare şi nu

numai <title>Title paginii</title> </head> <body>

</body> </html> Observaţie: Declaraţia DOCTYPE nu face parte din documentul XHTML

propriu-zis, deci nu va avea un tag de închidere şi nici nu se supune regulii "litere mici". Atributele joacă un rol important ca şi elementele şi au parte de un tratament la fel ca şi elementele în privinţa literelor cu care sunt scrise.

Orice document XHTML conţine o referinţă către fişierul DTD care îl validează şi are următoarea structură: <!DOCTYPE link_catre_fisierul_dtd> //calea catre fisierul .dtd [Anghel_2008]

<html xmlns="http://www.w3.org/1999/xhtml"> //trebuie pus namespace-ul pentru a specifica locaţia specificaţiei pentru xhtml

Exemplu de <!DOCTYPE ...> : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> Conţinutul site-urile şi structurarea informaţiei sunt două trăsături importante,

dar acum se pune accent şi pe prezentarea acestora, pe stil, pe culori şi pe îmbinarea lor. In prezent aceste lucruri sunt realizate cu ajutorul limbajului CSS .[7] Un exemplu simplu de document XHTML[9]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html> <head> <title> Primul document XHTML</title>

</head> <body>

<h1> Primul document XHTML</h2> <p>un paragraf simplu</p>

</body> </html>

Page 45: Proiectarea Realizarea Site Si Portalurilor Web

45

3.4.6. Document Type Definitions

Document Type Definitions (DTD) cu alte cuvinte definitţiile tipului de document au rolul de a:[9][2]

1. specifia sintaxa unei pagini web în SGML 2. fi utilizate de aplicaţiile SGML, ca şi HTML, pentru a specifica reguli pentru

documente de diverse tipuri, incluzând un set de elemente şi declaraţii de entităţi 3. indica limba în care e scris documentul şi sintaxa de marcaj XHTML Un DTD este un fişier text ce conţine reguli prin intermediul cărora sunt stabilite

elementele şi atributele, valorile acestora, modul de apariţie a elemetelor şi atributelor, relaţiile dintre elemente şi atribute, adică structura unui document XHTML. Declaraţia DOCTYPE este folosită de browser web pentru a identifica versiunea limbajului XHTML folosita în scrierea documentului, mai precis setul de elemente care pot fi utilizate. În situaţia în care sunt folosite elemete neaparţinând versiunii XHTML declarate este posibil ca browserul web să nu le proceseze în maniera în care se aşteaptă proiectantul.[9][2][7]

Există trei definiţii DTD pentru XHTML:[9] • STRICT • TRANSITIONAL • FRAMESET

XHTML 1.0 Strict se utilizează când se doresc marcaje clare, fără dezordine în cod. Se foloseşte împreună cu CSS. Include elemente şi atribute la care nu s-a renunţat încă şi care nu apar în frameset-uri.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

XHTML 1.0 Transitional se foloseşte atunci când se doreşte folosirea unor

trăsături HTML. Include elementele DTD strict şi atributele la care s-a renunţat.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

XHTML 1.0 Frameset se foloseşte atunci când se doreşte utilizarea Frame-

urilor HTML Frames pentru a împărţi pagina în mai multe zone. Include elementele din DTD transitional plus elementele de frame-uri.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> Observaţie : Trebuie adăugată următoarea declaraţie DOCTYPE în fiecare pagina pentru a fi validată ca fiind corectă în XHTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

3.4.7. Clasificarea elementelor XHTML Elementul(Tag-ul)-este componenta structurală de bază a documentelor

XHTML. Clasificarea elementelor din perspectiva XHTML 1.0 Strict şi XHTML 1.1 cu

excepţia elementelor ruby, se face pe baza funcţiilor îndeplinite astfel : [Anghel_2008][9][7][2]

1. elemete pentru structură şi antet : base, body, head, html, link, meta, script, style, title

Page 46: Proiectarea Realizarea Site Si Portalurilor Web

46

Antetul : <head>…</head> furnizează o serie de informaţii despre document. Elementele conţinute în aceasta secţiune nu sunt afişate în pagină. Marcajele care pot aparea în elemental head sunt: [Anghel_2008]

1. Title – precizează titlul documentului afişat de browsere în bara de titlu; 2. Base – precizează un URL de bază (utilizat de browsere pentru a rezolva

url-urile relative), atunci când acesta diferă de url-ul de unde a fost descarcăcată pagina WEB;

3. Link – permite legarea în document a unor resurse; 4. Meta – precizează metadate referitoare la document. Atributele lui meta

sunt: name, http-equiv, scheme si content. Aceste atribute trebuie utilizate în grupuri de câte 2, content fiind present de fiecare dată. Valorile atributelor name şi http-equiv se numesc şi metataguri. Valorile metatagurilor sunt exprimate prin intermediul atributului content. Atributul name are ca valoare numele unei proprietăţi, în acest caz atributul content exprimă valoarea acesteia. Atributele lui name sunt keywords – permite precizarea unor cuvinte cheie specifice site-ului. Din 1997 a fost emisă opinia conform căreia informaţiile stocate în keywords dirijează utilizatorii către site-uri spam. În prezent această proprietate nu mai este folosită de motoarele de căutare, fiind înlocuită de proprietatea description. Proprietatea description este folosită de autorul paginii web pentru a realiza o descriere succintă a acesteia, care este afişată adesea de către motoarele de căutare în rezultatele întoarse. Se recomandă ca lungimea maximă pentru valoarea proprietăţii descripton să fie mai mică decât 200 de caractere de text simplu. <meta name=”keywords” content=”cabinet, cancer” /> Proprietatea author permite precizarea numelui autorului paginii web ca valoare a atributului content, în timp ce copyright oferă posibilitatea de a realiza o declaraţie de copyright prin intermediului aceluiaşi atribut. <meta name=”author” content=”Pop Viorel” /> Proprietatea owner permite precizarea proprietarului paginii. <meta name=”owner” content=”Pop Vasile” /> Proprietatea distribution defineşte audienţa documentului având ca valori posibile global-este permis accesul din orice locaţie a web-ului, local-serverul web nu va livra un astfel de document în web şi iu (internal use) – document accesibil in intranet. <meta name=”distribution” content=”Global” /> Atributul http-equiv folosit pentru obţinerea de informatii necesare construirii antetelor HTTP ale mesajului de raspuns trimis browserului, referitoare la tipul de continut al documentului, setul de caractere utilizat de document, etc. Atributul http-equiv este utilizat de servere web. Valorile atributului http-equiv sunt: content-type precizează tipul de conţinut inclus în documentul XHTML şi setul de caractere utilizat de acesta. Atributul content se foloseşte doar în scopul codificării paginii.În cazul în care conţinutul web este text/html browserul va procesa o pagina web XHTML ca şi pagină HTML. Deci, documentele XHTML sunt servite implicit ca HTML. <meta http-equiv=”Content - Type” content=”text/html; charset=UTF-8” /> Atributul expires precizează data la care documentul XHTML trebuie considerat expirat. [Anghel_2008]

Page 47: Proiectarea Realizarea Site Si Portalurilor Web

47

5 Script- folosit pentru includerea în document a unor scripturi folosite în limbaj pentru client ex: javascript[Anghel_2008] 6 Style- definirea sau importul unei foi de stil CSS[Anghel_2008] 7 Object- includerea în document a unor obiecte ca imagini, video şi aplicaţii, de exemplu appleturi java.[2] [Anghel_2008]

2. elemente-bloc: adress, blockquote, del, div, dl, fieldset, form, h1-h6, hr, ins, noscript, ol, p, pre, script, table, ul. Conţinutul unui element-bloc ocupă 100% din lăţimea ocupată de elementul părinte=> conţinutul unui astfel de element care urmează unui alt element bloc este afişat pe linie nouă[9][7][2].

3.elemente inline : a, abbr, acronym,b,bdo,big,br,button,cite,code, del, dfn, em, i, ins, input, label, map, kbd, object, q, ruby, samp, script, select, small, span, strong, sub, sup, textarea, tt, var. Două sau mai multe elementede acest tip se pot afişa pe aceeaşi linie.

4.elemente pentru crearea itemilor listelor : dd, dt, li. Există 3 tipuri de liste: [Anghel_2008]

1. ordonate: <ol><li>...</li>...</ol> 2. neordonate: <ul><li>...</li>...</ul> 3. liste de definiţii : <dl><dt>termen</dt><dd>definitie</dd>...</dl>

Obseravaţie: o listă trebuie să conţină cel puţin o componentă. În XHTML 1.0 Transitional pentru elementul ul poate fi precizat atributul type cu valorile: disc(valoare implicită), square şi circle. În XHTML 1.0 Transitional pentru tag-ul ol se pot preciza atributele type cu valorile: 1(cifre arabe), a (litere mici), A (litere mari), i( cifre romanice mici), I(cifre romanice mari) respectiv atributul start, care poate lua ca valoare un număr, precizează valoarea cu care se începe numerotarea elementelor listei ordonate. [Anghel_2008]

5. elemente pentru crearea conţinutului tabelelor: caption, col, colgroup, tbody, td, tfoot, th, thead, tr.

6.elemente pentru titlul seturilor de câmpuri ale formularelor: legend, 7. elemente pentru crearea opţiunilor de meniu în formulare: optgroup, option; 8. elemente pentru realizarea parametrilor obiectelor: param Includerea

Obiectelor multimedia (ex: imagini, videoclipuri, animaţii Flash şi aplet-uri Java ) în documentele XHTML se face cu ajutorul elementului nevid object. Obiectul înglobat în tag-ul object se poate configura cu tag-ul param[Anghel_2008]. <object data=”images/vara.gif” type=”image/gif” width=”50” height=”100”> Peisaj de vara </object> În caz de eroare se afişează în browser textul: Peisaj de vară Param-element vid folosit pentru transmiterea datelor/parametrilor obiectelor înglobate în documentele XHTML cu obiectul object. Atributele lui param: [Anghel_2008]

1. id – se precizează identificatorul unic 2. name- este obligatoriu. Se precizează numele unui parametru de

execuţie, care se presupune că este cunoscut de obiect; 3. type- tipul resursei indicate de atributul value at când atributul valuetype

are valoare ref; 4. value- conţine valoarea parametrului de execuţie stabilit cu ajutorul

atributului name. Această valoare nu are semnificaţie XHTML. 5. Valuetype- tipul atributului value. Valorile care le poate primi acest

atribut sunt: data-valoarea stabilită prin atributul value va fi evaluată şi

Page 48: Proiectarea Realizarea Site Si Portalurilor Web

48

transmisă ca şir obiectului înglobat; ref- valoarea stabilită pt atributul value este un URI ce indică o resursă în care este memorată valoarea parametrului de execuţie; object- valoarea stabilită prin atributul value este un identificator care se referă la declaraţia unui obiect din acelaşi document. Identificatorul tb să coincidă cu valoarea atributului id din declaraţia documentului.

Ex. Imbricarea animaţiilor Flash într-un document XHTML cu object şi param: <object type=”application/x-shockwave-flash” data=”animatii/desene.swf” width=”550” height=”400”>

<param name=”movie” value=”animatii/desene.swf” /> <param name=”play” value=”true” /> <param name=”loop” value=”false” /> <param name=”quality” value=”high” /> <param name=”bgcolor” value=”#ffffff” /> <img src=”poze/desene.jpg” alt=”Desene” /> </object> Parametrii unui film/animaţii Flash sunt: Bgcolor- culoarea de fundal a zonei destinată filmului; Loop- precizează numărul de repetiţii ale filmului; Movie- are ca valoare URL-ul fişierului care conţine filmulş Play- se precizează dacă filmul va fi redat automat la încărcarea acestuia în browser dacă valoarea este true sau nu valoarea este false. Quality-calitatea redării filmului, ia ca valori: low, mediu, hight(val. implicită) şi best.

9.notaţii ruby: rb, rbs, rp, rt, rtc. XHTML 1.0 Frameset defineşte suplimentar elementele şi atributele necesare

pentru crearea cadrelor: frameset şi frame. 3.4.8Cadre

O pagină cu cadre este alcătuită dintr-un document în care se definesc cadrele şi un număr de documente egale cu numărul cadrelor descrise în pagina de definire a lor. Documentul de definire a cadrelor nu conţine tag-ul body ci frameset. Definirea cadrelor se realizează cu atributele cols şi rows. Valorile acestor atribute sunt liste de elemente separate prin virgulă, acestea stabilind modul în care se realizează împărţirea ecranului. Valorile lui rows respectiv cols pot fi: [Anghel_2008][2]

1.pixeli 2.procente din dimensiunea spaţiului disponibil, care poate fi fereastra browser-ului sau un cadru. 3.dimensiuni relative n* linia sau coloana care ocupă a n-a parte din spaţiul rămas după crearea linilor sau coloanelor anterioare. Ex: cols=”250, 40%,1*,2*”- pag web împărţită în patru cadre de tip coloană. Primul cadru are lăţimea de 250 pixeli, al doilea cadru 40% din lăţimea ferestrei, spaţiul rămas se împarte în trei părţi egale din care o parte revine cadrului al treilea iar 2 treimi ultimului cadru.

Cadru vertical se defineşte astfel: <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Frameset//EN” ”http://www.w3.org/tr/xhtml1/DTD/xhtml1-frameset.dtd”> <html xmlns=”http://www.w3.org/1999/xhtml” xml:lang=”en”> <head> <title>Pagina principala de cadre</title></head> <frameset cols="40%,40%">

Page 49: Proiectarea Realizarea Site Si Portalurilor Web

49

<frame src="exemplul1.html"> <frame src="exemplu2.html"> </frameset> </html> Editarea paginilor exemplu1.html şi exemplu2.html Cadru orizontal se defineşte astfel: <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Frameset//EN” ”http://www.w3.org/tr/xhtml1/DTD/xhtml1-frameset.dtd”> <html xmlns=”http://www.w3.org/1999/xhtml” xml:lang=”en”> <head> <title>Pagina principala de cadre</title></head> <frameset rows="40%,40%"> <frame src="exemplul1.html"> <frame src="exemplu2.html"> </frameset> </html> Cadru mixt se defineşte astfel: <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Frameset//EN” ”http://www.w3.org/tr/xhtml1/DTD/xhtml1-frameset.dtd”> <html xmlns=”http://www.w3.org/1999/xhtml” xml:lang=”en”> <head> <title>Pagina principala de cadre</title></head> <frameset rows="50%,50%"> <frame src=" Exemplul1.html"> <frameset cols="40%,60%"> <frame src="exemplu2.html"> <frame src="exemplul3.html"> </frameset></frameset></html> </html> Dacă browser-ul nu suportă cadre se va ignora conţinutul tag-ului frame şi se va afişa conţinutul lui noframe. Tag-ul noframe include text şi tag-uri XHTML.

Atributele de formatare a unui cadru sunt: [Anghel_2008][2] 1.frameborder- poate lua valoarea 1 sau 0(ascunde marginile cadranului) 2. marginwidth-distanţa dintre conţinutul unui cadru şi marginile orizontale 3. marginheight-distanţa dintre conţinutul unui cadru şi marginile verticale 4.scrolling -valorile sunt yes(bara este prezentă permanant) no(bara nu este afişată) auto(bara este afişată de browser când este necesar) 5. noresize –dimensiunile cadrului sunt stabilite prin intermediul atributelor tag-ului frameset, dar se pot modifica cu mose-ul. Pentru a se impiedica modificarea atributelor elementului frameset se foloseşte atributul noresize.

Deschidrea documentelor în alte cadre se realizează astfel: < a href=”adresa” target=”nume_cadru”> Link</a> <frame name=” nume_cadru”> Deci, este nevoie de atributul target a tag-ului a care trebuie să primească ca valoare şirul de caractere existent în atributul name a lui frame.

Un cadru intern defineşte o zonă dreptunghiulară în interiorul unei pagini Web în care browser-ul afişează un alt document XHML cu marginile şi barele de defilare. Cadrul se specifică cu ajutorul tag-ului iframe, în interiorul tag-ului body. Dacă browser-ul nu suportă cadre interne se va afişa conţinutul lui iframe.Atributele lui iframe sunt:

Page 50: Proiectarea Realizarea Site Si Portalurilor Web

50

1.src ia ca valoare url documentului care se va afişa în cadrul intern. 2.frameborder- poate lua valoarea 1 sau 0(ascunde marginile cadranului) 3. marginwidth-distanţa dintre conţinutul unui cadru şi marginile orizontale 4. marginheight-distanţa dintre conţinutul unui cadru şi marginile verticale 5.scrolling -valorile sunt yes(bara este prezentă permanant) no(bara nu este afişată) auto(bara este afişată de browser când este necesar) 6. name-numele cadrului intern 7. height- înălţime, width-lăţime, align-alinierea Deschidrea unui document într-un cadru intern impune ca atributul target al elementului a trebuie să primească valoarea numelui cadrului intern <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” ”http://www.w3.org/tr/xhtml1/DTD/xhtml1-transitional.dtd”> <html xmlns=”http://www.w3.org/1999/xhtml” xml:lang=”en”> <head> <title>Definire cadre interne</title></head> <body> <ul> <li><a href=”http://www.google.com” target=”cadruintern”>Google</a></li> <li><a href=”http://www.yahoo.com” target=”cadruintern”>Yahoo</a></li> </ul> <iframe width=”80%” height=”40%” name=”cadruintern” src=”doc1.html”> Browser-ul nu soporta cadre interne </iframe> </body> </html>

Regulile de excluziune:[9][7][2] 1. elementul a nu poate conţine alte elemente a ; 2. elementul pre nu poate conţine elementele : img, object, big, small, sub sau

sup ; 3. elementul button nu trebuie sa includă oricare dintre elementele: input, select,

textarea, label, button, form, fieldset, iframe, isindex. 4. elementul label nu poate conţine alte elemente label; 5. elementul form nu poate conţine alte elemente form;

3.4.8.Hiperlegăturile O legătură stabileşte o conexiune din paginea curentă către o altă pagină.

Crearea unei legături se face cu tag-ul nevid <a>. Destinaţia legăturii este specificată ca val a atributului href. Conţinutul tag-ului poate fi: text, imagine. Deschidrea unui document într-o fereastră nouă se realizează cu JavaScript astfel: [Anghel_2008] <a onclick=”window.open(this.href); return false;” onkeypress=”window.open(this.href); return false;” href=http://www.google.com”> Google</a> Ferestra în care va fi deschisă legătura este precizată în versiunea XHTML 1.0 Transitional şi XHTML 1.0 Frameset prin intermediul atributului target a tag-ului <a>. Valorile atributului target sunt: [Anghel_2008][2] 1._blank-documentul va fi deschis într-o fereastră nouă; 2._self-documentul va fi deschis în fereastra curentă;

Page 51: Proiectarea Realizarea Site Si Portalurilor Web

51

3._parent-documentul va fi deschis în fereastra părinte a ferestrei curente, în cazul în care fereastră curentă nu are o fereastră părinte, valoarea atributului este echivalentă cu atributul _self; 4._top- documentul se va încărcat în fereastra originală, eliminând cadrele dacă există atunci când cadrul curent nu are părinte, valoarea atributului este echivalentă cu _self; Atribute precizate în specificaţia XHML 1.0 Strict sunt: [Anghel_2008][2] 1.type-se indică tipul MIME al conţinutului resursei precizate ca valoare a atributului href) ex: application/pdf 2.charset- se precizează setul de caractere al resursei indicate ca valoare a atributului href; 3. accesskey- se defineşte o tastă pt accesarea legăturii;

Elementul vid link, care se utilizează în antetul unui document XHTML, are rolul de a transmite informaţii folosite de browserele web şi de motoarele de căutare. Există posibilitatea ca într-un document xhtml să existe mai multe elemente link simultan. [Anghel_2008][9][2] 3.4.9.Formulare

Un rol important în preluarea datelor de la utilizator. Sintaxă: [Anghel_2008] <form atribute> Seturi de câmpuri + alte tag-uri de formatare </form> Atribute specifice tag-ului <form> sunt : [Anghel_2008] • action=”URL”;- are ca valoare adresa(URL-ul) fişierului de pe server ce conţine

scriptul de prelucrare a datelor de pe formular. • method=”get|post”;- indică metoda HTTP prin care datele conţinute în câmpurile

formularului vor fi transmise scriptului de prelucrare. Metodele get(implicită) şi post se folosesc pt transmiterea datelor către server precizate ca valori ale atributului action. Cele 2 metode sunt case insensitive.

• enctype=”application/x-www-form-urlencoded|multipart/form-data”;- precizează tipul de codificare aplicat conţinutului formularului pt a obţine setul de date care va fi trimis serverului. Setul de date al formularului este o secvenţă de perechi de genul nume obiect=valoarea obiectului.

Un formular poate conţine următoarele tipuri de obiecte: [Anghel_2008] 1. definite cu tag-ul vid input: căsuţă text, butoane; 2. Casete de text create cu tag-ul textarea 3. Liste de opţiuni create cu tag-ul select

Exemplu de formular: <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” ”http://www.w3.org/tr/xhtml1/DTD/xhtml1-transitional.dtd”> <html xmlns=”http://www.w3.org/1999/xhtml” xml:lang=”en”> <head> <title>Liste derulante</title></head> <body> <form method=”post” action=”x.php”> <label for=”fruct”>Care este fructul favorit?</label> <br /> <select name="fructe" id=”fruct”> <optgroup label=”citrice”> <option s value="1">mandarine</option> <option value="2">portocale</option> </optgroup>

Page 52: Proiectarea Realizarea Site Si Portalurilor Web

52

<optgroup label=”mere”> <option s value="3">ionatane</option> <option value="4">golden</option> </optgroup> </select> </form> </body> <html>

Teme pentru verificarea cunoştinţelor

1. Care este structura unui document XHTML? 2. Care este tag-ul care permite inserarea unei imagini într-un document HTML? 3. Creaţi o pagină care să fie împărţită în două cadrane orizontale în primul cadran să

existe o listă ordonată iar în al doilea cadran să existe o imagine. 4. Creaţi un site care să conţină toate elementele XHTML învăţate. 5. Să se valideze site-ul creat la pasul 4 cu validatorul Tidy. Regulile de excluziune corecte: elementul a poate conţine alte elemente a ; elementul pre nu poate conţine elementele : img, object, big, small, sub sau sup ; elemetul form poate conţine un alt element form. Un DTD este: un fişier text ce conţine reguli prin intermediul cărora sunt stabilite elementele şi

atributele, valorile acestora, modul de apariţie a elemetelor şi atributelor, relaţiile dintre elemente şi atribute, adică structura unui document XHTML.

un fişier text ce nu conţine reguli prin intermediul cărora sunt stabilite elementele şi atributele, valorile acestora, modul de apariţie a elemetelor şi atributelor, relaţiile dintre elemente şi atribute, adică structura unui document XHTML.

un fişier text ce conţine tabele. Declaraţia DOCTYPE este folosită de browser web pentru a identifica versiunea limbajului XHTML folosita în scrierea

documentului de altă pagină web pentru a identifica versiunea limbajului XHTML folosita în

scrierea documentului de server pentru a identifica versiunea limbajului XHTML folosita în scrierea

documentului Există trei definiţii DTD pentru XHTML: STRICT, TRANSITIONAL,FRAMESET Strict ,Confidenţial, Tranzit Frame, Iframe,Strict

Răspunsuri:

Regulile de excluziune corecte: elementul a poate conţine alte elemente a ; elementul pre nu poate conţine elementele : img, object, big, small, sub sau sup ; elemetul form poate conţine un alt element form. Un DTD este:

Page 53: Proiectarea Realizarea Site Si Portalurilor Web

53

un fişier text ce conţine reguli prin intermediul cărora sunt stabilite elementele şi atributele, valorile acestora, modul de apariţie a elemetelor şi atributelor, relaţiile dintre elemente şi atribute, adică structura unui document XHTML.

un fişier text ce nu conţine reguli prin intermediul cărora sunt stabilite elementele şi atributele, valorile acestora, modul de apariţie a elemetelor şi atributelor, relaţiile dintre elemente şi atribute, adică structura unui document XHTML.

un fişier text ce conţine tabele. Declaraţia DOCTYPE este folosită de browser web pentru a identifica versiunea limbajului XHTML folosita în scrierea

documentului de altă pagină web pentru a identifica versiunea limbajului XHTML folosita în

scrierea documentului de server pentru a identifica versiunea limbajului XHTML folosita în scrierea

documentului Există trei definiţii DTD pentru XHTML: Strict, Transitional,Frameset Strict ,Confidenţial, Tranzit Frame, Iframe,Strict

Bibliografie

1. [1] http://www.sciam.com/article.cfm?articleID=00048144-10D2-1C70-84A9809EC588EF21

2. [2] http://www.w3schools.com 3. [3] XHTML sintaxa http://w3schools.com/xhtml/xhtml_syntax.asp 4. [4] Validator - http://validator.w3.org/ 5. [5] XHTML tool - http://savannah.nongnu.org/projects/xhtmltools/ 6. [6] XMLBuddy http://www.download.com/XMLBuddy/3000-7241_4-

10422909.html?tag=lst-0-5 7. [7] HTML Tidy http://tidy.sourceforge.net/#docs 8. [8] http://www.upg-ploiesti.ro/col/ldumitrascu/html/content.jsp-id=5.htm 9. [9] http://www.tutorialeweb.ro/view_art.php?IDart=35&articol=module_xhtml 10. [10]http://interfetze.blogspot.com/2008/11/xhtml.html 11. [11]http://www.w3.org/International/articles/serving-xhtml/Overview.ro.php 12. [12]http://interfete-web.clubcisco.ro/site/index.php/xhtml 13. [Anghel_2008]Traian Anghel, Programare web pentru liceu,Editura

Polirom,2008

Page 54: Proiectarea Realizarea Site Si Portalurilor Web

54

MODULUL 4 MYSQL SERVER

4.1.Scopul şi obiectivele modulului

Scopul acestui modul este de a prezenta toate noţiunile teoretice şi practice necesare pentru învăţarea principiilor de bază în lucrul cu bazele de date. Conceptele de bază prezentate în cadrul prezentului modul sunt:

Modalitatea de funcţionare a unui server de baze de date Baza de date-definiţie şi proiectare Tipuri de date MySQL Operaţii asupra bazelor de date în MySQL

Obiectivele modului sunt: 1. Familiarizarea cu concepte ca server de baze de date, bază de date,

înregistrare; 2. Asimilarea principiului de funcţionare a unui server de baze de date 3. Cunoaşterea tipurilor de date MySQL 4. Crearea unei baze de date 5. Însuşirea operaţiilor clasice ce se execută asupra unei baze de date în

MySQL.

Recomandǎri privind studiul:

1. Studierea conceptelor prezentate în vederea utilizării lor pe parcursul celorlalte capitole.

2. Asimilarea conceptelor de bază legate de conceperea, proiectarea şi implementarea bazelor de date care stau la baza dezvoltării proiectelor web dinamice prezentate în capitolele următoare

Rezultate aşteptate:

1. Studenţii trebuie să fie capabili să îşi prezinte cunoştinţele teoretice de natură coerentă şi consistentă.

2. Studenţii trebuie să poată proiecta şi implementa o bază de date pentru o pagină web dinamică de mare complexitate.

. 4.2. Scurtă recapitulare a conceptelor prezentate anterior În cadrul modulelor anterioare s-au prezentat atât noţiuni legate de mediul virtual şi modul de funcţionare al acestuia cât şi elemente de limbaj HTML.

4.3. Schema logică a modulului

Prezentarea produsului informatic MySql Server a impus structurarea acestului modul ca în figura de mai jos:

Page 55: Proiectarea Realizarea Site Si Portalurilor Web

55

4.4.1. MySQL –concepte de bază, caracterisitci

Fig.4.3.1 Structura modulului 4

4.4. Conţinutul informaţional detaliat

MySQL este cel mai popular sistem de management pentru baze de date

relaţionale deoarece este open-source. MySQL Server a fost creat pentru a lucra cu baze de date mai rapid decât soluţiile deja existente la ora actuală pe piaţă [Graeme-site].

Facilităţile oferite de MySQL sunt variate, dintre care se vor preciza următoarele [BuBois2001]: posibilitatea accesului concurent la date de către un număr nelimitat de utilizatori; capacitatea de a gestiona până la 50000000 de înregistrări şi chiar mai multe; execuţia foarte rapidă a comenzilor, poate chiar cea mai rapidă din cele existente pe

piaţă; sistem uşor şi eficient de gestiune a drepturilor utilizatorilor; este gratuit, fapt ce a atras extinderea fără precedent a folosirii acestui server de baze

de date. MySQL este un sistem de gestiune a bazelor de date. Pentru a adăuga, insera şi

procesa datele memorate pe un calculator este nevoie de un astfel de sistem de gestiune

MySQL –concepte de bază, caracterisitci

Modul de funcţionare a unui server de baze de date pentru Web

Tipuri de date SQL Baze de date-

definiţie, proiectare

Operaţii asupra bazelor de date în MySQL

Page 56: Proiectarea Realizarea Site Si Portalurilor Web

56

a datelor. Având în vedere că toate calculatoarele sunt destinate pentru memorarea informaţiilor, managementul bazelor de date joacă un rol decisiv, atât în gestiunea datelor ca activitate de sine stătătoare, cât şi în cadrul aplicaţiilor ample [BuBois2001].

MySQL este un sistem multiuser (permite să fie folosit concomitent de mai mulţi utilizatori) şi multithread (prezintă mai multe fire de execuţie). Utilizează SQL, limbajul standard de interogare a bazelor de date.[WellingThomson2005]

MySQL este un sistem de gestiune a bazelor de date relaţionale. Tabelele sunt conectate prin relaţii predefinite, fapt ce face posibilă combinarea datelor din mai multe tabele, la cerere. MySQL este un produs open source.

MySQL este un sistem client-server care este alcătuit dintr-un server SQL multithread care are facilităţi pentru mai mulţi utilizatori, mai multe programe şi biblioteci client, instrumente de administrare şi un număr mare de interfeţe de programare. Având în vedere că MySQL suportă o gamă variată de produse software, există posibilitatea ca multe din limbajele de programare deja folosite de anumiţi utilizatori să suporte deja interfaţa cu acest produs [BuBois2001].

Orice maşină care doreşte să proceseze interogări asupra unei baze de date MySQL trebuie să ruleze MySQL server-MySQLd-, care este responsabil de tot traficul de tip incoming sau outgoing cu baza de date. Ca orice server, MySQLd primeşte pe un port particular (3306) eventualele cereri de conexiune ale unui client care trimite cereri către o bază de date via MySQLd. Acest client poate fi un script în PHP care, graţie modelului DBI, poate trimite o cerere către baza de date prin intermediul serverului MySQL, sau chiar clientului command-line MySQL. Clientul MySQL este o interfaţă interactivă pentru trimiterea de comenzi către server [BuBois2001].

Principalele motive pentru folosirea pe scară largă a MySQL sunt viteza, stabilitatea şi facilitatea în utilizare. De asemenea MySQL are o serie de caracteristici care au fost dezvoltate prin colaborarea foarte apropiată cu utilizatorii acestui limbaj. Aceste caracteristici ale limbajului se datorează faptului că a fost proiectat încă de la început pentru gestionarea unui volum foarte mare de date, iar experienţa în folosirea sa, acumulată de-a lungul anilor şi-a spus cuvântul. MySQL oferă astăzi un set complet şi util de funcţii. Conectivitatea, viteza şi securitatea fac ca MySQL să fie unul din cele mai potrivite produse pentru gestiunea bazelor de date pe Internet [MySQL-site].

4.4.2. Modul de funcţionare a unui server de baze de date pentru Web

Funcţionarea unui server de baze de date pentru Web, în cazul nostru MySQL,

implică existenţa a două elemente: un browser Web şi un server. Între aceste două elemente se impune să existe un canal de comunicare. Serverul de Web funcţionează în moduri diferite în următoarele situaţii: [WellingThomson2005] în cazul în care server-ul lucrează cu pagini de web statice, un browser Web

(clientul) formulează cererea către server, iar serverul trimite înapoi un răspuns. în cazul în care server-ul lucrează cu pagini web dinamice care preiau datele dintr-o

bază de date şi le afişează se realizează următorii paşi: [WellingThomson2005] browser-ul web al unui utilizator emite o cerere HTTP pentru o anumită pagină

Web; server-ul web recepţionează cererea şi transferă fişierul către motorul PHP, în cazul

nostru, pentru prelucrare;

Page 57: Proiectarea Realizarea Site Si Portalurilor Web

57

motorul php începe analiza paginii. În interiorul unei pagini web dinamice există o comandă care realizează legătura la baza de date şi execută interogările pe care le trimite serverului MySql;

serverul MySQL recepţionează interogarea bazei de date şi o prelucrează, iar apoi trimite rezultatele motorului PHP;

motorul PHP afişează rezultatele furnizate de server-ul MySQL formatate într-un cod HTML pe care îl returnează server-ului Web, în cazul nostru Apache. Server-ul Web transmite codul HTML browser-ului, unde utilizatorului i se afişează

rezultatul dorit de acesta. 4.4.3. Tipuri de date SQL

Crearea unei baze de date relaţionale presupune crearea unuia sau mai multor

tabele legate între ele. În procesul de creare a unui tabel are loc stabilirea numelor câmpurilor acestuia cât şi a tipurilor de date prin care unui utilizator i se indică ce date are voie să introducă în acestea. În funcţie de tipurile de date alese pentru fiecare coloană a tabelei se alocă pe disc un spaţiu de memorie. În această situaţie este indicată o cunoaştere aprofundată a acestora, deoarece acest fapt va permite creatorului tabelei să aleagă tipul de date potrivit pentru fiecare coloană a tabelei astfel încât aceasta să ocupe un spaţiu de memorie optim pe disc şi în acelaşi timp să răspundă nevoilor utilizatorilor acesteia. De exemplu, dacă se doreşte să se definească un câmp “Vârsta” în cadrul unei tabele “Elevi” este bine ca acesta să fie de tipul TINYINT deoarece acesta se defineşte pe un interval numeric ce cuprinde valoarea numerică care poate fi introdusă într-un astfel de câmp. Un individ poate trăi în intervalul (0,100) aşa cum s-a observat până în momentul de faţă. Pentru fiecare înregistrare introdusă în tabela Elevi pentru câmpul Vârsta se va aloca 1 byte de memorie.

Tipurile de date folosite în procesul de creare a tabelelor din cadrul bazelor de date MySql, spaţiul pe care acestea îl ocupă şi valorile minime şi maxime ale acestora sunt prezentate în cele ce urmează [site9] [site10] [site11] [Chip2/2003]:

Tip de dată Descriere Valori Bytes TINYINT

Întregi de dimensiune foarte mică cu semn fără semn

[-128;127] [0,255]

1

SMALLINT Întregi de dimensiune mică cu semn fără semn

[-32768,32767] [0; 65535]

2

MEDIUMINT Întreg de lungime medie cu semn fără semn

[-8388608; 8388607] [ 0;16777215]

3

INT sau INTEGER Întreg de lungime normală. cu semn fără semn

[-2147483648;2147483647

4

Page 58: Proiectarea Realizarea Site Si Portalurilor Web

58

] [0; 4294967295]

BIGINT Întreg de dimensiune mare. cu semn fără semn

[-9223372036854775808; 9223372036854775807] [0;18446744073709551615]

8

FLOAT Număr în virgulă mobilă care nu poate fi fără semn având precizie simplă sau dublă. Precizia poate merge până la 24 de zecimale

[±1.175494351E-38 ±3.402823466E+38]

4

REAL sau DOUBLE

Număr în virgulă mobilă, de dublă precizie care nu poate fi fără semn. Precizia poate merge până la 53 de zecimale.

[±2.2250738585072014E-308, ±1.7976931348623157E+308]

8

NUMERIC sau DECIMAL

Număr în virgula mobilă care nu poate fi fără semn.

[±2.2250738585072014E-308, ±1.7976931348623157E+308]

8

Tabel 3.1. Tipuri de date numerice [site9][site10][site11] Tipurile de dată calendaristică sunt prezentate în tabela de mai jos[Chip2/2003]:

Tipul de dată Format

DATETIME ’YYYY-MM-DD hh:mm:ss’ DATE ’YYYY-MM-DD’

TIMESTAMP YYYYMMDDhhmmss TIME ’hh:mm:ss’ YEAR ‘YYYY’

Tabel 3.2. Tipul de dată calendaristică [Chip2/2003]: Şirurile de caractere se împart în trei grupuri şi anume: şiruri normale definite prin

tipul CHAR (fixed length character), respectiv VARCHAR (variable length character), şiruri text definite prin tipul TEXT respectiv BLOB (pentru şiruri lungi sau date binare) şi şirurile care folosesc SET respectiv ENUM pentru valori predefinte.[site11] Tipurile de şiruri de caractere sunt:[ Chip2/2003] • BLOB- câmpul de acest tip poate conţine o cantitate variabilă de informaţie 2^16-1

(64k-1). Căutarea într-un câmp de acest tip este case sensitive, adică se face disticţie între litere mari şi cele mici;

• TEXT- asemănător cu BLOB dar nu este case sensitive; • VARCHAR similat cu tipul TEXT cu deosebirea că pentru un câmp de acest tip se

poate specifica numărul maxim de caractere admis; • TINYTEXT sau TINYBLOB (2^8-1) • MEDIUMTEXT sau MEDIUMBLOB(2^24-1=16M-1)

Page 59: Proiectarea Realizarea Site Si Portalurilor Web

59

• LONGBLOB (2632-1=4G-1) • ENUM (‘valoare1’,’valoare2’,...). Numărul maxim de valori pe care îl poate avea

este 65535. Valoare implicită este NULL SET(‘valoare1’,’valoare2’,...). Numărul maxim de valori pe care îl poate avea este 64. Valoare implicită este NULL 4.4.4. Privilegii acordate utilizatorilor

În MySql comenzile Grant şi Revoke sunt folosite pentru a acorda, respectiv

anula privilegii utilizatorilor. Unui utilizator i se pot acorda următoarele patru niveluri de privilegii: [Welling Thomson 2005]

global; bază de date; tabelă; coloană.

Sintaxa comenzii GRANT este: [WellingThomson2005][site11] GRANT privilegii [coloane] ON articol TO nume_utilizator [IDENTIFIED BY ‘parola’] [REQUIRE optiuni_SSl][WITH [GRANT OPTION| optiuni_limitare]];

Sintaxa comenzii REVOKE este: [WellingThomson2005] REVOKE privilegii [(coloane)] ON articol FROM nume_utilizator ;

În cazul în care în comanda GRANT s-a folosit clauza WITH GRANT OPTION revocare se face astfel:

REVOKE ALL PRIVILEGES, GRANT FROM nume_utilizator;

4.4.5. Baze de date- definiţie, proiectare

O bază de date reprezintă o modalitate de stocare a unor informaţii (date) pe un

suport extern, cu posibilitatea regăsirii acestora. Cel mai răspândit model de bază de date este numit entitate-relaţie în care datele sunt memorate în tabele legate între ele. [site12] Pentru a putea stabili legături între două sau mai multe tabele ale unei baze de date se definesc chei. Cheile pot fi primare şi secundare.

Tabelele unei baze de date sunt alcătuite din câmpuri, adică coloane care sunt unice şi din linii care conţin valorile introduse în câmpuri. Liniile unei tabele se numesc înregistrări sau tupluri. Coloanele unei tabele pot să îndeplinească rolul de cheie primară sau secundară. În cadrul unei tabele se poate defini la un moment dat doar o singură cheie primară.

Proiectarea unei baze de date impune respectarea următoarelor principii:[site13] 1. identificarea scopului bazei de date; 2. identificarea şi împărţirea informaţiilor în tabele corespunzătoare; 3. definirea cheilor primare astfel încât acestea să poată determina în mod unic

o înregistrare; 4. identificarea cheilor secundare; 5. stabilirea legăturilor între tabele; 6. eliminarea datelor redundante. Între tabelele unei baze de date, după stabilirea cheilor primare, respectiv

secundare se pot defini trei tipuri de legături, şi anume:[site11]

Page 60: Proiectarea Realizarea Site Si Portalurilor Web

60

1. unu-la-unu – fiecărei valori din câmpul, care îndeplineşte rolul de cheie primară, în tabela părinte îi corespunde o singură înregistrare în tabela la care este legată; 2. una-la-mai-multe – fiecărei valori din câmpul care îndeplineşte rolul de cheie primară, în tabela părinte, îi corespund mai multe înregistrări în tabela la care este legată (un client ar putea face mai multe comenzi). 3. mai-multe-la-mai-multe -mai multe valori din câmpul care îndeplineşte rolul de cheie primară, în tabela părinte îi corespund mai multe înregistrări din tabela la care este legată.

4.4.6. Operaţii asupra bazelor de date în MySQL

O regulă de bază în MySql este că majoritatea comenzilor tastate în monitorul

MySQL de clienţi pentru a fi transmise serverului se termină cu “;”. Caracterul “;’ indică server-ului de baze de date MySql că s-a terminat introducerea unei comenzi şi deci o poate procesa şi afişa rezultatul.

Crearea unei aplicaţii Web dinamice, în marea majoritate a lor, implică crearea unei baze de date alcătuită din una sau mai multe tabele legate între ele. Crearea unei astfel de baze de date în MySql, pentru un magazin virtual care se ocupă cu comercializarea produselor IT, se realizează cu comanda:

mysql> create database nume_bază_de_date; “nume_bază_de_date” va trebui să fie înlocuit cu numele pe care utilizatorul doreşte să îl acorde bazei lui de date, în cazul nostru magazin.(vezi Figura 3.1)

Figura 3.1. Crearea bazei de date magazin

În Figura 3.1, ca urmare a acţiunii de tastare a comenzii de creare a bazei de

date, magazin, s-a afişat pe ecran mesajul: Query OK, 1 row affected (0.01 sec). În cazul în care nu se poate executa comanda de creare a bazei de date dorite în locul mesajului de mai sus se va afişa un mesaj de eroare.

Vizualizarea bazelor de date existente pe server-ul Mysql de către administrator se face cu comanda: [Chip2/2003]:

mysql> SOW DATABASES; Interogarea de mai sus se termină cu punct şi virgulă deoarece toate comenzile SQL trebuie încheiate astfel pentru a semnala server-ului că s-a terminat de scris propoziţia şi că se poate trece la procesarea cererii. Rezultatul procesării comenzii de mai sus este afişarea tuturor bazelor de date existente în directorul data a serverului MySQL.

Page 61: Proiectarea Realizarea Site Si Portalurilor Web

61

Selectarea unei baze de date ca fiind cea curentă se face prin comanda: USE nume_baza_de_data;

Pasul următor în procesul de creare a unei baze de date îl constituie crearea tabelelor ce o compun. Comanda de crearea a unui tabel are următoarea sintaxă:

CREATE TABLE nume_tabelă (nume_câmp tip_câmp); În procesul de creare a unui tabel activităţile sunt:

1. denumirea câmpurilor; 2. alegerea unui tip de date potrivit pentru fiecare câmp; 3. definirea atributelor pentru fiecare câmp în parte; 4. stabilirea coloanei care va juca rolul de cheie primară sau secundară cu

ajutorul căreia se va stabili legătura către alte tabele ale bazei de date. Indexii pentru o tabelă se pot crea astfel:

1. fie adăugând la sfârşitul instrucţiunii CREATE TABLE... comanda [Chip2/2003] INDEX(nume_coloană_index);

2. fie folosind comanda: [WellingThomson2005] CREATE [UNIQUE|FULLTEXT] INDEX nume_index ON nume_tabelă (nume_coloană_index [(lungime)[ASC|DESC],...);

Ştergerea unui tabel, index, bază de date sau o coloană dintr-un tabel se face folosind comanda DROP astfel[Chip2/2003]:

DROP TABLE nume_tabel; DROP DATABASE nume_baza_de_data;

Popularea tabelelor cu înregistrări se face prin comanda INSERT care are următoarea sintaxă [Chip2/2003]: INSERT INTO nume_tabel (câmp1, câmp2, câmp3) values (valoare1, valoare2, valoare3);

Comanda SELECT se foloseşte pentru a afişa toate înregistrările dintr-o tabelă astfel:

mysql>SELECT * FROM nume_tabelă; Comanda SELECT se foloseşte pentru a afişa toate înregistrările dintr-o tabelă

astfel: mysql>SELECT * FROM nume_tabelă;

Figura 3.2. Înregistrările din cadrul tabelei Produse

Page 62: Proiectarea Realizarea Site Si Portalurilor Web

62

Modificarea conţinutului unei înregistrări se face utilizând comanda UPDATE care are sintaxa[Chip2/2003] UPDATE nume_tabel SET nume_coloană1=`noua valoare a coloanei 1`, nume_coloană2=`noua valoare a coloanei 2` WHERE condiţii

Ştergerea înregistrărilor dintr-o tabelă se face prin comanda DELETE care are

următorea sintaxă [Chip2/2003]: DELETE FROM nume_tabel WHERE condiţii;

În cadrul prezentului capitol au fost expuse comenzi MySQL cu ajutorul cărora se poate proiecta şi dezvolta o bază de date care să corespundă în totalitate nevoilor unui magazin virtual care ar putea avea, de exemplu, ca obiect de activitate vânzarea de componente de calculatoare, componente de calculatoare şi nu numai.

Page 63: Proiectarea Realizarea Site Si Portalurilor Web

63

Test de verificare a cunoştinţelor:

1. Ce este MySQL? Definiţi acest concept. 2. Enumeraţi câteva facilităţi oferite de MySQL. 3. Enumeraţi principalele motive pentru folosirea pe scară largă a MySQL. 4. Explicaţi mecanismul de funcţionare a unui server Web. 5. Enumeraţi tipurile de date numerice cunoscute. Daţi un exemplu de asociere a

unui tip de date pentru un câmp al unei tabel. 6. Enumeraţi tipurile de date calendaristice cunoscute. 7. Enumeraţi grupurile în care se împart de şirurile de caractere? 8. Definiţi conceptul de bază de date. 9. Definiţi conceptul de relaţie între tabele. 10. Enumeraţi şi explicaţi tipurile de relaţii ce se pot stabili între două sau mai multe

tabele ale unei baze de date. 11. Creaţi o baza de date numită Facultate. Baza de date să fie alcătuită din două

tabele una numită Studenţi şi cealaltă numită Examene. Relaţia între cele două tabele să fie de unu la mai mulţi definită prin câmpul IDStud

Structura tabelei Studenti IDStud Nume Prenume Adresa An Serie Grupa

Structura tabelei Examene:

IDStud Materie Tip_Exam Nota

a. Să se insereze 5 înregistrări în fiecare tabelă. b.Să se vizualizeze structura tabelelor. c.Să se vizualizeze înregistrările fiecărei tabele. d.Să se modifice conţinutul celei de a doua înregistrare din fiecare tabelă. e.Să se adauge încă trei înregistrări la fiecare tabelă. f.Să se şteargă toate înregistrările din tabela Examene pentru care Nota este 7.

1. Funcţiile mysql_connect(); şi mysql_select_db(); trebuie apelate întotdeauna când se termină lucrul cu bazele de date apelate întotdeauna când se transmit datele dintr-o pagină php într-o altă pagină php apelate întotdeauna când se începe lucrul cu bazele de date apelate întotdeauna când se începe crearea tabelelor html

2.Modificarea datelor unei înregistrări dintr-o tabelă a unei baze de date se face cu comanda : INSERT UPDATE SELECT DELETE Răspunsuri 1. Funcţiile mysql_connect(); şi mysql_select_db(); trebuie apelate întotdeauna când se termină lucrul cu bazele de date apelate întotdeauna când se transmit datele dintr-o pagină php într-o altă pagină php apelate întotdeauna când se începe lucrul cu bazele de date apelate întotdeauna când se începe crearea tabelelor html

Page 64: Proiectarea Realizarea Site Si Portalurilor Web

64

2.Modificarea datelor unei înregistrări dintr-o tabelă a unei baze de date se face cu comanda : INSERT UPDATE SELECT DELETE

Page 65: Proiectarea Realizarea Site Si Portalurilor Web

65

MODULUL 5 PREZENTAREA LIMBAJULUI DE SCRIPTING PHP

Scopul şi obiectivele modului

În cadrul acestui modul se vor prezenta noţiunile teoretice şi practice ale

limbajului de scripting pe parte de server numit PHP. Conceptele de bază ale limbajului de scripting PHP , pe care le vom aborda încadrul acestui modul sunt :

noţiuni fundamentale de funcţionarea ale lui PHP Accesul la paginile PHP şi crearea acestora Structuri de control, tipuri de date, variabile, constante, operatori Funcţii Fişiere Sesiuni şi cookies Accesarea bazelor de date din intermediul unei pagini PHP Formulare

Obiective acestui modul sunt: 1. Familiarizarea cu conceptele ca pagină PHP, constante,variabile, operatori,etc.; 2. Asimilarea principiului de funcţionare a unui pagini PHP 3. Cunoaşterea structurilor de control şi a principiilor de funcţionare a acestora 4. Însuşirea modului de lucru cu baze de date în MySQL din cadrul unei pagini

PHP 5. Crearea de pagini dinamice complexe

Recomandǎri privind studiul:

1. Studierea conceptelor prezentate în vederea utilizării lor în practică. 2. Asimilarea conceptelor de bază legate de conceperea, proiectarea şi implementarea unor proiectelor web dinamice cu caracter economic şi nu numai.

Rezultate aşteptate: 1. Studenţii trebuie să fie capabili să îşi prezinte cunoştinţele teoretice de natură

coerentă şi consistentă. 2. Studenţii trebuie să poată concepe, proiecta şi implementa un proiect amplu de

pagină web dinamică 5.2. Scurtă recapitulare a conceptelor prezentate anterior

În cadrul modulelor anterioare s-au prezentat noţiuni legate de mediul virtual şi modul de funcţionare al acestuia, elemente de limbaj HTML.şi modul de concepere, proiectare şi implementarea a bazelor de date în MySQL. Pe baza acestor cunoştinţe în cadrul acestui modul se pot prezenta noţiunile de bază şi avansate ale limbajului de scripting PHP.

Page 66: Proiectarea Realizarea Site Si Portalurilor Web

66

5.3. Schema logică a modulului

Prezentarea limbajului de scripting PHP a impus structurarea acestui modul ca în figura de mai jos:

Fig.4.3.1 Structura modulului 3

5.4. Conţinutul informaţional detaliat

5.4.1 Limbajului PHP~noţiuni fundamentale

PHP este un limbaj de scripting folosit pentru crearea paginilor Web dinamice.

PHP poate fi folosit pentru scrierea unor programe stocate pe server ce accesează baze de date. El este similar cu alte limbaje de script cum ar fi, de exemplu JSP (Java Server Pages). PHP este un limbaj eficient şi securizat. Aplicaţiile PHP sunt uşor de configurat pentru exploatare. PHP asigură timpi de răspuns competitivi la rularea aplicaţiilor Web, asigurând în acelaşi timp securitatea informaţiilor şi transparenţa faţă de utilizator [Chip2/2003].

PHP este un limbaj ideal pentru construirea de pagini Web dinamice. El poate fi rulat pe mai multe platforme şi se poate conecta la mai multe baze de date, în particular

Elemente de limbaj PHP

HTM+PHP+MYSQL

Site-uri web dinamice Portaluri Web

Principiul de funcţionare PHP

Page 67: Proiectarea Realizarea Site Si Portalurilor Web

67

baze de date relaţionale create cu MySQL. Cel mai important aspect al limbajului este însă posibilitatea de a fi inclus în cod HTML. Se pot crea pagini HTML statice şi din loc în loc, acolo unde este nevoie, să se introducă dinamism cu PHP.

Limbajul PHP fiind open-source beneficează de un sprijin activ din partea comunităţii on-line, acesta fiind şi motivul creşterii explozive a numărului de site-uri bazate pe acest limbaj.

Limbajul PHP oferă următoarele facilităţi [Welling2001]: 1. manipularea conţinutului paginilor web; 2. transmiterea header-elor HTTP pentru autentificare; 3. setarea cookie-urilor; 4. redirecţionarea utilizatorilor; 5. asigurarea spargerii (paser) fişierelor XML; 6. crearea şi manipularea imaginilor, animaţiilor şi a PDF-urilor; 7. conectarea la un server de e-mail.

5.4.2. Principiul de funcţionare a limbajului PHP

Modul de funcţionare a limbajului PHP este următorul: browser-ul trimite către server-ul Web o cerere HTTP pentru un fişier PHP. Server-ul recunoaşte că fişierul cerut conţine cod PHP, în consecinţă va lansa parser-ul PHP, care va primi la intrare fişierul respectiv. Parser-ul va identifica secvenţele PHP, care în cadrul codului HTML sunt cuprinse între marcajele „<?” şi „?>” şi le va interpreta. Tot ce nu este cod PHP este trimis spre ieşirea standard fără nici o prelucrare. Codul PHP poate scrie la rândul său în ieşirea standard prin comenzile prestabilite cum ar fi „echo” sau „print”. În final serverul Web intercepteză ieşirea standard a parser-ului şi transferă totul browser-ului care a cerut pagina [McCarty2002]. PHP, şi într-o anumită măsură şi alte limbaje Web, prezintă următoarele caracteristici [Welling2001]:

este interpretativ; execuţia este rapidă deoarece interpretorul este inclus în server-ul Web, prin

urmare nu se cheltuiesc resurse cu configurarea; este bogat în facilităţi, conţinând numeroase funcţii utile; are o sintaxă simplă, variabilele nu trebuie declarate, tipul acestora se

stabileşte la iniţializarea lor cu o valoare şi în plus numele de funcţii sunt intuitive.

Crearea paginilor PHP se reduce la editarea unui fişier PHP care se poate realiza în orice editor de texte: Notepad, editoare PHP, etc. şi acesta poate conţine:

text; tag-uri HTML sau XML; comenzi şi instrucţiuni PHP; comenzi şi instrucţiuni MySQL. Pe parcursul dezvoltării fişierului, în fereastra editorului de texte Notepad se va

acţiona comanda Save a meniului EDIT după fiecare modificare adusă fişierului, apoi Refresh în browser pentru reflectarea modificărilor astfel efectuate (folosirea butoanelor Back şi Forward din browser trebuie să fie urmată de asemenea de Refresh). Cu condiţia ca fişierele să fie salvate corect, iar URL-urile locale să fie scrise corect, pentru fiecare pagină PHP la care se lucrează simultan trebuie deschisă câte o fereastră a editorului.

Page 68: Proiectarea Realizarea Site Si Portalurilor Web

68

O pagină PHP se salvează cu extensia php în directorul C:\Program Files\Apache Group\Apache\htdocs\ şi se va accesa în browser la adresa http://localhost/numefisier.php. În cazul în care se doreşte ca paginile unui site Web să se păstreze într-un subdirector creat în rădăcina server-ului Web atunci la lansarea în browser a site-ului web se va introduce şi numele acestuia în URL astfel: http://localhost/numesubdirector/numefisier.php. După lansarea în browser a unei pagini PHP se poate folosi opţiunea View source a acestuia, şi se observă că se afişează doar ieşirile scriptului (text, cod HTML, etc.), nu şi codul PHP care generează ieşirile.

5.4.2.1. Accesul la paginile PHP şi afişarea rezultatelor acestora

Comenzile de editare a unei pagini HTML dintr-un script PHP, sunt: echo, print, print_r, şi printf. Toate aceste comenzi mai sunt folosite pentru afişarea rezultatelor unei funcţii, a valorilor unei variabile, a elementelor unui tablou, a mesajelor text, a valorilor introduse de utilizator în câmpurile unui formular HTML, pentru a transmite valorile încadrate între ghilimele la browser, etc. Exemple cu aceste comenzi se vor realiza pe tot parcursul incursiuni în limbajul PHP.

În cele ce urmează se prezintă un exemplu de pagină PHP care foloseşte comenzile print şi echo pentru afişarea în browser a unui pagini web statice ce va conţine două mesaje text. Exemplu:

<html> <head> <title>Exemplu de afisare a valorilor unei variabile</title> </head> <body> <?

print "Comanda de afisare a datelor pe ecran";// se afiseaza pe ecran //ghilimele textul scris între ?> <br> <? echo "Limbajul PHP"; // afiseaza pe ecran textul dintre ghilimele ?> </body> </html>

În momentul când fişierul de mai sus este solicitat de un utilizator, server-ul

Web va recunoaşte fişierul ca fiind o pagină PHP datorită faptului că are extensia .php. Înainte de a trimite fişierul către browser-ul utilizatorului server-ul Web va prelucra scriptul din fişier. În cazul exemplului anterior, scriptul din fişier este codul sursă scris între <?...?>. După prelucrarea scripturilor va rezulta o pagină HTML în care codul sursă PHP se va înlocui cu rezultatul acestuia. În exemplul anterior ieşirea PHP care ajunge la browser, poate fi vizualizată cu comanda Source a meniului View, iar rezultatul va fi:

<html><head><title>Exemplu de afisare a valorilor unei variabile</title> </head><body> Comanda de afisare a datelor pe ecran

Page 69: Proiectarea Realizarea Site Si Portalurilor Web

69

<br> Limbajul PHP</body></html>

5.4.3. Variabilele PHP

Variabilele PHP nu trebuie declarate ci sunt create automat în momentul primei

utilizări. În acest moment li se defineşte tipul de date. Această facilitate permite programatorului posibilitatea dezvoltării rapide a unor aplicaţii complexe. Odată ce o variabilă a fost creată ea poate fi folosită oriunde în program, cu excepţia funcţiilor, unde trebuie inclusă explicit în zona locală de alocare prin funcţia global. Sintaxa unei variabile PHP este:

$nume_variabilă=valoare; unde valoare poate fi de orice tip.

În continuare se prezintă o pagină PHP care conţine exemple de utilizare a variabilelor în cadrul unui script PHP:

<html> <head><title>Exemplu de variabile numerice</title></head> <body> <? Php //Se seteaza valoare lui a $a=1; $aduna=$a+1; print ”Rezultatul adunarii este: $aduna”;// se afişează pe ecran textul //Rezultatul adunarii este:urmat // de valoare variabilei $aduna adică 2 </body> </html>

Fişierul de mai sus a fost salvat în directorul “htdocs” a server-ului Apache cu

numele “Varibile1.php”. În cadrul acestui fişier variabila $a a fost iniţializată cu 1, deci aceasta este de tip numeric. Variabila $aduna a primit valoarea variabilei $a la care s-a adunat valoare 1. Instrucţiunea print (la fel se putea folosi instrucţiunea echo) s-a folosit în cadrul fişierului de mai sus pentru a afişa în browser textul “Rezultatul adunării este:” urmat de valoarea variabilei $aduna adică 2.

Comentariile se realizează cu semnul „//” în cazul în care se comentează pe un singur rând. În cazul în care se doreşte inserarea în codul sursă a unui cometariu pe mai multe rânduri se foloseşte semnul „/*...*/”. Aceste comentarii nu sunt interpretate de browser şi se folosesc la explicarea codului sursă.

5.4.4. Variabile şi constante

Tipurile de variabile acceptate de PHP sunt:. 1. Integer [WellingThomson2005] [Chip2/2003] care se utilizează pentru numere întregi, de exemplu: 5,-5,90. 2. String [WellingThomson2005] [Chip2/2003] care se utilizează pentru şiruri de caractere. Un string este o succesiune de caractere (şir) încadrate între ghilimele.

Page 70: Proiectarea Realizarea Site Si Portalurilor Web

70

3.Float (Double) [WellingThomson2005] [Chip2/2003] care se utilizează pentru numere reale; 4.Boolean [WellingThomson2005] [Chip2/2003] utilizat pentru a defini o valoare de adevăr TRUE sau FALSE. Acest tip se foloseşte, în general, pentru a face diferite verificări în procesul de programare. De exemplu, se verifică dacă un anumit produs există în tabela “Produse”. În cazul în care acesta există se va returna TRUE şi datele despre acest produs vor putea fi afişate pe ecran, în caz contrar se va returna FALSE şi date despre acesta nu se vor putea afişa în browser. 5.Array [WellingThomson2005] [Chip2/2003] se utilizează pentru extragerea mai multor date de acelaşi tip. Un array poate fi considerat ca fiind un tablou în care fiecărei valori îi corespunde un număr, adică un indice (o poziţie).

Variabilele superglobale sunt: [WellingThomson2005]

$_SERVER este un tablou ce conţine variabile de mediu ale serverului; $_GET este un tablou ce conţine variabile transferate scriptului prin metoda

GET; $_POST este un tablou ce conţine variabile transferate scriptului prin metoda

POST; $_COOKIE este un tablou ce conţine blocuri cookie; $_FILES este un tablou ce conţine variabile legate de încărcarea fişierelor; $_REQUEST este un tablou ce conţine toate variabilele introduse de utilizator,

inclusiv conţinutul intrărilor din $_GET, $_POST şi $_COOKIE; $_SESSION este un tablou ce conţine variabile de sesiune.

Variabilele globale cele mai folosite sunt:[site19]

$_SERVER['REMOTE_ADDR'] are misiunea de a returna adresa IP a vizitatorului;

$_SERVER['HTTP_USER_AGENT'] are misiunea de a returna informaţii despre browser-ul folosit;

$_SERVER['HTTP_REFERER'] are misiunea de a returna adresa paginii vizitată anterior;

$_SERVER['SERVER_NAME'] are misiunea de a returna numele serverului;

$_SERVER['SCRIPT_NAME'] are rolul de a returna numele fişierului php accesat.

O constantă are un tip şi o valoare. Atât tipul, cât şi valoare, sunt determinate de caracterele care intră în componenţa constantei. Valoare unei constante nu poate fi schimbată în timpul execuţiei programului în care a fost utilizată. [Negrescu2000]

Constantele se caracterizează prin: [site16] li se atribuie o valoare care nu poate fi modificată sau ştersă de-a lungul execuţiei

programului; constantele nu prezintă în sintaxa lor simbolul $ ; numele unei constante este o succesiune de litere şi eventual cifre, primul caracter

este în mod obligatoriu literă. Aceasta este case sensitiv. constantele au un caracter global. definirea constantei se realizează cu funcţia define().

Page 71: Proiectarea Realizarea Site Si Portalurilor Web

71

4. 4.5. OPERATORI

Interpretorul PHP permite folosirea a nouă tipuri diferite de operatori. Aceştia

operează asupra unor expresii (una, doua sau trei) şi furnizează ca rezultat o altă expresie care este rezultatul operaţiei corespunzătoare.[site14]

Operatorii aritmetici acţionează asupra a doi sau mai mulţi operanzi. Aceştia sunt: [site14] [WellingThomson2005] [Chip2/2003]

adunare ('+'); scădere ('-'); înmulţire ('*'); împărţire ('/'); restul împărţirii ('%'). Operatorii relaţionali se folosesc în procesul de compararea a două valori,

variabile, constante, etc. Expresiile în care aceştia apar au ca rezultat valori logice (true sau false). Aceşti operatori sunt:

1. Operatorul de atribuire definit de semnul “=” are rolul de a atribui unei variabile, constante o valoare. De exemplu:

< ?$a=50;// lui $a i-am atribuit valoarea 50 $b=4; // lui $b i-am atribuit valoarea 4 $aduna=$a+$b;// lui $aduna i-am atribuit suma celor două variabile adică 54 $a=$b; // lui $a i-am atribuit valoarea lui b adică 4 ?>

2. Operatorul de egalitate se defineşte prin semnul “==” şi se foloseşte pentru a compara două valori, expresii, etc.

3. Operatorul diferit este definit prin semnul “!=” şi se foloseşte în acelaşi scop ca şi operatorul de egalitate.

4. Operatorul mai mare este definit de semnul > . 5. Operatorul mai mare egal este definit de semnul >= . 6. Operatorul mai mic este definit de semnul < . 7. Operatorul mai mic egal este definit de semnul <=.

Operatorul condiţional se defineşte prin semnul '?'. Acest operator are sintaxa: expresie1?expresie2:expresie3

Operatorul condiţional returnează valoarea expresiei expresie2 în cazul în care valoarea expresiei expresie1 este true, în caz contrar va returna valoarea expresiei expresie3.

Operatorul de concatenare este un operator ce se aplică asupra şirurilor de caractere. Acest operator este definit prin semnul “.” Operaţia de atribuire a concatenării este definită prin semnul “.=”

Operatorii logici se folosesc în cazul în care se lucrează cu valori de adevăr. Aceşti operatori sunt: 1. Operatorul xor (SAU exclusiv) expresia în care apare operatorul 'xor' va avea valoarea true dacă exact unul dintre operanzi are această valoare. 2. Operatorul de negare este: ! (NOT) returnează TRUE dacă valoarea iniţială de adevăr e FALSE şi FALSE dacă valoarea iniţială este TRUE. 3. Operatorul sau logic este || (OR) returnează TRUE dacă oricare din valorile verificate e TRUE. Returnează FALSE doar dacă amândouă valorile verificate sunt FALSE.

Page 72: Proiectarea Realizarea Site Si Portalurilor Web

72

4. Operatorul şi logic este: && (AND) returnează FALSE dacă oricare dintre valori este FALSE (sau dacă amândouă sunt FALSE) şi în caz contrar returnează TRUE

5.4.6. Structurile de control

În cadrul unei pagini web care foloseşte scripturi PHP fără să existe o delimitare

clară, impusă de PHP pentru zona de declaraţii şi zona de instrucţiuni aşa cum se întâmplă în alte limbaje de programare cum ar fi, de exemplu, activitatea de declarare a variabilelor şi constantelor se reduce la iniţialializarea lor cu o valoare. În php nu se va scrie explicit tipul de date a unei variabile sau constante deoarece acesta se deduce în mod automat după ce acestora li s-a atribuit o valoare.

Prelucrarea datelor în scripturile PHP, ca şi în orice alt limbaj de programare, se face cu ajutorul instrucţiunilor. Ordinea în care se execută instrucţiunile în cadrul scripturilor defineşte aşa numita structură de control a acestora.

Structurile de control complexe prezente în PHP sunt: ∗ structura alternativă care se realizează cu ajutorul instrucţiunii IF; ∗ structura repetitivă condiţionată anterior care se realizează cu ajutorul instrucţiunilor

WHILE, FOR şi FOREACH; ∗ structura repetitivă condiţionată posterior care se realizează cu ajutorul instrucţiunii

DO-WHILE; ∗ structura selectivă care se realizează cu ajutorul instrucţiunii SWICH. ∗ instrucţiuni folosite în cadrul ciclurilor care oferă o flexibilitatea mare în

programarea în PHP sunt: CONTINUE, BREAK şi RETURN. Instrucţiunea expresie se obţine scriind punct şi virgulă după o expresie. Deci,

formatul acestei instrucţiuni este: [Negrescu2000] expresie;

În cazul în care componenta instrucţiunii expresie este o expresie de atribuire această instrucţiune se transformă în instrucţiune de atribuire [Negrescu2000],

Instrucţiunea break; se foloseşte când se doreşte să se întrerupă forţat execuţia unui ciclu şi trecerea la următoarea instrucţiune existentă imediat după acesta. Această instrucţiune poate fi folosită în cadrul instrucţiunilor WHILE, DO-WHILE, FOR, FOREACH şi SWITCH.

Instrucţiunea continue. se poate utiliza numai în corpul unui ciclu, având ca efect abandonarea iteraţiei curente. Sintaxa ei este:[Negrescu2000] [WellingThomson2005]

continue; Efectul acestei instrucţiuni este:[Negrescu2000;]

1. în corpul instrucţiunilor WHILE, DO-WHILE, se întrerupe iteraţia curentă şi se trece la evaluarea condiţiei care stabileşte continuarea sau terminarea ciclului. 2. în corpul instrucţiunilor FOR, FOREACH, se întrerupe iteraţia curentă şi se trece la executarea pasului de reiniţializare. Instrucţiunea return;[Negrescu2000] [WellingThomson2005] este o instrucţiune de revenire dintr-o funcţie cu următoarele două formate:

a. return; b. return $expresie;

Primul format al acestei instrucţiuni se foloseşte în corpul unei funcţii care nu returnează nici o valoare, dar la întâlnirea acestei instrucţiuni se iese forţat din ea.

Page 73: Proiectarea Realizarea Site Si Portalurilor Web

73

Cel de al doilea format se foloseşte în cadrul unei funcţii care întoarce o valoare la ieşirea din aceasta $expresie deţinând valoarea întoarsă de funcţie.

Instrucţiunea exit; [WellingThomson2005] are rolul de a opri execuţia întregului script PHP. Această instrucţiune se foloseşte în depistarea şi corectarea erorilor din cadrul unui script PHP. Instrucţiunea declare [WellingThomson2005] se foloseşte la stabilirea directivelor de executare/rulare a unui cod sursă. Până în prezent a fost implementată o singură directivă de executare, numită ticks care se stabileşte astfel: ticks=n (se permite rularea în cadrul unui cod sursă a unei funcţii după fiecare n linii de cod) Sintaxa acestei instrucţiuni este:

declare(directivă){ set instrucţiuni;} Instrucţiunile include(); şi require(); sunt echivalente şi au rolul de a insera

conţinutul unui fişier în cadrul unui scipt PHP în locul acestora. Diferenţa dintre cele două instrucţiuni este că în caz de eroare require(); va produse o eroare fatală, în timp ce construcţia include(); va afişa un mesaj de eroare.

Page 74: Proiectarea Realizarea Site Si Portalurilor Web

74

5.4.7. Tablouri

În majoritatea limbajelor prin tablou se înţelege o mulţime de date de acelaşi tip

cu acceaşi structură. Tablourile sunt alcătuite din elemente şi indici. În PHP şi nu numai, tipurile cele mai utilizate de tablouri sunt: tablouri unidimensionale şi bidimensionale. În cadrul unui tablou activităţile care se pot realiza sunt: 1.Crearea tablourilor în PHP se realizează prin atribuirea explicită a unei valori fiecărui elemet al acestuia, cu funcţiile array();. Sintaxa funcţiei array(); este:[site21]

array( [index=>] value, ... ); unde index poate fi de tipul integer sau string; valoare poate fi de orice tip.

Funcţia array(); permite crearea în două moduri a tablourilor şi anume: a)Primul mod de creare a unui tablou cu funcţia array constă în omiterea parametrului opţional numit indice, existent în sintaxa acesteia, rezultatul fiind următorul: <? $oamenii_la_masa = array(‘Ionel’,’Maria’,’Viorel’) ;?>

Funcţia array(); este de fapt o construcţie a limbajului PHP la fel ca echo. În

exemplul de mai sus s-a creat un tablou numit $oamenii_la_masa care conţine 3 elemente de tipul string. b) Al doilea mod de creare a unui tablou cu funcţia array(); constă în folosirea parametrului opţional numit indice, existent în sintaxa acesteia, rezultatul fiind următorul: <?$oamenii_la_masa = array (33=>‘Ionel’, 2=>’Maria’, 7=>’Viorel’ ) ;?>

Deci, indici tabloului nu vor fi 0,1 şi 2 ci cei precizaţi de cel care crează tabloul.

În exemplul anterior indicii tabloului vor fi 33, 2, 7. Tablourile în PHP mai pot fi create fără utilizarea funcţiei array(); prin

atribuirea explicită de valori fiecărui element al acestuia, ca în următoarul exemplu:

< ? $oamenii_la_masa[0]= "Ionel" //elementul este Ionel iar indicele este 0. $oamenii_la_masa[1]= "Maria" //elementul este maria iar indicele este 1. $oamenii_la_masa[2]= "Viorel" //elementul este Viorel iar indicele este 2. ?>

Acţiunea de creare unui tablou în PHP se mai poate efectua cu ajutorul funcţiei

range();. Această funcţie are rolul de a crea un tablou sortat crescător astfel:

<? $tablou_caractere = range(‘a’,’z’); //se crează un tablou care are ca elemente literele alfabetului $tablou_numeric = range(‘10’,’100’); //un tablou creat din elemente numerice cu valori de la 10 la100. $tablou_numeric2 = range(10,100,10);

Page 75: Proiectarea Realizarea Site Si Portalurilor Web

75

// un tablou creat din elemente numerice cu valori de la 10 la100 din 10 în 10. ?>

2.Modificarea datelor din tablouri se realizează cu următoarea sintaxă:

$nume_tablou[indice]=valoare ;//indice poate fi atât de tipul întreg // cât şi de tipul string sau $nume_tablou[]=valoare;

În cazul tabloului creat în exemplele anterioare dacă se doreşte să se modifice valoarea existentă pe poziţia a doua, adică în loc de "Maria" la masă să fie "Marinela" se va face astfel:

<? $oamenii_la_masa = array(‘Ionel’,’Maria’,’Viorel’); $oamenii_la_masa[1]= "Mirinela"; print_r($oamenii_la_masa); // afişează datele din tabelă împreună cu indicii acestora ?> 3.Ştergerea[site21] unui tablou se face cu ajutorul funcţiei unset();. Dacă se doreşte să se şteargă toate elementele unui tablou se procedează astfel: <? $oamenii_la_masa = array(33=>‘Ionel’,’Maria’,’Viorel’) ; unset($oamenii_la_masa);// ştergerea unui tablou foreach($oamenii_la_masa as $element) echo $element; // nu se va afisa nimic dearece tablou e şters ?> Ştergerea unui element din tablou se realizează astfel: <?$oamenii_la_masa = array(‘Ionel’,’Maria’,’Viorel’); unset($oamenii_la_masa[2]); // se şterge elementul Viorel foreach($oamenii_la_masa as $element) echo $element; // se vor afişa doar primele 2 elemente ale tabloului ?> 4. Copierea datelor din tabloul $oamenii_la_masa în tabloul $oamenii_la_masa1 se face utilizând operatorul de atribuire astfel:

< ? $oamenii_la_masa1 =$oamenii_la_masa;?> 5.Afişarea datelor dintr-un tablou se face folosind construcţia echo, numele tabloului şi indicii pe care s-au memorat elementele tabloului ca în exemplul următor :

< ?$oamenii_la_masa = array(‘Ionel’,’Maria’,’Viorel’) echo "$oamenii_la_masa[0] $oamenii_la_masa[1] $oamenii_la_masa[2]"; ?>

Page 76: Proiectarea Realizarea Site Si Portalurilor Web

76

Afişarea datelor se mai poate realiza folosind ciclul FOR astfel:

<?$oamenii_la_masa = array(‘Ionel’,’Maria’,’Viorel’); for($i=0;$i<=count($oamenii_la_masa);$i++) echo "$oamenii_la_masa[$i]";?>

Afişarea datelor se mai poate realiza cu ciclul FOREACH, destinat în principal

prelucărilor datelor unui tablou, a cărei sintaxă şi mod de execuţie a fost prezentată anterior. Acest ciclu va avea nevoie de o variabilă în care se vor depune pe rând fiecare element al unui tablou şi pe care o va afişa, ca în exemplul de mai jos:

<?$oamenii_la_masa = array(33=>‘Ionel’,’Maria’,’Viorel’) foreach($oamenii_la_masa as $element) echo $element; ?>

Page 77: Proiectarea Realizarea Site Si Portalurilor Web

77

5.4.7.1. Tablouri multidimensionale

În PHP un tablou multidimensional este o reuniune de tablouri unidimensiomale. Deci, fiecare element al lui este un tablou. Crearea tablourilor multidimensionale în PHP se realizează prin declararea mai multor tablouri unidimensionale ce reprezintă linile tabloului iar elementele acestora reprezintă coloanele. Sintaxa funcţiei array(); pentru crearea tablourilor multidimensionale este:[site21] array( [index1 =>] array ([index=>] value, ... ),

[index2 =>] array ([index=>] value, ... ), ... [indexn =>] array ([index=>] value, ... ) ); unde index1,...,indexn poate fi un sting sau un întreg formând liniile tabloului. index poate fi de tipul integer sau string. Acest index poate fi identic (nu e obligatoriu) pentru fiecare linie fiind interpretat ca numele coloanelor tabloului declarat; valoare poate fi de orice tip. 5.4.7.2. Afişarea şi parcurgerea elementelor unui tablou multidimensional

Afişarea elementelor unui tablou multidimensional atât în PHP cât şi în alte limbaje de programare necesită folosirea a două ciluri FOR cu ajutorul cărora să se parcurgă atât linile cât şi coloanele acestuia. Această acţiune se poate realiza ca în exemplul următor :

<?$oamenii_la_masa = array( array('Viorel','elev',10), array('Maria','profesor',39), array('Ionel','pensionar',76) ); for($i=0;$i<count($oamenii_la_masa);$i++) { for($j=0;$j<count($oamenii_la_masa[$i]);$j++) { echo $oamenii_la_masa[$i][$j];} echo '<br/>';}?> 5.4.7.3. Operatori folosiţi în prelucarea datelor din tablouri

PHP prezintă operatori care acţionează atât asupra variabilelor care, au fost prezentate în paginile anterioare cât şi asupra tablourilor. Operatorii care acţionează asupra tablourilor sunt: [WellingThomson2005] operatorul reuniune care este reprezentat prin “+”. Efectul acestui operator este că

se adaugă la sfârşitul primului tablou elementele tabloului de pe a doua poziţie eliminându-se indicii care sunt dubluri.

operatorul egalitate reprezentat prin “ = =“ returnează TRUE dacă tablourile care se compară au elemente identice altfel returnează FALSE.

operatorul identitate reprezentat prin “ = =“ returnează TRUE dacă tablourile care se compară au aceleaşi elemente şi în aceeaşi ordine, altfel returnează FALSE.

operatorul diferit reprezentat “ ! =“ sau “<>“ returnează TRUE dacă tablourile conţin elemente diferite, altfel returnează FALSE.

Page 78: Proiectarea Realizarea Site Si Portalurilor Web

78

operatorul “ ! = =“ returnează TRUE dacă tablourile care sunt comparate nu conţin aceleaşi elemente pe aceleaşi poziţii, altfel returnează FALSE.

Page 79: Proiectarea Realizarea Site Si Portalurilor Web

79

5.4.8. Funcţii

O funcţie este un ansamblu alcătuit din tipuri de date, variabile, constante şi

instrucţiuni scrise în vederea unei anumite prelucrări(calcule, citiri, scrieri) şi care pot fi rulate doar dacă sunt apelate dintr-un script PHP. Sintaxa unei funcţii este:

nume_funcţie( listă parametrilor formali) { corp funcţie; }

unde: listă de parametrilor formali este de forma: $nume_parametru1, $nume_parametru2,...,$nume_parametru n Observaţie. O funcţie poate să prezinte o listă vidă de parametri formali. corp funcţie este alcătuit din două părţi : partea de declaraţii în care se precizează variabilele locale; partea de instrucţiuni care conţine instrucţiunile pe care le execută funcţia

respectivă. O funcţie poate fi definită oriunde în cadrul unui script. În interiorul unei funcţii pot

să apară orice secvenţă validă de cod care include definirea unor alte funcţii. O funcţie poate fi apelată înainte de definirea acesteia într-un script. Argumentele unei funcţii trebuie separate prin virgulă şi, implicit, acestea sunt transmise prin valoare. Pentru ca funcţia să returneze un rezultat se foloseşte construcţia return; care primeşte ca parametru o expresie care reprezintă valoarea întoarsă de funcţie. În momentul în care este întâlnită construcţia return;, execuţia funcţiei se încheie. [ScarlatSoroiu] 5.4.8.1. Funcţii cu număr variabil de parametri

În PHP se pot defini funcţii care au un număr nedeterminat de parametri. Aceste funcţii se definesc la fel ca cele prezentate anterior, dar pentru a putea accesa parametri se vor folosi următoarele funcţii predefinite: [ScarlatSoroiu]

• func_num_args(); - returnează numărul parametrilor funcţiei care a apelat-o. Dacă această funcţie este apelată din exteriorul unei funcţii definite de utilizator se va genera un mesaj de avertizare. • func_get_arg(arg_num);- returnează valoarea parametrului care se află pe poziţia arg_num în lista de parametri; primul parametru are numărul de ordine 0; dacă este apelată din exteriorul unei funcţii definite de utilizator se va genera un mesaj de avertizare; • func_get_args();- returnează un tablou unidimensional care conţine valorile parametrilor pe care funcţia apelantă i-a primit; dacă această funcţie este apelată din exteriorul unei funcţii definite de utilizator se va genera un mesaj de avertizare. În continuare se vor prezenta exemple de utilizare a acestor funcţii. 5.4.8.2. Funcţii predefinite Funcţiile predefinite se împart în următoarele categorii: 1. Funcţiile matematice sunt:[site18] max(x,y,...) returnează valoarea maximă a unui set de valori;

Page 80: Proiectarea Realizarea Site Si Portalurilor Web

80

min(x,y,...)

returnează valoarea minimă a unui set de valori; pow(x,n)

returnează numărul x, ridicat la puterea specificata n;

sqrt(x) r2. Funcţiile pe şiruri de caractere sunt:

eturnează rădăcina pătrată a lui x.

1. int strlen(string sir)[site19] are rolul de a returna lungimea şirului sir primit ca parametru. 2. string trim(string sir)[site19] are rolul de a elimina spaţiile albe dintr-un şir primit ca parametru. 3. string ltrim(string sir)[site19] are rolul de a elimina spaţiile albe din stânga şirului primit ca parametru. 4. string rtrim(string sir)[site19] are rolul de a elimina spaţiile albe din dreapta şirului primit ca parametru. 5. int count(string sir)[site19] are rolul de a număra elementele unui şir primit ca parametru şi returnează numărul lor. 6. int strcmp (string sir1, string sir2) [McCatry2002] are rolul de a compara caracter cu caracte cele două şiruri de caractere primite ca parametru. Valoarea returnată este:

a. <0, dacă şir1<şir2; b. =0, dacă şir1=şir2; c. >0, dacă şir1>şir2.

7. string substr (string sir, int n [, int m])) [McCatry2002] are rolul de a returna un subşir, din şirul primit ca parametru începând cu poziţia n şi având lungimea m, în caz că m este specificat. Din cauză că parametrul m este specificat în sintaxa funcţiei între paranteze pătrate înseamnă că este opţional, deci poate lipsi şi atunci se afişează toate caracterele şirului sir primit ce parametru începând cu poziţia n. 8. string htmlspecialchars (string sir, [, int citare]) [McCatry2002] converteşte toate caracterele speciale primite ca parametru în entităţi HTML 3. Funcţiile calendaristice sunt: [McCatry2002][ [Chip2/2003] 1. strftime(a) r2. date() returnează ora, luna, anul precum şi alte elemente ale datei curente în funcţie de context ;

eturnează data curentă, formatată conform conţinutului parametrului a;

3. now() returnează data şi ora curentă. 4. hour(t) returnează ora din cadrul parametrului. Valorile parametrului pot fi în intervalul [0-23].

5.4.9. FIŞIERE

Prelucrarea datelor dintr-un fişier presupune realizarea următoarelor acţiuni:

1. deschiderea/crearea fişierului; 2. scrierea sau citirea sau adăugarea sau citire şi scriere, etc de date în fişier; 3. închiderea fişierului.

În cele ce urmează se prezită câteva funcţiiPHP de prelucrarea a fişierelor aflate pe parte de server.

Funcţia fopen(); are rolul de a deschide fişierul primit ca parametru. Sintaxa acestei funcţii este: [McCatry2002]

fopen(nume_fişier, mod_deschidere); unde:

Page 81: Proiectarea Realizarea Site Si Portalurilor Web

81

nume_fişier conţine fie numele, fie calea fizică, fie adresa fişierului care se doreşte să se deschidă. mod_deschidere este înlocuit cu una din valorile de mai jos care reprezintă modul în care va fi deschis fişierul specificat în nume_fişier:

∗ r are rolul de a deschide fişierul doar pentru citire; ∗ r+ are rolul de a deschide fişierul în citire şi scriere; ∗ w are rolul de a deschide fişierul pentru scriere; ∗ w+ are rolul de a deschide fişierul pentru citire şi scriere, iar în cazul în care

acesta nu există îl crează; ∗ a are rolul de a deschide fişierul pentru a adăuga la sfârşitul acestuia

informaţii; a+ are rolul de a deschide fişierul pentru a adăuga la sfârşitul acestuia informaţii. În cazul în care acestea nu există nu îl crează;

∗ t are rolul de a deschide fişierul în mod text ; ∗ b are rolul de a deschide fişierul în mod binar. Acţiunea de deschidere a unui fişier în scriere, adică introducerea de date în

acesta se realizează cu funcţiile: fwrite(); care defineşte scrierea în fişier sau fputs(); care defineşte scrierea unui şir în fişier. Sintaxa funcţiei fwrite(); este: [WellingThomson2005]

int fwrite(resource handle, string sir[,int lungime]); unde: resource handle conţine valoarea returnată de funcţia fopen(); sir este şirul ce se va scrie în fişier; lungime este un parametru opţional care indică numărul maxim de octeţi care pot fi scrişi în fişier.

Orice fişier deschis în vederea prelucrării datelor acestuia se închide cu funcţia fclose(); după efectuarea tuturor acţiunilor dorite de programator. Sintaxa funcţiei este:

fclose(resource handler); Funcţia fclose(); va returna TRUE în caz de succes şi FALSE în caz de

insucces. În general această funcţie se execută cu succes. Deci, nu se impune cu stricteţe tratarea erorilor care pot apărea la închiderea fişierelor cu această funcţie.

5.4.9.1. Citirea dintr-un fişier Odată fişierul creat acesta poate fi deschis în citire. În literatura de specialitate

[WellingThomson2005] [McCatry2002] [site19] există mai multe funcţii care permit citirea datelor dintr-un fişier creat, una dintre cele mai des folosite funcţii fiind fread();. Sintaxa funcţiei fread(); este:

string fread(resource handler, int lungime); unde: resource handle conţine valoarea returnată de funcţia fopen(); lungime numărul maxim de octeţi citiţi sau dacă fişierul este mai mic decât valoarea precizată, citirea se va face până la sfârşitul acestuia. Existenţa parametrului lungime în sintaxa acestei funcţii implică o citire arbitrară a conţinutului unui fişier.

5.4.9.2. Afişarea conţinutului unui fişier PHP prezintă funcţii care au rolul de a citi şi afişa pe ecran conţinutul unui fişier

precizat. Aceste funcţii sunt:

Page 82: Proiectarea Realizarea Site Si Portalurilor Web

82

1. readfile(); care deschide fişierul şi afişează în browser conţinutul acestuia după care îl închide. Funcţia returnează un întreg care reprezintă numărul de octeţi citiţi din fişierul precizat ca parametru. Sintaxa acestei funcţii este:

int readfile(string nume_fis, [int calea,[ resource context]]); unde nume_fis este numele fişierului care se deschide; calea este un parametru opţional reprezentând calea spre fişierul care se doreşte deschis şi citit; resource context se foloseşte în cazul în care se deschide un fişier aflat la distanţă folosind protocolale HTTP sau FTP. 2. fpassthru(); este o funcţie care necesită mai întâi deschiderea explicită a fişierului cu funcţia fopen(), deoarece această funcţie primeşte ca parametru pointerul la fişier returnat de funcţie funcţia fopen();. Rezultatul execuţiei funcţiei fpassthru(); este afişarea în browser a conţinutului fişierului de la poziţia pointerului până la sfârşitul acestuia, acţiune urmată de închiderea automată a fişierului fără a mai fi nevoie să se invoce explicit funcţia fclose();. Sintaxa funcţiei este:

fpassthru(resource handler); unde resource handle conţine valoarea returnată de funcţia fopen(); Această funcţie returnează TRUE dacă operaţia de citire a fost efectuată cu succes şi

FALSE în caz contrar.

5.4.9.3. Ştergere fişier

Funcţia unlink(); are rolul de a şterge fişierul primit ca parametru. Această funcţie returnează TRUE dacă ştergerea fişierului s-a putut realiza, în caz contrar returnează FALSE. Sintaxa funcţiei este:

unlink(”nume_fis”); unde nume_fis poate fi numele fişierului sau întreaga cale până la fişierul dorit.

Deschiderea, prelucrarea datelor, închiderea, ştergerea unui fişier nu poate fi realizată dacă acesta nu există. În PHP funcţia file_exists(); verifică existenţa unui fişier. Această funcţie returnează TRUE dacă numele fişierului primit ca parametru există şi FALSE în caz contrar. Sintaxa acestei funcţii este:

file_exists(”nume_fis”); unde

nume_fis poate fi numele fişierului sau întreaga cale până la fişierul dorit.

5.4.10. Stocarea datelor în sistemul utilizatorului cu PHP

Utilizarea unui web site de către un utilizator presupune realizarea unor acţiuni

succesive care trebuie memorate pentru a oferi acestuia informaţia de care are nevoie, dar protocolul HTTP nu oferă o astfel de facilitate fapt pentru care a apărut noţiunea de cookie respectiv sesiune cu ajutorul cărora se pot păstra aceste informaţii pe calculatorul utilizatorului.

Page 83: Proiectarea Realizarea Site Si Portalurilor Web

83

5.4.10.1. Sesiunile

Ultimele versiuni de PHP, adică versiunea a patra şi următoarele, oferă suport inclus pentru „sesiuni”. Scopul lor de bază este de a reţine informaţiile care trebuie transmise de la o pagină la alta într-o aplicaţie PHP.

Într-o sesiune datele pot fi salvate într-o variabilă de tip array, numită $_SESSION. Înainte de a folosi această variabilă pentru a stoca informaţiile trebuie să se apeleze funcţia predefinită de deschidere, creare sau reiniţializare a sesiunii. Sintaxa acestei funcţii este: [WellingThomson2005] [site27] [McCatry2002]

session_start(); Acestă funcţie crează şi porneşte o sesiune în cazul în care nu există niciuna dar în

cazul în care aceasta există o reiniţializează. Informaţiile din sesiune sunt păstrate pe server în directorul pentru fişiere temporare, adică „Temp” dar acestea pot fi memorate şi într-o bază de date.

Crearea variabilelor de sesiune se realizează folosind fie $HTTP_SESSION_VARS (până la versiunea 4 a limbajului PHP), fie $_SESSION (de la versiunea 4 a limbajului PHP). În continuare, se va folosi cea de-a doua variantă în lucrul cu sesiunile, adică $_SESSION.

În momentul în care utilizatorul părăseşte site-ul, sesiunea lui poate fi ştearsă prin comanda: [WellingThomson2005] [site27] [McCatry2002]

session_destroy(); Înainte de a distruge sesiunea, adică de a apela comanda de mai sus, va trebui să

se şteargă toate variabilele de sesiune existente prin apelul funcţiei unset();. Sintaxa acestei comenzi este: [WellingThomson2005] [site27] [McCatry2002]

void unset(mixed variabila); Efectul funcţiei este ştergerea variabilei primite ca parametru. Ştergerea variabilei de sesiune care s-a creat mai sus se va face astfel: [Welling Thomson 2005] [site27] [McCatry2002]

unset($_SESSION[‘var_sesiune’]); 5.4.10.2. Blocuri COOKIE

Preferinţele utilizatorului sunt nişte parametri care permit unei pagini Web să fie ajustată conform unei dorinţe specifice. Se subliniază că noţiunea de cookie este utilizată generic ca bloc de date. În prezenta abordare se va utiliza această noţiune în sensul uzual din WWW [Microsoft1999]: „...bloc de date pe care un server Web îl stochează într-un sistem client. Când utilizatorul revine la site-ul Web respectiv, browser-ul trimite serverului o copie a prăjiturii. Prăjiturile sunt utilizate pentru a identifica utilizatorii, pentru a instrui server-ul să transmită o versiune personalizată a paginii Web cerute, pentru a prezenta informaţii referitoare la contul utilizatorului şi pentru operaţii cu caracter administrativ”.

Crearea unui astfel de bloc cookie se face astfel: [WellingThomson2005] Set-Cookie: NUME=VALOARE; [expires=DATA;] [path=CALE;] [domain = NUME-DOMENIU;] [secure] unde: NUME este numele blocului cookie care se crează; VALOARE este valoarea care se memorează în acesta; expires permite stabilirea datei calendaristice la care expiră blocul cookie;

Page 84: Proiectarea Realizarea Site Si Portalurilor Web

84

path conţine calea unde se memorează blocul cookie pe clculator; domeniu este domeniul pentru care este important blocul cookie; secure nu permite transmiterea blocului cookie printr-o simplă conexiune HTTP este nevoie de o conexiune cu un grad mai înalt de securizare.

Definirea manuală a unui bloc cookie în PHP se face cu funcţia setcookie();. Această funcţie are sintaxa: [Welling Thomson2005] [site27] [McCatry2002] setcookie(string nume [, string valoare [, int expires [, int path [, string domain [,int secure]]]]]); unde: nume este numele blocului cookie care se crează; valoare este valoarea care se memorează în acesta; expires permite stabilirea datei calendaristice la care expiră blocul cookie; path calea unde se memorează blocul cookie; domeniu domeniul pentru care este important blocul cookie; secure nu permite trimiterea blocului cookie printr-o simplă conexiune HTTP este nevoie de o conexiune cu un grad mai înalt de securizare.

Accesarea valorile memorate într-un bloc cookie se face astfel: fie prin $_COOKIE[’exemplu_cookie’]; fie prin $HTTP_ COOKIE_VARS[’exemplu_cookie’] Ştergerea unui bloc cookie se face apelând funcţia setcookie(); cu numele

blocului care se doreşte a fi şters şi se atribuie parametrului expires o dată din trecut, ca în următorul exemplu:

<?setcookie(’exemplu_cookie’, time()-1800);?>

Dezavantajul folosirii doar a blocurilor cookie în programarea paginilor web

provine din faptul că pe de o parte unele browsere nu le acceptă, pe de altă parte există utilizatori care le dezactivează din browser-ele lor. PHP tocmai din acest considerent foloseşte metoda duală bloc cookie/URL.

5.4.11. PHP şi formulare HTML

Web-ul a dobândit un plus de interactivitate prin utilizarea programelor create,

folosind interfaţe CGI, Perl, ASP şi PHP. Aceaste programe au permis scrierea de

coduri sursă cu rolul de a trimite de la browser spre server-ul WEB atât a

informaţiilor standard conţinute în antetul HTTP al cererii cât şi informaţii în alte

două moduri şi anume:

printr-un formular <FORM> ; ca un şir de cereri adăugate la sfârşitul URL-ului. Formularele HTML, afişate într-un browser, numite şi intrări HTML, au rolul

important în preluarea datelor de la utilizatorul unui web site. Aceste datele vor fi preluate de browser şi transmise la server printr-un program (scris în PHP) care procesează datele din formular. În funcţie de scopul programului rulat de server acesta poate genera un răspuns de tip HTML, pe care serverul îl trimite către browser cu

Page 85: Proiectarea Realizarea Site Si Portalurilor Web

85

scopul de al afişa utilizatorului. Mecanismul de funcţionare a prelucrării datelor din cadrul unui formular este prezentat în figura de mai jos:

Figura 4.4.11. Model Client-Server care foloseşte PHP adaptare

după[LalaniChandak1997] 5.4.11.1. Crearea unui formular

Un formular se crează cu tag-urile <FORM>...</ FORM> între care se folosesc obiecte create în marea lor majoritate cu tag-ul de tip <INPUT> cu diferite valori pentru atributul TYPE al acestuia. În cazul în care atributul TYPE al tag-ului <INPUT> are valoare “SUBMIT” se va crea un buton. Rolul acestui buton este acela de a transmite server-ului informaţiile pe care utilizatorul le introduce, în câmpurile formularului. Server-ul prelucrează şi transmite datele primite din formular: fie unei alte pagini web statice care le afişează în browser, fie unei pagini web dinamice care le memorează într-o tabelă a unei baze de date sau le trimite prin e-mail destinatarului.

Folosind PHP-ul, se întâlnesc trei metode de bază pentru colectarea informaţiei din formulare HTML, şi anume : un fişier .html static conţine un formular care trimite valorile sale către un fişier php. un fişier .php poate să creeze un formular care să trimită informaţia către un alt fişier

.php. un fişier .php poate să creeze un formular care să trimită informaţia chiar către

fişierul php care conţine formularul. Datele dintr-un formular existent într-o pagină Web sunt transferate către server

utilizând numele fişierului php ca valoare pentru atributul ACTION şi precizând una din metodele ”GET” sau ”POST” ca valoare pentru atributul METHOD a tag-ului <FORM>. Elemetele formularului au asociate câte un nume căruia i se atribuie de fapt valoarea introdusă de utilizator în acestea, care se vor transmite serveru-lui spre prelucare. Variabilele superglobale ”$_POST” şi ”$_GET” sunt nişte array-uri care conţin toate datele transmise din formular cu una din cele două metode. 5.4.11.2. Accesul la bazele de date relaţionale din pagini PHP

PHP include o bibliotecă de funcţii care furnizează o interfaţă cu sistemul MySQL. Folosind aceste funcţii, un programator PHP poate obţine accesul la datele rezidente într-o bază de date MySQL şi le poate modifica.

Majoritatea interacţiunilor cu o bază de date se desfăşoară după un model secvenţial simplu şi anume [PHP2-site]:

Page 86: Proiectarea Realizarea Site Si Portalurilor Web

86

Se deschide o conexiune cu server-ul MySQL. Pentru a se putea realiza conectarea la un server MySQL, trebuie să se invoce funcţia mysql_connect( ), a cărei sintaxă este următoarea[PHP2-site]:

mysql_connect (”nume_gazdă”, ”nume_utilizator”, ”parolă”); Conectarea cu succes la baza de date permite realizarea de interogări SQL, urmate de obţinerea accesului la rezultatele interogărilor şi apoi se execută operaţii nonSQL: mysql_query($interogare);. Funcţia mysql_query(); execută interogarea primită ca parametru şi returnează TRUE dacă interogarea a fost efectuată cu succes şi FALSE în caz contrar. Această funcţie se atribuie unei variabile în care se depune valoarea returnată de aceasta numită identificator de resurse.

Funcţia mysql_num_rows(); se foloseşte în cazul în care se doreşte să se determine numărul de rânduri returnate în urma interogării unei tabele.

Funcţia mysql_fetch_array(); care permite să se acceseze valorile din tabelul returnat de interogare în mai multe moduri şi anume: 1. folosind un array numeric; 2. folosind un array asociativ; 3. folosind un array mixt.

Acţiunea de închidere a conexiunii cu serverul MySQL se realizează invocând funcţia: mysql_close( );.

Adăugarea de noi înregistrări într-o tabelă a unei baze de date se face cu comanda INSERT. Cel mai frecvent mod de introducere a datelor într-un tabel a unei baze de date este preluarea lor dintr-un formular adecvat structurii acestuia. Sintaxa pentru introducere a datelor într-un tabel a unei baze de date este:[site30] INSERT INTO nume_tabel (coloana_1, coloana_2,..., coloana_n) values ('valoare_1','valoare_2',...,'valoare_n');

Modificarea datelor în cadrul unei tabele a unei baze de date presupune realizarea următorilor paşi : 1. conectarea la baza de date şi efectuarea unui SELECT asupra tabelei în funcţie de o condiţie pentru a se obţine înregistrarea care se doreşte a fi modificată; 2. crearea unui formular în care să se afişeze datele înregistrării care urmează a fi modificate; 3. acţiunea de modificare efectivă care se va realiza cu ajutorul comenzii UPDATE a cărei sintaxă este :[site30] UPDATE nume_tabel SET coloana_1='$valoare_1', coloana_2= '$valoare_2',..., coloana_n='$valoare_n' WHERE condiţie;

Ştergerea datelor dintr-o tabelă a unei baze de date presupune realizarea următorilor paşi: conectarea la baza de date şi efectuarea unui SELECT asupra tabelei în funcţie de o

condiţie pentru a se obţine înregistrarea care se doreşte ştearsă ; acţiunea de ştergere efectivă care se va realiza cu ajutorul comenzii DELETE a cărei

sintaxă este :[site30] DELETE FROM nume_tabel WHERE condiţie;

O ultimă acţiune ce se impune a fi executată într-un web site este cea de căutare. Această acţiune se realizează cu ajutorul instrucţiunilor SQL şi a comenzii LIKE. Comanda LIKE are rolul de a căuta o valoare prin compararea acesteia cu un model. Modelele se formează fie cu caracterul procent (%) şi un text fie cu caracterul liniuţă de subliniere ( _ ) şi un text. Procentul se foloseşte în cazul în care se doreşte o căutare pe un spectru mai larg adică, se furnizează ca rezultat al căutării toate construcţiile care

Page 87: Proiectarea Realizarea Site Si Portalurilor Web

87

conţin în componenţă textul care înşoţeşte acest caracter neţinându-se cont de numărul de caractere. Liniuţa de subliniere se foloseşte pentru a indica o potrivire a caracterului de înlocuire cu un singur caracter.

În cadrul acestui capitol au fost prezentate elemente teoretice însoţite de exemple practice ale limbajului de scripting PHP. Aceste exemple puse cap la cap pot constitui piatra de temelie în procesul de creare a oricărui web site dinamic complex.

Page 88: Proiectarea Realizarea Site Si Portalurilor Web

88

Teme pentru verificarea cunoştinţelor

1. Definiţi noţiunea de limbaj PHP. 2. Enumeraţi facilităţile oferite de limbajul PHP. 3. Enumeraţi caracteristicile limbajului PHP. 4. Descrieţi principiul de funcţionare a limbajului PHP. 5. Care este efectul comenzii echo();? 6. Există diferenţe între comanda echo(); şi print();? Dacă da enumeraţile? 7. Ce sunt variabilele PHP? Scrieţi sintaxa şi exemplificaţi. 8. Definiţi noţiunea de constantă PHP? 9. Enumeraţi şi explicaţi 2 funcţii PHP predefinite. 10. Care este efectul funcţie strcmp()? 11. Care este efectul funcţie substr()? 12. Ce acţiuni se pot realiza asupra fişierelor în PHP. 13. Care este mecanismul de creare a unei sesiuni? Exemplificaţi. 14. Care este mecanismul de creare a unei cookies? Exemplificaţi. 15. Creaţi un tablou bidimensional. 16. Creaţi un fişier .html static care să conţină un formular care trimite valorile din cadrul

lui spre un fişier php. 17. Creaţi un fişier .php care să creeze un formular prin care să se trimită informaţia

către un alt fişier .php. 18. Creaţi un fişier .php care să conţină un formular care să trimită informaţia către el

însuşi. 19. Creaţi un fişier php care să conţină un formular cu ajutorul căruia să se culeagă

date despre Studenţi şi să permită inserarea acestor date în tabela cu structura: IDStud Nume Prenume Adresa An Serie Grupa

Creaţi un fişier php care să conţină un formular cu ajutorul căruia să se modifice datele din cadrul tabelei Studenţi a cărei structură a fost descrisă anterior. 1.Privilegiile care se pot acorda utilizatorilor sunt în MySQL sunt: ştergerea serverului; adăugarea modificarea şi ştergerea datelor dintr-un fişier existent într-un director crearea şi ştergerea unei baze de date; crearea şi ştergerea unei baze de cunoştinţe; 2. Indexii pentru o tabelă în MySql se pot crea astfel: INDEX(nume_coloană_index); adăugat la sfârşitul instrucţiunii CREATE TABLE... INDEX(nume_coloană_index); adăugat la sfârşitul instrucţiunii CREATE

DATABASE... INDEX(nume_coloană_index); adăugat la sfârşitul instrucţiunii SELECT INDEX(nume_coloană_index); adăugat la sfârşitul comenzii GRANT. 3.Comanda INSERT are rolul: de a afişa înregistrările unei tabele a unei baze de date; de a şterge înregistrările unei tabele a unei baze de date; de a modifica înregistrări într-o tabelă dintr-o baza de date de a adăuga înregistrări într-o tabelă dintr-o baza de date 4.PHP poate fi folosit pentru scrierea unor programe stocate pe server ce accesează baze de date.

Page 89: Proiectarea Realizarea Site Si Portalurilor Web

89

unor programe stocate pe client ce accesează baze de date. unor coduri sursă care nu pot fi incluse într-o pagină HTML. alt răspuns 5.Comanda SHOW COLUMNS are ca efect: afişarea înregistrărilor dintr-o tabelă afişarea legăturilor dintre două sau mai multe tabele afişarea structurii unei baze de date afişarea structurii unei tabele 6.În cadrul unui fişier PHP codul PHP se delimitează de cel HTML cu marcajele < ? .... ?> < !... !> // ‘\’’ Răspunsuri 1.Privilegiile care se pot acorda utilizatorilor sunt în MySQL sunt: ştergerea serverului; adăugarea modificarea şi ştergerea datelor dintr-un fişier existent într-un director crearea şi ştergerea unei baze de date; crearea şi ştergerea unei baze de cunoştinţe; 2. Indexii pentru o tabelă în MySql se pot crea astfel: INDEX(nume_coloană_index); adăugat la sfârşitul instrucţiunii CREATE TABLE... INDEX(nume_coloană_index); adăugat la sfârşitul instrucţiunii CREATE

DATABASE... INDEX(nume_coloană_index); adăugat la sfârşitul instrucţiunii SELECT INDEX(nume_coloană_index); adăugat la sfârşitul comenzii GRANT. 3.Comanda INSERT are rolul: de a afişa înregistrările unei tabele a unei baze de date; de a şterge înregistrările unei tabele a unei baze de date; de a modifica înregistrări într-o tabelă dintr-o baza de date de a adăuga înregistrări într-o tabelă dintr-o baza de date 4.PHP poate fi folosit pentru scrierea unor programe stocate pe server ce accesează baze de date. unor programe stocate pe client ce accesează baze de date. unor coduri sursă care nu pot fi incluse într-o pagină HTML. alt răspuns 5.Comanda SHOW COLUMNS are ca efect: afişarea înregistrărilor dintr-o tabelă afişarea legăturilor dintre două sau mai multe tabele afişarea structurii unei baze de date afişarea structurii unei tabele 6.În cadrul unui fişier PHP codul PHP se delimitează de cel HTML cu marcajele < ? .... ?> < !... !> // ‘\’’

Page 90: Proiectarea Realizarea Site Si Portalurilor Web

90

Bibliografie completă a cursului

1. [Abrams2000] Rhonda Abrams, The Successful Business Plan, Running ‘R’

MediaTM

2. [AllenWyatt1998]Allen&Wyatt, Succes în Internet, Editura All Education, 1998; , Palo Altro, California, 2000;

3. [Amor1999]D.Amor, The E-Business Revolution, Prentice-Hall, 1999; 4. [Anescu2003]V.Anescu, R. Anescu, Comerţul Electronic, Tribuna Economică

Nr.4/22.01.2003; 5. [PMGApers1981] P.M.G Apers, Redundant Allocation of Relations in a

Communication Network. In Proc. 5th Berkeley Workshop on Distributed Data Management and Computers Networks, Berkeley, Calif., 1981, p.245-258;

6. [PMGApers1988]P.M.G Apers, Data allocation in distributed systems, ACM Transaction on Database Systems, 1988;

7. [Armstrong2001] Steven Armstrong , Advertising on the Internet, Kogan Page, London, 2001, p.16;

8. [Baltag2001] Vasile Baltag, România şi afacerile electronice,Revista e-Finance supliment Piaţa Financiară, Februarie 2001, p.2-5;

9. [Belch2002] George E. Belch&Michael A. Belch, Advertising and Promotion, 5th

10. [Beltz1997]C.Beltz, Reciprocity versus Internet-Induced Liberalization: The Case of Telecommunications, American Enterprise Institute, Washington D.C.,1997;

Edition, McGrow – Hill Irwin, 2002;

11. [Benage2001] Don Benage, Azam Mirza, Visual Studio 6, Editura. Teora, 2001; 12. [Berar-site]Sanda Berar, Sisteme distribuite de baze de date,

http://www.agora.ro/pcrep/pcrep57/21.html; 13. [Berar2000] Sanda Berar, Sistemul decizional al firmei. Perspective economice şi

informatice., teză de doctorat, septembrie 2000, Cluj-Napoca 14. [Berman1999] M.Berman, G.Scott, etc., Commerce Solution for DNS Enabled

Entreprises, Microsoft Corporation, august 1999; 15. [Binţinţan2001]Petru Binţinţan, Eficienţa economică a investiţiilor, Editura Presa

Univiversitară. Clujeană., Cluj-Napoca, 2001; 16. [Bolun1997] I.Bolun, Iniţiere în reţele Internet, ASEM Chişinău, 1997; 17. [Boian1997]Boian, F. M.,Programarea distribuită în Internet metode şi aplicaţii,

Ed. MicroInformatica, 1997; 18. [BuBois2001]P.BuBois, MySQL, Editura: Teora, 2001; 19. [Bucur2002]Cristina-Mihaela Bucur, Comerţ Electronic, Editura ASE, Bucureşti,

2002; 20. [Butuc2002]Iulia Butuc-Cherchez, Forester Research prezice o explozie a

comerţului electronic european, Ziarul Financiar, 27 August 2002; 21. [Buraga2002] Sabin Buraga, Proiectarea siteurilor Web, Editura Polirom,2002 22. [broşurăC.E.1999]Your European Gateway to Electronic Commerce, broşură editată

la iniţiativa Comisiei Europene, D.G.Intreprinderi october 1999 şi tradusă de Euro Info Centre Bucureşti;

23. [Brown2002] Mark Brown, The User of Banner Advertisements with Pull-Down Menus: A copy Testing Approach, Journal of Interactive Advertising, Volume 2, Number 2, Spring 2002;

24. [Cameron1997]Debra Cameron, Electronic Commerce – The New Business Platform for the Internet –, Computer Technology Research Corp., 1997;

Page 91: Proiectarea Realizarea Site Si Portalurilor Web

91

25. [ChangCheng1980] S.K. Chang, W.H. Cheng, A Metodology for Structured Database Decomposition, IEEE Trans. Software Eng., March 1980, p.205-218;

26. [Choy1999] Soon-Yong Choy, Economics of electronic commerce, Editura Macmillan Computer Publishing, New York, 1999, p.54-48;

27. [Codd1970]E.F.Codd, A Relation Model of Data for Large Shared Data Banks, Comunication of ACM, 13, 6, 1970, p.377-387;

28. [Cohn1965]P.M. Cohn, Univeral Algebra, Harper an Row, New York, 1965; 29. [ConnollyBeggStrachan2001] T. Connolly, C. Begg, A. Strachan, Baze de date

proiectare, implementare, gestionare, Editura Teora, 2001; 30. [Coulter2001]M. Coulter, Entrepreneurship in Action, Prentice Hall, New Jersey,

2001, p.34; 31. [Cristeasite2001] Valentin Cristea,Gavril Godza,Valeriu Zabalan,Eugen Belea,

Ovidiu Achim,TraianIspir, www.afaceri.net/ articole/Comert_electronic /Platforme_web_comert_electronic.htm, 2001;

32. [Crumlish95] C.Crumlish, AQ Guided Tour of The Internet, Sybex, 1995. 33. [Date1995] C.J. Date, An Introduction to Database Systems, Addison-Wesley

Publishing Company, 1995; 34. [Davenport1999]T.H. Davenport, Process Innovation, Harvard Business School

Press, Boston MA, 1999; 35. Davenport2000]T.H. Davenport & M.C. Beers, Managing Information About

Processes, Journal of Management Information Systems, 2000; 36. [Darnell2001] R.Darnell, Totul despre HTML 4, Editura Teora,2001,

ISBN:973-20-0427-4; 37. [Dell1999]Michael Dell, Direct from Dell. Strategies that Revolutionized the

Industry, Harper Business,New York, martie 1999; 38. [Dorca2003]V. Dorca, Semnătura Electronică va face legea în Comerţul Electronic,

Tribuna Economică.Nr.43/22.01.2003; 39. [Dowdy Foster1982] L.W. Dowdy, D.V. Foster, Comparative Models of the File

Assignment Problem, ACM Comput. Surv., June 1982, p.287-313; 40. [Dukach1992]Seymon Dukach, SNPP:A Simple Network Payment Protocol, MIT

LCS, 1992; 41. [Earl1997] M.J. Earl, J.L. Sampler, & J.E. Short, Strategies for Business Process

Reengineering: Evidence from Field Studies, Journal of Management Information Systems, 1997

42. [Ellsworth1994] Jill H Ellsworth., Matthew V. Ellsworth The Internet Business Book, John Wiley & Sons Inc., New York, 1994;

43. [Foris1994]A. Frois Economia politică, Ed. Humanitas, Bucureşti, 1994, p.293; 44. [Gates1999] Bill Gates, Business-The Speed of Thought:Using a Digital

Nervous System, Warner Bookes,USA,1999; 45. [Gates2000] Bill Gates, @faceri cu viteza gândului, Editura Amaltea, Bucureşti,

2000; 46. [Gârlaşcu2000] Dan Gârlaşcu, Evoluţia Economiei Internet în Europa, Revista e-

Finance, Decembrie 2000; 47. [Gellersite2003] Denis Geller, Definitions of Electronic Commerce “Today”,

http://www.misu.ait.ac.th/NewsAndEvents/newsletterData/iss2no9.pdf, AIT Newsletter, Volum2, No.9,May30,2003

48. [Godeluck2002]S. Godeluck, Boom-ul Neteconomiei: Cum bulversează Internet-ul regulile jocului eleconomic, Editura Coresi, Bucureşti, 2002;

Page 92: Proiectarea Realizarea Site Si Portalurilor Web

92

49. [Graeme-site] Merral Graeme, PHP/MySQL Tutorial, www. hotwired.com /webmonkey /databases;

50. [Grätzer1979]G.Grätzer, Universal Algebra, Springer-Verlag, New York, 1979; 51. [Grover1999]V. Grover, S.R. Jeong, W.J. Kettinger, The Implementation of

Business Process Reengineering, Journal of Management Information Systems, 1999;

52. [site7]John Hawksworth, A “New” Economy in Europe?, www. pwcglobal. Com /extweb/NewCoLth.nsf/docid;

53. [HEDGES2003] Burke Hedges, Afacerea de vis.com, Editura Curtea Veche, 2003 Bucureşti;

54. [Higgins1964] P.J. Higgins, Algebras with a Schema of Operators, Math. Nachr.,27, 1963/64,p.155-132;

55. [Hof1999]Robert.D.Hof, Entretien avec Jeff Bezos, Business Week, 17 martie 1999; 56. [HofferSeverance1975]J. Hoffer, D. Severance, The use of cluster analysis in

phisical data base design, Proc., Int. Conf Very Large Data Bases, ACM, 1975; 57. [Ionescu1969]H. Ionescu, C. Dinescu, V. Burlacu, Teoria grafelor cu unele aplicaţii

în economie, Editura Ştiinţifică, 1969; 58. [site28] Radu Ionescu, Internet, ca afacere, www.bizcity.ro/index.php?x=read; 59. [site29] Radu Ionescu, Cristian Manafu, 5 modele de afaceri pe Internet,

www.bizcity.ro/index.php?x=read; 60. [Kapolnai2002] A. Kapolnai, A. Nemeslaki, R. Pataki, eBusiness strategia vallalati

felsovezetoknek, Editura. Aula, 2002; 61. [Karlapalem1997] K.Karlapalem, N.M.Pun, Query driven data allocation

algorithms for distribute database systems, The 8th International conference on Database and Expert Systems Applications, Toulouse, 1997;

62. [KasaPop1998]Kasa Zoltan, Pop Horea, Comunicare în Internet, Editura grupul microInformatica, Cluj-Napoca, 1998,ISBN:973-9215-61-0;

63. [KoganSudit1999] Alex Kogan, Fred Sudit & Miklos A. Varsarhelyi, The Internet living book, Prentice-Hall International 1999;

64. [Luca]Cristian Luca, Evoluţia şi tendinţele comerţului electronic românesc, Revista Internet Magazin,Nr.6/2003, p:40-42;

65. [LalaniChandak1997]S. Lalani, R. Chandak, Biblioteca programatorului ACTIVE X, Editura All, 1997,Bucureşti;

66. [Mateescu2003] Bogdan Mateescu, Proiect Enlarge, Revista Internet-Magazin, Nr.6/2003,p.10-14;

67. [Marc1998]Bacchetta Marc, Le commerce electronique et le role de L’OMC, GENEVE : ORGANISATION MONDIALE DU COMMERCE (OMC), 1998 - ISBN: 9287021988;

68. [McCatry2002]B. McCarty, PHP4, Editura Teora,Bucureşti, 2002; 69. [MSDN] MSDN; 70. [Muntean2002] Mihaela Muntean, Diana Mogoşanu, Reflecţii privind educaţia

viitorului, Informatică Economică şi Societatea Informaţională, Workshop, Timişoara 2002, p.207-214;

71. [NavatheCeriWiederhold1983] S.B. Navathe, S. Ceri, G. Wiederhold, and J. Dou. Vertical Partitioning of Algorithms for Database Design, Int Proc. 9th Int. Conf On very Large Data Dases, Florenxe, Italy, Octomber-November 1983, p.175-277;

72. [Năstase2002]Năstase Floarea, Năstase Pavel, Tehnologia aplicaţiilor web XML-DOM-ASP, Ed. Economică, Bucureşti, 2002,392 pag., ISBN 973-590-644-9

Page 93: Proiectarea Realizarea Site Si Portalurilor Web

93

73. [Negrescu2000] L.Negrescu, Limbajele C şi C++ pentru începători~ Limbajul C, Volum1,Partea 1, Editura Microinformatica,2000,Cluj-Napoca, ISBN 973-9443-82-8;

74. [Niţchi1990]Ş.I. Niţchi, Contribuţii la conceperea, proiectarea şi implementarea bazelor de date, Universitatea Babeş-Bolyai, 1990;

75. [Niţchi1992] Ş.I. Niţchi, Some remarks about using heterogeneas structures in the computer theory, Revue d’analyse numerique at de theorie de l’approximation, 21,1992,2, p.147-152;

76. [Niţchi1993]Ş.I. Niţchi, Consideraţii asupra sistemelor informaţionale pentru management şi afaceri, Studia Universitatis „Babeş-Bolyai” seria Oeconomică,37,1993,1-2,p.115-120;

77. [Niţchi1997]Ş.I. Niţchi, M.Vasrhelyi, Some remarks about heterogeneous business information management system, The Procedings of the 3rd International Symposium of Economic Informatics, Bucharest, 1997, p:435-440;

78. [AvramNiţchi1999.1]Rodica Avram-Niţchi, On the intelligent mobile agents used in business, Information Technology, The Procedings of the Four International Symposium on Economic Informatics, Bucharest, May 1999, p:822-826;

79. [AvramNiţchi1999.2] R. Avram-Niţchi., Some remarks on the representation of the conceptual modeling in business information systems by heterogeneous structures, Procedings of the „Tiberiu Popoviciu” Intinerant Seminar of Functional Equations, Approximations and Convexity, Ed. Elena Popoviciu, Smirna, 1999, p: 221-228;

80. [Niţchi1999.3] S.I.Niţchi, Esenţial… în comunicarea pe INTERNET şi World Wide Web, Editura Risoprint, 1999, ISBN 973-9464-22-x

81. [Niţchi2003.1]R. Avram-Niţchi., Ş.I. Niţchi, N.Ghişoiu, Baze de date şi programarea calculatoarelor, Preprint, Cluj-Napoca, 2003;

82. [Niţchi2004]Rodica Avram-Niţchi, Nicolaie Tomai, Robert Buchmann, Ramona Lacurezean, Liana Stanca, etc., Birotică, Editura RISOPRINT,Cluj-Napoca 2004,ISBN:973-656-649-8;

83. [Nitchi2003.2] Rodica Avram-Nitchi, Constantin Avornicului, Nicolae Ghişoiu, Sabin Goron, Lucia Rusu, Dan Sitar-Tăut, Liana Stanca, Iniţiere în informatica economică şi de afaceri, Bazele informaticii şi Tehnologie informaţională, Editura RISOPRINT,Cluj-Napoca 2003,ISBN:973-656-540-9;

84. [AvramNitchi2006] Arba Raluca, Avram-Nitchi Rodica , Chiş Sebastian, Coroş Robert, Lacurezeanu Ramona, Mocean Loredana , Petruşel Răzvan,Popa Silviu, Rusu Lucia, Sitar-Taut Dan Andrei , Stanca Liana Maria, Tomai Nicolae , Vancea Iuliana Monica, Vlad Miranda, Informatică economică şi de afaceri, Editura Risoprint, 2006, ISBN:973-751-157-3;

85. [OCDE1997]OECD, Electronic Commerce: Opportunities and Challenges for Government, Paris, 1997.

86. [Patriciu1999]Victor-Valeriu Patriciu, Sisteme electronice de plăţi, PC Report Nr 83 / August 1999;

87. [Paul1999] Charles Paul, Des espaces publicitaires remuneres non plus a l’audience mais a l’efficacite, in La Tribune,decembrie 1999;

88. [Peypoch1998] R.J. Peypoch, The Case for Electronic Business Communities, Business Horizons, 15 Septembrie 1998.

89. [Pleşa2000]D. Pleşa, Domotica, Editura A.S.E., Bucureşti, 2000, p.176-180; 90. [Pop2004]Ioana Pop, Curs Birotică, Editura AcademicPres, Cluj-Napoca 2004,

ISBN:973-7950-43-7;

Page 94: Proiectarea Realizarea Site Si Portalurilor Web

94

91. [PopStanca2004] Ioana Pop, Rodica Sobolu, Liana Stanca, Informatică ~lucrări practice~, Editura AcademicPres, Cluj-Napoca 2004, ISBN:973-7950-59-3;

92. [Radu2002] I. Radu, D. Vlădeanu, Fundamentarea deciziilor complexe prin tehnici de simulare, Editura Economică, 2002;

93. [Răuţ1998]Gheorghe Răuţ, Modele financiar-tranzacţionale în comerţul electronic, PC World România, nr.6/1998,p.47-53;

94. [Robu2002]Nicolae Robu,etc., Internet ~Infrastructură şi servicii~, Editura Politehică, Timişoara 2002;

95. [Ricart1998]M.A. Ricart, Apache Server Survival Guide, 1998; 96. [Roşca2000] I.Gh.Roşca, N.Ţăpuş şi alţii, Internet & Internet, Concepte şi aplicaţii,

Editura Economică, 2000, ISBN 973-590-398-9; 97. [Rusu2001] L.Rusu, Internet şi calitate, Risoprint, 2001, ISBN 973-656-0422-2 98. [Sabău2003]Mircea Sabău, Soluţii pentru probleme economice, NET Report Nr 125

/ Februarie 2003, www.agora.ro/netreport125/or1.shtml; 99. [ScarlatSoroiu]Mihai Scorţaru, Claudiu Soroiu, Pagini Web cu PHP4,

http://www.ginfo.ro/revista/13_3/internet.pdf 100. [Sankappanavar1981] S.Burris H.P. Sankappanavar, A cours in Universal Algebra,

Springer-Verlag, New-York, 1981; 101. [Stanca2004.1]Liana Stanca, Abordarea e-mall-urilor cu ajutorul algebrelor

eterogene, revista Studia Universitatis Babeş-Bolyai, Oeconomia, XLIX, numărul 1/2004;

102. [Stanca2004.2]Liana Stanca, Application of heterogeneous algebra in the electronic commerce, revista de la Facultad de Ingenieria , iulie 2004, Chile pag:45-49 ;

103. [Stanca2004.3]Stanca Liana Maria, Suportul economic al afacerilor electronice pe Internet

104. [Stanca2004.4]Liana Stanca, Virtual Shops-a Necessity, revista Informatică Economică, Volumul VIII, Numărul 2 (30) /2004, editura INFOREC, Bucureşti, 2004, ISSN 1453-1305, p:45-48;

, Editura PRESA UNIVERSITARA CLUJEANA, Cluj-Napoca,2004, P. 148, ISBN:973-610-320-X;

105. [Stanca2004.5]Liana-Maria Stanca, Ioana Pop, Simularea afacerilor electronice prin metoda Monte Carlo, Volumul II al Simpozionului Internaţional Integrarea Europeană şi competitivitatea economică, Chişinău, 23-24 septembrie 2004, ISBN:9975-75-260-8, p:230-233;

106. [Stanca-teza]Purdea Liana-Maria (căs. Stanca), Contribuţii la conceperea, proiectarea şi realizarea afacerilor pe Internet, Teză de doctorat, Decembrie 2004, Cluj-Napoca ;

107. [StancaPop2007]Stanca Liana Maria , Pop Ioana , The conceiving and realization of a successful estimation prototype for a virtual business using the Monte Carlo method and the statistic interpretation of data

108. [Stanca2006]Stanca Liana Maria,

, Scopus, Wseas Transactions on information science and aplications, Italy 2007, P.317-323, ISSN:1790-0832;

The estimation of a virtual shop’s success by using the Monte Carlo Method

109. [Stanca2004.3]Stanca Liana Maria,

, 5th WSEAS International Conference on E-ACTIVITIES'06, Venice, Italy, WSEAS, ISBN: 960-8457-56-6, Scopus, 2006, P. 195-199

Suportul tehnologic al afacerilor electronice pe Internet, Editura PRESA UNIVERSITARA CLUJEANA, Cluj-Napoca,2007, P. 328, ISBN:978-973-610-588-3;

Page 95: Proiectarea Realizarea Site Si Portalurilor Web

95

110. [Stanca2005]Stanca Liana Maria, Transposing a newsletter into practice through the PHP language

111. [Tudor2000]Tudor Sorin, Informatică Varanta C++, Manual pentru clasa IX, Editura,L&S INFOMAT, Bucureşti 2000

, International Conference on Computational Intelligence for Modelling, Control and Automation and International Conference on Intelligent Agents, Web Technologies and Internet Commerce Vol-2 (CIMCA-IAWTIC'05) , IEEE Computer Society, M.Mohammadian, 978-0-7695-2504-4, EI , 2005, P. 321-324

112. [Ţâmbulea2002]Leon Ţâmbulea, Baze de Date, Centru de învăţare continuă şi învăţământ la distanţă, Facultatea de Matematică şi Informatică, Cluj-Napoca, 2002;

113. [Vasiu2001] Ioana Vasiu, Criminalitatea Informatică, Editura Nemira, Bucureşti, 2001;

114. [Vasiu2002]Ioana Vasiu, Lucian Vasiu, Informatica juridică şi dreptul informatic 2002, Editura Albastră, Cluj-Napoca,2002;

115. [WaltherLevine2001] Stephen Walther, Jonathan Levine, Programarea în ASP pentru Comerţ Electronic, Editura Teora, Bucureşti, 2001;

116. [Wasserman1999] Elizabeth Wasserman,”Dreamweaver”, in The Industry Standard, 8 November 1999;

117. [Welling2001] Luke Welling, Laura Thomson, PHP and MySQL Web Development, SAMS Publishing,2001;

118. [WellingThomson2005] L. Welling, L. Thomson, Dezvoltarea aplicaţiilor Web cu PHP şi MySQL, Editura Teora, 2005, Bucureşti, ISBN: 1-59496-051-8;

119. [Chip2/2003]Revista Chip Special, Nr.2-2003, Crearea unui Website dinamic; 120. [ApachePHP-site]www.thickbook.com, Apache+PHP4 on Windows, 2002; 121. 122.

[microsoft-site]www.microsoft.com;

123. [weblogs-site][w3schools-site]www.w3schools.com;

http://php.weblogs.com 124. [books-site]ftp://ftp.astral.ro/pub/books; 125. http://www.gwp.ro/ro_services_programming.php; 126. [asp-site]www.asp.net; 127. [electronica-site] http://www.electronica-azi.ro/ ar.php; 128. [netconcepts-site] http: // www. netconcepts. com/ news/ php vsasp.php; 129. Internet Indicators, URL: www.internetindicators.com, 2001 (10 August 2001). 130. http://www.academiaromana.ro/pro_pri/doc/st_b03.doc 131. [MySQL-site]www.MySql.com, MySql Reference Manual for version 4.0.0-alpha; 132. [PHP1-site]www.php.net. PHP Manual, Edited by Stig Saether Bakken; 133. [MySQL2002] MySQL Server and Clients, Documantaţie de firmă, MySql AB,

2002.; 134. [PHP2-site]www.phpfreaks.com, PHP and MySQL Web Site Building Tutorial; 135. [site1]http://ro.wikipedia.org/wiki/Server; 136. [site2]http://www.worklance.com/htmltutorial; 137. [site3] http://www.acucalin.ro/curshtml/ch.html; 138. [site4] http://www.infodamina.ro/html; 139. [site5] http://euro.ubbcluj.ro/~alina/cursuri/internet-teorie/; 140. [site6] http://www.etutoriale.ro/articles/127/1/Crearea-formularelor-HTML; 141. [site7] http://www.etutoriale.ro/articles/88/1/Frame-uri-HTML; 142. [site8] http://www.ionitaasan.go.ro/main_page_files/retele/retele2.htm; 143. [site9] http://www.php.maelvi.ro/pgs/tut_mysql_date.php;

Page 96: Proiectarea Realizarea Site Si Portalurilor Web

96

144. [site10] http://www.etutoriale.ro/articles/39/1/Tipuri-de-date; 145. [site11] http://www.itim-cj.ro/~jalobean/Cursuri/www.my-sql.go.ro/utilizare.htm# cols 146. [site12] http://ro.wikipedia.org/wiki/Baz%C4%83_de_date 147. [site13] http://office.microsoft.com/ro-ro/access/HA012242471048.aspx?pid=

CH100645691048#Terms 148. [site14] http://www.phpromania.ro/modules.php?name=News&file=article&sid=560 149. [site15] http://www.tutoriale.far-php.ro/index.php? p=Structuri%20de%20control %20%26

icirc%3Bn%20PHP; 150. [site16] http://www.drogoreanu.ro/tutorials/php2.php 151. [site17] http://www.ase.ro/biblioteca/pagina2.asp?id=cap1 152. [site18] http://documentatiephp.xhost.ro/cap3.php 153. [site19] http://www.etutoriale.ro/articles/93/1/Tutorial-complet-PHP/print/93 154. [site20]http://students.info.uaic.ro/~webgr/php/tipuri-de-date.html#Tablouri

Bibliografie opţională

1. [Boian_97] Boian, F. M, Programarea distribuită în Internet metode şi aplicaţii Ed.

MicroInformatica, 1997; Biblioteca facultăţii 2. [BuBois_01]P.BuBois, MySQL, Editura: Teora, 2001, Biblioteca facultăţii 3. [Darnell_01]R.Darnell, Totul despre HTML 4, Editura Teora, 2001, Biblioteca

facultăţii 4. [Welling_05]L. Welling, L. Thomson, Dezvoltarea aplicaţiilor Web cu PHP şi

MySQL, Editura Teora, 2005, Bucureşti, ISBN: 1-59496-051-8; Biblioteca catedrei

5. [Chip_03]Revista Chip Special, Nr.2-2003, Crearea unui Website dinamic; Biblioteca catedrei

6. [site1]www.thickbook.com, Apache+PHP4 on Windows, 2002; reţea Internet 7. [site2]www.MySql.com, MySql Reference Manual for version 4.0.0-alpha; reţea

Internet 8. [site3]www.php.net, PHP Manual, Edited by Stig Saether Bakken; reţea Internet 9. [site4]www.phpfreaks.com, PHP and MySQL Web Site Building Tutorial; reţea

Internet 10. [site5]http://interfete-web.clubcisco.ro/site/index.php/glosar-de-termeni 11. [site6]http://www.designlabs.ro/glosar-internet.php

Glosar

Index page [site5]- Termen sinonim cu "home page". Multe pagini sunt denumite index.html sau index.php pentru că acestea sunt paginile pe care un server web le va returna unui browser ce face o cerere către o adresă (și nu către un anumit fișier de la acea adresă), în mod implicit

Page 97: Proiectarea Realizarea Site Si Portalurilor Web

97

Link text [site5]- O porțiune pe care se poate da click pentru a accesa un link, reprezentată prin text. Se mai numește și "anchor text" de la tag-ul HTML <a> (anchor).

META tags[site5] - Tag-uri HTML localizate în secțiunea <HEAD> a unei pagini web care specifică informații relevante pentru motoarele de căutare. Două dintre cele mai utilizate tag-uri sunt "Keywords" și "Description". Multe motoare de căutare ignoră tag-urile META din cauză că au fost mult abuzate în trecut. Totuși, Google folosește descrierea din tag-ul "Description" când afișează pagina ca rezultat al unei căutări. De asemenea, "Robots" poate specifica faptul că nu se doreşte ca o pagină să fie indexată de către motoarele de căutare.

Browser[site6] -Un browser este un program care rulează pe calculatorul clientului care doreşte să vizioneze un site web. Browserul se conectează la serverul site-ului, copiază conţinutul pe calculatorul clientului, îl interpretează şi îl afişează.

Cookie[site6] -un fişier ce stochează cantităţi de informate de dimensiuni reduse şi cu o anumită durată de viaţă. Un site poate salva cookie-uri pe calculatorul unui vizitator pentru a salva anumite setări sau opţiuni pe care vizitatorul le-a efectuat la un anumit moment dat, astfel încât utilizatorul nu va mai trebui să le reintroducă. Prin această metodă sunt salvate şi numele de utilizator şi parola la un anumit site, astfel încât la următoarea vizită, utilizatorul este autentificat automat. Deşi informaţia din cookie este criptată, ea poate fi decriptată cu destulă uşurintă.

Cuvant cheie (KEYWORD) [site6] - un index pentru o bază de date care identifică o anumită informaţie sau document. Căutarea după cuvinte cheie este cea mai folosită metodă de căutare pe Internet

HTML (Hyper Text Markup Language) [site6] - un limbaj de descriere, structurare şi formatare a paginilor web. Majoritatea paginilor de pe Internet sunt scrise folosind HTML, de obicei împreună cu CSS, care este un limbaj de formatare.

HTTP (Hyper Text Transfer Protocol) [site6] - protocolul (metoda) standard de transfer de date dintre un browser web si un server.

Script[site6] -Un program scris într-un limbaj simplificat de programare, numit şi limbaj de script. Exemple de limaje de script sunt PHP,JSP,JavaScript, VBScript.

Server web (web server)[site6] -Un computer conectat la Internet, ce găzduieşte pagini web şi le furnizeaza vizitatorilor. Un server dedicat găzduieşte un singur site web. Un server ne-dedicat găzduieşte mai multe pagini web. Serverele dedicate sunt mai rapide, dar şi considerabil mai scumpe.

Page 98: Proiectarea Realizarea Site Si Portalurilor Web

98

SMTP (Simple Mail Transfer Protocol) [site6] -un protocol (set de reguli) folosit de anumite sisteme server-client de e-mail pentru copierea mesajelor de la client la server.

PHP [site5] - limbaj de scripting gratuit, destinat iniţial dezvoltării interfeţelor web dinamice şi extins apoi şi pentru utilizarea în aplicaţii grafice. Acronimul PHP vine de la "Personal Home Page", numele oficial al limbajului de scripting lansat în 1995 de Rasmus Lerdorf. Implementarea principală este realizată actual de "The PHP Group", versiunea cea mai recentă fiind 5.2.6