Tehnologii Recente Pentru Aplicatii Web

Cuprins

INTRODUCERE

CAPITOLUL 1: TEHNOLOGII RECENTE PENTRU APLICAȚII WEB

1.1. PHP

1.1.1. Generalități

1.1.2. Mod de funcționare:

1.1.3. Funcții în PHP

1.1.4. Variabile în PHP

1.1.5. Sesiuni în PHP

1.1.6. Constructori

1.1.7. Destructori

1.2. MYSQL

1.2.1. Despre MySQL

1.2.2. Câmpuri numerice

1.2.3. Tipuri de câmpuri dată/oră

1.2.4. Câmpuri de tip șir

1.3. XML

1.3.1. Generalități

1.3.2. Caracteristici ale XML

1.3.3. Sintaxa XML

1.3.4. XML – Limbaj extensibil de marcare

1.3.5. Schema XML

1.4. AJAX

1.4.1. Generalități

1.4.2. Obiectul XMLHttpRequest

1.4.3. Utilizarea AJAX cu GET și PHP

1.4.4. Utilizarea AJAX cu POST și PHP

1.5. FLASH

1.5.1. Generalități

1.5.2. Avantaje și dezavantaje ale Adobe Flash

1.5.3. Salvarea, Deschiderea și Exportul conținutului Flash

1.5.4. Construirea obiectelor în Flash. Îmbinarea graficii cu scriptul

CAPITOLUL 2: CLASIFICAREA APLICAȚIILOR WEB

2.1. APLICAȚII WEB STATICE

2.2. APLICAȚII WEB DINAMICE:

CAPITOLUL 3: DESCRIEREA APLICAȚIEI

3.1. DESCRIERE GENERALĂ

3.2. FUNCȚIONALITATEA APLICAȚIEI

3.2.1. Pagina principală

3.2.2. Produse

3.2.3. Cerere Ofertă

3.2.4. Contact

3.2.5. Panoul de administrare

3.2.6. Baza de date

3.2.7. Structura directoarelor și a fișierelor

CONCLUZII

BIBLIOGRAFIE:

Introducere

În societatea contemporană, odată cu dezvoltarea tehnologiei, internetul a devenit un element esențial și absolut indispensabil, el reprezintă practic un mic univers paralel, un univers al informației. Acesta ne oferă numeroase posibilități, un mediu cu multiple facilități de integrare, comunicare si de continuă informare, el reprezintă o cale de transmitere a datelor la nivel mondial, un mecanism de răspândire a informațiilor și un mijloc de interacțiune între oameni.

Prin intermediul acestei lucrări am dorit, în primul rând, să-mi însușesc cât mai multe cunoștințe din acest domeniu al tehnologiilor web, respectiv aplicații web și tot ce ține de implementarea unui website, iar în al doilea rând am dorit să ofer oportunitatea, celor care doresc să învețe din punct de vedere teoretic, de a-și crea propriul site pe internet, cu un minim de efort și costuri reduse, și cu un maxim de rezultate.

În paralel cu evoluția omului, au evoluat și problemele acestuia, iar soluția la aceaste probleme a fost inventarea unei mașini de calcul care ne-a schimbat radical modul de viață.Dezvoltarea extrem rapidă din ultima perioadă a resurselor software și hardware din domeniul tehnologiei informației are un meritul de a oferi o mai bună comunicare și un acces mult mai rapid la toate categoriile de informații. În acest sens, prezenta lucrare cuprinde destul de detaliat aspecte teoretice și practice ale modalităților de concepere și implementare a aplicației.Lucrarea este structurată în 3 capitole, fiecare capitol, la rândul lui având mai multe subcapitole, pe care le vom prezenta in cele ce urmeaza.

Așadar, primul capitol începe printr-o scurtă introducere în lumea celor mai recente tehnologii web utilizate în implementarea paginilor web, după care acestea sunt prezentate și detaliate, pe rând, fiecare în parte, cel de-al doilea capitol constă într-o clasificare a web site-urilor și domeniul pentru care se cer și se aplică implementarea lor, iar nu în ultimul rând este cel de-al treilea capitol, totodată și cel mai important, reprezintă aplicația practică a web site-ului, explicând modalitatea efectivă de realizare și modul de funcționare al acestuia.

Capitolul 1: Tehnologii recente pentru aplicații WEB

Conceptul de aplicații WEB desemnează ansamblul de aplicații accesibile dintr-un program de navigare, respectiv un browser WEB, aplicație aflată în principal, pe un alt calculator, numit și “server” decât calculatorul folosit de utilizator, numit și “client” al aplicației, ambele conectate rețelei de internet. În baza acestor programe se creează o relație de comunicare, o legătură între server și client.

Un server WEB este un program tip browser, de regulă, care recepționează cereri de tip HTTP de la clienți și oferă răspunsuri acestor cereri sub formă de pagini WEB care conțin documente HTML și alte resurse asociate (conținut video, imagini s.a.).

Cu privire la definirea aplicațiilor WEB, de-a lungul timpului s-a dezvoltat o serie de definiții, dar potrivit The Java EE 6 Tutorial, o aplicație WEB este o extensie dinamică a unui server WEB sau a unui server de aplicații. Astfel, putem distinge două categorii de aplicații WEB, și anume:

Orientate prezentării, care au rolul de a genera pagini WEB interactive scrise în diferite limbaje cu marcaje (HTML, XHTML, XML etc.);

Orientate serviciilor, care implementează un furnizor de servicii WEB (WEB Service Endpoint).

Principala funcție a unei aplicații WEB constă în transmiterea de la server la client, de pagini WEB, care pot fi statice, cu conținut fix, stabilit de către server sau dinamice, cu conținut care depinde de cererile clientului, de informațiile extrase din baza de date și de logica aplicației.

În prealabil, după introducerea adresei de WEB, în bara de căutare a browserului, de către client, aplicația din server transmite o pagină de prezentare, cu alți termeni un home page, care permite utilizatorului selectarea în continuare a unor operațiuni prevăzute de aplicație sau care, în anumite situații solicită utilizatorului informații de identificare precum nume și parolă, dacă aplicația este cu restricții de acces. Așadar, dialogul client-server are loc prin anumite cereri HTTP formulate de către client prin intermediul unor elemente de interfață grafică (spre exemplu: butoane, căsuțe de tip search în care se introduc diferite texte în vederea căutării anumitor chestiuni etc. ), la care aplicația trimite ca răspuns, pagini web ce pot conține text, imagini, alte formulare și date extrase din baze de date existente pe server.

Folosirea unor texte și imagini sau imagini animate, sporesc curiozitatea utilizatorului, toate aceste elemente sporind atractivitatea dialogului client-aplicație.

În această latură a tehnologiilor web, cele mai frecvent și recent utilizate sunt următoarele tipuri de limbaje de programare pe care urmează să le analizăm în continuare.

PHP

Generalități

În lumea tehnologiilor web, există o gamă largă de limbaje care permit și sunt acceptate în crearea paginilor web, limbaje precum PHP, ASP.NET, Java Server Pages (JSP), Perl, ColdFusion, Ruby on Rails, ș.a.m.d., fiecare având atât avantaje, cât și dezavantaje. În acest subcapitol vom discuta despre PHP.

Hypertext Preprocessor denumit în continuare PHP, reprezintă un limbaj de programare prin intermediul căruia se pot realiza pagini web. Acest tip de limbaj este un limbaj de scripting care poate fi înglobat în HTML, fiind utilizat la scară largă în aplicațiile bazate pe tehnologiile web. Este un limbaj foarte practic, accesibil învățării, și ideal din punct de vedere al realizării unor pagini web dinamice, este un limbaj open-source, datorită abilității lui de a fi rulat pe mai multe platforme și de a se conecta la mai multe tipuri de baze de date.

Prin pagină web dinamică, se înțelege o pagină a cărui conținut se poate schimba în mod automat ori de câte ori pagina este vizualizată. Cu caracter comparativ, să luăm spre exemplu, o pagină web statică, cum ar fi un simplu fișier HTML, care apare la fel de fiecare dată când pagina este afișată, în timp ce o pagină web interactivă este o pagină care răspunde la intrare vizitatorilor săi.

PHP este un limbaj de scripting server-side (tehnologie web server în care cerințele userilor sunt îndeplinite prin rularea unui script direct pe serverul web pentru a crea pagini HTML dinamice.), ceea ce înseamnă că scripturile sau programele PHP, rulează de regulă, pe un web server. Mai mult de atât, PHP este un limbaj interpretat, în ideea în care un script PHP este procesat de motorul PHP de fiecare dată când acesta rulează.

Procesul de rulare a unui script PHP pe un server Web se desfășoară în felul următor:

Un vizitator solicită o pagină Web făcând clic pe un link sau tastând URL-ul paginii în bara de adrese a browserului.Vizitatorul poate trimite, de asemenea, date serverului Web în același timp, fie prin utilizarea unei forme încorportate într-o pagină Web, fie prin AJAX;

Serverul web recunoaște că URL-ul solicitat este un script PHP și, prin urmare, instruiește motorul PHP-ului să proceseze și să ruleze script-ul;

Script-ul rulează, iar atunci când e finalizat, de obicei trimite o pagină HTML la browser-ului Web, pe care vizitatorul o vede apoi pe ecran.

Lucrurile interesante se întâmplă atunci când un script PHP ruleaza. Deoarece PHP este atât de flexibil, un script PHP poate transporta orice număr de sarcini interesante, cum ar fi:

Citirea și procesarea conținutului unui formular Web trimis de vizitator;

Citirea, scrierea, și crearea de fișiere de pe serverul Web;

Lucrul cu datele într-o bază de date stocate pe serverul Web;

Apucarea și procesarea datelor de la alte site-uri Web și feed-uri;

Generarea de grafice dinamice, cum ar fi diagrame și fotografii manipulate.

Și, în final, după ce a terminat de procesat, acesta poate trimite înapoi vizitatorului, o pagină Web HTML personalizată.

Prin toate aceste caracteristici deosebite, PHP oferă posibilitatea utilizării acestuia, pentru a crea practic orice tip de aplicație web dinamică pe care o doriți.

Una dintre cele mai importante caracteristici ale PHP, este legat de numărul mare de furnizori de servicii Internet (ISP) și companii de web hosting, care îl susțin. Astăzi, mii de programatori utilizează PHP, ceea ce nu este surprinzător, având în vedere că milioane de site-uri sunt raportate având PHP instalat.

Așadar, limbajul PHP reprezintă oarecum o cale de mijloc atunci când vine vorba de limbaje de programare Web. Comparativ cu alte limbaje de programare similare, pe de o parte, acesta nu este un limbaj cu un scop general, precum Phyton sau Ruby. Acest lucru face PHP să fie foarte potrivit pentru rolul pe care îl are de fapt, respectiv construirea site-urilor Web. Pe de altă parte, PHP nu are un cadru complet de aplicație Web, precum ASP .NET sau Ruby, ceea ce însemnă că construirea propriu zisă a site-ului Web trebuie pornită de la zero.

Deși PHP a început să devină cunoscut abia prin anul 1998, el a fost fondat cu ceva timp în urmă, de către Rasmus Lerdorf, în anul 1994 și lansat public în anul 1995, sub denumirea de PHP versiunea 2. PHP a debutat ca un simplu set de instrumente codificate in limbajul C, menit să înlocuiască scripturile Perl pe care Rasmus le folosea pe pagina personală. Din perspectiva evoluției sale, în 1997, alți doi programatori, respectiv Zeev Suraski și Andi Gutmans, alături de Rasmus au adus îmbunătățiri versiunii a 2 – a, lansând în cele din urmă versiunea 3 a PHP-ului în iunie, 1998. Astfel, s-a venit cu îmbunătățiri și modificări asupra acestui limbaj pe parcursul anilor, până în prezent.

Actuala versiune a PHP cu care se lucrează este versiunea 5.4.

Majoritatea schimbărilor intervenite în această versiune sunt relativ minore, sunt mai degrabă elemente avansate de aplicare, nerecomandate nivelului de începător. În continuare, vom face o scurtă prezentare a câtorva dintre cele mai semnificative modificări aduse PHP-ului.

Cea mai importantă nouă caracteristică a PHP 5.4 constă în suportul pentru spații de nume (namespaces), funcție care permite evitarea unor confruntări, “ciocniri” între nume în diverse părți ale unei aplicații, sau între bibliotecile (libraries) aplicației.

Aceste funcții, spațiu de nume, ale PHP 5.4 sunt destul de cuprinzătoare, ele includ suport pentru sub-spații de nume, precum și pseudonime spațiu de nume.

PHP 5.4 introduce, de asemenea, un operator denumit “goto” pe care îl puteți folosi pentru a sari direct la o linie de cod din cadrul aceluiași fișier.

Exemplu: goto jumpToHere;

echo ‘Bună’;

jumpToHere:

echo ‘ Ziua’;

În PHP 5.4 puteți cita șiruri folosind sintaxa nowdoc, care respectiv Zeev Suraski și Andi Gutmans, alături de Rasmus au adus îmbunătățiri versiunii a 2 – a, lansând în cele din urmă versiunea 3 a PHP-ului în iunie, 1998. Astfel, s-a venit cu îmbunătățiri și modificări asupra acestui limbaj pe parcursul anilor, până în prezent.

Actuala versiune a PHP cu care se lucrează este versiunea 5.4.

Majoritatea schimbărilor intervenite în această versiune sunt relativ minore, sunt mai degrabă elemente avansate de aplicare, nerecomandate nivelului de începător. În continuare, vom face o scurtă prezentare a câtorva dintre cele mai semnificative modificări aduse PHP-ului.

Cea mai importantă nouă caracteristică a PHP 5.4 constă în suportul pentru spații de nume (namespaces), funcție care permite evitarea unor confruntări, “ciocniri” între nume în diverse părți ale unei aplicații, sau între bibliotecile (libraries) aplicației.

