Sunteți pe pagina 1din 50

Universitatea Transilvania Brașov Forma de învățământ

Facultatea de Matematică și Informatică Informatică ID

Cuprins

Introducere ............................................................................................................................................. 2
CAPITOLUL 1. Noțiuni generale............................................................................................................... 4
1.1. Rețele de calculatoare ..................................................................................................................... 4
1.1.1. Clasificarea rețelelor ................................................................................................................. 4
1.1.1.1. După topologie................................................................................................................... 4
1.1.1.2. După modul de conectare.................................................................................................. 5
1.1.1.3. După relațiile funcționale................................................................................................... 5
1.1.1.4. După extindere................................................................................................................... 6
1.1.2. Intranet ..................................................................................................................................... 7
1.1.3. Extranet ..................................................................................................................................... 7
1.1.4. Internet ..................................................................................................................................... 7
1.1.5. World Wide Web ...................................................................................................................... 8
1.2. Aplicație web.................................................................................................................................. 10
1.3. Justificarea alegerii temei .............................................................................................................. 11
CAPITOLUL 2. Tehnologii utilizate ......................................................................................................... 11
2.1. HTML .............................................................................................................................................. 11
2.1.1. Generalități ............................................................................................................................. 12
2.1.2. Noțiuni de bază ....................................................................................................................... 12
2.1.3. Istoric ...................................................................................................................................... 13
2.2. CSS.................................................................................................................................................. 15
2.2.1. Generalități ............................................................................................................................. 15
2.2.2. Noțiuni de bază ....................................................................................................................... 15
2.2.3. Istoric ...................................................................................................................................... 15
2.2.4. Bootstrap ................................................................................................................................ 16
2.3. PHP ................................................................................................................................................. 17
2.3.1. Noțiuni generale ..................................................................................................................... 17
2.3.2. Istoric ...................................................................................................................................... 18
3.3.3. Utilizare ................................................................................................................................... 20
2.4. Javascript........................................................................................................................................ 23
2.4.1 Noțiuni generale ...................................................................................................................... 23
2.4.2. Istoric ...................................................................................................................................... 24

1
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

2.4.3. Funcționalitate ........................................................................................................................ 24


2.4.4. JQuery ..................................................................................................................................... 25
2.5. SQL ................................................................................................................................................. 26
2.5.1 Noțiuni generale ...................................................................................................................... 26
2.5.2. Scurt istoric ............................................................................................................................. 27
2.5.3. Elementele limbajului SQL ...................................................................................................... 27
2.5.4. Funcționalitate ........................................................................................................................ 28
2.5.5. MySQL ..................................................................................................................................... 28
2.6. Server Apache ................................................................................................................................ 30
2.6.1. Noțiuni generale ..................................................................................................................... 30
2.6.2. Scurt istoric ............................................................................................................................. 30
2.6.3. XAMPP..................................................................................................................................... 31
CAPITOLUL 3. Aplicația Trasee Montane .............................................................................................. 32
3.1. Prezentarea aplicației .................................................................................................................... 32
3.2 Ghidul aplicației .............................................................................................................................. 35

Introducere

Istoria calculatoarelor este profund înrădăcinată în dorința omenirii de a calcula


funcțiile matematice de bază. Aceste și alte sarcini rămân funcțiile de bază ale computerelor
chiar și astăzi.
În realitate, omul a început această căutare prin utilizarea unor instrumente
disponibile cum ar fi degetele, bastoanele și pietrele, înainte de a adopta contrapoziții mai
avansate, cum ar fi abacul. Apoi a venit mașina Turing, un calculator model care manipulează

2
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

simbolurile pe benzi de bandă pentru a simula algoritmi. Mașina Turing a pavat calea pentru
mașinile mecanice finite la mijlocul anilor 1900.

Calculatoarele avansate pe care îi cunoaștem astăzi au devenit „mainstream” la


începutul secolului al XX-lea.

În general, computerele pot fi clasificate în trei generații. Fiecare generație a durat o


anumită perioadă de timp și fiecare ne-a dat fie un computer nou sau îmbunătățit, fie o
îmbunătățire a calculatorului existent.

Prima generație: 1937 - 1946 - În 1937 primul computer digital a fost construit de Dr.
John V. Atanasoff și Clifford Berry. A fost numit Atanasoff-Berry Computer (ABC). În 1943, un
nume de calculator electronic, Colossus a fost construit pentru militari. Alte dezvoltări au
continuat până în anul 1946, când a fost construit primul computer digital cu scop general,
Electronic Intelligent Numerical and Computer (ENIAC). Se spune că acest computer a cântărit
30 de tone și a avut 18 000 de tuburi vidate care au fost folosite pentru procesare.
Computerele acestei generații puteau îndeplini doar o sarcină unică și nu aveau sistem de
operare.

A doua generație: 1947 - 1962 - Această generație de computere a folosit tranzistoare


în locul tuburilor vidate, care erau mai fiabile. În 1951, primul computer pentru uz comercial
a fost introdus publicului; calculatorul automat universal (UNIVAC 1). În 1953, computerele
din seria International Business Machine (IBM) 650 și 700 și-au făcut amprenta în lumea
calculatoarelor. În timpul acestei generații de computere s-au dezvoltat peste 100 de limbaje
de programare a calculatorului, calculatoarele aveau sisteme de memorie și de operare.
Mijloacele de stocare, cum ar fi banda și discul, se aflau în uz.

A treia generație: 1963 - prezent - Invenția circuitului integrat ne-a adus cea de-a treia
generație de computere. Cu această invenție computerele au devenit mai mici, mai puternice
și mai fiabile și pot rula multe programe în același timp. În 1980 s-a născut Microsoft Disk
Operating System (MS-Dos) (MS-Dos), iar în 1981 IBM a introdus PC-ul personal pentru uz
casnic și birou. Trei ani mai târziu, Apple ne-a dat computerul Macintosh și anii 90 ne-au dat
sistemul de operare Windows.

Ca urmare a diferitelor îmbunătățiri ale dezvoltării calculatorului, computerul este


utilizat în toate domeniile vieții. Este un instrument foarte util care va continua să
experimenteze dezvoltarea odată cu trecerea timpului.
3
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

CAPITOLUL 1. Noțiuni generale

1.1. Rețele de calculatoare

O rețea de calculatoare reprezintă o colecție de calculatoare autonome,


interconectate intre ele. Un calculator nu este autonom atunci când el poate să fie pornit, să
fie oprit sau să fie controlat în mod forțat de către un altul. Se spune despre două calculatoare
că sunt interconectate dacă sunt capabile să schimbe informații între ele. Există mai multe
posibilități fizice de conectare (cabluri din cupru, fibre optice, microunde, sateliți de
comunicație, etc.). Dacă impunem calculatoarelor cerința de a fi autonome, atunci excludem
relația de tip master-slave între ele.

1.1.1. Clasificarea rețelelor

Un calculator interconectat cu alte sisteme, poate avea acces la datele stocate pe


acestea, precum si la echipamentele lor. Conceptul de conectare al unor calculatoare care
partajează resurse se numește lucrul în rețea. Calculatoarele care fac parte dintr-o rețea pot
partaja date, mesaje, imagini grafice, imprimante, aparate fax, modem-uri etc.
Există mai multe criterii pe baza cărora rețelele de calculatoare pot fi clasificate.

1.1.1.1. După topologie

Topologia definește structura rețelei. Topologia fizică se referă la dispunerea


fizică în teren a calculatoarelor, a cablurilor si celorlalte componente ale rețelei. Topologia
logică se referă la modul cum gazdele accesează mediul de comunicație. Topologia unei rețele
afectează direct performanțele rețelei. O anumită topologie aleasă influențează tipul de
echipament utilizat, precum si posibilitățile de extindere a rețelei.
Clasificare:
 topologia magistrală (bus) - În cazul în care calculatoarele sunt conectate de-a lungul
unui singur cablu (segment);

4
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

 topologia Ring (inel) - Fiecare dispozitiv conectat la rețea este conectat la alte două,
ca punctele într-un cerc. Semnalul parcurge bucla într-o singură direcție trecând pe la
fiecare calculator;
 topologia Star (stea) - calculatoarele sunt conectate prin segmente de cablu la o
componentă centrală, numită concentrator (hub). Semnalele sunt transmise de la un
calculator emițător, prin intermediul concentratoarelor, la toate calculatoarele din
rețea.

1.1.1.2. După modul de conectare

