Aplicație Web Pentru Planificarea Activităților Unei Baze Sportive

UNIVERSITATEA DIN PITEȘTI

FACULTATEA DE MATEMATICĂ-INFORMATICĂ

PROGRAM DE STUDII LICENȚĂ – INFORMATICĂ

LUCRARE DE LICENȚĂ

Coordonator:

Lector univ. dr. Doru Anastasiu Popescu

Absolvent:

Corbeanu Ioan Alexandru

– 2015 –

UNIVERSITATEA DIN PITEȘTI

FACULTATEA DE MATEMATICĂ-INFORMATICĂ

PROGRAM DE STUDII LICENȚĂ – INFORMATICĂ

APLICAȚIE WEB PENTRU PLANIFICAREA ACTIVITĂȚILOR UNEI BAZE SPORTIVE

Coordonator:

Lector univ. dr. Doru Anastasiu Popescu

Absolvent:

Corbeanu Ioan Alexandru

– 2015 –

Cuprins

Pagina

GENERALITĂȚI

Matematica a apărut în momentul în care omul a început să materializeze gandirea sa despre spațiul înconjurător într-un limbaj matematic de bază. Odată cu omul a evoluat și gândirea sa, matematica la fel, pana s-a ajuns la necesitatea de a inventa o mașină de calcul pentru a-i simplifica viața.

Evoluția tehnologiei informației din ultima perioadă a avut rolul de a putea oferi o mai buna comunicare și un acces mult mai rapid la orice categorie de informație existentă.

Lucrarea prezentă cuprinde destul de detaliat aspecte practice dar și teoretice ale modalităților de concepere, implementare și utilizare a aplicației.

Lucrarea este structurată în 5 capitole, fiecare capitol având mai multe subcapitole.

Capitolul 1 – Introducere. Acest capitol reprezintă partea introductivă a lucrării, prezentarea domeniului din care face parte proiectul, a temei și structura aplicației.

Capitolul 2 – Tehologiile utilizate reprezintă o scurtă introducere a principalelor noțiuni folosite. Sunt explicate noțiuni precum Internet, aplicații pentru internet, protocolale, DNS, servere web, aplicații web, pagini web, limbaje de markup, limbaje de scripting, etc. Limbajul PHP, este prezentat sumar prin descrierea principalelor noțiuni legate de acest limbaj. Este făcută o descriere succintă despre includerea scriptului PHP între liniile de cod HTML, se prezintă tipurile de date suportate de acest limbaj și tipurile de variabile utilizabile. Este prezentat modul de utilizare a unei baze de date MySQL, conectarea și deconectarea, crearea și selectarea, crearea de tabele dar și introducerea interogărilor.

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

Capitolul 4 – Implementarea și utilizarea aplicației cu interfața grafică reprezintă descrierea realizării și a implementării aplicației. Acest website a fost creat limbajul PHP, un limbaj de sever side scripting. Am optat pentru acest limbaj datorită flexibilității acestuia și totodată datorită faptului ca este gratuit. Pentru bazele de date am optat pentru limbajul MySQL, acesta fiind gratuity si Open Source. De asemenea este cel mai folosit system de gestiune al bazelor de date pe internet.

De asemenea, este prezentat modul de creare a bazei de date a aplicației, crearea unor table, adăugarea și modificarea de înregistrări, stergerea înregistrărilor.

GUI-ul (Graphic User Interface) aplicației se bazează pe un template folosit pentru aproape toate paginile site-ului. Astfel se păstrează același layout pe întreg site-ul. Pentru afișarea diferitelor elemente HTML am folosit limbajul CSS. Toate setările pentru afișarea a diferitelor elemente HTML sunt salvate întrul fișier .css care poate fi modificat astfel încat întreaga aplicație își schimbă aspectul.

Din combinația limbajului de scripting PHP cu sistemul de gestiune al bazelor de date MySql a rezultat o aplicație flexibilă căreia îi pot fi implementate ușor noi funcții și funcționalități.

Capitolul 5 – Concluzii prezintă opinia mea personală despre aplicația realizată și posibilitățile de dezvoltare a aplicației.

CAPITOLUL 1.

INTRODUCERE

Este un fapt cunoscut că trăim în secolul vitezei, accesarea informației în cel mai scurt timp este ceva esențial. În prezent cea mai rapidă sursă de informare este prin intermediul internetului, fie el accesat de pe un calculator, telefon, tabletă sau alt gadget. Totul este informatizat iar omul a ajuns să folosească tehnologia în aproape toate domeniile posibile. Fie că e vorba despre pază, examene, cumpărături sau alte necesități, peste tot este folosit un aparat de calcul întrucât acesta simplifică viata și munca omului.

Dacă medităm puțin cu privire la procesul de schimbare al lumii de când au apărut calculatoarele observăm că tehnologia evoluează cu pași mari iar omul de rând capătă tot mai mult acces la informații și realizează obiective care odată erau greu de atins într-un mod ușor și rapid.

Locul hârtiei de scris a fost luat de spațiul de stocare al calculatorului care este mult mai sigur, efortul de calcul matematic începe să devină un mit când posibilitățile de procesare ale unui calculator sunt mai mari decât cele ale omului de rând iar timpul pierdut prin drumul la piață în vederea cumpărăturilor s-a transformat acum în timp liber datorită internetului prin intermediul căruia se poate cumpăra orice printr-un efort minim de mișcare al mouse-ului.

Tema proiectului

La apariția computerelor acestea erau lansate într-un număr mic și la un preț extrem de piperat. În ziua de azi fiecare familie are în casă cel puțin un calculator, o tableta sau un smartphone. Noi sau vechi, ele există și încă sunt apte pentru a-și îndeplini scopurile pentru care au fost create. Orice instituție este înzestrată cu minim un calculator și cu softuri necesare pentru desfășurarea activității acesteia. Fie ca e vorba despre evidențe, agende de contacte, comunicare cu clienții sau supraveghere, peste tot este nevoie de folosirea calculatoarelor.

Să ne gândim numai la magazine, bănci, restaurante, hoteluri, toate folosesc calculatoare pentru a ține evidențele, a trasfera date, a aproviziona și multe altele.

Administratorii firmelor folosesc acum calculatoare care au instalate diverse softuri ce le ușurează munca lor și le permite să mențină legătura cu clienții într-un mod mult mai ușor decât în trecut. Acest website lucrează cu baze de date unde sunt stocate toate informațiile necesare despre un client, rezervările efectuate de acesta, anunțuri cu privire la activități, etc.

Aplicația prezentă este o soluție ideală pentru a ușura munca administratorilor unei baze sportive și a clienților. Această versiune a aplicației, este destinată special unei baze sportive. Site-ul este structurat în 3 părți diferite, pentru 3 tipuri de utilizatori diferiți:

Administrator : se ocupă de moderarea rezervărilor, moderarea conturilor

clienților, adăugarea de noi rezervări, adăugarea și moderarea anunțurilor și a noutăților.

Client (utilizator înregistrat) : are posibilitatea de a adăuga, modifica și șterge rezervări.

Vizitator : are acces doar la informațiile de bază expuse pe site.

Fiecare tip de utilizator are diferite privilegii, așa cum v-am prezentat mai sus, datele personale a fiecărui utilizator se pot modifica numai de către el insuși. Toate datele sunt confidențiale, fiecare client având acces numai la informațiile asociate lui, in acest fel și în cazul administratorilor.

Aplicația este foarte utilă, atât pentru administratorii bazei sportive cât și pentru clienți. Prin intermediul acestei aplicații este foarte ușor să ținem evidența rezervărilor, să comunicăm cu clienții dar și să le oferim libertatea de a face rezervări la orice oră a zilei, în orice zi a săptămânii.

CAPITOLUL 2.

TEHNOLOGII UTILIZATE

Calculatorul este un instrument universal care se adaptează ușor pentru multiple munci și proiecte. Fie că este folosit pentru multimedia, pentru jocuri sau doar pentru informare, tot mai multe persoane activează în spațiul cibernetic, călătorind vitual în întreaga lume.

Accesul la Internet poate semăna cu un vis fără final, o vacanță în orice loc pe glob care se desfășoară chiar din camera utilizatorului. Internetul oferă libertatea de comunicare mult dorită, o multitudine de biblioteci, grupuri de studiu, informații și poze de pe tot globul dar și multe alte informații. Pe Internet distanța se măsoară în viteză și efortul în click-uri. Pentru a ajunge în America e nevoie doar de un singur click. Nici Africa de Sud nu este mai greu de atins. Orice punct de pe glob poate fi accesat printr-un simplu click.

Prin Internet înțelegem ansamblul rețelelor de calculatoare interconectate de pe întregul mapamond. De fapt, specialiștii susțin că Internetul este un ansamblu de protocoale de comunicație ce permit transferul de date între diferitele rețele de pe glob, permițând accesul la informațiile stocate în calculatoarele acestora.

Accesul la Internet este reprezentat prin conectarea la rețea și accesarea informației dorite respectiv posibilitatea de a comunica în toată lumea.

