Tehnologii Web Utilizate în Realizarea Unei Aplicații Folosite în Domeniul Turismului

1. Introducere

În prezent, internetul este considerat cea mai importantă, folositoare și utilă invenție. Cu ajutorul lui, se pot citi articole, se pot comanda produse, se poate socializa, se poate face reclamă. Indiferent că e vorba de mersul trenurilor, de orarul magazinelor și supermarket, rețete de prăjituri sau indiferent ce orice altă informație, internetul este cel folosit pentru a descurca dilemele zilnice ale oamenilor. Problema internetului? Crează dependență. Puțini sunt cei care nu au nevoie de internet pentru a-și rezolva problemele. Și totuși, în ciuda acestui fapt, e util și foarte ajutător. Dar cum a apărut internetul?În continuare este prezentată istoria lui.

Nu era chiar internet, și totuși … Dacă ne gândim la transmisiile globale de date – treaba pe care o face azi internetul, cu asemenea viteză, amploare și acuratețe – aceasta, ca fenomen, există încă de multă vreme, datând de dinainte de apariția computerelor. Să considerăm, de pildă, drept un precursor al internetului, telegraful, care a revoluționat transmisia de date și care era, pentru străbunicii noștri, o minune a tehnologiei la fel de copleșitoare ca și internetul pentru noi. Utilizat intens în domeniul militar, în ziaristică, în politică și afaceri, ca și în viața privată de zi cu zi, telegraful a schimbat viteza cu care se mișca lumea și a deschis era comunicațiilor globale.

Anii '50 : primele elemente

Un factor esențial în evoluția internetului a constituit-o dezvoltarea computerelor, începând din anii 1950. Mari cât o cameră (și lente în comparație cu cele de azi), aceste prime calculatoare permiteau transmisiile de date de la un computer principal la terminale și, în ciuda aspectului greoi, au reprezentat o etapă esențială în apariția fenomenului.

Anii '60-'70 : de la viziune la primele rețele informatice

Informaticianul american Joseph Carl Robnett Licklider (1915-1990), una dintre cele mai de seamă personalități din istoria IT, în lucrarea sa Man-Computer Symbiosis, aruncă o scurtă privire în viitor, spre o lume în care rețele de computere, conectate prin linii de comunicație de bandă largă, vor îndeplini funcțiile unor biblioteci imense. Iar în 1962, Licklider și Welden Clark au publicat o lucrare intitulată „On-Line Man Computer Communication”, ce oferea una dintre primele viziuni ale unei lumi „înfășurate” într-o rețea informatică globală. Pentru ei, acesta era viitorul, pentru noi, reprezintă deja realitatea pe care o trăim.

Pe baza ideilor lui Licklider, în 1969, între universitatea California – Los Angeles și Institutul de Cercetare Stanford a fost instalată o legătură printr-o rețea numită ARPANET (Advanced Research Projects Agency Network), a cărei dezvoltare fusese finanțată de Departamentul Apărării din SUA. În același an, ARPANET s-a extins prin adăugarea a încă 2 noduri de rețea, la Universitatea Utah și Universitatea California – Santa Barbara.

Nu pare mare lucru, față de dezvoltarea de acum, dar era un început. Cât de important a fost acest început, cât de mult s-a dovedit el a răspunde necesităților și dorințelor oamenilor, se vede din ritmul rapid în care s-a dezvoltat ARPANET : până în 1981, numărul de noduri a crescut la 213.

Anii 1960 și 1970 au reprezentat o perioadă crucială în dezvoltarea rețelelor de transmisie de date; în aceeași epocă, rețele similare, de mici dimensiuni, au fost instalate în Marea Britanie (Mark I), în Franța (CYCLADES), în SUA(Merit Network) ș.a.

Toate aceste rețele operau pe principiul comunicației de pachete (sau comunicației asincrone), o tehnică de comunicații digitale care constră în separarea mesajelor în blocuri de dimensiuni reduse (pachete), ce sunt ulterior transmise unul câte unul prin rețea, într-o succesiune rapidă, până la receptor, unde sunt reasamblate în forma mesajului inițial.

1978 : prima rețea internațională

În acest an, British Post Office, compania de servicii financiare și de comunicații Western Union International și firma de comunicații Tymnet și-au unit forțele pentru a crea prima rețea de comunicație de pachete internațională, International Packet Switched Service(IPSS). Rețeaua s-a extins spectaculos în Europa și Sua, ajungând până în 1981 să deservească și Canada, Australia și Hong Kong , iar în anii 1990 devenind o infrastructură extinsă la nivel global.

În paralel, apăruseră și alte tipuri de rețele, mai mult sau mai puțin extinse, ce foloseau tehnologii de comunicație diferite, dar toate la un loc creau o infrastructură ce acoperea o mare parte a lumii. Era momentul ca aceste „petice” să fie reunite într-o rețea cu adevărat globală, unitară din punct de vedere al funcționării. Cu alte cuvinte, totul trebuia adus la un numitor comun.

Era nevoie de un protocol de rețea – un sistem de reguli și convenții care să guverneze comunicare între dispozitivele atașate la rețea; un fel de limbaj comun în care toate computerele legate în rețea să se poată înțelege între ele. Formatul mesajului, temporizarea, controlul erorilor, inițierea și finalizarea sesiunii de transfer al datelor și multe alte detalii legate de comunicațiile de date sunt determinate de protocolul de rețea.

1974 : apare termenul internet

Un protocol de rețea realizat în 1974 (RFC 675 – Specification of Internet Transmission Control Program), de către Vinton Cerf, Yogen Dalal și Carl Sunshine, conținea cuvântul internet, prescurtare de la internetworking. Pesemne că nici autorii nu prevedeau succesul pe care îl avea acest termen, devenit azi unul dintre cele mai utilizate substantive.

Internetul este, așadar, o rețea unitară de computere și alte dispozitive cu adrese computerizate, toate conectate între ele și operând coordonat grație unui ansamblu standardizat de protocoale de transfer de date.

Se confundă adesea noțiunea de internet cu cea de WWW (World Wide Web); ele nu sunt însă același lucru, căci WWW este numai una dintre aplicațiile internetului (e-mail-ul, de exemplu, este altă aplicație). WWW este un sistem de documente hipertext interconectate, ce pot fi accesate prin internet.

Omul pe care lumea îl descrie adesea – în mod eronat – drept „inventatorul internetului”, britanicul Tim Berners-Lee este, în realitate, cel care a inventat World Wide Web, ca o aplicație majoră a Internetului care exista deja.

Din anii '90 până azi … și mai departe

El a elaborat în 1989 o primă propunere în acest sens, iar la 25 decembrie 1990, împreună cu Robert Cailliau (un informatician belgian care lucra la CERN – Organizația Europeană pentru Cercetare Nucleară), a realizat prima comunicare prin intermediul HTTP, un protocol pentru transferul documentelor hipertext.

Primul website din lume a fost construit la CERN, pe teritoriul francez al acestui complex de laboratoare așezat la granița dintre Franța și Elveția, și a fost online începând cu data de 6 august 1991.

Iar de atunci, internetul a intrat cu adevărat în viața noastră, a celor mai mulți. De unde până atunci fusese accesibil unui număr mic de persoane, în special oameni de știință, odată cu apariția WWW, lumea virtuală s-a deschis pentru toți. O bună parte din existența noastră se desfășoară în acest mediu, căruia îi folosim intensiv imensele resurse și posibilități, de la comerț și banking online, la lectură; de la socializare la cursuri universitare, de la muzică, jocuri și filme la comunicarea cu cei aflați departe. Internetul ne-a schimbat fundamental experiențele, trăirile, ideile, iar aventura simbiozei noastre cu lumea virtuală oferită de el continuă și se intensifică.

În cele ce urmează, se vor preciza câteva aspecte despre paginile web. Ce este o pagină web? Este o resursă aflată în spațiul web, adică WWW, din Internet, de obicei în format HTML sau XHTML și având hiperlinkuri pentru navigarea simplă de la o pagină sau secțiune la alta. Pagina web se numește astfel deoarece ea se poate afișa pe un monitor sau ecran de calculator și se aseamănă într-o oarecare măsură cu o pagină de ziar. Lățimea paginii web este de obicei astfel făcută ca ea să încapă în întregime pe lățimea ecranului disponibil. În schimb, înălțimea ei poate depăși cu mult pe cea a ecranului. În aceste cazuri, browserul și mouse-ul permit de obicei vizualizarea simplă și rapidă a întregii pagini, și anume prin „tragerea” ei în sus și în jos, după dorință.

Pentru a furniza nu numai texte, imagini și sunete, paginile web utilizează deseori fișiere grafice sau sonore integrate, dar și hiperlinkuri către alte resurse neintegrate în pagina respectivă. De obicei furnizorul de informații își grupează și organizează paginile în cadrul unui site web, care la cerere, și pentru a putea fi regăsit, primește un identificator Internet unic numit URI.

Un site este alcătuit de regulă din mai multe pagini web. Poate fi vizualizat pe orice dispozitiv conectat la Internet capabil să afișeze informații prin intermediul protocolului HTTP.

Un site alcătuit din mai multe pagini are de obicei o pagină inițială sau principală numită „homepage”, de la care pleacă legături către paginile anterioare, secundare. Structurile și schemele de „navigare” din interiorul site-urilor web sunt foarte diferite, în funcție de scopurile, dorințele și posibilitățile ofertantului de informații. De obicei această „homepage” este chiar pagina de start a site-ului, pe care ofertantul de informații în web o face cunoscută la public drept punct de plecare pentru întregul site web al său.

În perioada actuală, prezența unui site web pe piața online, tinde să devină tema de activitate a multor companii ce înțeleg nevesitatea extinderii propriei afaceri, către o piață reprezentată de milioane de potențiali clienți.

Astfel, deținerea unei pagini web reprezintă calea cea mai ușoară de ofertare a noilor clienți. Interacționarea cu vizitatorii site-ului, prezentarea serviciilor, produselor și avantajelor furnizate a unei companii, poate reprezenta cheia succesului pentru afacerea online a companiei, transformând astfel, această mică investiție într-o afacere profitabilă pentru companie.

Proiectarea, dezvoltarea și deținerea unei pagini web are rolul să stimuleze și să dezvolte afacerea în așa mod ca ea să devină generatoare de venituri, deci cu alte cuvinte, profitabilă.

Fie că este vorba despre un simplu site de prezentare sau de un magazin online, se poate crește semnificativ volumul vânzărilor și notorietatea unei companii. Pentru ca acest lucru să se întâmple, este important ca site-ul să îndeplinească toate cerințele specifice domeniului de activitate și să se adapteze noilor tendințe conforme cu mediul social actual.

Pe scurt, realizarea, optimizarea și promovarea unui site în condiții optime, va atrage clienți, crescând considerabil dimensiunile pieței potențiale pentru orice afacere.

Am ales această temă în scopul promovării unui firme de turism. În zilele noastre, promovarea pe internet este importantă. Astfel, o firmă de turism necesită cât mai multă promovare. În funcție de cum este promovată, ea poate avea succes sau poate eșua.

Excursiile, tururile, diverse destinații, diverse oferte sunt cele care atrag clientul. Cu cât se oferă mai mult clientului, pe un preț rezonabil, cu atât firma va avea mai mult succes. Există multe firme care se promovează online. Dar clientul decide care companie este pe gustul lui și cu care dorește să lucreze.

Astfel, am încercat să realizez o aplicație cât mai prietenoasă, cu oferte generoase, locații de vis, având incluse și cazarea și transportul. De asemenea, în funcție de data aleasă de client și locație, se poate aplica un discount. Prețul care trebuie plătit este compus din prețul asociat hotelului ales de client și prețul asociat transportului ales. Iar la final, se verifică dacă se acordă discount sau nu.

Discountul este o altă modalitate de a atrage clientul. Cu cât discountul este mai mare, cu atât clienții vor opta pentru această firmă. Dar chiar și discounturile sunt calculate în așa fel încât atât firma cât și clirifică dacă se acordă discount sau nu.

Discountul este o altă modalitate de a atrage clientul. Cu cât discountul este mai mare, cu atât clienții vor opta pentru această firmă. Dar chiar și discounturile sunt calculate în așa fel încât atât firma cât și clientul să aibă de câștigat.

Cu toate acestea, site-ul nu este în totalitate apropiat de realitate, având ca principal scop aplicarea pentru o aprofundare și învățare mai bună a tehnologiilor utilizate.

În capitolul următor, se vor preciza tehnologiile web utilizate în realizarea acestui site, generalități despre ele, facilități, modul de lucru, cu ce alte tehnologii pot fi utilizate.

2. Introducere în Tehnologii Web

2.1 World Wide Web

World Wide Web, cunoscut și sub numele de WWW, W3 sau Web reprezintă cel mai utilizat și mai atractiv serviciu Internet. Tradus, aproximativ, înseamnă „țesătură răspândită în întreaga lume”. Această metaforă este sugestivă, deoarece WWW acoperă ca o pânză de păianjen întreaga lume. Pânza este formată dintr-o colecție de documente specifice acestui serviciu, conectate logic între ele, denumite hypertexte. Documentele, care se află în diferite locații, pe diferite calculatoare servere, sunt regăsite cu ajutorul unui identificator numit URL. Hipertextul, inclusiv imagini, etc, este afișat cu ajutorul unui program de navigare în web numit browser, care descarcă paginile web de pe un server web și le afișează pe un terminal „client” la utilizator.

Scurt istoric

