65
1 Specializarea: Informatică Economică PROIECTAREA ŞI REALIZAREA SITE-URILOR ŞI PORTALURILOR WEB ANUL III Semestrul 5

Suport Curs IDFR

Embed Size (px)

DESCRIPTION

Suport Curs

Citation preview

Page 1: Suport Curs IDFR

1

Specializarea: Informatică Economică

PROIECTAREA ŞI REALIZAREA

SITE-URILOR ŞI

PORTALURILOR WEB

ANUL III Semestrul 5

Page 2: Suport Curs IDFR

2

I. Informaţii generale

Date de identificare a cursului Date de contact ale titularului de curs:

Nume: Lect.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: liana.stanca@econ. ubbcluj.ro

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:

1. 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;

2. însuşirea abilităţilor de concepere, proiectare şi implementare a modelelor de afaceri electronice cu ajutorul limbajelor HTML şi PHP, ceea ce le crează posibilitatea încadrării în domeniul statisticii şi informaticii economice

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;

4. au compenţa necesară de a dezvolta aplicaţii specifice afacerilor electronice; 5. au compenţa necesară de a optimiza metodele de selecţie a alternativelor de dezvoltare a unei

afaceri on-line;. 6. dobândesc deprinderi de analiză proiectare şi testare a modelelor de afaceri electronice specifice

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

speţă un model de afacere electronică;

Page 3: Suport Curs IDFR

3

- 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->HTML5 1.1 Elemente de limbaj HTML

1.2 Structura unui document HTML 1.3 Hyperlink-uri

1.4 Liste în site-uri Web 1.5 Marcaje pentru obiecte 1.6 Aspecte ale limbajului HTML5

Modul3:MYSQL SERVER

3.1. MySQL –concepte de bază, caracterisitci

3.2. Modul de funcţionare a unui server de baze de date pentru Web 3.3. Tipuri de date SQL 3.4. Privilegii acordate utilizatorilor 3.5. Baze de date- definiţie, proiectare

3.6. Operaţii asupra bazelor de date în MySQL Modul4:PREZENTAREA LIMBAJULUI DE SCRIPTING PHP

4.1 Limbajului PHP~noţiuni fundamentale 4.2. Principiul de funcţionare a limbajului PHP

4.3. Variabilele PHP 4.4. Variabile şi constante

4.5. Operatori 4.6. Structurile de control

4.7. Tablouri 4.8. Funcţii

4.9. Fişiere 4.10. Stocarea datelor în sistemul utilizatorului cu PHP

4.11. PHP şi formulare HTML Bibliografie obligatorie

Bibliografie opţională

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

Formatul şi tipul activităţilor implicate de curs Cursul va fi prezentat prin activităţi tutoriale periodice programate conform orarului facultăţii, afişat pe site-ul http://econ.ubbcluj.ro.

Page 4: Suport Curs IDFR

4

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 5.[Mark Pilgrim] Mark Pilgrim, HTML5 ghidul începătorului, 3D MEDIA COMMUNICATIONS,2011. Materialele sunt accesibile la biblioteca facultăţii, la biblioteca catedrei sau pot fi puse la dispoziţie de către titularul de curs.

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).

Page 5: Suport Curs IDFR

5

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 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 6: Suport Curs IDFR

6

Cuprins

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

1.1 Reţeaua Internet - concept şi evoluţie .................................................................................................. 9 1.2 Modelul CLIENT-SERVER .............................................................................................................. 10

1.3. Limbaje de scripting pe parte de server ............................................................................................ 12 1.4. Server APACHE ............................................................................................................................... 12

Modul2:PREZENTAREA ELEMETELOR DE BAZĂ ALE LIMBAJULUI HTML ............................ 15 2.1. Elemente de limbaj HTML ............................................................................................................... 16

2.2. Structura unui document HTML ....................................................................................................... 17 2.3. Hyperlink-uri..................................................................................................................................... 20

2.4. Liste în site-uri Web.......................................................................................................................... 21 2.5.Marcaje pentru obiecte ....................................................................................................................... 24

2.6. Aspecte ale limbajului HTML5 ................................................................................................ 27 Modul3:MYSQL SERVER ..................................................................................................................... 31

3.1. MySQL –concepte de bază, caracterisitci ......................................................................................... 32 3.2. Modul de funcţionare a unui server de baze de date pentru Web ..................................................... 33

