Sistem de Gestiune al Unei Afaceri de Familie

Sistem de gestiune al unei afaceri de familie

Introducere

De ce am ales aceasta temǎ?

Am ales aceastǎ temǎ de licența ținȃnd cont de faptul cǎ trǎim in județul Sibiu, un județ ȋn care avem de toate ȋncepȃnd de la oameni harnici pȃnǎ la locații spectaculoase, avȃnd in vedere poziția geografica. Trǎim ȋntr-un județ ȋn care vin an de an mii de turiști dornici sǎ viziteze imprejurimile, sǎ guste bucatele specifice acestei zone, dar mai ales sǎ se relaxeze. Sibiul este unul din cele mai importante orașe din Transilvania avȃnd ȋn vedere potențialul de dezvoltare economicǎ dar și obiectivele turistice. Turismul este foarte bine dezvoltat ȋn acest județ, iar cetǎțenii din imprejurimi au știut sǎ profite de acest lucru, tot mai mulți localnici au ȋnceput sǎ ȋși deschidǎ propria afacere, vorbim aici despre cabanele și despre pensiunile care se inmultesc de la an la an.

Administrarea unei pensiuni este o afacere excelentǎ pentru familii de oameni harnici, sociabili și cu ambitia de a reusi. O pensiune mica (pentru gǎzduirea a 3-5 familii) se realizeazǎ mai ușor și nu necesitǎ zone mari și numeroase de administrat, iar profitul nu se lasǎ așteptat. Conform unui studiu recent doar 15% din cabanele și pensiunile din mǎrginimea Sibiului sunt construite special pentru a ȋncepe o afacere și restul de 85% sunt case ale localnicilor. Dar pentru ca acestea sǎ aducǎ un profit din ce in ce mai mare este necesarǎ o promovare cȃt mai inteligentǎ. Avȃnd ȋn vedere cǎ traim ȋn era internetului, cea mai bunǎ investiție este cea ȋntr-o pagina web, un site propriu aduce beneficii dacǎ este usor de utilizat și dacǎ acesta conține informații care sǎ te ajute ȋn luarea celei mai bune decizii.

Pentru a satisface cerințele clienților am realizat o aplicație cu o graficǎ ușoara, o aplicație care oferǎ toate informațiile necesare (acces la galeria de poze, detalii despre servicii, restaurant dar și acces la istoricul comentariilor lǎsate de ceilalți turiști pentru a afla cȃt mai multe pǎreri), ȋn plus aplicația permite rezervarea online de camere, farǎ a fi nevoie de rezervare telefonicǎ.

La realizarea acestei aplicații am folosit urmǎtoarele:

PHP( Hypertext Preprocessor) – limbaj de programare folosit pentru a produce pagini web dinamice, este folosit pe scară largă în dezvoltarea paginilor și aplicațiilor web.

Java Script – este un limbaj de programare orientat obiect , folosit pentru introducerea unor funcționalități în paginile web, codul Javascript din aceste pagini fiind rulat de către browser.

Apache – este un server HTTP de tip open source, a jucat și joacă un rol important în dezvoltarea webului, fiind folosit în prezent în circa 65.2 % din paginile web.

MySQL –  este un sistem de gestiune a bazelor de date relațional (cel mai popular open-source la ora actuală).

HTML( Hyper Text Markup Language) – este un limbaj de marcare utilizat pentru crearea paginilor web ce pot fi afișate într-un browser (sau navigator). Scopul HTML este mai degrabă prezentarea informațiilor – paragrafe, fonturi, tabele ș.a.m.d. – decât descrierea semanticii documentului.

CSS (Cascading Style Sheets) –  este un standard pentru formatarea elementelor unui document HTML.

Structura lucrarii:

Lucrarea este ȋmpǎrțitǎ ȋn trei capitole

Capitolul I: Prezentarea mediilor de programare folosite. Generalități, prin care au fost descrise tehnologiile necesare creării proiectului de față.

Sistemul de informații Web 2.0 –acest capitol cuprinde mai mult decât informații despre web 2.0, fiind prezentate și lucruri ce se preconizează, în vederea transformării World Wide Web-ului

Capitolul II: Prezentarea aplicației. Cuprinde detalii de implementare și proiectare, prezentând astfel proiectul ce se alătură lucrării scrise în cauză.

OBIECTIVELE URMĂRITE.

Având în vedere complexitatea aplicației, se poate vorbi despre două tipuri de obiective:

Interfața cu utilizatorul (site-ul WEB):

Design-ul site-ului trebuie să fie atractiv din punct de vedere al modului de aranjare în pagină și al modului de reprezentare a datelor.

Interfața cu utilizatorul trebuie să fie accesibilǎ pentru orice client..

Grijă deosebită în modul de afișare a datelor, cât și păstrarea datelor confidențiale la loc sigur.

Afișarea informațiilor utile pentru client.

Detalierea ofertei.

Interfața de administrare:

Realizarea unei interfețe grafice prietenoase.

Precizarea câmpurilor în urma cărora se realizează anumite interogări ȋn vederea administrǎrii acestui site.

1.Prezentarea mediilor de programare folosite

World Wide Web

World Wide Web reprezintă un sistem de informații care poate fi accesat prin intermediul internetului, din diferite locații, indiferent de serverul pe care sunt stocate.Rețeaua Web apare în 1989,creatorul său, Tim Berners-Lee dorindu-și ca aceasta să functioneze într-un mod cât mai apropiat de creierul uman.Prima pagină web a luat naștere în 1991 ca urmare a dorinței acestuia de a comunica mai ușor cu toți colegii săi în interiorul laboratorului.Pentru crearea acesteia s-a utilizat prima versiune a limbajului HTML de astăzi și anume HTML 1.0.

HTML 1.0 oferea posibilitatea interpretării textului și imaginilor.HTML 2.0 aduce ceva inedit și anume formularele, ce reprezintă o mare contribuție în realizarea interactivității paginilor web.Cea de-a treia versiune, HTML 3.0 prezintă deja componente ce fac munca cu limbajul mai plăcută: tabele,formatări ale paragrafelor,formule matematice și multe altele. HTML 4.0 aduce îmbunătățiri remarcabile asupra structurii și accesibilității limbajului, urmând ca HTML 4.1 să adauge foi de stil și să refacă scripturile ce afișau în anumite browsere erori fatale.

Tehnologia HTML

Acronimul HTML provine de la Hyper Text Markup Language și este un limbaj de marcare ce permite construirea paginilor web statice.Pentru utilizarea sa nu avem nevoie de nicio instalare,ci doar de un browser și un editor de texte simplu, precum Notepad++, care, pe lângă sintaxa altor limbaje, recunoaște și sintaxa html, colorând elementele într-o manieră ce ne permite să ne dăm seama dacă unul dintre ele este scris incorect.Nu se recomandă însă, utilizarea unui procesor de text complex, precum Microsoft Word deoarece acesta va adăuga automat o cantitate de informații ce vor încărca inutil dimensiunile documentul.

De asemenea nu este necesara o conexiune la internet.HTML funcționează doar la nivelul de afișare a conținutului unei pagini web,explicându-și structura: ce caractere încadrează antetul, subsolul și conținutul, paragrafele,listele și celelalte componente.[1]

Markup Language se referă la posibilitatea formatării elementelor dintr-o pagină web:formatarea textului, adăugarea de imagini, fișiere video,legături spre alte pagini web, tabele sau formulare.HyperText reprezintă modul prin care se pot realiza legăturile cu alte pagini web.Elementele limbajului, numite taguri sunt încadrate între paranteze unghiulare și permit afișarea paginii web astfel create, într-un browser.Deși nu este un limbaj case-sensitive se recomandă utilizarea unei convenții de notație a tagurilor cu litere mici.Salvarea documentelor HTML se va face cu extensia corespunzătoare: .html.De asemenea, la afișarea în browser a paginii web create, HTML va transforma mai multe spații consecutive într-unul singur .[2]

Pe lângă editoarele de text obișnuite,se pot utiliza și editoare WYSIWYG,acronimul provenind de la What You See Is What You Get.Acestea permit vizualizarea rezultatului final,în timp ce pagina web este creată prin adăugarea cu ajutorul mouse-ului a elementelor ce se doresc folosite.Editorul va scrie automat codul din spatele elementelor utilizate.Se poate interveni, însă, oricând asupra codului,schimbările pe care le facem afișându-se imediat în pagină.[7]