Rețelele de calculatoare pot fi clasificate și după tehnlogia care este folosită pentru a
conecta dispozitive individuale din rețea, cum ar fi fibră optică, Ethernet, Wireless LAN,
HomePNA sau Power line.
Metodele de conectare sunt în continuă dezvoltare și deja foarte diverse, începând cu
tot felul de cabluri metalice și de fibră optică, cabluri submarine, și terminând cu legături prin
radio cum ar fi Wi-Fi sau Bluetooth, prin raze infraroșii (IrDA) sau chiar prin intermediul
sateliților.
Foarte răspândită este metoda Ethernet, termen care se referă la natura fizică a
cablului folosit și la tensiunile electrice ale semnalului. Cel mai răspândit protocol de
comunicare în rețelele Ethernet se numește CSMA/CD ("Carrier Sense Multiple Access /
Collision Detection"). Dacă sunt utilizate undele radio, atunci rețeaua se numește rețea fără
fir.

1.1.1.3. După relațiile funcționale

Rețelele de calculatoare mai pot fi clasificate în funcție de relațiile funcționale care


există dintre elementele unei rețele, ca de exemplu: peer to peer, bazate pe servere
Rețele peer-to-peer. Într-o rețea peer-to-peer nu există servere dedicate si nici o
organizare ierarhică a calculatoarelor. În general, fiecare calculator are si rolul de client si cel
de server, neexistând un administrator responsabil pentru întreaga rețea. Utilizatorul fiecărui
calculator stabilește resursele locale care vor fi partajate în rețea.

Rețelele bazate pe server - Se bazează pe conceptul de server dedicat.


Acest tip de rețea a devenit modelul standard. Numărul de servere creste odată cu
complexitatea rețelei.

O altă clasificare funcțională folosește termenii:

5
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

 Storage Area Network (SAN) - o rețea dedicată interconectării eficiente a dispozitivelor


de stocare a datelor
 Network Attached Storage (NAS) - dispozitive de stocare concepute pentru a fi atașate
nu la câte un calculator particular din rețea, ci direct la rețea, putând astfel fi puse la
dispoziția tuturor calculatoarelor rețelei.

1.1.1.4. După extindere

Rețelele de calculatoare se împart după extinderea lor în următoarele tipuri: LAN,


MAN, WAN și, ceva mai nou, PAN. La început, rețelele erau de dimensiuni mici, cu cel mult 10
calculatoare si o imprimantă, legate împreună. Tehnologia existentă limita dimensiunile
rețelei atât în privința numărului de calculatoare cât si a distanței fizice pe care o putea
acoperi. De exemplu, la începutul anilor ´80, cea mai uzuală metodă de cablare permitea
conectarea a maximum 30 de utilizatori, printr-un cablu având lungime maxima de 180-200
de metri. O astfel de rețea putea acoperi un singur etaj al unei clădiri sau sediul unei firme
mici. O astfel de rețea se numește rețea locală sau LAN (Local Area Network).
O rețea de tip LAN dar fără fir (prin unde radio) se numește WLAN (Wireless LAN).
O rețea metropolitană (Metropolitan Area Network – MAN) este o versiune extinsă de LAN
ce se poate întinde pe zona ocupată de un grup de birouri învecinate sau chiar suprafața unui
oraș. Acest tip de rețea funcționează pe baza unor tehnologii similare cu cele ale LAN-urilor.
Aceste rețele folosesc pentru legături cel mai des tehnologii fără fir (wireless) sau fibră optică.
Rețele de mare întindere geografică, de exemplu între 2 orașe, pe o țară, un continent sau
chiar pe întreaga lume, se numesc Wide Area Network (WAN). Rețelele de tip WAN au fost
inițial foarte costisitoare si numai companiile mari își puteau permite un WAN particular. La
ora actuală însă, cele mai multe conexiuni de tip WAN folosesc ca mijloc de comunicație
Internetul - acesta este universal și public, deci nu foarte controlabil de către un utilizator, în
schimb însă foarte convenabil ca preț. În sfârșit, PAN înseamnă Personal Area Network - o
rețea de foarte mică întindere, de cel mult câțiva metri, constând din aparatele
interconectabile din apropierea unei persoane, cum ar fi o imprimantă sau un scanner, sau
chiar aparatele pe care o persoană le poartă cu sine, ca de exemplu un telefon mobil sau un
smartphone, un player MP3 sau un aparat de navigație GPS portabil.
Așa cum aceste calculatoare se pot conecta între ele cu ajutorul releelor și acestea la
rândul lor pot fi conectate între ele cu ajutorul unor dispozitive, cum ar fi un router. Orice
interconexiune între rețele publice, private, comerciale, industriale sau guvernamentale
poate fi numită "internetworking". În practica actuală, rețelele interconectate folosesc nivelul
Internet Protocol (IP) și există trei tipuri de internetwork, în funcție de cine le administrează
și cine are acces la ele : intranet, extranet și internet.

6
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

1.1.2. Intranet

Intranet-ul este o rețea privată care este cuprinsă într-o organizație. Poate fi alcătuit
din mai multe rețele locale interconectate și, de asemenea, utilizează linii închiriate WAN. În
mod obișnuit, Intranet-ul include conexiuni prin intermediul unuia sau mai multor
calculatoare de gateway către Internet. Scopul principal al unui intranet este acela de a
împărtăși resursele informatice și de calcul între angajați. Intranet-ul poate fi, de asemenea,
utilizat pentru a facilita lucrul în grupuri și pentru teleconferințe.
Intranet-ul utilizează protocoalele TCP / IP, HTTP și, în general, arată ca o versiune
privată a Internetului. Cu ajutorul tunelurilor, companiile pot trimite mesaje private prin
rețeaua publică, utilizând rețeaua publică cu criptare / decriptare specială și alte măsuri de
securitate pentru a conecta o parte a intranetului lor la alta.

1.1.3. Extranet

Extranet-ul este o rețea privată controlată care permite clienților, partenerilor,


furnizorilor și altor companii să obțină informații, în mod obișnuit despre o anumită companie
sau instituție de învățământ, fără a acorda acces la întreaga rețea a organizației.
Extranet-ul este adesea o parte privată a unui site web. Este restricționat să selectați
utilizatorii prin ID-uri de utilizator, parole și alte mecanisme de autentificare pe o pagină de
conectare. Un extranet poate fi privit ca un intranet cartografiat pe Internetul public sau pe o
altă rețea privată.

1.1.4. Internet

Internetul este un sistem de rețea conectat la nivel global, care utilizează protocolul
TCP / IP pentru a transmite date prin diferite tipuri de suporturi media. Internetul este o rețea
de schimburi globale - inclusiv rețele private, publice, de afaceri, academice și
guvernamentale - conectate prin tehnologii ghidate, fără fir și cu fibră optică.

Termenii internet și World Wide Web sunt adesea folosiți interschimbabil, dar nu sunt exact
același lucru; internetul se referă la sistemul global de comunicații, inclusiv hardware și
infrastructură, în timp ce „web” este unul dintre serviciile comunicate pe internet.
Deoarece calculatorul a avansat, comunicarea peer-to-peer (P2P) a fost livrată treptat
și îmbunătățită. Începând cu anii 1990, internetul a influențat și a îmbunătățit în mare măsură
rețelele la standarde globale. Miliarde de utilizatori de internet se bazează pe mai multe
tehnologii de aplicații și rețele, printre care:

7
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

 Internet Protocol (IP): componenta principală a internetului și coloana vertebrală a


comunicațiilor. Deoarece internetul este alcătuit din straturi hardware și software,
standardul de comunicații IP este utilizat pentru a aborda scheme și a identifica
dispozitive conectate unice. Variantele IP proeminente utilizate pentru comunicații
includ Internet Protocol versiunea 4 (IPv4) și Internet Protocol versiunea 6 (IPv6).

 Comunicații: Internetul este metoda cea mai rentabilă de comunicare din lume, în care
sunt disponibile imediat următoarele servicii:
• E-mail
• Servicii de conferințe audio / video conferințe pe internet
• Filme online și jocuri
• Transferul de date / partajarea de fișiere, adesea prin FTP (File
Transfer Protocol)
• Mesagerie instantă
• Forumuri pe internet
• Rețele sociale
• Cumpărături online
• Servicii financiare
• televiziune prin Internet
• operații bancare (Internet banking)

Internetul a provenit de la guvernul S.U.A., care a început să construiască o rețea de


calculatoare în anii 1960, cunoscut sub numele de ARPANET. În 1985, Fundația Națională
de Științe din S.U.A. (NSF) a comandat dezvoltarea unei rețele de rețea universitară
numită NSFNET. Sistemul a fost înlocuit cu rețele noi operate de furnizorii de servicii
comerciale de internet în 1995. Internetul a fost adus la dispoziția publicului la scară mai
largă în jurul acestui moment.
În ziua de astăzi Internetul este susținut și întreținut de o mulțime de firme comerciale.
El se bazează pe specificații tehnice foarte detaliate, ca de exemplu pe așa-numitele
„protocoale de comunicație”, care descriu toate regulile și protocoalele de transmitere a
datelor în această rețea. Protocoalele fundamentale ale Internetului, care asigură
interoperabilitatea între orice două calculatoare sau aparate inteligente care le
implementează, sunt Internet Protocol (IP), Transmission Control Protocol (TCP) și User
Datagram Protocol (UDP). Aceste trei protocoale reprezintă însă doar o parte din nivelul
de bază al sistemului de protocoale Internet, care mai include și protocoale de control si
aplicative, cum ar fi: DNS, HTTP, FTP, SSH, SSL etc.

1.1.5. World Wide Web

8
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

Este important de știut că World Wide Web nu este un sinonim pentru Internet. World
Wide Web, sau doar "Web-ul", este un subset al internetului. Web-ul constă din pagini care
pot fi accesate utilizând un browser web.
Internetul este totalitatea rețelelor interconectate în care se află toate informațiile.
Lucruri precum Telnet, FTP, jocurile pe Internet, Internet Relay Chat (IRC) și e-mail-urile fac
parte din Internet, dar nu fac parte din World Wide Web. Protocolul de transfer de tip
hipertext (HTTP) este metoda utilizată pentru a transfera pagini web pe computer. Cu
hipertext, un cuvânt sau o expresie poate conține un link către alt site Web. Toate paginile
Web sunt scrise în limbajul HTML (HTML), care funcționează împreună cu HTTP.
Tim Berners-Lee este inventatorul Web-ului și directorul W3C, organizația care
supraveghează dezvoltarea sa. Berners-Lee a dezvoltat hipertext, metoda de referință
încrucișată instantanee care susține comunicările de pe Web, facilitând legarea conținutului
de pe o pagină web la un conținut situat în altă parte. Introducerea hipertextului a
revoluționat modul în care oamenii foloseau internetul.
În 1989, Berners-Lee a început să lucreze pe primul server World Wide Web de la CERN.
El a numit serverul "httpd" și a numit primul client "WWW". Inițial, WWW era doar un browser
/ editor de hypertext WYSIWYG care rulează în mediul NeXTStep.
Berners-Lee și echipa sa au realizat primele versiuni pentru patru componente cheie necesare
serviciului web, și anume:

 protocolul de intercomunicație HTTP;


 limbajul de descriere a hipertextului HTML, pentru a putea fi afișat de browser;
 serverul de web;
 browserul;
La baza funcționării webului stau 3 standarde, și anume:
 HTTP - Hypertext Transfer Protocol, stiva de protocoale OSI prin care serverul web și
browserul clientului (utilizatorului) comunică între ele;
 HTTPS - Hypertext Transfer Protocol Secure;
 HTML - Hypertext Markup Language, standard de definire și prezentare a paginilor
web;
 URI - Uniform Resource Identifier, sistem universal de identificare a resurselor din
web, folosit pentru a identifica și regăsi paginile web.
 CSS - Cascading Style Sheets;
 JavaScript;
Programul de navigare (browserul) cheamă pagina folosindu-se de URI și HTTP, o
interpretează conform formatării paginii (hipertext) și o prezintă utilizatorului pe un monitor.
Unul dintre principiile webului este modelul client-server, browserul fiind aplicația client, iar
serverul HTTP (serverul web) fiind aplicația server. Pentru a putea interpreta și reda

9
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

informațiile sub forma hipertextului, browserul apelează la standardul de limbaj HTML, definit
încă de la începutul dezvoltării webului.

1.2. Aplicație web

O aplicație web este un program de calculator care utilizează browsere web și


tehnologie web pentru a efectua sarcini pe Internet .

Aplicațiile Web utilizează o combinație de scripturi de pe server (PHP și ASP) pentru a


face față stocării și preluării informațiilor și script-urilor de pe partea clientului (JavaScript și
HTML) pentru a prezenta informații utilizatorilor. Acest lucru permite utilizatorilor să
interacționeze cu compania utilizând formularele online, sistemele de gestionare a
conținutului, căruțele de cumpărături și multe altele. În plus, aplicațiile permit angajaților să
creeze documente, să împărtășească informații, să colaboreze pe proiecte și să lucreze la
documente comune, indiferent de locație sau dispozitiv.

Aplicațiile Web sunt, de obicei, codate în limbajul acceptat de browser, cum ar fi


JavaScript și HTML, deoarece aceste limbaje sunt înțelese de browser pentru a afișa
programul executabil. Unele dintre aplicații sunt dinamice, necesitând procesarea de la
server. Altele sunt complet statice, fără procesare necesară la server.

Aplicația web necesită un server web pentru a gestiona cererile clientului, un server
de aplicații pentru a efectua sarcinile solicitate și, uneori, o bază de date pentru stocarea
informațiilor. Tehnologia serverului de aplicații variază de la ASP.NET, ASP și ColdFusion, la
PHP și JSP.
Anii 2010 au adus o mult-așteptată extindere a standardului HTML, cu HTML5, care
impune browserelor implementarea internă a multor funcționalități care până atunci fuseseră
apanajul exclusiv al pluginurilor dezvoltate de terți, iar dezvoltarea explozivă a smartphone-
urilor a dus mai întâi la o lipsă de browsere web cu funcționalități similare celor pentru
calculatoare și deci la dezvoltarea de aplicații client dedicate fiecărei aplicații web.

10
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

1.3. Justificarea alegerii temei

Odată cu nevoia crescândă a oamenilor de a accesa Internetul, a apărut si nevoia


conținutului de entertainment-ului. Acest web site se adresează oamenilor care vor să
găsească informații despre trasee montane si care vor sa împărtășească experiențele lor
avute in drumeții montane.

CAPITOLUL 2. Tehnologii utilizate

Tehnologiile folosite pentru aplicații web reprezintă site-uri web dinamice combinate
cu programare pe partea de server, care oferă funcționalități cum ar fi interacțiunea cu
utilizatorii, conectarea la baze de date back-end și generarea de rezultate pentru scripting și
baze de date. Pentru efectuarea site-ului Trasee Montane s-au folosit următoarele tehnologii:

2.1. HTML

11
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

2.1.1. Generalități

HTML = Hyper Text Markup Language este limbajul de bază al World Wide Web-ului și
constă dintr-un set standard de coduri care specifică în ce mod documentele vor fi afișate pe
ecran de către navigatoare sau browsere.
Cea mai importanta caracteristica limbajului este portabilitatea, orice document HTML va
arata identic pe orice tip de calculator cu orice sistem de operare, interpretarea fiind facuta
de diverse navigatoare. Cel mai important element dintr-o pagina web il reprezinta textul.
Limbajul HTML oferă autorilor mijloace pentru:

 publicarea de documente cu headere, texte, tabele, liste,fotografii,


 regăsirea on-line de informaţii prin intermediul hiperlink-urilor accesate printr-un
simplu click de mouse
 proiectarea de formulare pentru realizarea tranzacţiilor cu servere aflate la distanţă,
pentru căutari de informaţie sau pentru activităţi specifice comerţului
 includerea foi de calcul tabelar, clipuri video, sunete şi alte aplicaţii direct în
documente
Browserele Web primesc documente HTML de pe un server web sau de pe un spatiu de
stocare local și fac documentele în pagini web multimedia. HTML descrie structura unei pagini
web semantic și inițial incluse indicii pentru apariția documentului

2.1.2. Noțiuni de bază

Marcarea textului se realizează prin intermediul etichetelor care sunt numite si tag-
uri. Tag-urile reprezinta comenzi ce spun browser-ului cum sa interpreteze textul marcat.
Un tag este un sir de caractere delimitat de paranteze unghiulare „<” si „>” si poate avea
unul sau mai multe atribute care sunt specificate prin perechi de forma nume=„valoare”.
Tag-urile dintre parantezele unghiulare prezinta comenzi catre browser pentru a afisa
paginile intr-un anumit mod si pot fi scrise atat cu litere mari cat si cu litere mici, prin
urmare limbajul HTML nu este „case-sensitive”.

12
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

Orice pagina HTML incepe cu tag-ul <html> si trebuie sa se termine cu elementul </html>.
Aceste fisiere au extensia „.html” sau „.htm” si pot fi editate cu orice editor de texte.

2.1.3. Istoric

Limbajul HTML este un subset al limbajului SGML (Standard Generalized Markup


Language). Limbajul SGML reprezintă un standard internațional pentru definirea unor
metode de reprezentare a textelor in format electronic, independent de dispozitiv si de
sistemul de calcul. Conceptele preluate de SGML au apărut încă de la sfârșitul anilor ’60,
dar standardul a fost publicat abia in 1980, ca o prima prezentare, iar textul final a fost
aprobat si publicat in anul 1986.
Conceptele SGML au fost preluate de Tim Berners-Lee pentru a dezvolta limbajul
HTML, principalul scop fiind acela de a asigura independenta documentelor hipertext fata
de platforma. Nu este de neglijat nici faptul ca standardul SGML era suficient de flexibil
incat sa permita definirea de noi limbaje derivate.
La prima sa implementare, in 1990, limbajul HTML era foarte apropiat de SGML si
includea putine etichete de formatare si cu restrictii in utilizare. Succesul limbajului consta
in posibilitatea de a lega documentele si de celelalte servicii oferite de Internet: FTP,
spatiul Gopher, Network News.
In 1992, echipa condusa de Dan Connoly incepe sa lucreze la HTML 1.0, care dorea sa
remedieze deficientele primei implementari. Peste un an apare HTML 1.0 continand
numeroase etichete noi si, implicit, aducand noi facilitati, dintre care merita amintite:
includerea adreselor, ancorelor, imaginilor in format GIF, a listelor, paragrafelor
preformatate, anteturi.

Un prim pas către interactivitatea cu utilizatorul este făcut prin introducerea


marcajelor pentru definirea formularelor. Acestea permit introducerea de date si

13
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

prelucrarea datelor de catre un script executat de serverul web, prin mecanismul numit
Common Gateway Interface (CGI). Unii autori (vezi modul de citate descris mai sus)
considera ca unele dintre etichetele din HTML 1.0 acorda prea mare control autorului
documentului in privința aspectului final al acestuia.
Tot in HTML 1.0 apar primele etichete care sugerează utilizarea unei secțiuni si nu
modul de afișare a acesteia.
HTML 2.0 apare fără a aduce prea multe noutăți in privința capacitaților limbajului, el
venind sa oficializeze unele concepte deja propuse si implementate, cum ar fi propunerea
de standard HTML+ a lui Dave Raggett. Principalele propuneri ale HTML + vizau extinderea
capacitaților de marcare spre integrarea cu alte medii de comunicare: grafica, fișierele de
sunet, imagini animate.
Odată cu HTML 3.0 isi fac loc in documentele hipermedia si foile de stiluri (CSS), iar
orientarea limbajului se schimba: sunt îndepărtate majoritatea marcajelor orientate
exclusiv catre afisaj si plasarea acestora in foile de stiluri. Din pacate HTML 3.0 a pierdut
cadenta impusa de “razboiul browserelor” purtat de companiile Microsoft si Netscape.
Fiecare dintre cele doua companii introdusese marcaje suplimentare acceptate doar de
propriile aplicatii: Internet Explorer, respectiv Netscape Navigator.
Limpezirea confuziei a venit prin aparitia HTML 3.2, care a introdus in standard o parte
dintre etichetele si conceptele deja prezente in siturile web.
HTML 4.0 apare in 1997 si reia unele dintre conceptele din HTML 3.0 la care se
renuntase in HTML 3.2 si dinamizeaza orientarea predilecta a marcajelor catre definirea
structurii si scopului sectiunilor documentelor web, in dauna marcajelor orientate catre
modul de afisare. Standardul este revizuit in 1999 si este publicat ca HTML 4.01. Cele mai
importante facilitati sunt cele privind foile de stiluri interne, accesibilitatea documentelor
pentru persoanele cu handicap, suport lingvistic si pentru formulele matematice, tratarea
evenimentelor e.t.c
Ultimele tendinte in dezvoltarea limbajului HTML sunt cele de rescriere a acestuia in
termenii limbajului XML – Extensible Markup Language – un limbaj derivat tot din
standardul SGML. Astfel a aparut standardul XHTML 1.0, in ianuarie 2000, XHTML 1.1 in
august 2002, astazi fiind in lucru standardul XHTML 2.0
HTML 5.0 a fost publicat ca proiect schita de catre W3C (World Wide Web Consortium)
in ianuarie 2008, iar din octombrie 2011 este in curs de dezvoltare.
In octombrie 2014 a fost publicat de catre W3C pentru îmbunătățirea limbajului cu suport
pentru cele mai recente multimedia, menținându-l ușor ușor de citit de oameni și înțeles
de computere și dispozitive precum web browsere, parseri, smartphone-uri, tablete etc.
HTML5 este destinat să includă nu numai HTML 4, ci și HTML XHTML 1 și DOM Level 2.
HTML5 include modele detaliate de procesare pentru a încuraja implementările
interoperabile; extinde, îmbunătățește și raționalizează disponibilitățile pentru

14
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

documentele web și introduce marcarea și aplicații API (application programming


interfaces) pentru aplicații web complexe. Din aceleași motive, HTML5 este, de asemenea,
un candidat pentru aplicații mobile pe mai multe platforme, deoarece include funcții
concepute cu dispozitive cu putere redusă.

2.2. CSS

2.2.1. Generalități

Foile de stil pentru documente HTML, denumite CSS (Cascading Style Sheets)
reprezintă un mecanism prin care dezvoltatorul paginilor Web separă elementele de
structura, definite prin tag-uri HTML, de proprietățile si atributele acestora. Toate aceste
atribute definesc stilul paginii Web influențând modul in care sunt reprezentate vizual
elementele HTML. CSS este folosit la îmbunătățirea afișării unei pagini web.
Separarea formatării și a conținutului face posibilă prezentarea aceleiași pagini în diferite
stiluri pentru diferite metode de randare, cum ar fi pe ecran, prin imprimare, prin voce
(prin intermediul browserului bazat pe vorbire sau cititor de ecran) și tactil

2.2.2. Noțiuni de bază

Noile atribute au avut un impact pozitiv asupra imaginii paginii Web, însă din punct de
vedere al dezvoltării, eficienta a scăzut deoarece trebuia definit stilul pentru fiecare
element in parte, chiar daca acesta se repeta. Aceasta problema a fost rezolvata de foile
de stil (style sheet), deoarece permit definirea stilului pentru un tag html o singura data,
iar browser-ul aplica stilul specificat pentru fiecare apariție a elementului html.
Stilurile au fost introduse în versiunea HTML 4.0, unde este permisa definirea stilului intr-
un fișier extern, cu extensia .CSS, fapt ce a asigurat separarea totala intre stil si structura
paginii HTML.
Exista 4 tipuri de stiluri CSS: implicite, externe, interne şi inline, si trebuiesc utilizate in
urmatoarea ordine:

 stilul implicit al navigatorului (browser default);


 foi de stil externe (External style sheets, nume_fisier.*css);
 foile de stil interne ( din interioul elementului head)
 stiluri specificate în marcajul de start al unui element HTML (inline style).

2.2.3. Istoric

15
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

Hakon Wium Lie a lansat primul proiect de "Cascading HTML Style Sheets" în
octombrie 1994. Brent Bos a construit, de asemenea, Argo, un browser care avea foi de
stil care ar putea fi folosite de alte limbaje de marcare.
In august 1996, Microsoft Internet Explorer a devenit primul browser care suporta CSS.
Netscape a urmat exemplul în susținerea CSS si a implementat, o alternativa de foi de stil
– Javascript Style Sheets, care nu au fost niciodată complet finalizate.
CSS1 care a aparut in decembrie 1996 suporta urmatoarele: proprietăți ale fonturilor,
atribute de text, alinierea textului, tabele, imagini și multe altele, culori de text și
fundaluri, spațierea cuvintelor, litere și linii, marginile, umplerea și poziționarea,
identificarea unica si clasificarea grupurilor de atribute.
În mai 1998, W3C a lansat CSS 2, care a adăugat noi capabilități, inclusiv z-index, tipuri de
suporturi media, text bidirecțional, poziționare absolută - relativă și fixă și suport pentru
foi de stil audio.
Odată cu lansarea CSS 3, capabilitățile au fost impartite în module. Între iunie 2011 și iunie
2012, următoarele patru module au fost lansate ca recomandări formale: culoare,
selectori de nivel 3, spații de nume și interogări media.

2.2.4. Bootstrap

Bootstrap este un framework gratuit pentru front-end pentru o mai usoara si mai
repida dezvoltare web. Acesta contine șabloane de design HTML și CSS pentru tipografii,
formulare, butoane, tabele, navigare, modalități, caruseluri de imagine si multe altele,
precum si plugin-uri JavaScript optionale. Boostrap ofera posibilitatea de a crea cu
usurinta design-uri responsive, adica capacitatea de a crea website-uri care se adapteaza
automat pentru a fi afisate corect pe toate dispozitivele, de la telefoane cu display mic
pana la ecrane desktop mari.
A fost creat si dezvoltat in cadrul companiei Twitter la mijlocul anului 2010 de catre Mark
Otto si Jacob Thornton si initial a fost denumit Twitter Blueprint, ca un cadru pentru a
incuraja coerenta intre instrumentele interne.
In august 2011 a fost lansat ca proiect „open-source”, cu contributia mai multor
dezvoltatori de la Twitter in cadrul saptamanii Hack-Week.
La data de 31 ianuarie 2012, a fost lansat Bootstrap 2, care a adăugat un sistem de
structurare a grilei cu răspunsuri în douăsprezece coloane, suport încorporat pentru
Glyphicons, mai multe componente noi, precum și modificări ale multor componente
existente.

16
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

Pe 19 august 2013, a fost lansat Bootstrap 3, care a reproiectat componentele


pentru a utiliza designul plat și o primă abordare mobilă.

2.3. PHP

2.3.1. Noțiuni generale

PHP este un limbaj de scripting pentru server și un instrument puternic pentru crearea
de pagini Web dinamice și interactive. Numele de PHP provine din limba engleza si
reprezinta un acronim recursiv: Php: Hypertext Preprocessor. Anterior a fost cunoscut sub
numele de Personal Home Pages. Se folosește în principal înglobat în codul HTML, dar
începând de la versiunea 4.3.0 se poate folosi și în mod linie de comandă, permițând
crearea de aplicații independente. Este unul din cele mai importante limbaje de
programare web open-source și server-side, existând versiuni disponibile pentru
majoritatea web serverelor și pentru toate sistemele de operare. Codul PHP este executat
in timp real, ceea ce inseamna ca nu exista pasi de compilare lenti – modificarile facute in
cod sunt vizibile instantaneu si aceasta bucla de feedback ii permite PHP-ului sa aiba o
viteza foarte mare.
Limbajele de scripting din partea serverului rulează pe serverul web. Server-side
scripting este folosit pentru operațiuni de baze de date și pentru a genera pagini web

17
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

dinamice. Scripturile de pe server nu sunt vizibile în browsere. Nimeni nu poate vedea


codul sursă al limbajului scriptului serverului.
PHP este un limbaj foarte popular de scripting al serverului. Acesta este utilizat pe
scară largă în dezvoltarea site-ului datorită ușurinței sale de utilizare. Sintaxa PHP este
foarte asemănătoare cu alte limbaje de programare. Se poate folosi conceptul OOPS în
PHP. Ceea mai mare parte a sintaxei este împrumutată din C, Java şi Perl, cu câteva
proprietăți unice PHP-ului.

2.3.2. Istoric

PHP a fost inventat de Rasmus Lerdorf în 1995. Este cunoscut ca tatăl PHP. A început
PHP-ul ca înlocuitor pentru diferite scripturi Perl. El a folosit PHP pentru a-și menține
pagina web personală. PHP își ia cea mai mare parte a sintaxei din C, Java și Perl. PHP a
fost scris în limba de programare C.
Versiuni PHP:

 Prima versiune a PHP a fost FI (FI reprezintă interpretul de formular). A fost


introdus în 1995.
 A doua versiune FI 2 a fost introdusă în 1997.
 Versiunea a treia a fost introdusă în 1998, lansat de catre Zeev Suraski și Andi
Gutmans
 Versiunea a patra a fost introdusă în 2000, care are la bază Zend Engine 1.0
 PHP 5 a fost lansat în iulie 2004
Caracteristici ale PHP 5 sunt:
1. Programare îmbunătățită orientată pe obiecte:
Se pot accesa următoarele funcții OOPS în PHP:

 Constructor
 Interfețe
 Metode finale
 Clase finale
 Metode statice
 Clase abstracte

2. SQLite încorporat: PHP suportă SQLite. SQLite este o bibliotecă de bază de


date încorporată care implementează un subset mare al standardului SQL 92.
Este același ca lucrul cu MYSQL.

18
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

3. Excepție de manipulare utilizând o structură try & catch: PHP 5 suportă un


model de excepție similar cu alte limbaje de programare. O excepție poate fi
aruncată și prinsă în PHP.
4. Suport SOAP integrat: Se pot crea propriile servicii web în PHP folosind SOAP
(Simple Object Access Protocol). Puteți crea atât server SOAP, cât și client
SOAP în PHP.
5. Biblioteca de filtre: Folosind biblioteca de filtre (filter_var) se pot filtra cu
ușurință datele. Nu este nevoie să înțelegeți expresii regulate.
6. Instrumente mai bune XML: Se pot utiliza funcții PHP încorporate pentru XML
(Extensible Markup Language) și JSON (JavaScript Object Notation)
7. Iteratorii (iterația obiectului): Este foarte ușor să se itereze obiecte în PHP,
cum ar fi instrucțiunea foreach.

PHP 6 este in curs de dezvoltare din octombrie 2006, aducand o serie de noutati, cum
ar fi:

 suport Unicode (permite utilizarea mai multor limbi în aplicațiile dvs.)


 eliminarea extensiei ereg, 'register_globals', 'magic_quotes' și 'safe_mode'.
 suport pentru fiecare matrice multi-dim.
 var va fi un alias pentru public, și folosirea lui va ridica o atenționare E_STRICT
 suport pentru int pe 64 biți
 tagurile de tip ASP sunt retrase definitiv
 XMLReader, XMLWriter, Fileinfo vor face parte din distribuția principală
 următoarele pachete au fost scoase din distribuția principală: Freetype1,
GD1, mime_magic
 funcția ereg() nu mai este disponibilă
 instanțierea obiectelor prin referină (& new Obiect()) generează o eroare
E_STRICT.
 erorile tip E_STRICT sunt incluse în E_ALL.
 adăugarea instrucțiunii goto permite salturi la un alt bloc de comenzi.
 namespace, import, și goto devin cuvinte rezervate
 accesarea caracterelor într-un șir (string) se face prin operatorul []. {} se
scoate din uz
 constantele FILE_BINARY și FILE_TEXT devin disponibile pentru folosirea în
funcții de citire/scriere fișiere
 foreach va suporta array multi dimensional
 pentru operatorul ternar expresia pentru valoarea true nu mai este
obligatorie
 opțiunea safe_mode a fost înlăturată
 operatorul and a fost înlăturat.
 funcția microtime() returnează un float.
 zend.ze1_compatibility_mode a fost înlăturat.

19
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

PHP 7 este lansat in decembrie 2005. Fundația PHP 7 este o filială PHP care a fost inițial
denumită PHP next generation (phpng). Acesta a fost scris de Dmitry Stogov, Xinchen
Hui și Nikita Popov și are ca scop optimizarea performanței PHP prin refactorizarea
motorului Zend păstrând în același timp compatibilitatea lingvistică aproape
completă.

3.3.3. Utilizare

PHP este axat în principal pe scripting de partea server-ului, deci puteți realiza cu el
orice poate realiza un alt program CGI, cum ar fi colectarea datelor din forme, generarea
conținutului dinamic al paginilor sau trimiterea și primirea cookies. Dar PHP poate face mult
mai multe.

Sunt trei domenii principale, unde scripturile PHP sunt utilizate.

 Scripting de partea serverului. Acesta este cel mai tradițional și de bază


domeniu al PHP. Aveți nevoie de trei lucruri pentru ca aceasta să
funcționeze. Analizatorul PHP (în calitate de CGI, sau modul pentru server),
un server web și un navigator web. Trebuie să rulați serverul web cu o
instalare PHP conectată la el. Puteți accesa ieșirile programului PHP cu
navigatorul web, vizualizând pagina PHP prin server. Toate acestea pot rula
pe computerul dumneavoastră de acasă, dacă doar experimentați cu
programarea în PHP. Citiți secțiunea cu instrucțiuni de instalare pentru
informații suplimentare.

 Scripting în linia de comandă. Puteți să faceți un script PHP să ruleze fără un


server și navigator web. Aveți nevoie doar de analizatorul PHP pentru a-l
utiliza în acest mod. Acest mod de utilizare este ideal pentru script-uri
executate în mod regulat cu cron (pe *nix sau Linux) sau cu Task Scheduler
(pe Windows). Aceste script-uri pot fi utilizate de asemenea pentru lucrări
simple de procesare a textelor. Citiți secțiunea despre Utilizarea PHP în linia
de comandă pentru informații suplimentare.

 Scrierea aplicațiilor de birou. PHP probabil că nu este cel mai potrivit limbaj
pentru a crea o aplicație de birou cu o interfață grafică a utilizatorului, dar

20
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

dacă cunoașteți PHP foarte bine și doriți să utilizați unele facilități avansate
ale PHP în aplicații de partea clientului, puteți să utilizați PHP-GTK pentru a
scrie asemenea aplicații. De asemenea aveți posibilitatea să scrieți în acest
mod aplicații ce vor rula pe mai multe platforme. PHP-GTK este o extensie a
PHP, care nu este disponibilă în distributivul de bază. Dacă v-a interesat PHP-
GTK, vizitați » propriul său website.

PHP poate fi utilizat pe toate sistemele de operare majore, inclusiv Linux, multe
variante Unix (inclusiv HP-UX, Solaris și OpenBSD), Microsoft Windows, Mac OS X, RISC OS și
probabil altele. PHP de asemenea susține majoritatea server-elor web existente în prezent.
Acestea includ Apache, IIS, și multe altele. De asemenea se includ și serverele ce pot utiliza
binarul PHP FastCGI, cum ar fi lighttpd și nginx. PHP funcționează ca modul sau ca procesor
CGI.
Deci cu PHP avem libertatea alegerii sistemului de operare și a serverului web. Ba chiar
mai mult, avem posibilitatea să utilizam programarea procedurală sau programarea orientată
pe obiecte (POO), sau o combinație a acestora.
Cu PHP nu suntem limitati doar la afișarea HTML. Posibilitățile PHP permit de a afișa
imagini, fișiere PDF și chiar filme Flash (utilizând libswf și Ming) generate "din zbor". Putem
de asemenea cu ușurință să afișam orice text, cum ar fi XHTML sau alt fișier XML. PHP poate
genera automat aceste fișiere și le poate salva în sistemul de fișiere, în loc să le afișeze,
formând astfel un sistem de cache al conținutului dinamic de partea server-ului.

Una dintre cele mai puternice și semnificative facilități ale PHP este susținerea unui
larg domeniu de baze de date. Scrierea unei pagini web ce accesează o bază de date este
incredibl de simplă utilizând una din extensiile de lucru cu baze de date (de ex. pentru mysql),
sau utilizând un nivel de abstractizare precum PDO, sau conectarea la orice bază de date ce
susține standardul "Open Database Connection" cu ajutorul extensiei ODBC. Alte baze de date
pot utiliza cURL sau socket-uri, cum ar fi CouchDB.
PHP de asemenea poate să "converseze" cu alte servicii utilizând protocoale cum ar fi
LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (pe Windows) și multe altele. Puteți de
asemenea să deschideți socket-uri de rețea "crude" și să interacționați utilizând orice alt
protocol. PHP susține WDDX - schimbul de date complexe între aproape toate limbajele de
programare web. Vorbind despre interconectare, PHP susține instanțierea obiectelor Java și
utilizarea lor transparentă ca obiecte PHP.

PHP posedă facilități de procesare a textului foarte utile, care includ expresii regulare
compatibile cu Perl (PCRE) și multe extensii și instrumente pentru accesarea și interpretarea
documentelor XML. PHP standardizează toate extensiile XML pe baza solidă a bibliotecii

21
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

libxml2 și extinde setul de facilități adăugând susținerea SimpleXML, XMLReader și


XMLWriter.
Tipuri de date interne:

 Boolean - valori logice tip adevărat sau fals, similare cu cele din C++ sau Perl.
 Integer - numere întregi (în baza 10, 2 sau 16). Valoarea maximă depinde de
sistem și de tipul de integer. Tipul poate fi "signed" sau "unsigned", adică
dependent de semnul + sau - sau independent de acestea. Valorile pentru
integer unsigned sunt mai mari decât cele pentru signed. Sistemele pe 32 bits
pot crea numere întregi între -2147483648 și 2147483647( 2^31-1 ). Maximul
pentru sisteme pe 64 bits este 9223372036854775807.
 Float - cunoscute ca numere reale. Valorile maxime sunt de asemenea
dependete de platformă, in general cu un maxim de ~1.8e308 cu o precizie
de 14 zecimale după virgulă (formatul 64 bits IEEE).
 String - șiruri de caractere. Înainte de PHP6, un caracter era echivalent cu un
byte. Nu există limitări pentru lungimea unui șir, în afara memoriei alocate
PHP.
 Array - în PHP un array este un tip de dată care conține un grup de elemente.
Fiecare element are un indice intern în group, iar fiecărui indice îi corespunde
o valoare - elementul în sine. Un astfel de grup poate fi folosit ca o simulare
pentru diverse situații matematice precum vectori, serii, dicționare de
elemente, liste ordonate, matrici sau matrici de matrici. Indicii și valorile unui
grup pot fi orice tip de data interna PHP (cu excepții: obiectele, resursele
și null nu pot fi indici).
 Obiecte - O clasă este o colecție de proprietăți și funcții având o logică
comună. Obiectele sunt instanțe ale unei clase, în care proprietățile
obiectului primesc valori specifice. Vezi POO - programarea orientată pe
obiecte.
 Resurse - aceastea sunt variabile speciale care conțin legături cu resurse
externe PHP. De exemplu, conexiunea cu o bază de date este o resursă
deschisă și menținută cu ajutorul unor funcții special definite pentru aceasta
muncă.
 NULL - este un tip special de dată, care semnifică că variabila respectivă nu a
fost definită și că nu are valoare sau valoarea e necunoscută.

Funcții:
PHP are sute de funcții incorporate și alte câteva mii disponibile prin intermediul
extensiilor dar pe parcursul dezvoltarii limbajului acestea au suferit modificari in funcție de
versiune cum ar fi cele prezentate mai jos:
In versiunile 5.2 si anterioare funcțiile nu sunt obiecte de primă clasă. Aceasta
înseamnă că funcțiile nu pot fi create dinamic în timpul executării programului și că pot fi

22
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

chemate doar prin numele dat când au fost definite. Utilizatorul poate crea funcții în orice
moment în program.
In versiunile 5.3 si mai noi PHP are suport pentru funcții de rangul întâi și pentru funcții
anonime, precum cele folosite în Javascript.

The request phase of a POST header

2.4. Javascript

2.4.1 Noțiuni generale

Javascript (JS) este o limbaj de scripting, utilizat în principal pe Web. Acesta


este folosit pentru a îmbunătăți paginile HTML și este în mod obișnuit găsit încorporat în codul
HTML. JavaScript este un limbaj interpretat. Astfel, nu este nevoie să fie compilat. JavaScript
reda paginile web într-un mod interactiv și dinamic. Acest lucru permite paginilor să
reacționeze la evenimente, să expună efecte speciale, să accepte text variabil, să valideze
date, să creeze cookie-uri, să detecteze browser-ul unui utilizator etc.

Paginile HTML sunt bune pentru afișarea conținutului static, de ex. o imagine sau un
text simplu. Cu toate acestea, majoritatea paginilor sunt rareori statice. Multe dintre paginile
de astăzi au meniuri, forme, slideshow-uri și chiar imagini care oferă interacțiunea cu
utilizatorul. Javascript este limbajul folosit de dezvoltatorii web pentru a oferi astfel de
interacțiuni. Deoarece JavaScript funcționează cu pagini HTML, un dezvoltator trebuie să știe

23
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

HTML pentru a valorifica întregul potențial al acestui limbaj de scripting. În timp ce există alte
limbaje care pot fi folosite pentru scripting pe Web, în practică este în esență tot Javascript.

2.4.2. Istoric

JavaScript a fost creat de Brendan Eich, programator la Netscape Communications


Corporation, în septembrie 1995. Lui Eich i-au trebuit numai 10 zile pentru a dezvolta limbajul
de scripting, care a fost atunci cunoscut sub numele de Mocha.
Când a fost livrat pentru prima dată în 1995, a fost făcut pentru Netscape Navigator și a
devenit rapid cunoscut sub numele de LiveScript. Ulterior, numele a fost schimbat în
JavaScript pentru a reflecta suportul Java de la Netscape în browserul său.
În ciuda numelui și a unor similarități în sintaxă, între JavaScript și limbajul Java nu există nicio
legătură. Ca și Java, JavaScript are o sintaxă apropiată de cea a limbajului C, dar are mai multe
în comun cu limbajul Self decât cu Java.
Până la începutul lui 2005, ultima versiune existentă a fost JavaScript 1.5, care
corespunde cu Ediția a 3-a a ECMA-262, ECMAScript, cu alte cuvinte, o ediție standardizată
de JavaScript. Versiunile de Mozilla începând cu 1.8 Beta 1 au avut suport pentru E4X, care
este o extensie a limbajului care are de a face cu XML, definit în standardul ECMA-357.
Versiunea curentă de Mozilla, 1.8.1 (pe care sunt construite Firefox și Thunderbird versiunile
2.0) suportă JavaScript versiunea 1.7.

2.4.3. Funcționalitate

JavaScript oferă capacitatea de a face paginile statice să devină interactive şi mai


prompte faţă de acţiunile utlilizatorilor şi de intrările acestora.
JavaScript pemite utilizatorilor în Web să creeze pagini dinamice, prin înglobarea unui
script în structura HTML existentă. În felul acesta se pot plasa procese în spatele butoanelor,
se pot efectua calcule cu datele introduse prin formulare, sau se poate efectua acţiuni cand
utilizatorul trece cursorul mouse-ului peste un element HTML sau peste un obiect de tipul
Document.
JavaScript oferă avantaje faţă de documentele interactive bazate pe server, deoarece
în general documentele bazate pe JavaScript nu sunt dependente de prelucrarea pe parte de
server, astfel că pot răspunde mai rapid la interacţiunile şi cererile utilizatorului.

24
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

Există două moduri de a utiliza JavaScript într-un fișier HTML. Prima dintre ele implică
încorporarea întregului cod JavaScript în codul HTML, în timp ce a doua metodă utilizează un
fișier JavaScript separat, care este numit dintr-un element Script, adică închis de etichete
Script. Fișierele JavaScript sunt identificate de extensia .js. Deși JavaScript este utilizat în cea
mai mare parte pentru a interacționa cu obiecte HTML, poate fi făcut și pentru a interacționa
cu alte obiecte non-HTML, cum ar fi pluginurile de browser, proprietățile CSS (Cascading Style
Sheets), data curentă sau browserul propriu-zis. Pentru a scrie cod JavaScript, tot ce aveți
nevoie este un editor de text de bază, cum ar fi Notepad în Windows, Gimp în Linux sau
BBEdit. Unii editori de text, precum sintaxa BBEdit care evidențiază JavaScript. Acest lucru
permite să identificam cu ușurință elementele codului JavaScript. Cele mai recente versiuni
de Internet Explorer, Firefox și Opera toate suportă JavaScript.

2.4.4. JQuery

jQuery este o bibliotecă concisă și rapidă JavaScript care poate fi utilizată pentru a
simplifica manipularea evenimentelor, traversarea documentelor HTML, interacțiuni Ajax și
animație pentru dezvoltarea rapidă a site-ului web. jQuery simplifică scripting-ul de pe partea
clientului HTML, simplificând astfel dezvoltarea aplicațiilor Web 2.0
jQuery este o bibliotecă gratuită, „open-source” cu licență duală, sub licența GNU
General Public License. Este considerată una dintre bibliotecile preferate JavaScript (JS)
disponibile astăzi. Începând cu anul 2012, acesta este utilizat de mai mult de jumătate din
site-urile de top ale site-ului Web.

jQuery oferă de asemenea funcționalitate care permite dezvoltatorilor să construiască


pluginuri, în plus față de biblioteca JavaScript. Acest lucru permite dezvoltarea abstractizărilor
pentru animație și interacțiune la nivel scăzut, efecte sofisticate și widget-uri la nivel înalt,
tematice. Mecanismul modular al bibliotecii jQuery facilitează dezvoltarea unor aplicații Web
puternice și puternice și a unor pagini Web.

jQuery include următoarele caracteristici:

 Selecțiile elementului DOM utilizând selectorul de surse cu mai multe versiuni de


browser, Sizzle, un spin-off al proiectului jQuery [15]
 Manipularea DOM bazată pe selectori CSS care utilizează numele și atributele
elementelor, cum ar fi id-ul și clasa, ca criterii pentru selectarea nodurilor în DOM
 Evenimente
 Efecte și animații
 Ajax
 Analiza JSON
 Extensibilitate prin plug-inuri
 Utilitare, cum ar fi detectarea caracteristicilor
25
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

 Metodele de compatibilitate disponibile în browserele moderne,


 Suport pentru mai multe browsere

Figura 1 – JavaScript

2.5. SQL

2.5.1 Noțiuni generale

O bază de date reprezintă o modalitate de stocare a unor informații și date pe un


suport extern (un dispozitiv de stocare), cu posibilitatea extinderii ușoare și a regăsirii rapide
a acestora. De obicei o bază de date este memorată într-unul sau mai multe fișiere. Bazele de
date sunt manipulate cu ajutorul sistemelor de gestiune a bazelor de date. Cel mai răspândit
tip de baze de date este cel relațional, în care datele sunt memorate în tabele. Pe lânga tabele,
o bază de date relațională mai poate conține: indecși, proceduri stocate, declanșatori,
utilizatori și grupuri de utilizatori, tipuri de date, mecanisme de securitate și de gestiune a
tranzacțiilor etc.

26
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

SQL (de la numele englez Structured Query Language) este un limbaj de programare
specific pentru manipularea datelor în sistemele de manipulare a bazelor de date relaționale
(RDBMS), iar la origine este un limbaj bazat pe algebra relațională. Acesta are ca scop
inserarea datelor, interogații, actualizare și ștergere, modificarea și crearea schemelor,
precum și controlul accesului la date. A devenit un standard în domeniu (standardizat ANSI-
ISO), fiind cel mai popular limbaj utilizat pentru crearea, modificarea, regăsirea și manipularea
datelor de către SGBD-urile (Sistemele de Gestiune a Bazelor de Date) relaționale. Pe lângă
versiunile standardizate ale limbajului, există o mulțime de dialecte și variante, unele
proprietare, fiind specifice anumitor SGBD-uri și de asemenea conținând extensii pentru a
suporta SBD-urile (Sistemele de Baze de Date) obiectuale (obiectual-relaționale).

2.5.2. Scurt istoric

SQL a fost inițial dezvoltat la compania IBM de către Donald D. Chamberlin și Raymond
F. Boyce în anul 1974. Inițial numele era SEQUEL (tot de la Structured Query Language) și avea
ca scop manipularea și regăsirea datelor stocate în bazele de date relaționale IBM.
La sfârșitul anilor '70, compania Relational Software, Inc. (în prezent Oracle
Corporation) a văzut potențialul acestor concepte descrise de Codd, Chamberlin și Boyce, și a
dezvoltat propriul SQL RDBMS cu aplicații la U.S. Navy, Central Intelligence Agency și U.S.
government. În iunie 1979, Relational Software a introdus prima implementare comercială
disponibilă de SQL, Oracle.

