€¦ · web viewpractic xhtml este un inlocuitor modern al mai vechiului limbaj html, fiind...

19
Liceul Teoretic “Ioan Jebelean” Sannicolau Mare PROIECT ATESTAT PROFESIONAL INFORMATICĂ Magazinul de calculatoare Autor: Cernescu Florian Carmin Profesor indrumator: Dana Marciana Jebelean

Upload: others

Post on 17-Jan-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: €¦ · Web viewPractic XHTML este un inlocuitor modern al mai vechiului limbaj HTML, fiind aproape identic cu standardul HTML 4.01, o versiune imbunatatita, mult mai stricta si

Liceul Teoretic “Ioan Jebelean”

Sannicolau Mare

PROIECT ATESTAT PROFESIONAL

INFORMATICĂ

Magazinul de calculatoare

Autor:

Cernescu Florian Carmin

Profesor indrumator:

Dana Marciana Jebelean

2012

Page 2: €¦ · Web viewPractic XHTML este un inlocuitor modern al mai vechiului limbaj HTML, fiind aproape identic cu standardul HTML 4.01, o versiune imbunatatita, mult mai stricta si

1. IntroducereMagazinul de Calculatoare este o aplicaţie web dezvoltata cu scopul prezentarii in cadrul

lucrarii de atestat la informatica din mai 2012.

Limbaje de programare folosite: PHP, XHTML, MySQL, CSS;

PHP este un limbaj de programare. Numele PHP provine din limba engleză și este un acronim recursiv : Php: Hypertext Preprocessor. Folosit inițial pentru a produce pagini web dinamice, este folosit pe scară largă în dezvoltarea paginilor și aplicațiilor web. Se folosește în principal înglobat în codul HTML. Este unul din cele mai importante limbaje de programare web open-source și server-side, existând versiuni disponibile pentru majoritatea web serverelor și pentru toate sistemele de operare. Conform statisticilor este instalat pe 20 de milioane de situri web și pe 1 milion de  servere web. Este disponibil sub Licenṭa PHP ṣi Free Software Foundation îl consideră a fi un software liber.

XHTML, sau eXtensible HyperText este un limbaj de marcare ce are aceleași capabilități expresive ca și HTML, dar cu o sintaxă mai strictă. XHTML poate fi considerat ca încrucișarea dintre HTML și XML în multe privințe, fiind o reformulare a HTML în XML. XHTML 1.0 a devenit o recomandare World Wide Web Consortium (W3C) pe data de 26 ianuarie 2000.

Practic XHTML este un inlocuitor modern al mai vechiului limbaj HTML, fiind aproape identic cu standardul HTML 4.01, o versiune imbunatatita, mult mai stricta si mai curata a standardului HTML 4.0. Abstractizand putin, afirmam ca XHTML reprezinta o definire de tip XML a unui document HTML, pe scurt o combinatie intre HTML si XML. Avantajele unei aplicatii XHTML sunt multiple: pot fi citite de toate dispozitivele XML, in timp ce pastreaza compatibilitatea cu toate browserele de Internet mai vechi sau mai noi fara a necesita specificatii suplimentare

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

Deși este folosit foarte des împreună cu limbajul de programare PHP, cu MySQL se pot construi aplicații în orice limbaj major. Există multe scheme API ( Application Programming Interface - interfața pentru programare de aplicații) disponibile pentru MySQL ce permit scrierea aplicațiilor în numeroase limbaje de programare pentru accesarea bazelor de date MySQL, cum ar fi: C, C++, C#, Java, Perl, PHP, Python, etc.

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

Page 3: €¦ · Web viewPractic XHTML este un inlocuitor modern al mai vechiului limbaj HTML, fiind aproape identic cu standardul HTML 4.01, o versiune imbunatatita, mult mai stricta si

2. Prezentarea aplicatiei2.0 Tabele folosite :

Client Produs Cos Achizitie*id_client – INT *id_produs – INT id_produs – INT *id_achizitie – INT

nume – TEXT producator - TEXT cantitate – INT id_client – INT

prenume – TEXT denumire – TEXT id_client – INT suma – FLOAT

adresa – TEXT categorie – TEXT data – DATE

contact – TEXT descriere – TEXT

user – TEXT pret – FLOAT

pass – TEXT stoc- INT

imagine – TEXT

2.1 Observatii:

-Toate cheile primare sunt precedate de simbolul “*”

-Toate campurile care sunt cheie primara nu trebuie introduse de la tastatura, la introducerea unei noi inregistrari aceasta se pune implicit pe urmatoarea valoare corecta.

-Campul “pass” este memorat sub o forma criptata, astfel incat nimeni altcineva in afara de utilizator nu poate avea acces la parola, astfel respectandu-se dreptul la intimitate pe internet.

-Campul “stoc” se actualizeaza de fiecare data la cumpararea unui produs, iar cand acesta ajunge la valoarea 0 produsul respective devine inaccesibil.

-Campul “imagine” reprezinta calea spre imaginea asociata respectivului produs.

