Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


PROIECT "PCcomponents" - Magazin online de componente pentru calculatoare

calculatoare



+ Font mai mare | - Font mai mic



UNIVERSITATEA DIN ORADEA

FACULTATEA DE INGINERIA ELECTRICA SI TEHNOLOGIA INFORMATIEI



SPECIALIZAREA CALCULATOARE

FORMA DE INVATAMANT ZI

"PCcomponents

Magazin online de componente pentru calculatoare

INTRODUCERE

In ultimii ani programarea a suferit o schimbare de paradigma de la un peisaj dominat de sisteme izolate la un mediu on-line, in care sistemele sunt conectate in retea. In epoca in care pentru foarte multi "reteaua este calculatorul" , limbajele de programare, sistemele de operare si instrumentele de dezvoltare s-au straduit sa tina pasul. Astfel programarea web a inceput sa castige teren, punandu-se mare accent pe acest segment din development si pe calitatea aplicatiilor aferente. Aplicatiile web(site-uri) sunt la ora actuala instrumente nelipsite din toate domeniile, acestea reprezentand un mijloc eficient si facil de relationare pentru satisfacerea diverselor nevoi intre partile implicate.

Lucrarea de fata "PCcomponents" are ca scop realizarea unui site web, si mai exact al unui magazin online de componente pentru calculatoare

In ceea ce priveste realizarea acestui site, am folosit tehnologii sau limbaje de programare precum: PHP, HTML, MySQL, CSS, Javascript, Smarty template engine.

Site-ul este organizat sub forma a doua moduri si anume:

Utilizator, la care are acces doar vizitatorul site-ului, care poate sa caute produse si sa navigheze

Administrator, aici are acces doar cel care se ocupa de administrarea site-ului. Pentru a intra in aceasta pagina este nevoie de username si de parola. Acesta poate adauga noi produse.

INTERNETUL

2.1. Ce este Internetul ?

Termenul Internet sau internet, poate avea in ziua de astazi mai multe sensuri, strans inrudite, dar utilizate in contexte diferite:

numele propriu Internet (cu majuscula) se refera la reteaua mondiala unica de computere interconectate prin protocolul IP (Internet Protocol). Precursorul Internetului dateaza din , cand Defence Advanced Research Projects Agency (en:DARPA) (Agentia pentru Proiecte de Cercetare de Aparare Inaintate - a Ministerului Apararii, Department of Defense sau DoD din SUA) a creat prima retea de computere interconectate sub numele Arpanet. Super-reteaua din zilele noastre a rezultat din extinderea retelei Arpanet.

substantivul comun internet (cu minuscula) desemneaza in marea majoritate a cazurilor acceasi retea, insa vazuta ca un mediu de comunicare in masa, impreuna cu informatia si serviciile care sunt oferite utilizatorilor prin intermediul acestei retele.

Tehnic, termenul mai poate desemna si o retea de mari dimensiuni ce interconecteaza retele autonome. Acest sens corespunde etimologiei engleze a cuvantului internet, care e format prin abrevierea a doua cuvinte interconnected - interconectat si network - retea. Exemple de retele mare care merita folosinta aceasta sunt SIPRNet si FidoNet

In ziua de astazi, Internetul este sustinut si intretinut de o multime de firme comerciale. Se bazeaza pe specificatii tehnice foarte detaliate, ca de exemplu asa-numitele 'protocoale de comunicatie', care descriu toate regulile de transmitere a datelor in retea.

Protocoalele fundamentale Internet, care asigura interoperabilitatea intre orice doua calculatoare, sunt IP TCP UDP

Aceste trei protocoale reprezinta insa doar o parte din nivelul de baza al sistemului de protocoale Internet, care mai include si protocoale de control si aplicative, cum ar fi: DNS PPP SLIP ICMP POP3 IMAP SMTP HTTP HTTPS SSH Telnet FTP LDAP SSL WAP si SIP

Cine plateste pentru serviciile Internet?

Contrar asteptarilor, nimeni nu 'plateste' pentru Internet in ansamblul sau; nu exista nici o firma Internet Inc. care sa colecteze platile de la toate retelele Internet sau de la utilizatori. In schimb, toata lumea plateste pentru propria sa conexiune. NSF plateste pentru NSFNET, NASA plateste pentru NASA Science Internet. Un colegiu sau o corporatie plateste pentru conectarea sa la o retea regionala, care la randul ei plateste un furnizor national pentru accesul sau la o retea internationala.

Cum functioneaza Internet-ul ?

Inainte de a putea intelege pe deplin cum sa va orientati in Internet, trebuie sa intelegeti modul de adresare. Tot ceea ce faceti in Internet implica utilizarea unei adrese.

Adresa unui calculator il identifica in mod unic in Internet si este o succesiune de 4 numere naturale mai mici decit 255, separate prin '.'. De exemplu: 193.226.30.1, 193.226.26.30, etc. De menttonat este faptul ca cele mai semnificative sunt numerele din partea stanga. Dezavantajul memorarii si folosirii acestor numere de catre utilizatori este evident. De aceea s-a recurs la o metoda de asignare a unui nume fiecarui calculator din Internet. Restrictia de baza este aceea ca nu trebuie sa existe in Internet doua calculatoare cu acelasi nume (adresa de IP).

Numele sunt folosite doar pentru a usura utilizarea Internet-ului, calculatoarele 'preferand' sa lucreze cu adrese in format numeric. Numele calculatoarelor sunt stocate in baze de date distribuite si organizate ierarhic. Sistemul de transformare a unui nume in adresa IP si invers se numeste DNS (Domain Name Service). Exista doar 7 domenii organizationale diferite dupa cum se vede in Tabelul 1.

Tabelul 1.

Domeniu Utilizare
.com entitati comerciale
.edu Organizatii educationale
.gov Institutii guvernamentale nemilitare
.mil Organizatii militare
.org alte organizatii
.net resurse pentru retea
.int Institutii internationale (NATO)

In afara de domenii organizationale exista domenii geografice. Daca domeniul este in afara Statelor Unite, el include un cod care arata tara careia ii apartine. Fiecare tara are cate un cod, astfel incat privind la numele unui calculator putem afla unde anume se afla.

2.4. De unde vine prescurtarea WWW ?

World Wide Web, prescurtat WWW sau chiar numai Web, este doar una dintre numeroasele aplicatii de Internet, multimediala si integrativa, cu o interfata de utilizator (GUI) foarte atragatoare din punct de vedere grafic, practica si simplu de folosit, inventata de Tim Berners-Lee in

Ca termeni inruditi se folosesc:

intranet: o retea particulara cu aceleasi principii de functionare ca si Internetul, dar cu acces restrans - de exemplu intranetul sau intraneturile unei firme particulare.

extranet: un intranet particular al unei firme, la care insa au acces (partial) si anumite persoane sau grupe externe, din alte firme, ca de exemplu de la firme furnizoare sau firme-cliente.