2.5.3. Elementele limbajului SQL

Principalele elemente ale limbajului SQL folosite in procesul de dezvoltare a unei


aplicații sunt:

 Clauze, care sunt componente ale instrucțiunilor și interogărilor.


 Expresii, al căror efect este producerea de valori scalare sau tabele.
 Predicate, pot specifica condiții care sunt evaluate de SQL conform logicii
ternare sau logicii booleene, în scopul limitării efectelor instrucțiunilor, sau
pentru a influența cursul programului.
 Interogările, au ca scop regăsirea datelor după criterii specifice.
 Instrucțiunile, pot avea un efect persistent asupra datelor sau structurii
datelor, sau pot controla tranzacțiile, conexiunile sau cursul programului. În
general, instrucțiunile SQL se termină cu caracterul punct-virgulă (";"), deși
acest lucru nu este obligatoriu în toate platformele SQL. Spațiile albe
suplimentare sunt ignorate, dar ele pot fi folosite pentru lizibilitatea codului
SQL.

27
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

2.5.4. Funcționalitate

Limbajul SQL pune la dispoziția utilizatorilor urmatoarele categorii de comenzi:

 Comenzi SQL de descriere a datelor, permițând definirea tabelelor reale și


virtuale ale BD, modificarea structurii tabelelor, ștergerea tabelelor și a
indecsilor
 Comenzi SQL de manipulare a datelor, permițând inserarea, ștergerea și
