Documente Academic
Documente Profesional
Documente Cultură
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
Introducere
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.
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 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.
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.
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.
5
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID
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
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
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)
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:
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.
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
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:
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
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
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
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:
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
2.3. PHP
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
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:
Constructor
Interfețe
Metode finale
Clase finale
Metode statice
Clase abstracte
18
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID
PHP 6 este in curs de dezvoltare din octombrie 2006, aducand o serie de noutati, cum
ar fi:
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.
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
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.
2.4. Javascript
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
2.4.3. Funcționalitate
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.
Figura 1 – JavaScript
2.5. SQL
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).
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.
27
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID
2.5.4. Funcționalitate
2.5.5. MySQL
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
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.
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
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
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
34
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID
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
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.
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
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”.
39
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID
40
Universitatea Transilvania Brașov Forma de învățământ
Facultatea de Matematică și Informatică Informatică ID
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”.
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:
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:
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.
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:
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
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:
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