Webul a luat naștere în 1989 la Centrul European de Cercetări Nucleare (CERN) din Geneva,E lveția. Tim Berners-Lee este cel care a făcut propunerea inițială de creare a unei colecții de documente cu legături între ele. Această propunere se datorează problemelor de comunicare întâmpinate de cercetători ce foloseau centrul.

Primul prototip al acestei colecții a apărut nu mult înainte de decembrie 1991, când a avut loc și prima demonstrație publică. Studiul a fost continuat prin apariția primei aplicații grafice Mosaic, în februarie 1993, realizată de cercetătorul Marc Andreessen.

În anul 1994 CERN și M.I.T au format Consortiul World Wide Web, care are scopul de a dezvolta webul, de a standardiza protocoalele și de a încuraja legăturile dintre site-uri.

În 1995 Andreessen părăsește NCSA și înființează o nouă companie, Netscape Communications Corp., care se ocupă cu dezvoltarea de software pentru web.

Webul a evoluat până la ceea ce este astăzi, un serviciu multimedia integrativ, având ca suport fizic Internetul.

Berners-Lee și echipa sa au realizat primele versiuni pentru patru componente cheie necesare serviciului web:

protocolul de intercomunicație HTTP;

limbajul de descriere a hipertextului HTML, pentru a putea fi afișat de browser;

serverul web;

browserul.

Descriere

World Wide Web este unul dintre cele mai populare servicii de pe Internet, ce oferă o mulțime de colecții de documente disponibile pe diverse calculatoare, aflate în părți diferite ale globului, numite servere web.

Modul de funcționare este simplu din punctul de vedere al utilizatorului : folosind un client web introduce adresa (URL-ul) resursei pe care dorește să o acceseze. Clientul trimite adresa prin protocolul HTTP la serverul web de la acea adresă, care întoarce la client resursa (pagina) cerută.

Serverul web este un program ce rulează pe un calculator conectat permanent la Internet, și care servește și îndeplinește cererile de pagini web pe care le primește de la diferitele calculatoare ce sunt conectate la Internet, cereri trimite prin intermediul navigatorului.

Clientul web (adică Internet Explorer, Mozzila, Chrome, etc) este browserul (sau navigatorul) care permite accesarea informațiilor aflate pe diferite servere web din Internet. Acesta permite lucruri precum vizualizarea unei imagini aflată la o anumită adresă, memorează paginile vizitate recente, pentru a fi accesate mai rapid când utilizatorul cere o pagină deja vizitată, memorarea anumitor adrese pentru vizitare ulterioare și multe alte lucruri.

Protocoalele, în general, sunt un set de reguli, comenzi folosite pentru a schimba informații între calculatoare. Protocolul HTTP (HyperText Transfer Protocol) este folosit pentru schimbul de fișiere cum ar fi text, imagini, suntete, video între serverul și clientul web. Când utilizatorul introduce adresa unei pagini web sau face click pe o legătură hypertext, navigatorul trimite o cerere HTTP către serverul care se află la adresa respectivă. Serverul primește cererea și după procesarea ei trimite fișierul cerul la clientul care a făcut cererea.

URL (Uniform Resource Locator) este adresa unei resurse, unui fișier accesibil pe Internet. Forma generală a URL-ului este :

protocol://nume.de.domeniu/nume_fișier

Standardele web sunt un termen general pentru standardele formale și alte tehnici specifice care definesc și descriu aspecte ale World Wide Web. Există mai multe standarde și specificații interdependente. Unele dintre ele reglementează și alte aspecte ale Internetului, nu doar WWW, dar toate influențează direct sau indirect dezvoltarea și administrarea paginilor Web și a serviciilor web.

Standardele web considerate fundamentale sunt următoarele :

recomandări făcute de W3C referitoare la limbajele hypertext (HTML sau XHTML)

recomandări făcute de W3C referitoare la foi de stil (CSS)

standarde dezvoltate de Ecma International referitoare la Ecmascript (JavaScript)

recomandări făcute de W3C referitoare la Document Object Model (DOM)

2.2 HTML

Unul din primele elemente fundamentale ale WWW este HTML (HyperText Markup Language), care descrie formatul primar în care documentele sunt distribuite și văzute pe Web. Unele trăsături, cum ar fi independența de platformă, structurarea formatării și legăturile hypertext, îl fac un format foarte bun pentru documentele Internet și Web.

Scurt istoric

Limbajul HTML a fost dezvoltat inițial de Tim Berners-Lee la CERN în 1989. HTML a fost o posibilitate pentru fizicienii care foloseau computere diferite și voiau să schimbe imformații între ei, cu ajutorul Internetului. Astfel, erau necesare anumite particulatități : independența de platformă, posibilități hypertext și structurarea documentelor.

HTML 2.0, elaborat în iunie 1994, este standardul pe care ar trebui să îl suporte toate browserele curente. HTML 2.0 reflectă concepția originală a HTML ca un limbaj de marcare independent de obiectele existente pentru așezarea lor în pagină, în loc de a specifica exact cum ar trebuie să arate acestea.

Specificația HTML 3.0, enunțată în 1995, a încercat să dezvolte HTML 2.0, prin adăugarea unor facilități, cum ar fi tabelele și un mai mare control asupra textului din jurul imaginilor. Deși unele noutăți erau deja folosite de autorii de browsere, multe nu erau încă. În unele cazuri, taguri asemănătoare implementate de autorii de browsere au devenit mai răspândite decât tagurile „oficiale”.

În mai 1996, W3C a scos pe piață specificația HTML 3.2, care era proiectată să reflecte și să standardizeze practicile acceptate la scară largă, însemnând HTML 3.2 include tagurile HTML 3.0 ce erau adoptate de autorii de browsere.

HTML 4.0 este larg utilizat, dar a apărut deja și versiunea 5.0 .

Descriere

Hypertext Markup Language este un set de coduri logice care constituie apariția sau afișarea unui document web și a informațiilor pe care le deține. Codurile sunt scrise între paranteză deschisă sau ”<” și paranteză închisă sau ”>”. De exemplu : <BODY> sau <FONT> .

Marea majoritate a elementelor au un tag de deschidere și un tag de deschidere. Tagul de închidere se deosebește de cel de deschidere prin ”/” în interiorul parantezelor. De exemplu : <FONT> … </FONT> .

Primul cuvânt din cadrul parantezelor se numește element sau etichetă HTML și spune browser-ului să efectueze o anumită acțiune. Cuvintele care urmează după primul element din interior se numesc atribute care descriu proprietățile elementului, cum ar fi culoarea, mărimea, etc.

Aceste atribute sunt separate prin spațiu și urmate de semnul egal ”=”, după care sunt scrise, între ghilimele, valorile atributelor. Astfel o etichetă HTML poate conține elementul de identificare, atribute și valori.

Un fișier HTML este constituit din mai multe elemente și atributele lor. La început un element HTML înconjoară datele fișierului. Acest element conține alte două sub-elemente principale HEAD și BODY.

În HEAD se adaugă titlul paginii web, dat de către cel care crează fișierul, și alte elemente numite metatag-uri, precum și scripturi JavaScript și stiluri CSS. În interiorul elementului BODY se adaugă conținutul fișierului, care urmează să fie afișat în cadrul paginii web.

Proprietățile unui fișier pot fi manipulate de atributele elementului BODY, de exemplu cum ar fi culorile pentru fondul paginii, text și diferite faze ale link-urilor. Culorile sunt setate folosind culorile de bază : roșu, verde și albastru. Expresia folosită este RGB (Red, Green, Blue). Acestea sunt reprezentate prin valori hexazecimale și sunt scrise între ghilimele, iar la început se adaugă obligatoriu caracterul ”#”. Fiecare 2 unități ale codului reprezintă una din culorile RGB.

Pentru titlurile din cadrul documentului HTML este indicată folosirea etichetelor <Hx> (headings), unde x este un număr între 1 și 6. Datorită acelui număr, textul variază de la foarte mare în <H1> până la foarte mic în <H6>.

Paragrafele permit adăugarea de text în document, astfel încât lungimea de afișare a textului va fi ajustată de mărimea deschiderii browser-ului și fiecare paragraf va începe un nou rând. Distanța dintre două paragrafe succesive este mare deoarece browser-ul le afișează cu un rând gol între ele.

Pentru aspectul textului,se folosește tag-ul <FONT>, în care se precizează tipul fontului folosit (FONT), culoarea (COLOR) și mărimea textului (SIZE). Atributul SIZE poate lua valori numerice cuprinse între 1 și 7. Textul normal are valoarea 3.

Câteva elemente des folosite pentru formatul textului sunt :

Bold sau îngroșat <b>..</b>

Italic sau înclinat <i>..</i>

Underline sau subliniat <u>..</u>

Alinierea textului se realizează cu ALIGN, care are atributele : LEFT, RIGHT și CENTER. Aliniamentul celor mai multe elemente se face cu ajutorul altor elemente, cum ar fi :

<div align=”valoare”>…</div> – tot ce este poziționat cu elementul DIV poate fi aliniat oriunde în pagină, indiferent dacă în acel loc se află și altceva.

<center>…</center> – va centra elementele

Listele se împart în două categorii : ordonate și neordonate. Elementul folosit pentru formarea listelor neordonate este <ul>. Majoritatea elementelor pentru marcatori și numerotare sunt compuse din unu sau mai multe elemente <li>…</li> (list element). Fără atributul ”type” specificat în <ul>, acestea prezintă un marcaj ca un bullet. Atributul ”type” are 3 tipuri de marcaje : disc, circle (cerc) și square (pătrat).

Elementul folosit pentru listele ordonate este <ol>. <ol>…</ol> este un element de numerotare. Elementele din listă sunt numerotate automat. LI se folosește și împreună cu OL.

Atributul ”type” al elementului OL are următoarele stiluri : ”1” , ”a” , ”i” , ”I”. Se poate specifica numărul de început al numerotării, dând o valoare atributului start.

Un alt element pentru așezarea textului este <dl>, care cuprinde elementele <dt> și <dd>. DL este folosit pentru definirea și încadrarea unei liste de definiții. DT definește elementul din listă, iar DD descrie elementul definit.

HTML conține și elemente pentru adăugarea de imagini în pagini web. Cele mai utilizate formate pentru imaginile care sunt adăugate într-o pagină HTML sunt GIF și JPEG. Avantajul acestor formate este că imaginile au o mărime mică în bytes, având maxim 256 de culori.

Pentru introducerea unei imagini într-un document HTML, se folosește elementul <img>…</img> împreună cu următoarele atribute :

”src” – valoarea acestui atribut determină locația fișierului care conține imaginea.

”alt” – cu ajutorul acestuia se scrie textul care va apărea dacă imaginea nu este afișată sau când utilizatorul va poziționa, în browser, mouse-ul pe imagine.

”align” – acesta permite alinierea imaginii în locuri diferite în cadrul imaginii.

”width” – reprezintă lungimea imaginii,în pixeli. Dacă nu se precizează, imaginea este afișată cu lungimea originală.

”height” – reprezintă înălțimea sau lățimea imaginii, în pixeli. Dacă nu se precizează, imaginea este afișată cu lungimea originală.

”border” – imaginea va fi înconjurată de un chenar, valoarea acestui atribut reprezentând grosimea chenarului, în pixeli.

Prin intermediul link-urilor, putem deschide alte pagini, sări de la un document la altul sau la alt site. De aceea sunt foarte importante în HTML. Sintaxa generală pentru crearea unui link este :

<a href=”url” title=”titlu”>Text<a>

unde :

a este elementul important și specific în crearea link-urilor.

href este atributul care marchează indicarea adresei link-ului

url este adresa link-ului

title este atributul prin care se dă un titlu link-ului

titlu este atributul ascuns care apare când este poziționat mouse-ul deasupra link-ului

Text este textul care apare în browser și pe care se efectuează click cu mouse-ul. Se poate pune chiar și o imagine, în locul textului, unde Text va fi înlocuit cu <img src=”nume_imagine.extensie”> .

Link-urile se împart în două categorii : externe și interne.

Link-urile externe sunt și ele la rândul lor de două feluri :

link-uri externe către pagini ale aceluiași site

link-uri externe către alte site-uri

Link-urile interne sunt link-uri către alte texte din aceeași pagină. Se folosesc în cazul în care pagina respectivă este lungă și se necesită să se sară spre anumite texte din pagină.

Hărțile de imagini sunt părți din aceeași imagine care este împărțită în mai multe zone. În funcție de zona pe care se efectuează click, browserul poate afișa o altă pagină.

O altă utilizare a hărții de imagini este pentru navigarea în cadrul unui site : dacă există mai multe butoane de navigare grupate, se poate folosi o imagine care reprezintă toate acele butoane. Un dezavantaj major este că un vizitator care are browser-ul setat să nu încarce imagini pentru a naviga mai repede, nu va vedea imaginea și nu va înțelege nimic.

Pentru realizarea unei hărți de imagini, se adaugă în interiorul tag-ului <img> atributul ”usemap” a cărui valoare reprezintă numele hărții, apoi se formează harta prin elementul :

<map name=”nume_hartă”></map>

Un alt element foarte util este tabelul, pentru prezentarea și așezarea conținutului într-o pagină web. Elementul <table>…</table> crează tabelul și încadrează alte patru sub-elemente, care formează structura tabelului :

linia sau rândul tabelului <tr>…</tr>

titlul tabelului <th>…</th>

coloanele tabelului sau datele <td></td>

sub-titlul tabelului <caption>…</caption>

Linia tabelului conține elementul pentru titlurile tabelului și elementul pentru coloanele tabelului. Aici se poate de asemenea formata textul, paragrafe, link-uri, imagini.

Atributele tabelului sunt următoarele :

bgcolor – definește culoarea tabelului

width – specifică lungimea tabelului

border – grosimea liniei ce definește tabelul și înconjoară fiecare celulă

cellspacing – spațiul dintre celule

cellpadding – spațiul dintre linia celulei și conținutul acesteia

align – controlează poziționarea tabelului în pagină, cu următoarele atribute : left, right sau center

background – controlează culoarea de fond a tabelului, care poate fi și o imagine

bordercolor – culoarea liniei din jurul tabelului

bordercolorlight – culoarea luminoasă folosită de două linii din cele patru care înconjoară tabelul

bordercolordark – culoarea întunecată folosită de două linii din cele patru care înconjoară tabelul

Atributele specifice elementelor pentru titlu și coloane sunt :

colspan – specifică cât de multe coloane ale tabelului această celulă va înlocui

rowspan – specifică cât de multe rânduri ale tabelului această celulă va înlocui

align – alinierea datelor celulei pe orizontală

valign – alinierea datelor celulei pe verticală

background – controlează culoarea de fond a celulei,care poate fi și o imagine

bgcolor – definește culoarea celulei

width – specifică lungimea celulei

height – specifică înălțimea celulei

Cadrele sau frame-urile sunt utilizate pentru a împărți fereastra browser-ului, pentru a fi afișate mai multe pagini în aceeași fereastră de browser. Un frame prezintă în interior un fișier propriu, în general fișier HTML. Pentru a crea un frame, sintaxa este următoarea :

<frameset> și <frame> sau <iframe>

<FRAMESET> determină cât spațiu din spațiul ferestrei este atribuit fiecărui cadru, folosind atributele ROWS sau COLS, care împart ecranul în linii și coloane. Acesta va conține elementul <FRAME>, câte unul pentru fiecare divizare a ferestrei din browser.

Când se crează link-uri în scopul deschiderii de pagini în cadre, este necesară specificarea unui atribut în eticheta de link <a> numit target, care spune browser-ului în ce cadru să deschidă imaginea.

Un alt element speficific HTML este formularul. De obicei, formularul HTML este creat pentru a fi folosit împreună cu alte programe și scripturi web, cum ar fi PHP, JavaScript și altele. Pentru crearea unui formular, se folosește <form>…</form>, în cadrul cărora se adaugă celelalte elemente specifice. <FORM> nu conține atribute pentru format, dar folosește următoarele atribute :

action – aici se scrie adresa URL a unui script de pe server, program care trebuie să accepte datele din FORM, le procesează și trimite răspunsul înapoi la browser.

method – sunt două metode : get sau post. Acestea specifică prin ce metodă HTTP se trimite conținutul formularului la server.

enctype – determină mecanismul folosit pentru a codifica conținutul transmis din formular.

name – este numele formularului, folosit de scripturi Visual Basic sau JavaScript

target – este ținta cadrului unde pagina va fi vizualizată, după transmiterea datelor din form

Majoritatea elementelor de formular sunt create prin atributul type al elementului <input>…</input>. Câteva proprietăți ale elementului <INPUT> sunt :

type – tipul de FORM folosit

name – numele elementului respectiv de formular, folosit de scripturile la care sunt trimise datele

value – datele sau valoarea asociate acelui element de formular și care sunt trimise, împreună cu numele, către scripturi (PHP, CGI, JavaScript)

size – specifică numărul de caractere care dau lungimea zonei de text

maxlength – numărul maxim de caractere acceptate

checked – specifică dacă un buton sau altă formă va fi inițial bifată

readonly – folosit pentru câmpuri de tip text, împiedică modificarea valorii sau textului din acel câmp

disabled – împiedică folosirea câmpului care are această proprietate. Va fi vizibil, dar nu va putea fi folosit, datele acestuia nefiind trimise din formular la vreun script.

Caseta de text este folosită epntru a crea în pagină un câmp pentru text. Codul este <input type=”text”></input>.

Textarea este un element ce crează un câmp în pagină, în care utilizatorul poate adăuga mai multe linii de text. Codul este <textarea></textarea>.

Caseta pentru parole sau ”password” este folosită pentru a permite adăugarea de parole. Caracterele adăugate în această casetă nu sunt afișate cu valoarea lor reală, pentru a nu se vedea parola scrisă. Codul este <input type=”password”></input>.

Caseta de formular ascunsă sau ”hidden” este folosită pentru a adăuga în formular date care să nu fie vizibile în browser și care sunt trimise la scripturi împreună cu celelalte date din formular. Codul este <input type=”hidden”></input>.

Check box este folosit pentru adăugarea mai multor opțiuni pe care utilizatorul le poate alege prin bifarea lor. Codul este <input type=”checkbox”></input>.

Radio button este folosit pentru adăugarea mai multor opțiuni dintre care utilizatorul poate alege una singură. Codul este <input type=”radio”></input>.

Caseta pentru upload sau ”file upload” este folosită pentru a permite utilizatorului să încarce alte documente pe serverul web. Această caseră este însoțită de un buton ”Browse” prin care se alege documentul care va fi transferat pe server. Upload-ul se face tot prin intermediul unui script PHP, CGI. Codul este <input type=”file”></input>.

Butonul simplu este folosit cu JavaScript sau VBScript pentru efectuarea unei acțiuni când este apăsat. Codul este <input type=”button”></input>.

Butonul Submit face ca prin apăsarea lui, browser-ul să trimită numele și valorea tuturor celorlalte elemente din formular la scriptul de pe server. Codul este <input type=”submit”></input>.

Imagine pentru buton Submit permite aplicarea unei imagini în locul butonului Submit standard. Codul este <input type=”image” src=”locație_imagine”></input>.

Butonul Reset permite utilizatorului să șteargă toate datele pe care le-a scris în celelalte elemente din formular. Codul este <input type=”reset” value=”Sterge”></input>.

Pentru elementul select se folosește tag-ul <select></select>, care realizează o listă, un meniu cu date ce pot fi selectate. Este folosit împreună cu elementele <option></option> care reprezintă lista elementelor ce sunt adăugate și afișate în lista de selectare. Sunt două tipuri de elemente Select, unde diferența o face folosirea atributului SIZE :

drop down list sau lista de rulare. Codul este <select name=”select”><option>Optiune 1</option><option>Optiune 2</option></select>.

list box. Codul este <select name=”select” size=”4”><option>Optiune 1</option><option>Optiune 2</option></select>.

Codul HTML mai conține și elemente speciale, unele având scopul optimizării paginii în vederea unei cât mai bune indexări în motoarele de căutare sau altele pentru adăugarea de aplicații audio și video sau alte elemente în pagină.

Un element important pentru motoarele de căutare este META, care are 2 atribute : name – determină tipul meta tag-ului și content – determină conținutul meta tag-ului.

Pentru adăugarea de sunet într-o pagină, se poate folosi fie <embed> , fie <bgsound>. Diferența este că <bgsound></bgsound> introduce un background audio în pagină, iar <embed></embed> afișează o consolă pentru sunet.

HTML are un tag special, <marquee></marquee> prin care se poate crea un efect de mișcare a unui text sau a unei imagini care este încadrat de acest element.

Alte tag-uri HTML sunt <div></div> și <span></span>, care dacă sunt folosite singure, nu au efecte importante. Tag-ul DIV crează secțiuni de blocuri în pagină, a căror formă și grafică de conținut pot fi modificate pentru fiecare separat. Tag-ul SPAN crează posibilitatea modificării separate a unei porțiuni dintr-un context, putând fi folosit ca o ”clasă” cu CSS. Ambele, în combinație cu CSS, pot crea aspecte grafice importante.

În interiorul tag-ului DIV pot fi incluse elemente ca : tabele, formulare, marcatori, linii sau chiar alte DIV-uri. Cadrul în care acestea sunt adăugate poate avea aspecte proprii, diferite de altele. Cu tag-ul SPAN se pot adăuga stiluri grafice pe anumite porțiuni dintr-un context.

Diferența dintre DIV și SPAN este faptul că DIV încadrează o secțiune din document sub forma unui bloc, iar SPAN încadrează o porțiune din context sub formă de linii.

HTML se folosește deseori împreună cu CSS, pentru interfață și scripturi, cum ar fi PHP, CGI sau JavaScript pentru a manipula datele obținute în cadrul unei pagini HTML.

2.3 PHP

PHP este un limbaj de programare. Numele provine din limba engleză, având un acronim recursiv : Php : Hypertext Preprocessor. Folosit inițial pentru a produce pagini web dinamice, este folosit pe scară largă în dezvoltarea paginilor și aplicațiilor web. Se folosește, în principal, în cadrul codului HTML, dar începând cu versiunea 4.3.0 se poate folosi și în mod ”linie de comandă”, permițând astfel crearea de aplicații independente. Este unul dintre cele mai importante limbaje de programare web open-source și server-side, existând versiuni disponibile pentru majoritatea web serverelor și pentru toate sistemele de operare.

Scurt istoric

PHP însemna inițial Personal Home Page. Php a fost început în 1994 precum o extensie a limbajului server-side Perl, apoi ca o serie de CGI-uri compilate de către Rasmus Lerdorf, pentru a genera un curriculum vitae și pentru a urmări numărul de vizitatori ai unui site. Apoi, a evoluat în PHP/FI 2.0, dar proiectul open-source a început să ia amploare după ce Zeev Suraski și Andi Gutmans, de la Technion, au lansat o noua versiune a interpretorului PHP în vara anului 1998, această versiune primind numele de PHP 3.0. Tot ei au schimbat și numele acronimului recursiv de acum, până atunci cunoscut ca Personal Home Page Tools. Apoi Suraski și Gutmans au rescris baza limbajului, producând astfel și Zend Engine în 1999. În mai 2000, a fost lansat PHP 4.0, având la bază Zend Engine 1.0.

Pe 13 iulie 2004 a fost lansat PHP 5, cu Zend Engine II, ce a adus și o orientare obiect mai profundă și suportând mai multe caracteristici ale acestui tip de programare.

La sfârșitul lui 2007, doar versiunea 5.x mai era întreținută, deoarece în data de 13 iulie 2007, PHP Group a anunțat că PHP4 va fi scos din uz pe 31 decembrie 2007, deși prognozează că anumite upgrade-uri de securitate se vor oferi până pe 8 august 2008. Dezvoltarea la PHP6 a început deja în decembrie 2007 și urmează să fie oferit odată cu scoaterea din uz a PHP4.

Descriere

Codul PHP trebuie inclus în fișiere cu extensia .php ce vor fi deservite utilizatorilor finali și trebuie delimitat de restul conținutului prin tagul de început ”<?php” și tagul de sfârșit ?> . Tot ceea ce se află în interiorul acestor etichete va fi interpretat drept cod sursă PHP. Textul din exteriorul acestor 2 taguri este lăsat neschimbat, fiind ulterior interpretat de browser.

Codul PHP este format din instrucțiuni – comenzi date către inteepretor, în urma cărora se execută ceva. PHP este folosit în principal pentru a genera cod HTML, astfel de cele mai multe ori instrucțiunile folosite sunt cele de afișare. În aplicații mai complexe, se pot însă folosi și instrucțiuni de conectare la bazele de date, de citire/scriere/manipulare fișiere, instrucțiuni de trimitere email-uri și altele. Instrucțiunile se pot grupa în blocuri delimitate de acolade { } .

Toate instrucțiunile, cu excepția blocurilor, trebuie să aibă la final punct și virgulă ; . Lipsa acestuia va genera o eroare.

Pentru afișarea textului în PHP, se folosesc instrucțiunile print, echo și printf. Printf este folosită mai rar, datorită sintaxei oarecum greoaie.

Rezultatul unui script PHP este de cele mai multe ori un text simplu în format HTML. Cu alte cuvinte, în majoritatea cazurilor PHP generează o pagină HTML ce va fi afișată în browser. La început, acest lucru poate genera confuzii, întrucât sursa HTML este diferită de ceea ce se afișează efectiv în browser.

În majoritatea scripturilor PHP, se lucrează cu bucăți de text denumite șiruri de caractere sau string-uri. Șirurile de caractere reprezintă expresii sau entități ce au/returnează o valoare și pot fi folosite la afișări, în atribuiri, la verificări, etc. În PHP, șirurile de caractere pot fi delimitate de ghilimele duble, ghilimele simple sau printr-o notație specială folosind operatorul <<< numit heredoc.

Comentariile sunt bucăți de cod care nu se execută. Sunt folosite pentru a da diverse explicații despre logica aplicației, variabile și altele. Comentariile nu afectează execuția unui script și pot fi șterse din cod fără niciun efect.

Variabilele sunt elemente ce au o anumită valoare la un moment dat. Valoarea uneia se poate schimba de-a lungul execuției unui script. Ele sunt diferențiate de alte elemente prin caracterul $ . Astfel, o variabilă are forma $nume. Numele acesteia poate fi orice identificator valid.

În PHP, declararea variabilelor se realizează în același timp cu inițializarea lor. Atribuirea unei valori se realizează cu ajutorul instrucțiunii de atribuire ce are forma :

<nume variabilă> = <valoare> ;

Serializarea unei variabile presupune transpunerea conținutului ei într-o formă ce poate fi stocată cu ușurință ca text simplu. Deserializarea este operația inversă, prin care o variabilă este recreată pe baza unui text provenit de la o serializare. Astfel, o variabilă PHP poate fi serializată și apoi scrisă într-un fișier text sau salvată într-o bază de date, având posibilitatea de a o restaura oricând. Serializarea se face folosind funcția ”serialize” și primește ca parametru o variabilă și returnează un text. Operația inversă se realizează cu ajutorul funcției ”unserialize”. Serializarea este utilă atunci când o variabilă trebuie să fie stocată sau transmisă ca text către un alt proces. Este necesar însă ca deserializarea să fie făcută tot din Php pentru a asigura recrearea corectă a conținutului inițial.

Expresiile sunt construcții ale limbajului PHP care au o valoare. O expresie poate fi un șir de caractere, un număr, o variabilă sau chiar o construcție mai complexă. Cele mai simple expresii sunt numerele sau șirurile de caractere. Acestea au o valoare ce poate fi determinată în orice moment, iar această valoare poate fi folosită în operații. În urma unei atribuiri, o variabilă va prelua valoarea expresiei atribuite, devenind ea însăși o expresie.

Un lucru important referitor la expresii este faptul că valoarea lor se poate modifica în funcție de context. Adică, se modifică tipul de date de care aparține expresia. Astfel, dacă într-o operație este necesar un anumit tip de date, iar expresia folosită are alt tip, atunci valoarea va fi convertită în mod automat.

Expresiile sunt fundamentul limbajului PHP și aproape orice este o expresie. Ele apar peste tot în codul sursă și pot fi folosite în atribuiri, ca parametrii ai funcțiilor sau pentru specificarea condițiilor din structurile de control.

Operatorii sunt elemente de limbaj ce se aplică expresiilor și dau naștere unor expresii noi. Există diverse tipuri de operatori, cu sintaxa și roluri specifice. Toți operatorii vor determina conversia expresiilor componente atunci când acestea au tipuri diferite de date. Regula de conversie diferă de la un tip de date la altul și de la un operator la altul.

Operatorii de comparare sunt folosiți de cele mai multe ori în cadrul instrucțiunii ”if” pentru a exprima condiția ce trebuie verificată.

Important de reținut este diferența dintre operatorul ”==” și operatorul de atribuire ”=”. ”==” este folosit pentru comparare, iar ”=” este folosit pentru atribuirea de valori unei variabile.

PHP oferă un operator numit operator ternar, care are 3 termeni și a cărui evaluare returnează o valoare. Sintaxa lui este următoarea :

( condiție ? adevărat : fals )

unde condiție, adevărat și fals nu sunt instrucțiuni, ci expresii, iar operatorul returnează o valoare și nu o variabilă.

Incrementarea înseamnă creșterea valorii,de obicei cu o unitate, iar decrementarea este operația inversă. PHP oferă, ca și C/C++ , posibilitatea ca incrementarea/decrementarea să se facă printr-un operator, fără să fie nevoie de o instrucțiune separată.

Operatorul @ este folosit pentru a suprima erorile sau avertismentele produse de PHP.

Alți operatori de care PHP dispune sunt : operatori aritmetici, operatori pe biți, operatori logici, operatori de tip, operatori pentru vectori.

În limbajul PHP, la fel ca în orice alt limbaj de programare, instrucțiunile cuprinse într-o secvență de cod sursă se execută succesiv. Există totuși anumite instrucțiuni care modifică ordinea de execuție a liniilor de cod. Acestea se numesc structuri de control, deoarece ele controlează fluxul de execuție.

Structurile de control din PHP sunt : structura alternativă (instrucțiunea ”if” cu variantele ei), structura de selecție multiplă (”switch”), structuri repetitive (”for” , ”while” , ”do … while” , ”foreach”), structuri de întrerupere a fluxului (”break” , ”continue” , ”return”), structura de salt necondiționat (”goto”), directivele de includere (”include” , ”require”) și directiva ”declare” .

PHP permite referirea unor fișiere PHP externe și includerea lor în fluxul curent de execuție, folosind funcțiile ”include” sau ”require. În momentul în care un script este inclus cu una din cele 2 funcții, el este imediat executat. Fluxul de execuție al scriptului inițial este întrerupt temporar pentru a executa scriptul inclus, urmând ca după finalizarea execuției, fluxul inițial să fie reluat. Diferența dintre aceste două funcții este că dacă fișierul solicitat pentru includere nu există, ”include” va returna un avertisment, continuând execuția, pe când ”require” va returna o eroare, iar execuția codului va fi întreruptă.

O structură repetitivă reprezintă o secvență de cod ce permite realizarea repetată a aceleiași operații de un anumit număr de ori. O structură repetitivă este definită de 2 elemente : operația care este executată și condiția de oprire a execuției. În anumite cazuri, se cunoaște și numărul de execuții sau iterații.

PHP oferă o structură repetitivă foarte folosită și utilă : ”foreach”. Aceasta permite iterarea prin toate elementele unui vector. Pot fi folosiți și vectori simpli și asociativi. Spre deosebire de alte instrucțiuni, ”foreach” nu necesită în mod explicit o condiție de oprire, deoarece interpretorul PHP are rolul de a opri iterația atunci când s-a ajuns la finalul vectorului.

Pe lângă instrucțiunile amintite mai sus, PHP mai oferă o serie de alte funcții, printre care se numără și următoarele : ”mail()” , funcții matematice, ”set_time_limit()” , ”flush()” , terminarea execuției, funcții de transformare base64, ”phpinfo()” .

PHP poate trimite emailuri cu ajutorul funcției ”mail()” , dacă pe serverul curent este instalată și o aplicație de mail.

Funcția ”set_time_limit()” se utilizează pentru a configura timpul maxim cât scriptul curent are nevoie să se execute. Este foarte utilă în cazurile în care se execută un volum mare de operații care ar putea dura câteva zeci de secunde. Dacă după expirarea timpului scriptul încă se află în execuție, serverul va întrerupe execuția și va returna o eroare.

Funcția ”flush()” trimite către browser tot ceea ce a fost afișat deja de script. Această funcție oferă posibilitatea trimiterii către browser a rezultatului pe parcurs ce acesta este printat în PHP. Asta înseamnă că pagina poate fi afișată parțial în timp ce încă se încarcă.

Funcțiile de codificare ”base64” sunt folosite pentru codificarea /decodificarea unui text în și din formatul Base64.

Funcția ”phpinfo()” oferă informații despre instalarea PHP curentă și despre serverul pe care aceasta este executată. Rolul este pur informativ. Funcția nu poate fi folosită într-un script care are un alt scop bine definit. De aceea, se recomandă apelarea acestei funcții într-un script PHP separat, întrucât aceasta crează o pagină HTML completă.

Funcțiile sunt blocuri de cod PHP bine delimitate și identificate printr-un nume, ce execută un set de operații. Acestea pot fi executate de mai multe ori în cadrul unui script prin apelarea numelui lor. Există 2 tipuri de funcții : predefinite, specifice PHP ce pot fi folosite în orice moment fără a fi nevoie de vreo acțiune specială și definite de utilizator, necesitând să fie declarate și implementate.

Printre avantajele folosirii funcțiilor, se numără :

reutilizarea codului

modularizarea

menținerea ușoară a codului și înțelegerea mai ușoară a logicii aplicației sau a scriptului.

PHP dispune de câteva variabile implicite. Acestea sunt pre-populate de PHP în momentul execuției, deci nu trebuie definite sau inițializate. Sunt disponibile în orice porțiune a codului și în orice script PHP, putând fi folosite fără să fie nevoie de alte pregătiri. Aceste variabile sunt următoarele :

$_GET – vector asociativ ce conține parametrii transmiși prin URL sau printr-un formular.

$_POST – similar cu $_GET, doar că parametrii sunt transmiși prin formulare.

$_REQUEST – înglobează atât $_GET, cât și $_POST.

$_SESSION – folosită pentru a defini ce date sunt disponibile atâta timp cât utilizatorul accesează site-ul, indiferent de paginile vizualizate.

$_SERVER – furnizează informații despre server, pagina cerută și utilizatorul care accesează pagina.

$_ENV – afișează informații despre mediul curent în care este instalat și rulează interpretorul PHP, despre scriptul curent, etc.

$_COOKIE – folosită pentru a vedea elementele de tip Cookies de la site-ul/pagina curentă, disponibile pe calculatorul utilizatorilor.

$_FILES – folosită la încărcarea fișierelor pe server.

Formularele sunt elementele prin intermediul cărora utilizatorii trimit date către server. Pe o pagină web pot fi introduse diverse tipuri de informații. După ce sunt transmise, datele pot fi prelucrate folosind PHP. Astfel, ele pot fi salvate într-o bază de date, în fișiere, trimise prin mail sau doar afișate înapoi pe o pagină.

Metodele de acces reprezintă modul în care cerințele pentru o pagină web și alte informații aferente, sunt transmise de la browser la serverul web. Există 8 metode definite, în schimb doar 2 dintre ele sunt cel mai des folosite.

GET este cea mai uzuală metodă, folosită implicit de browsere pentru a trimite cereri către servere. Majoritatea paginilor vizualizate de utilizatori pe internet sunt obținute în urma unei cereri GET. Deci, această metodă este folosită pentru a ”cere” o pagină de la server. Totuși, odată cu cererea se pot transmite și mici bucăți de informații către server. Aceste informații transmise la momentul cererii pot fi date introduse de utilizatori și sunt adăugate la finalul URL-ului sub forma ”pagina.php?parametru=valoare” .

POST este opus metodei GET, fiind folosită pentru a transmite informații către server. Spre deosebire de GET care permite doar o cantitate limitată de date să fie transmisă de la client la serverul web, POST dispune de limite mai generoase, fiind standardul de transmitere a datelor.

GET :

Datele transmise către server prin GET apar la finalul URL-ului, așa cum au fost introduse; acest lucru poate fi un dezavantaj când este vorba de date senzitive, dar ajută la modificarea ușoară a datelor pentru retrimitere.

Cantitatea de date GET depinde de lungimea maximă permisă a URL-ului.

Rezultatul unui request GET poate fi preluat din cache-ul browser-ului sau al proxy-ului web. Trebuie ca URL-ul să fie diferit la fiecare request nou pentru a fi siguri că datele reale sunt preluate.

Caracterele speciale pot fi codificate folosind atributul enc-type al formularului; dezavantajul este că această codificare va reduce cantitatea de date ce pot fi transmise.

În PHP, elementele formularului sunt disponibile prin intermediul variabile globale $_GET.

POST :

Cantitatea de date ce poate fi transmisă prin POST poate fi restricționată doar de către serverul web, deși nu există o limitare reală.

Datele transmise prin POST nu apar în URL și nu pot fi alterate ușor, ceea ce oferă un oarecare grad de securitate.

În mod implicit, datele preluate prin POST nu sunt puse în cache-ul de la browser sau proxy-server; astfel folosind această metodă vor fi afișate întotdeauna datele reale.

Codificarea caracterelor speciale se poate realiza ca și la GET, avantajul fiind că nu există limitări de cantitate a datelor.

În PHP, elementele formularului sunt disponibile prin intermediul variabilei globale $_POST.

Este important să se aleagă metoda corectă atunci când :

se realizează inserări în baza de date sau modificări pe server

se vor transmite cantități mari de date

utilizatorii pot să modifice ușor datele transmise

utilizatorii trebuie informați/atenționați atunci când retrimit aceleași date către server

este important ca datele afișate să nu fie preluate din cache (POST) .

Headerele sunt elemente prin care browser-ul și serverul web comunică în fundal pentru a afișa o pagină web în bune condiții. Există 2 tipuri : headere emise de browser (headere de request) și headere emise de server (headere de răspuns) .

De fiecare dată când un utilizator accesează o pagină web, browserul trimite către server cantități mici de date, sub forma request headers. Aceste antete cuprind detalii despre pagina care a fost solicitată, modul de transfer al ei, precum și informații despre capabilitățile browser-ului.

În răspuns la request headers primite de la browsere, serverele web trimit înapoi 2 tipuri de informație : headere de răspuns (response headers) și conținutul efectiv al paginii solicitate.

Cookies reprezintă porțiuni de informații (stocate sub formă de fișiere de mici dimensiuni) ce se află pe calculatorul utilizatorului și care sunt create și folosite de către browser în comunicarea cu serverul web. În principiu, cookie-urile sunt utilizate pentru a identifica utilizatorii sau a păstra urma vizitelor pe un site. Acestea pot fi șterse de către utilizatori sau pot fi blocate de către browser, așadar folosirea lor trebuie făcută cu grijă și doar în cazuri de necesitate. Un cookie poate conține o cantitate limitată de informație, iar durata de viață poate fi limitată sau nelimitată. PHP dispune de 2 funcții prin care se pot crea cookie-uri : ”setcookie” și ”setrawcookie”.

Sesiunile reprezintă o funcționalitate prin care anumite informații sunt menținute de la o pagină la alta. O sesiune durează atâta timp cât utilizatorul accesează un site și se încheie odată cu închiderea browserului. În PHP, o sesiune reprezintă perioada de timp în care mai multe scripturi PHP, accesate la momente diferite de timp, pot stoca și folosi informații comune. O sesiune începe atunci când un script apelează funcția ”session_start” și se termină când utilizatorul închide browserul. O sesiune se întinde pe mai multe requesturi, iar pentru a identifica existența unei sesiuni PHP poate folosi cookie-uri sau parametrii GET în URL-ul paginii.

În orice limbaj de programare, așadar și în PHP, când se lucrează cu fișiere trebuie efectuate următoarele operațiuni :

deschiderea fișierului

citirea din fișier/scrierea în fișier

închiderea fișierului.

Pentru simplificarea codului de citire/scriere a unui fișier în situații generale, PHP oferă câteva funcții ajutătoare : ”file_get_contents” , ”file_put_contents” și ”file”. Primele două permit preluarea întregului conținut al unui fișier și punerea lui într-o variabilă string, printr-un singur apel, respectiv crearea unui fișier care să conțină valoarea unei variabile. Cea de-a treia funcție permite crearea unui vector ce are ca elemente liniile fișierului specificat.

Una dintre cele mai importante facilități ale acestui limbaj este conlucrarea cu majoritatea bazelor de date relaționale, de la MySQL și până la Oracle, trecând prin MS Sql Server, PostgreSQL sau DB2. Poate rula pe majoritatea sistemelor de operare, de la UNIX, Windows sau Mac OS X și poate interacționa cu majoritatea serverelor web.

MySQL

MySQL este cea mai populară aplicație open-source de baze de date folosită cu PHP. O bază de date conține una sau mai multe tabele, folosită pentru a stoca informații pe categorii. Tabelele conțin coloane și înregistrări cu date.

Fiecare bază de date și fiecare tabelă este identificată printr-un nume. Regulile de bază pentru nume sunt : numele poate avea maxim 64 de caractere ; poate conține numai litere, numere ; poate începe cu un număr, dar nu poate conține numai numere ; o tabelă nu poate avea două coloane cu același nume și o bază de date nu poate avea două tabele cu același nume ; numele tabelelor și coloanelor sunt case-sensitive.

La crearea unui tabel MySQL, trebuie definit tipul de date pe care fiecare coloană îl va conține. Sunt trei tipuri principale : text, numere, data și ora ; și două secundare : liste predefinite și date binare. Tipul de date impune ce informație poate fi stocată și cum, influențând și performanța generală a bazei de date.

Tipurile de date pentru stocarea textului sunt : char, varchar, tinytext, text, mediumtext, longtext. Tipurile de date pentru stocarea numerelor sunt : tinyint, smallint, mediumint, int, bigint, float, double, decimal. Tipurile de date pentru stocarea datei și a timpului sunt : date, datetime, timestamp, time. Tipurile de date pentru stocarea listelor predefinite sunt : enum, set. Tipurile de date pentru stocarea datelor binare sunt : tinyblob, blob, mediumblob, longblob.

PHP are trei moduri diferite prin care se poate conecta și interacționa cu baza de date MysSQL : extensia MySQL originală, MySQL Improved sau PHP Data Objects. Pentru a putea accesa informațiile din baza de date, trebuie creată o conexiune cu serverul MySQL. Sintaxa este : $conn = new mysqli($servername, $username, $password, $database, $port); unde :

$servername – specifică serverul la care se conectează

$username – specifică numele de utilizator la baza de date MySQL

$password – specifică parola utilizatorului pentru conectare

$database – opțional. Numele bazei de date care conține tabelele

$port – opțional. Specifică port-ul prin care se face conectarea la serverul MySQL.

Conexiunea se inchide automat când scriptul se termină. Este recomandat totuși să se închidă conexiunea mai devreme, când scriptul nu o mai folosește. Acest lucru va elibera memoria folosită pentru conectare. Pentru a realiza acest lucru se folosește metoda close() .

Pentru crearea unei baze de date se folosește comanda CREATE DATABASE. Pentru crearea unui tabel se folosește comanda CREATE TABEL, după care se apelează metoda query(). După tipul datei, se pot specifica și alte atribute opționale pentru fiecare coloană :

NOT NULL – fiecare rând trebuie să conțină o valoare în acea coloană, valorile null nefiind permise

DEFAULT value – setează o valoare inițială care este adăugată când nicio altă valoare nu este transferată

UNSIGNED – poate fi folosit pentru numere, setează să fie folosite doar numere pozitive și zero

AUTO INCREMENT – MySQL va mări automat valoarea din rândul următor cu 1 de fiecare dată când o nouă înregistrare este adăugată

PRIMARY KEY – este folosit pentru a identifica unic rândurile dintr-un tabel. Coloana cu setarea aceasta este de obicei un ID numeric și folosită în general cu AUTO_INCREMENT.

Pentru a adăuga înregistrări noi într-un tabel, se utilizează comanda INSERT INTO. Inserarea se poate realiza în două moduri : nu se specifică numele coloanelor unde datele vor fi introduse, ci doar valorile lor sau se specifică atât numele coloanei/coloanelor cât și valorile care vor fi introduse.

Rolul formularelor HTML este de obicei de a trimite date la un script pe server. Aceste date pot fi adăugate și într-o bază de date. Pentru introducerea datelor dintr-un formular într-o bază de date MySQL, trebuie creat un formular HTML și un script PHP care recepționează date din formular.

Comanda SELECT se folosește când într-o bază de date are câteva înregistrări în ea și se dorește preluarea informației stocate. O interogare SELECT returnează rânduri selectate de la unul sau mai multe tabele. Pentru a fi trimisă comanda SQL la baza de date MySQL și pentru a prelua datele selectate, se folosește metoda query(). Aceasta returnează un obiect care conține rândurile de date sau False în caz de eroare. Pentru parcurgerea datelor returnate și obținerea câte unui rând din ele, se folosește metoda fetch_assoc. Aceasta returnează un array asociativ ce conține rândurile preluate, cheile din array reprezentând numele coloanelor. Pentru a afla numărul de rânduri returnat de interogarea SELECT, se folosește proprietatea num_rows aplicată la obiectul rezultat. Pentru a specifica ordinea de sortare a rezultatelor se folosește ORDER BY.

Clauza WHERE adăugată în interogarea SELECT este pentru a căuta valori specifice, pentru a extrage doar acele înregistrări care respectă anumite criterii. Este folosită pentru a filtra înregistrările, adăugându-se după numele tabelului.

LIKE și NOT LIKE sunt termeni folosiți pentru identificarea valorilor de tip șir, în combinație cu următoarele caractere :

% – reprezintă orice secvență de caractere sau niciuna

_ – reprezintă exact un caracter.

Cu ajutorul comenzii UPDATE se pot modifica datele înregistrate. Este folosită pentru a modifica sau actualiza informațiile existente într-un tabel. Clauza WHERE este importantă în această interogare, deoarece specifică serverului MySQL care înregistrare trebuie actualizată. Altfel, vor fi afectate toate rândurile.

Comanda DELETE este folosită pentru a șterge rânduri din tabel. Și aici, clauza WHERE este importantă, deoarece specifică exact care rând trebuie șters. Rândurile șterse nu mai pot fi recuperate. Fără această clauză, serverul va șterge toate înregistrările din tabel, lăsându-l gol. Pentru a șterge complet un tabel, se folosește DROP TABLE, iar pentru a șterge o întreagă bază de date, cu toate tabelele și informațiile din ea, se folosește DROP DATABASE.

Funcțiile pentru text se utilizează când se lucrează cu șiruri, putând fi aplicate fie cu numele coloanelor, fie cu valori specifice. Câteva funcții ar fi : concat, concat_ws, length, left, right, trim, upper, lower, substring, expr REGEXP patern.

Funcțiile numerice sunt utilizate în lucrul cu numere, pentru efectuarea operațiilor matematice. Câteva funcții ar fi : abs, avg, ceiling, floor, format, min, max, mod, pow, rand, round, sqrt, sum.

Există și funcții pentru dată și oră, ca de exemplu : hour, minute, second, dayname, dayofmonth, monthname, month, year, curdate, curtime, now, unix_timestamp.

2.4 CSS

CSS sau Cascading Style Sheets este un standard pentru formatarea elementelor unui document HTML. Stilurile se pot atașa elementelor HTML prin intermediul unor fișiere externe sau în cadrul documentului, prin elementul <style> și/sau atributul ”style”. CSS se poate utiliza și pentru formatarea elementelor XHTML, XML și SVGL.

Scurt istoric

CSS1 sau CSS nivelul 1 a fost publicat în anul 1996 de către W3C. CSS sau Cascading Style Sheets este un limbaj separat, care ajută la separarea dintre conținutul și forma unui document HTML. Scopul era de a scoate tagurile sau atributele de formatare sau prezentare a conținutului (culori, fonturi, poziționare) și a le introduce în foi de stil – CSS, separate de HTML.

În 1998 este publicat CSS2 sau CSS nivelul 2. În iulie 2007, CSS 2.1 devine ”W3C Candidate Recommendation”. În prezent, a apărut CSS3.

Descriere

CSS, în traducere ”foi de stil în cascadă”, se ocupă în general cu aspectul și controlul grafic al elementelor din pagină, cum ar fi : textul, imaginile, fondul, culorile și așezarea acestora în cadrul ferestrei paginii. CSS folosește stiluri, care înglobează,sub un anumit nume, atribute de formatare care se aplică asupra unui element individual din pagină, asupra unui grup de elemente sau la nivelul întregului document.

Codurile CSS pot fi scrise fie în interiorul paginii, fie într-un fișier cu extensia ”.css” . Codul, ca formă generală, este alcătuit din obiectul care va fi formatat, proprietățile acestuia și valoarea fiecărei proprietăți. În cazul în care codul este adăugat în documentul HTML, trebuie scris în cadrul unui tag ”<style>” în secțiunea HEAD. Perechile proprietate:valoare se scriu între acoladele obiectului CSS pe care îl definesc, între ”proprietate” și ”valoare” trebuie pus caracterul două-puncte (:) , iar la sfârșitul perechii se adaugă un caracter punct-și-virgulă (;) . În cazul în care codul este scris într-un fișier extern, acesta se scrie la fel, dar nu se mai adaugă tag-ul ”<style>” .

Există trei tipuri principale de obiecte CSS : selector, clasă și identificator. Selectorul HTML se folosește pentru redefinirea modului de afișare a conținutului etichetei HTML.

Clasa este un obiect care poate fi aplciat oricărei etichete HTML. O clasă trebuie creată mai întâi în interiorul etichetei HTML, apoi definită în codul CSS. Crearea clasei se face astfel : <h1 class=”nume_clasa”>Text</h1>

În interiorul codului CSS, clasa trebuie definită prin adăugarea unui caracter punct (.) înaintea numelui clasei. Numele aceleași clase poate fi atribuit mai multor etichete HTML din aceeași pagină, și toate vor prelua același stil.

Identificatorii sunt asemănători cu clasele. Pot fi aplicați oricărei etichete HTML, dar numele unui identificator trebuie atribuit numai unei singure etichete HTML dintr-o pagină, fiecare etichetă având un ID cu nume diferit. Identificatorul trebuie de asemenea creat mai întâi în interiorul etichetei HTML : <h1 id=”nume_id”>Text</h1> . În cod, identificatorul este definit prin adăugarea unui caracter diez (#) înaintea numelui.

Obiectele CSS, indiferent de tipul lor, au în componență următoarele elemente :

selectorii – identifică un obiect ; pot fi selectori de etichete HTML, clase sau identificatori

proprietățile – identifică o proprietate a obiectului ; se referă în special la aspect

valorile – sunt atributele unei proprietăți ; pot fi cuvinte cheie, valori numerice sau procentuale, tipul valorii depinzând de proprietate.

Proprietățile și valorile constituie definiția regulii CSS.

CSS oferă posibilitatea de a schimba aspectul fiecărei etichete în parte, prin stabilirea unui anume stil în interiorul ei, cu atributul ”style” . Acest aspect este util mai ales pentru a anula alte stiluri ale elementului respectiv sau de a da elemente grafice de stil doar etichetei respective. Sintaxa pentru definirea stilurilor în interiorul unei etichete HTML este următoarea :

<eticheta style=”proprietate:valoare;”> text .. </eticheta>

De asemenea, CSS permite și definirea unor reguli de stil generale într-o pagină web. Acest set de reguli trebuie scris în secțiunea de antet a documentului, în cadrul tag-ului <style> .

Foile de stil pot fi utilizate nu numai pe o pagină web, ci și pe un întreg site. De aceea, trebuie creată o foaie de stil externă într-un fișier separat cu extensia ”.css”, care poate fi inclus în pagina HTML prin două moduri : legătură sau import. Legătura se face cu următoarea sintaxă : <link rel=”stylesheet” href=”nume_fișier.css” type=”text/css”>

Importul se face cu sintaxa de mai jos :

<style type=”text/css”>

@import url(nume_fișier.css);

</style>

Majoritatea etichetelor HTML au unele proprietăți prestabilite. Acestea fie rămân cum sunt, fie pot fi redefinite. Există totuși cazuri în care se dorește crearea unor etichete personalizate. În acest caz, se folosesc etichetele <span> și <div> . Eticheta <span> nu are proprietăți moștenite, fiind doar o locație vidă care crează o etichetă în linie. Pentru configurarea etichetei în linie, trebuie definită o clasă sau un identificator care să poată fi aplicat apoi unei etichete <span> .

Când se dorește configurarea unui bloc separat de restul conținutului unui document HTML, soluția este eticheta <div> . Aceasta crează o zonă proprie în pagină, cu linie nouă atât deasupra sa, cât și dedesubtul său. Pentru crearea etichetelor DIV se procedează la fel ca și în cazul etichetelor în linie SPAN.

Dacă mai mulți selectori folosesc aceleași definiții css, aceștia pot avea aceeași listă de elemente, fiind scriși separat prin virgule. Sintaxa generală pentru definirea unei liste cu mai mulți selectori este următoarea :

selector1, selector2, … {proprietate1:valoare1; proprietate2:valoare2; … }

Împreună cu selectorii pot fi de asemenea definiți identificatorii și clasele. Dezavantajul este că în momentul în care se modifică o valoare a unei proprietăți incluse în definiție, valoarea respectivă se va modifica în toate etichetele reprezentate de acești selectori.

Valorea !important adăugată unei definiții atribuie maximum de prioritate în determinarea ordinii unei execuții. Această valoare trebuie plasată înaintea caracterului ”;” .

Deoarece există mai multe moduri de aplicare a stilurilor, pot să apară situații în care unei etichete i se aplică mai multe stiluri. Foile de stil din două sau mai multe surse, folosite simultan, pot cauza contradicții. Din acest motiv, există câteva reguli care determină ordinea execuției, numită și cascadă, și sunt următoarele :

regulile CSS scrise în interiorul paginii HTML, în cadrul etichetei <style> din secțiunea ”head” au o prioritate mai mare decât cele scrise într-un fișier extern, iar regulile scrise în interiorul etichetelor au o prioritate mai mare decât cele din cadrul etichetei ”style” din secțiunea ”head”

existența atributului !important conferă prioritate maximă la afișarea definiției în care este utilizat

sursa regulilor – există numeroase navigatoare care permit utilizatorului să-și definească propriile foi de stil. Totuși, foile de stil ale autorului le anulează pe cele ale vizitatorului dacă acestea din urmă nu au valoarea ”!important”

specificitate – cu cât o regulă dispune de mai mulți selectori HTML, de clasă și de identificator, cu atât prioritatea ei crește. ID-urile au valoarea 100, clasele au valoarea 10, iar selectorii HTML au valoarea 1

momentul apariției – cu cât un stil apare mai târziu, cu atât importanța lui este mai mare. Astfel, definițiile unei etichete copil au prioritate mai mare și anulează toate stilurile precedente cu care intră în conflict.

CSS include facilități de control asupra aspectului fonturilor, prin posibilitatea de a stabili familia de fonturi, atributele îngroșat și înclinat, dimensiunea literelor precum și spațiul dintre linii. Există 5 familii de fonturi de bază :

serif – au un ornament plasat la terminația literei, care îi oferă o distincție specială. Sunt folosite pentru tipărire, chiar dacă textele sunt mai mari sau mai mici. Nu sunt indicate pentru afișarea textelor pe ecran

sans serif – sunt fonturi care nu folosesc serife, fiind indicate pentru conținut text general

monospace – fonturile monospace pot avea serife, ele se deosebesc prin faptul că fiecare literă ocupă aceeași cantitate de spațiu. Sunt cele mai indicate pentru textele care trebuie citite cu exactitate, ca de exemplu liniile de program

cursive – imită scrisul de mână, într-o manieră stilizată. Sunt indicate în scopuri decorative, nefiind recomandate pentru scrierea unor texte mai lungi

fantasy – nu se încadrează în niciuna din categoriile de mai sus, fiind fonduri care au un caracter predominant ornamental, reprezentând ilustrații sau pictograme.

Fontul utilizat pentru afișarea unui text poate fi stabilit prin proprietatea ”font”. Pentur definirea fontului în cadrul unei reguli, trebuie specificată, după selectorul din cadrul foii de stil, proprietatea font-family urmată de numele fontului sau a fonturilor, despărțite prin virgulă. Este bine ca numele fonturilor să fie încadrate între ghilimele simple sau duble, mai ales dacă numele acestora conține spații.Cu ajutorul CSS se poate stabili dimensiunea fontului folosind valori absolute, procentuale sau chiar relative. Pentru definirea dimensiunii fontului în cadrul unei reguli, trebuie specificată proprietatea font-size urmată de o valoare a dimensiunii care poate lua una din următoarele tipuri de valori : unitate de măsură, expresie absolută, expresii smaller sau larger, procent.

Îngroșarea este o metodă des utilizată pentru scoaterea în evidență a unui text. CSS conferă mai multă flexibilitate în utilizarea textului îngroșat decât elementul HTML ”<b>”, prin posibilitatea introducerii unei valori proprietății font-weight, după cum urmează : bold, bolder, lighter, normal .

Textele alcătuiesc o bună parte din paginile web. Metodele de afișare a textelor prin controlul nu numai a fontului, dimensiunii și culorilor, ci și cu ajutorul altor elemente, pot îmbunătăți aspectul paginii și pot atrage atenția asupra anumitor elemente din text.

Spațierea se referă la cantitatea de spațiu dintre literele unui cuvânt. Cu ajutorul letter-spacing se poate adăuga sau reduce spațiul dintre litere, proprietate urmată de o valoare exprimată într-o anumită unitate de măsură, ce poate avea și valori negative.

CSS oferă posibilitatea modificării spațiului între cuvinte atât prin mărire, cât și prin micșorare. Aceasta se realizează prin intermediul proprietății word-spacing, urmată de o valoare exprimată într-o anumită unitate, fiind de obicei stabilită în pixeli. Pentru anularea acestei spațieri, se folosește normal.

Înălțimea rândurilor se referă la spațiul dintre liniile paragrafului. Modificarea spațiului între linii poate avea ca efect o mai bună și ușoară citire a textului în cazul în care aceasta este mai mare. Dar, în același timp, dacă înălțimea este mai mică, poate conferi un aspect mai stilat. Pentru modificarea înălțimii rândurilor se folosește proprietatea line-height, urmată de o valoare exprimată fie de un număr, fie de o valoare de tip absolut, fie un procent.

Există cazuri în care se dorește afișarea textului cu un anume tip de litere. În CSS, se poate specifica explicit ca textul să apară cu majuscule inițiale, majuscule, minuscule, combinat sau așa cuma a fost el scris. Controlul mărimii literelor din text se face cu proprietatea text-transform, urmată de o valoare care poate fi : capitalize, uppercase, lowercase, none.

Alinierea unui text se poate face de la marginea din stânga, din dreapta, centrat sau la ambele margini. Controlul alinierii se face cu proprietatea text-align cu una din valorile : left, right, center sau justify.

CSS mai permite ornarea textului prin scoaterea lui în evidență în patru moduri : subliniere, supraliniere, taierea textului cu o linie sau crearea de texte care clipesc. Toate acestea se realizează cu ajutorul proprietății text-decoration, urmată de o valoare : underline, overline, line-through, blink.

Pentru schimbarea culorii fundalului se folosește proprietatea background-color, urmată de valoarea ce reprezintă numele culorii sau valoarea RGB, exprimată în cod hexa. Pentru a utiliza o imagine pentru fundal, se folosește proprietatea background-image, urmată de adresa URL a locației imaginii. Pe lângă aceasta, se poate folosi proprietatea de repetare a imaginii de fundal background-repeat, urmată de o valoare care poate avea una din următoarele opțiuni : repeat, repeat-x, repeat-y, no-repeat. CSS poate defini modul de tratare a fundalului la derularea paginii, pentru care se folosește proprietatea background-attachment cu opțiunea ”fixed” , pentru a lipi imaginea de fundal de fereastra navigatorului sau opțiunea ”scroll”, pentru a permite derularea imaginii de fundal alături de elementul corespunzător atunci când vizitatorul derulează pagina. Pentru poziționarea imaginii de fundal în funcție de colțul din stânga-sus al elementului, se utilizează proprietatea background-position urmată de două valori separate prin spațiu, ”x” pentru poziția orizontală și ”y” pentru cea verticală. Toate aceste proprietăți ale fundalului pot fi configurate cu ajutorul proprietății background. Se poate stabili simultan printr-o listă de valori proprietățile fundalului, enumerate în orice ordine și separate prin spațiu.

Cu ajutorul proprietății color se poate schimba culoarea oricărui element, fie el text, linie orizontală sau element de tip formular. Valoarea culorii poate fi : numele culorii, valoarea în hexa, valoarea RGB.

Lățimea și înălțimea elementelor pot fi specificate cu ajutorul proprietăților width și height. În mod prestabilit, acestea sunt determinate automat de către navigator, fiind egale cu necesarul afișării întregului conținut. Pentru a le defini se folosesc următoarele tipuri de valori : o valoare de tip numeric, un procent, valoarea auto.

Proprietatea margin stabilește distanța dintre un element și elementele alăturate, prin specificarea unei valori pentru marginea din fiecare latură – sus, dreapta, jos, stânga. Tipul de valoare utilizat poate avea una dintre opțiuni : o valoare de tip lungime, o valoare procentuală, valoarea auto. Există posibilitatea de a stabili valoarea marginii doar pentru o singură latură, fără a ține cont de celelalte margini. Acest lucru se poate realiza cu proprietățile margin-top, margin-bottom, margin-left, margin-right cu aceleași valori ca și în cazul proprietății margin.

Proprietatea border permite stabilirea simultană a atributelor chenarului pentru toate cele patru laturi ale casetei. Aceasta folosește 3 valori distincte, pentru configurarea lățimii (grosimea) , stilul și culoarea liniei bordurii.Sintaxa generală pentru definirea chenarului este :

selector {border:val_grosime val_stil val_culoare; }

Unde :

prima valoare reprezintă grosimea chenarului și poate fi una din următoarele tipuri : o valoare de tip lungime sau un cuvânt cheie : thin, medium, thick

a doua valoare reprezintă numele stilului atribuit chenarului

ultima valoare reprezintă culoarea

Un atribut care poate fi folosit în configurarea chenarului este border-width, care furnizează o metodă rapidă pentru stabilirea lățimii celor patru laturi din jurul unei casete. Aspectul bordurii se definește cu atributul border-style, care este aplicat celor 4 margini. Valoarea poate fi una dintre următoarele tipuri : none, dotted, dashed, solid, double, groove, ridge, inset, outset.

Un alt atribut folosit în configurare este border-color, care stabilește culoarea celor patru laturi, folosind pentru valoarea ei un singur cuvânt cheie exprimat în cod hexa, valoare RGB sau numele culorii. Se poate stabili culoarea fiecărei margini în parte, folosind proprietățile : border-top-color, border-right-color, border-bottom-color, border-left-color.

Proprietatea padding adaugă o cantitate de spațiu suplimentar în jurul conținutului elementului, în interiorul chenarului, între bordură și conținut. Valoarea pentru completarea spațiului poate fi : o valoare de tip lungime sau o valoare procentuală. Fiecare latură poate avea proprietatea de padding.

Proprietatea display stabilește dacă un element va fi de tip block, incluzând linii noi deasupra și dedesubtul său, dacă este inclus în linie, dacă este tratat sub formă de listă sau dacă elementul este sau nu afișat. Valoarea acestei proprietăți poate fi : list-item, block, inline, none.

Cu ajutorul proprietății position se poate specifica poziția elementului în pagina web. Un element poate avea una dintre următoarele valori de poziționare : static, relative, absolut și fixed. ”Static” este valoarea inițială, prestabilită a poziționării elementelor în fereastră. Un element cu poziționare ”relativă” este amplasat la locul sau în cadrul ferestrei sau a elementului părinte, adică el apare după toate elementele dinaintea sa, respectiv înaintea tuturor elementelor amplasate după el. Poziționarea ”absolută” are ca efect crearea unui element neafectat de restul documentului, fiind plasat într-o locație precisă, definită prin intermediul coordonatelor x și y, indiferent de pozițiile altor elemente. Poziționarea fixă a unui element este aproximativ la fel cu cea absolută, diferența fiind că la derularea paginii elementului fixat rămâne pe poziția lui inițială, fără a se derula.

Proprietatea visibility poate controla dacă un element să fie vizibil sau nu. Chiar dacă acesta este invizibil, el va ocupa un spațiu liber în pagină, acolo unde ar fi trebuit să fie afișat. Valoarea acestei proprietăți poate fi una dintre : hidden, visible sau inherit.

Definirea suprafeței vizibile a unui element stabilește porțiunea din elementul respectiv care este vizibilă în fereastra navigatorului. Pentru definirea formei regiunii vizibile se folosește proprietatea clip cu valoarea rect.

Proprietatea overflow permite tratarea conținutului în exces, controlând astfel modul de afișare sau nu al acestuia. Valoarea care stabilește unde va fi plasată depășirea va fi una dintre : visible, hidden, scroll, auto.

Pseudo-clasele permit adăugarea de stiluri CSS doar la anumite elemente ale aceluiași selector, id sau clasă. Sintaxa este : element:pseudo-clasa { proprietate:valoare; } unde ”element” este un selector, id sau clasă, iar ”pseudo-clasa” este una din expresiile : active, first-child, focus, hover, lang, last-child, link, visited.

Pseudo-elementele permit adăugarea de stiluri CSS a anumitor părți din conținutul unui element HTML. Sintaxa este : obiect_css:pseudo-element { proprietate:valoare; } unde ”obiect_css” este un selector, id sau clasă, iar ”pseudo-element” este una dintre expresiile următoare : after, before, first-letter, first-line.

În principiu, CSS este folosit pentru stilizarea elementelor din HTML.

2.5 Alte tehnologii : JavaScript, AJAX, CGI, XML

2.5.1 JavaScript

JavaScript este un limbaj de programare orientat obiect bazat pe conceptul prototipurilor. Este folosit în special pentru introducerea unor funcționalități în paginile web, codul fiind rulat de către browser. În ciuda numelui și a unor similarități în sintaxă, între JavaScript și limbajul Java nu există nicio legătură.

Scurt istoric

A fost dezvoltat inițial de către Brendan Eich de la Netscape Communications Corporation sub numele de Mocha, apoi LiveScript, și denumit în final JavaScript. Până la începutul lui 2005, ultima versiune existentă a fost JavaScript 1.5, care corespunde cu ECMAScript, o ediție standardizată de JavaScript.

Descriere

Pentru inserarea codului JavaScript într-un document HTML deja existent, trebuie introdus în fișier eticheta <script> și </script>. Eticheta necesită atributul ”type” sau atributul ”language” care specifică browser-ului limbajul folosit pentru interpretarea codului inclus.

În cadrul unui script se folosesc date constante, dar și date variabile care își schimbă valorile în timpul execuției programului. Acestea se numesc variabile. Spre deosebire de alte limbaje, JavaScript nu are tipuri fixe de date, permițând schimbarea tipului unei variabile în cadrul scriptului, putând recunoaște singur când datele sunt de tip ”șir”, numerice sau alt tip. O variabilă scrisă în cadrul unei funcții este o variabilă locală, adică valoarea ei este recunoscută numai în interiorul funcției, iar când se iese din funcție, variabila este distrusă. Variabilele globale se declară în afara oricărei funcții, putând fi folosite de toate funcțiile și sunt valabile de la încărcarea paginii până la închidere, în orice script JS.

Operatorii se folosesc pentru a lucra cu datele introduse într-un script și a manipula valorile variabilelor. JavaScript recunoaște operatori binari și operatori unari. Operatorii sunt de mai multe tipuri : aritmetici, de atribuire, de comparare, logici, pentru șiruri, typeof, conditional ?, pentru funcții, pentru structuri de date.

JavaScript folosește următoarele instrucțiuni condiționale : if – execută comenzile dorite când o condiție este adevărată; if … else – execută anumite comenzi când o condiție este adevărată și alte comenzi când aceasta este falsă; switch – selectează care comandă va fi executată.

Instrucțiunile ciclice utilizate în JavaScript sunt : for – execută codul de un număr specificat de ori; for … in – execută câte un set de instrucțiuni pentru fiecare proprietate dintr-un obiect; while – repetă codul atâta timp cât o anumită condiție este îndeplinită; do … while – întâi execută codul o dată, apoi îl repetă atâta timp cât o anumită condiție este adevărată.

Pe lângă instrucțiunile ”for” și ”while”, mai există și alte instrucțiuni ”complementare” care pot fi executate împreună cu acestea : break – întrerupe definitiv execuția unui ciclu; continue – sare peste instrucțiunile care au mai rămas din ciclul respectiv; label – permite ieșirea dintr-un ciclu cu instrucțiunile ciclice imbricate, la o locație specificată a scriptului; with – se folosește pentru a fi evitată specificarea repetată la referirea unui obiect, când i se accesează metodele sau proprietățile.

Alert, Prompt și Confirm sunt ferestre predefinite de dialog, aparținând direct obiectului ”Window”. Crearea ferestrelor alert se face cu : window.alert(”mesaj”) unde ”mesaj” este textul care apare în fereastra Alert. Fereastra Prompt se crează cu : window.prompt(”mesaj”, ”default”) unde ”mesaj” este textul care apare în fereastră, deasupra casetei de text input, iar „default” este textul care apare în caseta input. Fereastra de confirmare se crează cu : window.confirm(”intrebare”). În această fereastră va apărea textul ”intrebare” și două butoane ”OK” și ”Cancel”.

În JavaScript există două tipuri de funcții : predefinite și create de programator. Pentru crearea unei funcții se folosește cuvântul function, urmat de numele pe care programatorul îl dă funcției, apoi se adaugă între paranteze rotunde argumentele sau atributele funcției și între acolade corpul funcției care conține codul ce trebuie executat. O funcție care returnează un rezultat folosește pentru aceasta instrucțiunea return. Aceasta specifică valoarea pe care funcția trebuie să o returneze, când este apelată.

Obiectele din JavaScript sunt catalogate în trei categorii principale : obiecte pe partea de client, obiecte pe partea de server și obiecte esențiale. Obiectele esențiale predefinite sunt : string, math, date, array și global.

String este utilizat pentru a prelua text. Proprietatea acestuia este length care returnează numărul de caractere dintr-un șir. Metodele sunt : anchor(), big(), blink(), bold(), charAt(), charCodeAt(), concat(), fixed(), fontcolor(), fontsize(), fromCharCode(), indexOf(), italics(), lastIndexOf(), link(), match(), replace(), search(), slice(), small(), split(), strike(), sub(), substr(), substring(), sup(), toFixed(n), toLowerCase(), toUpperCase().

Obiectul Array, numit și matrice sau tablou de date, se folosește pentru a stoca mai multe valori într-un singur nume de variabilă. Are următoarele metode : concat(), join(), reverse(), slice(), sort().

Obiectul Date se folosește pentru a lucra cu data zilei și timp. Metodele obiectului sunt : Date(), getDate(), getDay(), getMonth(), getFullYear(), getHours(), getMinutes(), getSeconds(), getMilliseconds(), getTime(), getTimezoneOffset(), getUTCDate(), parse(), setDate(), setFullYear(), setHours(), setMilliseconds(), setMinutes(), setMonth(), setSeconds(), setTime(), etc.

Obiectul Math include constante matematice și funcții. Proprietățile acestuia sunt : E, LN2, LN10, LOG2E, LOG10E, PI, SQRT1_2, SQRT2. Metodele sunt : abs(x), acos(x), asin(x), atan(x), atan2(y,x), ceil(x), cos(x), exp(x), floor(x), log(x), max(x,y), min(x,y), pow(x,y), random(), round(x), sin(x), sqrt(x), tan(x).

Obiectul de tip Global grupează proprietățile și metodele de nivel cel mai înalt, fără obicet părinte, cum sunt funcțiile. Are 3 proprietăți : Infinity, NaN, undefined. Metodele acestuia sunt : escape(), eval(), isFinite(), isNaN(), Number(), parseFloat(), parseInt(), string(), unescape().

JavaScript vede fereastra browser-ului ca pe un obiect window, acesta conținând anumite elemente, cum ar fi bara de stare. În fereastra browser-ului putem afișa un document HTML. Această pagină din interiorul navigatorului este un obiect document. Obiectul Windowlasă conținutul unui document web în grija obiectului Document, care este responsabil de conținutul afișat pe o pagină și se poate folosi pentru afișarea de pagini HTML dinamice. Pentru a desemna obiectul sau proprietatea curentă care se folosește, se adaugă cuvântul this urmat de caracterul punct și apoi numele proprietății : this.nume_proprietate .

Obiectul document are următoarele proprietăți : alinkColor, all, anchors, applets, bgcolor, classes, cookie, domain, embeds, fgcolor, forms[], formName, height, ids, images, lastModified, layers, linkColor, links, plugins, referrer, tags, title, URL, vlinkColor, width. Metodele acestuia sunt : captureEvents(), close(), contextual(), getSelection(), handleEvent(), open(), releaseEvents(), routeEvent(), write(), writeln().

Formularele pot fi considerate și tratate ca obiecte dintr-un document HTML, acestea fiind sub-obiecte ale obiectului ”document”, astfel se apelează împreună cu acesta.

DOM sau Document Object Model definește o structură logică și standardizată a documentelor, o ordine prin care putem parcurge și edita elemente și conținut din documente HTML sau XML. Structura DOM este o ierarhie de obicete, compatibilă cu a limbajului JavaScript sau cu a oricărui limbaj bazat pe obiecte.

Obiectul Navigator reprezintă programul, aplicația browser folosită pentru vizualizarea rezultatelor. Cu acest obiect, se pot găsi informații despre denumirea și versiunea browser-ului, precum și alte informații utile în practică. La rândul său, are două sub-obiecte : Plugin și Mimetype.

Navigatoarele web au caracteristica ”History” care permite urmărirea locațiilor care au fost vizitate. Acest obiect conține un tablou sau Array cu paginile vizitate de client, în cadrul unei ferestre, un istoric al paginilor vizitate. Obiectul History permite acest lucru. Obiectul Location conține date despre originea unei pagini web, stochează informații despre o adresă URL dintr-o fereastră specifică.

Numele obiectului Mimetype vine de la Multipurpose Internet Mail Extensions și permite accesarea informațiilor despre tipurile MIME pe care le recunosc modulele plugin ale browserului. Obiectul Plugin face referire la modulele plugin instalate pentru browser și conține un tablou de elemente și tipuri MIME tratate de fiecare modul plugin instalat. Obiectul Anchor este un text sau o imagine în pagina HTML care poate fi ținta unei legături hypertext. Obiectul Area permite definirea unei suprafețe dintr-o imagine ca fiind o hartă de imagini. Atributul ”href” al unui obiect ”<area>” este încărcat într-o fereastră țintă atunci când vizitatorul execută click pe o locație specificată. Obiectul Applet reprezintă echivalentul JavaScript al etichetei HTML <applet>. Acest obiect adresează un applet Java. Aceste obiecte nu au metode proprii, dar în practică se poate folosi JavaScript pentru a accesa metodele unui anumit applet scris în limbajul Java. Obiectul Layer este un obiectu cu anumite particularități, care permite limbajului JavaScript să acceseze straturile din interiorul documentului. Obiectul Link permite lucrul cu legături în cadrul codului. Deoarece un link reprezintă un URL care face referire la o altă pagină sau la altă destinație, este asemănător cu obiectul ”Location”.

Evenimentele sunt elemente foarte importante în programarea JavaScript. Sunt acțiuni realizate de cele mai multe ori de vizitatorul paginii. Cu ajutorul ”event-handlers”, JavaScript răspunde la unele evenimente. Aceste handlere se adaugă ca atribute ale etichetelor HTML. Evenimentele ce pot fi folosite în programarea JavaScript sunt : onClick, onDblClick, onMouseOver, onMouseOut, onMouseMove, onMouseDown, onMouseUp, onFocus, onChange, onBlur, onLoad, onUnload, onKeyDown, onKeyUp, onKeyPress, onSubmit, onReset, onSelect, onAbort, onError, onMove, onResize.

În JavaScript, toate imaginile sunt reprezentate într-o matrice numită images. Este o proprietate a obiectului ”document”. Pentru indexarea în matrice sau tablou, fiecare imagine de pe o pagină web are un anumit număr sau index. Imaginile dintr-un document HTML sunt considerate obiecte Image.

Formularele sunt elemente HTML prin care utilizatorii interacționează, cu ajutorul controalelor. Obiectul Form este mijlocul prin care se interacționează cu acest element HTML în scripturile JavaScript. Proprietățile acestui obiect sunt : action, elements, encoding, length, method, name, target. Iar metodele sunt : handleEvent(), reset(), submit().

Un browser este prezentat într-o fereastră, iar orice acțiune ar întreprinde clientul, se execută în interiorul acelei ferestre. Obiectul Window este considerat obiectul de nivel ierarhic cel mai înalt în ierarhia obiectelor JavaScript pe partea de client și conține toate celelalte obiecte pe partea de client. Cu JavaScript, se poate deschide o nouă fereastră în care se încarcă o pagină HTML, cu dimensiuni, poziție și proprietăți stabilite de programator, numită fereastră pop-up.

Valorile majorității variabilelor dintr-un script dispar atunci când fereastra browserului este închisă. Spre deosebire de acestea, valorile variabilelor cookie se pot păstra un timp indefinit. Așadar, cookie-urile sunt fișiere care conțin diferite date despre un anumit site vizitat și valori de variabile, salvate pe calculatorul vizitatorului.

ID-ul este un atribut ce poate fi utilizat în etichetele HTML. Prin valoarea dată acestui atribut, se atribuie un nume unic etichetei respective. Acesta poate face o legătură între JavaScript și orice etichetă HTML din document. Pentru a face referire într-un script la o etichetă, prin intermediul id-ului, se folosește sintaxa : document.getElementById(”id”) .

getElementsByTagName este o funcție sau metodă JavaScript, care obține și face referire la toate elementele HTML a căror etichetă este specificată ca parametru între paranteze.

JavaScript se poate folosi în interiorul unui document HTML, dar și într-un document PHP. Codul PHP este executat pe server, iar datele de ieșire sunt transmise la navigatorul web. Codul scriptului JavaScript este executat de browser pe calculatorul utilizatorului. Punând la un loc aceste două limbaje, se pot obține scripturi JavaScript dinamice, cu rezultate în funcție de datele primite și procesate de server.

2.5.2 Ajax

Ajax este un acronim de la Asynchronous JavaScript And XML. Este o combinație de mai multe limbaje, client side și server side, utilizate împreună, bazate în principal pe JavaScript. Această tehnologie își are originea în anii 1998 – 2000, când a fost dezvoltată și utilizată de Microsoft în aplicația Outlook Web Acces. Dar termenul ”AJAX” a fost creat în 2005, devenind popular și cunoscând o dezvoltare accentuată după ce a fost folosit de Google în aplicațiile sale : Google Maps, Gmail.

Cu ajutorul tehnologiei Ajax, pot fi încărcate și modificate doar anumite părți din pagină, prelucrate și generate de server, fără a reîncărca toată pagina web. Beneficiile aduse de acest lucru sunt încărcarea mai rapidă a conținutului în pagină și reducerea traficului.

Toate scripturile Ajax folosesc obiectul XMLHttpRequest. Scopul acestui obiect este de a permite JavaScript să formuleze cereri HTML și să le trimită la server, dând posibilitatea comunicării cu serverul și afișarea datelor primite fără a fi necesară reîncărcarea paginii. În plus, pot fi procesate în paralel mai multe conexiuni cu serverul, fără a bloca browserul până la primirea răspunsului. Proprietățile acestui obiect sunt : onreadystatechange, readyState, responseText, responseXML, status, statusText. Iar metodele sunt : abort(), getAllResponseHeaders(), getResponseHeader(x), open(method, URL, flag), send(content), setRequestHeader('etichetă' , 'valoare').

Ajax mai constă în folosirea unui limbaj pe partea de server. Poate fi utilizat în mai multe aplicații care pot fi incluse într-o pagină web, dar cel mai des folosit este pentru navigarea de la un conținut la altul al site-ului. Navigarea se face prin link-uri, care conțin o adresă URL către pagina sau conținutul respectiv. Metoda standard de transmitere a datelor adresei URL din link-uri la server este GET. Un alt mod de trimitere a datelor dintr-o pagină web la server este metoda POST. Diferența față 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ă metoda setRequestHeader. Aceasta trimite un Header la server care îi spune să recunoască datele trimise de send() ca și cum au fost trimise prin POST

ca parametru al metodei send(), în loc de null, se adaugă datele care trebuie trimise prin post.

În general, datele dintr-un formular sunt trimise prin POST la un script de pe server specificat în atributul ”action” al etichetei ”form”. Cu Ajax, se poate folosi atât POST, cât și GET. Dezavantajul este că prin GET conținutul care poate fi trimis este limitat, iar în formulare pot fi adăugate cantități mari de date, mai ales în ”textarea”. De aceea este preferabilă folosirea metodei POST. Pentru preluarea datelor din casete se poate folosi : document.nume_form.nume_caseta.value sau document.getElementById(id_caseta).value.

Folosind tehnologia Ajax, și anume combinația de limbaje HTML, CSS, JavaScript și PHP, se poate realiza copierea unei imagini pe server și afișarea ei în pagină fără ca aceasta să fie reîncărcată. Asta pentru că imaginile nu se pot încărca pe server direct cu Ajax.

2.5.3 CGI

CGI sau Common Gateway Interface este un standard de comunicare între documentele Web și scripturile CGI scrise de programatori. Un program CGI este doar un program care comunică într-un mod oarecare cu documentele Web. Acest standard permite realizarea unor pagini Web mai dinamice și mai interactive.

Aplicațiile CGI pot fi scrise în orice limbaj care poate fi executat pe calculatorul care este server Web. Alegerea limbajului depinde de tipul aplicației. Perl, de exemplu, este bun pentru manipularea șirurilor și fișierelor, în timp ce C este bun pentru aplicații mari și complexe. Alte limbaje pe care aplicațiile CGI le pot folosi sunt : C++, Tcl, Python, Shell scripts, Visual Basic, Applescript. Aceste limbaje pun la dispoziția programatorului mijloace de a îndeplini atât cerințele cuprinse în specificațiile CGI, cât și atingerea performanțelor maximale ale acestei interfețe.

În funcție de complexitate, aplicațiile CGI se împart în :

aplicații simple : contoare de vizitare, programe care generează sursa HTML pentru lucruri simple precum scrierea datei, orice script Perl, orice program C

aplicații de complexitate medie : generarea dinamică a imaginilor, generarea unor întregi pagini HTML, realizarea animațiilor

aplicații complexe : comunicarea cu bazele de date, generarea dinamică a mai multor pagini HTML, motoare de căutare, etc.

Toate datele transmise serverului de către browser, precum datele dintr-un formular, sunt transmise de server către scriptul CGI fie prin intermediul unor variabile de mediu, fie pe calea fișierului standard de intrare <STDIN> .

Atunci când un browser apelează un script CGI de la server, serverul pornește programul CGI într-un proces independent. Datorită faptului că la un moment dat, pe server un script poate rula pentru mai mulți utilizatori, serverul transmite fiecărui proces în care este executat scriptul, toată informația de care acesta are nevoie pentru a deservi clientul pentru care a fost lansat procesul. Pentru că serverul creează de fiecare dată câte un nou mediu pentru fiecare proces în care este executat scriptul, calea cea mai simplă de transmitere a informației server – script, se face prin intermediul variabilelor de mediu. Acestea sunt :

AUTH_TYPE – conține metoda de autentificare folosită pentru a accepta cererea browserului, dacă este folosită vreuna.

CONTENT_LENGTH – lungimea conținutului furnizat de utilizator în pagina Web care apelează scriptul CGI.

CONTENT_TYPE – conține tipul fișierului care însoțește cererea browserului către script.

GATEWAY_INTERFACE – conține versiunea CGI care va fi utilizată.

PATH_INFO – conține informații suplimentare privind o cale necesară scriptului CGI.

PATH_TRANSLATED – conține calea completă către PATH_INFO.

QUERY_STRING – conține data furnizată de utilizator atunci când metoda folosită este GET. Informația transmisă sub formă de șir este adăugată după un semn de întrebare (?) la URL-ul de apelare.

REMOTE_ADDR – memorează adresa IP a mașinii pe care rulează aplicația browser care a apelat scriptul CGI.

REMOTE_HOST – memorează numele domeniului, căruia îi aparține mașina pe care rulează aplicația browser care a apelat scriptul.

REMOTE_IDENT – memorează numele de intrare al utilizatorului, numai dacă serverul Web suportă identificare.

REMOTE_USER – conține metoda folosită la apelarea scriptului CGI. Aceasta poate să conțină una dintre metodele de apelare validă pentru HTTP : GET, HEAD, POST, PUT, etc.

SCRIPT_NAME – memorează calea virtuală și numele scriptului CGI care este executat.

SERVER_NAME – conține fie numele, fie numele documentului și adresa IP a mașinii pe care rulează aplicația.

SERVER_PORT – conține numărul portului pe care browserul Web a trimis cererea către server.

SERVER_PROTOCOL – conține numele și versiunea protocolului utilizat pentru a face apelul scriptului CGI.

SERVER_SOFTWARE – memorează numele și versiunea aplicației de server Web care execută scriptul CGI.

2.5.4 XML

XML sau eXtensible Markup Language este un meta-limbaj utilizat în activitatea de marcare structurală a documentelor, a cărei specificație a fost dezvoltată începând cu 1996 în cadrul Consorțiului World Wide Web (W3C) , de un grup de cercetare condus de Jon Bosak de la Sun Microsystems. Prima versiune de XML a fost standardizată în februarie 1998, ulterior acest standard a mai fost revizuit de două ori în octombrie 2000 și în februarie 2004.

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 a fost elaborat pentru : separarea sintaxei de semantică pentru a furniza un cadru comun de structurare a informației, construirea de limbaje de mark-up pentru aplicații din orice domeniu, structurarea informației în viitor, asigurarea independenței de platformă și suport pentru internaționalizare.

Un document XML este format din marcaje sau tag-uri și date caracter. Un marcaj este un șir de caractere, delimitat de ”<” și ”>” , iar datele caracter reprezintă conținutul din interiorul marcajelor. În XML, rolul marcajelor nu este de a afișa datele conținute, ci au alte scopuri : asigură o sintaxă simplă și standardizată pe care analizatoarele XML o pot folosi pentru a utiliza informația stocată și asigură o metodă de a descrie structura ierarhică a conținutului prin împărțirea informației în părți numite elemente care mai departe sunt descrise prin atribute.

Tipurile de marcaje sunt : elemente, atribute, comentarii, entități, secțiuni CDATA, instrucțiuni de procesare, declarația tipului de document. Elementele sunt folosite atât pentru reținerea de informații,cât și pentru definirea structurii. Atributele au rolul de a descrie elementele. Sunt aceleași cu atributele din HTML. Referințele la entități sunt de fapt pointeri către entități. În XML, sunt unități de text, o unitate putând fi orice, de la un singur caracter la un întreg document sau chiar o referință la un alt document. Instrucțiunile de prelucrare sunt un tip special de marcaj care conțin informații despre anumite aplicații ce urmează să fie executate. Secțiunile CDATA sunt folosite pentru includerea de blocuri de text conținând caractere care altfel ar fi recunoscute ca marcaje. Declarația tipului de document este un marcaj special ce poate fi inclus în documentele XML cu scopul de a specifica existența și locația definiției tipului de document. Definiția tipului de document este un set de reguli care definesc structura unui document XML, iar declarația tipului de document are rolul de a preciza analizatorului ce set de reguli trebuie să folosească pentru verificare și validare. Un fișier DTD (Document Type Definition) conține tipuri de definiții : ELEMENT, ATTLIST, ENTITY, NOTATION.

Domeniile de nume XML furnizează o metodă de reutilizare a marcajelor, eliminând conflictele între numele elementelor și atributelor folosite în oricare din marcaje. Pentru a putea face distincție între elementele ce reprezintă concepte diferite, vor fi încadrate fiecare într-un domeniu de nume sau namespace. Fiecare domeniu de nume va vea asociat un URI unic. Acest URI nu pointează întotdeauna spre un fișier anume, ci definește un domeniu de nume pur formal. XML permite definirea de namespace-uri multiple pentru un element.

În documentele de mari dimensiuni, în care majoritatea elementelor aparțin de același namespace, devine incomodă prefixarea tuturor tagurilor cu același prefix. Rezolvarea acestei probleme este asignarea unui namespace implicit pentru un element și tuturor copiilor lui. Definirea unui namespace implicit se face cu atributul xmlns, fără a avea niciun prefix.

O XML Schema definește : elementele care pot să apară într-un document, atributele pe care pot să le aibă elementele dintr-un document, care elemente au copii și care sunt aceștia, ordinea copiilor unui element, numărul de copii, dacă un element este vid sau poate conține un text, tipurile elementelor și atributelor, valorile implicite și fixe ale elementelor și atributelor. XML Schema are următoarele tipuri predefinite : xs:string, xs:decimal, xs:integer, xs:boolean, xs:date, xs:time.

Tipul numeric are următoarele restricții : minInclusive, minExclusive, maxInclusive, maxExclusive, totalDigits, fractionDigits. Tipul string are următoarele restricții : length, minLength, maxLength, pattern, whiteSpace.

XPath este un limbaj de expresii utilizat pentru a selecta porțiuni dintr-un document XML sau pentru a calcula valori. Este structurat pe reprezentarea sub formă de arbore a documentului XML, oferind posibilitatea de a naviga în acest arbore, prin selecția nodurilor XML care satisfac diferite criterii.

XSL sau eXtensible Stylesheet Language este reprezentat prin 3 limbaje : XSLT ( XSL Transforms), XPath, XSL-FO. Motorul XSL primește ca intrare un fișier XML, un fișier cu stilul de formatare și eventuali parametrii pentru rulare. Există trei modalități în care un document XML poate fi transformat într-un alt tip de document prin aplicarea stylesheet XSLT :

documentul XML și stylesheet-ul asociat sunt transmise aplicației client căruia îi revine sarcina de a realiza efectiv transformarea în conformitate cu informația din stylesheet-ul XSLT

aplicarea stylesheet-ului XSLT se face chiar pe server, documentul rezultat fiind transmis clientului

transformarea documentului XML cu ajutorul unei aplicații externe și plasarea pe server a documentului rezultat, urmând ca acesta să fie transmis clientului.

Similar Posts

  • Implementarea Unei Infrastructuri Microsoft Exchange Server 2010

    CUPRINS 1. INTRODUCERE…………………………………………………………………………………….3 1.1 Context…………………………………………………………………………………………………………….3 1.2 Tema proiectului………………………………………………………………………………………………..5 2. FUNDAMENTAREA TEORETICĂ……………………………………………………….6 2.1 Sistemul de operare Windows Server 2008 R2………………………………………………………6 2.1.1 Prezentare generală……………………………………………………………………………….6 2.1.2 Versiunile sistemului de operare Windows Server 2008……………………………7 2.2 Active Directory………………………………………………………………………………………………10 2.2.1 Introducere în Active Directory……………………………………………………………10 2.2.2 Rezolvare de nume……………………………………………………………………………..11 2.2.3 Infrastructura Active Directory…………………………………………………………….13 2.2.4 Accesul la resurse……………………………………………………………………………….15 2.3 Microsoft Exchange 2010…………………………………………………………………………………18 2.3.1…

  • Aplicatie Informatica Privind Evidenta Utilajelor

    INTRODUCERE Una dintre problemele fundamentale legate de procesele finalizate care însoțesc viața și dezvoltarea societății omenești este ˝Problema conducerii˝, având ca rezultate creșterea gradului de organizare a materiei, mărirea cantității de informație despre fenomene și procese și implicit reducerea entropiei – măsură a dezorganizării. Datorită creșterii complexității activității economico-sociale și a volumului acesteia, utilizarea calculatoarelor…

  • Realizarea Unui Proiect Informatic Pentru Calculul Salariilor

    Introducere ‘’In our life, each day, computers are something usual, even indispensable in some cases. We may say that we live into a computer society. The role of informatics system is to deliver the information between different elements. ‘’ Importanta sistemelor informatice rezida in principal in intelegerea efectiva si responsabila de catre toti conducatorii (managerii)…

  • Grupuri Finite

    Introducere Lucrarea tratează teoria grupurilor finite, cu definirea structurilor fundamentale și caracterizarea instrumentelor de investigație specifice. Studiul grupurilor finite are aplicații în diverse domenii ale matematicii și în alte științe precum fizica și chimia. În primul capitol am făcut o scurtă introducere în teoria grupurilor definind noțiunea de grup, produsul direct a două grupuri, morfisme…

  • Modalitate Moderna de Comert

    Cuprins 1. Introducere Arhitectura unui sistem de Comerț Electronic Comerțul Electronic – generalități Magazinul electronic (e-shop) Tehnologii folosite la implementarea sistemelor de comerț electronic Protocoale de cumpărare Arhitectura sistemelor informatice pentru magazine online 2. Tehnologii informatice și instrumente folosite în proiectarea magazinului virtual Tehnologii informatice în proiectarea magazinului virtual Instrumentele folosite în proiectarea magazinului virtual…