Page 4: €¦ · Web viewPractic XHTML este un inlocuitor modern al mai vechiului limbaj HTML, fiind aproape identic cu standardul HTML 4.01, o versiune imbunatatita, mult mai stricta si

2.2 Relatii intre tabele:

- produs.id_produs = cos.id_produs

- client.id_client = cos.id_client

- client.id_client = achizitie.id_client

3. Prototipul aplicatiei

Page 5: €¦ · Web viewPractic XHTML este un inlocuitor modern al mai vechiului limbaj HTML, fiind aproape identic cu standardul HTML 4.01, o versiune imbunatatita, mult mai stricta si

3.1 Pagina principala:

Page 6: €¦ · Web viewPractic XHTML este un inlocuitor modern al mai vechiului limbaj HTML, fiind aproape identic cu standardul HTML 4.01, o versiune imbunatatita, mult mai stricta si

3.2 Contact:

Page 7: €¦ · Web viewPractic XHTML este un inlocuitor modern al mai vechiului limbaj HTML, fiind aproape identic cu standardul HTML 4.01, o versiune imbunatatita, mult mai stricta si

3.3 Produse:

Aceasta este pagina in care se afiseaza lista de produse. Produsele se pot filtra si pot fi sortate crescator/descrescator dupa pret, producator si denumire.

Page 8: €¦ · Web viewPractic XHTML este un inlocuitor modern al mai vechiului limbaj HTML, fiind aproape identic cu standardul HTML 4.01, o versiune imbunatatita, mult mai stricta si

Butonul “Adauga in cos” adauga produsul respective in cosul de cumparaturi al fiecarui utilizator in parte. In caz ca acel produs nu se mai gaseste in stoc, in loc de buton apare mesajul “Produsul nu se afla in stoc!”.

Pentru a putea vizualiza aceasta pagina, utilizatorul trebuie sa fie logat pe site

3.4 Cosul de cumparaturi:

Page 9: €¦ · Web viewPractic XHTML este un inlocuitor modern al mai vechiului limbaj HTML, fiind aproape identic cu standardul HTML 4.01, o versiune imbunatatita, mult mai stricta si

Aceasta este pagina unde se afiseaza produsele aflate in cosul de cumparaturi al fiecarui utiliator. Sub tabelul cu produse se afiseaza suma totala a comenzii.

De asemenea avem doua butoane in josul paginii: “Goleste!” – Goleste tabelul – si “Cumpara!” care goleste tabelul si adauga o noua inregistrare in tabelul “achizitie” continand id-ul utilizatorului, suma totala si data trimiterii comenzii.

Page 10: €¦ · Web viewPractic XHTML este un inlocuitor modern al mai vechiului limbaj HTML, fiind aproape identic cu standardul HTML 4.01, o versiune imbunatatita, mult mai stricta si

3.5 Contul meu:

Aceasta pagina, la fel ca si cea a produselor, cere ca utilizatorul sa fie logat pentru a putea fi vizualizata.

Page 11: €¦ · Web viewPractic XHTML este un inlocuitor modern al mai vechiului limbaj HTML, fiind aproape identic cu standardul HTML 4.01, o versiune imbunatatita, mult mai stricta si

Aici, fiecare utilizator poate sa isi modifice detaliile de contact si parola. De asemenea poate vedea care este totalul comenzilor trimise magazinului nostru online.

3.5 Inregistrare, logare si deconectare:

3.5.1 Login

Aceasta este pagina care apare cand dati click pe “login” pe pagina principal.

De asemenea cand incercati sa accesati lista de produse sau cea cu detaliile contului. In caz ca nu aveti cont, dati click pe “Inregistrati-va!”

3.5.2 Inregistrare

Aceasta este pagina in care va completati detaliile personale in scopul inregistrarii contului pe site-ul nostru.

In cazul in care toate detaliile sunt valide, veti fi redirectionat spre urmatoarea

Page 12: €¦ · Web viewPractic XHTML este un inlocuitor modern al mai vechiului limbaj HTML, fiind aproape identic cu standardul HTML 4.01, o versiune imbunatatita, mult mai stricta si

pagina:

Dati click pe login pentru a intra pe contul dumneavoastra nou creat.

In cazul in care gresiti detaliile de login, veti fi redirectionat spre urmatoarea pagina:

3.5.3 Logout

In cazul in care doriti sa iesiti de pe pagina, dati click pe link-ul “deconectare” de pe oricare pagina, care se afla deasupra meniului principal.

Veti fi redirectionat spre urmatoarea pagina:

Astfel ati fost deconectat de la site-ul nostru, iar mesajul de deasupra meniului principal devine la fel ca inainte de login:

3.6 Admin:

Page 13: €¦ · Web viewPractic XHTML este un inlocuitor modern al mai vechiului limbaj HTML, fiind aproape identic cu standardul HTML 4.01, o versiune imbunatatita, mult mai stricta si

Aceasta pagina nu poate fi accesata in mod direct, ci trebuie urmat link-ul ../admin.php

Aici se poate adauga un produs nou si se poate actualize stocul actual al unui produs aflat deja in lista

