Aplicatie Web Pentru Gestionarea Banilor

UNIVERSITATEA „LUCIAN BLAGA” DIN SIBIU

FACULTATEA DE ȘTIINȚE

Specializarea: Informatică

LUCRARE DE LICENȚĂ

Sibiu

2016

UNIVERSITATEA „LUCIAN BLAGA” DIN SIBIU

FACULTATEA DE ȘTIINȚE

Specializarea: Informatică

Aplicație Web pentru gestionarea banilor

Sibiu

2016

CAPITOLUL 1. INTRODUCERE

Din toate timpurile și până în prezent ființa umană a perceput nevoia să cunoască spațiul care ne înconjoară, și concretizarea gândirii sale într-un limbaj matematic de bază. În momentul în care omul a evoluat, problemele acestuia au devenit mai multe, și mai complexe. Soluția la problemele respective a fost conceperea unei mașini de calcul care pe percursul trecerii timpului a schimbat viața omului radical.

În ultima perioadă resursele domeniului thnologiei software și hardware au avut de suferit o dezvoltare rapidă, astfel se poate oferi o comunicare și un acces mai rapid asupra tuturor categoriilor de informații.

La momentul actual, întâlnim calculatoare și persoane care utilizeaza acesta peste tot, de la cea mai mica interprindere, pâna la firme cu nume semnificative. Peste tot sunt prezente, aproape in orice domeniu de activitate, care conectate fiind între ele constituie rețele de calculatoare. Calculatorul este utilizat atât de mult în prezent deoarece oamenii au observat ca acesta facilitează munca, activitățile și viața prin producerea și apariția lor.

Să ne gândim cât de mult s-a modificat omenire de când au apărut sistemele de calcul. Înaintea înfințării calculatoarelor orice tip de activitate era înregistrată pe foaie de hârtie, sau în cel mai bun caz scrise cu mașina de scris. Cel mai mare inconvenient al acestei metode era faptul că foile scrise se puteau degrada cu trecerea timpului și totodată se puteau rătăci. Odată cu inventarea calculatorului domeniul informatic cât si celelalte domenii a avut o evolutie pozitivă accentuată.

În primul rând, oamenii nu mai trebuia să-și țină evidențele pe foi de hârtie, pentru ca aceștea adaugau datele în mașina de calcul și le salvau pe hard-diskul acestuia, astfel datele erau in siguranță, unde nu se uzau, nu se risipeau și accesul la ele îl putea avea doar persoanele care erau autorizate.

Această lucrare cuprinde în mod detalia atât aspectele teoretice cât și practice ale regimului de concepere și implementare a aplicației web pentru gestinarea banilor. Actuala lucrarea este organizată în 5 capitole, fiecare capitol, conține mai multe subcapitole.

Capitolul 1 – Introducere care reprezintă partea introductivă a lucrării, prezentarea ariei din care face parte proiectul, a temei propriu-zise și organizarea aplicației.

Capitolul 2 – Tehologiile utilizate redă o scurtă introducere despre noțiuniile principale ale Internetului. Sunt decrise explicit noțiuni cu referire la protocolale, Internet, aplicații pentru internet, intrenet și extranet, DNS, pagini web statice și dinamice, servere web și aplicații web, limbaje de markup și scripting, HTML, JavaScript. Limbajul PHP, este prezentat prin descrierea principalelor noțiuni legate de acest limbaj. Descrierea modului de includere a codului PHP în cadrul codului HTML, sunt prezentate tipurile de date pe care acest limbaj le suportă și tipurile de variabile care pot fi utilizate. Noțiunile de bază ale bazelor de date relaționale. Este prezentat modul de utilizare a MySQL, conectarea și deconectarea de la server, crearea și selectarea bazelor de date, crearea tabelelor și introducerea interogărilor.

Capitolul 3 – Specificațiile aplicației prezintă lucrarea. Prezentarea generală a aplicației, interfața cu utilizatorul, și modalitatea de stocare a informațiilor și a datelor.

Capitolul 4 – Implementarea și utilizarea aplicației cu interfața grafică reprezintă descrierea aplicației. Implementarea acestui site a fost realizată folosind limbajul de server side scripting PHP datorită felxibilității acestuia și a faptului că poate fi folosit gratuit, fără restricții. Pentru a creea baza de date am utilizat MySQL, deoarece poate fi folosit gratuit, de asemenea este cel mai adjustat produs pentru accesarea și administrarea bazelor de date .

Interfața grafică este concepută prin intermediul elementelor de HTML, pentru stilul aplicației s-a utilizat un fisie .css și Framwevork-ul Bootstrap. Pentru a alcătui afișarea grafică a datelor s-a folosit tulul Google Chart.

Prin combinarea acestor două produse, PHP și MySQL, aplicația realizată este foarte flexibilă, putându-se adăuga noi funcționalități aplicației.

Capitolul 5 – Concluzii acest capitol prezintă opinia mea personală despre aplicația realizată și posibile dezvoltări ale acesteia.

1.1 Tema proiectului de licentă

Calculatorul in zilele noastre este un echipament tehnic utilizat de catre oameni indiferent de vârsta pe care o au, de la copii până la oameni învârstră. Fiecare dintre noi am observat că acesta ne poate simplifica activitațiile zilnice și să ne ocupă timpul liber. Putem să facem cumpărături, sa vorbim cu cei dragi de la departare și multe alte lucruri.

În prezent nu există unități in care să nu fie cel puțin un calculator deoarece programatorii au creat tot felul de programe speciale și utile diferitelor instituți precum băncile, caseriilor, hotelurilor, magazinelor, toate folosesc calculatoare pentru a-și ține inventarul, trasfer de fișiere și alte activități specifice fiecarei firme.

Aplicația mea este de fapt o aplicație online de management al banilor, unde poate fi monitorizat fluxul monetar din fiecare luna. Fiecare cont de utilizator este împărțit în doua sectțuni – venituri și cheltuieli, unde se adaugă fiecare operațiune. Aceasta se bazeaza pe o interfață familială și ușor de utilizat pentru orice fel de utilizator. Cu ajutorul site-ului respectiv poți sa iți administrezi mai bine și mult mai ușor banii fără prea multă bătaie de cap. Iți porți evidența atât la banii câștigați cât și la cei pe care il chieltuiești. Daca îți faci timp cel putin 5 minute în fiecare zi pentru a adăuga venitul și cheltuiala din ziua curentă, la finalul lunii vei știi clar cât si cum ai chieltuit bugetul din luna respectivă.

Am ales această temă de licență datorită nevoii de a-mi urmări veniturile și cheltuielile zilnice, săptămânale, lunare și chiar anuale. Oricum țineam cât de cât o evidență a baniilor pe diferite hârtii sau agende, dar nu reușeam niciodata să-mi dau seama, trimestrial sau semestrial, cât și pe ce am cheltuit anumite sume de bani. Astfel datorită acestei aplicații la momentul actual am o evidență clară a veniturilor și a cheltuielilor pe care le-am desfășurat din moentul în care am finalizat aplicația și până în prezent.

CAPITOLUL 2. TEHNOLOGII UTILIZATE

Pentru cercetătorul care descoperea libertatea si ușurința utilizării internetului, aceasta înseamănă un vis care nu se mai termină, deoarece prin intermediul internetului putem să facem o mltitudine de lucruri. Prin cuvântul Internet se întelege totalitatea rețelelor de calculatoare care sunt interconectate în toată lumea. Internetul este o imensă rețea de calculatoare, mai exact, o rețea de rețele de calculatoare.

Internetul a avut o dezvoltare foarte accelerată, conform studiilor în anul 1985, erau circa 2000 de calculatoare conectate la Internet, iar în acest momen dăinuie zeci chiar sute de milioane de calculatoare care sunt conectate la Internet. Din ce in ce tot mai multe comunități au parte de noi utilizatori care vor să folosească internetul pentru a poseda documentații noi din diferite domenii.

In România Internetul s-a infiltrate încet în comparație cu alte tări, mai mult timp a fost considerat un lux inutil. Acesta costa foarte mult, iar utilizatorii erau in numar mic. În timp substructura acestuia a avansat semnificativ, însa pentru resursele informatice disponibile evoluția procesează destul de lent. Pentru a realiza ce ne va oferi in viitor rețeaua de Internet, trebuie să cunoaștem și să percepem tipurile de tehnologii inventate de experții care contribuie la dirijarea rețelei și pentru folosirea de catre utilizatori a internetului cât mai ușor și accesibil cu putință.

In dezvoltarea internetului s-au efectuat mari evoluții în aria conferințelor video de la distanțe marii. Un exemplu clar este acela că, există tehnologii care oferă posibilitatea accesării anumitor documente prin calea rețelei. Totodată avem posibilitatea să luăm parte la conferințe audio și să utilizăm o „planșetă” electrică pentru a ne etala prezentările și proiectele, astfel acestea pot fi vizibile de către toți cei care asistă la conferinta respectivă.

Dezvoltatorii de pagini Web nu mai au o limita in ceea ce privește textele și grafica, astfel încât avem siguranța ca prin intermediul Internetului putem găsi și accesa cu o viteză foarte mare o multitudine de lucruri interesante și utile. Datorita evoluției rapide a acestuia, in prezent se poate chiar folosirea distribuirii de programe pe Web.

În prezent nu mai avem restrângere la crearea unui mesaj simplu de tip text deoarece limbajul HTML aprobă formatarea paragrafelor, cu diferite caractere, stiluri și efecte. Mult mai mult avem posibilitatea să adăugăm mesaje de tip e-mail, elemente grafice și multimedia.

În ceea ce privește securitatea, cercetătorii specializați în domeniul Internetului lucrează pentru a proteja cât mai bine comerțul online, punând la dispoziție tot felul de căi de protejare a tranzacțiilor din diferitele domenii. Specialiștii au gasit un mediu care asigură siguranță pentru utilizatorii cu vârstă fragedă care obișnuiesc să utilizeze jocuri pe Web, procurând principii de estimare a paginilor, și garantează rularea în siguranță a aplicaților, acest lucru se întâmplă datorită autentificărilor și securități avansate.

2.1 Pagini Web și Servere Web

Termenul “World Wide Web” care provine din abrevierea www numit mai pe scurt si Web, este multimea tuturor site-urilor sau documentelor care conțin informații, iar acestea sunt de tip hypertext și sunt legate între ele, astfel putând fi accesate prin rețeaua de Internet. Fișierele care se află în diferite locuri si pe variate calculatoare de tip server, pot fi găsite și accesate prin intermediul unui indentificator URL.

Web-ul este construit din pagini cu documentații de pe gazde care rulează software de tipul server Web. Gazda, de numărate ori este confundată cu serverul Web, însă nu este correct deoarece Server-ul Web este de tip software, nu calculatorul propriu zis.

Un Web server este o platformă care procură pagini Web la comandă. Atunci când o persoana de la o adresă IP cere să acceseze un anumit fișier, serverul Web caută să dobândească fișierul respectiv și să îl expedieze înapoi utilizatorului. Acel fișier care se dorește să fie accesat are posibilitatea să fie atât codul sursă HTML al unei pagini Web cât și alte fișiere multimedia. Cel care decide ceea ce este cerut nu este serverul Web ci Browserul Web.