3.3. Tipuri de date SQL............................................................................................................................ 33 3.4. Privilegii acordate utilizatorilor ........................................................................................................ 35

3.5. Baze de date- definiţie, proiectare .................................................................................................... 35 3.6. Operaţii asupra bazelor de date în MySQL....................................................................................... 36

Test de verificare a cunoştinţelor: ............................................................................................................ 38 Modul4:PREZENTAREA LIMBAJULUI DE SCRIPTING PHP .......................................................... 39

4.1 Limbajului PHP~noţiuni fundamentale ............................................................................................. 40 4.2. Principiul de funcţionare a limbajului PHP ...................................................................................... 41

4.3. Variabilele PHP ................................................................................................................................ 42 4.4. Variabile şi constante ........................................................................................................................ 43

4.5. OPERATORI .................................................................................................................................... 44 4.6. Structurile de control......................................................................................................................... 44

4.7. Tablouri ............................................................................................................................................. 46 4.8. Funcţii .............................................................................................................................................. 49

4.9. FIŞIERE ............................................................................................................................................ 50 4.10. Stocarea datelor în sistemul utilizatorului cu PHP ......................................................................... 52

4.11. PHP şi formulare HTML ................................................................................................................ 53 Bibliografie obligatorie ............................................................................................................................ 57

Bibliografie opţională .............................................................................................................................. 62

Page 7: Suport Curs IDFR

7

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 8: Suport Curs IDFR

8

2. Suportul de curs MODULUL 1 NOŢIUNI FUNDAMENTALE PENTRU CONCEPEREA, PROIECTAREA ŞI IMPLEMENTAREA UNEI APLICAŢII ELECTRONICE

2.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

2.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.

Recomandǎri privind studiul:

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

Page 9: Suport Curs IDFR

9

2.1.3. Conţinutul informaţional detaliat 2.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”. Î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-

Page 10: Suport Curs IDFR

10

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ş.

2.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;

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

Page 11: Suport Curs IDFR

11

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ă 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.

Page 12: Suport Curs IDFR

12

2.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. 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. 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.

