Aplicatii Web cu Baze de Date Distributive

Introducere

De ce am ales aceasta temă?

Luând în considerare că trăim într-o lume în continuă mișcare, o lume în care timpul este principala problemă, aplicația de față este construită tocmai ca o alternativă a acestei probleme în domeniul vânzării-cumpărării online.

Se cunoaște că în cadrul aplicatiilor web cu baze de date, capacitatea acestor baze de date este considerabilă, de aceea aplicația de fata prezinta

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

HTML – este o prescurtare de la HyperText Markup Language este un limbaj de programare folsit in World Wide Web pentru a produce pagini web dinamice.

Javascript – este un element important al limbajului DHTML, care este folosit de catre profesioniști pentru a crea efecte, de tipul celor realizate în FLASH, făra să fie nevoie să apeleze la plug-in.

MySql – cea mai populara baza de date open source din lume cu peste 100 de milioane de copii ale software-ului descărcat sau distribuit de-a lungul istoriei sale.

Apache – in primul rănd este un web server de tipul de HTTP open source pentru sistemele de operare UNIX, Windows, Linux si alte platforme, el joacă un rol important in dezvoltareaWorld Wide Web si este cel mai popular web server servind ca platformă de referința pentru celălalte servere web.

PHP – este oficial prescurtarea pentru „PHP: Hypertext Preprocessor” („PHP: preprocesor de hipertext”) dar milioane de oameni il folosesc după numele original, Personal Home Page (Pagina de bază personală) și tocmai de aceasta este ideea principală – crearea propriilor pagini web interactive în cel mai simplu mod posibil.

CSS – este un limbaj de stilizare al elementelor si al tagurilor HTML (HyperText Markup Language). Denumirea CSS provine din expresia Cascading Style Sheets. În Web Design-ul modern, pentru stilizarea paginilor web se folosește CSS.

Structura lucrarii:

Lucrarea este împărțită in trei capitole

Capitolul I: Prezentarea mediilor de programare folosite. Idei generale, despre tehnologiile necesare creării proiectului de față.

Capitolul II: Sistemul de informații Web 2.0 –acest capitol prezintă istoricul și generalități despre web 2.0.

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

OBIECTIVELE URMĂRITE

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

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

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

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

Afișarea informațiilor utile pentru client.

Interfața de administrare:

Realizarea unei interfețe grafice prietenoase.

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

Capitolul I.

Prezentarea mediilor de programare folosite.

World Wide Web

Web-ul este un sistem hipertext. Modul de afisare a unei pagini Web este același a unui fișier Help de Windows, unde, dacă dați clic pe un cuvânt cheie sub formă de link, va apare altă pagină de Help. Și pe Web, puteti sa cititi o pagina care contine cuvinte cheie, iar dacă doriți să aflati mai multe despre un subiect anume, puteti da clic pe un cuvânt-cheie asociat și vi se afiseaza o noua pagina, despre subiectul respectiv. Acestea sunt informatii structurate în sistem hipertext..

Paginile Web sunt stocate în fisiere pe un calculator server. Un astfel de server, computer este, de exemplu, www.facebook.com, sau www.java.com. Calculatoarele care acceseaza paginile Web sunt useri normali, clienți. De fapt, pe computerele clientilor rulează programe pentru a vedea paginile Web, numite browsere Web (cele mai populare fiind Chrome, Mozzila,Internet Explorer), si acestia acceseaza si afiseaza pagina Web pe calculatorul local.

Browserul de pe client se conecteaza la server (de exemplu www.facebook.com), și, prin protocolul HTTP, îi transmite o cerere de tip adresa de pagina, de exemplu http://www.facebook.com.

Serverul citeste fisierul (sau fisierele) aferent de pe disc si îl trimite clientului prin protocolul HTTP, prin retea.

Clientul – browserul de fapt – citeste fisierul primit si îl interpreteaza, apoi afiseaza pagina Web. Un fisier HTML ( HyperText Markup Language”) contine, de fapt, pe lânga textul de afisat, si instructiuni care descriu browserului cum sa afiseze textul respectiv, dar si cum sa afiseze imaginile care vor aparea pe pagina (imaginile sunt continute în fisiere separate), sau alte elemente multimedia. Instructiunile sunt în limbajul HTML.

1.2 Tehnologia HTML

HTML este prescurtarea de la HyperText Markup Language și reprezintă un limbaj pentru crearea unui document astfel încât să poată fi publicat pe World Wide Web și vizualizat cu ajutorul unui browser (Google Chrome, Mozila Firefox, Internet Explorer ,Opera, etc.).

Hypertext-ul trebuie interpretat ca un text care semnalează o legătură la o altă informație web, de obicei un alt document web, și este identificat prin subliniere sau culoare, pentru a-l deosebi de textul simplu. HTML nu este un limbaj de programare și asta din cauza că în HTML lipsește atributul principal propriu oricărui limbaj de programare și anume comenzile. În HTML nu poate fi creată o succesiune de acțiuni, ci doar poate fi descris modul în care browserul trebuie să afișeze la ecran documentul respectiv.

Astfel HTML este doar un limbaj de descriere, conținând elemente ce permit construirea paginilor web.

Documentele HTML sunt exclusiv de tip text (ASCII) prin urmare pot fi create cu orice editor de texte. Au fost însă dezvoltate editoare specializate care permit editarea într-un fel de WYSIWYG – Wat You See Is Wat You Get.

Un document XHTML trebuie să aibă înainte de începerea scrierii codului și o declarație <!DOCTYPE> ce reprezintă așa-numitul mod strict al browserului.<!DOCTYPE> aduce la cunoștință regulile cu care sa se afișeze documentul. Avantajele documentelor XHTML sunt multiple: sunt compatibile cu toate browserele mai noi sau mai vechi, codul fiind mai inteligibil inclusiv pentru browsere.