Fiecare server are atribuit un port, deoarece astfel asigură răspunderea acestora numai pentru utilizatorii corespunzători, adica aceia care dețin accesul. Aproape toate serverele folosesc o colectie de porturi predefinite. Serverele Web utilizează în cele mai dese cazuri portul 80, insă acesta poate fi modificat. Porturile in cele mai dese cazuri sunt schimbate pentru a putea fi ascunse sau pentru a putea oferi posibilitatea unui singur calculator sa conțină mai multe servere Web, asociindu-le porturi diferite.

În principiu paginile Web sunt afișate cu ajutorul navigatoarelor, a browsere-lor Web cum ar fi Mozila, Chrome, Opera, Safari, Internet Explore si altele. Acestea sunt memorate pe HDD-ul unui server fiind specializat si administrat de catre un software special.

Paginile Web sunt afișate în navigatorul Web cu ajutorul interpretării unor marcatori, care sunt definiți prin intermediul unui limbaj HyperText Markup Language abreviat HTML. Prin acest limbaj se codifică pagina Web cu informația care trebuie afișată. Marcatori semnifică atât felul în care este organizată pagina cât și legăturile care sunt efectuate între documente, fisiere.

O pagină Web este strâns legată de o multime de fișiere, precum fișiere de tip text, de tip multimedia cât și grafice. Modul de creere a căilor de acces între diferitele documente este numir hypertext. În momentul în care utilizatorul acționeaza cu mouse-ul asupra unui text, imagine sau orice altceva de tip link, browser-ul gasește această legatură și pe urma o afișează. Legăturile de tip text în majoritatea navigatoarelor sunt colorate si afișate diferit față de restul textului. În momentul în care se crează un site Web fișierele pe care le conține sunt menținute, intr-un director sau mai multe directoare care se află in HDD local. Server-ul Web se ocupă cu memorarea, transmiterea și regăsirea paginilor de Web .

Un site poate fi publicat și doar local, astfel directorul și ceea ce conține acesta este transferat la un server Web, acesta conținând un Software special care transmite site-ul navigatoarelor Web, iar calculatoarele trebuie sa fie conectate la Internet. Dupa publicare, site-ul devine din site local in unul Web

2.2 Limbajul HTML

HTML este un limbaj de marcare care contribuie la descrierea documentelor web, paginilor web. Bazele acestui limbaj au fost puse de catre Tim Berners-Lee în 1989, fiind dezvoltat din nevoia de publicare a informațiilor la nivel global. HTML este abreviat de la Hyper Text Markup Language. Acesta se numește limbaj de marcare deoarece este alcătuit dintr-un set de tag-uri markup. Creatorii de pagini Web utilizeaza tag-urile respective pentru a alcătui pagini Web, iar browserele afișează în mod vizibil și clar informațiile respective. Limbajul HTML este utilizat pentru a crea layout-ul paginilor Web cât și a formularelor, însă nu le dă și funcționalitate. Pentru ca acestea sa fie funcționale și utilizate de catre utilizatori, este nevoie de un limbaj mai sofisticat care rulează în browser însă mai mult oferă posibilitatea scrierii codului sub forma de programe mici.

Structura unui document HTML

Documentele HTML trebuie să fie bine structurate pentru a putea fi recunoascute cu ușurință de catre browserele Web. Fiecare cod HTML incepe cu marcajul <html> și se termină cu marcajul </html> iar in interiorul acestor tag-uri se adaugă două secțiuni prima fiind antetul care se marchează prin perechia de taguri <head>…</head> și cuprinde informații legate de pagină și anume titlu, cuvinte cheie pentru browserele Web, formatul fișierului și alte date utile, a doua secțiune cuprinde corpul documentului delimitat prin <body>…</body>, iar in interiorul acestor taguri se află conținutul paginii HTML, ceea ce se vede afișat în fereastra Web.

Tabele în pagini Web

Prin utilizarea tabelelor în paginile Web se poate structura conținutul acestora după diferite criterii și conținutul paginii se organizează în secțiuni rectangular care au proprietăți individuale în ceea ce privește fontul, culorile, alinierea textului și altele.

Machetarea paginiilor este facilitată de către tabele, datele prezentate astfel constituie un avantaj deoarece acestea sunt vizibil mai clare și mai bine structurate.

Conținutul unui tabel in documentul HTML este situate intre tagurile <table>…</table>. Un tabel este construit din linii care sunt delimitate de marcajele <tr>…</tr>, de coloane care utilizează tagurile <td>…</td> și de celule cu semnificație de cap de table definite prin <th>…</th>. Tabelul de asemenea poate să aibă atașat și un titlu care sa fie introdus in interiorul marcajelor <caption>…</caption>.

Câteva proprietăți principale pe care le deține tabelele în HTML sunt urmatoarele: border characteristic a bordurii specificând grosimea chenarului iar valoarea 0 semnificând lipsa chenarului, frame specifică stilul chenarului și se utilizează doar impreuna cu border având diferite valori, rules se referă la felul în care se afișează conturul interior dintre celulele tabelului, width și height definește lățimea și înălțimea tabelului, bgcolor utilizat pentru background-ul tabelului, bordercolor characteristic bordurii.

Crearea Hiperlegăturilor

În principiu Hiperlegăturile sunt utilizate pentru a se putea realiza navigarea între paginile Web sau pentru a executa salturi controlate în interiorul paginii curente. Totodata cu ajutorul Hiperlegaturilor se activează fișiere care sunt executabile si generează pagini Web sau conșinut media. Aceste hiperlegături modifică un text normal in hiper-text care oferă posibilitatea de a trece rapid de la informații aflate pe un anumit server, la o altă informație de pe un alt server.

Hiperlegăturile conțin două etichete care mai poarta numele și se ancore. Prima etichetă considerată punctul de pornire desemnează o zonă activă a paginii în momentul în care se apasă un click de mouse. A doua etichetă fiind eticheta care semnalează o ancoră de destinație. În momentul în care se activează o hiperlegătură această acțiune poate fi definită ca o solicitare a unui server care expediază către calculatorul client un conținut specificat de legătura accesată.

Acesta sunt delimitate prin intermediul etichetelor <a>…</a>. Elementul a dispune de o mulțime de atribute prin care se definește hiperlegătura. O importanță semnificativă o deține atributele id, name și href. Există mai multe tipuri de hiperlegaturi și anume: legătură externă care face legătura către un document extern, legătură internă care conduce la o locație din pagina pe care ne aflăm deja și legatura executabilă care îndrumă la activarea unui fișier care este executabil.

Multimedia în paginile Web

Prin intermediul elementelor de tip multimedia se poate crea o pagină web mult mai atractivă și sugestivă pentru ceea ce reprezintă site-ul. Utilizarea imaginilor, a animaților, sunetelor cât și a videourilor prezintă și dezavantaje cum ar fi încărcarea mai greoaie a paginiii, diferențierea afișării pe diferite browsere web cât și pe diferite calculatoare în funcție de rezoluție.

Imaginile sunt utilizate pentru a ajuta la transmiterea cu ușurință a mesajului pe care dorește pagina respectivă sa îl trimită. Există două tipuri de imagini. Tipul bitmap care are formatul memorat pe bit. Acest tip de imagini sunt imagini memorate ca matrici de puncte. Imagini de acest tip au extensia: gif, jpg, png. Imaginea cu extensia gif nu își pierde calitatea în comparație cu imaginile de tip jpg iar cele cu extensia png nu își pierd calitatea si au in general dimensiuni mari. Tipul vectorial se realizează prin compunere grafică, iar formatul de memorare este vectoria cum ar fi desenarea unui cerc, un segment de dreaptă și alte forme geometrice.

Inserarea imaginilor într-un document HTML se poate face utilizând tagul <img> iar pentru a se indentifica imaginea se atribuie acestui tag atributul src care are ca și valoare calea către imagine. Câteva atribute pe care le poate avea tagul unei imagini sunt urmatoarele: alt caruia i se atribuie un text care este vizibil doar în momentul în care imaginea nu se afișează, border care se utilizează pentru a îi atribui imaginii un chenar, width și height specifică lățimea și înălțimea imaginii.

2.3 CSS Cascading Style Sheets

În prezent pentru a crea un aspect deosebit unei pagini web, au aparut și alte tehnologii, cele mai importante fiind: CSS, prescurtat de la Cascading Style Sheets și ofera posibilitatea scrierii intr-un fișier extern, permitând modificarea cu mai multă ulurință de către programator, DHTML abreviat de la Dynamic HTML și este o îmbinare între HTML, CSS și JavaScript, ajutând la crearea paginilor Web intr-un mod mai deosebit si interactiv, Appleturi Java, Macromedia Flash.

În prezent există patru moduri de a se utiliza stilurile. Stilul se aplică unui marcaj HTML și se utilizează pentru un singur element, de exemplu atunci cand se dorește ca un paragraf să fie diferit din punct de vedere a fontului se utilizează urmatorul cod:

<p style=”font:14px arial”>Paragraf</p>

Acest tip de utilizare a stilurilor este denumit in-line și nu este foarte recomandat. Stilul se poate aplica pentru mai multe elemente dintr-o pagină. Elementele pot fi diferite sau de același fel. Stilul se aplică pentru toată pagina Web Acest cod se introduce în interiorul documentului html, în interiorul etichetei head. Cum ar fi urmatorul exemplu:

<style>

margin-top: 20 px;

margin-left:50 px;

background:#fff;

color:#000;

</style>

Foi de stil care sunt memorate într-un fișier extern, nu în interiorul celui care conține codul HTML. Acestea sunt cele mai avantajoase deoarece codul se poate utiliza și aplica pe mai multe pagini web. Utilizând foile de stil modificările asupra acestora se realizează mult mai ușor fara a fi necesar să se repete codul. Această metodă este eficientă în ceea ce privește site-urile cu multe pagini, atunci când se efectuează o modificare, la salvare acea modificare este reflectată asupra tuturor paginilor.

2.4 Limbajul PHP

PHP abreviat de la Hypertext Preprocessor este un limbaj de server scripting, și un instrument puternic prin intermediul caruia putem crea pagini web dinamice și interactive. Limbajul de programare PHP este utilizat pe o scara larga de catre programatorii Web și este absolut gratuit in comparatie cu concurenți. Codul PHP este inclus in fișierele care conțin cod HTML.

Sintaxa acestui limbaj este preluată din mai multe limbaje cum ar fi C, Java și Perl și este foarte ușor de învățat. Principalul obiectiv al acestuia este acela de a crea simplu si rapid pagini web dinamice, dar nu doar atât. PHP este un limbaj nu foarte complicat și destul de uzual pentru începători. A ajuns foarte repede o cale principală pentru crearea și dezvoltarea paginilor Web.

Între fișierele de tip HTML și cele de PHP există trei deosebiri principale și anume. Pentru început documentele PHP trebuie salvate cu extensia .php, pe când cele de tip HTML se salvează cu extensia .html sau .htm. O altă deosebire este reprezentată de scrierea codului, atunci când începem sa scriem cod PHP este necesar să începem cu etichieta ‘<?php’ și să închieiem cu eticheta ’?>’, iar o diferență majoră este aceea că scripturile PHP rulează doar dacă sunt încărcate pe un server Web.

Noțiuni Fundamentale

Codul PHP poate fi introdus în interiorul codului HTML, necesitând doar delimitarea prin etichetele specificate mai sus.

<html>

<head>

<title>Exemplu</title>

</head>

<body>

<?php

echo " Sunt un script PHP!";

?>

</body>

</html>