2.1.3.4. Server APACHE 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ă [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

Page 13: Suport Curs IDFR

13

protocolul de conectare în cazul de faţă: http://localhost. Conform statisticii realizate de Netcraft

1 1, 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. Dorinţa creatorilor Apache, după cum se specifică în site-ul Grupului Apache

2 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. 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” 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.

1 http://www.netcraft.com/survey

2 http://www.apache.org

Page 14: Suport Curs IDFR

14

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 15: Suport Curs IDFR

15

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.

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.

Page 16: Suport Curs IDFR

16

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, 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.

Page 17: Suport Curs IDFR

17

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> 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.4.3. 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.

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.4. Liste în site-uri Web Elementele listelor se introduc între marcajele <LI> … </LI> ("list item"). Modul de apariţie al

Page 18: Suport Curs IDFR

18

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. Tag-urile <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> <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

Page 19: Suport Curs IDFR

19

<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> <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 20: Suport Curs IDFR

20

Page 21: Suport Curs IDFR

21

2.4.5.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. 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> </SELECT>

Page 22: Suport Curs IDFR

22

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 comportă 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:

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”

Page 23: Suport Curs IDFR

23

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>

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 24: Suport Curs IDFR

24

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. 2.8.Aspecte ale limbajului HTML5 Limbajul HTML5: [Mark Pilgrim]

1. se bazează pe HTML, CSS, DOM, şi JavaScript 2. reduce nevoia de plugin-uri externe (precum Flash)

3. o mai bună tehnica de manipulare a erorilor 4. mai mult Markup pentru a înlocui scripting

5. independenta de dispozitiv Modificările HTML5: [Mark Pilgrim] 1. se foloseşte doar o simplă formă pt DOCTYPE astfel: <!DOCTYPE html>. Intenţionat nu conţine nici o precizare pentru a putea fi folosită în versiunile viitoare de HTML. 2. se reţin atributele pentru limbaj. Nu este obligatoriu să se folosească atributele xmlns sau xml: lang în tagul <html>. În HTML5 se va scrie: <HTML lang=”en”> 3.se definesc seturile de caractere cu ajutorul atributului charset din meta tag:

<meta charset=”utf-8”/> 4. Pentru elementele nule in HTML5 de ex: br, img si input nu mai cer slash-ul de final 5. nu mai se acceptă în HTML5 elementele: <acronym>, <applet>, <basefont>, <big>, <center>, <dir>, <font>, <frame>, <frameset>, <noframes>, <s>, <strike>, <tt>, <u> and <xmp> HTML 5 introduce şi îmbunătăţeşte o gamă largă de caracteristici (controalele formular, API-uri, multimedia, structura şi semantică) -scopul este : de a oferi dezvoltatorilor o mai mare flexibilitate şi interoperabilitate, şi a permite site-urile web mai interactive şi mai incitante . Dezvoltarea lui HTML 5 a început din 2004 şi sunt implicaţi W3C HTML WG, WHATWG, Apple,

Page 25: Suport Curs IDFR

25

Mozilla, Opera, and Microsoft. HTML5 introduce un set întreg de elemete noi care permit să realizeze o structurare mai uşoară a paginilor web. În HTML5 elementele div sunt înclocuite cu: header,nav, article, section, aside, footer. Elementul nav reprezintă o sectiune destinată link-urilor de navigare. Elementul <aside> este pentru conţinut, poate fi un tag spre alt conţinut asemănător. Elementul <aside> este destinat utilizării pentru a marca lateralele.(arhivele pe acelaşi conţinut). Elementul <section> este o secţiune generică a documentului sau a aplicaţiei, cum este de exemplu un capitol. Elementul < article > este o secţiune independentă a unui document, pagină sau site.Acest ultim element este potrivit pentru link-uri spre conţinutul unor articole de ştiri de pe blog, posturi pe forumuri sau pentru comentarii individuale. Funcţii noi ale lui HTML5: [Mark Pilgrim]

1. elementul canvas pt desen 2. elementele video şi audio pentru redarea fişierelor de muzică

3. suport mai bun pentru stocări locale offline 4. noi controale de forma: calendar, date, time, e-mail, url şi search. Stocarea Datelor pe client: [Mark Pilgrim] atributele noi pentru stocarea datelor sunt similare cu modulele cookie din sesiunile HTTP. Acestea sunt "sessionStorage" şi "localStorage". * SessionStorage este utilizat pentru a salva datele atâta timp cât o fila sau fereastră a browser-ului rămâne deschisă -memorarea datelor în sesiuni(echivalentul lui cookie) - nu persistă dacă se închide tab-ul, el nu există dacă se va naviga printr-un alt tab

sau fereastra. -nu are nici o limita de lungime cu excepţia RAM.

* LocalStorage este utilizat pentru a stoca date pentru o perioadă mai lungă de timp, peste mai multe pagini şi sesiuni de browser (de exemplu, va dura chiar şi atunci când se reporneşte browser-ul web şi / sau calculatorul). -memorarea datelor fără limită de timp(datele sunt disponibile o zi, o săptămână,sau ani.) În HTML5, datele nu se transmit pentru fiecare cerere la server, ele sunt trimise doar atunci când sunt cerute. Caracteristici atât locale şi sesiune de depozitare sunt acceptate în următoarele browsere web: Internet Explorer 8 +, Firefox 3.5 +, Safari 4.0 +, Chrome si Opera 2.0 + 10.5 +.

Page 26: Suport Curs IDFR

26

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 27: Suport Curs IDFR

27

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

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 4.[Mark Pilgrim] Mark Pilgrim, HTML5 ghidul începătorului, Editura 3D MEDIA COMMUNICATIONS,2011.

Page 28: Suport Curs IDFR

28

MODULUL 3. MYSQL SERVER 3.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. . 3.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.

3.3. Schema logică a modulului Prezentarea produsului informatic MySql Server a impus structurarea acestului modul ca în figura de mai jos:

Page 29: Suport Curs IDFR

29

3.4. Conţinutul informaţional detaliat 3.4.1. MySQL –concepte de bază, caracterisitci 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 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

Page 30: Suport Curs IDFR

30

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]. 3.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;

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.

3.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]:

Page 31: Suport Curs IDFR

31

Tip de dată Descriere Valori Bytes

TINYINT Întregi de dimensiune foarte 1 mică

cu semn [-128;127]

fără semn [0,255]

SMALLINT Întregi de dimensiune mică 2 cu semn

fără semn [-32768,32767]

[0; 65535]

MEDIUMINT Întreg de lungime medie 3 cu semn

fără semn [-8388608; 8388607]

[ 0;16777215]

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

[-2147483648;2147483647]

fără semn [0; 4294967295]

BIGINT Întreg de dimensiune mare. 8

cu semn

[-9223372036854775808;

fără semn 9223372036854775807]