` Prin convenție, toate informațiile HTML încep cu o paranteză unghiulară deschisă (<) și se termină cu o paranteză unghiulară închisă (>). Acest control – sau marcaj HTML, cum mai

este numit – comunică unui interpretor HTML că documentul este scris și format în limbajul

HTML standard.

Deși multe controale HTML sunt unități de sine stătătoare, unele dintre ele sunt perechi, având controale de început și sfârșit. Controlul de început se numește control de deschidere, iar cel de sfârșit se numește de închidere.

Cel mai important dintre controalele de bază, denumite și tag-uri, este <html>, care specifică faptul că informația care urmează este scrisă în limbajul HTML. Marcajul <html> este de tip pereche, deci trebuie să adăugați un marcaj de închidere la sfârșitul documentului, care este la fel ca marcajul de deschidere, dar are adăugată o bară înclinată: </html>. Orice element situat între marcajul de deschidere și cel de închidere capătă atributul acelui marcaj.

Cele mai importante marcaje nepereche, și cele mai des folosite, specifică trecerea la paragraf nou sau la linie nouă. Acestea sunt <p> și respectiv <br>.

elt Fișierele HTML sunt de obicei împărțite, din motive de organizare, în două secțiuni: antetul (sau headerul) care conține informația introductivă de formatare a paginii și corpul.

Tag-urile precum <head></head> și <body></body> sunt folosite pentru a delimita fiecare secțiune. Pentru un design frumos trebuie folosit titlul, care se face cu ajutorul controlului pereche <title></title> pus, de-altfel în blocul de informații <head></head>. Un control util pentru organizare vizuală a documentului este rigla orizontală care este introdusă de comanda <hr>.

Unelt Referințele către alte pagini exterioare se fac cu ajutorul marcajului <a href=adresa paginii respective></a>. Referințele către locul din cadrul aceluiași document se fac cu ajutorul unui <a name=ancoră internă></a>.

Unelt Tabelele reprezintă o extensie importantă a limbajului HTML, avându-și originea în laboratoarele de dezvoltare ale corporației Netscape Communication. Pentru a construi un tabel trebuie să specificați parametrii tabelului, apoi parametrii fiecărei linii prin comanda <tr></tr> iar, în final, fiecare celulă trebuie înconjurată de marcajele <td></td> date de tabel.

Fundalul (indiferent dacă e o poză sau doar o culoare) se aplică cu ajutorul comenzii <bgcolor=culoarea sau fișierul>. Pentru a introduce o imagine se folosește comanda <img src=sursa fișierului grafic alt=alternativă text pentru afișare, dacă este cazul> [14]

XHTML reprezintă varianta extinsă a HTML-ului, fiind un limbaj de marcare cu aceleași proprietăți, dar având o sintaxă mai strictă.El este vazut ca o încrucișare a HTML-ului cu XML.În cazul său, elementele vor fi întotdeauna scrise cu litere mici,valorile atributelor din cadrul tagurilor vor fi scrise între ghilimele,iar tagurile se vor închide de fiecare dată,inclusiv tagurile nepereche,prin intermediul caracterului “/” înainte de închiderea parantezei unghiulare.Închiderea tagurilor se va face în ordinea corespunzătoare, fără intercalare, după principiul LIFO(Last In First Out) caracteristic stivei.Un document XHTML trebuie să aibă înainte de începerea scrierii codului și o declarație <!DOCTYPE> ce reprezintă așa-numitul mod strict al browserului.<!DOCTYPE> aduce la cunoștință regulile cu care sa se afișeze documentul. Avantajele documentelor XHTML sunt multiple: sunt compatibile cu toate browserele mai noi sau mai vechi, codul fiind mai inteligibil inclusiv pentru browsere .

HTML5 este cea de-a cincia și cea mai nouă versiune a HTML-ului născându-se ca o cooperare între W3C și WHATWG-Web Hypertext Application Technology Working Group.Declaratia <!DOCTYPE html> va fi necesară și în cazul documentelor HTML5.Caracteristicile sale bazate pe HTML, CSS,DOM și JavaScript vor reduce nevoia de plugin-uri externe,cum este Flash.HTML5 introduce o mai bună tratare a erorilor precum și elemente noi: <canvas> pentru grafică 2D, <video> și <audio> pentru media, noi controale de formulare pentru dată, email, calendar, url .Sunt introduse chiar și elemente de conținut noi cum ar fi <header>, <footer> ,<article>, <section>.

HTML5 nu este încă standardul oficial,deci browserele nu îl suportă deocamdată pe deplin.Totuși, majoritatea browserelor continuă să-și adauge la ultimele versiuni elemente HTML5.[15]

HTML5 Canvas reprezintă un standard pentru aplicații scrise în JavaScript ce rulează pe o pagină web.Acesta aduce noi utilități, fiind interactiv reușește să răspundă la acțiunile utilizatorului prin intermediul codului JavaScript.Este un mediu flexibil ce poate construi animații sau afișa diferite forme, imagini sau text.În plus,HTML5 Canvas este acum suportat de majoritatea browserelor și continuă să-și câștige popularitatea.[3]

Comunicația dintre browser și server

Browser-ul este o aplicație ce permite căutarea unor informații și vizitarea unei pagini web printr-un click pe link-ul corespunzător.Acest click va cere o anumită pagină web serverului,pe care o va afișa ulterior în fereastra browser-ului.HTML este cel care pune la curent navigatorul cu conținutul și structura site-ului.

Un server web este un sistem software ce găzduiește site-uri și pagini web,așteptând solicitări de la browsere pentru a găsi diverse imagini,melodii,filme sau alte informații.O dată găsite aceste resurse,server-ul le va trimite înapoi spre browser.[4]

Fig 1.1 – Comunicarea între browser și server

Utilizarea CSS-urilor

elt Odată cu dezvoltarea internetului, site-urile au devenit din ce în ce mai complexe, cu un număr mai mare de pagini, cerințele privind grafica și elementele din pagina au devenit mai pretențioase și astfel proiectarea paginilor web, folosind HTML, a devenit o sarcină ceva mai dificilă.

Unelt O problemă importantă când avem un site cu multe pagini este atunci când sunt dorite anumite schimbări în elementele pagini: fondul, grafica sau fontul textelor din pagini.
Prin utilizarea CSS (Cascading Style Sheets), în traducere "foi de stil în cascada", acest lucru nu mai este o problema, realizându-se relativ ușor, prin schimbarea sau adăugarea unor elemente în codul CSS, ne fiind nevoi să se lucreze la fiecare pagină sau la fiecare element din pagină.

CSS se ocupă în general cu aspectul și controlul grafic al elementelor din pagină, cum ar fi: textul, imaginile, fondul, culorile și asezarea acestora în cadrul ferestrei paginii.
CSS folosește stiluri, acestea înglobeaza, sub un anumit nume, atribute de formatare care se aplică asupra unui element individual din pagina, asupra unui grup de elemente sau la nivelul întregului document. CSS funcționează cu HTML, însă nu este HTML. El extinde funcționalitățile HTML, permițând redefinirea etichetelor HTML existente.
Unelt Prin utilizarea CSS aspectul documentului pe ansamblu, poate fi controlat mult mai ușor. Stilurile pot fi aplicate asupra unui element, a unui document sau chiar asupra unui întreg site web. Un dezavantaj ar fi ca unele navigatoare nu sunt compatibile CSS, astfel ca documentele HTML sunt afișate ca și cum CSS n-ar exista, dar cele mai cunoscute și utilizate browsere, cum ar fi: Mozilla Firefox, Internet Explorer, Opera, și altele, sunt compatibile CSS.

PHP

PHP este limbajul ideal pentru construirea de pagini web dinamice. Este ușor de învățat, open-source, poate fi rulat pe mai multe platforme, și se poate conecta la mai multe tipuri de baze de date. Cel mai important aspect al limbajului este însă posibilitatea de a fi imbricat cu cod HTML. Putem astfel crea pagini HTML statice și din loc în loc, acolo unde este nevoie, să introducem dinamism cu ajutorul PHP –ului , adică un conținut Web care se modifică automat de la o zi la alta sau chiar de la un minut la altul. Conținutul Web este un element important în susținerea traficului unui sit Web; de regulă, vizitatorii nu vor mai reveni la o pagină Web care conține aceleași informații ca și cele prezentate la ultima vizită. Pe de altă parte, site-urile Web frecvent actualizate pot atrage cantități enorme de trafic. Mai mult, spre deosebire de limbajele de scripting, precum JavaScript, PHP rulează pe serverul Web, nu în browserul Web. În consecințță, PHP poate obține accesul la fișiere, baze de date și alte resurse inaccesibile programului JavaScript

PHP-ul este simplu de utilizat, fiind un limbaj de programare structurat, ca și C-ul, Perl-ul sau începând de la versiunea 5 chiar Java, sintaxa limbajului fiind o combinație a celor trei. Fiind open-source, PHP-ul beneficiază de un support mai mult decât activ din partea comunității online, iar datorită acestui suport,creșterea numărului de site-uri bazate pe PHP este din ce in ce mai mare.

PHP este una dintre cele mai interesante tehnologii existente în prezent. Deoarece îmbină caracteristici dintre cele mai complexe cu simplitatea în utilizare, PHP a devenit rapid un instrument de frunte pentru dezvoltarea aplicațiilor în Web.

Cand scriem programe în C, folosim un mediu integrat de dezvoltare (IDE*) precum Microsoft Visual C++, care reprezintă o gazdă a unor caracteristici speciale, care simplifică proiectarea, codificarea și testarea programelor. Avantajul scrierii scripturilor PHP este folosirea editoarelor de texte obisnuite, putem folosi orice editor de text dorim sub Microsoft Windows putem folosi notepad-ul sau daca folosim UNIX sau Linux putem crea scripturi cu ajutorul programelor vi sau pico.

Crearea unui script PHP

Scrierea scheletului programelor PHP

Fiecare program PHP include două linii speciale, care indică serverului PHP că textul cuprins intre cele două linii este alcătuit din instrucțiuni PHP. Practic, aceste linii pot fi asimilate copertelor unei cărți, care păstrează unitatea programului dumneavoastră PHP.

<?

Cod php

?>

Numele fișierului trebuie să fie alcătuit numai din caractere minuscule, cifre și liniuțe. Utilizarea spațiilor și a altor caractere este interzisă. Extensia numelui fișierelor trebuie să fie .php

Crearea datelor de ieșire pentru un browser Web

Programele PHP execută trei categorii de operații elementare:

• Obțin date de la un utilizator.

• Execută prelucrări ale datelor, respectiv obțin accesul la datele stocate in fișiere și baze de date și le manipulează.

• Afișează date astfel incat un utilizator să le poată vizualiza.

Cu ajutorul lui echo putem afișa un string, o variabilă, un string ce conține variabile sau

rezultatul unei funcții. Textul ce urmează a fi afișat trebuie inclus între ghilimele simple sau duble, rezultatul fiind ușor diferit. Folosind ghilimelele duble orice variabilă din cadrul stringului este parsată, daca folosim ghilimele simple variabilele nu vor fi parsate.

Exemplu:

<?

// să setăm valoarea lui a ca fiind 4, respectiv b fiind 5.

$a = 4;

$b=5;

$rezultat = $a+$b;

echo "Rezultatul adunării. lui $a cu $b este $rezultat";

?>

Folosind ghilimele duble:

echo "Rezultatul adunării. lui $a cu $b este $rezultat";

va afisa:

Rezultatul adunarii lui 4 cu 5 este 9

Daca am folosi in loculul ghilimelelor duble ghilimele simple:

echo ’Rezultatul adunării. lui $a cu $b este $rezultat’;

va afisa:

Rezultatul adunării. lui $a cu $b este $rezultat

Documentarea unui script PHP

In afară de a furniza nume descriptive fișierelor care conțin scripturii PHP, este recomandat ca in fiecare script sa fie incluse și comentarii care să permită unui cititor să determine cu ușurință utilitatea scriptului, cat și alte informații referitoare la script.Textul introdus prin semnele // dar si prin perechile de semne /* …*/ nu este afișat si nu poate fi văzut chiar daca dam click dreapta pe mouse si alegem ViewSource in Browser. Acestea sunt comentarii care nu sunt procesate de server. Diferența intre cele doua este ca, comentariile care încep cu // sunt comentarii pe o singura linie (pe un singur rând) pe când comentariile care se scriu intre /* ..*/ sunt comentarii pe mai multe rânduri. Aceasta ultima forma este folosita de programatori pentru a delimita anumite bucati de cod pentru a-l depana sau a-l controla mai bine

Elementele constructive ale limbajului PHP

Numere și șiruri

Programele de calculator manipulează datele, care reprezintă informații. Programele PHP

folosesc două categorii principale de date: numere și șiruri. Numerele sunt compuse mai ales

din cifre, in timp ce un șir poate conține orice caracter, inclusiv cifre, litere și simboluri speciale.

Decizia privind modul de stocare a datelor este importantă, in mod caracteristic, datele se

stochează sub formă de numere atunci cand se dorește executarea unor operații matematice

asupra datelor, deoarece numerele sunt stocate intr-un mod care permite efectuarea de calcule.

Pe de altă parte, șirurile sunt stocate folosind o modalitate care facilitează ințelegerea lor de către operatorul uman. Datele trebuie stocate sub formă de șiruri dacă formatul acestora nu este numeric sau dacă doriți ca operatorul uman să fie capabil de a introduce sau de a vizualiza datele.

Numere

PHP folosește două categorii de numere: intregi și duble. Numerele intregi reprezintă numerele fără parte fracționară folosite la numărare, plus zero și numerele negative. Cu alte cuvinte, in PHP termenul de intreg are aceeași semnificație ca și in matematică. De exemplu, numărul 100 poate fi reprezentat in PHP sub formă de intreg. Numerele duble, spre deosebire de intregi, reprezintă valori numerice care pot include fracții zecimale, ca de exemplu 2,5. Numerele duble sunt sinonime cu numerele reale din matematică. Uneori, numerele duble mai sunt denumite și numere cu virgulă mobilă .

Valori literale și variabile

Categoriile de valori prezentate pană acum se numesc valori literale. Deseori, este convenabil să atribuim un nume unei valori, similar procedeului comun folosit in algebră. O valoare cu nume se numește variabilă, deoarece este posibilă modificarea valorii asociate numelui. Prin contrast, o valoare literală este fixă. PHP impune cateva reguli asupra numelor variabilelor, astfel incat să poată face imediat diferența dintre variabile și numere, șiruri și alte elemente de program. Iată o metodă de formare a unui nume corect de variabilă PHP:

1. Se incepe cu simbolul dolarului (Ș).

2. După simbolul dolarului, se scrie o literă sau o liniuță de subliniere ( _ ). Litera poate fi

scrisă cu majuscule sau minuscule.

3. Se continuă prin a adăuga oricate litere, cifre sau liniuțe de subliniere se doresc.

Iată cateva exemple de nume de variabile corecte și incorecte:

$lungime (Corect)

$x (Corect, dar nu foarte descriptiv)

Y (Incorect, nu începe cu semnul dolarului)

$1side (Incorect, semnul dolarului nu este urmat de o literă sau de un caracter de

subliniere)

$a+b (Incorect, conține semnul plus acolo unde sunt permise numai litere,

cifre șicaractere de subliniere)

Operatori și funcții

Pentru a ușura efectuarea de calcule și prelucrări ale datelor, PHP include o diversitate de operatori și funcții utile. Cand se combină valorile literale și variabilele cu operatori și funcții, se construiește ceea ce este cunoscut sub numele de expresii.

Operatori

PHP include operatorii familiari folosiți pentru executarea operațiilor aritmetice: + Adunare,

– Scădere, * Înmulțire, / Împărțire

Funcții

In afară de operatori, PHP include funcții care execută operații utile. Iată unele exemple de

functiii: abs(x),ceil(x),floor(x), max(x,y,…), min(x,y,…), pow(x,n), sqrt(x)

Structuri de control

Expresiile condiționale sunt esențiale pentru scrierea instrucțiunilor condiționale, prin care se iau decizii.

Cea mai simplă instrucțiune condițională este instrucțiunea if, care execută două operații. Mai intai, evaluează o expresie condițională. Apoi, dacă și numai dacă valoarea expresiei condițional1e este true, instrucțiunea if execută o instrucțiune specificată.

Exemplu:

if ($a > 10)

echo „a este un numar mai mare decat 10”;

else

echo „a este un numar mai mic decat 10”;

Scrierea instrucțiunilor for

Instrucțiunea for este o instrucțiune buclă, care execută in mod repetat instrucțiunile asociate.

Exemplu

$suma = 0;

for ($contor =1; $contor<=10; $contor++)

$suma += $contor;

Scrierea instrucțiunilor while și do while

Practic, instrucțiunile while și do while reprezintă versiuni „manuale" ale instrucțiunii for.

Dacă o instrucțiune for are trei expresii, o instrucțiune while sau do while una singură, și

Anume expresia de test. Așa cum se intamplă de obicei, expresiile unei instrucțiuni for sunt

opționale; fără o expresie de inițializare sau o expresie pas. Instrucțiune for operează in

același mod ca o instrucțiune while. In consecință, următoarele două instrucțiuni sunt

echivalente:

Exemplu:

$suma = 0;

for ($contor =1; $contor<=10; $contor++)

$suma += $contor;

$suma = 0;

$contor =1;

while($contor<=10)

$suma += $contor;

$contor=$contor+1;

Java Script

JavaScript (JS) este un limbaj de programare orientat obiect bazat pe conceptul 

prototipurilor. Este folosit mai ales pentru introducerea unor funcționalități în paginile web, codul Javascript din aceste pagini fiind rulat de către browser. Limbajul este binecunoscut pentru folosirea sa în construirea siturilor web, dar este folosit și pentru acesul la obiecte încastrate (embedded objects) în alte aplicații.

A fost dezvoltat inițial de către Brendan Eich de la Netscape Communications Corporation sub numele de Mocha, apoi LiveScript, și denumit în final JavaScript. În ciuda numelui și a unor similarități în sintaxă, între JavaScript și limbajul Java nu există nicio legătură. Ca și Java, JavaScript are o sintaxă apropiată de cea a limbajului C, dar are mai multe în comun cu limbajul Self decât cu Java.

Adaugarea JavaScript intr-o pagina HTML

Pentru a insera cod JavaScript într-un document HTML deja existent, este necesară introducerea în fișier a etichetelor pereche: <script> respectiv </script>. Eticheta de început necesita unul din atributele: "type" sau "language" (cu precizarea ca acesta din urma este depreciat in standardul XHTML) care va specifica browser-ului limbajul folosit pentru interpretarea codului inclus.

In interiorul etichetelor <script> . . . </script> vom scrie codul dorit.

– Atributul "language" (folosit doar in paginile web standard HTML, nu este folosit in XHTML,), va avea urmatoarea sintaxa:

<script language="JavaScript">

aceasta specifica browser-ului ce limbaj este folosit

– Atributul "type" – inlocuitorul/alternativa lui "language" cu urmatoarea sintaxa:

<script type="text/javascript">

atributul spunând browser-ului ca scriptul este scris in format plaintext.

Conventii de sintaxa

– Limbaj Case-sensitive – adică face diferenta intre literele mari si cele mici

– Punct si virgula (;) – Toate declaratiile trebuie sa se termine cu secvența "punct si virgula" (;)

– Spatiile libere – JavaScript ignora spatiile libere, tab-urile si liniile libere care apar în instructiuni, acestea sunt utile pentru a face codul mai bine structurat si usor de citit. Recunoaste doar spatiile care apar în string-uri

– Ghilimelele – Ghilimelele simple ('…') si respectiv duble ("…") sunt folosite pentru a delimita sirurile de caractere (string).

– Comentarii – comentariile in interiorul codului sunt necesare cand dorim sa specificam rolul

anumitor functii si variabile, pentru o mai usoara intelegere ulterioara a scriptului. Pentru a adauga

un comentariu, pe o singura linie, in interiorul codului, incepem scrierea acestuia cu succesiunea //

daca dorim sa scriem comentarii pe mai multe randuri, se foloseste /* la inceputul comentariului si

*/ la sfarsitul acestuia

– Numele variabileler si functiilor primul caracter poate fi doar una din următoarele: o litera sau

un caracter de subliniere (_) sau semnul $, numele nu trebuie sa contina spatii libere.

Tipuri de date

Nedefinit: valoarea de "undefined" este atribuită la toate variabilele neinițializate, și, de asemenea, într-un context boolean, valoarea undefined este considerat o valoare de fals.

NULL: spre deosebire de nedefinit, nul este de multe ori setat pentru a indica faptul că ceva a fost declarat, dar a fost definit pentru a fi gol. Într-un context boolean, valoarea nulă este considerată o valoare de fals în JavaScript.

String: un string (sau șir) în Javascript este o secvență de caractere cuprinsă între ghilimele duble sau single.

Boolean JavaScript oferă un tip de date Boolean cu valorile true și false. Operatorul returneaza șirul "boolean" pentru aceste tipuri de primitive.Atunci când este utilizat într-un context logic, 0 , -0 , null , NaN , undefined , iar șir vid ( "" ) evaluează în false din cauza constrângerii automate.

Array: Un „Array” (sau „tablou”, „matrice”) este un obiect JavaScript proiectat pentru a stoca valori de date indexate de chei întregi. Matricea, spre deosebire de tipul de obiect de bază, se patentează cu metode si proprietati pentru a ajuta programatorul în sarcini de rutină (de exemplu, join , slice , și push ).

Structuri de control

– If … then … else:

if ( expr )

{ // Declaratii; }

else if ( expr2 )

{ //Declaratii; }

else { //Declaratii; }

– Operatorul condițional:

Operatorul condițional creează o expresie care evaluează ca una din cele două expresii, în

funcție de o condiție.Acest lucru este similar cu situația în cazul în care selectează una din cele două declarații de a executa, în funcție de o condiție.

Rez = Conditie? Expresie1 : Expresie2;

Instructiunea de mai sus este echivalenta cu urmatoarea:

if ( Conditie ) {

Rez = Expresie1 ;

} else {

Rez = Expresie2 ;

}

Spre deosebire de declarația “if”, în această instrucțiune nu poate fi omisă ramura "else".

– Instrucțiunea repetitiva for

for ( index=0 ; index< n ; index++)

{

//Declaratii ce vor fi executate cat timp conditia este indeplinita

}

sau

for ( var index in array )

{

// Declarații folosind array [index];

}

Functii

Fiecare funcție în Javascript este o instanta a obiectului Function

Exemplu:

var add = new Function ( 'x' , 'y' , 'return x+y' ) ;

var t = add ( 1 , 2 ) ;

alert ( t ) ; //3

Funcția “add” de mai sus poate fi, de asemenea, definită folosind următorul model.

function add ( x , y )

{

return x + y ;

}

var t = add ( 1 , 2 ) ;

alert ( t ) ; //3

O instanță a unei funcți are proprietăți și metode.

function subtract ( x , y )

{

return x – y ;

}

alert ( subtract. length ) ; //2,expected amount of arguments.

alert ( subtract. toString () );

Obiecte

Obiectele sunt entități care au o identitate (ele sunt doar egale cu ele însele) și care mapeaza proprietatile valorilor ("sloturi", în prototip terminologia de bază a programarii).

Obiectele pot fi gandite ca tablouri asociative sau hashes, și sunt adesea puse în aplicare cu ajutorul acestor structuri de date. JavaScript are cateva tipuri de obiecte built-in, și anume Array, Boolean, Date, Function, Math, Number, Object, RegExp and String.

Crearea obiectelor

Obiectele pot fi create folosind un constructor sau un obiect literal. Constructorul poate utiliza fie o funcție încorporată în obiect sau o funcție particularizată. Este o convenție ca funcțiile de constructor sa fie date de un nume care începe cu o litera mare:

// Constructor

var anObject = new Object () ;

// Obiect literal

var objectA = { } ;

var objectB = { index1 : 'value 1' , index2 : 'value 2' } ;

Metode

O metodă este pur și simplu o funcție care este atribuită unui obiect. Spre deosebire de multe limbaje orientate obiect, nu există nici o distincție între o definirea unei funcții și definirea unei motode. Mai degrabă, distincția se produce în timpul apelarii funcției, o funcție poate fi apelata ca o metodă. Atunci când este apelata ca o metodă, variabila locala standard care este setata automat la instanța obiectului de la stânga ei.

Constructori

Funcțiile Constructor atribuie pur și simplu valori pentru un obiect nou creat. Valorile pot fi date sau alte funcții.

Exemplu: Manipularea unui obiect

function MyObject ( attributeA , attributeB ) {

this . attributeA = attributeA ;

this . attributeB = attributeB ;

}

MyObject. staticC = "blue" ;

alert ( MyObject. staticC ) ; // blue

obj = new MyObject ( 'red' , 1000 ) ;

alert ( obj. attributeA ) ; // red

delete obj ; // elimina întregul obiect (foarte rar folosit)

alert ( obj. attributeA ) ; // aruncă o excepție

Apache

Apache este un server web cu o contribuție notabilă la dezvoltatea Internetului (world wide web). Apache a reprezentat prima alternativă viabilă la Netscape Communications Corporation, și a evoluat rapid în funcționalitate și performanță ca un rival competitiv pentru alte servere web bazate pe Unix.

Apache este dezvoltat de o comunitate deschisă de programatori sub emblema Apache Software Foundation. Aplicația este disponibilă pentru o mare varietate de sisteme de operare incluzând Unix, Linux, Solaris, Microsoft Windows, etc. 

Serverul Apache este caracterizat ca fiind un software gratuit și open source, acesta făcând ca, începând din aprile 1996, el să fie cel mai popular server HTTP. Cu toate că în noiembrie 2005 a început să piardă din cota de piață, în aprilie 2008 Apache stătea încă la baza a peste 50 % din siturile web, iar în iunie 2013 a ajuns la 65.2%.

Prima versiune a serverului a fost creată de Robert McCool, care la vremea aceea era implicat în proiectul National Center for Supercomputing Applications.

A doua versiune a serverului a fost o rescriere substanțială, de data aceasta punându-se accentul pe crearea unui layer prioritar (Apache Portable Runtime) și a suportului de module.

Apache suportă o mare varietate de module care îi extind funcționalitatea, acestea variază de la server side programming și până la scheme de autentificare. Câteva limbaje suportate sunt: mod_perl, mod_python, Tcl si PHP. O altă calitate a serverului Apache este virtual hosting (găzduirea virtuală), care constă în posibilitatea de a găzdui mai multe situri simultan pe același server.

Principalul competitor al serverului Apache este Microsoft Internet Information Services (IIS), urmat de Sun Java System Web Server al companiei Sun Microsystems și multe altele.

Apache este folosit de unele din cele mai mari situri din lume. Astfel, motorul de căutare folosit de Google folosește o versiune modificată de Apache numită Google Web Server (GWS), inclusiv Wikipedia rulează tot pe un server Apache.[16]

MySQL

MySQL este un sistem dinamic și rapid în ceea ce privește gestiunea bazelor de date relaționale. Într-o bază de date, utilizatorul are anumite drepturi, precum: să stocheze, să caute, să sorteze și să regăsească datele în mod eficient. Acesta este disponibil sub o licență Open Source, dar are și anumite versiuni comerciale. MySQL poate fi folosit atât pe platforme Windows, cât și Unix, iar codul sursă poate suporta anumite modificări și poate fi redistribuit gratuit. El este sigur deoarece accesul la bazele de date se face prin autentificarea utilizatorului, sistemul de securitate es te flexibil și sigur, permițând astfel verificarea pe baza host-ului.

Pentru a înțelege mai bine despre ce este vorba și cum lucrează sunt necesare de menționat câteva noțiuni generale.

Noțiuni generale despre Baza de Date în SQL

Este necesar să înțelegem că bazeșe de date MySQL se bazează pe sintaxa și modul de existență al bazelor de date construite cu SQL.

SQL este unul dintre cele mai populare limbaje de programare folosite pentru bazele de date și de aceea este ales în mod deosebit pentru crearea lor. Structured Query Language (SQL – limbajul structurat de interogare) este limbajul standard folosit pentru manipularea și regăsirea datelor din aceste baze de date relaționale.

Prin SQL, un programator sau un administrator de baze de date are următoarele responsabilități:

să modifice structura unei baze de date ;

să administreze securitatea sistemului;

să adauge drepturi utilizatorilor asupra bazelor de date sau tabelelor;

să actualizeze coținutul unei baze de date.

Pentru dezvoltare și întreținerea acestor sarcini este nevoie de desfășurarea următoarelor etape:

Crearea unei baze de date MySQL si a unui tabel

Un La creare o bază de date nu conține tabele. Pentru a crea o baza de date și apoi un tabel într-o baza de date, trebuie folosit un sub-limbaj SQL special, acesta purtând numele de Data Definition Language (DDL). Se pot folosi comenzi DDL și alte comenzi SQL prin intermediul unui interpretor SQL sau prin intermediul PHP. Pentru început va fi prezentat modul de emitere a comenzilor SQL folosind un interpretor SQL.

După instalarea MySQL, se deschide interpretorul "MySQL Command Line Client" (asemănător cu, "Command Promt") în care se scrie comenzile SQL (În general, SQL nu este sensibil la diferența între majuscule și minuscule. Deci, se pot scrie comenzile dupa preferință, cu majuscule sau minuscule). O regulă importantă este că, după scrierea comenzilor, la sfârșit trebue să fie caracterul "punct și virgula" (;).Pentru a crea o baza de date, se folosește următoarea comandă:

CREATE DATABASE nume_db;

Unde "nume_db" este numele bazei de date care se crează.
Înainte de a crea un tabel sau a lucra cu alte comenzi într-o baza de date, trebuie intrat în baza de date existentă, acest lucru se face folosind comandă:

USE nume_db;

Unde "nume_db" este numele bazei de date. Cu aceeași comandă "USE nume_db" se schimbă și baza de date în care începe lucru.
Pentru a crea un tabel într-o baza de date, se emite comanda "CREATE TABLE", care are următoarea formă:

CREATE TABLE tabel (coloana tip, coloana tip, …);

Unde "tabel" este numele tabelului, "coloana" este numele unei coloane, "tip" este tipul datelor incluse în coloana, se poate specifica un număr nedefinit de coloane.

1.7.2 Instrucțiuni SQL.

Unelt Pentru început este necesară o definire a datelor care fac parte din modulul corespunzător componenței DDL din SGBD.

Cu toate acestea, în majoritatea implementărilor SQL comenzile de definire a datelor sunt prelucrate de același interpretor care rezolvă, atât interogările, cât și operațiile de manipulare a datelor.

Există posibilitatea folosirii unor instrucțiuni simple pentru crearea unei baze de date, adică se poate face print-un simplu click de mouse, dar și cu intrucțiuni mai grele, însă astfel de comandă nu e standardizată.

CREATE TABLE nume_tabel

(câmp1 tip_dată[NOT NULL],

câmp2 tip_dată[NOT NULL],

câmp3 tip_dată[NOT NULL],…)

Această intrucțiune crează un tabel și definește structura unei înregistrări precum și tipurile de date asociate câmpurilor. O regulă foarte importantă este că numele tabelului trebuie să fie unic în BD. Clauza NOT NULL arată că în câmpul respectiv nu se memorează valori de tip NULL.

ALTER TABLE nume_tabel

ADD nume_câmp tip_dată

Adaugă un câmp la un tabel existent, însă ștergerea unui câmp nu este posibilă.

Ștergerea completă a unui tabel din BD se face cu instrucțiunea:

DROP TABLE nume_tabel

Ștergerea BD se face cu intrucțiunea:

DROP TABLE nume_bd

După aceasta, se pot utiliza instrucțiuni pentru selecții de date.

Instrucțiunile de selecție reprezintă una din categoriile cele mai importante ale limbajului SQL ACCESS. Indiferent dacă sunt cereri simple sau complexe, cuvântul cheie este SELECT. Pentru cererile de interogare simple, sintaxa instrucțiunii este:

SELECT [domeniu] listă_selecție

FROM nume_tabel1, nume_tabel2, …

[WHERE criteriu_selecție]

[ORDER BY câmpuri_criteriu[ASC|DESC]];

”Domeniu”Specifică o opțiune de includere sau eliminare din rezultatul selecției, a

înregistrărilor care conțin duplicate. Opțiunile posibile sunt:

– ALL cere includerea tuturor înregistrărilor care îndeplinesc condițiile impuse, precum instrucțiunile SELECT tabel și SELECT ALL tabel, care au același rezultat practic,dar calificativul ALL este rar folosit.

– DISTINCT cere eliminarea înregistrărilor care conțin duplicate în câmpurile selectate, afișând numai o apariție a acesteia.

– DISTINCTROW cere eliminarea înregistrărilor care conțin duplicate în ansamblul lor, nu numai în câmpurile selectate, afișând numai o apariție a acesteia.

Listă_selecție cuprinde câmpurile care dorim să apară în tabelul cu rezultatele interogării.

Similar cu cu aceasta este: Field … Show …din grila de proiectare QBE.

Clauza FROM specifică numele tabelului sau tabelelor pe care se face cererea de

nterogare.Pentru mai multe tabele, numele acestora se separă cu „ ,”. Pe lângă tabele, ca sursă de informații pot aparea și interogări deja create.

Clauza WHERE cere numai înregistrările care îndeplinesc criteriul de selecție specificat.

Criteriul de selecție este o expresie care conține obligatoriu și un operator adecvat tipului de data

al câmpului respective, aceasta clauză, WHERE, este opțională.

Clauza ORDER BY cere ordonarea în mod crescător (ASC) sau descrescător (DESC) a

rezultatelor interogării. Ordonarea este opțională și se poate face după unul sau mai multe

câmpuri_criteriu.

Tipuri se date

Tipurile de date care apar în coloanele MySQL sunt diferite în funcție de ceea ce se urmărește a fi exprimat. MySQL aloca spațiu pe disc în funcție de tipul de date specificat de utilizator. De exemplu: un tabel cu salariații unei firme, care să conțină o coloana pentru numărul de zile de concediu legal. Dacă se setează respectiva coloană ca fiind TINYINT Pentru fiecare înregistrare în coloana zile_concediu, MySQL va aloca 1 byte de memorie, indiferent dacă un angajat are 2 zile de concediu și altul are 18. Dacă același câmp îl setează ca INT, MySQL va aloca fiecărei înregistrări în coloana 4 bytes, indiferent de numărul de zile de concediu introduse și astfel pentru fiecare înregistrare (fiecare angajat) se vor pierde 3 bytes. Acesta este doar un exemplu, dar poate exista la un moment dat o bază de date cu 10 milioane de înregistrări și atunci pierderea a 3 bytes la fiecare înregistrare se traduce în câteva zeci de MB de spațiu.[17]

Iată și tipurile de date, spațiul pe care îl ocupă precum și valorile minime și maxime pe care le pot avea:

Tabel 1.3.1 Tipuri de date în MySQL

Toate tipurile de mai sus au un atribut opțional și anume UNSIGNED. Se poate folosi acest atribut în definirea tipului de date al unei coloane atunci când se dorește să conțină doar valori pozitive. Un câmp de tip TINYINT va putea conține numere între -128 și 127 în timp ce alt câmp, TINYINT UNSIGNED va putea avea valori între 0 și 255. La fel, pentru SMALLINT valorile sunt de la -32768 până la 32767 în timp ce pentru SMALLINT UNSIGNED ele pot fi între 0 și 65535.

Relații între tabele

Pentru a organiza datele într-o bază de date se folosesc mai multe moduri, dar bazele de date relaționale sunt unele din cele mai eficace. Sistemele bazelor de date relaționale, se folosesc în problema organizării efective a datelor. Într-o bază de date relațională, datele sunt adunate în tabele (denumite relații în teoria relațională).
Unelt O tabelă este o anumită clasă de obiecte, fiind importantă pentru o organizație. Când se organizează datele în tabele se pot găsi mai multe moduri diferite de a defini tabelele. Teoria bazelor de date relaționale definește un proces normalizat prin care se asigură că setarea tabelelor definite de utilizator vor organiza efectiv datele.
Unelt O bază de date în MySQL Server constă într-o colecție de tabele care stochează un set specific de date structurate. O tabelă conține o colecție de linii și coloane. Fiecare coloană în tabelă este proiectată pentru a stoca un anumit tip de informație (de exemplu nume, date, etc.). Tabelele au câteva tipuri de controale (constrângeri, reguli, triggere, valori implicite și tipuri de date definite de utilizator) care asigură valabilitatea datelor. Tabelele pot avea indecși care permit găsirea rapidă a liniilor. Constrângerile DRI (Declarative Referetial integrity) pot fi adăugate tabelelor pentru a asigura cǎ datele intercorelate în diferite tabele rămân compatibile. [17]

2. Sistemul de informații Web 2.0

Web 2.0 este un termen ce descrie a doua generație World Wide Web, concentrându-se pe oferirea abilității de a colabora și de a împărți informații online.Acesta se referă practic la tranziția de la HTML-ul static la pagini web mult mai dinamice precum și la avansarea comunicației prin intermediul internetului.Web 2.0 cuprinde bloguri, portaluri, site-uri de schimb de imagini, filme și fișiere video, cloud computing dar și rețelele de socializare.Tehnicile utilizate de Web 2.0 datează de la sfârțitul anilor 1990, astăzi cunoscând o răspândire foarte amplă.Dar până la apariția terminologiei Web 2.0, a existat și există încă sistemul de informații Web 1.0

2.1 De la Web 1.0 la Web 2.0

Înainte de a vorbi despre Web 2.0, a existat Web 1.0 ce a luat naștere ca o necesitate de comunicare într-un spațiu relativ mic și anume într-un laborator.Web 1.0 se rezuma doar la afișarea conținutului unei pagini web statice,fără niciun fel de interacțiune.Ca și caracteristici principale, se poate afirma, deci, că site-urile Web 1.0 sunt statice,fără interactivitate,iar aplicațiile sunt sub proprietate,utilizatorii beneficiând de dreptul la descărcare,dar fără a avea dreptul de vizualizare a codului sursă sau de a face modificări.Faptul că aceste site-uri erau statice,nu ofereau utilizatorilor un motiv de a reveni a doua oară asupra aceleiași pagini web.Acestea conțineau informații utile,dar fără o actualizare a conținutului își pierdeau puterea de atracție.Totuși anumite elemente caracteristice Web-ului 2.0 erau prezente și la Web 1.0, cele două versiuni ale sistemului de informații fiind imposibil de separate pe o axă a timpului.

In ciuda aparențelor și numeroaselor funcționalități oferite de Web 2.0,există cazuri în care abordarea versiunii Web 1.0 este mai adecvată.Un exemplu sugestiv este cazul Wikipediei care reprezintă o sursă de informații.Această enciclopedie online permite vizitatorilor să facă schimbări asupra celor mai multe articole.Astfel există posibilitatea postării unor informații false sau derutante, oamenilor fiindu-le permisă adăugarea sau modificarea conținutului chiar într-un mod eronat.Deși moderatorii fac constant verificări asupra acestor informații, nu există garanția acurateței lor.

Limita dintre Web 1.0 și Web 2.0 nu este întotdeauna clară.Dacă ne gândim la un site foarte static,dar care include o secțiune de comentarii ale vizitatorilor, putem spune că site-ul abordează Web 1.0,dar comentariile reprezintă o tehnică Web 2.0. Din acest motiv, experții web dezaprobă clasificarea paginilor.

Tranziția între Web 1.0 și Web 2.0 poate fi văzută ca rezultatul rafinării tehnologiilor web, îmbunătățirii capacităților browserelor și dezvoltării interactivității prin Ajax, Flash și PHP.

De asemenea se renunță la materialele read-only, fiind permisă contribuția utilizatorilor sau vizualizarea, într-o oarecare măsură, a codului sursă pentru diferite aplicații sau pagini web.[1]

2.2 Caracteristici Web 2.0

Numit inițial “Web-ul ca și platformă”, termenul Web 2.0 a fost inventat de Tim O’Reilly în cadrul unei conferințe legate de noua generație de concepte și aspecte Web.

Cele mai semnificative diferențe dintre Web 1.0 și Web 2.0 sunt date de colaborarea între utilizatori și conținutul interactiv.Au loc două schimbări fundamentale: web-ul participativ ce permite utilizatorilor atât sa scrie cât și să citească conținut și apariția așa-numitului cloud computing.Apar progrese tehnice,răspândindu-se conexiunile la internet, hardware-ul performant și tehnologiile web capabile să creeze pagini dinamice, cu timp de reacție rapid, asemeni aplicațiilor desktop.

Astfel, după o perioadă în care internetul era bun doar la furnizarea de informații consumate pasiv de utilizatori, acesta devine un mediu interactiv.Utilizatorii de până acum, pot deveni la rândul lor creatori prin intermediul blogurilor sau pot participa activ la completarea sau modificarea unor informații pe enciclopediile online.

Pe lângă Ajax și alte tehnologii noi,Web 2.0 se bazează pe API-uri pentru servicii web, asigurarea unei experiențe bogate, inteligență colectivă, perpetual Beta care se referă la oferirea gratuită a versiunilor beta ale aplicațiilor, în vederea testării acestora și convingerii potențialilor clienți.

Cloud Computing se referă la încercarea internetului de a semăna tot mai mult cu un desktop, serverele furnizând nu doar date, ci și aplicații complexe,prin intermediul unui browser.Dreptul de acces la date și confidențialitatea au un rol important,fiind imposibilă pierderea sau furarea lor.De asemenea,un utilizator poate lega la cloud mai multe dispozitive, datele acestuia continuând să se sincronizeze.[15]

Fig 2.1-Web 1.0 vs. Web 2.0

2.3 Web 3.0

Se consideră că noua generație de Web și anume Web 3.0 o să se comporte ca un asistent personal.Acest lucru s-ar explica prin capacitatea de personalizare a utilizatorului de către browse.Pe măsură ce sunt realizate căutări, browser-ul se familiarizează cu interesele utilizatorului ceea ce va duce la o acuratețe deosebită a rezultatelor căutărilor.Deci,pentru doi utilizatori ce flosesc aceiași termeni, rezultatele găsite vor fi diferite, în funcție de profilul lor personal.Astfel, după ce browser-ul și-a creat un profil al utilizatorului, în funcție de preferințele deduse din istoric și locația acestuia, el va putea răspunde chiar la întrebări precum „unde aș putea lua cina?”, sugerând liste de restaurante.De asemenea, interogările utilizatorilor ar putea fi mai ample, browser-ul reușind să răspundă simultan la două căutări diferite îmbinate în aceeași frază.

Motoarele de căutare actuale întorc ca rezultate pagini web ce conțin cuvintele cheie folosite de utilizator, fără a se preocupa de relevanța lor.Pentru Web 3.0, motoarele de căutare vor fi capabile să interpreteze cererile în funcție de context, tratând internetul ca pe o uriașă bază de date de informații disponibile pentru orice căutare.

Unii experți condiseră că Web 3.0 va fi fondat pe API-uri.API-urile sunt interfețe ce ajută programatorii să creeze aplicații beneficiând de anumite seturi de resurse.Multe dintre site-urile Web 2.0 au API-uri ce oferă diferite facilități.[8]

Cea de-a doua caracteristică ce va fi specifică Web 3.0 este Web-ul semantic.Prin intermediul lui, calculatoarele vor scana și interpreta informațiile din paginile web folosind agenți software, adică programe ce explorează internetul în căutarea rezultatelor relevante.Ceea ce le va permite agenților software acest lucru sunt colecțiile de informații ale web-ului semantic, numite ontologii ce vor lega termeni aflați in relație.

O altă trăsătură pentru Web 3.0 va consta în îmbunătățirea GPS-urilor printr-o comparație cuprinzătoare a rezultatelor căutărilor personalizate cu locația exactă a utilizatorilor.Acest serviciu ar putea fi facilitat printr-un mashup a două sau mai multe aplicații, precum Google Maps și review-uri la hotelurile învecinate.

Tom Jenkins, director la Open Text consideră că Web 3.0 este probabil la o distanță de doar doi ani.[9]

2.4 Web 4.0

Web 4.0 poate fi considerată generația captivantă în care Web 3.0 se va asocia cu tehnologia 3D, în vederea creării unei lumi virtuale asemănătoare celor din jocuri.În acest scop, un factor cheie va fi reprezentat de drepturile digitale ce vor preveni copierea digitală a conținutului.Aceste drepturi se referă la toate tipurile de conținut, devenind importante mai ales în drepturile de copiere pentru filme, imagini și altele.

O dată cu înmulțirea rețelelor și a conținutului de orice tip, protejarea conținutului original devine un aspect vital.

Web 4.0 aduce termenul de o „a doua viață” în care reprezentarea utilizatorilor web se face prin intermediul unui avatar, ce permite upgradarea, deschizând astfel calea spre un mediu captivant al internetului.”A doua viață” permite utilizatorilor construirea unui portofoliu cu bunuri virtuale reale sub forma unui spațiu pe server și obținerea de profit autentic în urma eforturilor.

Deși momentan există doar speculații asupra noutăților ce vor fi aduse de Web 3.0 și Web 4.0, cu siguranță urmează o perioadă înfloritoare și revoluționară pentru internet.

3. Prezentarea aplicatiei

Lucrarea scrisă este însoțită de proiectul “Cabana Maria” care se dorește a fi un exemplu

de reclama pentru afacerile de familie ,cu diverse funcționalități implementate în limbajul de

programare PHP .S-au utilizat, de asemenea elemente HTML și CSS atât pentru realizarea

design-ului, cât și pentru crearea scripturilor PHP La baza acestui proiect sta o baza de date,

care permite salvarea informatiilor s gestionarea acestora. Baza de date a fost realizată

utilizând phpMyAdmin,restul aplicației fiind creată utilizând simplul editor de text Notepad++.

Aplicația dispune de o interfață simplă din punct de vedere al design-ului, dar care oferă o structură cu mai multe funcționalități pe care utilizatorul le poate accesa fără a se pierde în detalii nesemnificative. Aplicaița oferǎ utilizatorilor posibilitatea rezervǎrii unei camere on-line, accesul la galeria de poze, informații despre restaurant și meniul insoțit de prețurile actualizate, utilizatorii pot vizualiza comentariile lǎsate de foștii turiști ȋn vederea creǎrii unei pǎreri cȃt mai clare despre locație.

Ȋn vederea exemplificǎrii noțiunilor de teorie am avut ȋn vedere cațiva pași ȋn scopul prezentǎrii noțiunilor teoretice mai sus prezentate și ȋnțelegerea aplicației.

3.1 Baza de date a aplicației.

Baza de date Cabana este formata din 3 tabele:

Camere

Comentarii

Rezervari

Fig 2.1 Baza de date

Tabela Camere are 5 cȃmpuri:

Id_camera – Int(10)

Nr_camera Int(10)

Tip :tipul camerei( single, double, triple matrimonial, double twin) – Varchar(20)

Pret : pretul pe camera pe noapte – Double(10.2)

Situatie: acest cȃmp poate lua valoarea 0 pentru camera libera si 1 pentru camerǎ ocupatǎ – Int(1)

Fig 2.2 Tabela camere

Tabela comentarii are 5 cȃmpuri:

Id_comentariu –Int(10)

Nume – VarChar(100)

Locatie – VarChar(100)

Comentariu – Text

Email varchar(100)

` Fig 2.3 Tabela Comentarii