Din cauza multelor fuziuni dintre companiile de telefonie si ISP au aparut o serie de probleme in sensul ca nu erau clar delimitate sarcinile fiecaruia. Sa presupunem ca un client suna la ISP printr-o linie telefonica. Modem-ul este o placa din calculatorul clientului care converteste semnale digitale in semnale analogice, care pot circula in reteaua telefonica. Aceste semnale sunt transferate la punctul de livrare (POP) al ISP-ului unde sunt preluate din sistemul telefonic si transferate in reteaua regionala a ISP-ului. Din acest punct sistemul este in intregime digital si foloseste comutare de pachete. Reteaua regionala a ISP -ului este formata prin interconectarea routere-lor din diverse orase pe care le deserveste compania. Daca pachetul este destinat unei gazde deservite direct de catre reteaua ISP, pachetul va fi livrat direct gazdei. Altfel, el este livrat in continuare operatorului care furnizeaza companiei ISP servicii de comunicare prin backbone-ul retelei. In partea superioara a acestei ierarhii se gasesc operatorii principali de la nivelul backbone-ului retelei, companii cum ar fi AT&T sau SPRINT. Acestia opereaza backbone-uri mari cu mii de routere conectate prin fibra optica cu banda larga de transfer. Corporatiile si firmele de hosting utilizeaza ferme de servere (masini care pot servi mii de pagini web pe secunda) conectate direct la backbone. Operatorii incurajaza aceasta conectare directa prin inchirierea de spatii in ceea ce se numeste "carrier hotel", care reprezinta, de cele mai multe ori rack-uri pentru echipamente aflate in aceeasi camera cu router-ul pentru a permite conexiuni scurte si rapide intre fermele de servere si backbone-ul retelei. Daca un pachet trimis in backbone este destinat unui ISP sau unei companii deservite de aceeasi coloana el este transmis celui mai apropiat router. Pentru a permite pachetelor sa treaca dintr-un backbone in altul, acestea sunt conectate in NAP-uri (Network Access Point). In principiu un NAP este o camera plina cu routere, cel putin unul pentru fiecare backbone conectat. O retea locala conecteaza toate aceste routere astfel incat pachetele sa poata fi retransmise din orice coloana in orice alta coloana. In afara de conectarea in NAP-uri backbone-urile de dimensiuni mari au numeroase conexiuni directe intre routerele lor, tehnica numita conectare privata (private peering). Unul dintre principalele paradoxuri ale Internet-ului este acela ca ISP-urile care la nivel public se afla in competitie pentru clienti, coopereaza in realizarea de conectari private.

Cum functioneaza WWW?

Cea mai importanta caracteristica WWW o constituie simplitatea modului de acces la resurse. In mare masura, aceasta se datoreaza protocolului de comunicatie implementat numit HTTP (HyperText Transport Protocol). O sesiune de transfer se desfasoara astfel:

-Se realizeaza o conexiune client-server

- Clientul lanseaza o cerere (request)

- Serverul furnizeaza clientului raspunsul la cererea formulata

- Serverul incheie conexiunea.

Prima etapa, cea de conectare, este vizibila prin aparitia in bara de stare a browser-ului a mesajului 'Connecting to HTTP server'. Daca conexiunea nu se poate realiza apare mesajul de eroare 'Can not connect to server', insotit de motiv. Odata conexiunea la un server HTTP stabilita, clientul lanseaza cererea. Aceasta specifica tipul de protocol folosit, resursa solicitata (fisierul sau grupul de fisiere) si in ce fel trebuie sa raspunda server-ul (metoda). Protocolul impreuna cu resursa alcatuiesc un URL (Uniform Resource Locator). Tipul protocolului este partea cea mai importanta a unui URL. Fara acesta browser-ul nu ar sti cum sa trateze resursa respectiva.

Prezentam in continuare protocoalele URL existente:

file - Pe langa informatia accesata prin Internet browserele sunt capabile sa afiseze continutul fisierelor locale; un URL de tip file este de forma:

file://litera_discAcale/nume_fisier.extensie.

ftp - Daca link-ul pointeaza catre un fisier situat pe un FTP-server cu acces public (anonymous FTP server), atunci resursa trebuie specificata ca fiind de tip ftp:

( exemplu: ftp://ftp.sorosis.ro/pub/windows/www/netscape.zip)

http - Toate documentele scrise in format HTML sunt stocate pe un WWW server.

HTTP se refera la protocolul folosit de aceste servere

gopher - Browserele WWW pot 'naviga' si pe servere Gopher folosind aceasta definitie de protocol

mailto - Este un tip special de URL care permite trimiterea mesajelor prin e-mail

news - Linkurile care pointeaza catre un newsgroup trebuie sa fie declarate folosind acest protocol

telnet - Pentru a indica faptul ca un link necesita deschiderea unei sesiuni telnet URL-ul trebuie sa fie de tip telnet. Majoritatea browserelor nu pot deschide sesiuni telnet, dar lanseaza, in schimb, programe client externe atunci cand se selecteaza un link de acest tip.

wais - Este un tip de protocol (Wide Area Information Server) care permite cautarea de informatie in baze de date indexate pornite de la cuvinte descrise in limbaj natural.

Metoda semnifica comanda explicita a clientului catre server. Cea mai utilizata este GET, ceea ce semnifica faptul ca informatia este adusa pe masina client.

Daca cererea este acceptata, server-ul produce raspunsul si transfera informatia (acest lucru este vizibil in bara de stare a browser-ului, afisandu-se progresiv informatii de transfer).

Odata transferul incheiat, server-ul inchide conexiunea si intra in actiune, clientul care trateaza informatia primita incarca si afiseaza pagina de informatie primita, salveaza informatia intr-un fisier, sau lanseaza o aplicatie numita viewer (de exemplu daca informatia consta intr-un fisier de sunet, viewer-ul asociat va fi un sound player). Intotdeauna clientul va sti sa trateze un fisier de tip HTML (HyperText Markup Language - limbajul de descriere a documentelor in format hypertext).

LIMBAJE DE PROGRAMARE UTILIZATE

3.1. HTML

Ce inseamna HTML ?

Reprezinta prescurtarea ce vine de la Hyper Text Markup Language (denumirea oficiala a standardului). Un fisier HTML este un fisier text cu extensia '.htm' sau '.html' continand pe langa text pur, si instructiuni standard de machetare (web design). Efectul machetarii este vizibil in browserele de Internet (Internet Exlorer, Netscape Navigator, Opera, etc). Practic marcajele de tip HTML din cadrul documentului spun browser-ului cum sa afiseze continutul util al fisierului.

Orice document HTML incepe cu notatia <html> si se termina cu notatia </html>. Astfel de perechi de marcaje sau etichete (acolo unde sunt perechi) se numesc in literatura de specialitate TAG-uri. Prin conventie, toate marcajele HTML incep cu o paranteza unghiulara deschisa '<' si se termina cu o paranteza unghiulara inchisa '>'. Marcajele dintre aceste paranteze transmit comenzi catre browser pentru a afisa pagina intr-un anumit mod. Unele blocuri prezinta delimitator de sfarsit de bloc, in timp ce pentru alte blocuri acest delimitator este optional sau chiar interzis.

3.1.2. Crearea unei pagini web simple

Pasi in crearea unei pagini web

Construirea unei pagini web impune urmatorii pasi:

Editarea fisierului HTML cu ajutorul unui editor de texte simplu sau dedicat. Pentru inceput se recomanda folosirea unui editor simplu, de exemplu Notepad sau WordPad.

Salvarea fisierului in directorul anterior creat folosind extensia ".html" sau ".htm". Este recomandabil a se folosi aceeasi extensie in toate fisierele HTML. Dar, in cazul nostru. vom folosi doar extensia ".html".

Vizualizarea paginii cu ajutorul unui browser.

3.1.2.3. Componentele principale ale unei pagini web

Orice pagina HTML este alcatuita din doua blocuri principale: HEAD(cap) si BODY(corp).

Partea HEAD contine de obicei informatii/metainformatii despre pagina web: titlul, autorul, cuvinte cheie, etc.

Partea BODY cuprinde informatiile ce alcatuiesc pagina web, precum si modul de formatare al acestor informatii (cum vor arata ele in browser).

Tag-ul <HTML>

Primul tag care trebuie sa apara intr-un fisier HTML este tag-ul <HTML>. El va incadra, alaturi de tag-ul sau corespunzatar de sfarsit(</HTML) intreaga pagina web.

Tag-ul <HEAD>

Acest tag va marca partea de HEAD(cap) a paginii web. Are tag corespunzator de sfarsit </HEAD>.

Tag-ul <BODY>

Cu ajutorul sau incadram continutul paginii web. Are tag corespunzator de sfarsit </BODY>.

Tag-ul <TITLE>

Marcheaza titlul unui document HTML, cel care va fi afisat in bara de titlu a browser-ului. Are tag corespunzator de sfarsit </TITLE>. Acest tag poate fi folosit numai in interiorul tag-ului <HEAD>. Daca tag-ul <TITLE> lipseste intr-o pagina HTML, atunci in bara de titlu a ferestrei browser-ului va apare numele fisierului.

Asadar, daca vrem sa cream o pagina web simpla, specificand numai titlul si un mic text drept continut vom crea urmatorul fisier HTML:

Exemplul 2.1: O pagina HTML simpla

In directorul "HTML" vom crea un subdirector "lectia2". Se va edita un fisier avand continutul prezentat mai jos si se va salva in noul subdirector cu numele "exemplul1.html". Se va incarca acest fisier in browser; pentru aceasta exista doua posibilitati: fie se va executa dublu-click pe fisier-ul HTML si acesta se va incarca automat in browser-ul implicit(default), fie se va deschide un browser si se va alege din meniul File->Open fisier-ul dorit.

<HTML>

<HEAD>

<TITLE>Exemplul 2.1</TITLE>

</HEAD>

<BODY>

Aceasta este o pagina HTML simpla.

</BODY>

</HTML>

Observatii:

  • Tag-urile HTML pot contne 'in interiorul' lor alte tag-uri HTML. Se poate observa cum tag-ul <HTML> include tag-urile <HEAD> si <BODY>, iar tag-ul <HEAD> include tag-ul <TITLE>.
  • Nu conteaza modul lor de aranjare in fisierul HTML. Se poate ca un tag sa inceapa pe un rand si se poate pune tag-ul sau corespunzator pe alt rand, etc. Totusi, este bine a se pastra o anumita ordine mai ales atunci cand se scriu fisierele HTML 'de mana' adica nu cu un editor specializat.
  • Majoritatea browser-elor, mai ales cele 'mai noi', au 'invatat' sa corecteze, sa treaca peste anumite erori ale paginilor HTML. Astfel, cele mai noi versiuni ale browser-elor nu se vor 'supara' daca tag-ul <HTML> lipseste, s.a. m.d. Totusi, pentru a avea garantia ca o pagina web creata de dvs. este vizualizata corect si de cei care poseda un browser mai vechi, este bine ca fisierele HTML sa fie scrise 'ca la carte'.

Recapitulare

O pagina web are doua parti principale: HEAD(cap) si BODY(corp).

Pentru a marca blocuri de informatie dintr-o pagina web folosim tag-uri.

PHP

Ce inseamna PHP ?

Reprezinta un limbaj de programare destinat in primul rand Internetului, aducand dinamica unei pagini de web. Este unul din cele mai importante limbaje de programare web open-source si server-side. Numele PHP provine din limba engleza si este un acronim recursiv : Php: Hypertext Preprocessor. Exemple faimoase de utilizare a acestui limbaj sunt PhpBB (forum), PhpNuke(CMS), chiar si MediaWiki software-ul din spatele Wikipedia. Folosirea PHP poate fi vazuta ca o alternativa gratuita la utilizarea unor limbaje comerciale cum sunt ASP de la Microsoft ColdFusion de la Macromedia, sau chiar JSP de la Sun Microsystems

PHP-ul este unul din cele mai folosite limbaje de programare server-side, conform unui studiu efectuat de Netcraft in aprilie , aparand pe 9 din cele 37 milioane de domenii cercetate in studiu. De asemenea, exista un grafic al cresterii folosirii PHP-ului pe site-ul oficial Popularitatea de care se bucura acest limbaj de programare se datoreaza urmatoarelor caracteristici :

Familiaritatea: sintaxa limbajului este foarte usoara combinand sintaxele unora din cele mai populare limbaje Perl sau C

Simplitatea: sintaxa limbajului este destul de libera. Nu este nevoie de includere de biblioteci sau de directive de compilare, codul PHP inclus intr-un document executandu-se intre marcajele speciale

Eficienta: PHP-ul se foloseste de mecanisme de alocare a resurselor, foarte necesare unui mediu multiuser, asa cum este Web-ul

Securitatea: PHP-ul pune la dispozitia programatorului un set flexibil si eficient de masuri de siguranta

Flexibilitatea: fiind aparut din necesitatea dezvoltarii Web-ului, PHP a fost modularizat pentru a tine pasul cu dezvoltarea diferitelor tehnologii. Nefiind legat de un anumit server web, PHP-ul a fost integrat pentru numeroasele servere web existente: Apache IIS Zeus, server, etc

Gratuitatea : este probabil cea mai importanta caracteristica a PHP-ului. Dezvoltarea PHP-ului sub licenta open-source a determinat adaptarea rapida PHP-ului la nevoile Web-ului, eficientizarea si securizarea codului.

PHP este simplu de utilizat, fiind un limbaj de programare structurat, ca si C-ul Perl-ul sau incepand de la versiunea 5 chiar Java, sintaxa limbajului fiind o combinatie a celor trei. Datorita modularitatii sale poate fi folosit si pentru a dezvolta aplicatii de sine statatorare, de exemplu in combinatie cu PHP-GTK sau poate fi folosit ca Perl sau Python in linia de comanda. Probabil una din cele mai importante facilitati ale limbajului este conlucrarea cu majoritatea bazelor de date relationale, de la MySQL si pana la Oracle, trecand prin MS Sql Server PostgreSQL, sau DB2 Urmatoarele baze de date sunt suportate de catre PHP:

PHP poate rula pe majoritatea sistemelor de operare, de la UNIX Linux Windows, sau Mac OS X si poate interactiona cu majoritatea servereler web. Codul dumneavoastra PHP este interpretat de serverul WEB si genereaza un cod HTML care va fi vazut de utilizator (clientului -

PHP are un manual oficial intretinut de comunitatea din jurul proiectului. In plus, raspunsurile la multe probleme pot fi gasite printr-o simpla cautare pe internet. Exista multe resurse disponibile pentru un programator PHP incepator.

In exemplul de mai jos este prezentat cel mai simplu cod scris in PHP, ce afiseaza ca mesaj "Buna ziua!"

<?php

# comentariu pe o singura linie

// comentariu pe o singura linie

comentariu pe mai multe linii

se pot comenta linii de cod php

echo 'acesta este un echo comentat';

echo 'Buna ziua';

?>

3.3. MySQL

3.3.1. Ce este MySQL ?

MySQL este un sistem de gestiune a bazelor de date relational, produs de compania suedeza MySQL AB si distribuit sub Licenta Publica Generala GNU. Este cel mai popular SGBD open-source la ora actuala, fiind o componenta cheie a stivei LAMP (Linux, Apache, MySQL, PHP).

Desi este folosit foarte des impreuna cu limbajul de programare PHP, cu MySQL se pot construi aplicatii in orice limbaj major. Exista multe scheme API disponibile pentru MySQL ce permit scrierea aplicatiilor in numeroase limbaje de programare pentru accesarea bazelor de date MySQL, cum are fi: C, C++, C#, Borland Delphi, Java, Perl, PHP, Python, FreeBasic, etc., fiecare dintre acestea folosind un tip spefic API. O interfata de tip ODBC denumita MyODBC permite altor limbaje de programare ce folosesc aceasta interfata, sa interactioneze cu bazele de date MySQL cum ar fi ASP sau Visual Basic. In sprijinul acestor limbaje de programare, unele companii produc componente de tip COM/COM+ sau .NET (pentru Windows) prin intermediul carora respetivele limbaje sa poata folosi acest SGBD mult mai usor decat prin intermediul sistemului ODBC. Aceste componente pot fi gratuite (ca de exemplu MyVBQL) sau comerciale.

Licenta GNU GPL nu permite incorporarea MySQL in softuri comerciale; cei care doresc sa faca acest lucru pot achizitiona, contra cost, o licenta comerciala de la compania producatoare, MySQL AB.

MySQL este o componenta integrata a platformelor LAMP sau WAMP (Linux/Windows-Apache-MySQL-PHP/Perl/Python). Popularitatea sa ca aplicatie web este strans legata de cea a PHP-ului care este adesea combinat cu MySQL si denumit Duo-ul Dinamic. In multe carti de specialitate este precizat faptul ca MySQL este mult mai usor de invatat si folosit decat multe din aplicatiile de gestiune a bazelor de date, ca exemplu comanda de iesire fiind una simpla si evidenta: "exit" sau "quit".

Prima versiune a sistemului MySQL a aparut in anul 1995. Ea avea ca scop furnizarea unui back-end (in cazul unei aplicatii client/server, portiune care ruleaza pe server) pentru site-uri care generau in mod dinamic pagini Web. Inca de la crearea sa, MySQL a avut caracteristici ca rapiditatea, stabilitatea si simplitatea.

MySQL este utilizat impreuna cu limbajele de scriptare pe partea serverului, pentru web, in special cu PHP.

3.3.2. Notiuni de baza

Bazele de date sunt folosite pentru stocarea informatiilor in vederea furnizarii ulterioare in functie de solicitarea primita.

MySQL este un sistem de baze de date functional independent. In PHP exista functii pentru toate operatiile executate asupra bazelor de date MySQL. Administrarea MySQL se poate face din linie de comanda sau folosind browserul si accesand aplicatia numita PHPMyAdmin scrisa in PHP.

Cele mai uzuale operatii cu bazele de date sunt:

Comanda

Semnificatie

CREATE

creaza o baza de date sau un tabel

DROP

sterge o baza de date sau un tabel

INSERT

adauga inregistrari intr-un tabel

DELETE

sterge inregistrari dintr-un tabel

UPDATE

updateaza inregistrarile dintr-un tabel

SELECT

selecteaza un tabel

ALTER

alterarea unui tabel

In MySQL spatiul alocat pe discul serverului este functie de tipul de date. Cateva din tipurile de date folosite in bazele de date MySQL sunt:

Tip

Semnificatie

int()

numar intreg

32 biti

bigint()

numar intreg

64 biti

tinyint()

numar intreg (-128 la 127 sau 0 la 255)

8 biti

mediumint()

numar intreg

24 biti

smallint()

numar intreg

16 biti

char()

sectiune cu lungime fixa de la 0 la 255 caractere

varchar()

sectiune cu lungime variabila de la 0 la 255 caractere

float()

numar mic cu virgula flotanta

double

numar mare cu virgula flotanta

text

sir cu maximum 65535 caractere

date()

data in format YYYY-MM-DD

date

data in format YYYY-MM-DD HH:MM:SS

time

ora in format HH:MM:SS

Pentru ca baza de date sa fuctioneze mai bine coloanelor li s-au adaugat modificatori de coloana. Tipul de date intregi incep de la valori negative la pozitive. Daca se adauga optiunea UNSIGNED, care este un modificator de coloana, nu vor mai fi valori negative ci vor incepe de la 0. Alti modificatori sunt:

AUTO_INCREMENT functioneaza cu orice tip intreg. La fiecare rand nou adaugat in baza de date numarul asociat va fi incrementat.

NULL inseamna fara valoare (diferit de spatiu sau zero).

NOT NULL inseamna ca orice inregistrare va fi considerata ceva.

PRIMARY KEY este rolul primei coloane din tabel, totodata reprezentand elementul de referinta pentru fiecare linie.

3.3.3. Campuri

Exista o larga varietate de campuri si de atribute disponibile in MySQL si vom discuta doar cateva din ele:

Tipul campului

Descriere

TINYINT

Numar Intreg mic

SMALLINT

Numar Intreg mic

MEDIUMINT

Numar Intreg

INT

Numar Intreg

VARCHAR

Text (maximum 256 caractere)

TEXT

Text

Acestea sunt doar cateva dintre campurile disponibile. O cautare pe Internet ne poate furniza lista cu toate tipurile de campuri permise.

3.3.4. Crearea unei Tabele cu PHP

Sa cream o tabela din PHP este ceva mai dificil decat cu MySQL. Avem de parcurs urmatorii pasi:
CREATE TABLE nume_tabel

Campurile sunt definite dupa cum urmeaza:

fieldname type(length) extra info,

Ultimul camp introdus nu poate include nici o virgula.

3.3.5. Principiul de functionare PHP-MySQL

Browserul web vrea sa afiseze o pagina. El cere aceasta pagina serverului web, care vazand ca este o pagina de tip PHP o trimite spre prelucrare modulului de PHP instalat. Acesta interpreteaza codul, vede ca sunt cerute date din baza de date, se conecteaza la aceasta, le obtine si genereaza codul html pentru afisarea lor.

3.4. CSS

3.4.1. Ce este CSS ?

Prescurtarea vine de la denumirea oficiala a standardului si anume Cascading Style Sheets (CSS). Fisierele CSS au extensia '.css' definind stiluri pentru paginile HTML. Stilurile indica intr-un mod mult mai riguros decat atributele HTML cum sa afiseze browser-ul elementele componente ale unui document HTML (text, grafica, formulare, etc), oferind posibilitati mult superioare standardului HTML. Fisierele CSS permit stilizarea in bloc a documentelor HTML cu un efort semnificativ mai mic decat in cazul stilizarii elementelor de pagina in cadrul fiecarui document HTML in parte, prin intermediul atributelor tagurilor.

3.4.2. La ce ajuta folosirea CSS-ului ?

Folosind CSS, se ajunge la:

1. un control mai fin asupra paginii web

2. scaderea dimensiunii in KB a paginii web, atunci cand codul CSS e continut intr-un fisier extern

3. o mai mare comoditate: modificand fisierul CSS extern, se modifica simultan toate paginile web in care acesta e inclus

4. efecte mai sofisticate decat cele produse de codul HTML: suprapunerea unei imagini peste alta imagine, a unui text peste alt text, impresia de relief, efectul hover, afisarea unor fonturi mai mari decat h1 si multe altele.

Dezavantaj: Pagina continand cod CSS poate arata diferit in navigatoare diferite, deoarece nu toate browserele interpreteaza codul CSS.

Daca se mai adauga si cod JavaScript, se vor obtine efecte si mai sofisticate, chiar de animatie. CSS + JavaScript = DHTML ( Dynamic HTML ).

3.5. Smarty template engine

Desi Smarty este cunoscut ca si un "Template Engine", el se poate defini mai exact ca si "Template/Presentation Framework". Smarty ii furnizeaza programatorului si designerului o multitudine de unelte menite sa asigure flexibilitatea si acuratetea aplicatiilor. Avantajul numarul unu al folosirii lui Smarty este separarea codului aplicatiei de partea de prezentare a sa. In acest context codul aplicatiei reprezinta partea logica a aplicatiei scrisa si intretinuta in cod php. Partea de prezentare este modul in care continutul este prezentat utilizatorului(codul html,css,javascript). In template codul smarty este delimitat de .

Exemplu: "vrem sa afisam continutul unei variabile in browser "

Fisierul index.php

<?php

&smarty = new SmartyQ;

$sir = 'un exemplu smarty!';

$smarty->assign('sir', $sir);

$smarty->display('index.tpl');

?>

Fisierul index.tpl

<html>

<head><title>exemplu</title></head>

<body></body>

</html>

Vom avea urmatorul output: un exemplu smarty!

3.6. JavaScript

Limbajul JavaScript a fost inventat de o echipa de la Netscape, care dorea sa faca browserul lor sa interactioneze mai mult cu utilizatorul si sa faca paginile mai dinamice. Desi au nume asemanatoare, limbajele JavaScript sj Java nu au nimic in comun unul cu celalalt. La inceput, cand a fost introdus in browserul Netscape Navigator prima varianta de criptare rudimentara, se numea LiveScript. In aceeasi perioada, Java era deja lansat si era din ce in ce mai cunoscut si se anticipa a fi un limbaj revolutionar. Ulterior, Netscape a actualizat browserul Navigator pentru a permite rularea de appleturi Java in Navigator 2, dar odata cu aceste actualizari a redenumit LiveScript in JavaScript. Java este un limbaj de programare dezvoltat si comercializat de compania Sun Microsystems. Limbajul Java este descendent al familiei de limbaje de programare C si C++, iar cu ajutorul lui se pot crea diverse aplicatii si se poate controla functionarea diverselor aparate electronice. Principala utilizare a limbajului Java in domeniul web (client-side), in browserul utilizatorului, este crearea de appleturi, aplicatii mici care sunt descarcate prin Internet si ruleaza in cadrul browserului. Datorita compatibilitatii interplatforma a limbajului Java, aceste appleturi ar trebui sa ruleze identic pe orice browser care permite executarea de cod Java. Appleturile Java sunt adaugate in pagina web prin folosirea tagului HTML <applet>. Cand browserul intalneste acest tag, el descarca appletul Java de pe server, iar appletul va rula in portiunea de ecran specificata in tag.

Un script JavaScript este un program inclus intr-o pagina HTML. Deoarece este incadrat de tagul <script>, textul scriptului nu apare pe ecran, dar este rulat si interpretat de catre browser. Tagul <script> este prezent cel mai frecvent in sectiunea <head> a paginii HTML, desi se pot pune si in sectiunea <body>. De obicei, scripturile care urmeaza sa afiseze mesaje pe ecran sunt scrise in <body>. Cand Microsoft a vazut ca limbajul JavaScript devenea popular, a preferat sa-si construiasca un limbaj propriu, foarte similar cu limbajul JavaScript, dar nu chiar identic, denumit JScript.

In continuare este prezentata o scurta analiza a diferitelor versiuni de browsere si versiunea de JavaScript pe care o are fiecare.

3.6.1. JavaScript creat de compania Netscape

Prima versiune, initial denumita LiveScript, a fost lansata odata cu browserul Netscape Navigator 2.0. Ea este cunoscuta si sub denumirea de JavaScript 1.0. La Navigator 3.0, a fost introdusa versiunea 1.1, care aduce suport pentru imagini, vectori, applet-uri Java si plug-in-uri. La versiunea Navigator 4.0 (cunoscut si cu numele de Netscape Communicator), a fost introdusa JavaScript 1.2. La Netscape 4.5 - JavaScript 1.3. Versiunea JavaScript 1.4 a fost conceputa sa ruleze exclusiv pe servere. La Netscape 6 a fost adaugat JavaScript 1.5. Proiectul destinat creeri browserului open-source denumit Mozilla, precum si cele derivate de la acesta, cum ar fi Camino pentru Mac OS X, folosesc ECMAScript-262, editia 3, care corespunde versiunii 1.5 de JavaScript (Netscape 6 si versiunile ulterioare se bazeaza pe Mozilla)

Browser Versiune script

7.0, Mozilla

3.6.2. JScript creat de compania Microsoft

Prima versiune denumita JScript 1.0, are cateva diferente fata de JavaScript 1.0 si se gaseste in browserul Microsoft Internet Explorer (MSIE) 3.01. Pe Windows 95/NT la unele variante de MSIE 3.02 (nu toate) este JScript 2.0 (cred ca va
dati seama ce aiureala este, unele variante cu versiunea JScript 1.0, altele, in aceeasi
versiune de MSIE cu Jscript

Ca sa aflati ce versiune de JScript aveti instalata pe calculator, cautati fisierul jscript.dll si vedeti in proprietatile lui la tabul Version (clic dreapta pe fisier - Properties - Version)

Pe Macintosh, MSIE 3.0 nu avea nici un fel de JScript, dar versiunea 3.01 are versiunea JScript 1.0, dar nu este identica cu versiunea de pe Windows (de exemplu, versiunea pentru Mac tolera obiecte de tip imagine pentru crearea de rollover la trecerea cu mouse-ul, in timp ce JScript pentru Windows nu tolera acest lucru). MSIE 4.0 are JScript 3.0 echivalent intr-o oarecare masura cu JavaScript 1.2, iar MSIE 5.0 are JScript 5.0 aproximativ echivalentul lui JavaScript 1.5. Astfel Windows 2000 avea Jscript Windows ME cu JScript 5.5, iar Windows XP foloseste 5.6

MSIE Versiunea JScript

3.x/1

3.x/2

3.6.3.Ce puteti face cu JavaScript

JavaScript va permite sa creati o interfata activa cu utilizatorul, sa dati o impresie vizuala placuta in timp ce navigati prin paginile site-ului. Puteti verifica validitatea informatiilor introduse intr-un formular inainte ca datele sa fie trimise catre server. Puteti face calcule matematice, crea pagini HTML dinamice, personalizate in functie de optiunile utilizatorului sau al browserului. JavaScript controleaza browserul, si prin intermediul scripturilor puteti deschide ferestre noi, puteti afisa mesaje de avertizare si puteti pune mesaje in bara de stare a ferestrei browserului. Puteti genera ceasuri, calendare si documente cu timpul inscris. Puteti chiar verifica prezenta plug-in-urilor in browser, si puteti redirecta utilizatorul spre o pagina diferita in cazul in care browserul nu are un anumit plug-in. Aici trebuie sa fac o precizare, se pot detecta plug-in-urile in browserele Netscape Navigator 3.0 sau mai nou (pe orice sistem de operare) si in Internet Explorer 5.0 sau mai nou (doar pe platforma Macintosh). O mentiune importanta: programele care ruleaza pe calculatorul utilizatorului sunt numite aplicatii client-side (aflate pe partea de client), si programele care ruleaza pe server (inclusiv CGI-urile) sunt numite aplicatii server-side (aflate pe partea de server) Deoarece JavaScript ruleaza pe calculatorul dumneavoastra, i-au fost impuse o serie de limitari, majoritatea din ratiuni de securitate, si anume:

nu permite citirea sau scrierea de fisiere pe calculatorul utilizatorului. Singura exceptie
este permisiunea de a scrie in directorul de cookie-uri al browserului, dar si aici sunt
anumite limite.

nu permite citirea/scrierea de fisiere pe server. Alternativa este sa rulati pe server un
program care sa preia datele trimise de script si sa le scrie pe server (un CGI, scris intr-un
limbaj precum Perl sau PHP, sau un program Java.

un script JavaScript nu poate inchide o fereastra de browser care nu a fost deschisa de el.
Astfel se evita situatia cand intrati pe un site si vi se inchid celelalte ferestre active care
contin alte site-uri.

nu poate citi informatii dintr-un browser care contine o pagina web de pe un alt server,
ca sa nu puteti afla pe ce site-uri navigheaza utilizatorul.

3.7. Alte technici si metode folosite in crearea unei pagini web

XML

In 1996, World Wide Web Consortium (W3C) a inceput sa puna bazele unui nou standard al limbajelor de marcare, care sa simplifice modul de utilizare a SGML-ului (Standard Generalized Markup Language) dar cu o structura mai rigida decat HTML1. SGML este un standard ISO de reprezentare a documentelor.

XML a aparut ca necesitate a dezvoltarii rapide si ordonate a paginilor WEB, derivand din SGML prin inlaturarea optiunilor care nu erau absolut necesare. El a retinut doar cheile markup de descriere a unui document. Este la fel de puternic ca SGML si la fel de simplu de utilizat ca HTML.

XML este un limbaj de marcare generalizat - in sensul ca setul de tag-uri nu mai este fixat, standardizat (precum la HTML), ci este extensibil (XML = eXtensible MarkupLanguage). Adica fiecare isi poate crea propriul set de tag-uri, adecvat necesitatilor. XML permite integrarea usoara de date de la surse multiple, reducerea traficului pe retea, actualizari detaliate si cautari mai inteligente. XML asigura independenta datelor structurate de aplicatie. XML completeaza HTML prin aceea ca ofera metode unitare pentru descrierea si schimbul datelor structurate. XML descrie date precum nume de orase, temperatura si presiunea atmosferica iar HTML defineste tag-uri prin care se descrie cum trebuie afisate datele, de exemplu lista sau tabel.

3.7.2. AJAX

Ajax (Asynchronous JavaScript and Xml), este o tehnica de programare pentru crearea de aplicatii web interactive. Intentia este sa faca paginile web sa para mai receptive, prin schimbul unor cantitati mici de date cu serverul in fundal, astfel incat sa nu fie nevoie ca pagina sa fie reincarcata la fiecare actiune a utilizatorului. Aceasta are ca scop cresterea interactivitatii, vitezei si usurintei in utilizare a aplicatiilor web.

Figura 6.2.1 - O cerere client-server utilizand AJAX

Ajax nu este o tehnologie in sine ci reprezinta un ansamblu de tehnologii:

HTML sau XHTML pentru structura semantica a informatiilor;

CSS pentru prezentarea informatiilor;

Javascript pentru interactivitate, pentru procesarea informatiilor prezentate;

Obiectul XMLHttpRequest pentru schimbul si manipularea informatiilor intr-o maniera asincrona cu server-ul web;

XML este folosit de obicei pentru transferarea datelor intre server si client, desi orice format functioneaza, inclusiv HTML preformatat, text simplu etc.

Componenta de baza este XMLHttpRequest. Acest obiect permite realizarea de cereri HTTP (e.g., GET si POST) dintr-un program ruland la nivel de client (browser) spre o aplicatie de pe server, intr-un mod asincron. Nu necesita reincarcarea paginilor Web.Uzual, datele vehiculate intre programele client si server sunt marcate in XML (Extensible Markup Language)

RSS

RSS este un protocol deschis de publicare a informatiei pe Web. Un RSS (Rich Site Summary) feed este un fisier XML, care descrie continutul unui site, fiind actualizat odata cu acesta. Initial utilizat de Netcape pentru a crea pagini My Netscape, RSS a fost adoptat de serviciile de informare (news syndication services ), weblog-uri.

RSS este important pentru ca permite informarea despre actualizari ale resurselor online fara a face apel la e-mailuri sau Newslettere, implicit reducand posibilitatea de a primi spam si virusi.

Un fisier RSS include un titlul, linkul, descrierea siteului si itemii de noutate; fiecare item consta din URL-ul articolului respectiv, titlul, o descriere.

Sisteme numite agregatoare - sisteme online sau RSS Readere instalate local, citesc RSS-urile si informeaza abonatii asupra modificarilor de pe site, informatia fiind astfel transmisa unei audiente largi - syndicated. Informatia din fisierele RSS este stocata in baze de date, care pot fi accesate cu multiple criterii de cautare.

3.7. Instrumente de constructie

Wamp5 - este un pachet de instrumente software pentru Windows care include:

Serverul Apache/2.2.4

PHP 5.2.2 cu urmaroarele extensii incarcate:

bcmath, calendar, com_dotnet, crype, session, filter, ftp, hash, iconv, json, odbc, pcre, Reflection, date, libxml, standard, tokenizer, zlib, SimpleXML, dom, SPL, wddx, xml, xmlreader, xmlwriter, apache2handler, mbstring, bz2, curl, exif, gd, gettext, imap, mime_magic, ming, mssql, mysql, mysqli, openssl, sockets, xsl, zip, PDO, pdo_sqlite, pdo_mssql, pdo_mysql, SQLite, magickwand

MySQL 5.0.37-community-nt

phpMyAdmin - unealta vizuala pentru crearea si administrarea bazelor de date.

MySQL - Front - este un instrument care permite lucrul cu baze de date in mod vizual. Este foarte usor de utilizat si permite realizarea sarcinilor cu maxima eficienta.

Macromedia Dreamweaver 8 - Este un editor HTML de tip WYSIWYG ('what you see is what you get').

Zend Studio5.5 - este un mediu integral de dezvoltare(IDE) professional pentru php; contine toate componentele necesare dezvoltarii unei aplicatii php complete. Dintre facilitatile oferite programatorilor, 'stie' auto-complete la functiile php, termenii specifici limbajului dar si la clasele dezvoltate de developeri.

Photoshop7 - este un instrument pentru crearea si manipularea imaginilor digitale foarte avansat.

4.Prezentarea lucrarii

Structura

Lucrarea consta in realizarea unui magazin online de componente pentru calculatoare.

Site-ul este organizat sub forma a 2 moduluri, si anume:

modul utilizator

modul administrator

Prezentarea site-ului in modul utilizator

Site-ul este structurat sub forma unuor meniri avand urmatorele continuturi :

Un meniu in partea de sus avand urmatoarea structura:

Home

Produse

Noutati

Contact

Si un meniu postat in partea din stanga care are urmatoarea structura

Boxe

Camere web

Camere foto digitale

Camere video

Carcase

Casti si nicrofoane

Cooler

Floppy disk

Hard Disk

Imprimante

Joystick

MP3 Player

Memorii

Monitoare

Mouse

Placi de baza

Placi de sunet

Placi video

Procesoare

Scannere

Tastaturi

Tunere TV

Unitati Optice

Pagina principala a site-ului o reprezinta pagina index.tpl in cadrul ei incarcandu-se toate celelate pagini din site. Pagina index.tpl este prezentata mai jos:

Voi face o prezentare scurta a fiecarei optiuni care este accesata in timpul navigarii pe site:

Home - > Reprezinta pagina care se incarca prima in pagina index.tpl. Aceasta pagina este singura care poate fi accesata fara ca un utilizator sa fie logat. Celelalte linkuri nu vor fi active si va apare un mesaj de atentionare ca si in imaginea de mai jos indemnand utilizatorul sa se logeze sau sa isi creeze cont.

In pagina Home este implementata si o functie de cautare a unui produs in baza de date si afisarea ulterioara a acestuia.

Mesaj de atentionare

Pagina Home

intrare -> Reprezinta link-ul prin care se face logarea unui utilizator. La accesarea acestui link va aparea urmatorul formular:

Formularul de logare

Daca persoana care a intrat pe site nu dispune de o parola isi poate crea un cont accesand optiunea Creare cont , sau daca a uitat parola poate accesa Am uitat parola. Mai jos sunt prezentate paginile celor doua optiuni

Creare_user Forgot password

Dupa operatiunea de logare utilizatorul poate accesa orice pagina din cadrul site-ului. In acest moment pagina index.tpl va deveni index_user.tpl care va contine linkul accountul meu in cadrul caruia utilizatorul logat va putea sa isi administreze contul

Accountul meu

Produse -> Aici sunt afisate toate produsele de pe site.

Pagina Produse

Noutati->Sunt afisate noutatile in materie de produse de pe site.

Contact->Aici sunt afisate datele de contact.

Boxe, Camere web, , Unitati optice->In cadrul acestor pagini sunt prezentate produsele pe categorii. In imaginea de mai jos este prezentata categoria Monitoare:

Pagina Monitoare

Pentru a cumpara un produs se apasa pe butonul atasat fiecarui produs pentru a pune produsul in cos.

4.3. Coduri folosite

Voi prezenta in contiunare fisierul sursa index.tpl, care este pagina principala de prezentare a interfetei site-lui, in cadrul ei incarcandu-se si continutul celorlalte pagini.

<! Codul sursa din fisierul index.tpl>

<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'https://www.w3.org/TR/html4/loose.dtd'>

<html>

<!Aici in head am inclus fisierul extern main.css>

<head>

<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>

<title>Licenta</title>

<link href='./css/main.css' type='text/css' rel='stylesheet'>

</head>

<body bgcolor='#D2FFFF'>

<table width='900' border='0' cellspacing='0' cellpadding='0' align='center' style='background-color:#E6EAEB;'>

<tr>

<td width='50' class='margin_left'>&nbsp;</td>

<td>

<table border='0' cellspacing='0' cellpadding='0'>

<tr height='7'>

<td height='7' colspan='2' class='border_top_back'>

<div class='border_top'></div>

</td>

</tr>

<tr >

<td class='logo'>

</td>

<td class='header_comp' >

<a href='index.php?page=home'>Home</a>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<a href='index.php?page=sitemap'>SiteMap</a>

</td>

</tr>

<tr>

<td colspan='2' class='menu'>

<!In tabela urmatoare se gaseste meniul site-ului>

<table border='0' cellpadding='0' cellspacing='0' align='left'>

<tr>

<td align='center' class='ceil' ><a href='index.php?page=home'>

Home

</a></td>

<td align='center' class='ceil'><a href='index.php?page=produse'>

Produse

</a></td>

<td align='center' class='ceil'><a href='index.php?page=noutati'>

Noutati

</a>

</td>

<td align='center' class='ceil'><a href='index.php?page=contact'>

Contact</a>

</td>

</tr>

</table>

</td>

</tr>

</table>

<table align='center' cellpadding='0' cellspacing='0' border='0'>

<tr valign='top'>

<td width='160'>

<! Urmeaza linkul care duce in formularul de login

<table cellpadding='0' cellspacing='0' class='login_form' width='100%'>

<tr valign='top'>

<td class='intrare_inscriere'></td>

</tr>

<tr>

<td align='center'><br>

<a href='index.php?page=member&action=intrare'>Intrare</a>

<br><br>

</td>

</tr>

</table>

<table cellpadding='0' cellspacing='0' class='login_form' width='100%'>

<tr>

<td class='produse'>&nbsp;<br><br></td>

</tr>

<!urmeaza linkurile care duc la afisarea produselor>

<tr>

<td class='margin_prod'><br>

<a href='index.php?page=boxe'>Boxe</a><br>

<a href='index.php?page=cam_web'>Camere Web</a><br>

<a href='index.php?page=cam_foto'>Camere foto digitale</a><br>

<a href='index.php?page=cam_video'>Camere video</a><br>

<a href='index.php?page=carcase'>Carcase</a><br>

<a

href='index.php?page=casti_m'>Casti si microfoane</a><br>

<a href='index.php?page=cooler'>Cooler</a><br>

<a

href='index.php?page=flopy'>Floppy Disk</a><br>

<a

href='index.php?page=hdisk'>Hard Disk</a><br>

<a href='index.php?page=imprim'>Imprimante</a><br>

<a href='index.php?page=joystik'>Joystick</a><br>

<a

href='index.php?page=mp3_p'>MP3 Player</a><br>

<a href='index.php?page=m_ram'>Memorii</a><br>

<a href='index.php?page=monitoare'>Monitoare</a><br>

<a href='index.php?page=mouse'>Mouse</a><br>

<a

href='index.php?page=placi_b'>Placi de baza</a><br>

<a

href='index.php?page=placi_s'>Placi de sunet</a><br>

<a

href='index.php?page=placi_v'>Placi video</a><br>

<a href='index.php?page=procesoare'>Procesoare</a><br>

<a href='index.php?page=scanere'>Scanere</a><br>

<a href='index.php?page=tastaturi'>Tastaturi</a><br>

<a

href='index.php?page=tunere'>Tunere TV</a><br>

<a href='index.php?page=unitati_o'>Unitati optice</a><br>

<br>

</td>

</tr>

</table>

</td>

<!-- Aici se vor incarca paginile din site, in variabila $CONTENT fiind memorat continutul fiecarei pafini dupa caz-->

<td >

</td>

<td width='135'>

<table cellpadding='0' cellspacing='0' border='0'>

<tr>

<td><img src='././promotii/promotie_webcam.jpg' alt='webcam'></td>

</tr>

</table>

</td>

</tr>

</table>

<!- urmeaza footer-ul paginii ->   

<table align='center' cellpadding='0' cellspacing='0' border='0' class='termeni_utilizare' style='border:2px solid #FFFFFF;' width='798' height='29'>

<tr>

<td align='right' width='70'><a href='index.php?page=sitemap'>SiteMap</a></td>

<td class='liniuta'></td>

<td align='center' width='110'><a href='index.php?page=termeni_u'>Termeni de Utilizare</a></td>

<td class='liniuta'></td>

<td align='center' width='50'><a href='index.php?page=contact'>Contact</a></td>

<td width='100'>&nbsp;</td>

<td align='right' style='padding-right:20px;'><a href='mailto:'>Trimite link-ul la un prieten!</a></td>

</tr>

</table>

<table align='center' cellpadding='0' cellspacing='0' border='0' class='footer' style='border:2px solid #FFFFFF;' >

<tr>

<td style='padding-left:30px;'>

SC. PC components SRL <br>

Oradea Str. Victor Hugo u. 18-22 <br>

CUI: 12753200-2-41 <br>

01-10-044692

</td>

<td >

Tel.: 00-1 452-5300 <br>

Fax: 00-1 452-5301 <br>

E-Mail: office"pccomponents.ro

</td>

<td style='padding-left:10px;'>

Copyright 2007 PCcomponents.Ro <br>

Toate drepturile Rezervate.

</td>

</tr>

</table>

</td>

<td width='50' class='margin_right'>&nbsp;</td>

</tr>

</table>

</body>

</html>

Urmeaza sa vedeti continutul fisierului sursa index.php, care este "poarta" de intrare si de iesire a paginilor si functionalitatilor site-ului

// fisierul sursa index.php

<?php

//prin functia require_once includ fisierul config.php care contine configuratiile site-ului

require_once'include/config.php';

session_start(); //pornesc sesiunea

$smarty->assign('config',$config);

#output

$template = isset($_GET['page']) ? $_GET['page'] : ''; //tine minte ce primesc prin url

//construiesc calea catre pagina primita prin url

$file = $_SERVER['document_root'].'pages/'.$_GET['page'].'.php';

#print_r($file.'<br>');

if(file_exists($file))

else

//creez obiectul user

$user = new Users();

#echo $_GET['page']; die;

// asignez variabilei CONTENT continutul fisierului .tpl a carui nume vine prin url

$smarty->assign('CONTENT', $smarty->fetch($template.'.tpl'));

#print_r($template);

//verific daca este vreun user logat si in functie de asta afisez index.tpl

if($user->isLogged())

$smarty->assign('user', $user);

$output = $smarty->fetch('index_user.tpl');

}

else

//afisez output-ul

echo $output;

?>

In continuare expun clasa Produse, in jurul careia se invarte functionalitatea de afisare si cautare a produselor. Clasa Produse este mostenita din clasa de baza DBObject.

<?php

// variabila $table_name va seta tabela din baza de date pe care va opera clasa curenta

// variabila $fields preia intr-un array numele campurilor din tabela setata

class Produse extends DBObject

return $r;

}

// functia getCategory() returneaza tara pt un id dat

function getCategory($id)

// functia search() returneaza acele produse care indeplinesc conditia

function search($condition = '')

return $r;

}

}