PHP și JavaScript se aseamană în ceea ce privește utilizarea însă diferența majoră este aceea că un script în JavaScript poate sa ruleze fara a fi încarcat pe un server. Rezultatul codului de mai sus dupa rurare este ceea ce returneaza constructia de limbaj ‘echo’ și anume “ Sunt un script PHP”, astfel utilizatorul aplicații web nu vede și nu are acces la codul sursă.

PHP-ul conține trei domenii central și anume cel mai comun si cu o importanță deosebită scripturi care rulează pe server, pentru aceasta este necesar sa existe un interpretor PHP adică un CGI sau un modul se server, un server web și un browser. Un alt domeniu este scripting-ul în linia de comandă. Limbajul PHP poate sa ruleze fără un server sau un browser web, prin intermediul unui interpretor de limbaj PHP.

Un alt domeniu și ultimul este scrierea aplicaților grafice. In principiu limbajul PHP nu este cel mai uzual în ceea ce privește scrierea aplicațiilor cu ferestre pentru Sisteme de Operare, însă este un limbaj destul de obișnuit și dacă se deziderează folosirea avansată a limbajului PHP se poate totuși crea astfel de aplicații. Utilizând metoda PHP-GTK care este o extensie a limbajului PHP, avem posibilitatea de a scrie programme care sa ruleze pe platforme diferite.

În principiu, PHP poate sa fie utilizat pe aproximativ toate Sustemele de Operare. Acesta are totodată support pentru aproape toate serverele web existente până în momentul de față. În ceea ce privește PHP-ul fiecare programator are libertatea în a alege un Sistem de Operare si un server web.

În PHP se poate utiliza atat programarea orientată pe obiect cât și simpla programare procedurală. Cu PHP nu este obligatoriu ca rezultatul sa fie scris in cod de tip HTML, deoarece chiar acesta oferă posibilitatea de a afișa diferite lucruri și anume afișarea de imagini, fișiere PDF, și chiar filmulețe Flash, prin utilizarea librariilor libswf și Ming, fiind generate instant. Rezultatului unui script de tip PHP poate și de tip fișier text precum XHTML sau XML, deoarece PHP-ul genereaza aceste fișiere și nu le afișează, deoarece le salvează în sistemul de fișiere, iar pentru conținutul dinamic formează un cache. Acest limbaj de tip scripting dispune de un suport pentru o gamă largă de baze de date., putându-se astfel conecta la orice tip de baze de date.

Limbajul PHP deține suport pentru a comunica și cu alte funcții utilizând protocoale. Totodată se poate deschide socket-uri de rețea asigurând comunicarea între toate limbajele de programare Web. PHP deține support pentru instanțierea obiectelor Java și posibilitatea utilizării lor în mod transparent ca obiecte PHP.

În cele din urmă, dar nu în ultimul rând, PHP are și alte extensii interesante, cum ar fi funcții ale motorului de căutare mnoGoSearch, funcții pentru accesarea IRC-ului, multe utilitare de compresie (gzip, bz2), conversie de calendar, traducere, etc.

Interpretarea unui fișier de catre PHP se realizează trecând prin tot textul fișierului respectiv până când găsește unul dintre tagurile specifice limbajului PHP, iar pe urmă parser-ul execută codul respectiv pană în momentul în care se gasește tagul care specifică închiderea codului PHP, mecanismul acesta înglobează codul PHP în interiorul codului HTML, ceea ce este în afara tag-urilor PHP este neinterpretat iar ceea ce este in interior este recepționat și interpretat ca atare, adică ca și cod PHP.

Avem la dispoziție patru tag-uri care specifică începutul și sfârșitul codului PHP, însă doar doua din cele patru sunt întotdeauna practice și disponibile și anume:

<?php

Porțiune de cod PHP

?>

<script language="php">

Porțiune de cod PHP

</script>

Prima formă <?php. . .?>, este cea mai practică și des întâlnită deoarece codul PHP este utilizat în mod standard XML, XHTML. A doua variant nu este practică în toate cazurile deoarece tag-urile prescurtate sunt utilizate doar în cazul în care au fost activate prin utilizarea funcției short_tags(). Deși aceasta este implicit activată în fișierul php.ini, tot nu este practiv utilizarea tagurilor prescurtate.

Separarea instrucțiunilor

La fel ca și în alte limbaje de programare instrucțiuniile și liniile de cod sunt închieiate cu punct și virgulă.

Exemplu:

<?php

echo "Hello";

?>

Comentarii în php

Trebuie să se știe că și în acest limbaj ca și în altele se poate anula anumite bucăți de cod fară a fi șters și anume pus în comentariu. Coemntariile sunt de doua tipuri, cele liniare care se utilizează pentru anularea unei linii și pentru care se utilizează „//” și comentariu pe mai multe linii fiind delimitat de etichieta de început “/*” și se termină cu eticheta de sfarșit „*/”.

Exemplu:

<?php

echo "Test1"; // Comment pentru o linie

/* coment pentru mai multe linii de cod

echo "Test2";

echo " Test3"; */

?>

Tipuri de date

Diferența dintre limbajul PHP și alte limbaje de programare în ceea ce privește tipurile de date este aceea că acesta este mai simplist și nu trebuie depus mult efort pentru a lucre cu variabilele deoarece este un limbaj "weakly typed"  sau "loosely typed" adică nu este necesar sa se declare tipul de date al variabilei deoarece tipul de date al variabilei este determinat de valoarea pe care o atribui variabilei, fiind posibil si schimbarea tipului de date pe parcursul execuției programului.

În PHP sunt suportate opt tipuri de date, patru dintre ele fiind scalare: integer care reprezintă numerele întregi cu semn, boolean care deține doar doua valori, TRUE și FALSE și nu trebuie introduse între ghilimele, float care simbolizează numerele în virgulă mobilă și ultimul tip fiind string care este un tip de date folosit pentru a reprezenta siruri de caractere.

Două tipuri compuse: array și al doilea tip compus este cel de tip obiect. Pentru a defini un obiect utilizat pentru a afișa un text de procedează în urmatorul mod:

<?php

class Salut {

function ArataSalutul() {

echo 'Hello!';

}

}

$var = new Salut;

echo $a -> ArataSalutul();

?>

Pentru a putea să utilizăm o variabilă de tipul obiect, este obligatoriu sa creăm o instanțiere a acestuia cu ajutorul instructiunii new, sintaxa o avem în exemplul anterior. În php poate să fie convertită în obiect orice variabilă.

De asemenea PHP deține si două tipuri de date special și anume: Variabilele de tip resource care sunt utilizate pentru a deține referinte catre anumite resurse externe. Resursele sunt construite și folosite de funcții specifice. Datorita aspectului special a acestui tip de date, valoarea variabilelor de alt tip nu poate fi transformată la tipul resource. Un alt tip, tot special este valoarea speciala NULL care este atribuită tuturor variabilelor care nu sunt inițializate. Valoarea null este singura valoare pe care o poate deține variabilele de tip NULL. Tipul NULL îl deține o variabila în cazul în care nu a fost initializată, a fost dezinitializată prin intermediul functiei unset (), i s-a atribuit constanta NULL.

În PHP programatorul nu specific tipul variabilei deoarece acesta se decide la rulare în funcție de declarare.

Variabile

O variabilă este o porțiune de memorie, denumită de catre programator în ideea de a fi recunoscută și pentru a putea fi utilizată mai târziu. Este obligatoriu necesar ca unei variabile să i se asocieze și o valoare.

Declararea variabilelor în PHP se realizează prin utilizarea semnului dolar urmat de numele variabilei, numele fiind case-sensitive.

Variabile predefinite

$GLOBALS prin această variabilă se poate accesa variabilele globale pe care le conține scriptul PHP în momentul respective.

$_SERVER contine o serie de variabile care conține valoarea setată automat de catre serverul web pe care se rulează scriptul.

$_GET si $_POST acestea cuprind variabilele recepționate de script pe calea unor transmisiuni care utilizează metodele get și post. Acestea sunt cel mai des utilizate atunci când se dorește să se acceseze datele dintr-un formular.

$_COOKIE această variabilă deține valorile variabilelor care conțin informații cu referire la cookie-urile existente pe calculatorul de pe care se accesează pagina web.

$_FILES deține variabilele accesate de script la momentul încarcării fișierelor prin metoda POST.

$_SESSION această variabilă deține variabilele care le conține sesiunea curentă

Structuri condiționale

Instrucțiunea IF

Instrucțiunea If este folosită în momentul în care în scriptul nostru PHP vrem să ne decidem intr-o anumită situație, instrucțiunii îi setăm o condiție iar daca condiția este adevarată, se execută partea de cod care urmează dupa instrucțiune.

Condițiile trebuie sa fie trecute între paranteze rotunde.

Exemplu:

<?php

$varA = 11;

$varB = 7;

$rezultat = $varA + $varB;

if($rezultat == '18') {

echo 'Rezultatul este cel adevarat';

}

?>

Instrucțiunea ELSE

Instrucțiunea Else se folosește dacă dorim ca în cazul în care instrucțiunea de la If returnează ceva fals, totuși să se execute o acțiune.

Exemplu:

<?php

$varA = 11;

$varB = 7;

$rezultat = $varA + $varB;

if($rezultat == '18') {

echo 'Rezultatul este cel adevarat';

}

else {

echo 'Rezultatul nu este cel din conditie;

}

?>

Instrucțiunea ELSEIF

În ceea ce privește instrucțiunea elseif, aceasta se descrie ca fiind o îmbinare între instrucțiunea if și else, obiectivul acesteia este de a parcurge tot blocul de cod, până în momentul în care se gasește o condiție adevărată.

Exemplu:

<?php

$varA = 11;

$varB = 7;

$rezultat = $varA + $varB;

if($rezultat == '17') {

echo 'Rezultatul este cel adevarat';

}