Tabela Rezervǎri are 4 cȃmpuri:

Id_rezervare – int(10)

Id_camera – (10)

Data_inceput – Date

Data_sfarsit – Date

Fig 2.4 Tabela Rezervǎri

Conectarea la baza de date se face prin urmatoarele douǎ linii de comanda:

mysql_connect("localhost","root","" );

mysql_select_db("cabana");

Se lanseaza conexiunea la baza de date. Acest cod transmite PHP-ului să se conecteze la

serverul de baze de date MySQL la ’localhost’ (localhost este serverul pe care ruleaza PHP-ul. În afara cazului în care gazda Web indică altceva, se foloseste localhost) folosind numele de cont memorat în variabila username și parola memorată în variabila password.

mysql_select_db() -transmite PHP-ului să selecteze baza de date specificată în variabila db

name.

3.2 Design-ul și prezentarea aplicației

3.2.1 Interfata cu utilizatorul

Principalul scop al acestei interfețe este înțelegerea și reprezentarea interacțiunii om-calculator din perspectiva transferului de informație și cunoaștere.

Pentru a motiva clientul să vizualizeze cele prezentate în site-ul respectiv, este necesară atenția care ține de la alegerea culorilor de prezentare, până la alegerea informațiilor ce urmează a fi prezentate.