[0;18446744073709551615]

FLOAT Număr în virgulă mobilă care nu [±1.175494351E-38 4 poate fi fără semn având precizie ±3.402823466E+38]

simplă sau dublă. Precizia poate

merge până la 24 de zecimale

REAL sau DOUBLE Număr în virgulă mobilă, de [±2.2250738585072014E-308, 8 dublă precizie care nu poate fi ±1.7976931348623157E+308]

fără semn. Precizia poate merge

până la 53 de zecimale.

NUMERIC sau Număr în virgula mobilă care nu [±2.2250738585072014E-308, 8

DECIMAL poate fi fără semn. ±1.7976931348623157E+308]

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;

Page 32: Suport Curs IDFR

32

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)

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

3.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; 3.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] 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).

Page 33: Suport Curs IDFR

33

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ă. 3.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. 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);

Page 34: Suport Curs IDFR

34

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

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 35: Suport Curs IDFR

35

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

Page 36: Suport Curs IDFR

36

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

Page 37: Suport Curs IDFR

37

MODULUL 4 PREZENTAREA LIMBAJULUI DE SCRIPTING PHP

4.1. 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ă

4.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.

4.3. Schema logică a modulului Prezentarea limbajului de scripting PHP a impus structurarea acestui modul ca în figura de mai jos:

Page 38: Suport Curs IDFR

38

Principiul de funcţionare PHP

Elemente de limbaj PHP

HTML+PHP+MYSQL

Site-uri web dinamice

Portaluri Web

Fig.4.3.1 Structura modulului 3 4.4. Conţinutul informaţional detaliat

4.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 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.

Page 39: Suport Curs IDFR

39

4.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. 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.

4.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>

<?php

Page 40: Suport Curs IDFR

40

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 <br> Limbajul PHP</body></html>

4.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.

Page 41: Suport Curs IDFR

41

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ă. 4.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. 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]

o $_SERVER este un tablou ce conţine variabile de mediu ale serverului;

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

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

o $_COOKIE este un tablou ce conţine blocuri cookie;

o $_FILES este un tablou ce conţine variabile legate de încărcarea fişierelor;

o $_REQUEST este un tablou ce conţine toate variabilele introduse de utilizator, inclusiv conţinutul intrărilor din $_GET, $_POST şi $_COOKIE;

o $_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 42: Suport Curs IDFR

42

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:

<?php $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. 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 4.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

Page 43: Suport Curs IDFR

43

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. 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 44: Suport Curs IDFR

44

4.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:

<?php $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:

<?php $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:

< ?php $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:

<?php $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); // 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:

Page 45: Suport Curs IDFR

45

<? $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:

<?php $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:

<?php $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 :

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

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

<?php $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:

<?php

$oamenii_la_masa = array(33=>‘Ionel’,’Maria’,’Viorel’)

foreach($oamenii_la_masa as $element)

echo $element; ?>

Page 46: Suport Curs IDFR

46

4.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.

4.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 :

<?php $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/>';}?>

4.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.

operatorul “ ! = =“ returnează TRUE dacă tablourile care sunt comparate nu conţin aceleaşi

elemente pe aceleaşi poziţii, altfel returnează FALSE.

4.4.8. Funcţii O funcţie este un ansamblu alcătuit din tipuri de date, variabile, constante şi instrucţiuni scrise în

Page 47: Suport Curs IDFR

47

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]

4.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.

4.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;

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) returnează rădăcina pătrată a lui x.

2. Funcţiile pe şiruri de caractere sunt: 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.

Page 48: Suport Curs IDFR

48

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) returnează data curentă, formatată conform conţinutului parametrului a; 2. date() returnează ora, luna, anul precum şi alte elemente ale datei curente în funcţie de context ; 3. now() returnează data şi ora curentă.

4. hour(t) returnează ora din cadrul parametrului. Valorile parametrului pot fi în intervalul [0-23]. 4.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: 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

Page 49: Suport Curs IDFR

49

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. 4.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. 4.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:

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.

4.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:

Page 50: Suport Curs IDFR

50

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. 4.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.

4.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’]);

4.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,

Page 51: Suport Curs IDFR

51

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; 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.

4.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.

Page 52: Suport Curs IDFR

52

Figura 4.4.11. Model Client-Server care foloseşte PHP adaptare după[LalaniChandak1997]

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

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:

4.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.

4.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]: 1. 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ă”);

