Schimbul de produse și efectuarea de activități între diferite persoane, de-a lungul istoriei omenirii, a cunoscut mai multe forme. Dacă la început,… [306082]

[anonimizat]-a lungul istoriei omenirii, a cunoscut mai multe forme. [anonimizat], schimbul luă forma trocului prin care producătorii își utilizau surplusul de producție pentru a-[anonimizat] a [anonimizat]. [anonimizat] a clasei sociale a negustorilor, cei care intermediază trecerea bunurilor de la producători la consumatori și a cunoscut o [anonimizat]-a lungul timpului. Evoluția pe care a avut-o ulterior societatea a permis îmbunătățirea continuă a formelor de comerț.

[anonimizat], într-[anonimizat], [anonimizat], publicitate, vânzări, [anonimizat].

Obiectivele principale ale unei aplicații de comerț electronic ar trebui să vizeze creșterea eficienței economice a [anonimizat] a informațiilor, oferirea unei interfețe prietenoase care să faciliteze schimbul de informații dintre diversele categorii de utilizatori ai aplicației (cumpărători și furnizori).

[anonimizat], deoarece consider că acest gen de aplicație este și va fi la ordinul zilei în anii care urmează deoarece comerțul electronic este în continuă dezvoltare. [anonimizat], [anonimizat], [anonimizat]. Dintre avantajele comerțului electronic amintim următoarele: [anonimizat], clienții au timpul de a [anonimizat] a cumpăra ceva.

CAPITOLUL 1

COMERȚUL ELECTRONIC

1.1. Concepte și definiții

Comerțul electronic este unul dintre cele mai importante aspecte ale Internetului. [anonimizat]. [anonimizat]. E-commerce-ul oferă posibilitatea consumatorului de a [anonimizat] a fi nevoit să folosească mijloacele tradiționale (telefon, fax, mail). Termenul e-[anonimizat], livrarea eletronica a produsului (când este cazul) etc.

[anonimizat] o tehnologie modernă de a [anonimizat], comercianților și consumatorilor de a reduce costurile tranzacțiilor o dată cu îmbunătățirea calității bunurilor și serviciilor și creșterea vitezei de livrare. Termenul poate fi folosit și în cazul utilizării rețelelor de computere, pentru căutarea și regăsirea informațiilor pentru suportul deciziei umane său instituționale.

În varianta actuală, comerțul electronic poate fi definit că fiind procesul de vânzare, cumpărare, transfer și schimb de produse, servicii și /său informație prin intermediul rețelelor de calculatoare, incluzând Internetul. Comerțul electronic poate fi definit pornind de la următoarele perspective:

Comunicațiile

Prin prisma comunicațiilor , comerțul electronic reprezintă livrarea de bunuri, servicii, informație său efectuarea de plăți prin rețele de computere său prin alte mijloace electronice.

Comerțul, schimbul

Din perspectivă comercială, comerțul electronic oferă posibilitatea vânzării și cumpărării de produse, servicii și informație prin intermediul Internetului și prin intermediul altor servicii online.

Procesul de business

Din perspectivă procesului de business, comerțul eletronic este modalitatea de a face afaceri în mod electronic, procesele de business având loc prin intermediul rețelelor electronice, substituindu-se astfel proceselor fizice de business cu informația.

Serviciul

Prin prisma serviciului oferit, comerțul electronic este un mijloc care îndeplinește dorința guvernelor, firmelor, consumătorilor și managementului de a reduce costurile serviciului, în același timp îmbunătățindu-se calitatea relației cu clientul și viteză de livrare a serviciului.

Procesul de învățare

Din această perspectivă, comerțul electronic asigură educație și training online în școli, universități și alte organizații, incluzând diverse afaceri.

Colaborarea

Din această perspectivă, comerțul electronic este bază colaborării inter și intraorganizationale.

Comunitatea

Din perspectivă comunității, comerțul electronic oferă unloc unde membrii diverselor comunități pot învăța, tranzacționa și colaboră.

1.2.Tipuri de comerț electronic

În prezent, cea mai comună clasificare a comerțului electronic este aceea după natura tranzacțiilor sau interacțiunilor dintre participanți. Se disting următoarele tipuri de comerț electronic:

Business-to-Business(B2B)

Toți participanții în comerțul business-to-business sunt fie companii, fie alte organizații. De exemplu, câteva dintre aplicațiile folosite de compania Dell și Mark&Spencer implică tranzacții B2B în relația cu proprii furnizori. Astăzi peste 85% din volumul comerțului electronic este B2B.

Business –to-Consumer(B2C)

Comerțul electronic business-to-consumer include tranzacțiile de produse și servicii cu amănuntul de la companii catr cumpărătorii individuali. Cumpărătorul ce achiziționează produse și servicii de la firma Dell online sau de la Amazon.com este un consumator tipic(consumer) pentru comerțul eletronic de tipul B2C. Acest tip de comerț electronic este cunoscut și sub numele de e-tailing.

Business-to-Business-to-Consumer (B2B2C)

În comerțul electronic de acest tip, o companie pune la dispoziția unui client, tot companie, produsele și serviciile de care are nevoie. Clientul companie, la rândul lui, le pune la dispoziția propriilor clienți, fără a adăuga însă nici o valoare. Un exemplu de B2B2C este o companie care plătește AOL pentru a furniza pentru angajații săi accesul la Internet. Astfel, fiecare angajat primește accesul la Internet fără să plătească, separat, direct către AOL. Un alt exemplu estevanzarea de la vânzătorul cu ridicată către vânzătorul cu amănuntul care la rândul lui furnizează produsele consumatorului final ( wholesaler-to-retailer-to-consumer), cum ar fi liniile aeriene sau companiile de turism care furnizează servicii turistice partenerilor de afaceri ( bilete de avion, camere de hotel). Acești parteneri de afaceri ( agențiile de turism) vând mai departe serviciile turistice către clienții finali. În literatura de specialitate, de multe ori, termenul B2B include și B2B2C.

Consumer-to Business (C2B)

Această categorie include consumatorii individuali care folosesc Internetul pentru a vinde produse și servicii către companii sau alți consumatori individuali care caută vânzători dispuși să negocieze pentru produsele și serviciile puse în vânzare. Priceline.com este un exemplu bine cunoscut pentru a ilustra acest gen de tranzacții C2B.

Consumer-to-Consumer (C2C)

În categoria C2C, consumatorii tranzacționează direct cu alți consumatori. Exemplele de comerț electronic consumer-to-consumer include persoanele individuale care își vând online casele, mașinile, proprietățile sau alate bunuri. De xemplu, publicitatea online pentru serviciile pe care le oferă o persoană, vânzarea pe Internet a cunoștiințelor și expertizei într-un domeniu sunt alte exemple de C2C.

Peer-to-Peer Applications

Tehnologia peer-to-peer poate fi utilizată atât în comerțul electronic C2C, cât și în comerțul electronic B2B și B2C. Această tehnologie permite computerelor pereche legate în rețea să acceseze aceleași fișiere de date și să le proceseze în același timp. De exemplu, într-o aplicație de acest gen, comerțul C2C, persoanele pot schimba electronic muzica, video, prograame și alte bunuri digitale.

Mobile Commerce

Tranzacțiile de comerț electronic și alte activități conduse în parte său integral într-un mediu wireless sunt cunoscute sub denumirea de mobile commerce sau m-commerce. De exemplu, consumatorii individuali pot folosi Internetul ( accesat prin telefon mobil) pentru a-și plăti datoriile către bancă sau pentru a comanda o carte la Amazon.com. Multe dintre aplicațiile m-commerce implică aparatura mobilă. Dacă aceste tranzacții au drept țintă indivizii dintr-o anumită locație, la un moment dat, ele se numesc location-based commerce sau l-commerce. Mulți defines m-commerce-ul ca fiind totalitatea tranzacțiilor efectuate de către indivizi în afara casei sau locului de muncă. Aceste tranzacții pot fi făcute prin sistemele wireless sau wireline.

Intrabusiness e-commerce

Categoria comerțului electronic intrabusiness include toate activitățile interne dintr-o organizație care presupun schimburi de bunuri, servicii, informație între diversele sale unități, divizii, departamente și indivizi. Activitățile pot varia de la vânzarea produselor organizației către angajați, la training online. De regulă, comerțul electronic intrabusiness este realizat prin Intraneturi și portaluri de corporație.

Business-to-Employees (B2E)

Categoria business-to-employees este o subcomponenta a categoriei intrabusiness în care companiile livrează servicii, informative sau produse propriilor angajați. O categorie majoră în cadrul acestui tip de comerț este categoria angajatiilor “mobili” ( de exemplu reprezentanți de zonă). Suportul comerțului electronic dat acestei categorii de angajați poartă numele de B2ME ( business-to-mobile-employees).

Collaborative Commerce

Când diverși indivizi sau grupuri comunică sau colaborează online atunci sunt angrenați în comerț colaborativ sau c-commerce. De exemplu, parteneri de afaceri aflați în locații diferite pot să colaboreze la designul unui produs, utilizând “screen sharing-ul” sau pot să conducă inventare online sau să facă împreună previziuni privitoare la cererea produselor proprii pe piață.

Nonbusiness e-commerce

Un număr din ce în ce mai mare de instituții nonbusiness cum ar fi instituțiile academice, organizațiile nonprofit, organizațiile religioase, organizațiile sociale și agențiile guvernamentale utilizează comerțul electronic pentru a reduce cheltuielile sau pentru a-și îmbunătăți propriile operații și servirea clienților.

E-learning

În e-learning, trainingul și educația formală sunt furnizate online. E-learning-ul este utilizat pe scară largă de către organizații pentru trainingul angajaților ( numit e-training) și practicat de asemenea intens la universități, așa numitele universități virtual.

Exchange-to-Exchange (E2E)

Desigur, un schimb descrie o piață publică electronică cu mulți vânzători și cumpărători. După cum se întâmpla în comerțul B2B, este logic ca schimburile să fie conectate unele cu altele. Comerțul electronic E2E este un sistem formal care conectează două sau mai multe schimburi între ele, cu acces deschis publicului larg.

E-government

În comerțul electronic e-government, o entitate guvernamentală cumpără sau furnizează bunuri, servicii sau informație de la/catr diverse companii ( business-uri)(G2B) sau de la/către cetățeni (G2C).

Internetul a devenit un canal de comerț cu putere incontestabilă în a facilita și creste vânzările unei game din ce în ce mai largi de produse și servicii. În literature de specialitate se identifică următoarele modele de afaceri incluse în comerțul electronic:

Magazin electronic (e-shop)

Aprovizionare electronica (e-procurement)

Magazine universal electronic (e-mall)

Piața unui terț (3rd party marketplace)

Comunități virtual (virtual communities)

Furnizor de servicii cu valoare pentru canalele de comerț electronic ( value chain service provider)

Platforma de colaborare

Brokeraj de informații și alte servicii.

1.3.Avantaje și dezavantaje ale comerțului electronic

1.3.1. Necesitatea comerțului electronic

Comerțul electronic este elementul de bază al noii economii, iar Internetul reprezintă principalul mediu prin care acesta își face simțită prezența.

În ceea ce privește avantajele utilizării comerțului electronic, acestea pot fi analizate din trei puncte de vedere: al companiei, al consumatorului și al societății.

1.3.2.Avantajele companiei

–       extinderea zonelor de activitate pentru piețele naționale și internaționale – cu un capital minim, o companie poate rapid și ușor să-și localizeze clienții, furnizorii potriviți și cei mai buni parteneri de afaceri din lume;

–       creșterea vitezei de comunicare;

–       îmbunătățirea eficienței (datele sunt în format electronic, reducând astfel, de exemplu, erorile de tastare);

–       reducerea inventarului și a managementului stocurilor;

–       reducerea timpului dintre cheltuirea capitalului și primirea produselor/serviciilor;

–       reducerea unor costuri de creare, procesare, distribuție, stocare, regăsire a informațiilor bazate pe hârtii (prin e-mail se reduc costuri privind mesageria, iar Electronic Data Interchange determină reducerea stocurilor și costurilor legate de ciclul de cumpărare);

–       întărirea relațiilor cu furnizorii și clienții (site-ul Web conține informații actualizate, utile tuturor părților, iar Electronic Data Interchange implică o strânsă legătură a partenerilor pentru stabilirea standardelor de comunicare);

–       o cale rapidă și modernă de furnizare a informațiilor despre companie (prin paginile de Web);

–       canale alternative de vânzare (prin Web).

1.3.3.Avantajele cumpărătorului

–       efectuarea rapidă de cumpăraturi sau alte tranzacții la orice oră, în orice zi;

–       căutare rapidă de produse și servicii, cu posibilități de comparare a prețurilor și calităților potrivite;

–       transport rapid a produselor, mai ales al celor digitale;