actualizarea de înregistrari
 Comenzi SQL de interogare a datelor, permițând regasirea, selectarea și
afișarea a datelor
 Comenzi SQL de control a datelor, permițând atribuirea și/sau revocarea
dreptului de acces la date

2.5.5. MySQL

MySQL este un sistem de gestiune a bazelor de date relaționale, produs de compania


suedeza MySQL AB și distribuit sub Licența Publică Generală GNU și este cel mai popular SGBD
open-source la ora actuală.
MySQL este un sistem de gestiune a bazelor de date foarte rapid si robust. MySQL este
un server multi-user (suporta mai multi utilizatori) si multi-thread (mai multe fire de executie),
procesul fiind prezentat in imaginea de mai jos.

28
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

Deși este folosit foarte des împreună cu limbajul de programare PHP, cu MySQL se pot
construi aplicații în orice limbaj major. Există multe scheme API disponibile pentru MySQL ce
permit scrierea aplicațiilor în numeroase limbaje de programare pentru accesarea bazelor de
date MySQL, cum ar fi: C, C++, C#, Java, Perl, PHP, Python, FreeBasic, etc., fiecare dintre
acestea folosind un tip specific API. O interfață de tip ODBC denumită MyODBC permite altor
limbaje de programare ce folosesc această interfață, să interacționeze cu bazele de date
MySQL cum ar fi ASP sau Visual Basic. În sprijinul acestor limbaje de programare, unele
companii produc componente de tip COM/COM+ sau .NET (pentru Windows) prin intermediul
cărora respectivele limbaje să poată folosi acest SGBD mult mai ușor decât prin intermediul
sistemului ODBC. Aceste componente pot fi gratuite (ca de exemplu MyVBQL) sau comerciale.
MySQL este componentă integrată a platformelor LAMP sau WAMP (Linux/Windows-
Apache-MySQL-PHP/Perl/Python). Popularitatea sa ca aplicație web este strâns legată de cea
a PHP-ului care este adesea combinat cu MySQL și denumit Duo-ul Dinamic. În multe cărți de
specialitate este precizat faptul ca MySQL este mult mai ușor de invățat și folosit decât multe
din aplicațiile de gestiune a bazelor de date, ca exemplu comanda de ieșire fiind una simplă și
evidentă: „exit” sau „quit”
Pentru a administra bazele de date MySQL se poate folosi modul linie de comandă
sau, prin descărcare de pe internet, o interfață grafică: MySQL Administrator și MySQL Query
Browser. Un alt instrument de management al acestor baze de date este aplicația gratuită,
scrisă în PHP, phpMyAdmin.
MySQL se poate instala odată cu un pachet complet pentru web development (ex.
XAMPP) sau poate fi instalat separat. Ca popularitate în domeniul bazelor de date pentru web,
MySQL se situează pe primul loc în lume (peste 11 milioane de instalări). datorită
performanței deosebite, costului redus (practic inexistent pentru majoritatea instalărilor) și
nu în ultimul rând, a integrării cu platforma PHP. Majoritatea serverelor de hosting web pun
la dispoziție un server MySQL pe lângă suportul pentru limbajul PHP.