Internetul este o rețea de calculatoare de dimensiuni enorme, mai precis, o rețea de rețele de calculatoare.

Dezvoltarea internetului s-a facut cu o viteză incredibilă, în 1985, aproximativ 2000 de calculatoare erau conectate la Internet. In momentul de față există sute de milioane de calculatoare conectate în întreaga lume, numărul fiind într-o continuă creștere.

În România Internetul a pătruns destul de târziu, multă vreme fiind considerat un lux. Din punct de vedere al infrastructurii lucrurile au avansat destul de mult, România clasându-se în primele locuri pe glob cu privire la viteza internetului dar din punct de vedere al resurselor informatice disponibile, evoluția este destul de greoaie datorită costurilor relative mari.

Internetul a ajuns să reprezinte cea mai comodă sursă de informare. Există o multitudine de resurse disponibile în nenumărate limbi din absolut orice domeniu de activitate.

Experții elaborează noi tehnologii pentru a face Internetul să fie utilizat cât mai ușor cu putință. Fie că este vorba despre aspect, viteză sau siguranță, Internetul se îmbunătățește pe zi ce trece. Pentru a întelege despre ce este vorba trebuie să trecem în revista tipurile de tehnologii dezvoltate.

Colaborare

În ultimul timp s-au facut mari progrese pentru desfășurarea conferințelor la distanțe marii.

De exemplu, au fost dezvoltate tehnologii care permit partajarea documentelor prin intermediul rețelei în vederea modificarii lor de către multiple persoane din diferite locuri. De asemenea putem lua parte la convorbiri audio, video și chiar să ne expunem schemele și proiectele, astfel încât acestea să poată fi vizualizate și eventual modificate de către toți participanții la conferință.

Obiecte

Față de acum câțiva ani, paginile web nu se mai limitează doar la texte și grafică. În

ziua de azi creatorii paginilor web au posibilitatea de a da frâu imaginației și de a crea aproape orice.

De exemplu, în present există o mare varietate de programe care pot să ruleze online, fără să mai fie nevoie de instalarea lor in prealabil.

Mesaje e-mail complexe

Nici emailurile nu mai sunt limitate doar la un conținut text.

Limbajul HTML permite formatarea textelor cu o varietate de fonturi și culori, și cu diferite formate de paragraf. Mai mult decât atât, putem atașa mesajelor imagini, semnături grafice, documente și alte elemente multimedia.

Securitate

Securitatea a fost mereu o problemă pe internet și pe zi ce trece apar noi forme de securitate. Din pacate orice este interzis stârnește curiozitate și în acest fel hackerii găsesc noi breșe de securitate de care pot să profite. În ultimii ani conexiunile și tranzacțiile făcute pe Internet au devenit tot mai sigure și pe viitor probabil securitatea nu va mai prezenta o problem.

Specialiștii din spatele rețelei Internet crează un mediu virtual mai sigur pentru

Utilizatorii care se joacă pe Web dar și pentru cei care fac tranzacții, asigurând securitatea rulării aplicațiilor distribuite, prin autentificări de cod și o securitate foarte bine pusă la punct.

Pagini Web și Servere Web

Contrucția WWW (World Wide Web) este pe baza unui protocol HTTP (Hypertext Transfer Protocol). Acesta din urmă este un protocol mic și rapid care se potrivește sistemelor informatice multimedia și distribuite în salturile între site-uri web.

Web-ul constă în pagini cu informații de pe gazde care rulează software de tip server Web. De multe ori gazda este confundată cu serverul Web, aspect greșit deoarece serverul Web este un produs software, nu unitatea de calcul pe care rulează.

Un server Web este un soft care la cererea utilizatorului furnizează pagini Web. Când este solicitat un anumit fișier de la o adresă IP a gazdei, serverul Web caută acel fișier și dacă îl găsește îl trimite înapoi utilizatorului.

Fișierul solicitat poate fi de aproape orice tip: o pagina Web, o imagine, o animație, un videoclip etc.. Serverul Web nu are putere de decizie, acesta doar se supune cererii browserului. El este cel care determină ceea ce trebuie cerut și afișat.

Pentru o conexiune la serverul Web se solicită o cerere a unei pagini de la un server Web (utilizatorul crează o cerere), se stabileste o conexiune IP între gazdă solicitantă și gazda pe care rulează serverul Web. Prin această conexiune IP se va transmite pagina web iar la finalul transmisiei conexiunea IP va fi întreruptă.

Pe un același host (gazdă) pot rula mai multe aplicații de Internet, fiecare aplicație având câte un port diferit. De exemplu în același calculator se poate rula un server Web, altul FTP, altul DNS, un server de mail SMTP, altul tot de mail POP3, etc.

Fiecărui server îi este atribuit un port diferit pentru asigurarea că fiecare server va răspunde numai cererilor ce provin din partea clienților corespunzători.

Majoritatea serverelor folosesc un set de porturi predefinite. Serverele Web folosesc de obicei portul 80, serverele Ftp portul 21, serverele SMTP portul 25 etc., dar acestea pot fi schimbate. Pentru a fi ascunse se pot seta porturi nestandard. De asemenea, pot fi instalate mai multe servere pe un calculator atâta timp cât fiecărui server i se asociază un port diferit.

Internetul este reprezentat de o rețea globală de calculatoare interconectate asemenea unei rețele locale dar la o scară mult mai mare. Elementul de bază al Internetului este World Wide Web, un suport de text, grafică, sunet și animație. Documentele specifice Web-ului sunt cunoscute sub denumirea de pagini Web.

Paginile Web oferă multiple posibilități, unele foarte interesante: paginile de informații se pot regăsi pe calculatoare răspândite în întreaga lume. Paginile în sine pot fi documente foarte complexe, interesante și atractive.

Paginile Web sunt memorate în spațiul de stocare (Hard Disk) al unui server și gestionate printr-un software special pentru server. La apelare ele sunt căutate, găsite și afișate prin intermediul navigatoarelor Web (browsere).

Browserul afișează paginile de Web prin interpretarea conținutului fișierelor scrise într-un limbaj special denumit HTML (HyperText Markup Language) ce se folosește pentru a codifica paginile Web cu informațiile necesare pentru afișare. Tagurile (marcatorii) limbajului HTML au diferite semnificații. De exemplu acestea pot semnifica modul în care vor fi așezate diversele părți ale paginii sau stabilesc legături între mai multe fișiere.

O pagină Web constă în legătura dintre o diversitate de fișiere precum fișiere grafice, fișiere text sau fișiere multimedia. Căile de acces între toate aceste fișiere se constau într-un mecanism denumit hipertext. Când utilizatorul acționează o legătură cu un click de mouse, legătura cum ar fi o porțiune de text, un element grafic, etc., navigatorul caută și încarcă fișierul care este asociat prin legătura respectivă și îl afișează. Legăturile text sunt foarte ușor de identificat deoarece majoritatea browserelor, colorează aceste legături diferit textul față de restul textului.

Un site Web este definit ca o colecție de informații organizată sub forma unor pagini Web, documente, imagini, fișiere multimedia, etc. între care există legături.

Orice site bine proiectat are cel putin o legătură spre prima pagină prezentă în fiecare pagină a sa.

La realizarea unui site Web, coleția de fișiere este păstrată, de obicei, într-un folder sau o colecție de foldere organizate pe un Hard Disk local și este cunoscut sub numele de site local. Serverul Web se regăsește pe Internet și este dedicat memorării, transmiterii, căutării și regăsirii paginilor Web și a a altor fișiere legate de acestea.

Prin publicarea unui site local (upload pe serverul Web), toate fișierele și folderele sunt transferate la serverul. Odata uploadat, site-ul se transformă din site local în site Web, iar interacțiunea utilizatorilor cu el are loc similar modului prezentat în figura de mai jos.

Diferența între un site local și un site Web este că site-ul local poate fi accesat fără o conexiune Internet pe când un site Web poate fi accesat exclusiv printr-o conexiune de tip Internet.

Serverul pe care rulează un site local poartă denumirea de localhost.

Deși marea majoritate a informațiilor din World Wide Web sunt stocate în pagini Web scrise în HTML, există un număr deloc mic al documentelor scrise prin alte tipuri de servicii de publicare a informației.

Pagini Web Statice și Dinamice

HTML

Paginile Web sunt în fapt simple fișiere care conțin text scris în limbajul HTML. Limbajul HTML este constituit dintr-o mulțime de taguri care sunt foarte intuitive și ușor de învățat.

Creatorii de pagini Web folosesc acest limbaj pentru a formata și a adăuga funționalitate paginilor Web. Browserele citesc tagurile, le interpretează și afișează utilizatorului pagina așa cum creatorul a formatat-o.

HTML este doar un limbaj de markup. El nu permite altceva decât crearea de layout-uri și formulare. Pentru o funcționalitate extinsă este nevoie de un limbaj de scripting, el va permite scrierea de cod care rulează în browser. Se crează mici programele care sunt rulate din browser.

PHP