Un alt mod de a atrage clienții este interactivitatea cu care sunt prezantate datele și faptul că nu este necesar prea mult efort din partea clienților pentru a ajunge la informațiile dorite.

Interfata cu care intra in contact utilizatorii este formata din șase fisiere cu extensie .php

Index.php poate fi accesata selectand tab-ul Prima Pagina

Fig 2.5 Pagina principala

Aceastǎ pagina conține urmǎtoarele informații: ofertele de sezon și ofertele speciale precum și posibilitatea de rezervare on-line a unei camere.

Rezervarea unei camere:

Pentru a putea rezerva o camerǎ, trebuie sǎ verificǎm dacǎ aceasta este disponibila in perioada care ne intereseaza:

Pentru aceasta este necesara selectarea tipului de camera dorit (vezi figura 2.6)

Fig 2.6 Selectarea camerei

Dupa selectarea tipului de camerǎ dorit este necesarǎ introducerea datei de ȋnceput pentru a vedea dacǎ exista vreo camera libera incepȃnd cu acea perioada.

Fig 2.7 Selectarea datei

Dupa selectarea tipului de camerǎ și a datei de ȋnceput la apǎsarea butonului ”Verifica Camere” se va afisa mesajul avem camere libere , respectiv nu sunt camere libere, dupa care se poate selecta data de sfarsit și rezerva camera doritǎ apasand butonul ”Rezerva camera” (vezi figura 2.8)