29
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

2.6. Server Apache

2.6.1. Noțiuni generale

Apache Web Server este un software open source pentru crearea, implementarea și
gestionarea serverului web. Dezvoltat inițial de un grup de programatori software, este acum
întreținut de Apache Software Foundation.
Apache Web Server este conceput pentru a crea servere web care au capacitatea de
a găzdui unul sau mai multe site-uri Web bazate pe HTTP. Funcțiile notabile ale acestuia includ
capacitatea de a suporta mai multe limbaje de programare, scripting-ul de partea serverului,
un mecanism de autentificare și suport pentru baze de date. Serverul Apache Web poate fi
îmbunătățit prin manipularea bazei de coduri sau adăugarea mai multor extensii / add-ons.

Este, de asemenea, utilizat pe scară largă de companiile de găzduire web în scopul


furnizării de găzduire partajată / virtuală, deoarece, în mod implicit, Apache Web Server
suportă și distinge între diferite gazde care se află pe aceeași mașină. Apache este dezvoltat
de o comunitate deschisă de programatori sub emblema Apache Software Foundation.
Aplicația este disponibilă pentru o mare varietate de sisteme de operare incluzând Unix,
FreeBSD, Linux, Solaris, Novell NetWare, Mac OS X, Microsoft Windows si OS/2.