Cel mai cunoscut limbaj de scripting este PHP (Hypertext Preprocessor) care este suportat de orice browser existent. Deși inițial a fost folosit pentru a produce pagini web dinamice acum este folosit la scară largă pentru dezvoltarea de pagini și aplicații Web.

În principal este folosit alături de HTML, înglobat între tagurile acestuia. Este unul din cele mai importante limbaje de programare Web, fiind compatibil cu orice sistem de operare.

Conform unor statistici, PHP este instalat pe aproximativ douăzeci de milioane de siteuri Web si pe un milion de servere Web.

Scripturile sunt bucăți de cod care detectează și procesează evenimentele din cadrul paginilor Web. Fie ca este vorba de apăsarea unui buton sau de mișcarea cursorului, la detectarea evenimentului scriptul este executat automat de către browser.

Scripturile pot fi implementate în cadrul codului HTML sau pot fi stocate în fișiere externe și apelate din interiorul codului HTML.

CSS

CSS (Cascading Style Sheets) reprezintă un standard pentru formatarea elementelor din cadrul unui document HTML. Formatarea elementelor folosind CSS se poate face atât în cadrul documentului HTML cât și prin intermediul unor fișiere externe.

URL-uri

Resursele aflate pe Internet sunt identificate printr-un URL unic ( Uniform Resource Locator – Descriptor Uniform de Resurse). Schema unui URL este următoarea:

protocol://nume_gazdă:port/cale/resursă

Protocolul este un set de reguli care permit ca două sau mai multe entități să comunice între ele prin transmiterea de informație. În practică se utilizează urmatoarele protocoale:

file – specifică un URL local, pe calculatorul utilizatorului;

http – indică adresa unei pagini Web sau a altei resurse aflate pe Internet;

ftp – permite utilizatorului să facă o conectare către serverul Web în vederea încărcării și descărcării fișierelor de pe acesta;

gopher – indică adresa URL a unui director de tip Gopher; reprezintă un sistem utilizat pentru localizarea și transferul informațiilor de indexare a numelor fișierelor în Interent;

telnet – permite conectarea în timp real la un alt calculator prin Internet și utilizarea acestuia ca și cum ar fi un calculator local.

Numele gazdei identifică calculator unic în cadrul rețelei. Numele poate fi reprezentat atât printr-o adresa IP, cât și prin denumirea unui calculator local sau a unui calculator din Internet folosind specificațiile DNS (Domain Name System).

Portul este reprezentat printr-un număr și unic asociat fiecărei aplicații de tip server care rulează pe calculator. Pe un calculator pot exista mai multe aplicații de rețea de același tip, fiecare aplicație utilizând un port distinct.

Numele resursei este defapt numele fișierului referit. Acesta poate fi orice tip de fișier.

O limitare a URL-urilor este aceea că nu pot conține spații și alte caractere speciale, astfel că orice spațiu sau caracter special se va converti printr-un cod asociat acestora precedat de simbolul „%”.

Limbajul PHP

PHP este un acronim de la "Hypertext Preprocessor", un limbaj de server side scripting utilizat în prezent pe scară largă, distribuit în sistem Open Source, realizat special pentru dezvoltarea aplicațiilor web. Sintaxa limbajului PHP provine din C, Java și Perl. Este foarte ușor de învățat, nefiind nevoie de cunoștințe însemnate în programare. Scopul principal al limbajului PHP este de a scrie rapid pagini web dinamice. Totuși, cu PHP se pot realiza operații mult mai complexe.

PHP este o tehnologie extrem de interesantă pentru faptul că deși deține caracteristici extrem de complexe, ele sunt foarte ușor de folosit. A devenit foarte rapid un instrument fruntaș folosit pentru a dezvolta aplicații Web. Este un limbaj de programare foarte ușor de învățat și foarte comod pentru începători care nu au mai programat niciodată.

Pentru un site este foarte important traficul iar fidelitatea vizitatorului crește atunci când site-ul în cauză își schimbă conținutul de la o zi la alta. PHP este foarte util pentru furnizarea de conținut dinamic, conținut ce se poate schimba automat de la o zi la alta.

Față de alte limbaje de programare Web cunoscute (exemplu JavaScript) PHP rulează pe serverul Web, nu în browser. Din această cauză el poate accesa resurse inaccesibile limbajelor ce rulează în browser, cum ar fi bazele de date și fișiere.

Noțiuni Fundamentale

Codul PHP poate fi folosit în combinația cu HTML. Partea de PHP se poate integra între tagurile HTML folosind coduri de start și de sfârșit pentru a marca liniile de scripting.

Pentru start se va folosit comanda <?php iar pentru sfârșit se va folosi ?>.

<html>

<head>

<title>Exemplu de titlu</title>

</head>

<body>

<?php

echo "Exemplu de text afișat în PHP!";

?>

</body>

</html>

Pentru un script ca cel de mai sus, executat pe un server Web, clientul va primi doar rezultatele obținute după rularea scriptului, codul din spatele acestuia rămânând inaccesibil.

Cu PHP se poate face orice, cum ar fi colectare de informații de la formulare, interogări pe baze de date sau setare de cookie-uri.

Există trei domenii importante unde sunt folosite scripturile în limbaj PHP:

Scripturi care rulează pe un server Web. Acesta este cel mai folosit și totodata cel mai important domeniu pentru limbajul PHP. Este nevoie de numai trei lucruri pentru a funcționa: un server Web, un browser și un interpretor PHP. Serverul Web trebuie să fie pornit și să aibă instalată o conexiunea PHP.

Scripturi care rulează în linie de comandă. Este posibil ca PHP să ruleze și fără a fi nevoie de un server web și de un browser, doar pe baza interpretorului PHP.

Aplicații ce rulează pe partea clientului în mod grafic (GUI). PHP-GTK este o extensie a limbajului PHP care este capabilă de a scrie aplicatii cu ferestre pentru diferite sisteme de operare.

PHP este compatibil cu toate dintre marile sisteme de operare precum Linux, Windows, Mac OS, Chrome OS si multe variante de Unix. De asemenea are suport pentru marea majoritate a serverelor web din prezent.

Deci limbajul PHP este limbajul libertății. Există o mare libertate, se pot alege dintre foarte multe sisteme de operare și servere pe care să ruleze, există posibilitatea ca programatorul să aleagă între programarea orientată pe obiecte și cea procedurală sau chiar să le combine.

Posibilitațile limbajului PHP sunt extinse, dezvoltatorul nu este limitat la afișarea rezultatelor în HTML. PHP este capabil să afișeze foarte multe tipuri de fișiere, precum documente, imagini, animații sau filmulețe. De asemenea are abilitatea de a șterge și de a crea noi fișiere în sistem sau de crearea unui cache pentru conținutul dinamic.

Probabil cea mai importantă caracteristică a limbajului PHP este posibilitatea de a se conecta la o varietate larga de baze de date. Această caracteristică poate oferi extrem de multă funcționalitate unei pagini Web prin salvarea și preluarea conținutului într-o bază de date care oferă posibilitatea de modificare. PHP suportă și standardul ODBC (Open Database Connection) deci în consecință poate interacționa cu orice bază de date ce folosește acest standard global.

PHP are suport și pentru alte servicii prin alte protocoale. Un exemplu ar putea fi serviciul de email prin protocoalele IMAP sau POP3. De asemenea se pot deschide socket-uri și poate interacționa cu aproape toate limbajele de programare Web.

Intrarea și ieșirea din modul PHP

Interpretorul PHP trece prin textul unui fișier fără să execute nimic până când întâlnește unul din tagurile specifice care anunță începerea codului în limbaj PHP. De aici un parser execută tot codul până întalnește tagul de terminare al codului PHP.

În acest fel interpretorul permite înglobarea limbajului PHP între tagurile limbajului HTML. Astfel doar ce este încadrat între tagurile de start și sfârșit este considerat cod și executat, restul fișierului fiind lăsat nemodificat.

În total există patru taguri destinate pentru marcarea codului PHP dintr-un fișier. Dintre acestea, doar două sunt întotdeauna disponibile.

Cele patru tipuri de tag-uri sunt:

<?php #cod in limbajul PHP ?>

2. <? #cod in limbajul PHP?>

3. <script language="php">

#cod in limbajul PHP

</script>

4. <% #cod in limbajul PHP %>

Cea mai folosită este prima variant pentru că permite scrierea inserarea de cod PHP conform standardului XML.

PHP permite ieșirea și respective reintrarea în modul PHP iar interpretorul va analiza codul ca fiind un întreg. Aceste ieșiri și reintrări sunt mai eficiente decat funcțiile echo() sau print() în cazul blocurilor mari de text. Exemplu:

<?php

if ($expresie) {

?>

<b>Text în HTML.</b>

<?php

}

else {

?>

<b>Text în HTML.</b>

<?php

}

?>

Separarea instrucțiunilor

Ca în orice limbaj de programare, PHP folosește același tip de separatori între instrucțiuni și anume caracterul punct și virgulă.

<?php

echo "1";

echo "2";

echo "3";

?>

Comentariile

PHP suportă comentarii de tip C și Unix shell, adică prin inserarea înaintea textului de comentariu caracterele // respectiv #. De exemplu:

<?php

echo "1"; // Comentariu de ti C

echo "2"; # Comentariu de tip Unix shell

?>

Tipuri de date

PHP suportă în total opt tipuri de date dintre care patru sunt scalare, două compuse și două speciale.

Tipurile scalare sunt boolean, integer , float și string.

Tipurile compuse sunt array și obiect.

Tipurile speciale sunt resource și NULL.

De obicei tipul unei variabile este stabilit de către interpretor la rularea codului PHP. Programatorul nu este nevoit să declare tipul variabilei.

Variabile

În PHP toate variabilele sunt reprezentate printr-un semn dolar ($) urmat de numele variabilelor. Numele lor sunt ca și în restul limbajelor de programare, case-sensitive.

Variabile globale predefinite

În componența sa PHP are un număr destul de mare de variabile predefinite. Unele dintre ele sunt variabile globale care nu mai au nevoie de o declarare în prealabil. Acestea sunt:

$GLOBALS –un șir asociativ care conține referințe către toate variabilele care sunt definite in zona globală a scriptului.

$_SERVER –un șir ce conține informații precum directoare, headere sau locații ale scripturilor. Această variabilă este creată de serverul Web.

$_GET – variabilele oferite direct prin HTTP GET. Asemenea șirului $HTTP_GET_VARS (încă valabil, dar învechit).

$_POST – variabilele oferite direct prin HTTP POST. Asemenea șirului $HTTP_POST_VARS (încă valabil, dar învechit).

$_COOKIE – variabilele oferite direct prin HTTP. Asemenea șirului $HTTP_COOKIE_VARS (încă valabil, dar învechit).

$_FILES – variabilele oferite prin uploadul fișierelor folosind modul POST din HTTP. Asemenea șirului $HTTP_POST_FILES (încă valabil, dar învechit).

$_ENV – variabilele oferite prin mediu. Asemenea șirului $HTTP_ENV_VARS (încă valabil, dar învechit).

$_REQUEST – variabilele oferite prin mecanismele de input GET, POST, și COOKIE.

$_SESSION – variabilele înregistrate unei sesiuni. Asemenea șirului $HTTP_SESSION_VARS (încă valabil, dar învechit).

Folosirea variabilelor statice

O caracteristică a variabilelor este scopul acestora. O variabilă statică este acea variabilă care este folosită într-o funcție locală dar nu își pierde valoarea la terminarea execuției funcției. Exemplu:

<?php

function Testare () {

$x = 10;

echo $x:

$y = 20;

echo $y;

$x=$y;

}

?>

De fiecare dată când această intrucțiune este apelată, lui x i se alocă valoarea 10 iar lui y valoarea 20. Valorile sunt afișate după care se iese din funcție.

Instrucțiunea $x=$y nu are nici un scop pentru că odată cu terminarea executării funcției, variabilele x și y dispar. Pentru a rezolva problema și a putea folosi variabilele în afara funcției, x și y va trebui să fie declarate statice. Exemplu:

<?php

function Testare()

{

static $x = 10;

echo $x;

static $y = 20;

echo $y;

$x=$y;

}

?>

În cazul exemplului de mai sus, la fiecare apelare a funcției variabilele x și y sunt alocate, afișate și ulterior x va prelua valoarea lui y.

O utilitate foarte mare a variabilelor statice o regăsim în lucrul cu funcțiile bazate pe recursivitate. Recursivitatea reprezintă un ciclu de autoapelare efectuat de o funcție. La crearea unei funcții recursive trebuie avut în vedere posibilitatea creării unui ciclu infinit. Programatorul este nevoit să asigure un mod de a termina ciclul. Exemplu:

<?php

function Testare()

{

static $numaratoare = 0;

static $numar = 54;

static $impartitor = 6;

$numaratoare++;

$numar -= $impartitor;

if ($numar >= $impartitor) {

Testare();

}

else

echo $numaratoare;

}

?>

Exemplul de mai sus calculează câtul împărțirii numărului 54 la 6. Această operație se efectuează prin scăderi repetate pentru a putea testa recursivitatea. Terminarea ciclului de autoapelare se face prin nevalidarea condiției ca numărul modificat prin scăderi repetate să fie mai mare sau egal cu împărțitorul. Lipsa acestei condiții ar duce la un ciclu infinit.

Baze De Date

Noțiuni generale

În prezent bazele de date sunt indispensabile vieții de zi cu zi. Conștient sau nu, orice persoană interacționează zilnic cu cel puțin o bază de date. Fie că e vorba despre o depunere bancară, rezervarea de bilete sau chiar cumpărăturile zilnice, toate aceste acțiuni depind de o bază de date digitală.

O bază de date este o colecție de informații cu o legătură logică între ele. O bază de date poate să fie atât în format digital cât și în format fizic. O bază de date fizică folosită de omenire la scară largă și din timpuri destul de vechi este banala agendă.

În ziua de azi bazele de date digitale au pus monopol pe viața oamenilor din moment ce orice om de pe Pământ deține cel puțin o mașină de calcul. Față de predecesoarele lor, acestea sunt mult mai ușor de accesat și mult mai rapid de consultat.

O bază de date trebuie să asigure:

abstractizarea informațiilor,

integrarea informațiilor (baza de date este un ansamblu de informații cu legături logice),

integritatea informațiilor (se referă la corectitudinea datelor încarcate și manipulate),

securitatea informațiilor (limitarea accesului la baza de date),

partajarea informațiilor (posibilitatea ca datele să fie accesate de mai mulți utilizatori),

Limbajul SQL

Structured Query Language sau pur și simplu SQL, este un limbaj de programare specific lucrului cu baze de date, apărut în 1970. Ulterior a devenit un standard în domeniu (fiind standardizat ANSI-ISO), în prezent ajungând să fie cel mai popular limbaj utilizat pentru creearea, modificarea, regăsirea și manipularea datelor de către sistemele de gestiune a bazelor de date (SGBD) relaționale.

Caracteristici generale:

SQL conține atât componența de descriere a datelor, cât și componența de manipulare a datelor;

Manipularea (interogarea) este partea extinsă;

Limbaj neprocedural: secvență de comenzi (instrucțiuni). fiecare comandă este transmisă SGBD-ului, este interpretată și returnează un rezultat.

Prezentarea limbajului SQL

     SQL3 (SQL ’98) este un standard ce definește modelul obiect-relațional de baze de date.
    Limbajul SQL este compus din instrucțiuni (comenzi). O instrucțiune SQL este o secvență de elemente componente (token), elementele componente putând fi: identificatori, cuvinte cheie, constante și caractere speciale.

Cuvintele cheie și identificatorii

Cuvintele cheie sunt, din punct de vedere semantic, elemente cu o semnificație fixa în limbaj:

nume de comenzi (clauze): SELECT, INSERT, UPDATE, ALTER etc;

exemplu de SELECT:

SELECT * FROM tabel WHERE id=35

//scoate datele inregistrarii cu id-ul 35 din tabelul tabel.

tipuri de date: numeric, integer, timestamp, date, varchar, char, etc.

Limbajul SQL nu este case sensitive, adică nu diferențiază caracterele mari de cele mici.
    Identificatorii din punct de vedere semantic reprezintă nume într-o comandă și pot fi: nume de tabele, de coloane, etc.

Identificatorii sunt:

– obișnuiți (simpli);

– delimitați: reprezintă un nume pus între ghilimele, care poate să conțină orice fel de caractere. Un identificator delimitat este folosit, în general, pentru un nume mai mare de tabel.

Constantele

Constantele pot fi:

– de tip număr întreg (reprezentate pe 4 octeți);

– de tip număr real (reprezentate de 8 octeți, în formatul double);

– de tip șir de caractere;

– de tip NULL: constanta specială, reprezintă lipsa de informație.

Caracterele speciale

– operatori (+ , – , / , * , …);

– “;” termină o instrucțiune;

– punctul zecimal (codificări ale coloanelor, constante reale);

– separatori: TAB, blank, CRș

Operatori, expresii și funcții SQL

Operatorii pot fi reprezentați prin unul sau mai multe caractere speciale (+, <,…) sau prin cuvinte cheie (AND, OR, NOT).
  Operatorii pot fi clasificați în:

– binari: au nevoie de doi operanzi;

– unari: se aplică unui singur operand și pot fi prefixe sau postfixe.
– aritmetici: +,-,*,/,<,>,<=,>=, etc.

– logici: NOT, AND, OR.
    Operatorii logici se aplica numai asupra unor valori ternare (o valoare ce reprezintă un operand ce poate avea una din urmaotarele valori: TRUE (1), FALSE (0) și NULL).
    Deși nu există tipul de date boolean, operatorii logici returnează o valoare booleană.
   

Operatorii de comparație evaluează orice expresie la o valoare logica: TRUE, FALSE. Tipul boolean există însa incepând din SQL3. Operatorii de comparație pot fi:

aritmetici: <, >, <=, >=, =, etc.;

relaționali

X BETWEEN minim maxim;

X LIKE model_șir -> X șir;

X IS NULL sau X IS NOT NULL;

