Documente Academic
Documente Profesional
Documente Cultură
PROIECTAREA ŞI
REALIZAREA
SITE-URILOR ŞI
PORTALURILOR
WEB
ANUL III Semestrul 5
1
I. Informaţii generale
2
- 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;
Pentru paginarea temelor, recomandăm consultarea cuprinsului din partea a doua a materialului de faţă.
3
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.
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).
4
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.
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:
liana.stanca@econ.ubbcluj.ro
5
Cuprins
6
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.
7
2. Suportul de curs
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
8
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-
9
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ş.
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
10
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.
11
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.
1
http://www.netcraft.com/survey
2
http://www.apache.org
13
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
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
Bibliografie
14
MODULUL 2 PREZENTAREA ELEMETELOR DE BAZĂ ALE LIMBAJULUI HTML
Î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
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.
15
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.
16
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.
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.
Elementele listelor se introduc între marcajele <LI> … </LI> ("list item"). Modul de apariţie al
17
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 <OL> </H2>
<p> se foloseşte pentru a defini o listă ordonată 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
18
<li>Al doilea element al listei
</ol>
<H3> Tag-ul <OL> poate avea un atribut START=6 </H3>
<p> se foloseşte pentru a stabili numerotarea intr-o listă ordonată
astfel:</p>
<ol START=6>
<li>Primul element al listei
<li>Al doilea element al listei
</ol>
<H2> Tag-ul <UL> </H2>
<p> se foloseşte pentru a defini o listă neordonată 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ătrat</H3>
<ul type=square>
<li>Primul element al listei
<li>Al doilea element al listei
</ul>
<H2>Listă ordonată care cuprinde o listă neordonată</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 <DL> </H2>
<p> se foloseşte pentru introducerea unui set de definiţii, indexuri
etc.</p>
<h3>Listă de definiţii </h2>
<dl>
<dt>Precizare termen de definit
<dd>Defineţie termen
<dt>Precizare termen de definit
<dd>Definiţ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ă:
19
20
2.4.5.Marcaje pentru obiecte
21
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:
<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.
<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.
<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.
23
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.
* 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 +.
25
Teme pentru verificarea cunoştinţelor
7. Creaţi o pagină HTML care să conţină o listă ordonată identică cu lista prezentată în imaginea
următoare:
26
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>
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>
Bibliografie
27
MODULUL 3. MYSQL SERVER
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.
Prezentarea produsului informatic MySql Server a impus structurarea acestului modul ca în figura de
mai jos:
28
3.4. Conţinutul informaţional detaliat
MySQL este cel mai popular sistem de management pentru baze de date relaţionale deoarece este open-
source. MySQL Server a fost creat pentru a lucra cu baze de date mai rapid decât soluţiile deja existente
la ora actuală pe piaţă [Graeme-site].
Facilităţile oferite de MySQL sunt variate, dintre care se vor preciza următoarele [BuBois2001]:
posibilitatea accesului concurent la date de către un număr nelimitat de utilizatori;
capacitatea de a gestiona până la 50000000 de înregistrări şi chiar mai multe;
execuţia foarte rapidă a comenzilor, poate chiar cea mai rapidă din cele existente pe piaţă;
sistem uşor şi eficient de gestiune a drepturilor utilizatorilor;
este gratuit, fapt ce a atras extinderea fără precedent a folosirii acestui server de baze de date.
MySQL este un sistem de gestiune a bazelor de date. Pentru a adăuga, insera şi procesa datele
memorate pe un calculator este nevoie de un astfel de sistem de gestiune 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
29
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].
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.
31
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
Î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;
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)
Î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);
33
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ă;
Modificarea conţinutului unei înregistrări se face utilizând comanda UPDATE care are
sintaxa[Chip2/2003]
Ş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.
34
Test de verificare a cunoştinţelor:
2.Modificarea datelor unei înregistrări dintr-o tabelă a unei baze de date se face cu comanda :
INSERT
UPDATE
SELECT
DELETE
Răspunsuri
35
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
36
MODULUL 4 PREZENTAREA LIMBAJULUI DE SCRIPTING PHP
Î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
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ă
Prezentarea limbajului de scripting PHP a impus structurarea acestui modul ca în figura de mai jos:
37
Principiul de
funcţionare PHP
Elemente de limbaj
PHP
HTML+PHP+MYSQL
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.
38
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.
Exemplu:
<html>
<head>
<title>Exemplu de afisare a valorilor unei
variabile</title> </head>
<body>
<?php
39
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 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.
40
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ă.
41
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:
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
Î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
42
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.
43
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:
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:
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:
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:
<?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 ?>
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’;
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; ?>
45
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.
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
46
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]
Î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.9. FIŞIERE
48
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.
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.
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:
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.
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:
49
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.
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’]);
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,
50
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.
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.
51
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.
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]
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]
Ş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
53
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.
54
Teme pentru verificarea cunoştinţelor
55
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.
57
Bibliografie completă a cursului
1. [Abrams2000] Rhonda Abrams, The Successful Business Plan, Running ‘R’ MediaTM, 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
58
/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,
59
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,
60
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,
61
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ă
63
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ă.
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
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
64
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
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.
65