2. Conectarea cu succes la baza de date permite realizarea de interogări SQL, urmate de obţinerea

Page 53: Suport Curs IDFR

53

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:

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 ştearsă ;

2. 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 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

Page 54: Suport Curs IDFR

54

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 55: Suport Curs IDFR

55

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

Page 56: Suport Curs IDFR

56

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 < ? .... ?>

< !... !>

//

‘\’’

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 57: Suport Curs IDFR

57

//

‘\’’

Page 58: Suport Curs IDFR

58

Bibliografie completă a cursului

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

TM, Palo Altro,

California, 2000;

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

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 Edition,

McGrow-Hill Irwin, 2002;

10. [Beltz1997]C.Beltz, Reciprocity versus Internet-Induced Liberalization: The Case of

Telecommunications, American Enterprise Institute, Washington D.C.,1997;

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;

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

Page 59: Suport Curs IDFR

59

/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;

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,

Page 60: Suport Curs IDFR

60

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

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,

Page 61: Suport Curs IDFR

61

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;

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,

93. Editura Economică, 2002;

94. [Răuţ1998]Gheorghe Răuţ, Modele financiar-tranzacţionale în comerţul electronic, PC

World România, nr.6/1998,p.47-53;

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

2002;

96. [Ricart1998]M.A. Ricart, Apache Server Survival Guide, 1998;