X IN lista_valorilor.

    O expresie SQL este o expresie formată din operatori, operanzi și paranteze. Operatorii sunt, în general, nume de coloane sau o constante.

Funcțiile SQL:

– funcții de grupare: calculează anumite valori pentru întregi coloane din tabele: SUM, MIN, MAX, AVG, etc.;

– funcții matematice: calcule trigonometrice, puteri, logaritmi, rotunjiri;

– funcții pentru șiruri;

– funcții pentru date calendaristice;

– funcții pentru conversii.

Ex: calcularea mediei aritmetice

SELECT (SUM(nota)/count(*)) as avg FROM student WHERE id=21

Comenzi SQL

În SQL exista două tipuri de comenzi:

De creare , de ștergere și de modificare a tabelelor. Acestea sunt comenzile de definire a datelor;

De manevrare a datelor din tabele: SELECT (interogările de baza), INSERT, DELETE, UPDATE.

Limbajul SQL asigură toate operațiile care se consideră necesare într-o bază de date.

MYSQL

Prezentare generală

MySQL este un sistem de gestiune a bazelor de date (SGBD), produs de compania MySQL AB și distribuit sub formă Open Source, adică utilizatorii au acces la procesul său de dezvoltare. În prezent MySQL este cel mai popular SGBD open-source, făcând parte din stiva LAMP, cea mai utilizată platformă de găzduire a website-urilor web. LAMP este un pachet software de softuri open source (Linux, Apache, MySQL, PHP/Perl/Python).

Deși este folosit des împreună cu limbajelel de programare JAVA și PHP, MySQL oferă suport pentru dezvoltarea de aplicații în orice limbaj major de programare. Există extrem de multe scheme API (Application Programming Interface) disponibile pentru limbajul MySQL care permit scrierea de aplicații în foarte multe limbaje de programare, cum are fi: C, C++, C#, Java, PHP, Python, etc., fiecare dintre acestea folosind un API spefic. O interfață de tip ODBC denumită MyODBC permite și altor limbaje de programare ce folosesc aceiași interfață să interacționeze cu bazele de date MySQL.

Pentru administrarea bazelor de date de tip MySQL se poate folosi modul linie de comandă sau o interfață grafică, prin descărcarea acesteia de pe internet: MySQL Administrator și MySQL Query Browser. Alt instrument pentru managementul acestor baze de date este aplicația SQL Manager.

MySQL poate rula pe multe dintre sistemele de oeprare existente în prezent: GNU/Linux, Mac OS X, FreeBSD, NetBSD, AIX, Solaris, SunOS, Windows 9x/NT/2000/XP/Vista/7/8/8.1/10.

Serverul de baze de date de tipul MySQL este foarte fiabil, ușor de utilizat și rapid. Inițial a fost dezvoltat pentru a manipula baze de date de dimensiuni mari mult mai rapid decât soluțiile existente.

Caracteristicile de bază ale limbajului MySQL

Câteva dintre caracteristicile de bază ale limbajuluiMySQL sunt:

Funcționează pe diverse platforme;

Dispune de API-uri pentru majoritatea limbajelor de programare;

Este multithreaded și folosește threaduri de kernel. Adică poate lucra pe mai multe procesoare dacă acestea sunt disponibile;

Un sistem de alocare a memoriei rapid, bazat pe thread-uri;

Folosește tabele temporare stocate în memorie;

Serverul este disponibil ca software separat ce poate fi folosit într-o rețea de tip client/server. Pentru a putea fi inclus și în aplicațiile de sine stătătpare acesta este disponibil și ca bibliotecă.

Tipuri de date utilizate de MySQL

Tipurile de date care apar în coloanele MySQL sunt diferite în funcție de tipul lor. MySQL alocă spațiu pe disc în funcție de tipul de date specificat de utilizator.

Voi enumera cateva tipuri de date, spațiul pe care îl ocupă precum și valorile minime și maxime pe care le pot avea:

Tipul de câmp TIMESTAMP. Acesta oferă posibilitatea de a data automat operațiile de tip INSERT și UPDATE. El este compus implicit din 14 caractere pentru formatul 'YYYYMMDDhhmmss' dar putem să specificăm la crearea unui tabel că dorim să conțină mai puține caractere, spre exemplu doar anul, luna și ziua.
Tipurile de string-uri în MySQL sunt BLOB, TEXT, CHAR, VARCHAR, ENUM și SET. Spațiul pe care îl ocupa precum și marimile maxime permise difera de la un tip la altul.

Câmpul de tip BLOB poate conține o cantitate variabilă de informație, similar cu TEXT însa diferit printr-un singur aspect: căutarea într-un câmp BLOB este case sensitive iar într-un câmp TEXT nu este. Tipul VARCHAR este similar tipului TEXT cu deosebirea ca într-o coloană de tip VARCHAR putem specifica numărul maxim de caractere admise.

Administrarea bazelor de date MySQL din linia de comandă

În cazul unui sistem de operare Windows, conectarea pentru a lucra în mod interactiv cu cu serverul MySQL instalat pe același calculator se realizează lansând în execuție monitorul MySQL numit mysql.exe din directorul mysql/bin.

Comenzile SQL se pot scrie cu litere mari sau mici și se termină cu caracterul “ ; “. Câteva dintre comenzile importante sunt:

-create database – crează o bază de date

-use – se selectează baza de date cu care vom lucra

-create table – se crează tabele

-alter – modifica definiția unui tabel

-insert – adăugă înregistrări într-un tabel

-update – permite modificarea valorilor unor câmpuri dintr-un tabel

-drop – permite ștergerea unui tabel

-show – listează tabelele care alcătuiesc baza de date

-select – este cea mai complexă comandă din limbajul SQL și este destinată regăsirii unor anumite date

-quit – determină întreruperea conexiunii cu serverul MySQL

CAPITOLUL 3.

SPECIFICAȚIILE APLICAȚIEI

Prezentare generală

Odată cu modernizarea, omul a simțit nevoia de a măsura și înregistra toate activitățile economice desfășurate de acesta la nivel individual sau comunitar. De alungul timpului forma de înregistrare și măsurare a suferit diverse schimbări dar la bază întotdeauna a avut același scop.

În prezent totul se întâmplă digital, astfel informațiile sunt mult mai rapid de accesat, mult mai ușor de interpretat și având o disponibilitate mărită. Datorită sistemelor informatice, activitățile întreprinse de om pot fi ușurate și optimizate pentru un randament cât mai mare posibil.

Calculatorul este instrumentul care le-a facut oamenilor viața mai ușoară. Adoptarea lui la scară larga a facut din acesta o unealtă indispensabilă vieții de zi cu zi. Fie că este utilizat în scopuri personale, fie pentru nevoile comunității, este un fapt știut că banalul calculator ușurează munca.

Să ne imaginăm cum și-ar fi desfășurat activitatea o bază sportivă dacă nu ar fi existat calculatorul. Clienții ar fi trebuit să se prezinte personal și să verifice disponibilitatea terenelor. Eventual acest lucru s-ar fi putut face și pe telefon dar din cauza aglomerației ar putea fi zile în care un apel telefonic ar putea fi aproape imposibil. Toate rezervările vor fi scrise pe hartie iar la fiecare noua rezervare va trebui sa se rasfoiască și să se caute ziua dorită, să se verifice daca timpul dorit este disponibil si abia apoi sa se efectueze rezervarea. De asemenea, noutațile care ar avea legătura cu baza sportiva nu ar mai fi la fel de accesibile, acestea ar fi afișate în incinta bazei iar doar cei care se prezintă personal vor avea parte de informare. Programul limitat al angajaților ar face ca rezervările să se efectueze doar într-un anumit interval orar, interval în care probabil unii clienți nu se pot prezenta pentru a efectua o rezervare. În ziua de azi nu mai există aceste probleme.

Aplicația web pentru gestiunea unei baze sportive este făcută astfel încât sa rezolve toate problemele de mai sus. Este conceputa astfel încât sa fie ușor de folosit, utilizatorul neavând nevoie de cunoștințe informatice. Toate operațiile pe care le suporta aplicație sunt intuitive, o simpla citire a mesajelor prezente pe pagini va ajuta utilizatorul să își indeplinească scopurile.

Aplicația conține absolut toate acțiunile necesare pentru administrarea unei baze sportive. Adaugarea și modificarea rezervărilor poate fi facută din contul de utilizator iar pentru a crea un cont există o pagină de înregistrare. Panoul administratorului oferă opțiuni mai numeroase cu privire la rezervări, anunțuri și conturi.

De asemenea, aplicația are o modalitate proprie de a-și seta baza de date, astfel încât să nu fie nevoie de modificări la nivelul codului de fiecare dată cand se doreste golirea bazei de date, reinstalarea aplicației sau mutarea ei pe alt server.

Pagina de acces

Pornirea aplicației se va face prin fișierul predefinit index.html, fișier care va afișa în browser o pagina de prezentare a bazei sportive.