Fig 2.8 Rezerva camera

Prima paginǎ conține de asemenea și ofertele speciale și ofertele de sezon (vezi figura 2.9)

Fig 2.9 Oferte

Pagina Servicii.php poate fi accesatǎ selectȃnd tab-ul Servicii, aceastǎ paginǎ prezentǎ oferte suplimentare și preturile pe camera pentru o noapte.

Fig 2.10 Servicii

Galerie.php poate fi accesatǎ selectȃnd tab-ul galerie, aceastǎ paginǎ conține o galerie de

imagini din interiorul cabanei. Accesand aceasta pagina puteti vizualiza camerele ȋn care va puteti caza, astfel vǎ puteti face o imagine asupra incǎperilor in care va veti petrece vacanta.

Fig 2.11 Galerie

Restaurant.php poate fi accesatǎ selectȃnd tab-ul restaurant, aceasta paginǎ prezintǎ pe

scurt meniul pe care il puteti alege in cazul in care vreti sa va petreceti cateva zile in cabana noastra (Vezi figura 2.11)

In partea stangǎ a paginii veti gǎsi lista cu meniul pe categorii ( Mic dejun, Pranz, Cina, Desert-uri dar si Specialitǎți), seloectȃnd una din categoriile de mai sus veti putea vedea lista cu meniul complet și prețurile pentru fiecare fel de mȃncare in parte.

Fig 2.11 Restaurant

Impresii.php poate fi accesatǎ selectȃnd tab-ul impresii, aceasta paginǎ este rezervatǎ clienților, astfel fiecare persoanǎ care a petrecut una sau mai multe zile ȋn aceastǎ locație poate sǎ dea un feed-back. Pentru ca viitorii clienti sǎ poatǎ fi la curent cu pǎrerile foștilor vizitatori m-am gandit sǎ pun la dispozitia clienților aceste invormații. Aceasta pagina este de cele mai multe ori cea mai vizitata de catre cei care urmeaza sǎ rezerve o camere.

Fig 2.12 Impresii

Accesand ”Lasa-ne impresiile tale” Clientii pot introduce un comentariu (Vezi figura 2.13)

Dupǎ ce se vor completa toate cȃmpurile clienții pot posta acest comentariu apasand butonul

” Posteaza”

Fig 2.13 Comentariu

Daca utilizatorul care posteaza acest comentariu uitǎ sǎ completeze unul dintre aceste cȃmpuri acesta va primi un mesaj de atenționare, ȋn scopul completarii tuturor campurilor prezentate in figura 2.13.

Contact.php ultima paginǎ a acestui site, este pagina rezervatǎ contactului loc in care

vizitatorii pot gǎsi numerele de telefon pe care le pot folosi ȋn cazul ȋn care au nevoie de detalii suplimentare ȋn ceea ce priveste locația.

Fig 2.14 Contact

3.2.2 Interfata administrare

Pentru ca persoanei care administreazǎ pensiunea sǎ ȋi fie cȃt mai usor cu gestiunea am creat o pagina special pentru acesta (vezi figura 2.15)

Fig. 2.15 Administrare

In partea stanga a paginii este prezentat meniul cu link-uri cǎtre urmatoarele:

Adaugǎ camerǎ

Șterge camerǎ

Elibereazǎ camerǎ

Rezervǎ camerǎ

Status camere

Vizualizare comentarii

In partea dreapta a paginii avem un spatiu rezervat detalierii link-urilor mai sus prezentate.

Adaugǎ camerǎ:

La selectarea link-ului ” Adaugǎ camerǎ” in partea dreaptǎ a paginii vor apǎrea

urmǎtoarele cȃmpuri: Numǎr camerǎ, Tip camerǎ, Preț si Situație, unde situație poate lua valoarea 0 pentru camera liberǎ, respectiv 1 pentru camerǎ ocupata.

Dupǎ completarea tuturor cȃmpurilor mai sus menționate la accesarea butonului ”Adaugǎ camerǎ” aceastǎ camerǎ va fi adǎugatǎ in baza de date.

Fig. 2.16 Adaugǎ camerǎ

Sterge camerǎ:

La selectarea link-ului ”Sterge camerǎ” in partea dreaptǎ administratorul va putea introduce numǎrul camerei care urmeaza a fi ștearsǎ din baza de date (vezi figura 2.17)

Fig 2.17 Sterge camerǎ

Elibereazǎ camerǎ :

Acest link oferǎ posibilitatea administratorului de a elibera o camerǎ, dupǎ accesarea acestui link in partea dreapta a paginii va putea fi introdus numǎrul camerei care urmeazǎ a fi eliberatǎ (vezi Fig. 2.17)

Fig. 2.17 Elibereazǎ camerǎ

Rezervǎ camerǎ:

Acest link oferǎ posibilitatea de a rezerva o camerǎ, introducȃnd astfel numǎrul camerei, data de ȋnceput și data de sfarȃșit (vezi Fig 2.18)

Fig 2.18 Rezervǎ camerǎ

Status camere:

Oferǎ posibilitatea de a vedea cȃte camere sunt libere și cȃte sunt ocupate, acest lucru se poate afla la selectarea link-ului Status camere (vezi fig. 2.19)

Bibliografie:

[1] Rob Larsen, Beginning HTML and CSS , Wiley / Wrox, 2013.

[2] Elizabeth Castro, HTML Pentru World Wide Web cu XHTML si CSS Ghid de învățare rapidă prin imagini ,Corint, București, 2003

[3] Don Cowan, HTML5 Canvas, For Dummies, 2012

[4] Elisabeth Freeman and Eric Freeman, Head first HTML with CSS & XHTML, O’REILLY Media, 2005

[5] Jason Lengstrof, PHP for Absolute Beginners, Apress, 2009.

[6] Kevin Yank, PHP and MySQL Novice to Ninja, SitePoint, 2012

[7] Editoare WYSIWYG – http://whatis.techtarget.com/definition/WYSIWYG-what-you-see-is-what-you-get

[8] Viitorul Web-ului 2.0 – http://www.hongkiat.com/blog/what-comes-after-web-20/

[9] Web 3.0 – http://computer.howstuffworks.com/web-30.htm

[10] Normalizare baze de date – http://www.elth.pub.ro/~preda/teaching/BDE/BDE_5.pdf

[11] Web 1.0 – http://computer.howstuffworks.com/web-101.htm

[12] Web 2.0 – http://www.dadalos.org/web_20_rom/web_20.htm

[13] Viitorul Web-ului 2.0 – http://www.hongkiat.com/blog/what-comes-after-web-20/

[14] Avantajele si dezavantajele limbajului PHP, http://kitsoftware.ro/Item/Framework-ul-PHP-care-sunt-avantajele-si-care-sunt-dezavantajele-lui/Section/Dezvoltare

[15] HTML5 – http://www.w3schools.com/html/html5_intro.asp

[16] wikipedia

[17]Despre MySQL, http://www.marplo.net/php-mysql/baze_de_date.html , http://etutoriale.ro/articles/39/1/de-date/.

Similar Posts