?>

Urmeaza clasa Users care contureaza functionalitatea legata de useri:

<?php

class Users extends DBObject

'';

$q->query($query);

Users::setLoggedUser($usr);

#$_SESSION['user'] = $usr;

return true;

}

return false;

}

//sterge userul din sesiune

function logout()

//verifica daca este logat

function isLogged()

//returneaza un user logat

function getLoggedUser()

return $_SESSION['user'];

}

//seteaza userul din sesiune

function setLoggedUser($user)

}

//verifica daca un user este standard

function isStandard()

//verifica daca un user este administrator

function isAdmin()

//verifica data ultimei inregistrari

function getLastLogin($format = 'm d y, h:m')

return $ret;

}

//returneaza data inscrierii pe site

function getSignupDate($format = 'm d y, h:m')

return $ret;

}

//verifica daca user-ul mai exista in baza de date

function isUnique($usr)

function setS($field,$value)

}

function getS($field)

function getHash($username, $id)

function setPending($hash)

function getStates($country_id)

return $ret;

}

}

?>

Este prezentat mai jos continutul fisierului member.php in cadrul caruia se va decide ce actiune sa se desfasoare

<?php

#error_reporting(E_ALL);

$action = $_GET['action'];

switch ($action)

break;

case 'login':

if ($config->isPOST())