–       permite participarea clienților la licitații virtuale, la reuniuni electronice din comunitățile virtuale, unde au loc schimb de idei, de experiențe;

–       comoditate sporită;

–       facilitează competiția, având ca rezultat reduceri substanțiale.

1.3.4.Avantajele comerciantului în urma introducerii comerțului electronic

–       atragerea de noi clienți prin intermediul unui nou canal de distribuție;

–       permite persoanelor angajate să lucreze de acasă, reducându-se astfel traficul și poluarea;

–       permite ca unele mărfuri să fie vândute la prețuri mai mici, astfel încât și oamenii cu venituri mai mici să poată cumpăra mai mult, ridicându-le standardul de viață;

–       permite oamenilor din lumea a treia și a celor din zonele rurale să aibă acces la produse și servicii, care altfel nu le-ar fi fost accesibile;

–       facilitează furnizarea de servicii publice, cum ar fi sănătatea, educația, distribuirea serviciilor sociale ale guvernelor la un cost redus și cu o calitate îmbunătățită.

1.3.5.Avantaje generale ale comerțului electronic

–          Internet-ul, mediul prin care comerțul electronic se realizează, este omniprezent, accesibil și ieftin;

–          accesul la resursele oferite de comerțul electronic se poate face printr-o gamă largă de tehnologii (calculatoare, PDA-uri, telefoane mobile, televiziune digitală, cabine telefonice);

–          este redus timpul dedicat cumpărăturilor;

–          pot fi adaptate schemele de plăți bazate pe card, deja existente;

–          nu există limitări geografice;

–          intermediarii pot fi eliminați din lanțul de aprovizionare;

–          stocurile pot fi minimizate sau chiar eliminate prin procese de producție „just-in-time”.

1.3.6.Dezavantajele comertului electronic

În ceea ce privește aspectele critice ale dezvoltării comerțului electronic putem să menționăm:

–          securitatea;

–          acceptarea noilor modalități de plată (bani electronici/digitali);

–          infrastructura adecvată de telecomunicații – insuficiența lărgimii de bandă;

–          costurile investiției;

–          cadrul legal și normativ: cadrul fiscal, drepturile asupra proprietății, protecția datelor consumatorului;

–          aspecte lingvistice și culturale;

–          dificultatea de integrare a Internet-ului și a software-ului de comerț electronic cu unele aplicații și baze de date;

–          unele produse software de comerț electronic nu se potrivesc cu unele sisteme hardware și sisteme de operare;

–          imposibilitatea de a atinge obiectele sau de a „mirosi” online pentru clienți;

–          insuficiența suportului de service – de exemplu, experți pentru taxele de comerț electronic sau evaluatori de calitate sunt rari, centre de copyright pentru tranzacțiile de comerț electronic nu există;

–          accesul la Internet este încă scump pentru unii potențiali clienți;

–          în multe domenii de activitate nu sunt suficienți cumpărători și ofertanți pentru a avea operații profitabile de comerț electronic;

În practică, motivele pentru care o companie dorește să se lanseze în comerțul electronic pe Internet sunt următoarele:

posibilitatea de a-și lărgi clientela: pe Internet, orice companie poate avea o prezență globală, beneficiind de clienți din toată lumea. De exemplu, oricine este conectat la Internet poate vizita paginile Web ale unei companii, indiferent de localizarea geografică a utilizatorului.

reduceri drastice ale costurilor pentru distribuție și servicii pentru clienți: utilizarea Internet-ului duce la scăderea semnificativă costurilor, cu toate că prezența pe Internet implică unele costuri inițiale, care diferă în funcție de serviciile dorite (e-mail, Web etc.), dar acestea se amortizează relativ repede. De exemplu, trimiterea prin poștă a unei broșuri de prezentare a produselor implică un cost cu mult mai mare decât cel al trimiterii broșurii în format electronic prin e-mail sau cel al plasării acesteia pe un site Web. Un alt avantaj al costurilor mici de distribuție este posibilitatea de a distribui mult mai multă informație șiactualizarea rapidă a acesteia.

CAPITOLUL 2

PREZENTAREA FIRMEI

2.1. Informații generale

SC Fanberg SRL a fost înființată în anul 1948 de către Earl Tupper în Orlando, Florida. Încă din 1946 Earl Tupper revoluționa cu produsele sale modul de păstrare a hranei. După mai bine de 60 de ani, corporația Tupperware, prin crearea de produse inovative și găsirea unor soluții surprinzătoare pentru bucătărie și cămin, continuă să fie cea mai bună în domeniu.

Puține sunt muncile din bucătărie care nu pot fi făcute mai repede și mai ușor prin folosirea produselor Tupperware. De exemplu, produsele cu ajutorul cărora tăiați alimentele, le mixați sau sfărâmați fără curent electric, vasele care păstrează pentru mai mult timp prospețimea alimentelor, iar linia pentru servire va satisface chiar și persoanele cele mai pretențioase. Este vorba despre linia pentru cuptorul cu microunde, pentru cuptorul tradițional, pentru congelator, pentru frigider, pentru cămară (și vasele prctice pentru transportul hranei, de exemplu la servici, școală). Succesul de-a lungul anilor al produselor Tupperware, cât și planurile de viitor, se sprijină pe 3 elemente de bază : produsul, prezentarea și omul – deoarece omul dă viață produselor noastre.

Tupperware d.o.o., ca reprezentant al țărilor Mediteraneene Centrale (Central Mediterranean Countries), se situează în Zagreb, Croația, unde își desfășoară cu succes activitatea din  anul   1998.

Central Mediterranean Countries – CMC – cuprinde următoarele țări: Slovenia, Croația, Bosnia și Herțegovina, Serbia, Muntenegru, Tunisia, Malta, România și Bulgaria. 
Iubitorii de Tupperware au început să se ocupe de această  activitate chiar înainte de apariția  CMC,  colaborând direct cu Italia. Primele reprezentante s-au deschis în Slovenia și în Malta în anul 1993, în Croația în 1994, Serbia și Muntenegru în 1995,  iar în 1997 Tupperware ajunge în Bosnia și Herțegovina, Tunisia și România, în timp ce Bulgaria ni s-a alăturat în anul 1998.

2.2.Date de identificare-SC Fanberg SRL

Tabelul 1 Date de identificare

2.3.Date și indicatori financiari in RON- SC Fanberg SRL

Tabelul 2 Date și indicatori financiari

2.4.Produse oferite

Firma SC Fanberg SRL oferă o gamă variată de produse pentru bucătărie și casă care ușurează munca doamnelor. Acestea sunt împărțite pe următoarele categorii:

Servire

Smart

Frigider

Congelator

Cuțite

Forme silicon

Microunde

Copii

În excursie

Cămară

2.5.Specificații

Aplicația trebuie să funcționeze cel puțin pe două calculatoare, din care unul să fie calculatorul principal, și să se poată utiliza atât în regim de utilizator cât și ca administrator.

Pe partea utilizatorului să se poată alege produsele dorite pentru a fi comandate, iar partea de administrator să poată avea aceleași atribute ca și partea de utilizator și pe lângă acestea să poată gestiona produsele existente în stoc și utilizatorii (angajații) care folosesc aplicația precum și clienții magazinului.

Aplicația trebuie să fie o aplicație de tip web, distribuită, iar mediul de transport să fie web.

Aplicația ar mai trebui să conțină:

Interfață cu utilizatorul să fie cât mai simplă și ușor de utilizat;

Produsele să fie împărțite pe categorii.

CAPITOLUL 3

LIMBAJE SI TEHNOLOGII FOLOSITE

3.1.HTML (Hypertext Markup Language)

Pentru început să descoperim originea abrevierii HTML – Hypertext Markup Language. Acest limbaj este folosit pentru a formata și prezenta documente pe web. HTML adaugă tag-uri fișierelor ASCII astfel încât să permită afișarea unei varietăți de fonturi, imagini sau sunete prin definirea unor elemente ca header, lista, paragraph și prin implementarea și utilizarea unor legături (linkuri) către alte documente publicate în internet. Mai clar, limbajul HTML este limbajul pe care îl înțeleg aplicațiile de tip browser (ex: Internet Explorer, Netscape Communicator, Opera, etc.) folosite pentru a naviga pe internet. Elementele de bază ale limbajului HTML sunt foarte simple și ușor de reținut și apoi de utilizat; cunoscând doar tag-urile de bază putem construi un întreg site fără probleme. TAG – reprezintă o comandă în cod HTML care indică modul în care va fi interpretată informația la care ea se referă. TAG-uri DE BAZĂ Orice pagină web standard trebuie să conțină 8 tag-uri de bază. Aceste tag-uri trebuie să apară în cadrul fiecărei pagini a unui web site. Aceste tag-uri sunt prezentate mai jos și ele trebuie să apară exact în această cronologie în cadrul paginii web:

<HTML>~ acest tag transmite browser-ului că documentul respectiv este de fapt un document HTML, dând astfel indicații asupra modului în care vor fi interpretate diferite partiții ale fișierului ASCII.

<HEAD>~ acest tag este în fapt tot un mesaj către browser, conținând informații despre document – ca de ex. link-uri sau pagini care trebuie încărcate în prealabil.

<TITLE>~ acest tag este folosit pentru a da o denumire paginii web create; acest nume va apare în partea superioară a fereastrei browser-ului identificând astfel pagina respectivă.

</TITLE>~ acest tag este de fapt închiderea celui precedent; transmite browser-ului ca textul ce trebuie considerat ca titlu al paginii s-a încheiat. Majoritatea tag-urilor HTML folosesc tag-uri corespondente de închidere.

</HEAD>~ tag-ul de închidere al tag-ului corespondent

<BODY>~ acest tag semnalează deschiderea secțiunii corespunzătoare corpului paginii web. Aici se vor introduce informațiile conținute în pagină, textul, grafică și elementele multimedia dorite.

</BODY>~ tag-ul de închidere care transmite browser-ului că nu se mai dorește adăugarea de informație în această pagină.

</HTML>~ acest tag încheie documentul HTML, semnalând browser-ului că nu mai există elemente care trebuie citite sau încărcate.

În cadrul secțiunii <BODY> apar elementele de text și grafică ale paginii noastre.

Pentru a specifica culoarea de fond tag-ul nostru se prezintă astfel:

<Body bgcolor="blue">

Comanda anterioară face ca fondul paginii noastre să devină albastru.

Revenind la controlul culorilor trebuie să mai amintesc unele detalii. Culoarea poate fi specificată fie în limba engleză (denumirile dintr-o listă standard) fie în cod hexazecimal (ex. #0000FF). Formatul în care se transmite comandă este de tip RGB (red green blue): RRGGBB; comanda de mai jos:

<Body bgcolor="#0000FF">

este echivalentă cu:

<Body bgcolor="blue">

În cazul în care vrem ca pagina să aibă un aspect mai personalizat putem folosi ca fond nu doar o culoare ci o imagine (în format GÂF sau JPG):

<Body background="imagine.gâf" text="black" link="yellow" vlink="red" alink="green">

Tag-ul anterior specifică utilizarea imaginii “imagine.gâf” ca fond al paginii noastre.

În continuare vom aborda utilizarea diferitelor fonturi. În computer vom întâlni o varietate foarte mare de fonturi în ceea ce privește forma și mărimea. Trebuie să acordăm atenție alegerii fontului utilizat în pagina noastră web pentru că este posibil că nu toți utilizatorii care vor încerca să acceseze păgână vor dispune de fontul respectiv. În acest caz computerul va înlocui automat fontul nostru cu fontul default al acelui sistem (de obicei ARIAL sau TIMES NEW ROMAN).

Pentru a controla fonturile trebuie utilizat tag-ul <FONT>, în cadrul secțiunii <BODY>:

<Body bgcolor="blue" text="black" link="yellow" vlink="red" alink="green">

<Font face="arial">

</Font>

</Body>

Observați că și tag-ul <FONT> necesită un tag de închidere. Acest tag ne permite să stabilim tipul de font, dimensiunea sa și culoarea, ca în exemplul următor:

<Font face="Comic Sans MS" size="4" color="green">

Mărimea fontului poate fi stabilită în cadrul a trei tipuri de plaje: de la 1 la 7, de la -1 la -3 și de la +1 la+4.

În afara acestui control al fonturilor mai există încă șase tag-uri care pot modifica fontul prezent în pagina. Aceste comenzi sunt tag-uri independente și nu apar în cadrul tag-ului <FONT>. Aceste tag-uri sunt <h1 >, <h2>, <h3>, <h4>, <h5> și <h6>, cu tag-ul <h1> folosind dimensiunea cea mai mare de font iar <h6> cea mai mică dimensiune. Aceste tag-uri sunt în general folosite la începutul paginii pentru a anunța un titlu sau în cadrul paginii pentru a diferenția dimensiunea unei porțiuni de text de dimensiunea standard definită prin tag-ul <FONT>. Toate aceste tag-uri necesită și complementarul de închidere (ex.

</h1>). În cazul în care nu se apelează la tag-ul <FONT> se va folosi dimensiunea default de 3.

O altă observație trebuie făcută legat de anumite caractere speciale care nu pot fi utilizate în mod normal ca text datorită faptului că ele reprezintă cuvinte cheie ale limbajului HTML. Pentru a introduce aceste caractere există posibilitatea de a folosi codul lor sau alte definiții standardizate ale acestora – ca de exemplu pentru a obține semnul de copyright: &copy -> browser-ul va afișa pe ecran semnul de copyright. În general simbolul “&” marchează pentru browser faptul că începem descrierea unui caracter special.Unul dintre cele mai folosite caractere speciale pentru HTML este spațiul. În cazul în care în textul pe care dorim să-l publicăm în pagina noastră lăsăm un număr de 5 spații între două cuvinte browser-ul va afișa doar un singur spațiu între ele. Pentru a putea afișa mai multe spații trebuie introdus caracterul special &nbsp:

Alte caractere speciale des utilizate ar include:

• &nbsp; (spațiu)

• &lt; (<)

• &gt; (>)

• &amp; (&)

• &quot; (")

Imagini

Imaginea a devenit un element omniprezent în toate paginile web actuale. Bazat pe faptul recunoscut ca o imagine are un impact mult mai mare asupra privitorului decât un text precum și pe necesitatea oferirii unor informații cât mai rapid și direct către utilizator imaginea s-a impus că elementul indispensabil oricărei prezentări a oricărui subiect.

În cadrul paginilor web introducerea elementelor grafice – la acest moment ne referim la imaginile de tip GÂF sau JPG – se face cu ajutorul tag-ului <IMG>.

<IMG SRC="imagine.gâf" WIDTH=82 HEIGHT=68>

are ca efect introducere imaginii imagine.gâf în pagina noastră, cu dimensiunile specificate în atributele WIDTH (lățime) și HEIGHT (înălțime) ale tag-ului.

Atributul SRC specifică sursa de unde browser-ul va încărca imaginea respectivă; această locație poate fi în sistemul respectiv (în directorul paginii sau în orice alt director ce va fi specificat în cale) sau în orice altă locație pe web (ex. http://ura.data.ro/lecții/poza1.gâf).

În cazul în care nu se introduce o cale către această imagine ci doar numele ei atunci browser-ul va căuta în directorul curent al paginii web.

Atributele WIDTH și HEIGHT pot lipsi iar browser-ul va recunoaște imaginea la dimensiunile ei originale; chiar în cazul în care imaginea a fost special creat pe dimensiunile necesare paginii noastre este de preferat folosirea celor două atribute care ajută la încărcarea mai rapidă a imaginii (în caz contrar browser-ul va mai pierde timp calculând dimensiune și așezarea în pagina a imaginii respective).

Un alt atribut care este preferabil să fie prezent este ALT. Cu ajutorul acestui atribut putem oferi o alternativă browser-ului în cazul în care imaginea respectivă nu a putut fi încărcată:

<img src="1.gâf" width=20 height=20 alt="Text în cazul lipsei pozei din calea generată">

Tag-ul anterior va face că în cazul în care poza dorită nu este găsită browser-ul să afișeze textul atributului ALT într-o fereastră de dimensiunile specificate pentru imagine.

Un alt atribut al tag-ului IMG este și BORDER; cu ajutorul său putem specifica grosimea unui chenar care înconjoară imaginea dorită.

Pentru a obține centrarea imaginii se va apela la încadrarea tag-ului IMG între două taguri complemetare <CENTER> și </CENTER>.

Tot în cadrul atributului ALIGN mai putem întâlni alte trei valori:

• “bottom” – aliniază partea inferioară a imaginii pe linia curentă

• “țop” – aliniază partea superioară a imaginii cu cel mai înalt element de pe linia curentă

• “middle” – aliniază mijlocul imaginii cu linia curentă

Linkuri

Pentru a fi cât mai simplu: un link reprezintă cuvintele subliniate în cadrul unei păgâni și pe care poți da click pentru a naviga către alte locații. Practic orice element al unei păgâni web poate fi asociat unui link: un text, o imagine său doar o porțiune de imagine.

<a href="http://www.yahoo.com">Yahoo</a>

Secvența anterioară reprezintă introducerea unui link către pagina Yahoo.

<a> și </a> ~ (= anchor) tag-urile transmit browser-ului faptul că urmează definirea unui link.

Adresa link-ului se încadrează în href=” “; href vine de la Hypertext Reference și este un atribut al tagului <A>. După încheierea tag-ului <A> urmează textul său imaginea care urmează să facă legătura către linkul dorit.

În cazul în care dorim realizarea unei legături către o altă pagină din același director se va introduce în cadrul atributului href doar numele paginii:

<a href="conținut.htm">Conținut</a>

Un alt tip comun de legătură este linkul în cadrul aceleiași păgâni. Pentru a crea un astfel de link trebuie realizați doi pași. În primul rând trebuie să identificăm secțiunea paginii unde vrem să putem sări și apoi să realizăm linkul.

Pentru primul pas – definirea zonei la care dorim să se facă legătura avem două posibilități:

<a name=”definiție_zona”> Text </a>

său

<p id=”definiție_zona”> Text

Saltul propriu-zis la această zonă definită se face prin intermediul următoarei linii de cod:

<a href="#definiție_zona">Acest link va duce înapoi la zona definită</a>

Saltul se poate face și combinat – la o anumită zonă definită în altă pagină, ca în exemplul următor:

<a href="pagina2.html#definiție_zona">Acest link va duce înapoi la zona definită în pagina 2</a>

Liste

Listele sunt un element foarte des întâlnit în cadrul paginilor web datorită în principal impactului vizual mai ridicat decât al textului simplu. În general putem discuta despre două tipuri de liste: neordonate și ordonate. Listele neordonate prezintă elementele listei unul sub altul, cu un așa numitele bullet-uri la stânga elementului. Listele ordonate înlocuiesc aceste bullet-uri cu numerale său litere în ordine crescătoare.

Liste neordonate

<ul><li>Element 1 <li>Element 2 <li>Element 3 </ul>

Această comandă va duce la crearea unei liste neordonate:

• Element 1

• Element 2

• Element 3

Tag-ul <UL> poate folosi atributul TYPE – cu valorile SQUARE, DISC și CIRCLE – pentru a specifica formatul bullet-ului elementelor listei. Același atribut TYPE poate fi utilizat și în cadrul tag-ului <LI> pentru a specifica individual formatul bullet-ului pentru fiecare element al listei în parte.

Liste ordonate

<ol><li>Element 1<li>Element 2<li>Element 3 </ol>

Această comandă va produce următoarea lista ordonata:

1. Element 1

2. Element 2

3. Element 3

Tag-ul <OL> posedă două atribute foarte folositoare: START și TYPE.

Atributul START determină valoarea numărului de ordine al primului element din listă. Atributul TYPE poate avea patru valori:

– a pentru ordonare cu ajutorul literelor mici

– A pentru ordonare cu ajutorul majusculelor

– I pentru ordonare cu ajutorul numeralelor române majuscule

– I pentru ordonare cu ajutorul numeralelor romane minuscule

– 1 pentru ordonarea numerică (default)

Tag-ul <LI> – care introduce un element al listei posedă și el un atribut extrem de folositor: VALUE; cu ajutorul său putem specifica o anumită valoare pentru numărul de ordine al acelui element (elementele următoare vor fi numărate începând cu această nouă valoare. Tag-ul <LI> poate utiliza și el atributul TYPE pentru a formata individual numerotarea elementului respectiv al listei.

Formulare

Limbajul HTML oferă instrumente pentru a facilita interacțiunea documentului web cu utilizatorul.Această interacțiune va fi efectuată printr-un schimb de informații între browser și server. Datele furnizate de utilizator în formular sunt transmise către server, care recepționează cererea și lansează în execuție un scenariu CGI (Common Gateway Interface-Interfață Comună pentru Porți de Acces). Aplicațiile CGI sunt scrise în limbaje specifice: Perl, C, VBScript, JavaScript său altele. Ele prelucrează datele primite, într-o anumită manieră, dependentă de aplicație (interoghează o bază de date, efectuează anumite calcule,eventual validări de date șamd.). Apoi aplicația CGI furnizează un răspuns serverului, care îl transmite mai departe calculatorului client (operație numită feedback).Într-un document web pot exista oricâte formulare, dar nu imbricate (nu unul în interiorul altuia).

Formularele sunt definite cu ajutorul tagului <form>, care acceptă atributele:

action

method

name

target

title (pentru Internet Explorer)

Descriere atribute:

Atributul action primește ca valoare adresa URL a scenariului CGI ce va primi datele furnizate de utilizator și le va prelucra, generând un răspuns. Dacă atributul action lipsește, datele vor fi trimise la adresa documentului curent. Este posibilă expedierea datelor furnizate de către utilizator la o adresă poștală, caz în care atributul action va primi ca valoare adresa de e-mail respectivă, însoțită de prefixul”mailto:”

Atributul method specifică modul în care va fi trimisă informația către server. Atributul method poate primi două valori: get și post.

În cazul valorii get a atributului method, aceste perechi de date sunt adăugate la sfârșitul adresei URL a scriptului, după semnul ‘?’, separate prin ‘&’. Atunci când trimit un formular către server, majoritatea browserelor afișează acest șir.

Atributul name primește ca valoare numele formularului, în situația în care sunt mai multe formulare în document. De asemenea, numele formularului este util și atunci când scriptul este scris în JavaScript, pentru a putea fi referit.

Atributul target primește ca valoare numele ferestrei în care se va face afișarea răspunsului emis de server. Dacă numele transmis că parametru atributului target nu a fost definit anterior, atunci browserul va creea o ferestră nouă cu acest nume. Implicit, browserul va afisa răspunsul în pagina curentă. Există câteva cuvinte cheie ce pot fi transmise ca valoare atributului target:

self – răspunsul scriptului va fi afișat în fereastra ce conține formularul;

parent – răspunsul scriptului va fi afișat în fereastra părinte a ferestrei ce conține formularul;

țop – răspunsul va fi afișat în fereastra din vârful ierarhiei de ferestre;

blank – va fi creată o fereastră nouă în care va fi afișat răspunsul. Efectul este similar situației în care atributul target a primit valoare un nume de fereastră ce nu a fost definit anterior.

Atributul title oferă posibilitatea afișării unui text explicativ de îndată ce mouse-ul se oprește deasupra formularului.

Elemente de formular

Între perechea de taguri <form> și </form> sunt definite o serie de elemente de formular, destinate recepționării datelor furnizate de utilizator. Cea mai mare parte a acestora se definesc cu ajutorul tagului<input>.

Sintaxa generală a tagului input este:

<input type=”text/password/hidden/radio/checkbox/submit/reset/button/file/image” name=”…“

value=”…“ checked size=”…” maxlenght=”…”>

Liste de selecție

Listele de selecție permit selectarea uneia său a mai multe opțiuni dintr-o listă. Ele reprezintă o combinație între butoanele radio (selecție singulară) și câmpurile de validare (selecție multiplă). Deosebirea este aceea că utilizarea listelor de selecție nu necesită afișarea tuturor opțiunilor, ci numai a unora dintre ele, deplasarea printre alternative realizându-se cu ajutorul unei bare de defilare verticală.

Listele de selecție sunt realizate cu ajutorul tagului <select>. Atribute acceptate:

name – definește numele câmpului de selecție;

size – stabilește câte elemente ale listei sunt vizibile la un moment dat, restul opțiunilor fiind

accesibile prin utilizarea barei de defilare verticală. Implicit, valoarea atributului size este 1.

multiple – prezența atributului multiple permite selectarea mai multor elemente ale listei (echivalent câmpurilor de selecție), altfel, în cazul selecției singulare, un singur element al listei poate fi selectat la un moment dat (echivalent butoanelor de opțiune). Atributul multiple nu are efectul dorit în cazul listelor de selecție ce au valoarea size egală cu 1. Introducerea opțiunilor în listă se realizează cu tagul <option>, poziționat în interiorul perechii <select></select>. Acesta acceptă atributele:

name – precizează numele opțiunii;

selected – prezența atributului selected în interiorul tagului <option> face că opțiunea respectivă să fie selectată la încărcarea formularului. Dacă valoarea atributului size a tagului select este 1, atunci, implicit va fi afișată prima opțiune a listei de selecții (în cazul în care nici o opțiune nu are prezent parametrul selected).

value – precizează valoarea trimisă către server la activarea opțiunii submit a formularului; în cazul în care atributul value lipsește către server se va trimite ca valoare chiar textul care urmează tagului <option>.

Cadre (Frames)

Cadrele permit împărțirea unei ferestre în secțiuni independente între ele, în fiecare dintre acestea fiind posibilă încărcarea unui document HTML. Astfel, utilizatorul poate vizualiza simultan mai multe documente.

Pentru structurarea unui document HTML în cadre sunt utilizate tagurile:

_ <frameset>

_ <frame>

_ <noframe>

_ <iframe>

Organizarea documentului în cadre – Tagul <frameset>

Un document cu cadre se realizează similar unui document HTML oarecare, în care tagurile <body>, respectiv </body> sunt înlocuite cu tagurile <frameset>, respectiv </frameset>:

<html>

<head>

</head>

<frameset>

</frameset>

</html>

Așadar, tagul <frameset> permite structurarea documentului principal în cadre. În interiorul perechii <frameset> </frameset> nu pot exista decât elemente <frameset>, <frame>, <noframe>.

3.2.CSS (Cascading Style Sheets)

Aplicarea stilurilor reprezintă o extindere importantă a posibilităților de stilizare, evitând utilizarea de fișiere grafice mari ce determină încetinirea încărcării păgânilor și manipularea lor greoaie.

Folosind stilurile HTML puteți fi siguri că vizitatorii paginii dumneavoastră vor vedea

pagina exact așa cum a fost ea proiectată.

A stiliza înseamnă a da unui obiect o formă corectă și expresivă. Un stil reprezintă o

colecție de valori ale atributelor elementelor unui document, valori care pot fi aplicate

întregului document sau doar unei părți din acesta. Aceste atribute pot fi: mărimea,

grosimea, tipul și culoarea fontului, marginile, paragrafele și orice altceva ce poate influența

aspectul unui element, deci a unei pagini. Gruparea lor în stiluri permite designer-ului să

aplice aceeași colecție la diferite părți ale unui document. Folosirea stilurilor reduce

considerabil efortul depus atunci când doriți să aduceți modificări aspectului și aranjării

elementelor din paginile dumneavoastră. În loc să parcurgeți fiecare document în parte și să

faceți modificări asupra fiecărui element, operați modificări numai asupra foii de stiluri care

stilizează aceste elemente.

Sintaxa generală a unei declarații de stil este:

listă_selectori{proprietatea1:listă_valori1;

proprietatea2:listă_valori2;

proprietatean:listă_valorin;

}

Selectorii sunt utilizați pentru determinarea elementelor HTML asupra cărora vor fi

aplicate stilurile.

Următorul segment de cod definește proprietățile font, font-size, color și text-align pentru nivelele de titlu H1, H2 și H3:

H1,H2,H3 {font-family:Arial,Garamond;text-align:center}

H1 {font-size:18px;color:red;background-color:gray}

H2 {font-size:16px;color:blue}

H3 {font-size:14px;color:blue}

Definiții de stil inline

Spre deosebire de stilurile încapsulate și de foile de stiluri externe, stilurile inline fac

parte chiar din corpul documentului HTML. Ele se aplică prin folosirea atributului style în

asociere cu etichetele HTML standard.

Definițiile de stil inline se aplică numai asupra elementelor incluse între etichetele care

au asociat atributul style. Din acest motiv, dacă dorim să repetăm în alt loc din cuprinsul

documentului aceleași definiții de stil, ele vor trebui scrise din nou, încărcând astfel

documentul HTML. Totuși, utilitatea stilurilor inline este aceea că fiind definite chiar în

cuprinsul documentului, definițiile lor sunt prioritare față de cele din stilurile încapsulate sau

externe.

<P style="color: red; font-family: Arial; font-weight: bold">

Stil inline pentru acest paragraf</P>

Definiții de stil încapsulate (interne)

Crearea unui astfel de stil se realizează folosind eticheta <style> </style>. Eticheta de

stil este plasată în antetul documentului adică în secțiunea <head>.

Stiluri în cascadă

Cele trei tipuri de stiluri pot fi combinate în cadrul aceluiași document. Relațiile dintre

diferitele tipuri de stiluri realizează efectul de cascadă care dă numele acestei metode.

Browserul rezolvă conflictul dintre definițiile de stiluri respectând următoarea regulă:

stilurile inline au cea mai mare prioritate, apoi cele interne și, în cele din urmă, stilurile

externe, cu prioritate minimă.

O regulă de stil poate să-și mărească prioritatea dacă este însoțită de declarația"!important": P {font-size:12pt!important; font-style:italic }

Dacă ne referim la "care dintre cele 3 definiții de stil este mai bună", standarde WEB indică:

utilizarea foilor .css pentru definirea caracteristicilor care se aplică la formatarea părții

comune a tuturor paginilor unui document

utilizarea stilurilor încapsulate pentru definirea caracteristicilor care se aplică la formatarea unei anumite pagini;

utilizarea stilurilor inline pentru definirea caracteristicilor care se aplică la formatarea unui anumit element.

Clase de stiluri

Acestea permit definirea unui stil general (aplicabil în mai multe locuri în cadrul

aceleiași pagini sau în pagini diferite) în vederea inserării lui oriunde este necesar prin

intermediul unei simple referiri. Să presupunem că dorim să definim o clasă de stiluri "ftext"

(pe care dorim să o aplicăm anumitor porțiuni de text pentru a le face să apară de culoare

roșie, aliniate la stânga, având culoarea de fundal gri și mărimea fontului de 14).

<style>

all.ftext{text-align:left; color:red;}

</style>

Cuvântul standard "all" aflat în fața clasei de stiluri "ftext" indică faptul că această

clasă este aplicabilă tuturor blocurilor de text, atunci când este necesar. Practic clasa de

stiluri "ftext" poate fi asociată tuturor tagurilor HTML care operează cu text (ca de exemplu:

H2, H3, P, DIV, etc…) utilizând în interiorul fiecărui tag vizat o referire explicită la această

clasă.

Pseudoclase și pseudoelemente

Pseudoclasele controlează comportamentul dinamic al unor elemente, cum ar fi legăturile. În CSS, o legătură poate avea 5 stări ce corespund la 5 pseudoclase:

Tabelul 3 Pseudoclase

Stiluri pentru liste

list-style-type

Folosind eticheta ol din HTML putem crea liste ordonate sau numerotate. Adăugând

comenzi CSS în zona HEAD putem adăuga pe lângă numere și cifre, alte simboluri. Browserul Netscape nu permite asocierea comenzilor CSS decât pentru eticheta li.

<style>

li {list-style-type: valoare;}

</style>

Tabelul 4 Simboluri folosite

list-style-image

În afara simbolurilor de marcaj prestabilite cunoscute de browser pot fi folosite și

imagini prin comanda CSS list-style-image. Imaginile sunt introduse prin adresa url().

Casete în CSS

Elementele cu care lucrează HTML sunt afișate de browser în interiorul unei zone dreptunghiulare ca în figură de mai jos, unde:

Figura 1 Casete

marginea este spațiul exterior chenarului

până la celelalte elemente,

chenarul este o bordură care înconjoară

elementul,

completarea stabilește distanța dintre conținut și chenar,

conținutul include informația utilă (text, tabele, imagini, formulare etc.) .

Poziționare în CSS

Poziționarea permite așezarea unui obiect într-un anume loc folosind coordonatele

sale. Totodată obiectele pot fi poziționate pe straturi diferite, unul deasupra celuilalt. O astfel

de așezare se poate face utilizând atributul position.

Atât poziționarea absolută cât și cea relativă folosesc proprietățile left și top exprimate în px (pixeli), în (inci), pt (puncte), cm (centimetri). Poziționarea absolută plasează obiectul în pagină exact în locația data de left și top. Poziționarea relativă este poziționarea unui element în funcție de elementele anterioare. Un element poate fi deplasat față de altul folosind proprietățile left și top.

Poziționarea tridimensională

Elementele sunt poziționate pe ecran pe o suprafață bidimensională dar pot fi

așezate și unul deasupra celuilalt, într-o stivă utilizând un indicativ (index-z) începând cu 0,

următorul 1 și tot așa, în continuare. Elementul cu indexul cel mai mare este așezat

deasupra.

Notații și unități de măsură

Foile de stil utilizează două tipuri de unități de lungime:

relative: exprimă o dimensiune în raport cu altă dimensiune ,

absolute: exprimă o dimensiune fixă.

Unități de măsură relative:

em-reprezintă lățimea literei ‘M’ relativă la fontul utilizat,

ex- reprezintă înălțimea literei 'X' relativă la fontul utilizat,

px-pixeli (dimensiunea este dependentă de rezoluția calculatorului) .

Unități de măsură absolute:

in-inch (1in=2.54cm),

cm-centimetri,

mm-milimetri,

pt-punct tipografic(1pt=1/72 în).

Culori

Atributul culoare pentru un obiect poate fi specificat printr-un cuvânt cheie (aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white și yellow ) sau prin intermediul unei specificații numerice RGB. Acestea sunt luate din paleta VGA

Windows. Specificarea unei culori în forma hexazecimalã RGB se prefixează cu caracterul #

și conține șase cifre hexazecimale.

URL este soluția aleasă de World Wide Web Consortium, pentru specificarea unei resurse (unui site sau a unei pagini) în Internet. Sintaxa generală este:

<protocol>://<nume_DNS>/<nume_local> unde

protocol este protocolul folosit (de cele mai multe ori HTTP),

nume_DNS este numele domeniului pe care se află resursa,

nume_local este format din calea și numele resursei de pe discul local.

3.3.Baze de date MySQL

MySQL este cel mai popular sistem de management pentru baze de date relaționale doarece este open-source. MySQL Server a fost creat pntru a lucra cu baze de date mai rapid decât soluțiile deja existente la ora actuală pe piață.

Facilitățile oferite de MySQL sunt variate, dintre care se vor preciza următoarele:

Posibilitatea accesului concurent la date de către un număr nelimitat de utilizatori

Capacitatea de a gestiona până la 50000000 de înregistrări și chiar mai multe

Execuția foarte rapidă a comenzilor, poate chiar cea mai rapidă din cele existente pe piață

Sistem ușor și eficient de gestiune a drepturilor utilizatorilor

MySQL este un sistem de gestiune a bazelor de date. Pentru a adăuga, insera și procesa datele memorate pe un calculator este nevoie de un astfel de sistem de gestiune a datelor. Având în vedere că toate calculatoarele sunt destinate pentru memorarea informațiilor, managementul bazelor de date joacă un rol decisiv, atât în gestiunea datelor ca activitate de sine stătătoare, cât și în cadrul aplicațiilor ample.

MySQL este un sistem multiuser (permite să fie folosit concomitent de mai mulți utilizatori) și multithread (prezintă mai multe fire de execuție). Utilizează SQL, limbajul standard de interogare a bazelor de date.

MySQL este un sistem de gestiune a bazelor de date relaționale. Tabelele sunt conectate prin relații predefinite, fapt ce face posibilă combinarea datelor din mai multe tabele, la cerere.

MySQL este un produs open source. MySQL este un sistem client-server care este alcătuit dintr-un server SQL multithread care are facilități pentru mai mulți utilizatori, mai multe programe și biblioteci client, instrumente de administrare și un număr mare de interfețe de programare. Având în vedere că MySQL suportă o gamă variată de produse software, există posibilitatea ca multe din limbajele de programare deja folosite de anumiți utilizatori să suporte deja interfața cu acest produs.

Orice mașină care dorește să proceseze interogări asupra unei baze de date MySQL trebuie să ruleze MySQL server-MySQLd-, care este responsabil de tot traficul de tip incoming sau outgoing cu baza de date. Ca orice server, MySQLd primește pe un port particular (3306) eventualele cereri de conexiune ale unui client care trimite cereri către o bază de date via MySQLd. Acest client poate fi un script în PHP care, grație modelului DBI, poate trimite o cerere către baza de date prin intermediul serverului MySQL, sau chiar clientului command-line MySQL. Clientul MySQL este o interfață interactivă pentru trimiterea de comenzi către server.

Principalele motive pentru folosirea pe scară largă a MySQL sunt viteza, stabilitatea și facilitatea în utilizare. De asemenea MySQL are o serie de caracteristici care au fost dezvoltate prin colaborarea foarte apropiată cu utilizatorii acestui limbaj. Aceste caracteristici ale limbajului se datorează faptului că a fost proiectat încă de la început pentru gestionarea unui volum foarte mare de date, iar experiența în folosirea sa, acumulată de-a lungul anilor și-a spus cuvântul. MySQL oferă astăzi un set complet și util de funcții. Conectivitatea, viteza și securitatea fac ca MySQL să fie unul din cele mai potrivite produse pentru gestiunea bazelor de date pe Internet.

Modul de funcționare a unui server de baze de date pentru Web

Funcționarea unui server de baze de date pentru Web, în cazul nostru MySQL, implică existența a două elemente: un browser Web și un server. Între aceste două elemente se impune să existe un canal de comunicare. Serverul de Web funcționează în moduri diferite în următoarele situații:

în cazul în care server-ul lucrează cu pagini de web statice, un browser Web (clientul) formulează cererea către server, iar serverul trimite înapoi un răspuns.

în cazul în care server-ul lucrează cu pagini web dinamice care preiau datele dintr-o bază de date și le afișează se realizează următorii pași:

browser-ul web al unui utilizator emite o cerere HTTP pentru o anumită pagină Web; server-ul web recepționează cererea și transferă fișierul către motorul PHP, în cazul nostru, pentru prelucrare;

motorul php începe analiza paginii. În interiorul unei pagini web dinamice există o comandă care realizează legătura la baza de date și execută interogările pe care le trimite serverului MySql;

serverul MySQL recepționează interogarea bazei de date și o prelucrează, iar apoi trimite rezultatele motorului PHP;

motorul PHP afișează rezultatele furnizate de server-ul MySQL formatate într-un cod HTML pe care îl returnează server-ului Web, în cazul nostru Apache. Server-ul Web transmite codul HTML browser-ului, unde utilizatorului i se afișează rezultatul dorit de acesta.

Tipuri de date SQL

Crearea unei baze de date relaționale presupune crearea unuia sau mai multor tabele legate între ele. În procesul de creare a unui tabel are loc stabilirea numelor câmpurilor acestuia cât și a tipurilor de date prin care unui utilizator i se indică ce date are voie să introducă în acestea. În funcție de tipurile de date alese pentru fiecare coloană a tabelei se alocă pe disc un spațiu de memorie. În această situație este indicată o cunoaștere aprofundată a acestora, deoarece acest fapt va permite creatorului tabelei să aleagă tipul de date potrivit pentru fiecare coloană a tabelei astfel încât aceasta să ocupe un spațiu de memorie optim pe disc și în același timp să răspundă nevoilor utilizatorilor acesteia.

Tabelul 5 Tipuri de date în MySQL

Șirurile de caractere se împart în trei grupuri și anume: șiruri normale definite prin tipul CHAR (fixed length character), respectiv VARCHAR (variable length character), șiruri text definite prin tipul TEXT respectiv BLOB (pentru șiruri lungi sau date binare) și șirurile care folosesc SET respectiv ENUM pentru valori predefinte. Tipurile de șiruri de caractere sunt:

• BLOB- câmpul de acest tip poate conține o cantitate variabilă de informație 2^16-1 (64k-1). Căutarea într-un câmp de acest tip este case sensitive, adică se face disticție între litere mari și cele mici;

• TEXT- asemănător cu BLOB dar nu este case sensitive;

• VARCHAR similat cu tipul TEXT cu deosebirea că pentru un câmp de acest tip se poate specifica numărul maxim de caractere admis;

• TINYTEXT sau TINYBLOB (2^8-1)

• MEDIUMTEXT sau MEDIUMBLOB(2^24-1=16M-1)

• LONGBLOB (2632-1=4G-1)

• ENUM (‘valoare1’,’valoare2’,…). Numărul maxim de valori pe care îl poate avea este 65535. Valoare implicită este NULL SET(‘valoare1’,’valoare2’,…). Numărul maxim de valori pe care îl poate avea este 64. Valoare implicită este NULL.

Baze de date- definiție, proiectare

O bază de date reprezintă o modalitate de stocare a unor informații (date) pe un suport extern, cu posibilitatea regăsirii acestora. Cel mai răspândit model de bază de date este numit entitate-relație în care datele sunt memorate în tabele legate între ele. Pentru a putea stabili legături între două sau mai multe tabele ale unei baze de date se definesc chei. Cheile pot fi primare și secundare.

Tabelele unei baze de date sunt alcătuite din câmpuri, adică coloane care sunt unice și din linii care conțin valorile introduse în câmpuri. Liniile unei tabele se numesc înregistrări sau tupluri. Coloanele unei tabele pot să îndeplinească rolul de cheie primară sau secundară. În cadrul unei tabele se poate defini la un moment dat doar o singură cheie primară. Proiectarea unei baze de date impune respectarea următoarelor principii:

1. identificarea scopului bazei de date;

2. identificarea și împărțirea informațiilor în tabele corespunzătoare;

3. definirea cheilor primare astfel încât acestea să poată determina în mod unic o înregistrare;

4. identificarea cheilor secundare;

5. stabilirea legăturilor între tabele;

6. eliminarea datelor redundante. Între tabelele unei baze de date, după stabilirea cheilor primare, respectiv secundare se pot defini trei tipuri de legături, și anume:

6 .1. unu-la-unu – fiecărei valori din câmpul, care îndeplinește rolul de cheie primară, în tabela părinte îi corespunde o singură înregistrare în tabela la care este legată;

6 .2. una-la-mai-multe – fiecărei valori din câmpul care îndeplinește rolul de cheie primară, în tabela părinte, îi corespund mai multe înregistrări în tabela la care este legată (un client ar putea face mai multe comenzi).

6 .3. mai-multe-la-mai-multe -mai multe valori din câmpul care îndeplinește rolul de cheie primară, în tabela părinte îi corespund mai multe înregistrări din tabela la care este legată.

Operații asupra bazelor de date în MySQL

O regulă de bază în MySql este că majoritatea comenzilor tastate în monitorul MySQL de clienți pentru a fi transmise serverului se termină cu “;”. Caracterul “;’ indică server-ului de baze de date MySql că s-a terminat introducerea unei comenzi și deci o poate procesa și afișa rezultatul.

Crearea unei aplicații Web dinamice, în marea majoritate a lor, implică crearea unei baze de date alcătuită din una sau mai multe tabele legate între ele. Crearea unei astfel de baze de date în MySql, pentru un magazin virtual care se ocupă cu comercializarea produselor IT, se realizează cu comanda: mysql> create database nume_bază_de_date;

Vizualizarea bazelor de date existente pe server-ul Mysql de către administrator se face cu comanda: mysql> SOW DATABASES;

Selectarea unei baze de date ca fiind cea curentă se face prin comanda:

USE nume_baza_de_data;

Pasul următor în procesul de creare a unei baze de date îl constituie crearea tabelelor ce o compun. Comanda de crearea a unui tabel are următoarea sintaxă:

CREATE TABLE nume_tabelă (nume_câmp tip_câmp);

În procesul de creare a unui tabel activitățile sunt:

1. denumirea câmpurilor;

2. alegerea unui tip de date potrivit pentru fiecare câmp;

3. definirea atributelor pentru fiecare câmp în parte;

4. stabilirea coloanei care va juca rolul de cheie primară sau secundară cu ajutorul căreia se va stabili legătura către alte tabele ale bazei de date.

Indexii pentru o tabelă se pot crea astfel:

1. fie adăugând la sfârșitul instrucțiunii CREATE TABLE… comanda INDEX(nume_coloană_index);

2. fie folosind comanda: CREATE [UNIQUE|FULLTEXT] INDEX nume_index ON nume_tabelă (nume_coloană_index [(lungime)[ASC|DESC],…);

Ștergerea unui tabel, index, bază de date sau o coloană dintr-un tabel se face folosind comanda DROP astfel:

DROP TABLE nume_tabel;

DROP DATABASE nume_baza_de_dată;

Popularea tabelelor cu înregistrări se face prin comanda INSERT care are următoarea sintaxă:

INSERT INTO nume_tabel (câmp1, câmp2, câmp3) values (valoare1, valoare2, valoare3);

Comanda SELECT se folosește pentru a afișa toate înregistrările dintr-o tabelă astfel: mysql>SELECT * FROM nume_tabelă;

Modificarea conținutului unei înregistrări se face utilizând comanda UPDATE care are sintaxa UPDATE nume_tabel SET nume_coloană1=`noua valoare a coloanei 1`, nume_coloană2=`noua valoare a coloanei 2` WHERE condiții

Ștergerea înregistrărilor dintr-o tabelă se face prin comanda DELETE care are următorea sintaxă: DELETE FROM nume_tabel WHERE condiții;

3.4.PHP (Hypertext Preprocessor)

PHP este un acronim care provine din "Hypertext Preprocessor" și este un limbaj de

scripting, realizat și distribuit în sistem Open Source, special realizat pentru a dezvolta

aplicații web, prin integrarea codului PHP în documente HTML. Sintaxa sa provine din C,

Java și Perl și este ușor de învățat. Scopul principal al limbajului este acela de a scrie rapid

pagini web dinamice și oferă suport pentru manipularea bazelor de date de tip SQL (dBase,

Informix, MySQL, mSQL, Oracle, PostgreSQL, Solid, Sybase, ODBC etc.) cât și acces la

sisteme hipermedia.

Limbajul PHP fiind open-source beneficează de un sprijin activ din partea comunității on-line, acesta fiind și motivul creșterii explozive a numărului de site-uri bazate pe acest limbaj.

Limbajul PHP oferă următoarele facilități:

1. manipularea conținutului paginilor web;

2. transmiterea header-elor HTTP pentru autentificare;

3. setarea cookie-urilor;

4. redirecționarea utilizatorilor;

5. asigurarea spargerii (paser) fișierelor XML;

6. crearea și manipularea imaginilor, animațiilor și a PDF-urilor;

7. conectarea la un server de e-mail.

Principiul de funcționare a limbajului PHP

Modul de funcționare a limbajului PHP este următorul: browser-ul trimite către server-ul Web o cerere HTTP pentru un fișier PHP. Server-ul recunoaște că fișierul cerut conține cod PHP, în consecință va lansa parser-ul PHP, care va primi la intrare fișierul respectiv. Parser-ul va identifica secvențele PHP, care în cadrul codului HTML sunt cuprinse între marcajele „<?” și „?>” și le va interpreta. Tot ce nu este cod PHP este trimis spre ieșirea standard fără nici o prelucrare. Codul PHP poate scrie la rândul său în ieșirea standard prin comenzile prestabilite cum ar fi „echo” sau „prinț”. În final serverul Web intercepteză ieșirea standard a parser-ului și transferă totul browser-ului care a cerut pagina . PHP, și într-o anumită măsură și alte limbaje Web, prezintă următoarele caracteristici:

este interpretativ;

execuția este rapidă deoarece interpretorul este inclus în server-ul Web, prin urmare nu se cheltuiesc resurse cu configurarea;

este bogat în facilități, conținând numeroase funcții utile;

are o sintaxă simplă, variabilele nu trebuie declarate, tipul acestora se stabilește la inițializarea lor cu o valoare și în plus numele de funcții sunt intuitive.

Crearea paginilor PHP se reduce la editarea unui fișier PHP care se poate realiza în orice editor de texte: Notepad, editoare PHP, etc.

Pe parcursul dezvoltării fișierului, în fereastra editorului de texte Notepad se va acționa comanda Save a meniului EDIT după fiecare modificare adusă fișierului, apoi Refresh în browser pentru reflectarea modificărilor astfel efectuate (folosirea butoanelor Back și Forward din browser trebuie să fie urmată de asemenea de Refresh). Cu condiția ca fișierele să fie salvate corect, iar URL-urile locale să fie scrise corect, pentru fiecare pagină PHP la care se lucrează simultan trebuie deschisă câte o fereastră a editorului.

O pagină PHP se salvează cu extensia php în directorul C:\Program Files\Apache Group\Apache\htdocs\ și se va accesa în browser la adresa http://localhost/numefisier.php. În cazul în care se dorește ca paginile unui site Web să se păstreze într-un subdirector creat în rădăcina server-ului Web atunci la lansarea în browser a site-ului web se va introduce și numele acestuia în URL astfel: http://localhost/numesubdirector/numefisier.php. După lansarea în browser a unei pagini PHP se poate folosi opțiunea View source a acestuia, și se observă că se afișează doar ieșirile scriptului (text, cod HTML, etc.), nu și codul PHP care generează ieșirile. Accesul la paginile PHP și afișarea rezultatelor acestora

Comenzile de editare a unei pagini HTML dintr-un script PHP, sunt: echo, print, print_r, și printf. Toate aceste comenzi mai sunt folosite pentru afișarea rezultatelor unei funcții, a valorilor unei variabile, a elementelor unui tablou, a mesajelor text, a valorilor introduse de utilizator în câmpurile unui formular HTML, pentru a transmite valorile încadrate între ghilimele la browser, etc.

Variabilele PHP

Variabilele PHP nu trebuie declarate ci sunt create automat în momentul primei utilizări.În acest moment li se definește tipul de date. Această facilitate permite programatorului posibilitatea dezvoltării rapide a unor aplicații complexe. Odată ce o variabilă a fost creată ea poate fi folosită oriunde în program , cu excepția funcțiilor, unde trebuie inclusă explicit în zonă locală de alocare prin funcția global.Sintaxa unei variabile PHP este:

$nume_variabilă=valoare; unde valoare poate fi de orice tip.

Tipurile de variabile acceptate de PHP sunt:.

1. Integer care se utilizează pentru numere întregi, de exemplu: 5,-5,90.

2. Strâng care se utilizează pentru șiruri de caractere. Un string este o succesiune de caractere(șir) încadrate între ghilimele.

3.Float (Double) care se utilizează pentru numere reale;

4.Boolean utilizat pentru a defini o valoare de adevăr TRUE sau FALSE. Acest tip se folosește,în general,pentru a face diferite verificări în procesul de programare.

5.Array se utilizează pentru extragerea mai multor date de același tip.Un array poate fi considerat ca fiind un tablou în care fiecărei valori îi corespunde un număr,adică un indice(opoziție).

O constantă are un tip și o valoare.Atât tipul,cât și valoare,sunt determinate de caracterele care intră în componența constantei.Valoarea unei constante nu poate fi schimbată în timpul execuției programului în care a fost utilizată. Constantele se caracterizează prin:

li se atribuie o valoare care nu poate fi modificată sau ștearsă de-a lungul execuției programului;

constantele nu prezintă în sintaxa lor simbolul $ ;

numele unei constante este o succesiune de litere și eventual cifre, primul caracter este în mod obligatoriu literă.Aceasta este case sensitiv.

constantele au un caracter global.

definirea constantei se realizează cu funcția define().

Operatori

Interpretorul PHP permite folosirea a nouă tipuri diferite de operatori. Aceștia operează asupra unor expresii (una, două sau trei) și furnizează ca rezultat o altă expresie care este rezultatul operației corespunzătoare.

Operatorii aritmetici acționează asupra a doi sau mai mulți operanzi. Aceștia sunt:

adunare ('+')

scădere ('-');

înmulțire ('*');

împărțire ('/');

restul împărțirii ('%').

Operatorii relaționali se folosesc în procesul de compararea a două valori, variabile, constante, etc. Expresiile în care aceștia apar au ca rezultat valori logice (true sau false). Acești operatori sunt:

Operatorul de atribuire definit de semnul “=” are rolul de a atribui unei variabile, constante o valoare

Operatorul de egalitate se definește prin semnul “==” și se folosește pentru a compara două valori, expresii, etc.

Operatorul diferit este definit prin semnul “!=” și se folosește în același scop ca și operatorul de egalitate.

Operatorul mai mare este definit de semnul > .

Operatorul mai mare egal este definit de semnul >= .

Operatorul mai mic este definit de semnul < .

Operatorul mai mic egal este definit de semnul <=.

Operatorul condițional se definește prin semnul '?'. Acest operator are sintaxa: expresie1?expresie2:expresie3. Operatorul condițional returnează valoarea expresiei expresie2 în cazul în care valoarea expresiei expresie1 este true, în caz contrar va returna valoarea expresiei expresie3.

Operatorul de concatenare este un operator ce se aplică asupra șirurilor de caractere. Acest operator este definit prin semnul “.” Operația de atribuire a concatenării este definită prin semnul “.=”

Operatorii logici se folosesc în cazul în care se lucrează cu valori de adevăr. Acești operatori sunt:

Operatorul xor (SAU exclusiv) expresia în care apare operatorul 'xor' va avea valoarea true dacă exact unul dintre operanzi are această valoare.

Operatorul de negare este: ! (NOT) returnează TRUE dacă valoarea inițială de adevăr e FALSE și FALSE dacă valoarea inițială este TRUE.

Operatorul sau logic este || (OR) returnează TRUE dacă oricare din valorile verificate e T RUE. Returnează FALSE doar dacă amândouă valorile verificate sunt FALSE.

Operatorul și logic este: && (AND) returnează FALSE dacă oricare dintre valori este FALSE (sau dacă amândouă sunt FALSE) și în caz contrar returnează TRUE.

Funcții

O funcție este un ansamblu alcătuit din tipuri de date, variabile, constante și instrucțiuni scrise în vederea unei anumite prelucrări(calcule, citiri, scrieri) și care pot fi rulate doar dacă sunt apelate dintr-un script PHP. Sintaxa unei funcții este:

nume_funcție( listă parametrilor formali)

{ corp funcție; }

unde: listă de parametrilor formali este de formă: $nume_parametru1,$nume_parametru2,…,$nume_parametru n

O funcție poate fi definită oriunde în cadrul unui script. În interiorul unei funcții pot să apară orice secvență validă de cod care include definirea unor alte funcții. O funcție poate fi apelată înainte de definirea acesteia într-un script. Argumentele unei funcții trebuie separate prin virgulă și, implicit, acestea sunt transmise prin valoare. Pentru că funcția să returneze un rezultat se folosește construcția return; care primește ca parametru o expresie care reprezintă valoarea întoarsă de funcție. În momentul în care este întâlnită construcția return;, execuția funcției se încheie.

În PHP se pot defini funcții care au un număr nedeterminat de parametri. Aceste funcții se definesc la fel ca cele prezentate anterior, dar pentru a putea accesa parametri se vor folosi următoarele funcții predefinite:

• func_num_args(); – returnează numărul parametrilor funcției care a apelat-o. Dacă această funcție este apelată din exteriorul unei funcții definite de utilizator se va genera un mesaj de avertizare.

• func_get_arg(arg_num);- returnează valoarea parametrului care se află pe poziția arg_num în lista de parametri; primul parametru are numărul de ordine 0; dacă este apelată din exteriorul unei funcții definite de utilizator se va genera un mesaj de avertizare;

• func_get_args();- returnează un tablou unidimensional care conține valorile parametrilor pe care funcția apelantă i-a primit; dacă această funcție este apelată din exteriorul unei funcții definite de utilizator se va genera un mesaj de avertizare. În continuare se vor prezenta exemple de utilizare a acestor funcții.

Funcțiile predefinite se împart în următoarele categorii:

Funcțiile matematice sunt:

max(x,y,…) returnează valoarea maximă a unui set de valori;

min(x,y,…)  returnează valoarea minimă a unui set de valori;

pow(x,n)  returnează numărul x, ridicat la puterea specificată n;

sqrt(x) r

2. Funcțiile pe șiruri de caractere sunt: returnează rădăcina pătrată a lui x.

int strlen(strâng șir) are rolul de a returna lungimea șirului șir primit ca parametru.

string trim(strâng sir) are rolul de a elimina spațiile albe dintr-un șir primit ca parametru.

string ltrim(strâng sir) are rolul de a elimina spațiile albe din stânga șirului primit ca parametru.

string rtrim(strâng sir) are rolul de a elimina spațiile albe din dreapta șirului primit ca parametru.

int count(strâng sir) are rolul de a număra elementele unui șir primit ca parametru și returnează numărul lor.

int strcmp (strâng sir1, string sir2) are rolul de a compara caracter cu caracte cele două șiruri de caractere primite ca parametru. Valoarea returnată este: a. 0, dacă șir1>șir2.

string substr (strâng șir, int n [, int m])) are rolul de a returna un subșir, din șirul primit ca parametru începând cu poziția n și având lungimea m, în caz că m este specificat. Din cauză că parametrul m este specificat în sintaxa funcției între paranteze pătrate înseamnă că este opțional, deci poate lipsi și atunci se afișează toate caracterele șirului șir primit ce parametru începând cu poziția n.

string htmlspecialchars (strâng șir, [, int citare]) convertește toate caracterele speciale primite ca parametru în entități HTML

3. Funcțiile calendaristice sunt:

strftime(a) r

date() returnează ora, luna, anul precum și alte elemente ale datei curente în funcție de context ; eturnează data curentă, formatată conform conținutului parametrului a;

now() returnează data și ora curentă.

hour(t) returnează ora din cadrul parametrului. Valorile parametrului pot fi în intervalul [0-23].

Fișiere

Prelucrarea datelor dintr-un fișier presupune realizarea următoarelor acțiuni:

1. deschiderea/crearea fișierului;

2. scrierea sau citirea sau adăugarea sau citire și scriere, etc de date în fișier;

3. închiderea fișierului.

Funcția fopen(); are rolul de a deschide fișierul primit ca parametru. Sintaxa acestei funcții este:

fopen(nume_fișier, mod_deschidere); unde: nume_fișier conține fie numele, fie calea fizică, fie adresa fișierului care se dorește să se deschidă.

mod_deschidere este înlocuit cu una din valorile de mai jos care reprezintă modul în care va fi deschis fișierul specificat în nume_fișier:

r are rolul de a deschide fișierul doar pentru citire;

r+ are rolul de a deschide fișierul în citire și scriere;

w are rolul de a deschide fișierul pentru scriere;

w+ are rolul de a deschide fișierul pentru citire și scriere, iar în cazul în care acesta nu există îl crează;

a are rolul de a deschide fișierul pentru a adăuga la sfârșitul acestuia informații; a+ are rolul de a deschide fișierul pentru a adăuga la sfârșitul acestuia informații. În cazul în care acestea nu există nu îl crează;

t are rolul de a deschide fișierul în mod text ;

b are rolul de a deschide fișierul în mod binar.

Acțiunea de deschidere a unui fișier în scriere, adică introducerea de date în acesta se realizează cu funcțiile: fwrite(); care definește scrierea în fișier sau fputs(); care definește scrierea unui șir în fișier. Sintaxa funcției fwrite(); este:

int fwrite(resource handle, string sir[,int lungime]);

unde: resource handle conține valoarea returnată de funcția fopen(); sir este șirul ce se va scrie în fișier; lungime este un parametru opțional care indică numărul maxim de octeți care pot fi scriși în fișier.

Orice fișier deschis în vederea prelucrării datelor acestuia se închide cu funcția fclose(); după efectuarea tuturor acțiunilor dorite de programator. Sintaxa funcției este: fclose(resource handler);

Funcția fclose(); va returna TRUE în caz de succes și FALSE în caz de insucces. În general această funcție se execută cu succes. Deci, nu se impune cu strictețe tratarea erorilor care pot apărea la închiderea fișierelor cu această funcție.

Odată fișierul creat acesta poate fi deschis în citire. În literatura de specialitate există mai multe funcții care permit citirea datelor dintr-un fișier creat, una dintre cele mai des folosite funcții fiind fread();.

Sintaxa funcției fread(); este: string fread(resource handler, int lungime);

unde: resource handle conține valoarea returnată de funcția fopen(); lungime numărul maxim de octeți citiți sau dacă fișierul este mai mic decât valoarea precizată, citirea se va face până la sfârșitul acestuia. Existența parametrului lungime în sintaxa acestei funcții implică o citire arbitrară a conținutului unui fișier.

PHP prezintă funcții care au rolul de a citi și afișa pe ecran conținutul unui fișier precizat. Aceste funcții sunt:

1. readfile(); care deschide fișierul și afișează în browser conținutul acestuia după care îl închide. Funcția returnează un întreg care reprezintă numărul de octeți citiți din fișierul precizat că parametru. Sintaxa acestei funcții este:

int readfile(string nume_fis, [int calea,[ resource context]]);

unde nume_fis este numele fișierului care se deschide;

calea este un parametru opțional reprezentând calea spre fișierul care se dorește deschis și citit; resource context se folosește în cazul în care se deschide un fișier aflat la distanță folosind protocolale HTTP sau FTP.

2. fpassthru(); este o funcție care necesită mai întâi deschiderea explicită a fișierului cu funcția fopen(), deoarece această funcție primește ca parametru pointerul la fișier returnat de funcție funcția fopen();. Rezultatul execuției funcției fpassthru(); este afișarea în browser a conținutului fișierului de la poziția pointerului până la sfârșitul acestuia, acțiune urmată de închiderea automată a fișierului fără a mai fi nevoie să se invoce explicit funcția fclose();. Sintaxa funcției este:

fpassthru(resource handler); unde resource handle conține valoarea returnată de funcția fopen(); Această funcție returnează TRUE dacă operația de citire a fost efectuată cu succes și FALSE în caz contrar.

Funcția unlink(); are rolul de a șterge fișierul primit ca parametru. Această funcție returnează TRUE dacă ștergerea fișierului s-a putut realiza, în caz contrar returnează FALSE.

Sintaxa funcției este:

unlink(”nume_fis”); unde nume_fis poate fi numele fișierului sau întreaga cale până la fișierul dorit.

Deschiderea, prelucrarea datelor, închiderea, ștergerea unui fișier nu poate fi realizată dacă acesta nu există. În PHP funcția file_exists(); verifică existența unui fișier. Această funcție returnează TRUE dacă numele fișierului primit ca parametru există și FALSE în caz contrar. Sintaxa acestei funcții este:

file_exists(”nume_fis”); unde nume_fis poate fi numele fișierului sau întreaga cale până la fișierul dorit.

Stocarea datelor în sistemul utilizatorului cu PHP

Utilizarea unui web site de către un utilizator presupune realizarea unor acțiuni succesive care trebuie memorate pentru a oferi acestuia informația de care are nevoie, dar protocolul HTTP nu oferă o astfel de facilitate fapt pentru care a apărut noțiunea de cookie respectiv sesiune cu ajutorul cărora se pot păstra aceste informații pe calculatorul utilizatorului.

CAPITOLUL 4

IMPLEMENTAREA APLICAȚIEI

Această aplicație ecommerce are la bază un sistem de management al conținutului cu ajutorul căruia se gestionează toate informațiile stocate într-o bază de date, ce urmează a fi prezentate clienților, prin intermediul unui site web. Așadar, aplicația de față se împarte în 3 mari componente de bază:

baza de date

modulul de administrare

modulul de prezentare

Așadar, magazinul prezintă două interfețe: una pentru utilizatori și una pentru administratori.

4.1.Baza de date

La baza realizării unui site comercial se impune construirea unei baze de date care să stocheze informațiile despre produse, clienți sau tranzacții. O bază de date reprezintă o colecție de date, organizate într-o structură descrisă printr-un model conceptual sau o colecție de date aflate în interdependență, împreună cu descrierea datelor și a relațiilor dintre ele.

Bazele de date au devenit o parte integrantă din viață de zi cu zi a fiecărui om. Fără o structurare a datelor în baze de date, nu ar exista o anumită ordine între lucruri, gestiunea datelor devenind un lucru foarte greu, poate chiar imposibil. Băncile, universitățile și bibliotecile sunt doar trei exemple de organizații care depind în mare măsură de bazele de date și de gestiunea acestora. Pe Internet motoarele de căutare, procesele de cumpărături on-line, și chiar convențiile de denumire a tuturor site-urilor Web sunt activități care nu s-ar putea desfășura fără utilizarea bazelor de date.

Principala caracteristică a aplicațiilor cu baze de date constă în faptul că accentul este pus pe operațiile de memorare și regăsire efectuate asupra unui volum mare de date și mai puțin pe operațiile de prelucrarea a acestora. Mai mult, în sistemele actuale client-server, operațiile de prelucrare sunt complet rupte de cele de gestiune a datelor. Operația cel mai frecvent întâlnită în exploatarea bazelor de date este aceea de regăsire a datelor sau de interogare, în scopul obținerii de informații utile.

Analiza, proiectarea și implementarea structurii bazei de date se realizează utilizând un anumit model de date. Un asemenea model reprezintă un ansamblu de instrumente conceptuale care permit descrierea datelor, a relațiilor dintre ele, a semanticii lor, cât și a restricțiilor la care sunt supuse aceste date. Așadar, acesta este de fapt un instrument teoretic care ne ajută să identificăm semnificația sau conținutul unei colecții de date, cât și modul de utilizare a acestora, prin intermediul operaților permise asupra datelor. Modelele utilizate de bazele de date se pot grupa în trei categorii: modele bazate pe obiect, modele bazate pe înregistrări și modele fizice. În prezent, cel mai răspândit dintre modelele de baze de date este cel relațional (entitate-relație), de tip n:1.

O bază de date relațională este definită ca fiind un ansamblu de tabele sa relații între care există anumite legături, fiecare tabelă fiind alcătuită din coloane, denumite atribute și linii, denumite și tuple.

Gestionarea datelor dintr-o baza de date este asigurată de un sistem de gestiune a bazelor de date (SGBD), ce reprezintă un ansamblu de programe pentru gestiunea datelor sau un mediu de programare destinat gestiunii datelor din baza de date. Acesta asigură încărcarea bazei de date, actualizarea și interogarea acesteia, cât și interfața cu sistemul de operare în vederea simplificării accesului la date.

MySQL este un sistem de gestiune a bazelor de date relaționale foarte rapid și robust, care permite stocarea, căutarea, sortarea și regăsirea datelor în mod eficient. Serverul MySQL controlează accesul la date pentru a garanta că mai mulți utilizatori pot lucra simultan cu acestea și pentru a oferi un acces rapid la ele. Așadar, acesta este un server multi-user (mai mulți utilizatori) și multi-thread (mai multe fire de execuție), care utilizează limbajul standard de interogare a bazelor de date din toată lumea și anume SQL (Structured Query Language).

MySQL este un sistem client-server alcătuit dintr-un server SQL multi-thread care are facilități pentru mai mulți utilizatori, mai multe programe și biblioteci client, instrumente de administrare și un număr mare de interfețe de programare. Server-ul de baze de date este un program localizat pe calculatorul responsabil cu stocarea datelor, care ascultă cererile clienților sosite prin rețea și obține acces la conținutul bazei de date în funcție de aceste cereri, în scopul de a furniza clienților informațiile solicitate. Clienții reprezintă programe care se conectează la server-ul de baze de date și efectuează interogări pentru a-i indica acestuia informațiile pe care le doresc.

Baza de date folosită de aceasta aplicatie e-commerce poartă numele magazin și a fost realizată cu ajutorul serverului MySQL. Baza de date magazin se găsește în cadrul serverului MySQL iar pentru a ne conecta la ea este nevoie să creăm o sesiune cu ajutorul unui nume de utilizator și al unei parole. Am ales să folosesc atât serverul MySQL deoarece este disponibile gratis, iar utilizarea lui este simplă și eficientă.

Baza de date magazin se împarte în 6 tabele, intitulate după cum urmează: comenzi_finale, contact, cumpărături, produs, promoție, ușer.

Tabela comenzi. Este utilizată pentru stocarea tuturor informațiile cu privire la comenzile efectuate de către utilizatori. Informația stocată în cadrul acestei tabele se împarte în 19 coloane: bucați, categorie, comanda_expediata, data, denumire, emai, id, id_p, id_u, imagine, județ, localitate, număr, nume, prenume, preț/buc, preț/total, stradă, telefon.

Tabela contact. Este folosită pentru stocarea informațiilor despre clienții magazinului nostru. Informația stocată în cadrul acestei tabele se împarte în 6 coloane: dată, email, id, mesaj, nume, prenume.

Figura 2 Tabela contact

Tabela cumpărături Este folosită pentru stocarea informațiilor referitoare la cumpărăturile unui anumit client. Informația stocată în cadrul acestei tabele se împarte în 12 coloane: buc, categorie, data , denumire, id, id_p, id_u, poza, preț, preț_total, promoție, utilizator.

Figura 3 Tabela cumparaturi

Tabela produs. Este folosită pentru stocarea informațiilor referitoare la produsele existente în acest magazin. Informația stocată în cadrul acestei tabele se împarte în 11 coloane: capacitat, categorie, denumire, descriere, id, înălțime, lățime, lungime, poza, preț, stoc.

Figura 4 Tabela produs

Tabela promoție. Este folosită pentru stocarea informațiilor referitoare la promoțiile existente în cadrul magazinului. Informația stocată în cadrul acestei tabele se împarte în 9 coloane: categorie, dela, denumire, descriere, id, panala, poza, pretnou, pretvechi.

Tabela user. Este folosită pentru stocarea informațiilor necesare autentificării și identificării administratorului sau clientului. Informația stocată în cadrul acestei tabele se împarte în 7 coloane: acces, email, id, nume, parola, prenume, user.

Figura 5 Tabela user

4.2.Structura aplicației

Când vorbim despre o aplicație web ne referim la acel tip de aplicație ce rulează pe un server web și poate fi accesat de un număr nelimitat de clienți cu ajutorul unui browser. Marele avantaj al aplicațiilor web este faptul că pot fi folosite cu ușurința și de către persoane fără pregătire tehnică de specialitate în domeniul tehnologiilor web. Recent, aplicațiile web și a convenienței folosirii unui astfel de browser web pe post de client. Posibilitatea de a actualiza și de aintretine aplicațiile web fără a fi nevoie de distribuirea și instalarea software în cadrul a mii de computere client este principalul motiv pentru popularitatea acestor aplicații.

Conexiunea cu baza de date

Conexiunea aplicației la baza de date se face prin apelarea clasei„connect.php” cu următorul cod:

<?php

$connect = mysqli_connect('localhost','root','');

mysqli_select_db($connect,'magazin');

Controale folosite

La baza aplicației ecommerce stă limbajul PHP. În continuarea vă voi prezenta câteva exemple de cod:

Pentru adăugarea unui produs:

if(isset($_POST['produs'])){

echo'<center><div class="adauga_produs">

<p style="font-size:25px;font-weight: bold;"><i>Adauga produs nou</i></p>

<form action="" method="POST">

<table border="0" style="width:90%">

<tr><th style="width:30%;background-color: burlywood">Denumire</th><td><input type="text" name="denumire" style="width:100%"/></td></tr>

<tr><th style="width:30%;background-color: burlywood">Descriere</th><td><textarea name="descriere" style="width:100%" rows="10"/></textarea></td></tr>

<tr><th style="width:30%;background-color: burlywood">Categorie</th><td><select name="categorie" style="width:100%">

<option selected = "selecteaza"><center></center></option>

<option value="Servire">Servire</option>

<option value="Smart">Smart</option>

<option value="Frigider">Frigider</option>

<option value="Cutite">Cutite</option>

<option value="Congelator">Congelator</option>

<option value="Forme silicon">Forme silicon</option>

<option value="Microunde">Microunde</option>

<option value="Copii">Copii</option>

<option value="Excursie">Excursie</option>

<option value="Camara">Camara</option>

</select></td></tr>

<tr><th style="width:30%;background-color: burlywood">Lungime</th><td><input type="text" name="lungime" style="width:100%"/></td></tr>

<tr><th style="width:30%;background-color: burlywood">Latime</th><td><input type="text" name="latime" style="width:100%"/></td></tr>

<tr><th style="width:30%;background-color: burlywood">Inaltime</th><td><input type="text" name="inaltime" style="width:100%"/></td></tr>

<tr><th style="width:30%;background-color: burlywood">Capacitate</th><td><input type="text" name="capacitate" style="width:100%"/></td></tr>

<tr><th style="width:30%;background-color: burlywood">Pret</th><td><input type="text" name="pret" style="width:100%"/></td></tr>

<tr><th style="width:30%;background-color: burlywood">Stoc</th><td><input type="text" name="stoc" style="width:100%"/></td></tr>

<tr><th style="width:30%;background-color: burlywood">Imagine</th><td><input type="file" name="poza" /></td></tr>

<tr><th style="width:30%;"></th><td><center><input type="submit" name="adaugaprodus" value="Adauga produsul" class="buton"></center></td></tr>

</table>

</form>

</div></center>';

}

if(isset($_POST['adaugaprodus'])){

$categorie = $_POST['categorie'];

$denumire = $_POST['denumire'];

$descriere = $_POST['descriere'];

$lungime = $_POST['lungime'];

$latime = $_POST['latime'];

$inaltime = $_POST['inaltime'];

$capacitate = $_POST['capacitate'];

$pret = $_POST['pret'];

$stoc = $_POST['stoc'];

$poza = $_POST['poza'];

if((empty($denumire)) OR (empty($descriere)) OR (empty($lungime)) OR (empty($latime)) OR (empty($inaltime)) OR (empty($capacitate))

OR (empty($pret)) OR (empty($stoc)) OR (empty($categorie)) OR (empty($poza))){

?>

<script>

window.location = 'administrator.php';

alert('Toate campurile necesita completare!');

window.location = 'administrator.php';

</script>

<?php

}else{

$sql = mysqli_query($connect,"INSERT INTO produs VALUES('','$denumire','$descriere','$categorie','$lungime','$latime','$inaltime','$capacitate',

'$pret','$stoc','$poza')");

if($sql){

?>

<script>

window.location = 'administrator.php';

alert('Un produs nou a fost adaugat in baza de date!');

window.location = 'administrator.php';

</script>

<?php

}else{

?>

<script>

window.location = 'administrator.php';

alert('Eroare la introducerea produsului in baza de date!');

window.location = 'administrator.php';

</script>

<?php

}

}

}

Pentru modificarea user-ului:

if(isset($_POST['modificauser'])){

$sql = mysqli_query($connect,"SELECT * FROM user");

$creste = 1;

echo'

<center><p style="font-size:20px;margin-left:10%;"><i>Modifica date user</i></p></center>

<table border="1" style="width:70%;margin-left:25%;">

<tr style="background-color: burlywood">

<th>Nr. Crt</th>

<th style="width:15%;">Nume</th>

<th>Prenume</th>

<th>Email</th>

<th>Utilizator</th>

<th>Acces</th><td></td></tr>';

while($row = mysqli_fetch_array($sql)){

$id = $row['id'];

$nume = $row['nume'];

$prenume = $row['prenume'];

$email = $row['email'];

$utilizator = $row['user'];

$acces = $row['acces'];

echo'<form action="" method="POST"><th>'.$creste.'</th>

<th style="width:15%;"><input type="text" name="nume" value="'.$nume.'"style="width:100%;"/></th>

<th style="width:15%;"><input type="text" name="prenume" value="'.$prenume.'" style="width:100%;"/></th>

<th><input type="text" name="email" value="'.$email.'" style="width:100%;"/></th>

<th><input type="text" name="utilizator" value="'.$utilizator.'" style="width:100%;"/></th>

<th style="width:5%;"><input type="text" name="acces" value="'.$acces.'"style="width:100%;"/></th><th><input type="submit" name="moduser" value="Modifica" class="buton"/></th>

<input type="text" name="id" value="'.$id.'" hidden/></tr></form>';

$creste = $creste + 1;

}

echo'</table>';

}

if(isset($_POST['moduser'])){

$nume = $_POST['nume'];

$id = $_POST['id'];

$prenume = $_POST['prenume'];

$email = $_POST['email'];

$utilizator = $_POST['utilizator'];

$acces = $_POST['acces'];

if((empty($nume)) OR (empty($prenume)) OR (empty($email)) OR (empty($utilizator)) OR (empty($acces))){

?>

<script>

window.location = 'administrator.php';

alert('Toate campurile trebuie completate!');

window.location = 'administrator.php';

</script>

<?php

}else{

$sql = mysqli_query($connect,"UPDATE user SET nume = '$nume', prenume = '$prenume', email = '$email',acces = '$acces' WHERE id = '$id'");

if($sql){

?>

<script>

window.location = 'administrator.php';

alert('Modificarea utilizatorului a fost realizata cu succes!');

window.location = 'administrator.php';

</script>

<?php

}else{

?>

<script>

window.location = 'administrator.php';

alert('Eroare la modificarea utilizatorului in baza de date!');

window.location = 'administrator.php';

</script>

<?php

}

}

}

Pentru adăugarea unei promotii:

if(isset($_POST['adaugapromotie'])){

echo'<center><div class="adauga_produs">

<p style="font-size:20px;margin-left:10%;"><i>Adauga promotie</i></p>

<form action="" method="POST">

<table border="0" style="width:90%">

<tr><th style="width:30%;background-color: burlywood">Denumire</th><td><input type="text" name="denumire" style="width:100%"/></td></tr>

<tr><th style="width:30%;background-color: burlywood">Descriere</th><td><textarea name="descriere" style="width:100%" rows="10"/></textarea></td></tr>

<tr><th style="width:30%;background-color: burlywood">Categorie</th><td><select name="categorie" style="width:100%">

<option selected = "selecteaza"><center></center></option>

<option value="Servire">Servire</option>

<option value="Smart">Smart</option>

<option value="Frigider">Frigider</option>

<option value="Cutite">Cutite</option>

<option value="Congelator">Congelator</option>

<option value="Forme silicon">Forme silicon</option>

<option value="Microunde">Microunde</option>

<option value="Copii">Copii</option>

<option value="Excursie">Excursie</option>

<option value="Camara">Camara</option>

</select></td></tr>

<tr><th style="width:30%;background-color: burlywood">De la data de:</th><td><input type="date" name="dela" style="width:100%"/></td></tr>

<tr><th style="width:30%;background-color: burlywood">Pana la data de:</th><td><input type="date" name="panala" style="width:100%"/></td></tr>

<tr><th style="width:30%;background-color: burlywood">Pret vechi</th><td><input type="text" name="pretvechi" style="width:100%"/></td></tr>

<tr><th style="width:30%;background-color: burlywood">Pret nou</th><td><input type="text" name="pretnou" style="width:100%"/></td></tr>

<tr><th style="width:30%;background-color: burlywood">Imagine</th><td><input type="file" name="poza" /></td></tr>

<tr><th style="width:30%;"></th><td><center><input type="submit" name="adpromotie" value="Adauga promotia" class="buton"></center></td></tr>

</table>

</form>

</div></center>';

}

if(isset($_POST['adpromotie'])){

$categorie = $_POST['categorie'];

$denumire = $_POST['denumire'];

$descriere = $_POST['descriere'];

$dela = $_POST['dela'];

$panala = $_POST['panala'];

$pretvechi = $_POST['pretvechi'];

$pretnou = $_POST['pretnou'];

$poza = $_POST['poza'];

if((empty($denumire)) OR (empty($descriere)) OR (empty($dela)) OR (empty($panala)) OR (empty($pretvechi))

OR (empty($pretnou)) OR (empty($categorie)) OR (empty($poza))){

?>

<script>

window.location = 'administrator.php';

alert('Toate campurile necesita completare!');

window.location = 'administrator.php';

</script>

<?php

}else{

$sql = mysqli_query($connect,"INSERT INTO promotie VALUES('','$denumire','$descriere','$categorie','$dela','$panala','$pretvechi',

'$pretnou','$poza')");

if($sql){

?>

<script>

window.location = 'administrator.php';

alert('O noua promotie a fost adaugata in baza de date!');

window.location = 'administrator.php';

</script>

<?php

}else{

?>

<script>

window.location = 'administrator.php';

alert('Eroare la introducerea promotiei in baza de date!');

window.location = 'administrator.php';

</script>

<?php

}

}

}

CAPITOLUL 5

FUNCȚIONAREA APLICAȚIEI

Această aplicație ecommerce beneficiază de două tipuri de utilizator: administrator și utilizator .

Administratorul. Administratorul acestei aplicații beneficiază de drepturi depline în ceea ce privește gestionarea conținutului site-ului de prezentare și controlul drepturilor utilizatorilor modulului de administrare. Administratorul poate cumpăra, adăuga, modifică, sau șterge conținutul. În ceea ce privește controlul asupra celorlalți utilizatori ai modulului, administratorul poate să creeze conturi noi de utilizator, are drepturi de modificare asupra conturilor existente (date personale, email, nivel de acces) sau poate să le șteargă.

Utilizatorul. Utilizatorul beneficiază de drepturi de cumpărare și vizualizare de produse sau cumpărături efectuate. Utilizatorul nu are drepturi adăugare, modificare sau de ștergere a conținutului și nici de control asupra conturilor utilizatorilor cu nivel de acces superior.

Tabelul 5 Drepturile tipurilor de utilizatori

În continuarea vă voi prezenta modul în care funcționează aplicația creată de mine pas cu pas.

Oricine poate să vizualizeze acest magazin, însă doar cei care sunt autentificați pot să efectueze cumpărături. Pentru a putea efectua o comandă trebuie efectuați următorii pași:

Deschidem aplicația cu ajutorul unui browser web și pentru a putea efectua cumpărături se va apăsa pe butonul „Autentificare” din partea dreaptă a paginii web în cazul în care există deja un cont, altfel se va apăsa pe butonul „Înregistrare” tot din partea dreaptă pentru a crea un nou cont, lucru care nu va dura mai mult de câteva minute.

Figura 6 Secvență site

Autentificarea are loc prin completarea cu un username și o parolă valide în pagina de autentificare, iar la final se va apăsa butonul de „Autentificare”.

Figura 7 Secvență site

Înregistrarea se va face prin completarea unui formular de către utilizator cu date valide, iar la final va apăsa pe butonul „Inregistrare”.

Figura 8 Secvență site

Intrăm pe meniul Produse. Produsele vor apărea în ordine aleatorie din baza de date. Dacă dorim putem selecta o categorie de produse din partea stângă, astfel vizualizând doar produsele din categoria dorită.

Figura 9 Secvență site

Pentru a efectua comanda se va alege produsul dorit și se va apăsa pe butonul ”Adaugă în coș”. Dacă vrem mai multe bucăți în stânga butonului „Adăugă în coș” este un chenar unde se poate scrie de la tastatură numărul de bucăți dorit de client. După alegerea produsului și adăugarea lui în coș va apărea automat pe ecran situația curentă a coșului de cumpărături.

Figura 10 Secvență site

Dacă clientul nu mai dorește să efectueze o altă comandă se apasă pe butonul „Finalizează comanda”. În cazul în care dorim să efectuăm și alte comenzi, mergem în meniu la „Produse” și se vor alege alte produse dorite și la final se va apăsa butonul „Finalizează comanda”

În cazul introducerii unor date greșite, comanda se poate șterge.

După apăsarea butonului „Finalizează comandă” va apărea un formular unde clientul va trebui să completeze obligatoriu toate câmpurile cu informații valide , va trebui să accepte Termenii și condițiile și abia apoi va expedia comanda.

Figura 11 Secvență site

Dupa apăsarea butonului “Expediaza comanda” va apărea un mesaj în care clientul este informat de finalizarea cu success a comenzii.

Figura 12 Secvență site

Administratorul îndeplineste mai multe funcții. Dintre acestea o sa vedem câteva exemple. Pentru modificarea unui produs trebuie să parcurgem următorii pași:

Ne autentificăm ca și administrator în primul rând.

Figura 13 Secvență site

Din meniul aplicației se va face click pe “Modifica produs”.

Figura 14 Secventa site

Apoi va trebui să alegem categoria din care e produsul care vrem să îl modificăm și la final apăsăm pe butonul “Afiseaza”.

Figura 15 Secvență site

Vom avea un formular cu toate datele existente despre produsul respectiv și modificăm acolo unde vrem, iar la final apăsăm pe butonul “Modifica produsul”.

Figura 16 Secvență site

Doar administratorul poate să adauge produse, să modifice sau să șteargă produse, să modifice sau să șteargă ușer, să adauge sau să șteargă produse, să gestioneze comenzi și să vizualizeze mesajele primate de la clienții magazinului nostru online.

Pentru a se gestiona comenzile trebuie să parcurgem următorii pași:

Ne autentificăm ca și administrator în primul rând.

Din meniul aplicației se va face click pe “Comenzi”.

La următorul pas va trebui să alegem utilizatorul ale cărui comenzi vrem să le vedem și apăsăm pe butonul “Afișează”.

Figura 17 Secvență site

După ce am ales utilizatorul, ne apar toate datele de contact ale utilizatorului respectiv și comenzile efectuate de către acesta. Dacă nu am fost anunțați că acesta nu mai dorește comanda, putem apăsa pe butonul “Expediaza comanda”, altfel apăsăm butonul “Sterge comanda”.

Figura 18 Secvență site

CONCLUZII

Comerțul electronic este un concept folosit pentru orice tip de manevră comercială sau înțelegeri de afaceri ce implică transferul de informație, via Internet. A devenit un fenomen asociat cu orice tip de cumpărături sau servicii, beneficiind de o gamă impresionantă de produse.

Comerțul electronic este elementul de bază al noii economii, iar Internetul reprezintă principalul mediu prin care acesta își face simțită prezența.

Obiectivul principal al meu a fost acela de a prezenta un model de magazin online, cu toate avantajele pe care acesta le oferă, în contextul unei societăți aflate în plină dezvoltare, cum ar fi SC Fanberg SRL. Consider că prin acest proiect am reușit să demonstrez importanța comerțului electronic, care se află în continuă dezvoltare și este un domeniu de viitor.

Societatea comercială SC Fanberg SRL dacă ar alege sa utilizeze o astfel de aplicație ecommerce, ar avea o serie de avantaje, cum ar fi:

–       extinderea zonelor de activitate pentru piețele naționale și internaționale – cu un capital minim, o companie poate rapid și ușor să-și localizeze clienții, furnizorii potriviți și cei mai buni parteneri de afaceri din lume;

–       creșterea vitezei de comunicare;

–       îmbunătățirea eficienței (datele sunt în format electronic, reducând astfel, de exemplu, erorile de tastare);

–       reducerea inventarului și a managementului stocurilor;

–       reducerea timpului dintre cheltuirea capitalului și primirea produselor/serviciilor;

–       reducerea unor costuri de creare, procesare, distribuție, stocare, regăsire a informațiilor bazate pe hârtii (prin e-mail se reduc costuri privind mesageria, iar

–       atragerea de noi clienți prin intermediul unui nou canal de distribuție;

–       permite ca unele mărfuri să fie vândute la prețuri mai mici, astfel încât și oamenii cu venituri mai mici să poată cumpăra mai mult, ridicându-le standardul de viață;

–       permite oamenilor din lumea a treia și a celor din zonele rurale să aibă acces la produse și servicii, care altfel nu le-ar fi fost accesibile;

–       facilitează furnizarea de servicii publice, cum ar fi sănătatea, educația, distribuirea serviciilor sociale ale guvernelor la un cost redus și cu o calitate îmbunătățită.

BIBLIOGRAFIE

DuBois, Paul. MySQL: Second Edition, SAMS, 2003

Kovacs L. A., „Comerț electronic”, Editura Presa Universitară Clujeană, Cluj Napoca, 2002

Niederst, Jennifer. Learning Web Design (second edition), O’Reilly Media, 2003

www.drogoreanu.ro/tutorials/refcss.php

www.php.net

www.silkweb.ro

www.wikipedia.org

W3Schools Online Web Tutorials, http://www.w3schools.com

Similar Posts