Page 14: €¦ · Web viewPractic XHTML este un inlocuitor modern al mai vechiului limbaj HTML, fiind aproape identic cu standardul HTML 4.01, o versiune imbunatatita, mult mai stricta si

4. Codul sursa4.1 Lista de produse:

require_once('login/config.php');

$link=mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die ("<h4>Conexiune esuata!</h4>");

mysql_select_db(DB_DATABASE, $link) or die ("<h4>Nu s-a gasit baza de date!</h4>");

$query="SELECT * FROM produs";

$result=mysql_query($query);

while($row=mysql_fetch_array($result))

{

echo "<div id='produs'><div id='imagine'><img src=".$row['imagine']." height='200px' width='200px'></div>";

echo "<form action='adauga_cos.php' method='post'><b>Producator:</b> ".$row['producator']."<br />

<br /><b>Denumire:</b> ".$row['denumire'];

echo "<br /><br /><b>Descriere:</b> ".$row['descriere'];

echo "<br /><br /><b>Pret:</b> ".$row['pret'];

echo "</div><br />

<input type='hidden' name='id_produs' value=".$row['id_produs'].">";

if($row['stoc']>0)

echo "<input type='submit' value='Adauga in cos'>

<input value='1' type='text' size='2' name='cantitate'> ".$row['stoc']." pe stoc."."</form><hr />";

else echo "Produsul nu se afla in stoc!<hr />";

}

Page 15: €¦ · Web viewPractic XHTML este un inlocuitor modern al mai vechiului limbaj HTML, fiind aproape identic cu standardul HTML 4.01, o versiune imbunatatita, mult mai stricta si

4.2 Cosul de cumparaturi:

$total=0;

require_once('login/config.php');

$link=mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die ("<h4>Conexiune esuata!</h4>");

mysql_select_db(DB_DATABASE, $link) or die ("<h4>Nu s-a gasit baza de date!</h4>");

$q="SELECT DISTINCT(id_produs), id_client FROM cos WHERE id_client=".$_SESSION['SESS_MEMBER_ID'];

$r=mysql_query($q);

if(mysql_num_rows($r) > 0)

{

echo "<table border='1'>";

echo "<th>Producator</th><th>Denumire</th><th>Pret</th><th>Cantitate</th>";

while($row1=mysql_fetch_array($r))

{

$query="SELECT cos.id_client, cos.id_produs, produs.id_produs, denumire, pret, SUM(cantitate) as 'cant', producator FROM cos, produs WHERE produs.id_produs=cos.id_produs AND cos.id_produs=".$row1['id_produs']." AND cos.id_client=".$_SESSION['SESS_MEMBER_ID'];

$result=mysql_query($query);

while($row=mysql_fetch_array($result))

{

Page 16: €¦ · Web viewPractic XHTML este un inlocuitor modern al mai vechiului limbaj HTML, fiind aproape identic cu standardul HTML 4.01, o versiune imbunatatita, mult mai stricta si

echo "<tr><td>".$row['producator']."</td><td>".$row['denumire']."</td>

<td>".$row['pret']."</td><td>".$row['cant']."</td></tr>";

$total=$total+$row['pret']*$row['cant'];

}

}

echo "</table>";

echo "Total comanda: ".$total." lei.";

}

else echo "<h4>Cosul dumneavoastra de cumparaturi este gol!</h4><br />";

4.3 Achizitionarea:

session_start();

require_once('login/config.php');

$link=mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die ("<h4>Conexiune esuata!</h4>");

mysql_select_db(DB_DATABASE, $link) or die ("<h4>Nu s-a gasit baza de date!</h4>");

$qt="SELECT SUM(pret*cantitate) AS total, SUM(cantitate) as cant FROM cos, produs WHERE cos.id_produs=produs.id_produs AND id_client=".$_SESSION['SESS_MEMBER_ID'];

$res=mysql_query($qt);

$row=mysql_fetch_array($res);

$total=$row['total'];

$qs="SELECT DISTINCT(id_produs) AS id FROM cos";

$results=mysql_query($qs);

while($rows=mysql_fetch_array($results))

{

$id=$rows['id'];

Page 17: €¦ · Web viewPractic XHTML este un inlocuitor modern al mai vechiului limbaj HTML, fiind aproape identic cu standardul HTML 4.01, o versiune imbunatatita, mult mai stricta si

$qs2="SELECT SUM(cantitate) AS cant FROM cos WHERE cos.id_produs=".$id;

$results2=mysql_query($qs2) or die ("Qs2");

$rows2=mysql_fetch_array($results2);

$cantitate=$rows2['cant'];

$qu="UPDATE produs SET stoc=stoc-".$cantitate." WHERE id_produs=".$id;

mysql_query($qu) or die ("qu");

}

$q="INSERT INTO achizitie (id_client, suma, data) VALUES (".$_SESSION['SESS_MEMBER_ID'].", ".$total.", '".date("Ymd")."')";

mysql_query($q) or die ("Interogare incorecta!");

$qg="DELETE FROM cos";

mysql_query($qg);