elseif(($rezultat == '18') {

echo 'Rezultatul nu este egal cu 19;

}

else {

echo 'Rezultatul nu este cel din conditie;

}

?>

Instrucțiunea SWITCH

Acest tip de instrucțiune este întocmai la fel cu instrucțiunea if, doar că aceasta conține mai multe blocuri de condiții, nu doar adevarat și fals, switch-ul poate să ia orice tip de valoare.

Exemplu:

<?php

if(!isset($_GET['pagina'])) $_GET['modulul'] = '';

switch($_GET['modulul']) {

case '':

echo 'Pag index.php';

break;

case 'pag1':

echo 'Pag index.php?modul=pag1';

break;

case 'pagina2':

echo 'Pag index.php?modul=pag2';

break;

}

?>

Bucla WHILE

În PHP și nu doar aici, aproximativ în orice limbaj de programare, instrucțiunii while i se atribuie rolul de cea mai simpla buclă. La fel ca și oricare instrucțiune, aceasta se bazează pe o acțiune, este aproximativ asemenea instrucțiunii if insa spre deosebire de aceasta, în momentul în care se detectează rezultatul adevărat, acel bloc de cod se va executa repetat până în momentul în care condiția este adevarată.

Exemplu:

<?php

$i = 1;

while($i <= 5){

echo $i.'<br>';

$i++;

}

?>

Structura FOR

O buclă mai complex și cu un grad de dificultate mai mare pentru orice limbaj de programare este instrucțiunea for. Aceasta are ca și sintaxă urmatoarea:

for(expresie1; conditie; expresie2)

{

//instructiune }

Semnificația fiind urmatoarea: expresie1 este analizată inaintea execuției și o singură dată pe parcursul întregii operații, condiția este evaluată de fiecare dată când se repetă bucla, iar aceasta se repetă până în momentul în care expresia întoarce rezultatul fals. Expresia a doua se execută la finalul fiecarei parcurgeri a buclei. Instructiunea for este validă și in cazul în care una dintre cele trei expresi lipsește, cea lipsă considerându-se adevarată. Instrucțiunea repetitivă for se aseamană cu bucla while, doar ca este mai complexă.

Exemplu:

<?php

for ($a = 0; $a <= 5; $a++) {

echo $a.'<br>';

}

?>

Structura FOREACH

Structura foreach este utilizată cel mai des pentru a executa o repetare pentru toate componentele unui vector. Principala sa utilizare se efectuează în lucrul cu vectori, dacă nu cel mai posibil o sa producă erori. Pentru această structură se cunoaște două sintaxe:

foreach(expresie_pentru_vectori as $valoare) {

//instructiune

}

foreach(expresie_pentru_vectori as $cheie => $valoare) {

//instructiune

}

Instrucțiunea BREACK

Instrucțiunea breack este utilizată impreună cu bucla while și este folosită pentru ieșirea forțată dintr-un ciclu.

Instrucțiunea CONTINUE

Instrucțiunea continue este utilizată pentru a înceta execuția unei părți dintr-o instrucțiune care se află înăuntrul unui ciclu, trecându-se la următoarea iterație.

Formulare HTML (GET și POST)

Într-o pagină Web formularele sunt utilizate pentru a oferi celui care accesează formularul respectiv diverse răspunsuri. În momentul în care utilizatorul trimite anumite date completate intr-un formular, acestea sunt trimise către un server. Prin aceasta se obține o pagină Web interactivă, deoarece intre utilizator și server se crează o legătură directă. Pagina Web suportă oricâte formulare, făra a impune o limită.

Un formulat se inițializează cu eticheta <form> in interiorul careia avem elementul “action” în care se pune calea către scriptul PHP care preia și prelucrează datele, și „method” în care se află tipul metodei cu care se prelucrează datele formularului. Atunci când un formular este accesta de catre un script PHP, datele formularului sunt trimise în mod automat scriptului PHP. Metodele pot fi de două feluri: POST care acționează în așa fel încât datele care sunt trimise prin formular sa nu fie vizibile userului, sunt trimise în spatele paginii Web, și metoda GET în care datele trimise prin formular sunt afișate în URL.

Câmpurile unui formular formează interfața cu utilizatorul și sunt considerate zone active. Cel mai des câmpurile formularului sunt declarate prin elementul input. Pentru a se stabili tipul de câmp se utilizează elementul type. Atributul type poate să ia următoarele valori: button, checkbox, file, hidden, password, radio, reset, submit, text. Dacă atributul type este absent, atunci câmpul respectiv deține implicit valoarea text.

Atunci când un formular se trimite, serverul recepționează perechi alcătuite din nume care semnifică numele elementului și valoare definind valoarea elementului. Elementul value asociază formularului o valoare inițială care poate fi modificată de catre utilizator.

2.5 Baze De Date

Noțiuni generale

În zilele noastre bazele de date constituie un element considerabil pentru societate. În fiecare zi noi, oamenii interacționăm cu baze de date fară a realize acest lucru spre exemplu atunci cand rezervam online un bilet la diferite spectacole, sau pentru o calatorie cu diferite căi de transport.

Mai detaliat, o bază de date este o mulțime colecționară logică, care oglindește lumea reală și este predestinată diferițiilor utilizatori.

Atunci când creem o bază de date trebuie sa ne gândim că aceasta trebuie sa asigure anumite lucruri cum ar fi în primul rând datele trebuie sa fie abstractizate deoarece aceasta este un model al realități, datele trebuie sa fie integrate pentru că baza de date este o colecție de informații interconectate între ele, totodată datele trebuie sa fie securizate și partajate .

2.6 Limbajul SQL

Limbajul SQL este un limbaj caracteristic pentru bazele de date. Acesta este cel mai cunoscut limbaj pentru a modifica, a crea și a manipula datele de catre Sistemele de Gestiune a Bazelor de Date. Prin intermediul acestui limbaj poți atât să descrii datele cât și să le manipulezi, adică să le interoghiezi care este partea sporită. Limbajul SQL nu este limbaj procedural astfel încat user-ul descrie ceea ce vrea să primească fără a stabili modulalitațile care trebuie respectate pană în momentul în care se ajunge la datele solicitate, comanziile sunt trimise direct SGBD-ului. Despre sintaxa acestui limbaj putem spune ca este alcătuită din comenzi.

Cuvintele cheie și identificatorii

Cuvintele cheie și indentificatorii în SQL sunt identici din punct de vedere lexical, fiind declarate printr-o porțiune de litere și simbolul underline “_”. În ceea ce privește semanticul, cuvintele cheie au declarație fixă. Acest limbaj este „case sensitive” adică nu face diferența dintre literele mici și cele mari. Indentificatorii sunt ilustrați de numele de tabele, coloane și altele iar cuvintele cheie de intrucțiunile predefinite de SQL.

Constantele

În SQL constantele sunt de patru feluri: întregi reprezentate pe 4 octeți, reale reprezentate pe 8 octeți, de tip șir de caractere și nule.

Operatori, expresii și funcții SQL

În ceea ce privește operatorii în SQL aceștia pot fi simbolizați prin caractere special sau prin cuvinte rezervate cum ar fi (AND, OR, NOT, UNION). .
   

Funcțiile SQL

Există patru funcții în SQL, funcții care au rolul de a calcula diverse chestiuni pentru coloanele unui tabel, numindu-se funcții totalizatoare (SUM, AVE, MIN, MAX). Funcții matematice care efectuează diferite operații matematice cum ar fi ridicarea la putere, rotunjiri, calcule trigonometrice, funcții pentru date calendaristice, pentru șiruri și pentru conversii.

Scrierea comenzilor SQL

Scrierea comenzilor in SQL prevede două tipuri, comenzi pentru crearea, ștergerea, modificarea datelor dintr-un tabel și comenzi pentru realizarea diferitelor interogari asupra bazei de date: SELECT, INSERT, UPDATE, DELETE.

În SQL instrucțiunile trebuie să fie alcătuite din cuvinte cheie și indentificatori adică cuvinte declarate de către utilizator. În principiu fiecare instrucțiune trebuie să se termine cu („ ; ”).

În ceea ce privește comenzile pentru definirea datelor, acestea fac parte din componenta DDL a Sistemelor de Gestiune a Bazelor de Date. Comenzile sunt modificate tot de cine efectuează interogarile asupra bazei de date.

2.7 MYSQL

Prezentare generală

MySql este un ansamblu de gestiune a bazelor de date. Acesta, în momentul de față este cel mai raspândit Sistem de Gestiune a Bazelor de Date. Cu MySQL se poate alcătui aplicații pentru orice limbaj de programare. MySQL-ul pune la dispoziție o mulțime de scheme API prin intermediul carora se poate creea aplicații diverse pentru diferite limbaje de programare. Fiecare limbaj de programare folosește API-ul propriu și corespunzător.

MySQL-ul este cel mai ușor de învățat dintre toate SGBD-urile, încă din primele comenzi putem sa realizăm aces lucru deoarece pentru a ieși din baza de date se dă comanda exit” sau „quit”. Acesta poate fi administrat direct din linia de comandă sau mult mai simplu dintr-o interfață grafică, poate fi rulat pe aproape toate tipurile de sisteme de operare. Acest tip de gestiune a bazelor de date a fost creat pentru a fi utilizat in baze de date de marimi mari, facilitând utilizare, devenind mai rapidă.

Caracteristicile de bază ale MySQL

MySQL-ul are câteva caracteristici de baza cum ar fii funcționalitatea pe multiple platforme, are la dispoziție API pentru diverse limbaje de programare, este multi-threaded utilizând thread-uri de tip kernel având posibilitatea de a lucra pe procesoare mai multe în cazul în care se pune la dispoziție, sistemul de alocare a memoriei are la bază thread-uri și de astfel este rapid, utilizează tabele pe termen scurt care sunt stocate în memorie, implementarea funcțiilor SQL se realizează utilizând o bibliotecă optimizată de clase iar alocarea de memorie nu are loc dupa ce au fost inițializate interogările, serverul este utilizat in mediu de rețea deoarece poate fi privit și ca un program separat.

Tipuri de date utilizate de MySQL

În MySQL există diferite tipuri de date, care sunt vizibile in coloanele tabelului. Spațiul alocat pentru fiecare se realizează după tipul de date pe care îl menționează utilizatorul. Tipurile de date pe care le deține MySQL-ul sunt urmatoarele:

Date caracter, acest tip de date cuprinde secvențe de caractere și sunt definite de catre programator. În prezent ASCII este un set utilizat in comun. Formatul care specifică tipul de date caracter este definit de CHAR și VARCHAR. Tipul VARCHAR se aseamană cu tipul TEXT însă in coloana în care se specifică tipul VARCHAR se poate menționa numarul maxim de caractere.

Date bit, acest tip de date se utilizează pentru a defini stringuri de tip bit, adică returnează două valori binare 1 sau 0. Formatul pentru acest tip de date fiind BIT.

Date exacte numerice, utilizate pentru a caracteriza numerele cu reprezentare exactă. Numarul conține obligatoriu cifre, si este opțional sa conțină un punct si un semn opțional.Acest număr conține o precizie care redă numărul total de cifre eliminând punctul si o scală care redă numarul de zecimale. Tipurile exacte de date numerice sunt: NUMERIC, DECIMAL, INTEGER, SMALLINT, BIGINT. Tipuri numerice INT este stocat pe patru octeți și BIGINT care este stocat pe 64 de biți.

Datele aproximativ numerice se utilizează pentru a declara numere de tip real, care conțin atât parte zecimală cât și întreagă. Tipurile aproximative numerice sunt FLOAT, REAL, DOUBLE PRECISION.

Datele de tip dată-timp, sunt întrebuințate pentru a defini timpul precizilor. Acest tip cuprinde datele calendaristice, intervale de timp sau intervale a unei zile. Cuvinte rezervate pentru acest tip sunt: YEAR, MONTH, DAY, HOUR, MINUTE, SECOUND, TIMEZONE_HOUR, TIMEZONE_MINUTE. TIMESTAMP este un tip de câmp care datează în mod automat acțiuniile de INSERT și UPDATE, acesta este în mod implicit din 14 caractere având ca și format 'YYYYMMDDhhmmss', însă în mod neimplict putem inainte de crearea tabelului să setăm modul propriu de afișare, cu un numar de caractere mai puține.

Administrarea bazelor de date MySQL din linia de comandă

În primul rând, pentru lucrul pe un sistem de operare Windows cu acest tip de server instalat fiind este necesară conectarea, insă prima data trebuie sa se lanseze în execuție MySQL-ul din directorul mysql/bin prin urmatoarea comandă:

C:\mysql\bin>mysql.exe

Welcome to MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 3 to server version: 4.0.15-nt

Type ’help;’ or ’\h’ for help.Type ’\c’ to clear the buffer.

mysql>

SQL-ul nu este case sensitive, astfel oferă posibilitatea scrierilor comenzilor atât cu litere mici cât și cu litere mari, iar terminarea acestora se realizează prin caracterul “ ; “.

Comenzi importante care se realizează din linia de comandă: use este utilizat pentru a selecta o bază de date, create database se folosește pentru a crea baza de date, create table dupa cum zice și numele crează un tabel în baza de date, pentru modificarea unui tabel se folosește alter, update utilizat pentru modificarea câmpurilor, show listează tabelele din baza de date curentă, quit intrerupe conexiunea.

Crearea unui tabel

Înainte de a crea un tabel trebuie inițial să se creeze și să se selecteze o bază de date. Intr-o bază de date se poate crea mai multe tabele.

Coloanele unui tabel sunt separate prin virgulă iar dupa numele coloanei se specifică tipul coloanei. Prima coloană este recomandat să o utilizăm pentru ID și să aibă rol de cheie primară ceea ce înseamnă că este o coloană care conține valori unice și se folosesc pentru referință la liniile tabelului. Un tabel din baza de date nu poate să aibă mai multe chei primare.

Pentru a crea un tabel se utilizează urmatoarea comandă SQL:

CREATE TABLE nume_tabel( id INT PRIMARY KEY, coloana1 TEXT, etc);

Ștergerea unui tabel

Prin operația de stergere a unui tabel se întelege eliminarea liniilor din acesta. Pentru a șterge un tabel, se utilizează urmatoarea comandă:

DROP TABLE nume_tabel;

După ce un tabel a fost creat modificările asupra acestuia se pot realiza prin comanda alter tabel. De exemplu pentru a sterge o singura coloană dintr-un tabel se utilizează comanda:

ALTER TABLE nume_tabel DROP coloana1;

Accesul la datele dintr-o bază de date

Comanda SELECT este utilizată doar pentru interogări, neputând să facă modificari asupra datelor. Aceasta poate să folosească toți operatorii algebrici. Această instrucțiune cuprinde obligatoriu elementul cheie FROM.

Comanda de SELECT care este considerată cea mai elementară interogare, face referire la toate liniile și coloanele unui tabel. Această interogare deține următoarea sintaxă:

SELECT * FROM nume_tabel;

Pentru a selecta doar anumite coloane se utilizează următoarea sintaxă :

SELECT coloana1, coloana2 FROM nume_tabel;

Pentru a specifica o anumită condiție în momentul în care se realizează o camandă de SELECT se folosește clauza WHERE care de exemplu pentru a se raporta la o singură coloană se utilizează următoarea sintaxă:

SELECT * FROM coloana1 WHERE 1;

SQL-ul permite modificarea datelor dintr-o bază de date cum ar fi inserarea de rânduri noi în tabel, actualizarea coloanelor și liniilor și stergerea rândurilor. Pentru inserarea unui nou rând se utilizează comanda INSERT care deține următoarea sintaxă:

INSERT INTO nume_tabel VALUES (val1, val2, etc);

Pentru a modifica sau a actualiza un rând sau mai multe se folosește comanda UPDATE care are forma următoare:

UPDATE tabel SET col1=col1, col2=col2 WHERE condiție;

Pentru a sterge date, coloane sau rânduri dintr-un tabel se utilizează comanda DELETE cu sintaxa:

DELETE FROM nume_tabel WHERE condiție;

Câteva clauze importante sunt repreentate de GROUP BY care se numeste interogare grupată, pentru ca aceasta are rolul de a grupa datele din tabele, creând o singură linie pentru un astfel de grup. Clauza SELECT este strâns legată de GROUP BY. Atunci când se utilizează GROUP BY, fiecare element din interogarea SELECT trebuie în mod obligatoriu să dețină valoare unică. Numele de coloane utilizate pentru SELECT trebuie să fie prezente și în GROUP BY, in cazul în care numele este utilizat intr-o funcție complexă atunci, se poate face o excepție.

Clauza HAVING este utilizată în combinație cu clauza GROUP BY pentru a limita grupurile care apar la sfârșitul tabelului care a rezultat după interogare. Deși în ceea ce privește sintaxa HAVING și GROUP BY se aseamănă, acestea au scopuri total diferite. GROUP BY infiltrează linii independente la finalul tabelului care a rezultat, iar HAVING infiltrează grupuri, Clauza HAVING nu este importantă deoarece orice interogare care folosețte această clauza poate să fie scrisă fara ea, având același rezultat.

2.8 Bootstrap

Bootstrap este o colecție gratuită și open-source de instrumente pentru crearea site-uri și aplicații web. Acesta conține HTML- și design template-uri pe bază de CSS pentru tipografie, forme, butoane, navigare și alte componente de interfață, precum și extensii opționale JavaScript. Scopul acestuia este de a ușura dezvoltarea de site-uri dinamice și aplicații web.

Bootstrap este cel mai popular framework gratuit de HTML, CSS, JS pentru dezvoltarea primelor proiecte responsive, mobile pe web. Bootstrap dezvoltă front-end-ul web rapid și mai ușor. Este făcut pentru oameni de toate nivelurile de calificare, dispozitive de toate formele , și proiecte de toate dimensiunile. Cu Bootstrap, se poate obține o documentație vastă și frumoasă pentru elemente HTML comun, deoarece aici se gasesc zeci de coduri HTML personalizate și componente CSS, cât și un minunat plugin-uri jQuery. În prezent sunt milioane de site-uri uimitoare pe web construite cu Bootstrap. Acesta are ca și scop dezvoltarea de site-uri dinamice și aplicații web intr-un mod mai ușor.

Bootstrap, a fot inițial numit Twitter Blueprint fiind dezvoltat de către Mark Otto și Jacob Thornton la Twitter ca un cadru pentru a încuraja consecvența între instrumentele interne. Înainte de Bootstrap, diferite biblioteci au fost utilizate pentru dezvoltarea de interfață, care a condus la neconcordanțe și o povară de întreținere ridicate.

La 31 ianuarie, 2012, a fost înfințat Bootstrap 2. Acest comunicat a adăugat aspectul de douăsprezece coloane grid și componentele de proiectare responsive, precum și modificările la multe dintre componentele deja existente. Dezvoltarea pana la Bootstrap 3 a fost anunțat în 19 august 2013 și are ca și scop trecerea la o primă abordare mobil.

Bootstrap este compatibil cu cele mai recente versiuni ale Google Chrome, Firefox, Internet Explorer, Opera, Safari și browsere, deși unele dintre aceste browsere nu sunt acceptate pe toate platformele.

Începând cu versiunea 2.0 sprijină, de asemenea web design responsive. Acest lucru înseamnă că aspectul de pagini web ajustează dinamic, ținând cont de caracteristicile dispozitivului folosit adică desktop, tablete, telefoane mobile.Începând cu versiunea 3.0, Bootstrap a adoptat o primă filozofie de design de telefonie mobilă, subliniind designul dinamic, în mod implicit.

Bootstrap este modular și constă în principal dintr-o serie de foi de stil care pot fi puse în aplicare în diferite componente ale setului de instrumente. O foaie de stil numită bootstrap.less include componentele foile de stil. Dezvoltatorii pot selectarea componentelor pe care doresc să le folosească în proiectul lor și să aducă proprile modificari asupra acestora.

Ajustările sunt posibile într-o măsură limitată, printr-o foaie de stil de configurare centrale. schimbări mai profunde sunt posibile prin declarațiile mai puțin.

Începând cu versiunea 2.0, configurația Bootstrap are, de asemenea, o opțiune specială "Customize" în documentație. Mai mult decât atât, dezvoltatorul alege pe un formular componentele dorite și ajustează, dacă este necesar, a valorilor de diverse opțiuni pentru nevoile lor. Pachetul generat ulterior include deja foaia de stil CSS pre-construite.

Atunci când dorim sa începe utilizarea Bootstrap pe site-ul propriu se poate utiliza două moduri. Se poate descărca Bootstrap de pe site-ul getbootstrap.com și se urmează instrucțiuniile de acolo sau se include dintr-o CDN. MaxCDN oferă sprijin CDN pentru CSS și JavaScript. De asemenea, includ jQuery.

MaxCDN:

<!— Cele mai recente Css-uri –>
<link rel="stylesheet"href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">

<!— libraria JQuery –>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>

<!— Cele mai recente JavaScripturi –>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>

Folosirea Bootstrap-ului sub forma CDN prezintă avantaje deoarece mulți utilizatori au descărcat deja Bootstrap formă MaxCDN atunci când vizitează un alt site. Ca urmare, acesta va fi încărcat de la cache, atunci când vizitează site-ul, ceea ce duce la timp de încărcare mai rapidă. De asemenea, cele mai multe CDN-uri se va asigura că, odată ce un utilizator cere un fișier de la ea, aceasta va fi difuzat de serverul cel mai apropiat de ei, ceea ce duce, de asemenea, la timp de încărcare mai rapid.

Sistemul Bootstrap grilă

Sistemul grila Bootstrap permite până la 12 coloane pe pagină. Dacă nu se dorește să utilizați toate cele 12 coloană individual, se poate grupa coloanele împreună pentru a crea coloane largi. Sistemul grila Bootstrap este responsive, iar coloanele se va rearanja în mod automat, în funcție de dimensiunea ecranului (Fig. 2.1).

Fig. 2.1 Sistem grilă Bootstrap

Sistemul de rețea Bootstrap are patru clase: xs (pentru telefoane), sm (pentru tablete), hd (pentru desktop-uri), lg (pentru desktop-uri mai mari). Clasele cele mai înalte clase pot fi combinate pentru a crea machete mai dinamice și flexibile. Structura de bază a unui Bootstrap Grid este următoarea: Prima dată se crează un rând (<div class = "row">). Apoi, se adaugă numărul dorit de coloane (tagul .col adecvat – * – * clasei). Numerele care înlocuiesc steluțele din .col – * – * trebuie să fie întotdeauna până la 12 pentru fiecare rând.

Butoane Bootstrap

Bootstrap oferă șapte stiluri de butoane(Fig. 2.2):

Fig. 2.2 Stiluri de butoane

Pentru a realiza stiluri butonul de mai sus, Bootstrap are următoarele clase:

.btn-default

.btn-primar

.btn-succes

.btn-info

.btn de avertizare

.btn-un pericol

.btn-link-ul

Formulare în Bootstrap

Controalele formular cu Bootstrap primesc în mod automat o parte styling la nivel mondial. Toate <input>, <textarea>, și elemente de <select> cu clasa .form de control au o lățime de 100%. Bootstrap oferă trei tipuri de formulare: Formularul vertical care este în mod implicit, formularul orizontală și formularul inline. Regulile standard pentru cele planuri de formulare sunt urmatoarele: Se utilizează întotdeauna tagul <form role="form"> care ajută la îmbunătățirea accesibilității pentru persoanele care folosesc cititoare de ecran, se utilizează clasa .form-group care este necesar pentru spațierea optimă și se adaugă clasa .form-control pentru toate tagurile textuale <input>, <textarea> și <select> .

Formulare de tip Input

Bootstrap acceptă următoarele controale de formă: input, textarea, checkbox, radio, select. Bootstrap suporta toate tipuri de intrare de la HTML5: text, password, datetime, datetime-local, date, month, time, week, number, email, url, search, tel și color. Input-urile NU vor fi pe deplin stilizate dacă tipul lor nu este declarat în mod corespunzător.

Bara de navigare în Bootstrap

Bara de navigare este un antet de navigare, care este plasat în partea de sus a paginii (Fig. 2.3):

Fig. 2.3 Afisare bugetul declarat pe luna curentă

Cu Bootstrap, o bară de navigare poate extinde sau restrânge, în funcție de dimensiunea ecranului. O bară de navigare standard se crează cu tagul <nav class = "navbar navbar-default">. Următorul exemplu arată cum să adăugați o bară de navigare în partea de sus a paginii:

<body>
<nav class="navbarnavbar-default">
  <div class="container-fluid">
    <div class="navbar-header">
      <a class="navbar-brand" href="#">WebSiteName</a>
    </div>
    <ul class="navnavbar-nav">
      <li class="active"><a href="#">Home</a></li>
      <li><a href="#">Page1</a></li>
    </ul>
  </div>
</nav>

2.9 Grafice google

Graficele Google oferă un mod perfect de a vizualiza datele de pe un site. De la diagrame linie simple pana la hărți complexe cum ar fi arborele ierarhic, galeria diagramă oferă un număr mare de tipuri de diagrame.

Cel mai comun mod de a utiliza Grafice Google este cu JavaScript pe care se încorporează în pagina web. Se încarcă unele biblioteci Chart Google, lista datelor care trebuie clasat pe diagramă, se selectează opțiuni pentru a personaliza graficul, și, în final se crează un obiect grafic cu un id. Apoi, se crează, în pagina web, un <div> care conține id-ul pentru a afișa graficul Google.

Diagramele sunt expuse ca și clase JavaScript iar Google oferă multe tipuri de diagrame care pot fi utilizate. Aspectul implicit va fi, de obicei tot ce trebuie, însă se poate personaliza întotdeauna o diagramă pentru a se potrivi cu aspectul site-ului. Diagramele sunt extrem de interactive și expun evenimente care vă permit să le conectați pentru a crea tablouri de bord complexe sau alte experiențe integrate în pagina ta. Diagramele sunt redate folosind tehnologia HTML5 / SVG pentru a oferi compatibilitate cross-browser (inclusiv VML pentru versiunile mai vechi IE) și portabilitate cross platform pentru iPhone, iPad și Android.

Toate tipurile de diagramă sunt populate cu date folosind clasa DataTable, făcându-l ușor de comutat între tipuri de diagrame în timp ce se gasește aspectul ideal. DataTable oferă metode pentru sortarea, modificarea și filtrare a datelor, și poate fi populate direct din pagina de web, o bază de date, sau orice furnizor de date prin protocol Sursa de date. Că protocol include un limbaj de interogare de tip SQL și este implementat de către Google Spreadsheets, Google Fusion Tables și furnizorii de date terți, cum ar fi Salesforce. Puteți implementa chiar și protocolul de pe site-ul propriu și să devină un furnizor de date pentru alte servicii.

Modul de personalizare a diagramelor

Google Instrumente diagramă se poate utiliza cu setarea implicită. Acestea însă pot sa fie personalizate și configurarea de bază este gata-lansare. Cu toate acestea, graficele pot fi ușor de personalizat, în cazul în care un site adoptă un stil care este în contradicție cu valorile implicite furnizate. În fiecare diagramă se expune o serie de opțiuni pentru a personaliza aspectul și designul acesteia.

Diagramele de obicei suportă opțiuni personalizate potrivite pentru vizuaizare. De exemplu, diagrama de tip tabel acceptă o opțiune sortColumn pentru a specifica valoarea implicită de sortare a coloanelor, iar diagrama de tip placinta, cerc acceptă o opțiune de culori care ne permite să specificăm culorile feliilor. Documentație fiecărei diagramă descrie opțiunile pe care le dețin.

Următorul exemplu demonstrează crearea unei opțiuni obiect care specifică toate aceste proprietăți (Fig 2.4):

Fig. 2.4 Diagramă Google Chart

Cod corespunzător acestei diagrame:

var options = {

width: 300,

height: 240,

title: 'Sosuri de pe pizza',

colors: ['#e0440e', '#e6693e', '#ec8f6e', '#f3b49f', '#f6c7b6']

};

chart.draw(data, options);

Crearea unui nou tip de diagrama

Pentru a putea crea un nou tip de diagramă prin interediul Google Chart, trebuie în primul rând să fim familiari cu limbajul JavaScript și programarea orientată pe obiecte.

Diagramele sunt afisate la utilizator prin intermediul unei biblioteci JavaScript care trebuie creată. Pentru a crea o biblioteca care afișează o diagramă trebuie să urmărim următorii pași:

a) Se alege un spațiu în care să se introducă codul, se evită conflictul de nume.

b) Se creează un obiect JavaScript care să conțină următoarele:

Un constructor,

O metodă de drow() pentru a desena obiect în interiorul elementului DOM trecut la constructor,

Orice alte metode standard opționale pentru un client să utilizeze, cum ar fi getSelection()

Orice metode personalizate pe care doriți să le expuneți.

Diagrama poate fi încorporată într-o pagină care găzduiește și alte diagrame sau alte coduri JavaScript fără legătură. Pentru a evita conflicte de numire cu alte nume de cod sau clase CSS, ar trebui să alegeți un spațiu de nume unic pentru codul de diagramă. O alegere bună pentru un spațiu de nume este adresa URL pe care le va folosi pentru a găzdui script-ul (minus WWW si orice extensii). Deci, de exemplu, în cazul în care graficul va fi afișat la www.example.com, v-ar folosi de exemplu, un spațiu de nume unic. Aveți posibilitatea să adăugați sufixe suplimentare, separate prin. mărci, toate diagramele Google au google.visualization spațiu de nume.

În continuare este prezentat un exemplu de a crea un obiect spațiu de nume pentru a organiza o clasă de diagramă numită MyTable, precum și orice alte variabile globale necesare:

// spatiul implementat ca o variabilă globală

var example = {};

// clasa constructor MyTable.

example.MyTable = function(container) {

// …

}

//metoda MyTable.draw()

example.MyTable.prototype.draw = function(data, options) {

// …

}

În cazul în care utilizați CSS, asigurați-vă că nu ați folosit reguli CSS, care pot afecta dagramele de pe pagină. De exemplu, o regulă, cum ar fi td {color: red;} este extrem de descurajat, deoarece aceasta va afecta orice alt <td> element de pe pagină, nu numai în diagramă. O modalitate de a depăși acest lucru este să anexați întreaga diagramă într-un <div> cu un nume de clasă, și toate regulile CSS se aplică numai elementelor care sunt descendenți ai unui element cu acel nume de clasă. De exemplu, următoarea regulă CSS va afecta doar <td> care se află în clasa "exemplu" ca un moștenitor:

td.example {color: blue;}.

Punerea în aplicare a diagramei

Pntru a pune în aplicare diagrama trebuie sa fie tratată ca un obiect JavaScript care expune metodele standard descrise în secțiunea de referință. Cele două metode sunt necesare constructorului și funcției draw(). De asemenea, vă puteți expune orice metodă suplimentară utilizatorul care sunt potrivite pentru diagramă.

Diagrama ar trebui să expună un singur constructor care ia un singur parametru, un element DOM în care se va desena diagrama. De obicei, diagramele stochează o copie locală a acestui element în constructor pentru o utilizare ulterioară:

function example.MyTable(container) {

this.container = container

}

Diagrama conține o metodă o drow()definită în prototipul clasei diagramă. Aceasă metodă acceptă 2 parametrii:

Un DataTable care deține datele pentru afișare.

O hartă opțională a opțiunilor nume / valoare pentru diagramă.

CAPITOLUL 3. SPECIFICAȚIILE APLICAȚIEI

3.1 Prezentare generală

După ce omul a început să devină o ființă economică putem afirma faptul că a luat naștere și nevoia de a calcula și de a ține evidența asupra îndeletnicirii sale economice pe care le desfașoara în principiu la nivel individual.

În zilele noastre, conținutul informațional din lumea înconjurătoare este transformat in semnale digitală, astfel informațiile devin accesibile tuturor persoanelor, aflate oriunde și în orice situatie. Cu ajutorul sistemelor informatice, activitățiile desfașurate de om zi de zi, se imbunatățesc și devin mult mai ușoare.

Deoarece calculatoarele sunt utilizate in aproximativ toate domeniile, acesta a contribuit la dezvoltarea omenirii. Din momentul în care ființa umana a început să folosească calculatorul, și-a dat seama că poate realiza anumite lucruri cu mai multă ușurință.

Să ne gândim puțin la momentul în care dorim să ținem o evidență clară a baniilor care vin și pleacă de la noi din buzunar. Gândiți-vă pe parcursul unui an de câtă cantitate de hârtie avem nevoie iar pentru a pastra informațiile avem nevoie de un extra spațiu de depozitare. Astfel, prin apariția calculatorului și prin intermediul aplicației pe care am realizat-o acest lucru a devenit mult mai simplu și fara prea multe bătăi de cap.

Aplicatie web pentru gestionarea banilor a fost proiectată în vederea utilizării de catre indivizi pentru a putea ține o evidență clara asupra veniturilor și cheltuielilor pe o anumita perioadă de timp. Aplicația este concepută în așa fel încât oricine o poate utiliza, atât persoanele experimentate în ceea ce privește utilizarea calculatorului, cât si persoanele mai puțin experimentate. Aceasta conține doar ferestre, butoane, câmpuri de introducere a datelor, afișare grafică a datelor și tabele, iar utilizarea acestora este foarte simplă. Ștergerea, adăugarea veniturilor și a cheltuielulor, crearea, modificarea conturilor sunt doar câteva dintre utilitățile care se pot gestiona în intermediul aplicației. Aplicația dispune și de o parte în care utilizatorul își poate schimba parola, în cazul în care a uitat-o sau dorește să o schimbe pentru siguranța contului.

3.2 Pagina de acces

Fișierul predefinit pentru directorul control monetar este index.php, ceea ce înseamnă că în momentul în care accesăm serverul prin comanda http://licenta-stoica-petronela.cu.cc/ acesta va trimite fișierul de bază, care înseamnă prima pagină a site-ului gasită sub denumirea index.php și va afișa în browser pagina de înregistrare a utilizatorului. Dacă utilizatorul nu se înregistrează și pe urma se autentifică, acesta nu are acces la site-ul propriu zis (Fig 3.1).

Fig 3.1 Pagină de acces

După cum se vede, prima pagina reprezintă pagina de înregistrare. Paginile sunt create astfel încât să fie ușor de folosit de către orice tip de utilizator. Prin intermediul acestei pagini pot accesa utilizatorii datele personale si informatiile pe care le-a declarat referitor la veniturile și cheltuielile personale.

Design-ul paginii a fost realizat cu ajutorul stilurilor de CSS pentru design-ul general și Bootstrap pentru meniu și formular.

3.3 Stocarea informațiilor

O aplicație online ca și cele web prelucrează diferite tipuri de date cum ar fi: siruri de caractere, valorile numerice, date calendaristice și altele. Exemple concrete pe aplicatia aceasta ar fi: descrierea cheltuielilor și a veniturilor, nume de utilizatori, parole, adrese de e-mail, suma de bani, data declarării activității și așa mai departe. Informațiile care sunt menținute într-o bază de date sunt structurate într-un ansamblu de fișiere.

Pentru a crește nivelul de accesare a informațiilor, fisierele sunt alcătuite din articole care au aceeasi structură. Articolele care dețin structură de fișiere de date se definește încă de la crearea sa prin definirea exactă a câmpurilor pe care le conține fiecare articol în parte.

Fiecare camp din articol conține informații elementare bine definite. Fiecare câmp deține un nume, un tip de informație cum ar fi sir de caractere, număr, dată calendaristică, fisier, conține o lungime de redare a informației iar, în ceea ce privește câmpurilor de tip numeric, trebuie menționat numărul de zecimale. Deoarece structura articolului este fixă, se utilizează pentru fișier o reprezentare sub formă de tabel .

O aplicație care este de tip server în general este vazută ca și un program care asteaptă comenzi din partea unor aplicații de tip client. În ceea ce privește serverele de baze de date relaționale cum ar fi Oracle, MySQL, IBM DB2, Microsoft Access, OpenOffice Base se utilizează limbajul SQL (Structured Query Language).

În stocarea informațiilor introduse în baza de date am folosit phpMyAdmin, care este un sistem pentru a gestiona bazele de date de tipul MySQL folosind o interfață web (Fig. 2). Acesta este scris in limbajul PHP și este specific administrării bazelor de date prin utiizarea unui browser web. Prin intermediul lui phpMyAdmin se pot realiza diverse operațiuni cum ar fi crearea, modificarea sau ștergerea bazelor de date, tabelelor, câmpurilor sau rândurilor; executarea de comenzi interogări SQL.

Fig 3.2 Baza de date

CAPITOLUL 4. IMPLEMENTAREA ȘI UTILIZAREA APLICAȚIEI

4.1 Interfața cu utilizatorul

4.1.1 Înregistrare

În momentul în care aplicația este lansată se produce apariția ferestrei principale a paginii Web, aceasta se ocupă de înregistrarea utilizatorilor care doresc să folosească acestă aplicație. (Fig. 4.1)

Fig. 4.1 Pagina principală

Aplicația poate fi utilizată de orice fel de utilizator, în principiu de cei care sunt interesati de ținerea unei evidențe clare a veniturilor și a cheltuielilor dintr-o luna, zi, saptămână sau chiar an, fiecare având privilegii unice.

Dacă atunci cand utilizatorul dorește sa se înregistreze nu completeaza atât căsuța de e-mail cât și cea de parola, la apăsarea butonului Trimite, acesta va fi redirecționat pe o pagină în care o sa primească un mesaj de avertizare și un link pentru a se întoarce la pagina de înregistrare. (Fig. 4.2)

Fig. 4.2 Eroare câmp necompletat

Adresa de e-mail întotdeauna trebuie să fie de forma: ex: [anonimizat] . În caz contrar, apare următorul mesaj: (Fig. 4.3)

Fig. 4.3 Eroare adresa e-mail incorectă

În momentul în care exista deja un cont creat cu un e-mail, iar utilizatorul dorește să iși mai creeze unul utilizând acelasi e-mail, acesta v-a fi redirecționat pe o pagina unde i se va afișa urmatorul mesaj: (Fig. 4.4)

Fig. 4.4 Utilizator existent

Codul de verificare a numelui de utilizator este :

$verificare_utilizator = 'SELECT * FROM users WHERE Email = "'. $_POST["user"].'"';

$rs = mysqli_query($connect_db,$verificare_utilizator);

$data = mysqli_fetch_array($rs, MYSQLI_NUM);

if($data[0] > 1) {

echo 'Utilizator existent';

echo '<h3> Mai incearca <a href="http://licenta-stoica petronela.cu.cc/"> AICI </a></h3>';

} else {

echo ' <h1>Va multumim. </h1>

<p> Datele au fost introduse cu succes in baza de date. </p>

<h3> Pentru a va autentifica apasati <a href="http://licenta-stoica-petronela.cu.cc//"> AICI</a></h3>';

Dacă datele introduse sunt corecte, utilizatorul o sa fie transferat pe o pagină în care o sa primească un mesaj (Fig. 4.5) și totodata primește și o confirmare prin e-mail: (Fig. 4.6)

Fig.4.5 Înregistrare cu succes

Fig. 4.6 Mail trimis înregistrare cu succes

Codul corespunzător trimiterii e-mail-ului automat dupa intregistrare este urmatorul:

$_SESSION['user'] = '';

$_SESSION['parola'] = '';

$headers = "MIME-Version: 1.0" . "\r\n";

$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; $headers .= 'From: <[anonimizat]>' . "\r\n";

$to_anunt = $_POST['user']; // emailul utilizatorului

$subject_anunt = 'Inregistrare';

$msg_mail = '<h2> Felicitari pentu inregistrarea dumneavoastra </h2>';

$msg_mail .= 'Numele utilizatorului este mailul , in caz ca v-ati uitat parola, urmati linkul de mai jos<br>';

$msg_mail.='<ahref="http://licenta-stoica- petronela.cu.cc/_page_forgot_pass.php"> Uitat Parol a</a>';

$msg_mail = wordwrap($msg_mail,200);

mail($to_anunt, $subject_anunt, $msg_mail, $headers );

4.1.2 Recuperare parolă

Recuperarea parolei se face pe baza e-mail-ului, pagina de recuperare a parolei poate fi accesată fie din e-mail-ul pe care l-a primit utilizatorul în momentul în care s-a înregistrat, fie din meniul primei parți a site-ului (Fig. 4.7):

Fig. 4.7 Pagină recuperare parolă

În momentul în care nu s-a introdus nici o adresă de e-mail, utilizatorul o să primească următorul mesaj: “Introduceti e-mail-ul utilizatorului”.

Dacă adresa de e-mail este corectă, apasând butonul Trimite parola noua se crează o parolă nouă, care va fi trimisă prin e-mail pe adresa de e-mail a utilizatorului respectiv. Parola nouă se generalizează random. Funcția care crează parola este:

$salt= '459++u11|g;FY9vq{s10;DO*cd!7PXqM^5EgV1R8h9+:1hHt?;67XZFong_N=Ue';

$pepper='~~^j0L{t7QGqYX4*^NK$R2f8L4w|6~Kx-aMkm-K5n#=wksepF5t;W(V-`IP+DUN';

function randomPassword() {

$alphabet='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSUVWXYZ1234567890';

$pass = array();

$alphaLength = strlen($alphabet) – 1;

for ($i = 0; $i < 8; $i++) {

$n = rand(0, $alphaLength);

$pass[] = $alphabet[$n];

}

return implode($pass);

}

$real_random_pass = randomPassword();

$password = $salt.$real_random_pass.$pepper;

$pass_hash = hash('sha512', $password);

Dacă utilizatorul dorește să personalizeze parola random primită prin e-mail acesta are posibilitatea sa faca acest lucru accesând pagina de setări din site, acolo introduce parola dorită și apasă butonul schimbă.

4.1.3 Autentificare

Pentru a se autentifica fiecare utilizator trebuie să introducă adresa de e-mail si parola pe care le-a utilizat în momentul în care s-a înregistrat după care apasă butonul sau tasta ENTER de pe tastatură. În momentul în care utilizatorul face un singur click pe butonul de AUTENTIFICARE , în spatele acestuia se întâmplă anumite lucruri care nu sunt vizibile utilizatorului. cum ar fi:

– un prim lucru, care se petrece în moemntul în care utilizatorul iși pune informațiile necesare autentificării (e-mail, parolă) și apasă tasta ENTER sau butonul de AUTENTIFICARE, este să se verifice dacă datele introdu-se sunt corecte sau nu. Acesta se întâmplă prin interogarea bazei de date, prin intermediul căruia se face verificarea existenței utilizatorului cu e-mail-ul si parola identică cu cele introduse. Codul corespunzător acestei interogări este:

if(($_POST['user'] == '') || ($_POST['parola'] == '')) {

echo '<h1 style="color:#F00">Completeaza casutele.</h1>

<h3>Inapoi<ahref="http://licenta-stoica-petronela.cu.cc/_page_log.php">Log In</a></h3>';

} else {

$selectare_users = "SELECT Email FROM users WHERE Email ='".htmlentities($_POST['user'])."' AND Password='".$pass_hash."';";

$rezultat = $connect_db->query($selectare_users);

$numar = mysqli_num_rows($rezultat);

if( $numar == 1 ){

while($rand = mysqli_fetch_array($rezultat)) {

$_SESSION['logat'] = TRUE;

echo'<META HTTP-EQUIV=Refresh CONTENT="0; URL=fisiere/home_index.php">';

}

} else {

echo '<h1 style="color:#F00">Date incorecte. </h1>

<h3>Inapoi<ahref="http://licenta-stoica petronela.cu.cc/_page_log.php"> Log-In</a> </h3>';

}

Dacă în momentul verificării nu s-a găsit nici o corespondență cu cele introduse o se afișează următorul mesaj: „Date incorecte.”. În caz afirmativ utilizatorul o să fie redirecționat pe prima pagină a site-ului propriu zis.

Fig. 4.8 Pagină autentificare

4.1.4 Utilizator valid

După ce autentificarea a reușit apare pagina cu meniul aplicației. Prima pagină este împărțită în trei secțiuni. Prima secțiune se referă la meniul principal al aplicației care conține paginile Acasa, Buget, Raport, Setari Cont, E-mail-ul utilizatorului logat și o secțiune pentru deconectare (Fig. 4.9).

Fig. 4.9 Meniu principal

A doua secțiune conține un panou stânga care se repetă pe fiecare pagină accesată din meniul principal, excepție făcând secțiunea Setări cont. Această parte a paginii este in fapt un formular în care se introduce tipul de activitate cheltuială sau venit, data corespunzătoare activității, eticheta care se referă la ceea ce reprezintă chltuiala sau venitul declarat mai sus, suma de banii corespunzătoare, iar în final este o secțiune obtională în care se poate adauga o descriere detaliată pentru activitatea declarată mai sus (Fig. 4.10).

Fig. 4.10 Panou stânga

. Codul corespunzător acestei acțiuni este:

if(isset($_POST['submit'])) {

$tip_adagugare = $_POST['tip_adaugare'];

$data_introducerii = $_POST['data_introducerii'];

$eticheta = $_POST['eticheta'];

$suma = $_POST['suma'];

$descriere = $_POST['descriere'];

$mega_user = $_SESSION['user'];

// Inserare in baza de date – informatii

$adaugare_bani = "INSERT INTO conturi (

tip,

data,

suma,

etichete,

descriere,

username

) VALUES (

'".$tip_adagugare."',

'".$data_introducerii."',

'".$suma."',

'".$eticheta."',

'".$descriere."',

'".$mega_user."'

)";

$inserare = $connect_db->query($adaugare_bani);

// Daca introduce sa ne arata ceva

if( $inserare ){

echo '<b style="color:#000">Actiunea a fost adaugata cu succes.</b>';

} else {

echo "<b style='color:#F00'>ERROR</b>: Could not able to execute $sql. " . mysqli_error($connect_db);

}

};?>

În momentul în care se apasă pe butonul Trimite datele introduse în acest formular sunt adăugate în baza de date care este numită ”conturi” iar pe urmă afișate în pagina Acasa sub formă de tabel (Fig. 4.11).

Fig. 4.11 Tabel baza de date cheltuială/venit

Tabelul este creat cu DataTables care este un plug-in pentru biblioteca jQuery Javascript . Este un instrument extrem de flexibil , bazat pe fundamentele accesoriu progresive , și se va adăuga controale avansate de interacțiune la orice tabel HTML cum ar fi casuța de cautare sau sortare dupa fiecare criteriu pe coloană a tabelului. Datele din tabel pot fi atât modificate cât și șterse. În momentul în care s-a introdus o acțiune cu informații greșite în tabel, acesta poate fi modificată apasând pe butonul Edit din partea dreaptă a tabelului. După apăsarea acestui utilizatorul este trimis pe o altă pagină în care se pot face modificările dorite, iar pe urmă se apasă pe butonul pe care scrie Update ( Fig. 4.12).

Fig. 4.12 Pagină editare date tabel

Totodată tabelul deține și acțiunea de ștergere a informației introdusă în tabel, în cazul în care acesta a fost introdusă în mod eronat. Această afișare a bazei de date sub formă de tabel face parte din secțiunea a treia a paginii Acasa, care la rândul ei mai conține și alte funcționalități. O altă funcționalitate pe care o deține este afișarea bugetului declarat în luna respectivă și afișarea lunii curente (Fig. 6.4 ).

Fig. 4.13 Afisare bugetul declarat pe luna curentă

În momentul declarării cheltuielilor bugetul scade, astfel pentru ca acest lucru să fie monitorizat frecvent se face o afișare separată în care suntem anuntați cât am economisit, sau cu câti bani suntem pe minus în luna curentă (Fig. 4.14).

Fig. 4.16 Monitorizare buget luna curentă

4.1.5 Buget

În continuare la meniu după butonul Acasa care conține pagina principală, cea prezentată mai sus apare butonul Buget. În acestă secțiune se gasește un grafic cu fluctuațiile banilor dealungul luniilor, din momentul în care s-a înregistrat utilizatorul până în prezent (Fig. 4.17). Această diagramă a fost realizată prin intermediu Google Charts Tools. Instrumentele Google pentru diagrame sunt puternice, ușor de utilizat, și gratuit.

Fig. 4.17 Fluctuatiile banilor dealungul luniilor

4.1.6 Raport

După butonul Buget, apare un buton numit Raport. La accesarea acestuia apare o pagină în care pe langă formularul principal din partea stângă conține 3 secțiuni. Prima parte este cea în care se gasește un raport pentru activitatea persoanei logate, din momentul în care s-a înregistrat până în prezent. Astfel de aici persoana respectivă pote să vadă suma baniilor pe care i-a avut, i-a cheltuit si cei pe care încă îi mai deține (Fig 4.18).

Fig. 4.18 Raport bani declarați și chetuiți

Codul corespunzător acestei secțiuni este următorul:

<?php

$selectie_suma = "SELECT tip, suma FROM conturi WHERE username='".$_SESSION['user']."';";

$rezultat = $connect_db->query($selectie_suma);

echo '

<table class="table table-bordered">

<caption>Luna :' . date("M") .' – '.date("Y-m-d").'</caption>

<tr>

<th>Venit</th>

<th>Cheltuieli </th>

<th>Total</th>

</tr>';

$var1 = 0;

$var2 = 0;

// afiseaza rezultatul pe ecran

while($row = mysqli_fetch_array($rezultat)){

if( $row['tip'] == "Venituri" ){

$var1 += $row['suma'];

} else {

$var2 += $row['suma'];

}

}

echo '<td style="color:#0F0">'.$var1.'</td>';

echo '<td style="color:#F00">-'.$var2.'</td>';

if( ($var1-$var2) > 0 ) {

echo '<td style="color:#0F0">'.($var1-$var2).'</td>';

} else {

echo '<td style="color:#F00">'.($var1-$var2).'</td>';

}

echo '</tr>';

</table>

?>

În următoarea parte a paginii se regasesește un grafic corespunzător activitațiilor din luna curentă. Acest grafic a fost realizat cu ajutorul instrumentelor de diagrama Google (Google chart tools ). Pe acest grafic se regăsește eticheta fiecărui cheltuială sau venit cât si fluctuațiile acestora (Fig. 4.19).

Fig. 4.19 Grafic luna curentă

Codul care realizează această afișare este următorul:

<?php

$date = new DateTime();

$date->setTimestamp( time() – (30 * 24 * 60 * 60));

$right_now = date("Y-m-d");

$LastMonth = $date->format('Y-m-d');

$sel_date = 'SELECT * FROM conturi WHERE username="'.$_SESSION["user"].'" AND data BETWEEN "'.$LastMonth .'" AND "'.$right_now.'" ORDER BY data DESC ;';

$rezult = $connect_db->query($sel_date);

//pentru culori

$rand = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');

echo '

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

<script type="text/javascript">

google.charts.load("current", {packages:["corechart"]});

google.charts.setOnLoadCallback(grafic30zile);

google.charts.setOnLoadCallback(grafic_ales);

function grafic30zile() {

var data = google.visualization.arrayToDataTable([

["Denumire", "Lei", { role: "style" } ],';

while( $row = mysqli_fetch_array($rezult) ) {

if( $row['tip'] == "Venituri" ){

echo '["'. $row['etichete'].'",'. $row['suma'].', "'.$color .'"],';

} else {

echo '["'. $row['etichete'].'",-'. $row['suma'].', "'.$color .'"],';

}

};

echo' ]);

var view = new google.visualization.DataView(data);

view.setColumns([0, 1,

{ calc: "stringify",

sourceColumn: 1,

type: "string",

role: "annotation" },

2]);

var options = {

title: "Grafic pe ultimele 30 zile",

width: 600,

height: 400,

bar: {groupWidth: "95%"},

legend: { position: "none" },

};

Var chart=newgoogle.visualization.BarChart(document.getElementById("grafic30zile"));

chart.draw(view, options);

}

Ultima parte a paginii este pentru utilzatorul care dorește să observe un grafic corespunzător anumitei perioade de timp, în cazul în care nu se selectează nici o data, graficul care se afișează este identic cu cel de mai sus, adică pe luna curentă. Acesta are posibilitatea de a alege datele între care se dorește să se afișeze graficul. În figura următoare putem să observăm o afișare grafică a utilizatorului [anonimizat] între datele 2016-02-01 și 2016-05-11 (Fig. 4.20).

Fig. 4.20 Grafic între date selectate

O pagină pe care utilizatorul poate să o acceseze atât daca apasă pe Setari cont din meniu cât și pe adresa de e-mail corespunzătoare utilizatorului regăsită în partea dreaptă sus a paginii. În interiorul acestei pagini se regăsește un formular pentru schimbarea parolei, se introduce în formular parola nouă iar apoi se apasă pe butonul Schimbă. Pagina conține totodata un buton pentru stergerea contului (Fig. 4.21).

4.1.7 Setări Cont

Fig. 4.21 Pagină setări cont

În momentul în care se apasă butonul de stergere o să apară un alert (Fig. 4.22) pentru a confirma sau a anula acțiunea. Daca obtiunea aleasă este ok, contul o să fie șters definitiv, datele odata sterse, nu se mai pot recupera.

Fig. 4.22 Confirmare ștergere cont

Codul care reprezintă stergerea contului este următorul:

<?php

require_once ('../conectare.php');

if(!isset($_GET['actiune'])) $_GET['actiune'] = '';

switch($_GET['actiune']) {

case 'sterge_cont':

$user_cont = $_POST['user_id'];

// sterge utilizatorul

$sterge = " DELETE FROM users WHERE id = '".$user_cont."' ";

if( $connect_db->query($sterge) === TRUE ) {

// selecteaza datele utilizatorului

$sel_user = "SELECT * FROM conturi WHERE username='" .$_SESSION['user' ]."';";

$rezult = $connect_db->query($sel_user);

while( $row = $rezult ->fetch_assoc() ) {

// sterge datele utilizatorului

$sterge2 = " DELETE FROM conturi WHERE id = '".$row['id']."' ";

if( $connect_db->query($sterge2) === TRUE ) {

header("Location:http://licenta-stoica-petronela.cu.cc");

}

}

} else {

echo $connect_db->error;

}

break;

}?>

CAPITOLUL 5. CONCLUZII

5.1 Concluzii

În zilele noastre este cunoscută importanța internetului iar exploatarea oportunităților pe care le oferă acesta este cuvenit să fie o prioritate pentru ființa umană modernă.Un web site este creat o singură dată și rămâne în atenția publicului pentru mult timp. Conținutul unui site web poate fi modificat și actualizat oricând, după preferințle fiecăruia.

La baza aplicației web pentru gestionarea banilor stă limbajul de programare PHP, motivele pentru care am ales limbajul respectiv pentru implementarea aplicației au fost deoarece este un limbaj foarte puternic care este utilizat foarte mult. În zilele noastre aplicații distribuite cele mai multe sunt scrise în limbajul PHP, fiind o soluție convenabilă pentru crearea unei aplicații de comerț online pentru clienții care nu dispun de un buget mare pentru acest lucru.

În prezent lumea înconjurătoare se schimbă din moment în moment, tehnologia avansează, pe zi ce trece apar noi software și aplicații care conduce într-o lume computerizată. Eu consider ca limbajul PHP ocupă un rol special in ceea ce privește evoluția noilor tehnologi.

Aplicația web pentru gestionarea banilor este doar o mică parte din ceea ce se poate realiza cu limbajul de programare PHP. Această aplicație reprezintă o parte semnificativă, deoarece utilizarea acesteia faciliteză ținerea evidenței clare și concise asupra baniilor pe care îi câștigăm și îi cheltuim intr-o zi, saptamana, luna sau chiar an.

5.2 Posibilități de dezvoltare

Versiunea respectivă a aplicației web pentru gestionarea banilor nu este versiunea finală, ci o prima versiune. Aplicația poate fi îmbunătățită, prin adăugarea de noi facilități. Iată câteva lucruri noi care ar putea fi incluse în dezvoltarea acestei aplicații:

Aplicația ar putea fi dezvoltată într-un fel ca să poată fi utilizată în toată lumea, adică să fie disponibilă în mai multe limbi, nu doar în limba română.

O altă dezvoltare ar putea fi adăugarea de noi obțiuni pentru cheltuielile și veniturile lunare cum ar fi salariu, credite, rate, chiri care să se repete până în momentul în care utilizatorul stopează activitatea.

Al treilea punct de dezvoltare ar putea fi crearea unei obțiuni pentru, care odata bifată, să trimită mail sau notificare prin care să anunțe daca nu am adăugat nimic în ziua respectivă sau am uitat să achităm o anumită factură.

O dezvoltare majoră ar putea fi reperezentată de crearea unei posibilități prin care în momentul utilizării aplicației de către un grup de persoane care dețin banii în comun, membrii acestui grup să poată deține conturi separate, însă în clipa în care unul dintre ei adaugă o acțiune cheltuială/venit aceasta să fie vizibilă pentru toate persoanele din grupui respectiv, asfel aplicația devine utilă și pentru familii, asociații, sau compani.

Acestea sunt doar niște idei de dezvoltare a aplicației web pentru gestionarea banilor dar, având în vedere evoluția tehnologiei, mai pot apărea și altele.

BIBLIOGRAFIE

http://www.computersales.ro/hard-disk.html

https://ro.wikipedia.org/wiki/Internet

Michael Hart, A Brief History of the Internet, 8 Martie 1995

Adrian Munteanu, Rețele locale de calculatoare: proiectare și administrare, Ed. Polirom, 2003

http://www.w3schools.com/

Filip Ioan, Programare WEB : supot de curs, Ed. Conspress, 2013

Valentin Ivașcu, Inițiere in PHP & MySQL, 1 Iunie 2005

http://www.marplo.net/php-mysql/php-mysql-introducere-tipuri-date.html

http://getbootstrap.com/

https://developers.google.com/chart

Similar Posts