După cum se poate vedea în imaginea de mai sus, pagina principală este doar o pagină de prezentare și recomandare a bazei sportive în cauză. Este făcută în așa fel încât vizitatorii să fie impresionați de ceea ce citesc și să devină curioși cu privire la ceea ce li se poate oferi.

Design-ul a fost realizat în Adobe Dreamweaver. Unii creatori de pagini web nu sunt de acord cu folosirea de astfel de editoare întrucât acestea pot conduce la o funcționare neperformantă a produsului web dar cu un pic de atenție și niște prelucrare în afara editorului se pot repara astfel de probleme.

Adobe Dreamweaver este un editor complex care se poate folosi de orice browser pentru a previzualiza site-ul creat. De asemenea oferă foarte multe funcții făcute pentru a ușura munca utilizatorului: poate crea cod JavaScript fara a avea cunoștințe în programare, poate să modifice o linie de cod în întregul website pe baza unor anumiți parametrii specificați de către utilizator, etc.

Cel mai mare atu al editorului Adobe Dreamweaver este reprezentat de extensibilitatea sa. Extensiile sunt mici programe, pe care orice dezvoltator le poate scrie iar orice utilizator le poate descarca și instala, acestea aducând un spor de performanță și funcționalitate îmbunătățită programului. Există o comunitate de dezvoltatori care produc aceste extensii și le publică (atât comercial cât și gratuit) pentru probleme de dezvoltare web.

Header-ul este format din meniuri și un logo reprezentativ pentru site. Orice pagină serioasă dispune de un logo plasat in header, acesta fiind echivalentul unei semnaturi a paginii web în mediul online. Pentru prelucrarea lui si a celorlalte imagini am folosit editorul de imagini Adobe Photoshop și am fost ajutat de o tabletă grafică Wacom Intuos.

Stocarea informațiilor

Aplicația prezentată lucrează cu date de diverse tipuri care sunt introduce de utilizator sau allocate automat și ulterior prelucrate sau interpretate. Câteva tipuri de date folosite sunt stringuri de nume, adrese, parole, numere de telefon, anunturi, titluri, date, ore, etc. Toate aceste date sunt păstrate într-o bază de date creată în prealabil care conține mai multe tabele, fiecare cu câte un rol diferit.

O aplicație de tip server este un program care asteaptă comenzi din partea unor aplicații client. În cazul serverelor de baze de date relaționale (Oracle, MySQL, IBM DB2, Microsoft Access, OpenOffice Base etc.) se foloseste limbajul SQL (Structured Query Language).

Pentru a putea verifica în timp real funcționalitatea aplicației pe mai multe calculatoare cu diferite rezoluții și sisteme de operare am ales să lucrez direct pe un server Web online folosind un domeniu propriu. Astfel am reușit sa testez funcționalitatea pe sisteme Windows, Linux, Android, Windows Phone si iOS.

Pentru găzduirea website-ului m-am folosit de hostingul gratuit oferit de http://000webhost.com/, serviciu care pe lângă găzduire oferă mai multe opțiuni cum ar fi PhpMyAdmin, un utilitar dezvoltat pentru a putea administra bazele de date de tip MySql prin intermediul browserului, server pentru bazele de date, backup, manager de fișiere online, etc.

Managementul fișierelor a fost realizat printr-un alt program, FileZilla, un utilitar foarte puternic care printre alte opțiuni dispune de posibilitatea de a modifica un fișier de pe server cu orice program instalat pe mașina locală.

CAPITOLUL 4.

IMPLEMENTAREA ȘI UTILIZAREA APLICAȚIEI

Crearea bazei de date a aplicației

Crearea bazei de date

Aplicația dispune de o bază de date create folosind serviciul gratuit oferit de http://000webhost.com/.

Pentru a crea o bază de date trebuie urmați doar niste pași simpli: completarea numelui bazei de date, numelui de utilizator și parola pentru conectarea la aceasta.

După acest pas va fi creată baza noastră de date cu datele introduse de către utilizator și cu adresa server specificată deasupra formularului.

Restul operațiilor referitoare la baza de date vor fi făcute din cod sau din phpMyAdmin. Acesta din urmă va afișa de fiecare dată comenzile pe care le-a trimis serverului de baze de date MySQL.

Odată creată baza de date, aceasta va fi bază de date curentă. Comenzile ulteriore, de exemplu cele prin care se vor crea tabelele (fișierele) acesteia, se vor adresa acesteia.

Conectarea la baza de date

Aplicația dispune de un wizard pentru verificarea și refacerea conexiunii la baza de date. Acest wizard începe cu pagina install.php. Codul prezent în acest fișier verifică dacă pe serverul web există un fișier care conține informațiile necesare conectarii la baza de date (database.php) iar în cazul existenței acestuia, permite rescrierea sa cu noi informații.

Formularul pentru conectarea la baza de date conțne informațiile absolut necesare conectării, și anume adresa serverului bazei de date, numele bazei de date, numele de utilizator și parola necesare pentru conectarea la server.

Toate câmpurile sunt absolut necesare. Necompletarea unuia reprezintă o imposibilitate a conectării la baza de date.

Dupa completarea câmpurilor, se încearcă o conectare la baza de date, se vor afișa mesaje cu reușita sau cu erorile survenite, iar în cazul reușirii conexiunii, se va crea fișierul cu informațiile necesare pentru viitoarele conectări.

Crearea tabelelor bazei de date

După setarea conexiunii la baza de date, wizardul oferă utilizatorului posibilitatea de a crea tabelele necesare, de a sterge toate înregistrările și a recrea toate tabelele sau de a renunța la următorii pași în cazul în care a fost importata o altă bază de date prin interfata PhpMyAdmin (util atunci cand administratorul schimbă serverul web și nu dorește pierderea tuturor înregistrărilor). Odată cu crearea tabelelor este necesară și crearea unui cont de administrator.

Crearea tabelelor se va face din fisierul tables.php și vor fi create o serie de șase tabele.

Crearea tabelei user

Tabelul user va conține datele de identificare a administratorilor bazei sportive. Administratorii sunt persoane cu acces la mai multe informații decât restul utilizatorilor. Ei pot efectua aproape orice modificare asupra înregistrărilor din baza de date.

Pentru crearea tabelei user s-a folosit următoarea interogare:

CREATE TABLE user (username varchar(20), password varchar(30), email varchar(30))

Câmpurile tabelului user sunt username (varchar lungime maximă 20 caractere), password (VARCHAR – lungime maximă 30 caractere), email(VARCHAR – lungime maxim 30 caractere).

Crearea tabelei clients

Baza de date va conține printre altele un tabel cu datele clienților. Tabelul este asemănător cu tabelul user însă clienții trebuie să completeze și un număr de telefon pentru o mai bună comunicare. Diferența între tabelul user și clients constă în accesul oferit pe site.

Pentru crearea tabelului s-a folosit următoarea interogare:

CREATE TABLE clients (username varchar(20), password varchar(30), email varchar(30), telefon varchar(10))

Diferența față de tabelul user este introducerea coloanei telefon de maxim 10 caractere.

Interfața cu utilizatorul

Aplicația produce prin lansarea ei apariția ferestrei principale a paginii Web, care are rolul de a prezenta și recomanda instituția.

Există trei tipuri de utilizatori care pot folosi această aplicație, fiecare având privilegii diferite.

Cele trei tipuri de utilizatori sunt următoarele:

– administrator : este nevoie de un nume utilizator și o parolă de administrator

– utilizator înregistrat : este nevoie de un cont de utilizator

– vizitator : nu are nevoie de nici un fel de cont

Vizitatorii pot să acceseze aplicația, să se informeze, să trimită un mail către conducere și doar atât. Pentru a putea beneficia de serviciile oferite de baza sportive aceștia sunt nevoiți să își creeze un cont de utilizator.