97. [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;

98. [Sabău2003]Mircea Sabău, Soluţii pentru probleme economice, NET Report Nr 125 / Februarie

2003, www.agora.ro/netreport125/or1.shtml;

98. [ScarlatSoroiu]Mihai Scorţaru, Claudiu Soroiu, Pagini Web cu PHP4,

http://www.ginfo.ro/revista/13_3/internet.pdf

99. [Sankappanavar1981] S.Burris H.P. Sankappanavar, A cours in Universal Algebra, Springer-

Verlag, New-York, 1981;

100. [Stanca2004.1]Liana Stanca, Abordarea e-mall-urilor cu ajutorul algebrelor eterogene,

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

101. [Stanca2004.2]Liana Stanca, Application of heterogeneous algebra in the electronic

commerce, revista de la Facultad de Ingenieria , iulie 2004, Chile pag:45-49 ;

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

Internet, Editura PRESA UNIVERSITARA CLUJEANA, Cluj-Napoca,2004, P. 148, ISBN:973-

610-320-X;

103. [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;

104. [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;

105. [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 ;

106. [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, Scopus, Wseas Transactions on information science and

aplications, Italy 2007, P.317-323, ISSN:1790-0832;

107. [Stanca2006]Stanca Liana Maria, The estimation of a virtual shop’s success by using the

Monte Carlo Method, 5th WSEAS International Conference on E-ACTIVITIES'06, Venice,

Italy, WSEAS, ISBN: 960-8457-56-6, Scopus, 2006, P. 195-199

108. [Stanca2004.3]Stanca Liana Maria, Suportul tehnologic al afacerilor electronice pe

Internet, Editura PRESA UNIVERSITARA CLUJEANA, Cluj-Napoca,2007, P. 328, ISBN:978-

973-610-588-3;

109. [Stanca2005]Stanca Liana Maria, Transposing a newsletter into practice through the

PHP language , 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

110. [Tudor2000]Tudor Sorin, Informatică Varanta C++, Manual pentru clasa IX,

Editura,L&S INFOMAT, Bucureşti 2000

111. [Ţâ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;

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

113. [Vasiu2002]Ioana Vasiu, Lucian Vasiu, Informatica juridică şi dreptul informatic 2002,

Page 62: Suport Curs IDFR

62

Editura Albastră, Cluj-Napoca,2002;

114. [WaltherLevine2001] Stephen Walther, Jonathan Levine, Programarea în ASP

pentru Comerţ Electronic, Editura Teora, Bucureşti, 2001;

115. [Wasserman1999] Elizabeth Wasserman,”Dreamweaver”, in The Industry Standard, 8

November 1999;

116. [Welling2001] Luke Welling, Laura Thomson, PHP and MySQL Web Development,

SAMS Publishing,2001;

117. [WellingThomson2005] L. Welling, L. Thomson, Dezvoltarea aplicaţiilor Web cu PHP şi

MySQL, Editura Teora, 2005, Bucureşti, ISBN: 1-59496-051-8;

118. [Chip2/2003]Revista Chip Special, Nr.2-2003, Crearea unui Website dinamic;

119. [ApachePHP-site]www.thickbook.com, Apache+PHP4 on Windows, 2002;

120. [microsoft-site]www.microsoft.com;

121. [w3schools-site]www.w3schools.com;

122. [weblogs-site]http://php.weblogs.com

123. [books-site]ftp://ftp.astral.ro/pub/books;

124. http://www.gwp.ro/ro_services_programming.php;

125. [asp-site]www.asp.net;

126. [electronica-site] http://www.electronica-azi.ro/ ar.php;

127. [netconcepts-site] http: // www. netconcepts. com/ news/ php vsasp.php;

128. Internet Indicators, URL: www.internetindicators.com, 2001 (10 August 2001).

129. http://www.academiaromana.ro/pro_pri/doc/st_b03.doc

130. [MySQL-site]www.MySql.com, MySql Reference Manual for version 4.0.0-alpha;

131. [PHP1-site]www.php.net. PHP Manual, Edited by Stig Saether Bakken;

132. [MySQL2002] MySQL Server and Clients, Documantaţie de firmă, MySql AB, 2002.;

133. [PHP2-site]www.phpfreaks.com, PHP and MySQL Web Site Building Tutorial;

134. [site1]http://ro.wikipedia.org/wiki/Server;

135. [site2]http://www.worklance.com/htmltutorial;

136. [site3] http://www.acucalin.ro/curshtml/ch.html;

137. [site4] http://www.infodamina.ro/html;

138. [site5] http://euro.ubbcluj.ro/~alina/cursuri/internet-teorie/;

139. [site6] http://www.etutoriale.ro/articles/127/1/Crearea-formularelor-HTML;

140. [site7] http://www.etutoriale.ro/articles/88/1/Frame-uri-HTML;

141. [site8] http://www.ionitaasan.go.ro/main_page_files/retele/retele2.htm;

142. [site9] http://www.php.maelvi.ro/pgs/tut_mysql_date.php;

143. [site10] http://www.etutoriale.ro/articles/39/1/Tipuri-de-date;

144. [site11] http://www.itim-cj.ro/~jalobean/Cursuri/www.my-sql.go.ro/utilizare.htm# cols

145. [site12] http://ro.wikipedia.org/wiki/Baz%C4%83_de_date

146. [site13] http://office.microsoft.com/ro-ro/access/HA012242471048.aspx?pid=

CH100645691048#Terms

147. [site14] http://www.phpromania.ro/modules.php?name=News&file=article&sid=560

148. [site15] http://www.tutoriale.far-php.ro/index.php? p=Structuri%20de%20control

%20%26 icirc%3Bn%20PHP;

149. [site16] http://www.drogoreanu.ro/tutorials/php2.php

150. [site17] http://www.ase.ro/biblioteca/pagina2.asp?id=cap1

151. [site18] http://documentatiephp.xhost.ro/cap3.php

152. [site19] http://www.etutoriale.ro/articles/93/1/Tutorial-complet-PHP/print/93

153. [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

Page 63: Suport Curs IDFR

63

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

Page 64: Suport Curs IDFR

64

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

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.

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

Page 65: Suport Curs IDFR

65

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

Scurtă biografie a titularului de curs

Lect. Dr. Liana Stanca doctor în Economie Cibernetică şi Statistică Economică din anul 2005.

Din 2001 licienţiată în Informatică (Facultatea de Matematică şi Informatică, secţia Informatică

din cadrul UBB Cluj-Napoca,), iar din anul 1999 licenţiată în Studii Europene. Studii de

specializare: master în Informatică Economică şi Societate Informaţională din cadrul

Universitătii Babeş Bolyai în anul 2002-2003.

Domenii de competenţă: baze de date şi programare, infomatică economică, programare web

statistică şi matematică.. Competenţele de cercetare ştiinţifică sunt demonstrate prin publicarea a

2 cărţi unic autor şi 8 în colaborare, a peste 35 de lucrări ştiinţifice în publicaţii recunoscute şi

participarea la peste 36 de comunicări ştiinţifice în cadrul unor sesiuni din ţară şi străinătate. Membru în comitete de organizare sau ştiinţifice ale unor conferinţe Rewier în cadrul conferintei

internaţionale IAWTC şi WSEAS Membru în 6 proiecte de cercetare.

ŞEF CATEDRA TITULAR DE DISCIPLINĂ

Prof.dr.Gheorghe Cosmin Silaghi Lect.Dr. Liana Stanca