Editoarele specializate HTML (ex. MS FrontPage sau Macromedia DreamWeaver) permit crearea documentelor web într-un mod rapid și ușor, și, prin urmare, foarte eficient, doar prin apăsarea câtorva butoane sau prin apelarea câtorva funcții predefinite. Acest tip de editoare reprezintă unelte excelente pentru dezvoltatorii web cu experiență. În general aceste editoare pot fi folosite și de utilizatori care nu cunosc limbajul HTML, cu toate că ele atribuie coduri în exces documentului și de obicei se intervine „manual” la redactarea lor.

Un alt neajuns ar fi faptul că în majoritatea cazurilor documentul este prezentat în editor și atunci iarăși este necesar de a interveni pentru efectuarea modificărilor respective. Astfel chiar și în cazul folosirii unui editor specializat cunoașterea limbajului HTML este oportună. HTML utilizează pentru descrierea documentelor web – tag-uri, numite și etichete, specifice pentru fiecare element descris. Tag-urile stabilesc atât structura documentului, cât și aspectul acestuia. Un tag este un identificator care furnizează browser-ului instrucțiuni de formatare a documentului. Petru a fi delimitate, tag-urile HTML sunt încadrate întreparanteze unghiulare (< >).

Tag-urile se divizează în:

tag-uri pare sau tag-uri pereche – care impun după sine existența unui tag de închidere

tag-uri impare sau tag-uri singulare – care nu necesită închidere.

1.2.1 Structura unui document HTML

Orice pagină web (document HTML) are în structură trei elemente obligatorii: un element numit HTML, care cuprinde întregul document, și două sub-elemente ale acestuia: HEAD (antet, cap) și BODY (corp).

Tag-ul <html> este primul tag care trebuie să apară într-un fișier HTML. El încadrează alături de tag-ul său corespunzător de închidere </html> întreaga pagină web.

Tag-ul <head> marchează partea de antet a documentului. Este un tag par cu tag-ul de închidere </head>

Tag-ul <META> se utilizeaza pentru alte informații suplimentare și adminte atributele:

NAME – conține un șir de caractere ce reprezintă numele proprietății (“Author”, “Keywords”, “Description”)

CONTENT – conține valoarea asociată proprietății respective (între “ “)

Tag-ul par <body> încadrează conținutul paginii web.

În antet este recomandat să se precizeze titlul documentului, care va fi afișat în bara de titlu a browser-ului. Pentru a preciza titlul documentului, care nu poate depăși 64 de caractere, se utilizează în secțiunea antet tagurile pereche <title> și </title>, între care se scrie titlul documentului.

Iată un model de structură a unui document HTML:

Elementul BODY admite următoarele atribute:

BACKGROUND=URL – URL este un șir de caractere ce reprezintă adresa Web a unei imagini care va fi utilizată de browser ca fundal (background) pentru document.

BGCOLOR=culoare – color stabilește culoarea fundalului documentului (BackGround Color).

În HTML culorile se pot specifica în două moduri:

utilizând denumirile predefinite, cele mai uzuale sunt: red, maroon, yellow, green, lime, teal, olive, aqua, blue, navy, purple, fuchsia, black (este culoarea implicita), gray, silver, white;