else

}

break;

case 'home':

$u = new Users();

if ($u->isLogged())

$template = 'home';

break;

case 'iesire':

$template = 'home';

$user = new Users();

$user->logout();

jump('index.php?page=home');

break;

case 'creare_user':

$template = 'creare_user';

$options = get_db_values('countries', 'name');

$smarty->assign('country', get_options('country', $options,0));

$u = new Users();

if($config->isPOST())

else $_SESSION['error'] = 'Alegeti alt username!';

}

else $_SESSION['error'] = 'Adresa de email nu este valida!';

else $_SESSION['error'] = 'Confirmarea parolei a esuat, reintroduceti parola corect! ';

}

else $_SESSION['error'] = 'Completati toate campurile obligatorii!';

$smarty->assign('eror',$_SESSION['error']);

unset($_SESSION['error']);

}

break;

case 'accountul_meu':

$template = 'accountul_meu';

$u = new Users();

$r = $u->getLoggedUser();

$u->setId($r->getId());

$options = get_db_values('countries', 'name');

$smarty->assign('country', get_options('country', $options,$r->get('country_id')));

$smarty->assign('username',$u->get('username'));

$smarty->assign('nume',$u->get('nume'));

$smarty->assign('prenume',$u->get('prenume'));

$smarty->assign('email',$u->get('email'));