Aceste funcții, spațiu de nume, ale PHP 5.4 sunt destul de cuprinzătoare, ele includ suport pentru sub-spații de nume, precum și pseudonime spațiu de nume.

PHP 5.4 introduce, de asemenea, un operator denumit “goto” pe care îl puteți folosi pentru a sari direct la o linie de cod din cadrul aceluiași fișier.

Exemplu: goto jumpToHere;

echo ‘Bună’;

jumpToHere:

echo ‘ Ziua’;

În PHP 5.4 puteți cita șiruri folosind sintaxa nowdoc, care vine în completarea sintaxei heredoc existente. În timp șirurile heredoc citate sunt analizate și sunt înlocuite numele de variabile cu valori ș.a.m.d., șirurile nowdoc citate ramân intacte. Sintaxa nowdoc este utilă dacă se dorește încorporarea unui bloc de cod PHP în script, fară procesarea codului.

Ca ultimă caracteristică prezentată este operatorul ternar. Operatorul ternar este similar operatorilor if/else. Din însăși denumirea sa rezultă că este un operator ce foloseste trei operanzi.

Mod de funcționare:

După cum am menționat , PHP este un limbaj pentru scripturi pe partea de server, ceea ce însemnă că, utilizatorii nu trebuie să-și instaleze nimic în plus, cu condiția ca pe platforma unde rulează serverul Web să fie instalat PHP. Acesta poate fi încorporat în serverul Web. Există totuși anumite situații în care serverul nu suportă PHP, iar atunci este necesar a se apela la administratorul său pentru a-l instala, PHP-ul fiind un produs de domeniu public, putând fi achiziționat/descărcat online.

Prin urmare, crearea scripturilor PHP pe propriul calculator nu necesită nimic alceva decât un simplu editor de texte (precum Notepad din Windows), cu toate că există și anumite editoare speciale. Totuși, dacă folosiți un instrument diferit de Notepad, trebuie să luați măsuri pentru a salva scriptul dumneavoastră sub formă de document text, în caz contrar, fișierul script conține informații de formatare care vor deruta serverul PHP. Numele fișierului trebuie să conțină doar litere mici, cifre și liniuțe, utilizarea spațiilor și a altor caractere fiind interzisă. Extensia numelui fișierelor trebuie să fie de tip *.php. Fiecare script PHP include două linii, care indică serverului că textul cuprins între acestea este format din instrucțiuni PHP.

Exemplu: <?php

// continutul scriptului

?>

sau, echivalent:

<?

// continutul scriptului

?>

Astfel, scripturile PHP execută următoarele de operații elementare: preluarea datelor de la utilizator, prelucrarea acestor date, obținerea accesului la datele stocate pe server, prelucrarea datelor stocate pe server și afișarea datelor. Scripturile PHP sunt formate din instrucțiuni iar cea mai simplă instrucțiune PHP este cea de afișare a unui text în browser.

echo “Informații afișate în browser”;

Există trei forme diferite de marcare a expresiilor – comenzilor PHP, respectiv:

<?
comenzi PHP
?>

<?php
comenzi PHP
php?>

<script language="php">
comenzi PHP
</script>

Toate cele trei acționează în mod similar. În cele ce urmează vom folosi doar prima variantă, pentru simplitate (<? și ?>), însă pot fi folosite, la fel de bine oricare din cele trei. Atenție însă, întrucât combinarea lor nu este însă permisă, nu putem folosi pentru deschidere <? iar pentru închidere </script> , de pildă. După cum se observă, există o singură linie de cod PHP. Aceasta este o funcție standard din PHP, numită phpinfo, care solicită serverului să scrie și să transmită un tebel standard cu informațiile de configurare a serverului.

Tag-urile HTML se introduc în codul PHP astfel:

echo “<b> <i> Introducerea codului HTML într-un script </i> </b>”;

Un comentariu se introduce într-un script PHP cu ajutorul marcajului // (când comentariul este scris pe o singură linie) sau /* conținutul comentariului */ (atunci când comentariul este scris pe mai multe linii).

<?php

// comentariu pe o linie

//continutul scriptului

?>

<?php

/* comentariu pe mai

multe linii */

// continutul scriptului

?>

Funcții în PHP

Definirea unei funcții în PHP se realizează în următorul mod:

function nume_funcție(param1, param2,…,paramN){ instrucțiuni; }

Apelarea unei funcții se realizează:

$var_returnată=nume_funcție(param1,param2,..,paramN);

O funcție poate fi definită oriunde în cadrul script-ului, iar în interiorul unei funcții poate să apară orice secvență validă de cod (poate cuprinde definirea altor funcții, clase etc.).Pentru ca funcția să returneze un rezultat se folosește construcția return urmată de un parametru ce reprezintă valoarea funcției. În momentul întâlnirii acestei construcții execuția funcției se încheie. Rezultatul obținut după apelarea unei funcții poate fi de orice tip de dată.

Anumite funcții PHP conțin argumente opționale, care pot fi specificate sau omise, în conformitate cu intențiile programatorului. În momentul în care se produce o eroare în timpul execuției unei funcții, PHP generează mesaje de eroare. În acest caz, este posibilă suprimarea generării mesajelor de eroare prin prefixarea numelui funcție invocate cu ajutorul caracterului @. De exemplu, pentru a suprima mesajele de eroare care pot apărea în timpul execuției funcție f( ), se poate invoca următoarea funcție: Y = @f(x);

Pentru a defini o funcție utilizatorul trebuie să se respecte sintaxa:

function nume_funcție(listă argumente)

{

// corpul funcție;

}

Variabile în PHP

Ca și în alte limbaje de programare, în PHP putem defini variabile. Există, așadar, câteva tipuri de variabile în PHP, însă cea mai uzuală este variabila de tip șir de caractere, denumită String. Aceasta poate fi folosită pentru texte sau numere. Toate șirurile de caractere, toate variabilele string încep cu semnul $ . Pentru a atribui un text unei variabile string trebuie să folosim o succesiune de forma:

$text_salut = "Bine ai venit pe site-ul meu Web!";

Este o linie simplu de înțeles, astfel, tot ce se află pus între ghilimele va fi atribuit variabilei string din membrul stâng.Când atribuim un număr unui string nu mai sunt necesare ghilimelele, în sensul că se acceptă următoarea construcție: $user_id = 987.

În acest sens, există mai multe categorii de variabile pe care le vom exemplifica, pe scurt, în cele ce urmează.

Variabilele globale sunt declarate în afara oricarei funcții. Variabilele de formular reprezintă un tip important de variabile globale. Cu toate acestea, se poate crea o variabilă globală atribuindu-i acesteia o valoare, atâta timp cât instrucțiunea de atribuire respectivă nu se află în interiorul corpului unei funcții. Totalitatea locurilor unde este accesibilă o variabilă se numește domeniu de existență al variabilei. În mod prestabilit, variabilele globale nu pot fi accesibile din interiorul corpului unei funcții; cu alte cuvinte, domeniul de existență al unei variabile globale, nu include corpurile funcțiilor. Dacă se dorește obținerea accesului la o variabilă globală în cadrul unei funcții, se poate extinde domeniul de existență al variabilei prin specificarea numelui acesteia în interiorul unei instrucțiuni global. Instrucțiunea global are urmatoarea formă:

global variabilă1, variabilă2, variabilă3;

Variabilele locale sunt create la apelarea funcție asociate și sunt distruse la încheierea apelului acesteia. Variabilele locale sunt disponibile doar pe durata execuției funcție asociate. Argumentele funcțiilor reprezintă un tip important de variabilă locală. Se poate crea o variabilă locală prin simpla atribuire a unei valori unei variabile din interiorul unei funcții.

Variabilele cookie sunt utile pentru stocarea preferințelor utilizatorilor și a altor informații care trebuiesc reținute atunci când utilizatorul trece la o nouă pagină web. Valorile variabilelor dispar atunci când scriptul PHP care le conține își încheie execuția. Spre deosebire de acestea, valorile variabilelor cookie se pot păstra un timp indefinit. Browserul utilizatorului stochează variabilele cookie în unitatea de hard-disk locală a utilizatorului. Variabilele cookie sunt utile pentru păstrarea preferințelor utilizatorului. Când utilizatorul revine la pagina vizitată, variabilele cookie permit browserului să recunoască utilizatorul si să restaureze opțiunile selectate de utilizator. Valoarea variabilei cookie este automat pusă la dispoziție ca variabilă PHP având acelasi nume cu acela al variabilei cookie. De exemplu, să presupunem că ați creat o variabilă cookie denumită "cursuri" și că îi atribuiți valoarea "informatică". Această pereche cursuri-informatică este apoi pusă la dispoziția fiecărui script PHP asociat paginilor web.Valoarea variabilei cookie se poate afișa folosind instrucțiunea:

echo "Valoarea variabilei cookie este $cursuri";

care va afișa: Valoarea variabilei cookie este cursuri.

Sesiuni în PHP

O sesiune reprezintă o metodă de a stoca informații (sub formă de variabile) pentru a fifolosite pe mai multe pagini. Spre deosebire de cookie-uri, informația nu este stocată în calculatorul utilizatorului. Este, de asemenea, diferită de celelalte variabile, în sensul că nu este transmisă individual către fiecare pagină în parte ci este obținută din sesiunea deschisă la accesarea fiecărei pagini.

Inițializarea sesiunii se face folosind funcția session_start(), după care se crează perechi de chei – valori pe care le stocăm în sesiune. Majoritatea sesiunilor setează un cookie în calculatorul utilizatorului, iar când o sesiune este deschisă în altă pagină, se scanează calculatorul după acea cheie. Dacă cele două chei se potrivesc, atunci sesiunea este accesată, dacă nu, o nouă sesiune este inițializată.

<?php

// pornire sesiune

session_start();

// afisam valorile create in scriptul anterior

echo 'Informatia 1 este '.$_SESSION['cursuri'];

echo 'Informatia 2 este '.$_SESSION['facultate'];

?>

Constructori

Un constructor este o metodă (funcție) a unei clase care este apelată automat în momentul în care este creată o nouă instanță a clasei (cu ajutorul operatorului new). În PHP este considerată ca fiind un constructor orice funcție care are același nume cu clasa în interiorul căreia este definită. Constructorii pot fi folosiți pentru inițializarea datelor membre cu valori care nu sunt constante. Ei pot avea argumente, iar acestea pot fi opționale. Pentru a putea utiliza clasa fără a specifica nici un parametru în momentul creării unui obiect, se recomandă stabilirea unor valori implicite pentru toate argumentele constructorului. În cazul în care nu este definit un constructor pentru o anumită clasă, se utilizează constructorul clasei de bază, dacă aceasta există.

În PHP apelul constructorului clasei de bază trebuie să fie explicit, dacă este necesară executarea operațiilor corespunzatoare. Majoritatea limbajelor de programare au funcții speciale, numite destructori, care sunt apelate automat în momentul "distrugerii" unui obiect. Constructorii și metodele, fiind funcții PHP obișnuite, pot avea specificate valori implicite pentru argumente (la fel ca în C++, respectiv Java). În variante mai vechi de PHP, constructorii puteau avea orice tip de parametri, dar începând cu versiunea 4, tipurile permise pentru parametrii unui constructor sunt doar cele simple (întregi, șiruri de caractere), deci nu vor putea fi executate transmiteri de tablouri sau de obiecte. În PHP, atunci când se construiește un obiect, nu este apelat constructorul clasei părinte, acesta trebuie apelat, dacă este cazul, folosind instrucțiunea:

parent::__construct().

Destructori

În cadrul claselor definite în limbajul PHP 5 pot fi declarati destructori de clase. Destructorii sunt utilizțti în momentul distrugerii (eliberării memoriei alocate) unui obiect. Un obiect este distrus (eliminat din memorie) în momentul în care nu mai există referințe către el. Necesitatea destructorilor a apărut în momentul în care s-a pus problema transmiterii obiectelor prin referință și nu prin valoare cum se efectua transmiterea obiectelor în versiunile anterioare ale interpretorului.

Un destructor este dat de o metodă al cărui nume este __destruct() și care nu are parametri. La fel ca și în cazul constructorilor, în momentul apelului unui destructor pentru o clasă, nu este apelat automat destructorul părintelui, acesta trebuie apelat cu instrucțiunea:

parent::__destruct().

MySQL

Despre MySQL

MySQL este disponibil în mod public din 1996, dar istoria dezvoltării sale începe încă din 1979 și a câștigat de mai multe ori premiul cititorilor – Linux Journal Readers' Choice Award. MySQL este disponibil sub o licentă Open Source, dar există și sub licențe comerciale. MySQL este rapid, costul său este nul, fiind distribuit gratuit sau foarte mic, distribuit sub o licență comercială, dacă aceasta este necesară aplicației utilizatorului și este mult mai ușor de configurat decât multe alte produse asemănătoare.

MySQL poate fi folosit atât pe platforme Windows, cât și Unix, iar codului sursă i se pot aduce modificări și poate fi redistribuit gratuit. MySQL este sigur deoarece accesul la bazele de date se face prin autentificarea utilizatorului, sistemul de parolale este flexibil și sigur, permițând astfel verificarea pe baza host-ului. Parolele sunt sigure deoarece traficul pentru conectarea la server și autentificare este criptat.

MySQL este un server de baze de date disponibil gratuit, cu sursa deschisă (open-source) care oferă fiabilitate și avantaje reale. A fost dezvoltat de firma suedeză MySQL AB.