utilizând codul culorii ( #rrggbb ) dat în formatul hexazecimal RGB: rr reprezintă roșu (de la 00 la FF); gg reprezintă verde (de la 00 la FF); bb reprezintă albastru (de la 00 la FF); aceste valori reprezentând contribuția fiecărei culori de bază la culoarea creată.

TEXT=culoare – stabilește culoarea textului

LINK=culoare – stabilește culoarea cu care vor fi marcate în text link-urile nevizitate.

VLINK=culoare – stabilește culoarea cu care vor fi marcate în text link-urile vizitate.

ALINK=culoare – stabilește culoarea cu care va fi marcat în text link-ul activ.

LANG=cod-limbă – lang specifică limba în care este redactat documentul (pentru motoarele de căutare, sintetizatoare de voce etc.) cum ar fi: en, fr, el, ro etc.

DIR=LTR │ RTL – specifică direcția de scriere a textului: LTR – de la stânga la dreapta (Left To Right) sau RTL – de la dreapta la stânga (Right to Left).

HTML5 este cea mai recentă versiune de HTML, în scopul de a simplifica dezvoltarea de aplicatii web. Sintaxa HTML5 este mult mai ușoară în comparație cu HTML4, și oferă multe caracteristici noi. Acest articol oferă o introducere în HTML5.

Aplicațiile HTML5 pot fi pornite pentru a rula offline. HTML5 oferă funcția de stocare offline, numit un cache al cererii pentru stocarea de fișiere. Deci, dacă utilizatorul este offline, browser-ul încă mai are acces la fișierele necesare. Acesta poate fi HTML, CSS, Javascript, sau orice alte resurse necesare pentru a vizualiza pagina de web.

1.3 Utilizarea CSS

Denumirea de CSS provine din limba engleză de la cascading style sheets, care se poate traduce ca fiind foi de stil în cascadă, stiluri ce pot fi definite atât în headerul unei pagini web, cât și într-un fișier separat, individual. Cea de-a două variantă fiind cea recomandată.

CSS este utilizat de atât de autorii cât și de cititorii de pagini web pentru a defini culori, fonturi, layout, precum și alte aspecte legate de prezentarea documentelor. El este conceput în primul rând pentru a permite separarea documentului ca și conținut (scrise în HTML sau un Markup Language similar) de documentul de prezentare (scris în CSS).

Această separare poate îmbunătăți accesibilitatea conținutului, să ofere o mai mare flexibilitate și poate diminua caietul de sarcini al celui care se ocupă de mentenanța unui site web prin asigurarea unui control mai simplu.

De asemenea CSS-ul poate reduce complexitatea și repetarea tag-urilor folosite pentru formatare din structura conținutului. CSS poate, de asemenea, permite ca aceeași pagină să fie prezentată în diferite stiluri de redare pentru diferite medii, cum ar fi pe ecranul unui calculator, în imprimare sau vocal(când este redat printr-un cititor de ecran.

O dată cu apariția sa, mulți dezvoltatori web au considerat că CSS este un mod de formatare mult mai puternic și mai ușor de utilizat, și au considerat că <FONT> este un tag învechit. În 2006 (s-a facut Update), capabilitățile CSS-ului au fost îmbunătățite considerabil în ceea ce privește design-ul layout-ului unei pagini web. Cu toate acestea, multe site-uri web încă utilizează CSS numai pentru formatarea textului, în timp ce, pentru layout folosesc tabele.

Pentru că Internetul este într-o creșterea rapidă, datorită utilizarii tot mai frecvente a telefoanelor mobile și a PDA-urilor, este necesară crearea unor pagini web accesibile utilizatorilor care folosesc o mare varietate de dispozitive. Un design web fară tabele îmbunătățește considerabil accesibilitatea, în acest sens.

Autoritatea în ceea ce privește acest tip de fișiere, este deținută de World Wide Web Consortium (sau W3C). Aceștia oferă specificațiile complete, lista browserelor care suportă CSS, instrumente de validare, precum și informații despre învățare a CSS.

1.4 PHP – Hypertext Preprocessor

Pe scurt, ce este PHP? Ca idee generală, PHP reprezintă un limbaj de programare ce permite modificarea paginilor web inainte ca acestea sa fie transmise de server catre browserele utilizatorilor.

PHP poate genera continut HTML pe baza unor fisiere existente sau pornind de la zero, poate să afiseze o imagine sau orice alt continut accesibil prin web, sau să redirectioneze utilizatorul către alte pagini. In cadrul acestui proces, PHP poate consulta baze de date, fisiere externe sau alte resurse, poate trimite email-uri sau executa comenzi ale sistemului de operare.
Intrucat procesarea se realizeaza la nivelul serverului web, inainte ca paginile web sa ajunga in browser, PHP este considerat un limbaj de programare server-side.

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

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

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

Interpretorul PHP actionează ca o componentă adiționala, o extensie a serverului web care este invocată de ori cate ori o pagină PHP este accesată. Această componentă procesează codul-sursa din pagina si apoi transmite rezultatul inapoi la web-server, ajungănd in final in browserele utilizatorilor. Acest proces este prezentat in imaginea din dreapta de mai sus.Din imaginile de mai sus, se observă că atunci când nu exista un interpretor PHP, paginile sunt transmise direct câtre utilizatori asa cum sunt salvate pe disc, fara modificari. Pentru a actualiza continutul acestora, este nevoie de intervenție directă asupra lor si salvarea modificarilor pe server. Aceste pagini sunt denumite "pagini statice".

Spre exemplu, presupunand ca avem o pagina statică ce afisează membrii unei comunitati, la fiecare înscriere a unei noi persoane, pagina ar trebui modificata manual de catre cineva cu acces la serverul web. Lucrurile se complică dacă acea lista este personalizată, cu trimiteri către alte informatii (cum ar fi detalii de contact pentru fiecare, etc) sau cu un design intortocheat. Toate aceste probleme pot fi rezolvate cu ajutorul PHP.

Folosind o secvență de cod PHP am putea prelua lista de membri dintr-o baza de date, eliminănd problema actualizarii – nu va mai fi nevoie să se modifice pagina odata cu fiecare membru nou, scriptul PHP va afișa in mod automat noile persoane adaugate in baza de date. Este rezolvată si problema linkurilor personalizate, sau a designului – toate elementele specifice unei persoane pot fi generate in mod automat.

Aceste pagini sunt, asadar, modificate de catre PHP la momentul accesarii lor de catre utilizatori. In funcție de parametrii primiti si de secvența de cod definită de programator, aceași paginț poate avea conținut diferit. Aceasta proprietate este denumită dinamism, iar o astfel de pagină este considerată pagina dinamica.

1.4.1 Crearea unui script PHP

Generalități despre PHP

Codul PHP trebuie inclus in fisiere cu extensia .php ce vor fi deservite utilizatorilor finali si trebuie delimitat de restul conținutului prin tagul de inceput <?php si tagul de sfarsit ?>. Practic tot ce se află in interiorul acestor etichete va fi interpretat ca fiind cod-sursa PHP (cod ce va fi executat de interpretorul PHP). Textul din afara celor 2 taguri este lasat neschimbăt, fiind ulterior interpretat de browser. Se pot folosi si alte etichete in funcție de configurația serverului web, dar acestea nu sunt recomandate.

<?php

/* forma recomandata */

?>

<script language="php">

/* forma disponibila oricand, putin folosita */

</script>

<?

/* taguri scurte, acceptarea lor de catre web-server depinde de configurare */

?>

<%

/* taguri in stilul asp, acceptarea lor de catre web-server depinde de configurare */

%>

Codul PHP este format din instrucțiuni – comenzi date catre interpretor, in urma cărora se execută ceva. Asa cum s-a mai spus, PHP este folosit in principal pentru a genera cod HTML, asa că de cele mai multe ori instrucțiunile folosite sunt cele de afisare. In aplicații mai complexe se pot insa folosi si instructiuni de conectare la bazele de date, de citire/scriere/manipulare fișiere, intrucțiuni de trimitere email-uri si altele. Instrucțiunile se pot grupa in blocuri delimitate de acolade { }.

Aceste blocuri, numite și "instrucțiuni complexe" se comportă ca și cum ar fi o singură instrucțiune Toate instrucțiunile (in afară de blocuri) trebuie să fie terminate cu punct si virgul ( ; ). Lipsa acestuia generează o eroare.

Crearea datelor de ieșire pentru un browser Web

Programele PHP executa trei categorii de operatii elementare:

Obtin date de la un utilizator.

Executa prelucrari ale datelor, respectiv obtine accesul la datele stocate in fisiere si baze de date si le manipuleaza.

Afiseaza date astfel incat un utilizator sa le poata vizualiza.

În programele PHP instrucțiunea echo, care inserează un text într-o pagină web, este probabil cea mai flexibilă și cea mai frecventa întălnită instrucțiune in PHP. Instrucțiunea echo este folosită simplu, utilizănd cuvântul cheie echo urmat de un text încadrat de ghilimele. Puteți vedea cum este folosită instrucțiune echo pentru afișarea textului ”Hello World” în scriptul de mai jos:

<html>

<head>

<title>PHP Test</title>

</head>

<body>

<?php echo '<p>Hello World</p>'; ?>

</body>

</html>

Observați că instrucțiunea începe cu un cuvănt "echo" si se încheie cu un caracter punct si virgulă (;). Construcția echo trimite datele de ieșire care vor fi afișate de browser. Ghilimelele duble se folosesc pentru delimitarea unei expresii de tip text, in cazul nostru "scrieți aici un text oarecare" (se pot folosi si ghilimele simple).

In locul propoziției "scrieți aici un text oarecare" puteți plasa aproape orice text, cu excepția altor ghilimele. Totuși, pentru moment, trebuie sa includeți numai litere, cifre, spații și semne de punctuatie folosite in alfabetul latin, precum virgula, caracterul punct si virgula, punctul, semnul de intrebare si semnul exclamarii.

De asemenea, puteți include caracterele < >, folosite pentru delimitarea etichetelor HTML, respectiv caracterul /, folosit pentru a indica membrul de inchidere al unei perechi de etichete HTML.

Documentarea unui script PHP

În afară de a furniza nume descriptive fișierelor care conțin scripturile dvs. PHP, trebuie să includeți în fiecare script atât comentarii care să permită unui cititor să determine cu ușurință utilitatea scriptului, cât și alte informații referitoare la script. De exemplu, puteți include un comentariu care precizează numele fișierului care conține scriptul, astfel încât acesta să apară în versiunile tipărite ale scriptului. Iată un model sintactic pentru comentariile PHP:

// Comentariu cu anumite informații

După cum se poate vedea, un comentariu începe cu două caractere slash, urmate de un spațiu. În continuare, linia conține comentariul, care poate include orice caractere doriți, inclusiv caractere speciale.

O modalitate de a crea un comentariu pe mai multe linii este de a începe fiecare linie cu ajutorul caracterelor //. Totuși, puteți crea un comentariu din mai multe linii și în alte moduri, dacă preferați. Iată un exemplu:

/*

Acesta este un comentariu pe mai multe linii.

Poate fi alcatuit dintr-un numar oricat de mare de linii.

*/

1.4.2 Elementele constructive ale limbajului PHP

Manipularea tipuriilor de date

Modul intern în care sunt stocare datele nu este decis de dumneavoastră, ci de PHP. În spatele scenei, PHP acceptă opt tipuri interne de date:

Boolean. Stochează valori de tip TRUE/FALSE

Întreg (integer). Stochează numere întregi, cum ar fi -1, 0,5 si așa mai departe

În virgula mobilă (float). Stochează numere in virgulă mobilă, cum ar fi 3,14159 sau 2,1798

Șir de caractere (string). Stochează texte cum ar fi ”Hello World”

Matrice (array). Stochează matrice de elemente

Obiect (object). Stochează obiecte de programare

Resursă (resurce). Stochează o resursă de date

NULL. Stochează o valoare NULL

Deoarece PHP stabilește tipul datelor în funcție de valorile pe care le atribuiți acestora

Operatorii și funcții matematice

Vom începe cu operatorii matematici, care sunt cei mai simpli operatori:

+ Adună două numere

– Scade doua numere

* Înmulțeste doua numere

/ Împarte doua numere

% Returnează restul împărțirii unui număr la altul (modulo)

Pe langă operatorii matematici, limbajul PHP include și diferite funcții matematice iata căteva dintre acestea:

abs — modulu (adică valoarea absolută)

acos — arccosinus

asin — arcsinus

atan — arctangenta

base_convert — conversi numar dintr-o baza in alta

bindec — conversie din binar in zecimal

ceil — reotunzire la urmatorul intreg

cos — cosinus

decbin — conversie zecimal în binar

dechex — conversie zecimal în hexazecimal

decoct — conversie zecimal în octal

deg2rad — conversie grade în radian

exp — exponet al lui e

floor — rotunjire la rădăcină

fmod — modulo = zecimalele unei impărțiri

hexdec — conversie din hexazecimal în zecimal

hypot — calculează lungimea ipotenuzei pentru un triunghi cu unghi drept

is_finite — returnează dacă o valoare este unu numar finit

is_infinite — returnează dacă o valoare este infinită

is_nan — returnează dacă o valoare nu este numar

log10 — logaritm in baza 10

log — logaritm natural

max — returnează maximul dintre valorile trimise ca parametri

min — returnează minimul dintre valorile trimise ca parametri

mt_rand — generează o valoarea aleatoare din întregi (mai bun decat rand)

octdec — conversie din octal in zecimal

pi — valoarea constantei PI

pow — exponent

rad2deg — conversie radian in grade

rand — generează o valoare intreaga aleatoare

round — rotunjirea a numelerelor cu virgula ( de ex: round(6.3)=6 sau round(6.6)=7 )

sin — sinus

sqrt — radical de orfin 2 (radacina patrata)

tan — tangenta

Iată un exemplu, în care am folosit funcția sqrt pentru calcularea rădăcinii pătrate:

<?php

echo “sqrt(49) =”, sqrt(49);

?>

Și rezultatul obținut în urma rulării acestui script este:

sqrt(49) = 7

Structuri de control in PHP

In limbajul PHP, la fel ca in oricare alt limbaj de programare, instrucțiunile cuprinse într-o secvența de cod-sursa se execută succesiv, una după alta. Există insă anumite instrucțiuni care modifică ordinea de execuție a liniilor de cod. Din acest motiv ele poarta numele de structuri de control, întrucat ele controlează fluxul de execuție.

Structurile de control din PHP sunt:

Structura alternativa if

Poate cea mai des intalnită structură de control este instrucțiunea if. Aceasta este folosită pentru a executa o secvența de cod in funcție de valoarea de adevar a unei condiții. Sintaxa este prezentată mai jos:

if( conditie ) instructiune 1;

Aceasta forma permite executarea unei instructiuni numai daca este indeplinita o conditie. Conditia poate fi orice expresie de genul "2 mai mic decat 3", "variabila $a este definita", s.a. tradusa in limbajul PHP.

Instructiunea de executat poate fi simpla (o singura instructiune) sau un bloc (mai multe instructiuni delimitate de acolade). Regula este ca atunci cand este nevoie sa se execute mai mult de o instructiune, trebuie obligatoriu creat un bloc (trebuie folosite acoladele).

<?php

if( 2 < 4 ) print "2 e mai mic decat 4 <br />";

if( 3 > 1 ) {

print "3 e mai mare ca 1 \n";

print "<br />";

}

?>

Daca nu se foloseste un bloc in cadrul instructiunii if, atunci doar prima instructiune dintre cele existente se executa sau nu, in urma evaluarii conditiei, pe cand celelalte se vor executa intotdeauna, indiferent de rezultatul verificarii. De exemplu:

<?php

echo "Este 3 mai mic decat 2? <br />\n";

if( 3 < 2 )

print "Da, 3 < 2 – prima linie <br />";

print "Da, 3 < 2 – a doua linie <br />";

?>

Codul de mai sus v-a afișa:

Este 3 mai mic decat 2? <br />

Da, 3 < 2 – a doua linie <br />

Pentru ca nu am inclus cele 2 instructiuni print intr-un bloc, a doua instructiune s-a executat indiferent de valoarea de adevar a conditiei. Practic, doar prima instructiune print a fost considerata ca facand parte din structura if. Codul corect (din punct de vedere logic) ar fi urmatorul, care contine un bloc de instructiuni:

<?php

echo "Este 3 mai mic decat 2? <br />\n";

if( 3 < 2 ) {

print "Da, 3 < 2 – prima linia <br />";

print "Da, 3 < 2 – a doua linie <br />";

}

?>

Instructiunea de selectie multipla

O instructiune ce se aseamana cu if este switch, o structura ce permite executarea uneia sau mai multor linii de cod in functie de valoarea unei expresii. Instructiunea switch este utila in cazurile in care este nevoie sa se verifice mai multe valori posibile ale unei expresii.

<?php

$var = 3;

// se vor executa instructiunile de pe ramura care

// corespunde valorii variabilei $var

switch( $var ) {

case 0:

print 'zero';

break;

case 1:

print 'unu';

break;

case 2:

print 'doi';

break;

case 3:

print 'trei'; // afisez trei

break; // intrerup fluxul executiei switch

case 4:

print 'patru';

break;

case 5:

print 'cinci';

break;

}

echo "\n", 'Gata!';

?>

De mentionat este faptul ca, daca nu se foloseste instructiunea de control break, in momentul in care o ramura este selectata, se vor executa atat instructiunile aferente acelei ramuri cat si instructiunile ramurilor urmatoare. Acest lucru poate sa nu fie dorit intotdeauna, de aceea este important ca break sa fie folosita ori de cate ori fluxul de executie al blocului switch trebuie intrerupt.

Exemplul de mai jos va executa instructiunea print 2; si toate celelalte instructiuni print care urmeaza, intrucat fluxul nu este intrerupt prin break.

?php

$numar = 2;

// se vor executa instructiunile de pe ramura care

// corespunde valorii variabilei $numar

switch( $numar ) {

case 0:

print 0;

case 1:

print 1;

case 2:

print 2;

case 3:

print 3;

case 4:

print 4;

case 5:

print 5;

}

echo "\n", 'Gata!';

// va afisa 2345 Gata

?>

Structura repetivivă for

O structura repetitiva este o secventa de cod ce permite realizarea repetata a aceleiasi operatii de un anumit numar de ori. O structura repetitiva este definita de 2 elemente: operatia care este executata si conditia de oprire a executiei. In unele cazuri se cunoaste si numarul de executii (sau iteratii).

Se foloseste atunci cand se cunoaste dinainte numarul de repetitii (numarul de pasi ce se vor executa). Are urmatoarea sintaxa:

for( [instructiune1] ; [conditie] ; [instructiune2] ) { [instructiune3] }

unde:

instructiune1 este o instructiune de executat la inceput

conditie este o expresie care daca este evaluata ca adevarata va determina repetarea ciclului – este denumita generic conditia de repetare

instructiune2 se va executa la fiecare pas al repetarii

instructiune3 reprezinta operatia efectiva care se repeta in cadrul FOR-ului

In general, [instructiune1] este o expresie de initializare de forma $i = 1, conditia de repetare este de forma $i <= numarul de pasi si [instructiune2] este o expresie de incrementare $i++.

for( $i = 1; $i <= 10; $i++ ) {

echo $i; // instructiune3

}

In limbaj natural, intructiunea se traduce prin "plecand de la $i = 1, executa operatia si creste-l pe $i cu o unitate; apoi repeta totul atat timp cat $i <= 10

Structura repetitivă while si dowhile

Instructiunea while este folosita atunci cand nu se cunoaste dinainte numarul de executii. Are o forma mai intuitiva decat for si multe persoane o considera mai usor de folosit. Diferenta dintre while si for este aceea ca prima este mai generala si mai flexibila. Se poate chiar afirma ca for este o situatie particulara a unei structuri while. Sintaxa este urmatoarea:

while( [conditie] ) { [instructiune] }

Este probabil usor de inteles ca [instructiune] se executa atata timp cat [conditie] este adevarata. La fel ca si la for, exista posibilitatea ca instructiunea sa nu fie executata niciodata.

Mai jos este un exemplu de structura repetitiva while care are acelasi rezultat ca secventa de cod de mai sus ce foloseste for. Se poate observa ca in cazul structurii while conditia are la baza, de multe ori, o variabila initializata in exterior si modificata in interior. In cazul de mai jos, $i este modificata la fiecare executie, pana cand, la un moment dat, va fi mai mare decat 10 ceea ce va determina iesirea din bucla repetitiva.

$i = 0;

while( $i <= 10 ) {

echo $i;

$i++; // la fiecare pas $i creste cu o unitate}

Este de datoria programatorului sa includa in blocul din structura repetitiva si codul necesar iesirii din bucla. Daca acest lucru nu se realizeaza, codul se va executa la nesfarsit.

1.5 Java Script

JavaScript este un limbaj de programare care face posibil ca paginile web să fie mai interactive. Este mai des recunoscut ca făcând parte din categoria "Scripting Languages". A fost lansat sub numele de "LiveScript", schimbarea numelui in JavaScript fiind o chestie legată de strategia de marketing.

Scripturile Javascript sunt introduse in pagina HTML si sunt interpretate și executate de browser. Javascript poate fi considerat o unealta foarte bună dacă doriți sa controlați conținutul paginilor in funcție de dată, oră, sistemul de operare sau browserul utilizatorilor, sa faceți site-uri interactive, care sa comunice cu vizitatorii, site-uri dinamice, sa validati datele primite din formulare, dar nu numai atat, acestea fiind doar catevă din posibilitațile pe care le oferă acest limbaj.

1.5.1 Adaugarea JavaScript intr-o pagina HTML

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

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

<script language="JavaScript">

aceasta specifica browser-ului ce limbaj este folosit

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

<script type="text/javascript">

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

Convenții de sintaxă

În orice limbaj, scrierea are convenții și reguli de sintaxă. Chiar și scrierea în limba română are regulile ei de sintaxă: orice propoziție începe cu literă mare, se termină cu unsemn de punctuație, etc.! La fel și limbajele de programare au regulile și sintaxa lor.

În continuare vor fi prezentate regulile de sintaxă ala limbajului Javascript:

Case-sensitive – se face diferența între literele mari și mici, astfel cuvinte precum “exemple” și “ Exemple" vor fi tratate diferit.

Punct și virgulă (;) – Toate declarațiile se termină cu caracterul "punct și virgulă" (;) (Exemplu" var1 = 3; var2 = 8;)

Spatiile libere – JavaScript ignoră spațiile libere, tab-urile și liniile libere care apar în instrucțiuni, acestea fiind utile pentru a face codul mai bine structurat și ușor de citit. Recunoaște doar spațiile care apar în string-uri ( șirurile de caractere). Exemplu: "var1 = 2 ;" este la fel cu "var1=2;".

Ghilimelele – Ghilimelele simple ('') si duble ("") sunt folosite pentru a delimita șirurile de caractere (string). (Exemplu: "Invat JavaScript" sau 'Invat JavaScript').

Carcactere speciale – când scriem scripturi, apare necesitatea de a folosi un caracter special, sau o apăsare de tastă , cum ar fi tasta TAB , sau o linie nouă. Pentru aceasta folosim caracterul backslash "\" în fața unuia din codurile Escape , astfel :

\b – backspace

\f – indică o pagină nouă

\n – indică o linie nouă

\r – imdică un retur de car

\t – indică o apăsare a tastei TAB

\\ – indică un caracter backslash

\' – indică un apostrof (ghilimele simple)

\" – indică ghilimele duble

1.5.2 Tipuri de date

De obicei, limbajele de programare cer să definiți tipul de date pe care-l va reprezenta o variabilă, în plus se generează o eroare atunci când încercați să-i atribuiți variabilei un alt tip de date. Din fericire, așa ceva nu se întâmplă în JavaScript, care este un limbaj flexibil. Variabilele JavaScript pot accepta oricând un nou tip de date, fapt care duce la modificarea tipului variabilei.

numerice întregi;

numerice în virgulă flotantă;

caracter;

boolean.

La nivel elementar, în JavaScript nu există decât patru tipuri de date:

Toate celelalte tipuri de date pe care le veți întâlni în limbajul JavaScript sunt obiecte – combinații ale celor patru tipuri de bază.

De exemplu, șirurile de caractere sunt obiecte care reprezintă o colecție de caractere.

Limbajul JavaScript permite specificarea datelor numerice în patru formate diferite: întreg, virgulă flotantă, octal și hexazecimal. Cu siguranță, cunoașteți numerele întregi (integer, în limba engleză) și numerele în virgulă flotantă (floating – point, în limba engleză), dar poate cunoașteți mai puțin pe cele exprimate în octal și în hexazecimal.

Prin definiție, numerele în octal și în hexazecimal sunt numere întregi care sunt exprimate într-un sistem de numerație cu baza 8, respectiv baza 16.

1.5.3 Instrucțiuni condiționale

Cu ajutorul instrucțiunilor condiționale putem face programele sa testeze diferite condiții dupa care sa decidă modul de execuție a datelor.

In Java Script sunt urmatoarele instrucțiuni condiționale:

Instrucțiunea "if"

Forma generală a acestei instrucțiuni este urmatoarea :

if (condiție) {

codul care va fi executat dacă este adevarata condiția

}

Unde 'condiție' poate fi orice expresie logica.

Instrucțiunea "if … else"

Forma generală a instrucțiuni "if … else" este urmatoarea :

if (condiție) {

codul care va fi executat dacă este adevarata condiția

}

else {

codul care va fi executat dacă condiția este falsa

}

Unde 'condiție' poate fi orice expresie logica.

Instrucțiunea switch

Sintaxa generală a instrucțiuni "switch" este urmatoarea.

switch (expresie) {

case valoare1:

cod executat dacă expresie = valoare1

break

case valoare2:

cod executat dacă expresie = valoare2

break

case valoare3:

cod executat dacă expresie = valoare3

break

default :

cod executat dacă expresie e diferit de valoare1, valoare2 sau valoare3

}

Instrucțiuni ciclice repetitive for

Aceasta are urmatoarea forma generală:

for (incepere_nr; condiție_nr; ciclu) {

cod care va fi executat

}

Instrucțiunea for … in

Instructiunea "while" are urmatoarea forma generală:

while (condiție) {

codul care va fi executat }

Instrucțiunea do … while

Forma generală a acestei instrucțiuni este:

do {

codul care va fi executat

}

while (condiție)

1.5.3 Obiecte

Ca și in alte limbaje de programare, obiectele sunt folosite pentru a organiza codul intr-o forma mai clară si compactă.

Pe langă obiectele predefinite pe care le conține JavaScript, cum ar fi: "window", "document", "date", si altele; pot fi create de programator si folosite in acelasi fel si alte obiecte, cu propriile metode si proprietați.

Crearea de obiecte JavaScript

Forma cea mai simplă de creare a unui obiect in JS este prin intermediul sintaxei:

"var nume_obiect = new Object()"

Tehnic, un obiect JavaScript este un Array asociativ, format din proprietați si metode.

Un Array asociativ se formeaza in felul urmator (aici cu 2 elemente):

var nume_array = new Array();

nume_array['key1'] = 'valoarea asociata primei chei';

nume_array['key2'] = 'valoarea asociata cheii doi';

Valorile fiecarui element se pot obtine in 2 moduri, cu sintaxele:

nume_array['cheie']

sau

nume_array.cheie

Definirea metodelor

In principiu, metodele sunt funcții, iar valoarea obtinuța prin apelarea unei metode este rezultatul returnat de funcția asociata metodei respective.

Ca și proprietațile, metodele se definesc prin notația cu punct (.), dupa crearea obiectului. Iar ca valoare se asociaza o funcție. Sintaxa generala este urmatoarea:

nume_obiect.nume_metoda = functie

Funcția poate fi creata inainte si asociată prin numele ei, sau poate fi creată direct in momentul definirii metodei, cu formula:

nume_obiect.nume_metoda = function() { … codul functiei }

Un alt aspect important în acest exemplu este utilizarea sintaxei "this.id". Cuvantul this se folosește de obicei in interiorul metodelor si mereu face referire la obiectul curent prin care e apelata metoda. "id" este proprietatea obiectului "Obj". Astfel, formula "this.id" returneaza valoarea proprietații "id" a obiectului curent (Obj).

1.6 Apache

Apache HTTP Server este un web server HTTP open source pentru Unix, Microsoft Windows si alte platforme. Apache joacă un rol cheie in cresterea World Wide Web si continua să fie cel mai popular web server, servind ca platforma de referința pentru celelalte servere web.

Apache permite autentificarea bazelor de date bazate pe DBMS si content negotiation-mecanism definit in specificatia HTTP ce face posibilă redarea diferitelor versiuni ale unui document in acelasi URL , astfel incat userii pot alege ce versiune li se potriveste cel mai bine.

Apache este suportat de diferite GUI, ce permite o configurare mai ușoara a serverului.

Serverul HTTP Apache este dezvoltat si menținut de o comunitate open de developeri, sub semnatura Apache Software Foundation.

Scurta istorie

Apache a fost creat de Rob McCool, ce a fost implicat in serverul web NCSA httpd (National Center for Supercomputing Applications). Cand Rob a plecat de la NCSA, dezvoltarea lui httpd a stagnat, lăsând o varietate de patches pentru îmbunătățire sa circule liber.

Un grup de developeri au adunat aceste patchuri si au scos "A patchy server", ce a devenit mai tarziu serverul web Apache. Rob a fost ajutat de alți developeri in crearea "Apache Group": Rob McCool, Brian Behlendorf, Roy T. Fielding, Rob Hartill, David Robinson, Cliff Skolnick, Randy Terbush, Robert S. Thau, Andrew Wilson, Eric Hagberg, Frank Peters, and Nicolas Pioch.

Autorul pretinde ca a fost ales un astfel de nume pentru a fii original, dar de fapt cea mai raspandită informatie este ca serverul este constituit dintr-o serie de schimbari in cel mai popular server HTTP din acel timp, NCSA HTTPd 1.3 si este prin urmare "a patchy" server.

Totuți, pe site-ul official al serverului se spune ca numele "Apache" a fost ales din respect pentru tribul American Indian al apache-ilor (Inde'), binecunoscut pentru strategiile superioare folosite in razboi.

In acel timp Apache era singura alternativă open source viabila, la serverul web Netscape (cunoscut actual ca web serverul Sun Java System). De atunci a fost dezvoltat si concureaza cu servere HTTP din Unix in ceea ce priveste funcționalitatea și performanță.

Din aprilie 1996 este cel mai popular server HTTP de pe Internet. Pănă in Februarie 2006 Apache a fost folosit de 68% din site-urile de web.

1.7 MySQL

MySQL este un sistem de gestiune a bazelor de date relaționale, produs de compania suedeza MySQL AB și distribuit sub Licența Publică Generală GNU. Este cel mai popular SGBD open-source la ora actuală, fiind o componentă cheie a stivei LAMP (Linux, Apache, MySQL, PHP).

Deși este folosit foarte des împreună cu limbajul de programare PHP, cu MySQL se pot construi aplicații în orice limbaj major. Există multe scheme API disponibile pentru MySQL ce permit scrierea aplicațiilor în numeroase limbaje de programare pentru accesarea bazelor de date MySQL, cum are fi: C, C++, C#, Java, Perl, PHP, Python, FreeBasic, etc., fiecare dintre acestea folosind un tip specific API. O interfață de tip ODBC denumită MyODBC permite altor limbaje de programare ce folosesc această interfață, să interacționeze cu bazele de date MySQL cum ar fi ASP sau Visual Basic.

MySQL este componentă integrată a platformelor LAMP sau WAMP (Linux/Windows-Apache-MySQL-PHP/Perl/Python). Popularitatea sa ca aplicație web este strâns legată de cea a PHP-ului care este adesea combinat cu MySQL și denumit Duo-ul Dinamic. În multe cărți de specialitate este precizat faptul ca MySQL este mult mai ușor de invățat și folosit decât multe din aplicațiile de gestiune a bazelor de date, ca exemplu comanda de ieșire fiind una simplă și evidentă: „exit” sau „quit”.

Pentru a administra bazele de date MySQL se poate folosi modul linie de comandă sau, prin descărcare de pe internet, o interfață grafică: MySQL Administrator și MySQL Query Browser. Un alt instrument de management al acestor baze de date este aplicația gratuită, scrisă în PHP, phpMyAdmin.

Capitolul II
Sistemul de informații Web 2.0

2.1 Ce inseamna Web 2.0

Web 1.0

Desi nu a fost evidentiata, a existat o tranzitie de la web1.0 la web 2.0, iar tranzitia a depins de o multitudine de factori. Când web–ul a devenit comercial, la inceputul anilor ’90, s-a inregistrat o explozie a Internetului, volumul de informatii disponibile pe Web luând proportii impresionante. S-au format grupuri de utilizatori, au început cooperari în domenii de cercetare stiintifica, învatamânt, au luat fiinta o multime de comunitati online, de interes sau practica ( care colaboreaza la un proiect comun ).

Chiar daca au existat încercari de a implementa posibilitatea ca vizitatorii unui site sa adauge sau sa modifice continutul, ele au fost ignorate de public si s–au lovit de capacitatile tehnice limitate ale acelor vremuri. În acea perioada majoritatea paginilor erau în general statice. Aceasta perioada a fost denumita ulterior web1.0.

Web 1.5

În era dotcom-ului ( .com ) s-au diversificat serviciile oferite, au aparut milioane de pagini cu stiri, care erau actualizate des; au devenit necesare CMS-urile – sisteme de management a continutului. Oamenii citeau presa, intrau pe forumuri, navigau; cei care scriau stirile si realizau paginile web erau în general ziaristii si informatia circula unidirectional, catre cititor.

Oricine putea sa-si creeze propria pagina web; fie o concepea personal sau cu ajutorul CMS-urilor gratuite sau open source existând si posibilitatea gazduirii gratuite. Aceasta este cunoscuta ca fiind perioada web1.5. Web1.5 coexista cu generatia 2.0.

Web 2.0

Termenul de Web a fost folosit in anul 2004 de catre Tim O'Reilly in cadrul unei conferinte, atat O'Reilly cat si restul participantilor au incercat ca gaseasca o definitie adecvata acestui concept, acest termen nici pana la ora actuala nu are o definitie anume, dar poate fi descris prin impactul care are loc asupra unei persoane care se afla in fata calculatorului conectat la internet fata de datele prezentate pe internet atat din punct de vedere cantitativ si calitativ.

Atunci cand interneul a inceput sa fie folosit de un numar mare de utilizatori, existau doua categori de persoane: cei care consumau informatie si cei care o produceau, delimitarea dintre cele doua fiind extrem de clara. Corporatiile, firmele, mass media, agentiile guvernamentale,etc. producea informatie iar utilizatorii internetului o puteau citi. Acest nivel de interactiune dintre informatia de pe internet si utilizator reprezinta Web 1.0.

In momentul in care utilizatorii obisnuiti au putut participa activ la crearea, modificarea, aprecierea, distribuirea si propagarea datelor prezente online, s-a putut observa o crestere a volumului si diversitatii datelor pe internet. Acest fenomen semnifica trecerea la o etapa ce se manifesta diferit ca ceea ce era inainte – si de aici apare termenul de Web 2.0

Caracteristicile care stau la baza fenomenului de Web 2.0 sunt:

Comunitatea. Utilizatorii internetului au un rol crucial asupra mediului online transformandu-l in functie de necesitatile acestora. Nevoia de comunicare si de socializare stau la baza existentei Web 2.0 – daca utilizatorii nu ar mai publica, comenta si distribui informatii, atunci platformele si tehnologiile ce sustin Web 2.0 ar deveni inutile.

Tehnologia. Pentru ca diferite persone cu diverse interese sa interactioneze este nevoie si de tehnologia care sa permita acest lucru. De-a lungul timpului, s-au dezvoltat diverse tehnologii precum AJAX, RSS, XML, s.a.m.d. care au permis creare de platforme online pentru fiecare nisa unde exista aceasta necesitate, de exemplu blogurile, wiki-urile, podcasturile, videocastiurile, bookmarking, API-urile web si serviciile web online sunt o parte din cele mai cunoscute servicii de Web 2.0

Arhitectura. Pentru ca exista o foarte mare varietate de servicii Web 2.0 si deci si de diversitate a informatiilor, utilizatorii pun acum accent si pe posibilitatea de a relationa cu diferite servicii externe unei platformei. Un simplu exemplu este folosirea spatiului din Google Drive in contul GMail.

Aspectul. Un alt aspect observabil al Web 2.0 este dinamicitatea aspectului – site-urile sunt prezentate intr-o maniera atat interactiva cu utilizatorul dar si complexa din punct de vedere al design-ului.

Pe langa aceste caracteristici, fenomenului Web 2.0 i se poate atribui o serie de proprietati, printre care:

site-urile izolate sunt inlocuite de altele care distribuie informatia continuta unui numar mare de persoane, oferindu-le posibilitatea de a conlucra la cantitatea, calitatea sau de a o transmite cu usurinta

descentralizarea autoritatii astfel ca persoanele sunt libere de a partaja informatii;

posibilitatea de a organiza si clasifica informatia pentru a deveni mai acesibila si pentru alte persoane;

partajarea informatiilor permit transmiterea in timp real a unor date in mediul public sau semipublic (unui grup restrans de persoane) in functie de specificatia utilizatorului;

Sindicarea informatiilor – datele noi ce apar pe un site pot fi trimise mai departe abonatilor prin intermediul fluxurilor RSS, Atom, etc.;

independenta datelor de pe internet de platforma utilizatorului si tipul sistemului folosit de acesta – datele pot fi accesate de oriunde, oricand si de pe orice sistem sau dispozitiv mobil cu ajutorul unui browser si o conexiune la internet;

platformele web au evoluat de la sisteme software la servicii pentru mediul online, cu o gama foarte variata si de buna calitate de servicii gratuite

Similar Posts