$smarty->assign('city',$u->get('city'));

$smarty->assign('phone',$u->get('phone'));

$smarty->assign('fax',$u->get('fax'));

if($config->isPOST())

else $_SESSION['error'] = 'Alegeti alt username!';

}

$u->update();

$_SESSION['error'] = 'Modificarile au fost facute cu succes! ';

$u->login($u->get('username'), $u->get('pass'));

jump('index.php?page=member&action=accountul_meu');

}

else $_SESSION['error'] = 'Adresa de email nu este valida!';

else $_SESSION['error'] = 'Confirmarea parolei a esuat, reintroduceti parola corect! ';

}

else $_SESSION['error'] = 'Completati toate campurile obligatorii!';

$smarty->assign('eror',$_SESSION['error']);

unset($_SESSION['error']);

}

break;

case 'forgot_password':

//$template = 'forgot_password';

if($config->isPOST())

else

}

else

$_SESSION['msg'] = $message;

//redirect('index.php?page=member&action=forgot_password');

}

$template = 'forgot_password';

if(isset($_SESSION['msg']))

break;

case 'date_modif':

$template = 'intrare';

break;

}

?>

Voi lua aleator o pagina cum ar fi procesoare.php, celelalte fisiere care se refera la produse vor avea aceasi structura.

<?php