Administrarea bazei de date se realizează folosind utilitare care lucrează în linia de comandă. Cel mai important utilitar este mysql, un shell interactiv pentru controlul și interogarea bazei de date. Utilitarele rulează cel mai bine pe sistemul Linux, platformă pe care MySQL a fost dezvoltat inițial. Alte două utilitare cu sursă deschisă, oferite pe platformă Windows, care oferă un set de comenzi de administrare sunt MySqlManager, un utilitar de interogare în mod grafic similar cu mysql și WinMySQL admin, o consolă pentru administrarea detaliilor configurării lui MySQL. Recent cea mai utilizată metodă pentru serverele care au instalat panoul de comandă CPANEL este PHPMyAdmin, care oferă o interfață grafică pentru manipularea datelor din MySQL. MySQL realizează cu ușurință importarea diverselor baze de date și exportarea sub forma fișierelor sql. Tranzacțiile nu sunt parte a tabelelor implicite(ISAM) ale lui MySQL, dar sunt incluse două tipuri noi de tabele Berkley DB(BDB) și InnoDB care au fost dezvoltate de alte firme. MySQL operează în bază unui model client/server. Orice mașină care dorește să proceseze interogări asupra unei baze de date MySQL trebuie să ruleze MySQL server (mysqld), care este responsabil de tot traficul de tip intrări/ieșiri (incoming/outgoing) cu bază de date. Modelul de securitate folosit de MySQL se bazează pe nume de utilizator, parolă, nume server (hostname) sau adresă de IP și privilegii, fiind similar celui generic folosit de sistemele Unix. Prin privilegii se înțeleg în cazul MySQL operațiunile ce vor fi permise asupra bazei/bazelor de date, tabelelor sau indecșilor, cum sunt de exemplu SELECT, INSERT, UPDATE, DELETE, CREATE, DROP. Datele sunt obiectul celor mai multe operații de prelucrare, iar sistemele de gestiune a bazelor de date furnizează cele mai complexe și puternice facilități pentru lucrul cu datele. PHP include o bibliotecă de funcții care furnizează o interfață cu sistemul MySQL de gestiune a bazelor de date. Folosind aceste funcții, un program PHP poate obține accesul la datele rezidente într-o bază de date MySQL și le poate modifica. O bază de date este un program ce poate stoca o cantitate foarte mare de informații și o poate organiza într-un format accesibil în mod direct sau de către un alt program.

Într-o bază de date, informația este organizată sub formă tabelară, în care coloanele se numesc câmpuri iar liniile se numesc înregistrări. Capul de tabel determină structura bazei de date. Un sistem de gestionare a bazelor de date (SGBD) este un program care permite utilizatorilor interacțiunea cu baza de date.

Un SGBD asigură:

crearea bazei de date

introducerea informațiilor în baza de date

actualizarea informațiilor

extragerea datelor

controlul accesului la date

Obiectivul esențial, al unui SGBD este furnizarea unui mediu eficient, adaptat utilizatorilor care doresc să consulte sau să actualizeze informațiile conținute în baza de date.O bază de date poate conține mai multe tabele, ce pot fi legate între ele.

Un câmp se caracterizează prin:

numele câmpului (reprezintă un nume simbolic prin care câmpul se poate identifica),

tipul câmpului (pentru identificarea tipului de date care pot fi stocate în câmpul respectiv),

lungimea câmpului (numărul maxim de caractere care pot fi stocate în câmpul respectiv).

MySQL a fost creat în anul 1996 de către o companie suedeză și este un SGBD foarte rapid, care poate lucra cu baze de date de mari dimensiuni. MySQL permite lucru cu câmpuri numerice, dată și șir. Caracteristicile MySQL-ului sunt:

este o platformă deosebit de stabilă;

este independent de sistemul de operare pe care ruleaza (Windows, Linux, Unix, etc);

este gratuit în anumite condiții de licențiere (Open Source Software)

Afișarea interogării în execuție și rularea ei pe baza de date se face cu ajutorul unor aplicații separate. Cele mai bune două instrumente sunt:

Monitorul MySQL – un instrument cu linie de comandă pentru interacționarea cu serverul MySQL;

phpMyAdmin, o interfață MySQL bazată pe PHP.

Câmpuri numerice

Unul dintre cele mai utilizate tipuri de câmpuri în MySQL este Int (integer), care poate stoca valori cuprinse între –2.147.483.648 și 2.147.483.647. Acest tip de câmp poate fi folosit cu opțiunea auto_increment, pentru a defini cheia primară a unei tabele. Cheia primară este un câmp care face posibilă identificarea unică a fiecărei înregistrări. De obicei este vorba de un câmp numeric, care va fi incrementat la fiecare operație de adăugare.

Tipuri de câmpuri dată/oră

Există în MySQL cinci tipuri de câmpuri folosite pentru stocarea datei calendaristice și a orei care sunt:

Date

Datetime

Timestamp

Time

Year Câmpul de tip date stochează valori în format AAAA-LL-ZZ și permite introducerea valorilor cuprinse între 1000-01-01 și 9999-12-31. Câmpul de tip datetime stochează valori în format AAAA-LL-ZZ HH:MM:SS, cuprinse între 1000-01-01 00:00:00 și 9999-12-31 23:59:59. Câmpul de tip timestamp stochează automat timpul atunci când se modifică valoarea unei înregistrări (printr-o operație de introducere sau actualizare). Câmpul de tip time stochează timpul în format HH:MM:SS. Câmpul de tip year poate stoca date cuprinse între 1901 și 2155.

Câmpuri de tip șir

Char

Varchar

Tinytext

Text

Mediumtext

Longtext

Enum

Câmpul de tip char are lungimea maximă de 255 caractere. Este de lungime fixă (atunci când introducem o valoare cu lungimea mai mică decât lungimea maximă a câmpului, câmpul va fi completat în partea dreaptă cu spații).

Câmpul de tip varchar are lungimea maximă de 255 caractere, dar este de lungime variabilă (câmpurile nu vor mai fi completate cu spații ca la tipul char).

Câmpurile de tip blob și text pot stoca o cantitate variabilă de date.

Câmpurile de tip enum permit stocarea unei valori dintr-o mulțime de valori specificate PHP permite lucrul cu un număr mare de funcții MySQL. În PHP există funcții pentru toate operațiile executate asupra bazelor de date MySQL. Cele mai importante funcții sunt:

mysql_connect() – stabileste o conexiune la serverul de baze de date MySQL.

Conectarea la MySQL se face astfel:

<?php