2.6.2. Scurt istoric

Apache a fost creat de Rob McCool, ce a fost implicat în serverul web NCSA httpd
(Național Center for Supercomputing Applications). Când Rob a plecat de la NCSA, dezvoltarea
lui httpd a stagnat, lasanad o varietate de patches pentru îmbunătățire să circule liber. Un
grup de developeri au adunat aceste patchuri și au scos "A patchy server", ce a devenit mai
târziu serverul web Apache. Rob a fost ajutat de alți developeri în crearea "Apache Group":
Rob McCool, Brian Behlendorf, Roy T. Fielding, Rob Hartill, David Robinson, Cliff Skolnick,
Randy Terbush, Robert S. Thau, Andrew Wilson, Eric Hagberg, Frank Peters, and Nicolas Pioch.
Autorul pretinde că a fost ales un astfel de nume pentru a fii original, dar de fapt cea
mai răspândită informație este că serverul este constituit dintr-o serie de schimbări în cel mai
popular server HTTP din acel timp, NCSA HTTPd 1.3 și este prin urmare "a patchy" server.
Totuși, pe site-ul official al serverului se spune că numele "Apache" a fost ales din respect
pentru tribul American Indian al apache-ilor (Inde'), binecunoscut pentru strategiile
superioare folosite în război. În acel timp Apache era singura alternativă open source viabilă,
la serverul web Netscape (cunoscut actual ca web serverul Sun Java System). De atunci a fost

30
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

dezvoltat și concurează cu servere HTTP din Unix in ceea ce privește funcționalitatea și


performanța. Din aprilie 1996 este cel mai popular server HTTP de pe Internet. Până în
februarie 2006 Apache a fost folosit de 68% din site-urile de web.

2.6.3. XAMPP

XAMPP este un pachet de programe free software, open source și cross-platform web
server, care constă în Apache HTTP Server, MySQL database și interpretoare pentru scripturile
scrise în limbajele de programare PHP și Perl. Acest program este lansat sub termenii licenței
GNU și acționează ca un web server capabil de a servi pagini dinamice. XAMPP este disponibil
pentru Microsoft Windows, Linux, Solaris, și Mac OS X, și este utilizat în principal pentru
dezvoltarea proiectelor web. Acest software este util pentru crearea paginilor dinamice,
utilizând limbaje de programare ca PHP, JSP, Servlets.
Pentru a instala XAMPP, trebuie descărcat kitul de instalare în unul din formatele ZIP,
TAR, 7z sau EXE, fără a fi nevoie de modificarea configurării componentelor instalate. XAMPP
este actualizat cu regularitate pentru toate componentele: Apache/MySQL/PHP și Perl. El
vine, deasemeni, cu alte module, cum ar fi OpenSSL și phpMyAdmin. Instalarea XAMPP ia mult
mai puțin timp decât instalarea fiecărei componente în parte. Pot exista mai multe instanțe
de XAMPP pe un singur computer, și fiecare instanță poate fi copiată pe alt computer.
In mod oficial, designerii XAMPP au avut intenția de a îl utiliza numai ca utilitar de
dezvoltare, pentru a permite designerilor și programatorilor web să își testeze munca pe
calculatoarele proprii, fără a avea nevoie de acces la Internet. Pentru a face posibil acest lucru,
multe caracteristici de securitate importante sunt dezactivate în mod implicit. In practică,
totuși, XAMPP este uneori utilizat pentru a servi pagini web în World Wide Web. Un utilitar
special este asigurat pentru a proteja prin parolă cele mai importante părți ale pachetului.
XAMPP deasemeni asigură suport pentru crearea și manipularea bazelor de date în MySQL și
SQLite între utilizatori beneficii prezentate mai jos

31
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

CAPITOLUL 3. Aplicația Trasee Montane

3.1. Prezentarea aplicației

Aplicația Trasee Montane a fost creata din dorința de a asigura oricărui grup de prieteni
posibilitatea de a supune votului trasee montane adăugate de utilizatori astfel ca orice utilizator
poate propune un traseu iar ceilalți membri înscriși pot vota traseul. Pe lângă o simpla platforma de
vot aplicația poate fi considerata si o sursa de informații utile despre descrierile traseelor cu imagini
reprezentative, descrierile obiectivelor turistice din zonă cu imagini reprezentative, puncte de
interes cu vizualizare pe categorii si chiar detalii tehnice ale traseelor (dificultate, profil, lungime,
urcare totală, coborâre totală, timp dus, timp întors etc.). Aplicația a fost gândita ca un portal cu o
interfața prietenoasa si ușor de folosit. Cu ajutorul acestui website se pot observa statisticile
traseelor si stoca informații utile despre traseele montane. In figura de mai jos este reprezentata
diagrama funcționala a website-ului.

32
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

In dezvoltarea aplicatiei s-a luat in calcul nevoia separarii rolurilor utilizatorilor. Astfel web
site-ul ofera posibilitatea de a inregistra 3 tipuri de utilizatori:
- Administrator, poate face upload de poze in galerie, propune trasee noi,
vizualizeaza rapoarte.
- User Inregistrat, poate face upload de poze in galerie, propune trasee noi, voteaza
trasee existente.
- User ne-inregistrat, poate vizualiza trasee si poate vizualiza poze din galerie.
Pentru o mai buna intelegere a functionarii website-ului s-a realizat o diagrama UML.

33
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

Caz de utilizare Actor Descrierea cazului de


utilizare
Autentificare Administrator, Utilizator  Se autentifică
Înregistrat  Creează cont
 Accesează pagina
principală
Utilizatori Administrator  Adaugă trasee
 Adaugă poze
 Votează
 Rapoarte
Adaugă trasee Administrator, Utilizator  Adaugă trasee
Înregistrat  Editează trasee
 Șterge trasee
Adaugă poze Administrator, Utilizator  Adaugă poze
Înregistrat  Șterge poze
 Vizualizează poze
Vizualizare trasee Administrator, Utilizator  Adaugă programare
Înregistrat, Guest  Vizualizează
programare
Vizualizare poze Administrator, Utilizator  Vizualizează poze
Înregistrat, Guest
Vizualizare poze Administrator, Utilizator  Vizualizează poze
Înregistrat, Guest

34
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

Contul meu Administrator, Utilizator  Delogare


Înregistrat

3.2 Ghidul aplicației

Pentru a vizualiza website-ul un utilizator trebuie sa introduca adresa site-ului intr-un


browser de internet. Pe pagina principala utlizatorul va avea posibilitatea de a continua fara sa fie
inregistrat dar nu va putea propune sau vota trasee, experienta lui fiind limitata doar la vizualizarea
traseelor. Daca utilizatorul doreste sa poata propune trasee el va trebui sa completeze formularul de
inregistrare si sa se autentifice.

Codul sursa pentru a raliza aceasta functionalitate este prezentat mai jos

35
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

Daca utilizatorul a completat formularul de înregistrare sau daca deține un cont înregistrat el va
putea sa se autentifice folosind link-ul „Autentificare”.

36
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

Formularul de autentificare folosește următoarea secvența de cod:

Daca autentificarea se realizeaza cu succes utilizatorul va fi redirectionat catre pagina principala care
contine un meniu in partea superioara a paginii urmat de un element HTML de tipul „slide” care
contine poze din galerie.

Selectarea pozelor ce urmeaza a fi afisate se realizeaza cu urmatoarele linii de cod:

37
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

Urmatoarea sectiune contine destinatiile de top din website si sunt realizate folosind liniile de cod:

38
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

In partea inferioara a paginii se găsește zona cu trasee recent adăugate

Utilizatorul inregistrat are posibilitatea de a vizita pagina de trasee unde poate adauga un
nou traseu sau vizualiza pe cele create anterior de catre alti useri.
Daca utilizatorul doreste sa adauge un nou traseu atunci va trebui sa apese butonul din
coltul stanga sus denumit „Adauga traseu”.

Codul sursa al butonului este:

Butonul are o actiune definita in javascript denumita „gotopg_trasee()” care este


prezentata mai jos:

39
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

Aceasta functie realizeaza redirectionarea catre url-ul „/admin/pg_trasee.php”


Dupa redirectionare utilizatorul va fi intampinat de panoul de control al traseelor.

Componentele panoului sunt:


Un element HTML de tipul input denumit „Titlu Traseu”
Un element HTML de tipul textarea pe baza caruia va fi randat editorul CKEditor cu ajutorul
javascript. Un astfel de editor are la baza elementul HTML textarea mai sus mentionat si se
initializeaza in javascript folosind urmatoarele linii de cod:

Pentru a salva un traseu, utilizatorul va trebui sa completeze campurile „Titlu” si „Text” si


ulterior, daca doreste sa salveze traseul, sa dea click pe butonul „Salveaza” care va introduce
in baza de date toate informatiile legate de traseu. Acest lucru se realizeaza folosind
urmatorul cod:

40
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

In josul paginii se regaseste lista cu traseele existente, utilizatorul avand posibilitatea de a


edita sau sterge traseele.
Pentru a edita un traseu el trebuie mai intai selectat din baza de date folosind ca parametru
identificatorul unic „id”. Mai jos se regaseste o parte din codul care face posibil acest lucru.

41
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

O alta functionalitate oferita de aplicatie este aceea de a sterge un traseu. Acest lucru este
posibil daca utilizatorul da click pe butonul de stergere. Codul sursa al acestei actiuni este
prezentat mai jos.

42
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

Daca utilizatorul doreste sa participe la un traseu el va trebui sa dea click pe link-ul din pagina
principala denumit „Trasee” si sa deruleze lista de trasee. O data ce se hotaraste sa participe
la un anumit traseu el va trebui sa dea click pe butonul „Inscrie-te” corespunzator fiecarui
traseu. Pentru a evita ca acelasi utilizator sa voteze un traseu de mai multe ori aplicatia va
stoca in baza de date o relatie dintre indentificatorul unic al unui utilizator autentificat si
identificatorul unic al unui traseu. Acest lucru este posibil cu urmatoarea secventa de cod:

Pentru a încarcă o poza in galerie este necesar vizitarea paginii de încărcare a pozelor la care
se ajunge din pagina principala accesând meniul „Trasee -> Adauga Traseu -> Pagina Galerie”

43
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

Controlul de HTML de tip input cu atributul „file” face posibila încărcarea unei poze si salvarea
ei in directorul de poze. Codul sursa este prezentat mai jos.

Pentru a nu păstra sesiunea deschisa mai mult decât e nevoie a fost conceput butonul de
„Logout”.

Codul sursa pentru aceasta funcție este:

3.3. Arhitectura aplicației

Pentru ușurarea întreținerii și dezvoltării site-ului fișierele au fost organizate ierarhic pe


directoare care au denumiri ce reflectă funcționalitatea conținutului așa cum se poate vedea
în figura 31.

Structura directoarelor:

44
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

În directorul rădăcină se află majoritatea fișierelor php care conțin funcții, metode sau
configurații care ajută la funcționarea site-ului și sunt prezentate pe scurt în următorul
paragraf:

 inregistrare.php – conține codul html al secțiunii de inregistrare utilizatori


 login.php – in acest fisier se prelucraza datele de logare
 logout.php – conține codul php pentru terminarea sesiunii
 main.php – pagina principala
 index.php – apelează funcția de verificare a sesiunii
 pg_despre.php – conține codul pentru formularul informatii
 pg_galerie.php – fisierul php care adauga poze in galerie
 pg_home.php – conține codul html pentru pagina principala a traseelor
 logout.do.php – apelează funcția de distrugere a sesiunii
 pg_trasee.php – conține codul php pentru adaugare trasee
 uploads.php – codul html de incarcare a pozelor
 ajax.php – conține codul php cu functiile de lucru mysql
 connect.php – conține instructiunile php de conectare la baza de date
 utilizatori.php – conține metodele de administrare a utilizatorilor
 despre.php – continutul HTML a paginii „Despre”
 galerie.php – continutul php al paginii de incarcare poze
 trasee.php – continutul php pentru afisarea traseelor

Directorul “bootstrap” conține trei subdirectoare (css, fonts și js) în care se găsesc fișiere css,
javascript și fonturi care fac parte din libraria bootstrap și care sunt incluse in fișierele php
pentru funcționalitate.
în directorul “css” se află fișiere cu extensia .css care conțin metode pentru stilizarea paginilor.
Directorul “includes” conține urmatoarele fișiere php:

 ajax.php – conține condițiile care sunt apelate la folosirea metodelor de transmitere


de date jquery ajax

45
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

Directorul “js” conține fișiere javascript unde se găsesc funcțiile apelate pentru funcționarea
aplicației. În directorul “vendors” se găsesc alte directoare și fișiere care conțin extensii sau
librării ce ajută la funcționarea aplicației cum ar fi calendarul sau selectarea fontului din
formularul de postare mesaje la avizier.

3.4. Structura bazei de date

Baza de date a acestei aplicații a fost construită cu ajutorul sistemului de gestiune a bazelor
de date MYSQL phpMyAdmin din cadrul pachetului XAMPP care este destinat administrării
bazelor de date prin intermediul unui browser web. Această aplicație constă într-un set de
scripturi PHP grupate, uzual, într-un director cu același nume, care este la rândul sau un
subfolder al folderului care constituie rădăcina sistemului de fișiere și foldere XAMPP. Acesta
oferă unelte pentru administarea completă a structurii și a datelor câteva dintre
caracteristicile acestuia sunt:

 creează și șterge baze de date


 creează, copiază, șterge și modifică tabele
 șterge, editează și adaugă câmpuri
 execută orice fraza SQL, chiar și interogări batch
 încarcă fișiere de tip text in tabele
 creează și citește dump-uri ale tabelelor
 exportă datele în format multiplu (CSV, XML, PDF, OpenDocument, Word, Excel)
 administrează servere multiple
 administrează userii și privilegiile lor
 folosind Query-by-example (QBE), creează interogari complexe conectînd automat
tabelele cerute
 creează grafice PDF
 tabele InnoDB și chei straine
 suportă 54 de limbi straine

Structura bazei de date conține 6 tabele care conțin informații despre utilizatori, poze, trasee,
participanți și destinații din website și care sunt prezentate în subcapitolul 3.4.1.

46
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

Relativ la baza de date aplicatia functioneaza dupa urmatoarele reguli:

 fiecare utilizator isi poate crea un cont


 traseele pot fi adaugate de un administrator sau un user inregistrat
 pozele pot fi adaugate de un administrator sau un user inregistrat
 un utilizator poate sa voteze unul sau mai multe trasee
Pentru o mai buna intelegere a structurii, mai jos, este prezentata schema relationala a bazei
de date.

3.4.1 Prezentarea tabelelor

Tabelul utilizatori.

47
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

Campuri:

 id – cheie primara
 user – numele utilizatorului
 parola – parola utilizatorului
 email – emailul utilizatorului
 tip_access – tipul de acces (integer)

Tabela upload

Campuri:

 id – cheie primara
 fisier – denumirea fisierului
 calea – calea catre fisier
 galerie – tipul galeriei

Tabela trasee_participanti

Campuri:

 idp – cheie primara


 idu – identificator utilizator
 idtraseu – identificator traseu
 datat – data yyyy/mm/dd

48
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

Tabela trasee

Campuri:

 id – cheie primara
 titlu – titlu traseu
 continut – continut HTML traseu
 user – utilizator
 data – data yyyy/mm/dd

Tabela destinatii:

Campuri:

 id – identificator unic
 titlu – titlu destinatie
 continut – continut HTML destinatie
 user – utilizator
 data – data yyyy/mm/dd

Tabela continut_pagini:

Campuri:

49
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID

 id – cheie primara
 nume_pagina – denumire pagina
 continut_text – descriere
 user – utilizator
 data – data yyyy/mm/dd

50

S-ar putea să vă placă și