$user = new Users();

if (!$user->isLogged() )

else

$pag->start = 0;

if($pag->currentPage <> 0)

}

#$smarty->assign('currentPage', $pag->currentPage);

##extrag produsele din categoria procesoare si le pun 2/pag

$ar_prod = $prod->getAll(' where cat_id=11 and subcat_id=1 LIMIT '.$pag->start.','.$pag->getLimit());

#echo '<pre>';

#print_r($ar_prod);

$smarty->assign('prod',array_values($ar_prod));

?>

Mai jos, iata cateva functii importante folosite in realizarea paginii, scrise in Javascript.

Functie pentru afisarea datei si a orei curente

<script type=text/javascript language=JavaScript>

<-functia data() afisaza ora si data curenta->

function data(dat)

html = 'Data: ' + ((time_now.getDate()<10)?'0':'') + time_now.getDate()

+(((time_now.getMonth() + 1)<10)?'-0':'-')+(time_now.getMonth() + 1)+ '-' + $year+ ' Ora: '

+ time_now.getHours() + '' +

((time_now.getMinutes() < 10) ? ':0' : ':') +time_now.getMinutes();

document.getElementById(dat).innerHTML = html;

}

</script>

<Functia change() face refresh la pagina>

<script type='text/javascript' language='javascript'>