$link = mysql_connect("mysql_host","mysql_user","mysql_password") or die("Nu se poate

conecta");

?>

Funcția mysql_connect se conectează la MySQL folosind ca parametri adresa serverului unde rulează MySQL (dacă îl aveți instalat pe propriul calculator aceasta este localhost), user-ul ( dacă îl aveți instalat pe propriul calculator aceasta ar trebui să fie root) și parola (dacă îl aveți instalat pe propriul calculator aceasta ar trebui să nu existe).

Dacă MySQL instalat pe stația de lucru atunci conexiunea la baza de date se realizează:

<?php

$link = mysql_connect("localhost", "root", "")

or die("Nu se poate conecta");

?>

XML

Generalități

În rând cu avansarea tehnologiilor și în special a marilor rețele de informații a apărut necesitatea facilizării accesării acestora, în deosebi, datele trebuie sa aibă o flexibilitate și o portabilitate cât mai mare. Documentele de asemenea, trebuie să fie independente de platformă, de sistem și de conținut.

Cu toate că ca HTML (Hypertext MarkUp Language) este soluția pentru Web, și acesta ridică o serie de probleme. Răspunsul la aceste probleme este XML , care a rezolvat o mulțime de probleme ale HTML-ului pe care utilizatorii acestuia le întâmpinau. XML (Extensible Markup Language) este un format de text simplu și extrem de flexibil, derivat din SGML (ISO 8879). Inițial conceput pentru a răspunde provocărilor de publicare electronică pe scară largă, XML, de asemenea, joacă un rol tot mai important în schimbul de o mare varietate de date pe web și în altă parte. XML este un limbaj de marcare relativ similar cu HTML și a fost proiectat pentru a transporta date, nu pentru a le afișa. Cu ajutorul XML a fost rescris și HTML rezultând astfel, XHTML . între XML și HTML există niște diferențe, în sensul că XML a fost proiectat pentru a transporta și stoca date, concentrându-se pe date și care sunt acestea, în timp ce HTML a fost conceput pentru a afișa date, punând accent pe modul în care acestea arată, iar HTML se referă la afișarea de informații, în timp ce XML se referă la transportul de informații.

XML a fost conceput pentru a defini datele.Tagurile nu sunt predefinite, prin urmare, toate tagurile care sunt utilizate vor trebui declarate. XML foloseste la bază DTD ( Document Type Definition ) pentru a descrie datele. În cazul în care în interiorul unui fisier XML există vreo eroare , parserul se va bloca în locul respectiv și nu va afișa niciun rezultat, decât eroarea . Deci, nu se pot scrie documente care nu sunt bine formatate, precum se întamplă in HTML, de pildă.

La început, datorită faptului că formatul XML este mult mai mare decat cel binar ( in care se țineau până acum datele ) se punea întrebarea dacă acest format este eficient, însă protocolul HTTP 1.1 ne orferă posibilitatea de a compresa datele din timpul transimisei , ajungându-se practic la aceeași eficiență a spațiului precum cel al formatului binar.

XML a debutat în anul 1996 , însa se poate spune că pentru prima dată s-a folosit acest concept odată cu apariția SGML prin anul 1980.

Documentele XML sunt realizate din unități de stocare numite entități, ce conțin date parsate sau neparsate. Datele parsate sunt realizate din caractere, unele dintre ele formând date caracter iar altele ca marcaje. Marcajele codifică o descriere a schemei de stocare a documentului și structura logică. XML furnizează un mecanism pentru a impune constrîngeri asupra schemei de stocare și a structurii logice. Un modul software numit procesor XML este utilizat pentru a citi documente XML și pentru a da acces la structura și conținutul lor. Se consideră că un procesor XML își face munca în spatele unui alt modul, numit aplicație. Această specificație descrie comportamentul cerut unui procesor XML în termeni ce spun cum trebuie să citească datele XML și ce informații trebuie să-i furnizeze aplicației. În timp ce HTML este un limbaj markup singular, proiectat pentru satisfacerea unor anumite cerințe, XML este o adevărată familie de limbaje markup: pornind de la XML utilizatorul poate defini alte limbaje markup; aceasta înseamnă că aproape orice tip de date poate fi definit cu ușurință în XML. În aceste condiții pe lângă un mediu de comunicație universal (Internetul), o interfață utilizator universală (browser-ul) și un limbaj de programare universal (Java) avem acum și un format de date universal – XML.

XML este universal nu doar prin spectrul său de aplicații, dar și prin ușurința utilizării. Faptul că este bazat pe text îl face ușor de utilizat pentru crearea de aplicații și de unelte pentru dezvoltarea aplicațiilor; este de asemenea un standard deschis, motiv pentru care nu necesită licență și poate fi folosit pe toate platformele hardware/software. Ceea ce îl face de asemenea universal este puterea sa. Datele sunt transmise și stocate în computere în diferite moduri: inițial ele erau stocate în fișiere cu lungime fixă sau formate delimitate și apoi s-au mutat în baze de date și adesea în formate binare complexe. XML este un format de date structurate, care permite stocarea datelor complexe, indiferent dacă inițial erau de tip text, binare sau orientate-obiect.

Deși tehnologiile XML și HTML (HyperText Markup Language) sunt descendente ale SGML, sunt complet diferite. Pentru cei care doreau să facă lucruri ce se puteau realiza prin SGML, însă fără a învăța întreg limbajul, a fost inventat HTML-ul. HTML-ul este simplu de învățat și poate fi utilizat pe multe platforme, dar deși este foarte bun în a expune informații, HTML-ul nu este la fel de bun în a le descrie. Și din acest motiv s-a ajuns la XML: o metodă universală pentru a reprezenta, descrie informații. XML este o tehnologie complementară a HTML-ului, nu o înlocuire a sa.

De exemplu, dacă am considera un fragment de document HTML utilizat pentru a reprezenta informații despre automobile, acesta ar putea fi de forma:

<p><b>Descriere: </b></p>

<p>Producator: BMW</p>

<p>Model: Z3</p>

<p>Culoare: rosu</p>

Din perspectiva unui calculator, nu este nici o indicație asupra faptului că informația ar fi structurată.

În schimb, considerând aceeași informație reprezentată prin XML, fragmentul de document ar fi:

<Descriere>

<Producator>BMW</Producator>

<Model>Z3</Model>

<Culoare>rosu</Culoare>

</Descriere>

În acest caz, privind acest fragment putem spune că Descriere conține Producator, Model și Culoare. Cunoscând structura datelor, putem să facem anumite operații asupra lor, să afișăm doar anumite date, să efectuăm diverse tipuri de căutări etc. De aceea, în multe cazuri, utilizarea XML-ului este necesară.

Unul din avantajele XML constă în simplitatea lui. Un document XML reprezintă o secvență de elemente, fiecare constând într-un text liber și/sau alte elemente. Singura restricție este aceea că tagurile elementelor trebuie să se potrivească.De exemplu, fiecare tag <CARTE> trebuie sa aibă un corespondent </CARTE>, și trebuie să fie imbricat în mod corect, dacă este cazul. Astfel, un document XML care are numai taguri care să se potriveasca și care să fie corect imbricate, este numit un document bine formulat. Un fișier XML bine formulat se conformează unui set de reguli foarte stricte ce guvernează limbajul XML. Dacă un fișier nu se conformează acestor reguli, XML nu mai funcționează. De exemplu, în eșantionul anterior de cod, fiecare etichetă de deschidere are o etichetă de închidere, de aceea exemplul se conformează regulilor de formulare corectă. Dacă eliminați o etichetă și încercați să deschideți respectivul fișier într-unul din programele Office, veți vedea un mesaj de eroare, iar programul va opri utilizarea fișierului. Dacă nu este posibilă deschiderea unui fișier XML, sunt mari șanse ca fișierul să fie greșit formulat.

De asemenea, XML este independent de platformă, ceea ce înseamnă că orice program constituit pentru a utiliza XML poate citi și prelucra datele XML indiferent de hardware sau de sistemul de operare. De exemplu, cu etichetele XML corecte, aveți posibilitatea să utilizați un program pentru a deschide și lucra cu date de la un computer mainframe. În plus, indiferent cine a creat corpul datelor XML, aveți posibilitatea să lucrați cu aceleași date în câteva din programele Microsoft Office 2003 și Microsoft Office Professional 2007, inclusiv Microsoft Office Access 2007, Microsoft Office Word 2007, Microsoft Office InfoPath 2007 sau Microsoft Office Excel 2007. Datorită faptului că este atât de portabil, XML a devenit una dintre cele mai populare tehnologii pentru schimbul de date între bazele de date și desktopurile utilizatorilor.

Caracteristici ale XML

Principalele caracteristici ale XML sunt:

XML nu are directive predefinite, acestea vor fi realizate în

momentul proiectării documentului XML în funcție de scopul acestuia și tipul sau structura datelor.

Pentru descrierea directivelor folosite, XML utilizează un set de reguli denumit DTD (Document Type Definition) sau o schemă XML. Împreună cu această schemă se spune despre XML că este autodescriptiv.

Documentul XML trebuie să respecte strict regulile definite în DTD pentru a fi un document valid.XML și folosirea lui în pagina WEB

Documentele XML au o structură strictă (Well-formed). Asta înseamnă că documentul trebuie să respecte anumite reguli de sintaxă prezentate în Unitatea de învățare următoare.

XML este un limbaj de adnotare complementar cu HTML și NU înlocuiește HTML. Cele două limbaje, după cum s-a arătat, au scopuri distincte: HTML afișează informații ce apar în pagină Web, în timp ce XML descrie aceste informații.XML  limbaj extensibil de marcare.

Sintaxa XML

Din punct de vedere sintactic, un document XML este formatdintr-o colecție de elemente. În general, un element este un text cuprins între două marcaje balansate. Sintaxa generală a unui marcaj este:

<nume_marcaj>Un text</nume_marcaj>

Un document XML este format din două blocuri principale astfel:

Antetul documentului care cuprinde la rândul său:

Declarația XML – Se află întotdeauna pe prima linia a documentului și conține informații despre versiunea XML și standardul de codificare al caracterelor.

Declarația DTD care conține informații despre structura documentului. Documentul este verificat dacăeste valid sau nu conform cu această declarație.

Documentul XML propriu-zis Un document XML are o structură arborescentă având un singur element rădăcinămarcat de o pereche de directive XML. Toate celelalte elemente sunt descendenți și conținute în interiorul elementului rădăcină Un element poate conține la rândul său alte subelemente.

Exemplu:

<? xml version="1.0" encoding="iso-8859-1"?>

<!DOCTYPE mesaj [

<!ELEMENT email (destinatie,sursa,mesaj)>

<!ELEMENT destinatie (#PCDATA)>

<!ELEMENT sursa (#PCDATA)>

<!ELEMENT mesaj (titlu,continut)>

<!ELEMENT titlu (#PCDATA)>

<!ELEMENT continut (#PCDATA)>

]>

<email>

<destinatie>Daniel</destinatie>

<sursa>Ana</sursa>

<mesaj>

<titlu>Intalnire diseara! </titlu>

<continut>

Ne intalnim diseara!

</continut>

</mesaj>

</email>

În exemplul de mai sus:

Prima linie reprezintă Declarația XML.

Este urmată de Declarația DTD care conține reguli despre structura documentului într-un anumit format.

Documentul XML propriu-zis are ca element rădăcinăelementul reprezentat cu ajutorul directivei <email></email>. Elementele care urmează marcate de directivele <destinatie>, <sursa> și <mesaj> sunt descendenți de rangul 1. Elementul <mesaj> are la rândul său descendenți elementele marcate de directivele <titlu> și <conținut>. Nivelul de imbricare poate continua atât cât este nevoie și nu sunt stabilite limite.

Directivele XML sunt identificatori pentru elementele XML și sunt plasate ca și în cazul directivelor HTML între paranteze ascuțite “<” și “>” Iată care sunt regulile pentru folosirea directivelor XML:

Orice directivă, ex. <directivă>, trebuie să aibă o directivă pereche de încheiere ex </directivă>. Omiterea directivei de încheiere nu este permisă ca în cazul unor directive HTML;

Directivele XML sunt sensibile la scrierea cu majuscule sau litere mici prin urmare directiva <Titlu> este diferită de directiva <titlu>;

În cazul în care se folosesc mai multe niveluri de imbricare ordinea închiderii directivelor trebuie să fie inversă decât ordinea în care au fost deschise;

Pentru elementele care nu conțin text se poate folosi o altămodalitate de definire a directivelor.

Exemplu: <directiva />

Se observă că s-a folosit un caracter “/” după numele elementului. În acest caz NU se mai specifică directiva pereche de încheiere.

Atribute XML – Directivele XML pot avea atribute pentru a putea specifica informații suplimentare despre acel element. Atributele sunt definite sub formă de perechi nume-valoare. Valorile atributelor se scriu obligatoriu între ghilimele ca în exemplul de mai jos:

<mesaj data=”01/08/2005”>

</mesaj>

În XML se pot folosi comentarii care au o sintaxă similară cu cea din HTML, adică:

<!– Orice text explicativ –!>

Acestea pot apărea oriunde în documentul XML.

XML – Limbaj extensibil de marcare

Pentru a înțelege limbajul XML, este de folos să înțelegeți ideea de marcare a datelor. Timp de secole, oamenii au creat documente și de tot atâta timp ei au marcat aceste documente.  De pildă, profesorii au marcat întotdeauna lucrările elevilor. Aceștia le-au spus elevilor să mute paragrafe, să clarifice propoziții, să corecteze greșelile de ortografie și multe altele. Marcarea unui document constă în modul în care definim structura, semnificația și aspectul vizual al informațiilor din document.

În informatică, „marcarea" a evoluat spre „marcaj”. Acesta este procesul de utilizare a unor coduri numite etichete (numite și simboluri, balize sau marcatori) pentru a defini structura, aspectul vizual și  în cazul XML, semnificația acestor date.

Codul HTML al acestui articol este un exemplu bun de marcaj de computer pus la lucru. Dacă îl răsfoiți (în Microsoft Internet Explorer, faceți clic cu butonul din dreapta pe pagină, apoi pe Vizualizare sursă), veți vedea o combinație de text lizibil și de etichete HTML, cum ar fi <p> sau <h2>. Etichetele din documentele HTML și XML sunt ușor de recunoscut deoarece sunt înconjurate de paranteze unghiulare. În codul sursă al acestui articol, etichetele HTML îndeplinesc o serie de roluri, cum ar fi definirea începutului și sfârșitului fiecărui paragraf (<p> …</p>) și marcarea locației fiecărei imagini.

Există șapte tipuri de marcaje ce pot fi folosite într-un document XML:

 Începutul unui element și tag-ul de sfârșit

 Atribute

 Comentarii

 Referințe la entități

 Instrucțiuni de procesare

 Secțiuni CDATA

 Declarația tipului de document

Documentele HTML și XML conțin date cuprinse între etichete. În HTML, etichetele definesc aspectul și stilul datelor,  liniile de titlu sunt aici, paragraful începe aici și tot așa. În XML etichetele definesc structura și semnificația datelor , ceea ce înseamnă aceste date.

Când descrieți structura și semnificația datelor, faceți posibilă reutilizarea acestor date în orice modalitate. De exemplu, dacă aveți un set de date comerciale și fiecare element din bloc este identificat cu claritate, se pot încărca doar elementele de care aveți nevoie într-un raport de vânzări și să încărcați celelalte elemente într-o bază de date de contabilitate. Punând altfel problema, se poate utiliza un sistem pentru a genera datele și a le marca cu etichete XML, procesând apoi aceste date în orice alt sistem, indiferent de platforma hardware sau de sistemul de operare. Această portabilitate a făcut din XML una dintre cele mai populare tehnologii pentru schimbul de date.

XML permite crearea oricărei etichete necesare pentru descrierea datelor și a structurii acestora. Pentru moment, să presupunem că este necesar să stocați și să partajați informații despre animale de casă.

Exemplu: <? xml version=”1.0”?>

<DOG>

<NAME>Toby<NAME/>

<BREED>Bichon Maltesse</BREED>

<AGE>5</AGE>

<ALTERED>yes</ALTERED>

<DECLAWED>no</DECLAWED>

<LICENSE>Toby146bod</LICENSE>

<OWNER>Homana Alexandru</OWNER>

</DOG>

Se poate vedea că etichetele XML dau posibilitatea să identificați exact ce tip de date consultați. De exemplu, știți că acestea sunt date referitoare la un câine și aflați numele sau vârsta câinelui, printre altele. Abilitatea de a crea etichete care definesc aproape orice structură de date este ceea ce face ca XML să fie „extensibil”.

A nu se confunda etichetele din acest exemplu de cod cu cele dintr-un fișier HTML. De exemplu, dacă această structură XML o lipiți într-un fișier HTML și vizualizați fișierul în browser, rezultatul va arăta cam așa:

Toby Bichon Maltesse 5 yes no Toby146bod Homana Alexandru

Browserul ignoră etichetele XML și afișează exclusiv datele.

Schema XML

O schemă reprezintă o specificație formală a gramaticii asociate unui limbaj definit în XML, utilă pentru validarea documentelor scrise în acel limbaj. Desigur, fiecărui document îi puteam asocia, în mod explicit, un DTD folosit pentru validarea acestuia, reminiscență de la SGML.Schemele utilizează sintaxa XML și sunt mai natural de definit decât DTD-urile, specificațiile fiind încă în faza preliminară, bazate pe Document Content Description (DCD) și XML-Data, ambele în lucru la Consorțiul Web. În prezent, schemele XML sunt suportate în formă limitată de Internet Explorer 5 și Netscape 6. Fișierele schemă utilizează de obicei extensia de nume de fișier .xsd, în timp ce fișierele de date XML utilizează extensia .xml. Schemele permit programelor să valideze date. Acestea oferă un cadru pentru structurarea datelor, asigurându-se că au sens pentru creator și orice alt utilizator. De exemplu, dacă un utilizator introduce date nevalide, cum ar fi text într-un câmp de tip dată, programul poate avertiza utilizatorul să introducă date corecte. Cât timp datele dintr-un fișier XML se conformează regulilor dintr-o schemă dată, orice program care acceptă XML poate utiliza schema respectivă pentru a citi, interpreta și prelucra datele. 

AJAX

Generalități

AJAX sau Asynchronous JavaScript And XML, a fost conceput în anul 2005 de către echipa Google și alți câțiva programatori web. AJAX nu este un nou limbaj de programare, ci mai degrabă este o modalitate de a folosi vechile limbaje pentru a crea aplicații web mai bune, mai rapide și mai prietenoase.

Ajax reprezintă o combinație între diverse limbaje (client side și server side) folosite împreună și bazate în principal pe JavaScript.

Această tehnologie își are, de fapt originea în anii 1998-2000 când a fost implementată si folosită de Microsoft în aplicația Outlook Web Acces utilizând extensii ale proprietăților HTML incluse în Internet Explorer 5, însă după cele menționate mai sus, acest termen "AJAX" a fost creat în 2005 și a devenit popular și a cunoscut o dezvoltare accentuată după ce a fost folosit de Google în aplicațiile sale: Google Maps, GMail.

În mod standard, înainte de Ajax, pentru fiecare interacțiune a unei aplicații web cu serverul, pagina web trebuia complet reîncărcată. Prin tehnologia Ajax pot fi încărcate și modificate doar anumite părți din pagină, părți prelucrate și generarte de server, fără a fi necesară reîncărcarea întregii pagini web. Acest lucru determină încarcărea mai rapidă a conținutului paginii și reducerea traficului. De asemenea, pot fi trimise date la server, de la pagina web deschisă, în timp ce utilizatorul urmarește conținutul paginii, fără ca aceasta sa fie afectată. Pentru folosirea Ajax este necesară cunoașterea, în primul rând, a limbajelor HTML sau XHTML și Javascript, apoi CSS și a unui limbaj de programare pentru partea de server precum PHP sau ASP.

Pentru Ajax nu contează tipul limbajului de programare folosit pe partea de server, ci răspunsul primit de la server trebuie să fie cu un Content-Type de tip text (plain, XML, HTML). Ajax este suportat de către majoritatea navigatoarelor web (Internet Explorer, Mozilla Firefox, Opera, Safarii etc.) și utilizează, de regulă, obiectul JavaScript XMLHttpRequest, prin care se permite realizarea comunicării cu serverul și afișarea datelor primite fără a fi necesară reîncărcarea efectivă a paginii. Un mare atu al aplicațiilor AJAX îl constituie faptul că acestea nu sunt dependente de platformă sau de browser.

Având în vedere ca Ajax trebuie sa folosească JavaScript, care poate fi dezactivat de utilizator, iar motoarele de căutare încă nu știu să indexeze paginile din site care sunt generate prin JavaScript, trebuie ținut cont de aceste lucruri când se crează site-uri web care folosesc Ajax.

Folosind obiectul XMLHttpRequest un web developer poate face update la o pagină cu date de pe un server după ce pagina s-a încărcat. Unul dintre cele mai cunsocute exemple unde se poate verifica dinamizarea aplicației web este pe pagina Google, atunci când se tastează în căsuța de căutare și apar sugerați diverși parametri.

Pentru a putea înțelege cum funcționează AJAX-ul, vom crea, în cele ce urmează o mică aplicație. În primul rând, vom folosi un form HTML standard cu două câmpuri, respectiv dată și oră. Câmpul dată va fi încărcat de utilizator iar câmpul oră va fi încărcat folosind AJAX. Fișierul HTML se va numi “exAjax.htm”, și arată cam așa:

<html>
<body>
<form name=`myForm`>

Nume: <input type=`text` date=`data` /> <br />

Time: <input type=`text` date=`ora` />

</form>

</body>

</html>

Obiectul XMLHttpRequest

Toate script-urile Ajax folosesc obiectul XMLHttpRequest, astfel e util a se cunoaște elementele principale ale acestui obiect. Scopul obiectului XMLHttpRequest este de a permite JavaScript-ului să formuleze cereri HTML și să le trimită serverului, oferind astfel posibilitatea comunicării cu serverul și afișarea datelor primite făra a fi necesară reîncarcărea paginii, pe lânga toate acestea, pot fi procesate în paralel mai multe conexiuni cu serverul, fară a bloca browser-ul până la primirea răspunsului.

Înainte de a putea utiliza XMLHttpRequest, trebuie creată o instanță a acestui obiect cu formula:

var xmlHttp = new XMLHttpRequest() ("xmlHttp" poate fi orice nume de variabilă)

După cum am spus, XMLHttpRequest este suportat de toate browserele moderne și de principalele sisteme de operare: Windows, UNIX/Linux si Mac OS; totuși, implementarea acestuia diferă între unele navigatoare web, de pildă, versiuni de Internet Explorer mai vechi de 7 crează acest obiect ca obiect de tip ActiveX. Trebuie ținută seama de acest aspect (destul de important) și să creați instanțierea obiectului XMLHttpRequest în funcție de browser-ul care va fi folosit, pe de o parte pentru Mozila Firefox, Opera, Safari etc. și pe de altă parte pentru Internet Explorer care, în funcție de versiunea acestuia, crează obiectul ca ActiveX. Această diferență dintre browsere mai complică puțin lucrurile, dar nu este ceva dificil. Pentru a crea obiectul XMLHttpRequest pentru toate navigatoarele, puteti folosi urmatoarea functie:

function get_XmlHttp() {

// Creaza variabila care va contine instanta la XMLHttpRequest, initial cu valoare nula

var xmlHttp = null;

if(window.XMLHttpRequest) { // Daca browser-ul e Forefox, IE7+, Opera, Safari etc.

xmlHttp = new XMLHttpRequest();

}

else if(window.ActiveXObject) { // Daca browser-ul este Internet Explorer 6 sau 5

xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

}

return xmlHttp;

}

După ce a fost creată instanța la XMLHttpRequest, puteți folosi proprietățile și metodele acestui obiect. Mai jos este prezentată lista acestora:

Proprietăți

onreadystatechange – Folosit ca un "event handler", determină care eveniment va fi apelat la schimbarea stării "readyState";

readyState – un număr între 0 și 4 care reprezintă starea cererii ( 0 : neinițializat, 1 : încarcă, 2 : încărcat (date trimise), 3 : interactiv (încep să se primească date de răspuns), 4: complet (răspuns primit complet));

responseText – returnează răspunsul primit de la server, în format șir text (string);

responseXML – returnează răspunsul primit de la server în format XML;

status – codul de stare HTTP al răspunsului de la server, în format numeric (200 pt. răspuns corect, 404 pt. "Negăsit", 500 pt. o eroare de server, etc.);

statusText – codul de stare HTTP al răspunsului de la server, în format text ("OK", "Not found", "Internal Server Error", etc.).

Metode

abort() – Anulează cererea curentă

getAllResponseHeaders() – Returnează sub forma de șir toate Header-ele HTTP primite ca răspuns;

getResponseHeader(x) – Returneaza valoarea Header-ului 'x' specifat;

open(method, URL, flag) – Creaza cererea care va fi trimisa;

– "metoda" definește metoda prin care sunt trimise datele la server (GET sau POST);

– "URL" este adresa paginii /scriptului care va fi apelat, cu valorile care vor fi transmise;

– "flag" este o valoare booleană true sau false. Dacă este adaugat false, execuția scriptului se oprește până la primirea răspunsului de la server, iar dacă este adăugat true, script-ul își continuă execuția, și astfel se pot trimite mai multe cereri simultan. Acest argument "flag" este opțional, poate fi omis, în acest caz fiind considerat true.

send(content) – Trimite cererea curentă la server. Parametrul "content" indică informația care poate fi trimisă împreună cu datele din "open()", poate fi un șir, array, obiect XML DOM sau null și se folosește de obicei când datele sunt trimise prin POST. Dacă trimiteți doar date prin GET și nu e nevoie să folosiți acest parametru, adaugați "null";

setRequestHeader('etichetă', 'valoare') – Perminte stabilirea de Headere care să fie transmise la server împreună cu cererea creată cu "open()".

Utilizarea AJAX cu GET și PHP

Ajax constă în folosirea, pe langa JavaScript, și a unui limbaj pe partea de server. Ajax poate fi utilizat în multe tipuri de aplicații care pot fi incluse într-o pagină web, dar cel mai frecvent, acesta este folosit pentru navigare de la un conținut la altul al site-ului. Această navigare se face de obicei prin link-uri, acestea conțin o adresă URL către pagina /conținutul respectiv. Metoda standard de transmitere a datelor adresei URL din link-uri la server este GET.

În secțiunea anterioară (despre lucrul cu XMLHttpRequest) este prezentat modul de creere a unei cereri pentru apelarea unui fișier, și anume prin metoda open (method, url, flag).

– "method" este metoda prin care vor fi trimise datele, GET sau POST (in aceasta secțiune vom prezenta, în continuare datele de tip GET).

– "url" este adresa URL care va fi apelată, aceasta poate conține, alături de calea și numele fișierului care va fi apelat, și date de tip perechi "indice=valoare", care sunt transmise prin GET fișierului respectiv.

– "flag" este o valoare booleană, "true" sau "false" (explicată în secțiunea precedentă).

Într-o adresă URL, pe lângă adresa paginii /fișierului care va fi apelat, pot fi incluse, de asemenea, anumite valori care urmează a fi procesate de fișierul respectiv. Aceste valori sunt adăugate în adresa URL, după numele paginii si semnul '?', sub forma de perechi indice=valoare (despărțite prin caracterul &, dacă există mai multe astfel de perechi).

Exemplu:

O adresă URL simplă către o pagină/fisier PHP, poate fi de forma http://www.domeniu_site/fisier.php (care poartă și denumirea de "cale absolută", întrucât aceasta conține întreaga cale către pagină) sau dir/fișier.php (folosită pentru fișiere din cadrul aceluiași server, denumită și "cale relativă").

O adresă ce conține și valori care trebuie transferate la server, are forma http://www.domeniu_site/fisier.php?indice1=valoare1&indice2=valoare2 (sau dir/fisier.php?indice1=valoare1&indice2=valoare2

Metoda "open()" a obiectului XMLHttpRequest face exact acest lucru, crează cererea care va fi trimisă la server, compusă din metoda de transfer și adresa URL a fișierului la care se face cererea, unde pot fi adăugate aceste valori (perechi indice=valoare), iar apoi, prin metoda "send()" se execută trimiterea.

Partea importanta este și fișierul de pe server care va primi datele, referindu-ne la fișiere PHP, dar pe partea de server poate fi folosit oricare alt limbaj acceptat de către server. Astfel, daca se dorește utilizarea Ajax, implicit înțelegerea exemplelor prezentate, trebuie a se cunoaște limbajul PHP, cel puțin la nivel de începător.

Pentru a înțelege mai bine cum se foloseste Ajax cu GET si PHP, vom prezenta un exemplu practic:

Creați pe server un fisier PHP, de exemplu "test_get.php", în care adăugațti următorul cod:

<?php
// Dacă sunt primite date prin GET, cu indice 'test'
if(isset($_GET['test'])){
  $sir=$_GET['test'];    //Preia datele primite
    echo 'Textul "<i>'.$sir.'"</i> contine '. strlen($sir). ' caractere si '. str_word_count($sir, 0). ' cuvinte.';

}
?>

Utilizarea AJAX cu POST și PHP

Un alt mod de trimitere a unor date dintr-o pagină web la server este prin metoda POST. Cu Ajax, cererea pentru trimiterea datelor cu POST se face tot prin metoda "open()" a obiectului "XMLHttpRequest", sintaxa acesteia fiind open ("POST", url, flag), unde "POST" este metoda de transfer, "url" este adresa fișierului PHP la care va fi transmisă cererea, iar "flag" este o valoare booleană true sau false.

Deosebirea de GET, în trimiterea datelor prin POST, constă în 2 lucruri importante:

După crearea cererii cu "open()" și înainte de trimiterea ei cu "send()", se apelează o altă metodă a obiectului "XMLHttpRequest", și anume "setRequestHeader()", folosind sintaxa: setRequestHeader ("Content-type", "application/x-www-form-urlencoded").

Aceasta trimite un Header la server care-i comandă să recunoască datele trimise de "send()" ca și cum au fost transmise prin POST (precum sunt encodate și trimise datele din formulare). Dacă acest Header nu este adăugat, serverul nu va recunoaște că datele din parametrul lui "send()" au fost trimise prin POST.

Ca parametru al metodei "send()", în loc de null se adaugă datele (perechile de tip indice=valoare) care trebuie trimise prin POST.

În rest, prelucrarea răspunsului primit de la server se face la fel ca și în cazul apelării cu GET. Pentru o mai bună înțelegere asupra acțiunii de trimitere a datelor cu Ajax prin POST, avem următorul exemplu:

Creați pe server un fișier PHP, de exemplu "test_post.php", în care adăugați următorul cod:

<?php
// Daca sunt primite date prin POST, cu indice ‘test’

if (isset($_POST[‘test’])) {

$sir= $_POST [‘test’]; //Preia datele primite

echo ‘Textul “<i>.$sir. “</i> contine’. Strlen($sir). ‘ caractere si ’. str_word_count($sir, 0).’ cuvinte ’;

}

?>

Flash

Generalități

Adobe Flash, sau mai pe scurt Flash, este o aplicație utilizată expres pentru dezvoltarea obiectelor-applet de tip Flash disponibile în cadrul unor pagini web. Prin intermediul obiectelor flash, se sporește atât dinamismul unei pagini cât și facilitarea interacțiunii cu utilizatorul. Inițial dezvoltată de Macromedia, aplicația Flash a fost preluată de către Adobe odată cu achiziționarea companiei sus menționate.

Fondatorul Flash este Jonathan Gray, de profesie arhitect, pasionat de calculatoare, care la inceputul anilor ‘90 încearcă să construiască câteva jocuri, ulterior încercând să construiască câteva instrumente de genul “CAD” pentru a-i ușura propria muncă. Printre primele aplicații menționăm:

Super Paint – program de desenat

Intellidraw – care constă în obiecte și componente grafice (pentru MAC și PC); comportament asociat obiectelor (această facilitate fiind păstrată chiar și în Flash – în ideea că elementele grafice sunt considerate ca fiind obiecte);

În anul 1993 FutureWave (companie inițiată de Jonathan Gay împreună cu un prieten) lansează SmartSketch în care se putea desena cu creionul optic, acest modul fiind identic cu cel aflat chiar și în versiunile actuale de Flash. În cele din urmă în anul 1996, compania  Microsoft devine interesată de o animație simplă în pagina lor web. Când Macromedia observă că soluția este dată de FutureSplashAnimator, aceasta devine brusc interesată în achiziționarea firmei FutureWave și, prin urmare, FutureSplash devine Flash 1.0.

Pe scurt, definim flash ca fiind o aplicație prin intermediul căreia se pot crea și dezvolta elemente multimedia începând de la elemente cu conținut audio sau video, conținut text, efecte grafice, animații până la jocuri. Folosite cel mai mult în pagini web, de asemenea, diferite interfețe și aplicații făcute cu Flash sunt utilizate inclusiv pentru PDA-uri și telefoane mobile (de exemplu Flash Player).

Această tehnologie a fost inițial dezvoltată de Macromedia și purta denumirea de "Macromedia Flash", ulterior denumirea fiindu-i schimbată în "Adobe Flash" după ce aceasta a fost preluată de Adobe, odată cu achiziționarea companiei Macromedia în anul 2005.Adobe Flash combină și unește în același program elemente de grafică vectorială și programare web (ActionScript), ceea ce-l face util atât pentru designeri cât și pentru programatorii web.

O gamă largă din efectele create cu Flash pot fi realizate și cu ajutorul JavaScript, însă în cazul JavaScript apar adesea probleme cauzate de incompatibilitatea dintre navigatoarele web, lucru care nu se produce în cazul conținutului Flash, care necesită doar instalarea unui Flash Player ce va interpreta și afișa documentul Flash după cum acesta a fost creat, indiferent dacă browser-ul utilizat este Internet Explorer, Mozilla Firefox, Opera, Safari, etc.

Flash poate lucra și cu surse externe, precum documente XML, script-uri JavaScript, PHP și baze de date MySQL. Datorită acestor capabilități, tehnologia Flash capătă din ce în ce mai mult teren în domeniul site-urilor și a dezvoltării Web.

Avantaje și dezavantaje ale Adobe Flash

Folosirea obiectelor Flash în paginile web, deține o serie de numeroase avantaje, dar și anumite dezavantaje. În acest sens, unul dintre cele mai importante avantaje ale Adobe Flash constă în faptul că animațiile de lungă durată sunt ușor de realizat, în condițiile în care animațiile sunt punctul forte al Flash-ului, interfața aplicației oferă posibilitatea de a sincroniza (în funcție de timp) diversele obiecte, poziții sau forme ale acestora. Flash-ul nu numai că realizează această sincronizare, dar poate și interpola poziția (sau forma) unui obiect pentru a ușura munca utilizatorului. Un alt avantaj îl constituie posibilitatea adăugării la interfață, elemente multimedia: în interiorul obiectelor Flash se pot importa și manipula (înainte, inapoi, salt la un anumit moment) MP3-uri sau AVI-uri. Ușurința îmbinării elementelor grafice cu scriptul: atașarea codurilor ActionScript obiectelor din flash se realizează prin selectarea obiectului și introducerea codului asociat obiectului într-o fereastră specială. Nu necesită cunoștințe de HTML, XHTML, în cazul în care vă hotărâți să realizați un întreg site în Flash, aplicația vă poate furniza odată cu obiectul flash și codul HTML necesar – în acest fel tot ce mai trebuie făcut este doar publicarea sitului pe un server WEB. Acestea constituie doar o mică parte din lunga listă a avantajelor pe care Flash le oferă.

În ceea ce privește dezavantajele Flash-ului, acestea sunt destul de puține, iar în acest context, vom aminti doar câteva dintre ele. Așadar, unul dintre micile dezavantaje ale Flash-ului constă în faptul că acesta este dependent de un player. Deși acesta vine instalat pe o suită de browsere (și în cazul în care nu este preinstalat instalarea este destul de rapidă – dimensiunea Playerului Flash este destul de mică și descărcarea acestuia în contextul rețelelor actuale este rapidă), totuși există cazuri în care obiectele Flash ajung pe calculatoare ce nu au instalată aplicația necesară interpretării obiectelor Flash, ajungându-se astfel, în imposibilitatea folosirii fișierelor (Pentru a rula aplicațiile Flash pe aceste calculatoare trebuie exportat obiectul Flash ca un executabil). Un alt dezavantaj este acela că motoarele de căutare nu pot indexa textul. Flashul lucrează cu mai multe tipuri de texte, majoritatea dintre acestea (textul static) nu poate fi indexat de motoarele de căutare, deoarece obiectul Flash este tratat ca element grafic/obiect și roboții de căutare nu au cunoștințele necesare „disecării” obiectelor Flash și extragerii textului intern. Flash-ul este un mare amator de resurse – deoarece trebuie să „reconstruiască” de fiecare dată elementele grafice, Playerul Flash (precum și aplicația de dezvoltare) este mare consumator de memorie și procesor (în cazul graficii raster este clar unde trebuiau afișați pixelii ce formează cercul – în cadrul graficii vectoriale trebuie ca pozițiile pixelilor să fie recalculate).

Salvarea, Deschiderea și Exportul conținutului Flash

Un fisier Flash se numește în general document. Documentele Flash sunt salvate (meniul File -> Save, sau Ctrl+S) cu extensia ".fla". Fișierele ".fla" conțin toate informațiile necesare pentru ca respectivul document Flash să poată fi deschis și modificat cu programul Adobe Flash.

De pildă, pentru a salva animația facută și prezentată mai sus, apăsați Ctrl+S (sau meniul File -> Save), apoi, în fereastra care apare alegeți directorul în care să fie salvat documentul, dați-i un nume sugestiv (ca mai târziu să știți despre ce este vorba), de exemplu "prima_animatie.fla" și apăsați Save. Documentul creat și elementele din el sunt salvate. Astfel, oricând se pot efectua modificări, adaugări la această animație prin deschiderea documentului ".fla" salvat, cu aplicația Adobe Flash, apăsând Ctrl+O (sau din meniul File -> Open).

Pentru a adăuga într-o pagina Web conținutul Flash creat într-un document (.fla), trebuie ca acesta să fie exportat cu extensia ".swf", din meniul File -> Export și Export Movie. Prin aceasta se va obține un fișier cu extensia ".swf" ce conține animația, efectele sau ce a fost creat în respectivul document ".fla", și care sunt recunoscute și afișate de Flash Player-ul instalat în browser. Continutul fișierului ".swf" poate fi inclus într-o pagină web folosind următorul cod (X)HTML:

<object type="application/x-shockwave-flash" data="prima_animatie.swf" width="400" height="500">

<param name="src" value="prima_animatie.swf" />

<param name="bgcolor" value="#e8e8fe" />

</object>

Dacă directorul în care se află pagina HTML e diferit de cel în care se găsește fișierul SWF, la "prima_animatie.swf" trebuie adăugată și calea către acel director.

În afară de formatul inițial de salvare (Flash CS5 Document (*.fla)), documentul Flash poate fi salvat (de la File -> Save sau File -> Save As) ca:

– Flash CS4 Document (*.fla) – Util dacă acel document trebuie ulterior deschis și prelucrat cu versiunea Adobe Flash CS4

– Flash CS5 Uncompressed Document (*.xfl) – Acest format va crea un director cu un fișier ".xfl" și alte tipuri de fișiere (JPG, XML, DAT) ce vor conține informații despre acel document Flash, care pot fi folosite și în alte programe, precum Adobe InDesign și Adobe After Effects.

– Documentul Flash poate fi salvat și ca Template, de la meniul File -> Save as Template. Acesta va putea fi apoi deschis și folosit din librăria cu Template-uri, de la meniul File -> New, iar în fereastra care apare se alege categoria "Templates".

Pe lângă opțiunea de export ca fișier ".swf", există încă o modalitate de export frecvent utilizată, și anume Export Image. Cu aceasta se poate crea o imagine a scenei curente de lucru (cu toate desenele din cadrul ei), salvată în fișiere cu format: bmp, jpg, jpeg, gif sau png. Pentru aceasta, se alege meniul File -> Export -> Export Image, iar în fereastra care apare se poate alege directorul și tipul (extensia) fișierului cu imaginea salvată.

Construirea obiectelor în Flash. Îmbinarea graficii cu scriptul

Elementele grafice pot fi desenate și remodelate direct din flash prin intermediul unor instrumente simpliste și pot fi importate din alte programe sub diverse formate. Pot fi create din ActionScript: putem realiza un obiect de tip MovieClip și apoi “desena” în interiorul său prin intermediul unor comenzi de tip moveTo, lineTo, curveTo, fill, gradientFill. Scriptul poate fi atașat în oricare cadru al animației conferindu-ne siguranța că acea secvență se va executa sincronizat cu ce se află desenat pe ecran (programare temporală).

Obiectul Flash poate comunica cu servere asincron (motiv pentru care se folosesc evenimentele în cadrul flashului) oferind posibilitatea dezvoltatorilor de Flash de a recurge la diversele informații ce pot fi stocate pe server în baze de date sau fișiere special construite. Obiectul poate comunica cu serverul inițializând conexiuni și comunicând în timp real. În acest mod pot fi construite diverse chaturi sau aplicații care să comunice în timp real chiar dacă sunt aflate pe calculatoare diferite (vezi jocurile de tip șah din Yahoo Messenger care sunt realizate în Flash). Obiectele Flash pot comunica între ele prin intermediul unor conexiuni locale inițializate cu comanda „LocalConnection”: două obiecte Flash aflate pe același calculator au posibilitatea de a interacționa chiar dacă unul rulează într-o fereastră a unui browser iar cel de-al doilea într-un browser diferit de primul (sau chiar rulat direct de playerul Flash).

Obiectele Flash pot comunica cu scripturile de tip JavaScript prin intermediul comenzii fscommand (JS poate comunica cu Flash apelând funcții direct din Flash și referind obiectul Flash prin intermediul atributului „name” din codul HTML exportat de Flash).

Obiectul Flash fiind construit special pentru internet nu poate rula aplicații, schimba informațiile din sistem sau scrie fișiere. Pentru a putea totuși să creăm fișiere (de dimensiuni mari) pe calculatorul clientului, putem folosi Flashul ca interfață pentru aplicațiile scrise în alte limbaje de programare.

Capitolul 2: Clasificarea aplicațiilor web

Aplicațiile web moderne sunt sisteme software complexe, iar dezvoltarea acestora necesită o abordare metodologică. Similar cu proiectarea aplicațiilor software, proiectarea web implică utilizarea unei abordări sistematice și cuantificabile pentru realizarea specificațiilor, implementării, operațiilor și întreținerii aplicațiilor web de calitate superioară. Din punct de vedere al istoricului dezvoltării și complexității distingem două categorii principale de aplicații web, respectiv: aplicații statice și/sau dinamice

Aplicații web statice

Din însăși denumirea sa rezultă caracterul acestei categorii de aplicații, și anume, paginile web statice sunt paginile în care nimic nu se mișcă (totul este static), nimic nu se transformă, nu se întâmplă absolut nimic. Astfel de pagini sunt încă folosite pentru timpul scurt de încărcare. Paginile web statice pot fi asemănate cu paginile unei reviste. Pornind de la acest aspect putem defini paginile web statice (cu conținut fix, stabilit de server), ca fiind acele tipuri de pagini care nu se modifică în momentul în care un vizitator al site-ului solicită acest lucru (web server-ul trimite pagina la cererea web browser-ului fără a se produce nicio modificare) și se bazează exclusiv și în totalitate pe limbajele HTML și CSS. Fiecare pagină este codată în HTML și afișează aceleași informații pentru fiecare vizitator. Site-urile statice sunt cele mai elementare tipuri de pagini și sunt cel mai ușor de realizat. Spre deosebire de cele dinamice, paginile web statice nu necesită niciun fel de programare sau baze de date. Acest tip de aplicații web, este potrivit pentru clienții mai puțin exigenți, care nu au nevoie de un web site cu funcționalitate complexă. Site-urile web statice sunt potrivite pentru prezentațiuni care nu sunt extinse, dar chiar dacă sunt, nu este necesară actualizarea frecventă și modificarea conținutului. Un astfel de site poate fi construit într-un mod foarte simplu, prin crearea unor pagini HTML care ulterior se publică pe un web server. Un server web este un software care servește pagini web ca răspuns la cererile formulate de către web browser.

Un web site static cuprinde un set de pagini HTML și fișiere găzduite pe un computer care lucrează ca web server. Paginile statice sunt formate din texte, imagini și tag-uri HTML pentru formatare. Vizitatorii nu au posibilitatea de a controla informația primitî prin intermediul unui site static, cum ar fi de exemplu editarea/publicarea unui anunț sau evaluări pe anumite servicii.

Aceste pagini sunt create și întreținute manual, astfel că în cazul în care informațiile se modifică, automat este necesar ca și pagina să fie modificată. Aceasta implică încărcarea paginii într-un editor, realizarea modificărilor, reformatarea textului dacă este necesar și ulterior salvarea fișierului. Toate aceste operațiuni necesită foarte mult timp dacă numărul paginilor care trebuie actualizate este mare. Cu caracter novator, paginile web statice care conțin un număr vast de pagini sunt adesea concepute prin utilizarea unor template-uri (șabloane). Acest lucru face posibilă actualizarea mai multor pagini de-o dată, și, de asemenea, ajută la furnizarea unui aspect consistent a întregului web site.

O pagină cerută este generată când un vizitator face click pe un link al unei pagini web, sau când se introduce un URL într-o casetă de adrese a unui browser. Ca un exemplu din această categorie de pagini web statice, sunt web site-urile de prezentare care nu au o bază de date și care nu își iau informații din alte surse, dintr-o altă parte, decât din site-ul respectiv, sunt acele pagini în genul celor care prezintă un produs, o companie, o firmă etc. Se poate spune că aceasta este cea mai utilizată formă de prezentare a informațiilor specifice unei companii pe internet pentru potențialii clienți, fiind practic o carte de vizită accesibilă oricând, din orice parte a lumii.

Web site-ul de prezentare conține, de obicei:

o prezentare a firmei, informații relevante despre obiectul de activitate;

produsele sau serviciile oferite, cu prezentare pe categorii, imagini și/sau video;

rubrica de contact – adresă, telefon, fax, email și eventual un formular prin care utilizatorii pot trimite mesaje.

Conținutul final al unei pagini statice este determinat de către designerul paginii și nu se schimbă în momentul în care pagina este solicitată.

Exemplu: html>

<head>

<title> GamAuto Information Page</title>

</head>

<body>

<h1>About GamAuto</h1>

<p> GamAuto is a leading automobile manufacturer.</p>

</body>

</html>

Fiecare linie a codului HTML al paginilor este scrisă de designer înainte ca pagina să fie plasată pe sever. Deoarece HTML nu se schimbă odată ajuns pe server, acest tip de pagină este denumită pagină web statică .

Cu caracter facultativ, strict vorbind, o pagină statică, în fond, nu este deloc statică. De pildă, o imagine de tip rollover sau un conținut Flash (un fișier SWF) conferă unei pagini statice dinamism, vitalitate. Toate acestea fiind spuse, această documentație face referire la o pagină ca fiind statică dacă este trimisă la browser fără modificări.

Când web serverul primește o cerere pentru o pagină statică, serverul citește cererea, găsește pagina și o trimite browser-ului care a cerut-o.

Sub aspectul avantajelor oferite de paginile web statice, unul dintre principalele avantaje îl constituie costurile reduse de realizare și întreținere, ușurința cu care informațiile ajung la cunoștința publicului, extinderea promovării prin apariția adresei website-ului companiei de exemplu, pe cărți de vizită sau pliante promoționale, acest lucru putând aduce un plus de vizitatori și evident, viitori clienți. Un alt avantaj îl constituie dezvoltarea mai rapidă, fără necesitatea de a utiliza baze de date și tehnologii web mai avansate. Din punct de vedere al dezavantajelor, unul dintre acestea constă în incapacitatea paginilor web de a interacționa cu vizitatorii, imposibilitatea de actualizare prin CMS, sunt ceva mai complicate pentru înterținere în cazul site-urilor mai mari.

Aplicații web dinamice:

Spre deosebire de wbb site-urile statice, web site-urile dinamice conțin pagini web care sunt generate în timp real. Putem defini paginile/aplicațiile web dinamice ca fiind o pagină web cu conținut web, care variază în funcție de parametrii furnizați de către un utilizator sau un program de calculator. Aceste pagini includ coduri de web scripting, cum ar fi PHP sau ASP. Când o pagină dinamică este accesată, codul din cadrul paginii este parsat pe serverul web, iar HTML-ul rezultat este trimis la browser-ul web al clientului.

Majoritatea web site-urilor de dimensiuni mari sunt dinamice, în condițiile în care acestea sunt mult mai ușor de întreținut decât site-urile web statice. Acest lucru se datorează faptului că fiecare pagină statică are un conținut unic, ceea ce înseamnă că acestea trebuie accesate, editate și publicate manual, ori de câte ori intervine o schimbare. Pe de altă parte, paginile dinamice accesează informații dintr-o bază de date, prin urmare, pentru a putea modifica conținutul unei pagini dinamice, webmaster-ul ar putea fi nevoit doar să actualizeze o înregistrare a bazei de date. Acest lucru este în deosebi util pentru site-urile mari care conțin sute sau mii de pagini. De asemenea, permite utilizatorilor să actualizeze conținutul unui site web fără a fi necesară editarea aspectului paginilor. Un site web dinamic este un site care se mișcă foarte repede, de acolo și denumirea sa. Acest lucru se datorează faptului că modificîrile din conținutul sau se fac mult mai rapid decât în cazul unui site web static. Practic în aceasta constă dinamismul unui site web, respectiv în capacitatea acestuia de a prezenta vizitatorilor săi un conținut cât mai amplu și mai variat fără a fi nevoie de intervenția permanentă a designer-ului sau al webmaster-ului. Conținutul unui site dinamic este de cele mai multe ori stocat și extras spre afișare dintr-o bază de date, un fișier cu date sau din alte surse externe site-ului. Pentru ca aceste date să fie stocate și apoi preluate din aceste surse de date este nevoie de puțina programare web. Adică site-ul web trebuie să știe să comunice cu aceste surse de date și să prezinte conținutul dinamic într-un format accesibil vizitatorilor săi.

Acest tip de aplicații web, este potrivit pentru clienții care au cerințe mai complexe și care au nevoie de a implementa, de exemplu, anumite funcționalități avansate ale site-ului.

Din punct de vedere al modului de realizare al acestor tipuri de aplicații, există o multitudine de tehnologii de programare pentru a realiza un site dinamic și în ciuda faptului că acestea sunt diferite ca mod de implementare, în final rezultatele sunt aceleași pentru vizitatorii săi. Cele mai utilizate tehnologii de programare sunt ASP, PHP, ASP.NET, Perl, Cold Fusion, etc. Este o chestiune ce ține mai mult de preferința realizatorilor de site-uri. Unii dintre programatorii web sunt familiari cu una din tehnologii, în timp ce alții o cunosc mai bine pe alta. De aceea, de multe ori se ivește un conflict între firmele de web design pentru că de obicei o firmă se specializează într-o singură tehnologie de programare, iar atunci când are de realizat sau de modificat un site web dinamic folosind o altă tehnologie, de cele mai multe ori aceștia încearcă să convingă clientul ca soluțiile lor sunt mai bune sau mai eficiente decât ceea ce a propus inițial clientul. Site-urile dinamice pot fi atât și cele mai simple, cât și și cele mai complexe baze de date și aplicații pentru web.

Pentru a înțelege mai bine acest concept de web site/aplicație web dinamică, spunem că paginile dinamice conțin programe care le generează sau modifică conținutul. O astfel de pagină se construiește "pe loc" atunci când este solicitată. Când un utilizator dorește să vadă pagina respectivă programele din ea se execută și generează conținut care, de obicei, depinde de utilizator sau de opțiunile acestuia. Utilizatorul va primi conținutul generat după ce programele se termină.  În acest fel se poate realiza o pagină care să fie diferită în funcție de cine o vede. De exemplu, la prima afișare pagina cere un nume și o parolă. Utilizatorii care le introduc corect vor vedea un conținut, iar ceilalți vor vedea alt conținut, respectiv un mesaj de eroare.

Fiecare pagină web este de fapt un fișier text conținând instrucțiuni care îi spun browserului ce elemente conține și cum ar trebui să afișeze elementele respective. Aceste instrucțiuni sunt scrise folosind limbaje speciale pe care le-am menționat anterior. Programele incluse în paginile web dinamice se mai numesc și script-uri, iar limbajele în care sunt scrise aceste programe poartă denumirea de limbaje de scripting. În funcție de locul în care sunt executate aceste programe ele pot fi server-side (se execută de către serverul web, pe calculatorul "server") sau client-side (se execută în browser, pe calculatorul client). Dintre limbajele de scripting client-side cel mai răspândit este JavaScript, iar limbajele de scripting server-side sunt variate (exemplu: PHP, Ruby, ASP.NET, Perl ș.a.m.d.), cel mai folosit în prezent fiind PHP, limbaj pe care l-am prezentat și analizat într-un capitol anterior.

Client-side scripting constă în schimbarea comportamentelor de interfață din cadrul unei pagini web specifice, ca răspuns la acțiunile mouse-ului sau ale tastaturii, sau la evenimente de sincronizare specificate. În acest caz, comportarea dinamică apare în cadrul prezentării. Astfel, conținutul client-side este generat pe sistemul local al calculatorului utilizatorului.

Un program care rulează pe un server web (server-side scripting) este folosit pentru a schimba conținutul web pe diferite pagini web, sau pentru a regla secvența sau a reîncărca paginile web. Răspunsurile Server pot fi determinate de astfel de condiții precum datele dintr-un formular HTML postat, parametri în URL-ul, tipul de browser folosit, trecerea timpului sau o de baze de date.

Principalul scop al unui site dinamic este acela de automatizare. Un site dinamic poate opera mai eficient, poate fi construit mai eficient și este mai ușor de întreținut, de actualizat și de extins. Este mult mai simplă construirea unui template și a unei baze de date decât construirea a sute și mii de pagini HTML statice individuale.

Cu privire la procesarea paginilor dinamice, când un server web primește o cerere pentru o pagină statică serverul trimite pagina direct browser-ului care a cerut-o. Când webserver-ul primește o cerere pentru o pagină dinamică, reacționează diferit: pasează pagina unei piese speciale a software-ului responsabilă pentru finisarea paginii. Aceast software special este numit un server de aplicații.

Serverul de aplicații citește codul pe pagină, finisează pagina în acord cu instrucțiunile codului, apoi înlocuiesște codul din pagină. Rezultatul este o pagină statică pe care serverul de aplicații o pasează înapoi la webserver, care apoi trimite pagina browser-ului care a cerut-o. Toate browser-ele primesc când pagina vine în format HTML pur. Un server de aplicații permite lucrul cu o parte din resursele serverului ca o bază de date. De exemplu, o pagină dinamică poate instrui serverul de aplicații sa extragă date dintr-o bază de date și să le insereze într-o pagină HTML. Instrucțiunile extragerii datelor din baza de date este numită o chestionare a bazei de date (database query). O chestionare constă în criterii de căutare exprimate în limbajul bazei de date SQL (Structured Query Language). Cererea SQL este scrisă în scripturile paginilor severului sau în TAG-uri.

Un server de aplicații nu poate comunica direct cu o bază de date, deoarece formatul specific bazei de date este incompatibil. Serverul de aplicații poate comunica cu baza de date numai printr-un intermediar al driverului bazei de date: software care acționează precum un interpretor între serverul de aplicații și baza de date. După ce driverul stabilește comunicația, cererea este executată și o înregistrare este creată. O înregistrare (recordset) reprezintă un set de date exstrase dintr-un tabel sau mai multe ale bazei de date. Înregistrarea este returnată apoi serverului de aplicații, care utilizează datele pentru a completa pagina.

Exemplu de cerere simplă într-o bază de date scrisă în SQL:

SELECT last name, first name, fitpoints

FROM employees

Acesta crează trei coloane de înregistrări și le umple cu rânduri continând numele, prenumele și punctele fitnes al angajaților din baza de date.

Site-urile web dinamice pot avea două tipuri de activități dinamice: cod și conținut. Codul dinamic poate fi vizibil sau poate fi ȋn spatele „scenei” iar conținutul dinamic poate fi șie el vizibil sau complet afișat.

Cod dinamic

Primult tip este o pagină web cu cod dinamic. Codul este construit dinamic, pe parcursul scrierii, utilizând un limbaj de programare activ în locul celui simplu, HTML static. Un site web cu conținut dinamic se referă la construcția sa sau la modalitatea de construire și mai specific se referă la codul folosit pentru a crea o singură pagină. O pagină web dinamică este generată pe parcurs prin punerea cap la cap a anumitor blocuri de cod, proceduri și rutine. O pagină web generată dinamic va interoga tipuri variate de informații dintr-o bază de date și le va pune la un loc într-un format predefinit pentru a prezenta cititorului o pagină coerentă. Ea interacționează cu utilizatorii într-o varietate de moduri, inclusiv prin citirea de cookie-uri de lectură, recunoscând istoricul precedent al utilizatorilor sau prin utilizarea de interacțiuni directe (forme de elemente, treceri de mouse, etc.). Un astfel de site poate afșa starea curentă a unui dialog dintre utilizatori, poate monitoriza, schimba o situație sau poate furniza informații într-un mod personalizat în funcție de cerințele individuale ale utilizatorilor.

Conținut dinamic

Al doilea tip este tipul de site cu conținut dinamic, afișat în vedere simplă. Conținutul variabil este afișat dinamic, pe parcurs, pe baza anumitor criterii, de obicei prin retragerea de informații stocate într-o bază de date.

Un site web cu conținut dinamic se referă la cum sunt afișate în pagina web anumite mesaje, texte, imagini și alte informații și mai specific cum se schimbă conținutul său la un anumit moment dat. Conținutul paginii web variază în funcție de anumite criterii, fie prin reguli predefinite fie prin variabile de intrare de utilizator. De exemplu, un site web cu o bază de date de articole de știri poate utiliza reguli predefinite care comandă afișarea tuturor articolelor noi pentru ziua curentă. Acest tip se site web dinamic va arăta în mod automat cele mai recente articole de știri cu privire la orice dată. Un alt exemplu de conținut dinamic este atunci când un site web de vânzare amănunțit, cu o bază de date de produse media, permite unui utilizator să introducă o cerere de căutare pentru cuvântul cheie Madonna. Ca răspuns, conținutul paginii web se va schimba în mod spontan, afișând o listă de produse Madonna cum ar fi CD-uri, DVD-uri, tricouri, cărți etc.

Domeniile pentru care sunt implementate site-urile web dinamice sunt următoarele: domeniul business (Google Finance), educațional(PBS Kids), științific (Discovery), organizații (World Trade Organization), web site-uri de socializare (Facebook), magazine virtuale (Emag), portaluri interactive (E-learning) etc.

Google Finance este un web site lansat la 21 martie 2006 de către compania Google. Serviciul dispune de titluri de afaceri și întreprinderi pentru multe companii, inclusiv deciziile lor financiare și știri de importanță majoră.

Facebook este un site web de tip rețea de socializare, totodată și cea mai răspândită la nivel global, prin intermediul căruia utilizatorii înregistrați au posibilitatea de a-și găsi prietenii, dar și pe oricare alți utilizatori din întreaga lume, nu numai din țara în care se află. Utilizatorii își pot crea și modifica propriul profil ori de câte ori doresc.  Utilizatorii pot intra în această rețea din orice loc unde există acces la Internet, pe baza unei parole, stabilite odată cu completarea formularului de înscriere, ce conține mai multe întrebări personale.

Emag  este o companie din țara noastră care se ocupă cu vânzarea online de echipamente și componente, respectiv un magazin online, creată special pentru toți utilizatorii internetului care doresc să achiziționeze produse din gama acestora. Este un web site dinamic, întrucât conține o bază de date în care sunt stocate produsele cu numele lor, imagini, prețuri etc.

E- learning reprezintă un portal interactiv și se referă la utilizarea mijloacelor electronice și al tehnologiilor informației și comunicațiilor (TIC) în educație. E-learning include toate formele de tehnologii educaționale în procesul de învățare și predare.

Capitolul 3: Descrierea aplicației

3.1. Descriere generală

Aplicația “Gamauto” este o aplicație modernă care este utilă pentru un magazin de piese auto. Aplicația oferă posibilitatea de a adăuga produse cu descriere, preț și alte detalii, opțiunea de a comanda piese noi cât și de a căuta produse în întreaga aplicație.

Figura 3.1. Logo-ul site-ului

Sursa: Lucrare

Principala utilitate a aplicației este promovarea și apariția pe web a firmei respective, astfel pentru mărirea productivității.

Aplicația este împărțită în două: panoul de administrare al site-ului și interfața site-ului pe care o vede utilizatorul de rând. Interfața conține patru pagini principale de care utilizatorul se poate bucura: Home, pagina principală, Produse, Cerere ofertă și Contact.

Figura 3.2. Meniul site-ului

Sursa: Lucrare

3.2. Funcționalitatea aplicației

3.2.1. Pagina principală

Pe pagina principală utilizatorilor le sunt oferite mai multe beneficii cum ar fi:

modul de căutare al produselor din aplicație – căutarea produselor se face după denumirea produsului, descrierea produuslui cât și după codul acestuia. Căutarea ne trimite către pagina de produse, unde sunt doar produsele care s-au potrivit căutării utilizatorului. În cazul în care nu s-a găsit nici un produs, nu este afișat nici un produs.

Figura 3.3. Modul de căutare

Sursa: Lucrare

galerie care conține ultimele oferte cât și ultimele anunțuri – galeria este formată dintr-o listă de imagini. Acestea sunt inserate din cod.

Figura 3.4. Galerie imagini

Sursa: Lucrare

film de prezentare al site-ului creat în Adobe Flash

Figura 3.5. Film Flash

Sursa: Lucrare

listă cu toate mărcile de mașini pentru care site-ul are piese auto – lista este o listă cu imagini cu toate mărcile. La click pe una din mărci, aplicația te redirecționează către pagina de cerere ofertă unde este deja selectată marca de mașina pe care s-a dat click.

Figura 3.6. Lista de mașini

Sursa: Lucrare

3.2.2. Produse

Pagina de produse conține toate produsele de pe site. Reprezentarea fiecărui produs în parte se face printr-o imagine, care este prima imagine din ceea ce a uploadat administratorul făcută la o dimensiunea de pictogramă, titlul produsului și 150 de caractere din descrierea produsului.

De asemenea la crearea unui produs nou care nu are poză, aplicația ii va atribui automat o imagine implicită care este sugestivă pentru utilizator.

Figura 3.7. Produse

Sursa: Lucrare

La click pe unul din produse suntem redirecționați către pagina produsului respectiv unde sunt mai multe detalii despre acel produs. Pe această pagină putem avea acces la informații precum codul produsului care este format din literele PI plus id-ul produsului din baza de date, titlul produsului, descrierea produsului, prețul, imaginea principală a produsului care la click pe altă imagine din produsul respectiv se schimbă automat fără a face refresh la pagină. De asemenea avem un buton cerere ofertă care ne trimite către pagina de cerere ofertă.

Figura 3.8. Pagina produsului

Sursa: Lucrare

3.2.3. Cerere Ofertă

Acesta este cea mai importantă pagină din aplicație fiind singura modalitatea de a comanda un produs online. Aici avem un formular unde utilizatorul își introduce toate detaliile legate despre produsul de care este interesat.

Ca și câmpuri ale formularului avem:

Marca – reprezintă fiecare marcă de mașină, care la schimbarea acestuia se modifică și câmpul de tip sau variantă.

Tip – acest câmp este legat de câmpul marca, și reprezintă toate tipurile de mașini din marca de mașină aleasă

Caroserie – este tipul caroseriei, de exemplu Break 4+1 uși

Numărul de identificare – este numărul de identificare al mașinii deținătorului, de exemplu WOL00036M2726683

Anul de fabrucație – este anul de fabricație al mașini

Tip motor – este tipul motorului, de exemplu FIAT C14NZ

Combustibil – combustibilul cu care rulează mașina, de exemplu Motorină, Benzină

Capacitate – este capacitatea motorului

Putere – puterea motorului, de exemplu 1389

Piese dorite – este un textarea unde utilizatorul își introduce piesele de care este interesat

Nume, Email, Telefon – sunt câmpuri obligatori pe care utilizatorul trebuie să le introducă

Captcha – este un câmp de securitatea împotriva roboților online. Modulul de captcha crează o poză cu litere și cifre care este afișat utilizatorilor și la apăsarea butonului de trimitere, ceea ce a introdus utilizatorul în câmpul de captcha este verificat cu ceea ce scrie în imaginea generată de modul

Formularul trimite un email către administratorul magazinului de piese auto prin funcția php de trimitere de email numită mail.

mail("$to", "$subject", "$msg", "$headers");

3.2.4. Contact

Această pagină conține un alt formular prin care utilizatorii trimit un mesaj către administratorul magazinului de piese auto pentru orice eventuale întrebări. Acest formular conține câmpuri ca: nume, email, telefon, mesajul cu întrebarea utilizatorului și câmpul de captcha.

Figura 3.9. Formular de contact

Sursa: Lucrare

De asemenea în partea stânga a paginii avem, adresa completă a magazinului de piese auto, telefon, email și programul de lucru.

Figura 3.10. Detaliile magazinului

Sursa: Lucrare

3.2.5. Panoul de administrare

Accesul la panoul de administrare se face prin accesarea paginii gamauto.ro/admin unde suntem întâmpinați de un panou de autentificare. Pentru a avea acces la panoul de administrare trebuie să completăm numele cât și parola administratorului. Parola în baza de date este ascunsă prin funcția de MD5, care este o funcție de hash.

Figura 3.11. Panou de autentificare

Sursa: Lucrare

În panoul de administrare avem posibilitatea de a administra toate produsele din site. Avem o tabelă cu toate produsele ordonate după codul produsului și pentru fiecare în parte putem șterge sau putem modifica produsul. Produsele sunt paginate după un număr de zece produse pe pagină. Paginarea este posibilă prin adăugarea la link-ul site-ului un parametru page și după acesta numărul paginii astfel: gamauto.ro/admin/admin.php?page=2

Figura 3.12. Pagina de administrare

Sursa: Lucrare

La inserarea unui produs nou suntem obligați să introducem denumirea, descrierea și prețul produsului. Tot aici avem zece input-uri pentru a insera imagini pentru produsul respectiv. La apăsarea pe butonul de inserare se introduce în baza de date produsul cu câmpurile introduse, iar în cazul în care sunt imagini pentru produs, le încarcă pe server.

Figura 3.13. Modulul de adăugare

Sursa: Lucrare

Modulul de modificare produs este identic cu cel de adăugare de produs, singurul plus este administrarea de imagini ale produsului respectiv. Putem adăuga poze noi și să ștergem poze pentru produs.

Figura 3.14. Modulul de modificare

Sursa: Lucrare

La ștergerea unui produs suntem întâmpinați de un pop-up care ne întreabă dacă suntem siguri că dorim să ștergem produsul respectiv sau nu. La apăsarea butonului de da, produsul este șters, altfel, nu.

Un alt modul este exportarea produselor în format XML. Exportarea făcându-se prin interogarea bazei de date pentru a avea acces la cele mai actualizate date apoi trimiterea utilizatorului fișierul pentru a fi salvat.

Figura 3.15. Fișierul XML

Sursa: Lucrare

3.2.6. Baza de date

Administrarea bazei de date, crearea tabelelor, crearea legăturilor dintre tabele, etc. au fost realizate printr-un instrument de PHP numite phpMyAdmin. Acesta ușurează munca.

Figura 3.15. Baza de date

Sursa: Lucrare

Baza de date conține cinci tabele care ne ajută să salvăm toate datele înăuntru. Mai jos vom descrie fiecare tabel în parte și la ce îl folosim în aplicație.

Tabelul admini ne ajută la salvarea datelor de autentificare ale administratorilor. Aceasta tabelă conține o coloana id care este identificatorul pentru fiecare administrator în parte fiind unic, coloana utilizator conține numele administratorului și coloana parola conține parola administratorului care este ascunsă cu funcția de hash MD5.

Figura 3.16. Tabelul admini

Sursa: Lucrare

Tabelul imagini ne ajută să salvăm denumirea tuturor pozelor în baza de date cât și cărui produs aparține. Astfel tabela conține: id care este identificatorul unic, id_produs este id-ul produsului pentru care aparține și sursa care reprezintă numele pozei.

Figura 3.17. Tabelul imagini

Sursa: Lucrare

În tabelul mărci avem salvate toate mărcile de mașini. Tabelul conține id care este identificatorul unic și nume care este denumirea mărcii de mașină.

Figura 3.18. Tabelul mărci

Sursa: Lucrare

Tabelul modele este legat de tabelul mărci prin coloana rubrica, aceasta reprezentând tipul de mașină al mărcii din coloana rubrică. Acesta conține id – identificatorul unic, nume este numele modelului și rubrica este id-ul mărcii de mașină.

Figura 3.19. Tabelul modele

Sursa: Lucrare

Tabelul produse conține toate produsele din aplicație, iar aici avem toate detaliile despre un produs, adică: id – care este identificatorul unic și ne ajută la crearea codului de produs prin adăugarea PI înaintea id-ului, denumire este denumirea produsului, descriere este descrierea iar pret este prețul produsului.

Figura 3.20. Tabelul produse

Sursa: Lucrare

3.2.7. Structura directoarelor și a fișierelor

Aplicația este structurată în mai multe directoare după cum urmează:

Directorul admin – aici este toată funcționalitatea pentru panoul de admin. Aici este un alt director numit includes care conține fișiere pentru conectarea la baza de date, fișierul functions unde avem toate funcțiile care le folosim în aplicație și fișierul sessions care ne oferă date despre administratorul autentificat.

Directorul images – conține toate imaginile din aplicație, în directorul mărci sunt mărcile de mașini iar în directorul produse sunt toate imaginile produselor organizate într-un mod inteligent. Câte un director pentru fiecare produs în parte, iar înauntru trei tipuri de poze în trei directoare mediu, mici și micimici.

Directorul includes – conține fișierele care sunt incluse în fiecare fișier, adică antetul și subsolul paginilor

Directorul javascript – conține toate fișierele javascript din aplicație

Directorul stylesheet – conține toate fișierele de tipul css, pentru stilul aplicației

Concluzii

Dezvoltarea Internetului tinde să modifice viziunea individului contemporan despre societate. Inteligența, creativitatea, calitatea interfețelor soft și seriozitatea utilizatorilor sunt principalele atuuri ale societății actuale. Site-ul realizat oferă posibilitatea achiziționării de cunoștiințe într-o manieră statică prin intermediul paginilor web. Rolul aplicație WWW, ca mijloc universal și extrem de accesibil de informare este imens. Astfel, persoanele care prezintă interes în domeniul auto, mai precis persoanele dornice de a achiziționa piese auto, pot să acceseze informațiile prin intermediul calculatorului. Completând formularul de comandă ei află dacă piesele respective se găsesc în stoc, iar în caz contrar, aceștia au posibilitatea de a face o comandă specială pentru anumite piese. Prin urmare, lucrarea „GAMAUTO”, constituie o facilitate pusă la dispoziția tuturor persoanelor pentru achizițonarea de piese auto.

Închei cu speranța că aceasta lucrare va constitui un instrument de lucru util și că, la finalul ei cititorii vor dobândi abilitatea de a construi un site propriu interesant, atrăgător și perfect funcțional. Și, de ce nu, ca o parte din ei să își clădească o eventuală carieră din această activitate frumoasă.

În viitor aș vrea să mai adaug site-ului un modul de logare/autentificare, să implementez un sistem e-commerce pentru a facilita munca utilizatorului și un forum dedicat discuțiilor între utilizatori pe diferite teme.

Consider că prin respectiva lucrare am reușit să dobândesc anumite cunoștințe legate de tehnologiile web actuale, și am reușit să îndeplinesc toate cerințele ce mi le-am impus la începutul proiectului.

Bibliografie:

Matt Doyle – “BeginningPHP 5.3”, Editura Wiley Publishing, Inc., 26 Octombrie, 2009 .

McCarty Bill – “ PHP 4”, Editura Sborne, 26 Iulie, 2001.

Paul DuBois – (Traducător Mănăstireanu Mihai) – “MySQL”, Editura Teora, București, 2001.

T. Anghel – “Dezvoltarea aplicațiilor web folosind XHTML, PHP și MySQL”, Editura Polirom, Iași, 2005.

Năstase Fl. și Năstase P. – „Tehnologia aplicațiilor web”, Editura Economică, București, 2002.

Niel M. Bornstein – “.NET and XML”, Editura O'Reilly Media, Inc., 2003.

Luc Van Lancker – “Ajax: Developper pour le web 2.0”, Editura Editions ENI, 2007.

K. Jamsa, S. Lalani, S. Weakley – “Programarea în WEB”, editura All Educational, București, 2000.

Joydip Kanjilal, Sriram Putrevu – “ Teach yourself ASP.NET Ajax in 24 Hours”, Editura Sams, 2010.

Bogdan Brinzarea, Cristian Darie – “AJAX and PHP: Building modern Web Applications”, Editura Packt Publishing, 2010.

Robin Nixon – “ Learning PHP, MySQL & JavaScript”, Editura O’Reilly Media, Inc., 2009.

Alte referințe:

www.php.net

http://ro.wikipedia

www.scribd.com

www.w3schools.com

www.tutsplus.com

www.ecursuri.ro

www.asp.net

Bibliografie:

Matt Doyle – “BeginningPHP 5.3”, Editura Wiley Publishing, Inc., 26 Octombrie, 2009 .

McCarty Bill – “ PHP 4”, Editura Sborne, 26 Iulie, 2001.

Paul DuBois – (Traducător Mănăstireanu Mihai) – “MySQL”, Editura Teora, București, 2001.

T. Anghel – “Dezvoltarea aplicațiilor web folosind XHTML, PHP și MySQL”, Editura Polirom, Iași, 2005.

Năstase Fl. și Năstase P. – „Tehnologia aplicațiilor web”, Editura Economică, București, 2002.

Niel M. Bornstein – “.NET and XML”, Editura O'Reilly Media, Inc., 2003.

Luc Van Lancker – “Ajax: Developper pour le web 2.0”, Editura Editions ENI, 2007.

K. Jamsa, S. Lalani, S. Weakley – “Programarea în WEB”, editura All Educational, București, 2000.

Joydip Kanjilal, Sriram Putrevu – “ Teach yourself ASP.NET Ajax in 24 Hours”, Editura Sams, 2010.

Bogdan Brinzarea, Cristian Darie – “AJAX and PHP: Building modern Web Applications”, Editura Packt Publishing, 2010.

Robin Nixon – “ Learning PHP, MySQL & JavaScript”, Editura O’Reilly Media, Inc., 2009.

Alte referințe:

www.php.net

http://ro.wikipedia

www.scribd.com

www.w3schools.com

www.tutsplus.com

www.ecursuri.ro

www.asp.net

Similar Posts