Paginile disponibile vizitatorilor sunt acasa, amplasare, noutati, contact, rezervare (cu posibilitatea doar de a verifica disponibilitatea) și login (pentru a accesa un eventual cont de utilizator sau pentru a crea unul.

În meniul login, fiecare utilizator își introduce numele de utilizator și parola, după care apasă butonul Log in sau tasta ENTER de pe tastatură. În timp ce utilizatorul face un singur click pe butonul Log in , în interiorul codului sursă se întâmplă mai multe lucruri de care utilizatorul nu știe, cum ar fi:

– primul lucru, care se întâmplă când utilizatorul introduce informațiile necesare de autentificare (nume utilizator, parolă) și apasă butonul Log in, este verificarea corectitudinii datelor introduse. Se face o interogare la baza de date, în care se verifică dacă există utilizator cu nume de cont și parolă identică cu cele introduse.Codul interogarii este:

<?

include_once "../database.php";

$password = $_POST['password'];

$username = $_POST['username'];

$sql="SELECT * FROM clients WHERE username='$username' and password='$password'";

$result=mysql_query($sql);

// numara nr de inregistrari

$count=mysql_num_rows($result);

// daca exista, trebuie sa fie prima inregistrare

if($count==1){

// Seteaza cookie pt 24 ore

$expires = 1 * 1000 * 60 * 60 * 24;

setcookie("username", $username, time()+$expires);

setcookie("password", $password, time()+$expires);

// redirect la home

print "<script type='text/javascript'>window.location='index.php';</script>";

} else {

// eroare: redirect la login

print "<script type='text/javascript'>window.location='login.php';</script>";

}

?>

Dacă nu s-a găsit o corespondență, utilizatorul va fi retrimis la pagina de autentificare. În caz afirmativ, se acceptă numele de cont și parola, dispare fereastra de autentificare, se seteaza un cookie pentru 24 de ore după care apare fereastra cu panoul de utilizator.

Din fereastra de autentificare, utilizatorii mai au posibilitatea de:

Înregistrare

Recuperare parolă

Anulare acțiune

Înregistrare utilizatori

Înregistrarea administratorilor

Site-ul trebuie să aibă cel puțin un administrator așa că odată cu instalarea bazei de date se va oferi posibilitatea de a crea și un cont de administrator.

Din motive de securitate, pentru administratori nu există formulare de înregistrare asemeni clienților. Un alt cont de administrator poate fi creat doar de alt administrator deja înregistrat pe site.

Pentru adăgarea unui nou cont de administrator, un administrator deja existent va trebui să completeze un formular cu numele si emailul noului cont ce se vrea creat. Acest cont va fi creat automat cu o parola aleatoare iar pe adresa de email specificată se va expedia un mesaj ce va conține toate datele necesare pentru autentificare.

Noul administrator va putea oricand să intre pe website și să își modifice detaliile.

Înregistrarea utilizatorilorilor

Pentru înregistrarea pe site, utilizatorii sunt nevoiți să completeze un formular ce conține indentificatori unici pentru fiecare cont creat.

La crearea unui cont nou se verifică în prealabil daca adresa de email respective numele de utilizator nu au fost deja folosite. Nu se pot crea mai multe conturi cu aceiași adresă de email sau același nume de utilizator.

În cazul în care utilizatorul a folosit deja respectiva adresă de email acesta poate să opteze pentru recuperarea parolei contului asociat.

Spre deosebire de conturile de administrator, conturile de utilizator trebuie să conțină și un număr de telefon. Numărul de telefon trebuie sa fie de fix 10 caractere și să nu conțină nici o literă.

Pentru validarea informațiilor și pentru crearea contului s-a folosit următoarea secvență de cod:

<?php

include('database.php');

$name=$_POST['name'];

$email=$_POST['email'];

$phone=$_POST['phone'];

$password=$_POST['password'];

$password2=$_POST['password2'];

$result = mysql_query("SELECT * FROM clients WHERE username='$name'");

$num_rows = mysql_num_rows($result);

if ($num_rows > 0) {

echo "<script type='text/javascript'>alert('Nume de utilizator deja folosit!')</script>";

echo "<script type='text/javascript'>window.location='account_create.php';</script>";

exit();

}

$result = mysql_query("SELECT * FROM clients WHERE email='$email'");

$num_rows = mysql_num_rows($result);

if ($num_rows > 0) {

echo "<script type='text/javascript'>alert('Email deja folosit!')</script>";

echo "<script type='text/javascript'>window.location='account_create.php';</script>";

exit();

}

if ($password=="" or $password2=="" or $name=="" or $email==""){

echo "<script type='text/javascript'>alert('Trebuie completate toate campurile!')</script>";

echo "<script type='text/javascript'>window.location='account_create.php';</script>";

exit();

}

if (!is_numeric($phone) or strlen($phone)!=10){

echo "<script type='text/javascript'>alert('Numar de telefon incorect!')</script>";

echo "<script>setTimeout(\"location.href = 'account_create.php';\",0);</script>";

exit();

}

if($password!=$password2){

echo "<script type='text/javascript'>alert('Parolele nu seamana!')</script>";

echo "<script>setTimeout(\"location.href = 'account_create.php';\",0);</script>";

exit();

}

$sql = "INSERT INTO clients(username, password, email, telefon) VALUES('$name','$password','$email','$phone')";

if (!mysql_query($sql)) {

echo "<script type='text/javascript'>alert('Eroare la crearea contului! Incearca din nou!')</script>";

echo "<script>setTimeout(\"location.href = 'account_create.php';\",0);</script>";

exit();

}

echo "<script>setTimeout(\"location.href = 'users/index.php';\",0);</script>";

mysql_close($msql);

?>

Recuperare parolă

Recuperarea parolei se face pe baza adresei de email.

După completarea adresei de email asociate contului se va crea o parolă nouă, care va fi trimisă prin email utilizatorului respectiv. Parola nouă va fi generată aleator prin următoarea secvență de cod:

function get_random_string($valid_chars, $length)

{

$random_string = "";

$num_valid_chars = strlen($valid_chars);

for ($i = 0; $i < $length; $i++)

{

$random_pick = mt_rand(1, $num_valid_chars);

$random_char = $valid_chars[$random_pick-1];

$random_string .= $random_char;

}

return $random_string;

}

$original_string = 'abcdefghijklmnopqrstuvwxyz1234567890';

$password = get_random_string($original_string, 8);

Tipuri de utilizatori

După cum spuneam mai sus, există trei tipuri de utilizatori ai aplicației web, fiecare având acces mai mult mai sau puțin la funcțiile website-ului.

Meniul paginilor este diferit, în funcție de tipul de utilizator, adică administrator, utilizator, vizitator. Meniurile pentru cele trei tipuri de utilizatori sunt următoarele:

Administrator

Utilizator

Vizitator

Meniul pentru tipul administrator

Meniul de tipul administrator este cel mai complex dintre toate cele trei. Acesta oferă cele mai multe opțiuni pentru adăugari și modificări atât pentru înregistrările create de administratori cât și pentru cele create de alți clienți.

Meniul are în componență un număr de 5 butoane, fiecare dintre ele deschizând o pagină cu mai multe opțiuni.

Butoanele sunt:

Acasa

Rezervari

Noutati

Setari Cont

Log Out

Primul buton numit Acasa face trimitere la prima pagină a panoului de administrator. Aici putem observa prezența a doua opțiuni necesare pentru o bună rulare a aplicației și anume un formular pentru a adăuga noi administratori și posibilitatea generării unei liste cu toți utilizatorii înregistrați.

Administratorul nu poate modifica datele unui cont de utilizator dar poate să șteargă întreg contul. Această opțiune este foarte utilă pentru a menține ordinea și curățenia în aplicație.

Pentru a crea un cont este necesar să completăm numele și adresa de email a noului administrator. Acestuia îi va fi expediat un email cu o parolă generată aleator alături de toate informațiile necesare pentru autentificare.

Înainte de crearea contului se verifică daca există deja în baza de date adresa sau numele introduse. În caz contrar se adaugă noua înregistrare. Pentru această acțiune se execută următorul cod:

<?

include_once("authenticate.php");

include '../database.php';

$email=$_POST['email'];

$username=$_POST['username'];

if ($email=="" or $username==""){

echo "

<script language='javascript' type='text/javascript'>

alert('Completati toate campurile!');

window.location = '../admin/index.php';

</script>:";

exit();

}

$sql="select * from user where username='$username'";

$result = mysql_query($sql);

$num_rows = mysql_num_rows($result);

if ($num_rows > 0) {

echo "

<script language='javascript' type='text/javascript'>

alert('Nume de utilizator deja folosit!');

window.location = '../admin/index.php';

</script>:";

exit();

}

$sql="select * from user where email='$email'";

$result = mysql_query($sql);

$num_rows = mysql_num_rows($result);

if ($num_rows > 0) {

echo "

<script language='javascript' type='text/javascript'>

alert('Email deja folosit!');

window.location = '../admin/index.php';

</script>:";

exit();

}

function get_random_string($valid_chars, $length)

{

$random_string = "";

$num_valid_chars = strlen($valid_chars);

for ($i = 0; $i < $length; $i++)

{

$random_pick = mt_rand(1, $num_valid_chars);

$random_char = $valid_chars[$random_pick-1];

$random_string .= $random_char;

}

return $random_string;

}

$original_string = 'abcdefghijklmnopqrstuvwxyz1234567890';

$password = get_random_string($original_string, 8);

$sql="insert into user (username,password,email) values ('$username','$password','$email')";

$result=mysql_query($sql);

echo "<script type='text/javascript'>window.location='../mailaccount.php?us=".$username."&pas=".$password."&em=".$email."';</script>";

?>

La ștergerea unui cont de utilizator se va avea în vedere că acesta a efectuat și rezevări iar acestea la randul lor trebuie căutate și șterse. Pentru asta, la apăsarea butonului STERGERE se va executa următorul cod:

<?php

include_once "authenticate.php";

include '../database.php';

if (isset($_GET['username']))

$username=$_GET['username'];

$sql="delete from clients where username = '$username'";

if (mysql_query($sql))

{

$sql1="delete from reserve_fotbal where name = '$username'";

mysql_query($sql1);

$sql1="delete from reserve_basket where name = '$username'";

mysql_query($sql1);

$sql1="delete from reserve_tenis where name = '$username'";

mysql_query($sql1);

echo "

<script language='javascript' type='text/javascript'>

alert('Stergere cu succes!');

window.location = 'index.php';

</script>:";

}

else{

echo "

<script language='javascript' type='text/javascript'>

alert('Eroare la stergere!');

window.location = 'index.php';

</script>:";

}

?>

Butonul Rezervari se ocupă cu crearea, modificarea și ștergerea rezervărilor. Oferă multiple posibilități de căutare a rezervărilor și de planificare a acestora. Rezervările pot fi căutate după dată, dată și teren, nume chiriaș.

În cazul adăugării sau modificării unei rezervări, dupa alegerea datei se va genera automat un grafic ce arată disponibilitatea terenului, culoarea albastru însemnând că nu este disponibil pentru ca există deja rezervări între acele ore iar culoare alb semnificând diponibilitatea terenului.

Căutarea după nume returnează o listă cu toate rezervările utilizatorului căutat. Administratorul are posibilitatea de a-i reprograma rezervările în altă zi sau în alt interval orar sau de a șterge definitiv rezervarea.

Butonul Noutati oferă opțiunile de a adăuga, modifica sau șterge anunțurile ce apar în secțiunea Noutati de pe pagina principală. Aceste articole sunt pot fi anunțuri, reclame sau oferte care trebuie să fie accesibile fiecărui tip de utilizator, inclusiv vizitatorilor.

Butonul Setari Cont are rolul de a oferi posibilitatea de a modifica informațiile asociate contului: nume de utilizator, parola, adresa de email.

Butonul Log Out șterge cookie-ul utilizatorului și în consecință îl dezautentifică. Acest lucru îl execută următoarea secvență de cod:

<?

setcookie("username", "", time()-3600);

setcookie("password", "", time()-3600);

include_once("authenticate.php");

print "<script type='text/javascript'>window.location='../index.html';</script>";

?>

Meniul pentru tipul utilizator

Meniul pentru tipul utilizator are 3 butoane, acestea fiind:

Rezervări

Setări Cont

Log Out

Butonul Rezervări este similar cu cel prezent în meniul de tilul administrator. Acesta oferă posibilitatea ca utilizatorul să modifice sau să șteargă una sau mai multe din rezervările sale.

Din acest meniu nu se pot crea rezervări noi. Crearea unor noi rezervări se va face din meniul de timpul vizitator. Acest lucru elimină necesitatea de accesare a contului de fiecare dată.

Butonul Setări cont oferă aceleași opțiuni ca și butonul prezent în meniul pentru tipul administrator. Aici utilizatorul poate să își modifice datele personale precum numele, adresa de email, numărul de telefon și parola. Spre deosebire de administratori, aceștia au posibilitatea de a-și șterge definitiv conturile.

Ștergerea unui cont presupune implicit și ștergerea tuturor rezervărilor create de acesta.

În vederea ștergerii contului de utilizator și a tuturor rezervărilor acestuia se va executa următorul cod:

<?

include_once "authenticate.php";

include_once "../database.php";

$username=$_COOKIE['username'];

$password=$_COOKIE['password'];

$sql="DELETE FROM clients WHERE username='$username' and password='$password'";

if (!mysql_query($sql)) {

echo "

<script language='javascript' type='text/javascript'>

alert('Eroare la stergere!');

window.location = 'setari.php';

</script>:";

exit();

}

$sql="DELETE FROM reserve_basket WHERE name='$username'";

mysql_query($sql);

$sql="DELETE FROM reserve_fotbal WHERE name='$username'";

mysql_query($sql);

$sql="DELETE FROM reserve_tenis WHERE name='$username'";

mysql_query($sql);

echo "

<script language='javascript' type='text/javascript'>

alert('Stergere cu succes!');

window.location = '../index.html';

</script>:";

mysql_close($msql);

?>

Butonul Log Out este identic cu cel al meniului de tipul administrator. Se bazează pe aceiași secvență de cod și oferă exact aceiași funcționalitate.

Meniul pentru tipul vizitator

Meniul pentru tipul vizitator are 6 butoane, acestea fiind:

Acasa

Amplasare

Noutati

Rezervare

Contact

Login

Butonul Acasa reprezintă pagina de start a aplicației. Aici sunt prezente câteva informații despre baza sportivă care sunt menite să stârnească curiozitatea vizitatorului și să se recomande.

Butonul Amplasare oferă informați esențiale cu privire la adresa și programul instituției. De asemenea sunt disponibile și două poze pentru informare iar pentru o mai bună ghidare a fost introdusă și o hartă interactivă (Google Maps).

Butonul Noutati are rol în menținerea legăturii dintre clienți si baza sportivă. Aici găsim un panou cu articole scrise de către administratorii website-ului în care putem regăsi anunțuri, oferte, mesaje către vizitatori, etc.

De asemenea, in partea dreaptă vom găsi un panou care afișează cele mai recente rezervări efectuate.

Articolele ce vor apărea în cadrul acestei secțiuni vor fi scrise din panoul de tipul administrator, din cadrul secțiunii Noutați, secțiune prezentată mai sus.

Fiecare articol publicat conține în partea de jos data și ora la care au fost postate. Acest lucru este util pentru ca cei ce-l citesc să poată știi cât de vechi este articolul și dacă mai este de actualitate.

Butonul Rezervare oferă o funcționalitate diferită pentru utilizatori față de vizitatori. Un vizitator poate doar să verifice disponibilitatea de a adăuga rezervări în cadrul zilelor selectate pe cand un utilizator poate să și adauge rezervările. În partea de sus există un mesaj scris mare și clar pentru ca vizitatorii să se poată orienta în vederea plasării unei rezervări.

Disponibilitatea unei zile este reprezentată prin același grafic prezentat și în meniul de tipul administrator.

Butonul Contact oferă posibilitatea ca vizitatorii sau utilizatorii să intre în contact direct cu unul dintre administratori. Aici sunt puse la dispoziție doua posibilități de contact: o serie de numere de telefon sau un formular ce va trimite un email către adresa unuia dintre administratori.

Butonul Login se adresează utilizatorilor înregistrați și oferă posibilitatea de a accesa contul personal. Acest buton îi va trimite la formularul de autentificare sau după caz, direct în contul utilizatorului.

Formularul de autentificare conține un buton care le oferă vizitatorilor posibilitatea de a-și crea pe loc un cont de utilizator.

CAPITOLUL 5.

CONCLUZII

Concluzii

Este deja arhicunoscută importanța internetului în prezent. Oportunitățile oferite de acesta trebuie exploatate de orice firmă care vrea să se dezvolte. Absența firmei și prezența concurenței în mediul online ar putea să aducă o schimbare foarte mare a numărului de clienți.

Un website este realizat o singură dată, și poate fi accesat permanent, la orice oră a zilei de către publicul din orice zonă a planetei. În timp, conținutul unui website poate să fie modificat și actualizat după bunul plac.

La baza aplicației stau limbajele HTML, CSS și PHP. Am folosit limbajul PHP pentru că este foarte des folosit și foarte puternic. În ziua de azi cele mai multe aplicații web sunt dezvoltate în limbajul PHP, fiind ideal pentru clienții care doresc aplicații cu un buget redus.

Posibilități de dezvoltare

Versiunea respectivă a aplicației nu este versiunea finală, ci dimpotrivă prima versiune. Aplicația poate fi îmbunătățită, adăugând noi facilități. Iată câteva lucruri noi care ar putea fi incluse în dezvoltarea acestui program:

Aplicația să poată fi folosită pentru orice bază sportive din țară, fără să conteze numărul de terenuri, bazine sau săli de fitness.

Adăugarea unei ramuri cu aparate de fitness și rezervarea acestora pe interval scurte de timp.

Altă posibilitate de dezvoltare ar fi adăugarea unui forum de discuție unde clienții ar putea comunica între ei și organiza competiții.

Posibilitatea de a adăuga noi terenuri și respectiv noi aparate fitness fără a mai fi necesară reinstalarea bazei da date.

Acestea sunt doar câteva idei de dezvoltare a aplicației, dar având în vedere progresul tehnologiei, mai pot apărea și altele.

Bibliografie:

[Cez2006], Programarea aplicațiilor web cu PHP și MySQL , Ed. Risoprint 2006.

[Well2005], Laura Thomson; Dezvoltarea aplicatiilor WEB cu PHP și MySQL, Editia a II-a (+CD); Editura Teora 2005.

[Gug2005], HTML, XHTML, CSS și XML prin exemple – ghid practic; Editura Teora 2005.

[Sab2003], Aplicatii Web la cheie. Studii de caz implementate in PHP; Editura Polirom 2003.

[Melo2005], INVATA SINGUR PHP, MYSQL ȘI APACHE; Editura Corint 2005.

[Angh2005], Dezvoltarea aplicatiilor WEB folosind XHTML, PHP și MySQL; Editura Polirom 2005.

[Thom2004], Dezvoltarea aplicatiilor WEB cu PHP și MySQL; Editura Teora 2004.

Adrian Munteanu, Valerică Greavu Serban, Rețele locale de calculatoare Proiectare și administrare

http://www.phpromania.ro

Similar Posts