function change()

</script>

4.4. Prezentarea site-ului in mod administrator

Accesul in mod administator se face pe baza unui username si a unei parole stiute doar de catre administratorul site-ului. In acest caz username-ul este admin iar parola admin. Acum vom avea acces la un link nou Adaugare produse prin intermediul caruia vom putea introduce produse in baza de date.

Pagina Home in mod admin

Putem astfel introduce produse in baza de date dupa cum putem vedea in imaginile de mai jos.

Formularul de introducere a produselor

4.5. Coduri folosite

In fisierul admin.php este prezentata functionalitatea de introducere a produselor

<?php

$action = $_GET['action'];

switch ($action)

if (!empty($subcat))

if ($_POST)

else

$subcat_id = 0;

#echo $parent_id.'<br>';

#echo $subcat_id.'<br>';

$articole=$_POST['prod'];

$pret = $_POST['pret'];

$descriere=nl2br($_POST['descriere']);

if ($subcat_id != 0)

else

$db = new DB_Sql();

$db->query($sql);

$link = $config->getAbsolutePath().'imag_produse/'.$db->insert_id().'.jpg';

print_r($link);

upload('photo',$link,'jpg');

deg($error);

$template = 'add';

break;

?>

4.6. Structura Bazelor de Date    

Tabela Categories

Tabela Categories contine urmatoarele campuri

id - identificatorul de categorie(cheie primara, care se incrementeaza automat)

name - numele categoriei/subcategoriei.

subcat_id - identifictorul de subcategorie(cheie, daca este 0 avem categorie, altfel subcategorie).

Tabela Categories populata:

Tabela Countries:

Contine urmatoarele campuri:

id - identificatorul tarii(cheie primara, care se incrementeaza automat.

name - numele tarii (de tip varchar(255))

Tabela Countries populata:

Tabela items:

Contine urmatoarele campuri:

id - identificatorul tarii;

cat_id - cheia care indica carei categorii apartine produsul;

subcat_id - cheia care indica carei subcategorii apartine produsul;

prod - camp de tip varchar care reprezinta numele produsului;

descriere - camp de tip text care contine descrierea produselor;

photo - camp de tip varchar;

pret - camp de tip float, in care se memoreaza pretul produselor;

Tabela items populata:

Tabela users:

Tabela confine campurile:

id - identificatorul tarii(cheia primara , care se incrementeaza automat);

user_type - cheia care indica tipul userului;

username - camp de tip varchar care retine numele de user;

pass- camp de tip varchar, care memoreaza parola ;

nume - camp de tip varchar care retine numele;

prenume - camp de tip varchar care retine prenumele;

email - camp de tip varchar care memoreaza adresa de email;

city - camp de tip varchar care memoreaza orasul;

country_id - cheia care indica tara corespunzatoare;

phone - camp de tip varchar care memoreaza numarul de telefon;

fax - camp de tip varchar care memoreaza numarul de fax;

signup_date - camp de tip timestamp care memoreaza data in care useru s-a inscris;

Tabela users populata:

Tabela user_type:

Contine:

id - identificatorul tarii;

name - camp de tip varchar care contine tipul userului(standard/admin)

Tabela user_type populata:

Tabela user_status:

Contine:

id - identificatorul tarii

name - camp de tip varchar

Tabela user_status populata:

Relatiile dintre tabele:

categories items

   

countries users

   

user_type

5. Concluzii   

Website-ul PCcomponents este un instrument util de promovare a produselor, cu o interfata prietenoasa si functionalitati accesibile si pentru cei mai neexperimentati utilizatori, care poate servi oricarei firme IT ca website de prezentare a produselor. Sigur ca aplicatia este perfectibila si chiar ar fi bine venita adaugarea de noi functionalitati. Cum toate tehnologiile IT pentru development sunt intr-o continua si rapida ascensiune, doresc sa ajustez site-ul PCcomponents, atat la nivel functional cat si la capitolul tehnologii de dezvoltare.

Site-ul este structurat sub forma a doua parti si anume: cea de utilizator, la care au acces utilizatorii, si totodata o parte de administrator, mod in care cel care se ocupa de administrarea siteului, poate adauga produse noi in baza de date.

Este foarte usor de administrat si totodata usor de updatat, astfel ca accesul site-ului web poate fi imbunatatit, singura conditie sunt cunostintele de PHP, HTML si MySQL, JavaScript, Smarty si putin AJAX, CSS sau RSS.

Un avantaj major consta in utilizarea MySQL-ului care poate manipula baze de date de mai mari dimensiuni. Acest sistem stocheaza date in tabele separat in loc sa le puna pe toate impreuna intr-o aglomerare, care face cautarea si furnizarea rezultatului mai putin rapida. Acest lucru confera viteza mai mare si flexibilitate. Utilizarea MySQL confera o buna protectie a datelor.

6. Bibliografie

Baze de date relationale , teorie si aplicatii - Cornelia Gyorodi, Oradea, editura TREIRA, 2000

Carte PHP in limba romana Bill McCart , PHP 4, Traducere de Mihai Manastireanu, editura Teora, Titlul original: PHP 4 A BEGINNER'S GUIDE . Copyright 2002 Teora

Jim Keogh - JavaScript fara mistere Ed. R.E.

https://www.php.net

https://www.smarty.net

https://ro.wikipedia.org

https://www.softpedia.com

https://www.sourceforge.net



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 2582
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved