Tehnologii Web
PROIECT DE DIPLOMĂ
CUPRINSUL
1 INTRODUCERE
2 TEHNOLOGII WEB
2.1 SCURT ISTORIC
2.2 HTML
2.3 CSS
2.4 PHP
2.5 MYSQL
3 APLICAȚIA WEB
3.1 BOOTSTRAP
3.2 DESCRIEREA APLICAȚIEI
3.2.1 Modulul de înregistrare/autentificare al utilizatorilor
3.2.2 Modulul de interfață al site-ului
3.2.3 Modulul de vânzare
3.2.4 Modulul de licitații
4 BIBLIOGRAFIE
5 REFERINȚE WEB
A. CODUL SURSĂ
B. CD / DVD
Introducere
Comerțul electronic este un termen folosit pentru orice tip de afacere, sau tranzacție comercială, care implică transferul de informații pe internet. Acesta ocupă o gamă largă de tipuri de afaceri, de la site-uri ce se ocupă cu vanzarea produselor en-detail, prin intermediul site-urilor de licitații sau de muzică, la tranzacții de produse și servicii între coporații.
Tranzacțiile electronice au loc în jurul nostru de ceva timp, sub formă schimbului electronic de date (EDI – Electronic Data Interchange), introdus in anii 1960. EDI presupune ca între fiecare furnizor și client să existe o conexiune de date dedicată.
La mijlocul anilor 1990, comerțul electronic a suferit o mare transformare prin apariția Amazon si eBay.
Amazon este o companie americană de comerț online, fondată în 1994 de către Jeff Bezos. A fost lansată online în 1995. A început ca o librărie online, dar, cu timpul, a început să comercializeze produse VHS, DVD, imbrăcăminte, jucării, mobilier.În 2013 avea o cifră de afaceri de peste 70 miliarde de dolari.
eBay este cea mai mare companie multinațională de licitații online din lume. A fost fondată în anul 1995 de Pierre Omidyar. Numele inițial a fost AuctionWeb. La sfârșitul anului 2012 a înregistrat un profit de peste 15 miliarde de dolari.
Comerțul electronic se împarte în patru categorii principale:
B2B (Business to Business): acest tip de e-commerce implică afacerile între companii. De exemplu: producătorii vând distribuitorilor.
B2C (Business to Consumer): este format din întreprinderi care vând publicului larg prin intermediul software-ului "shopping cart", fără a avea nevoie de interacțiune umană. Un exemplu ar fi Amazon.
C2B (Consumer to Business): în acest caz, consumatorul publică online un proiect și un anumit buget, iar companiile licitează pentru proiect. Apoi, consumatorul analizează ofertele și selectează o ofertă.
C2C (Consumer to Consumer): acest tip de comerț este alcătuit din forumuri sau anunțuri la mica publicitate online, unde indivizii pot cumpăra sau vinde bunuri.
În cele mai multe cazuri, comerțul electronic este ajutat de un terț care are rolul de a oficia tranzacția pentru a se asigura că produsele ajung la destinație și plățile au fost făcute. Acest lucru oferă un grad de protecție consumatorilor.
Oricine poate vinde și face publicitate unui produs, din confortul propriei locuințe, acest lucru permițându-i acestuia sa înceapă cu ușurință o afacere. De aceea, pe site-urile de licitații se poate găsi o mare varietate de produse, inclusiv bunuri second-hand. Din moment ce majoritatea acestor vânzări au loc pe internet, comercianții pot ajunge la clienți la nivel național sau internațional, ceea ce duce la creșterea lor pe piață. Tranzacțiile au loc într-un ritm rapid, cu utilizarea sistemelor de plată online, precum PayPal.
Interacțiunile dintre utilizatori sunt esențiale și, prin urmare, site-urile trebuie sa fie accesibile și ușor de utilizat. Email-urile, panourile cu opinii publice, feedback-ul ajută în creșterea interactivității. Cu progresele rapide ale tehnologiei, site-urile de licitații trebuie să răspundă acestor schimbări prin actualizarea permanentă. Mai mult decăt atât, site-urile de licitații au nevoie să caute în mod constant noi oportunități de afaceri, cu scopul de a se extinde pe piață.
O rețea mare de utilizatori este, de aseenea, crucială. Având o serie diversificată de vânzători, furnizori, cumpărători, agenți de livare, numărul de utilizatori crește, ceea ce va ridica, de asemenea, nivelul de interactivitate. În plus, formarea de alinațe cu diferiți parteneri va ajuta, de asemenea, la succesul site-ului de licitații.
Nivelul de anagajament dintre cumpărător și vânzător joacă, de asemenea, un rol important în succesul licitației. Similar cu nivelul de încredere, cumpărătorii trebuie asigurați că primesc produsele cumpărate, iar vânzătorii trebuie să primească efectiv plata.
Deși cei mai mulți utilizatori preferă tranzacțiile online rapide, este benefic sa fie disponibile mai multe oferte de plată pentru a satisface nevoile cumpărătorilor.
Tehnologii web
Scurt istoric
World Wide Web (prescurtat WWW, W3 sau Web) a apărut ca urmare a necesității de a integra mai multe sisteme informatice diferite. Web-ul a trebuit să includă toate informațiile de orice fel de pe orice sistem.
A fost creat în anul 1989 de către Tim Berners-Lee, un om de știință britanic de la CERN (Organizația Europeană pentru Cercetare Nucleară). A fost inițial conceput și dezvoltat pentru a satisface cererea pentru schimbul automat de informații între oamenii de știință din universități și institute din întreaga lume.
În acea perioadă existau diverse sisteme informaționale. Acestea rulau pe diferite tipuri de computere, fiecare rulând un sistem de operare diferit și folosind diferite programe pentru a oferi utilizatorului diferite moduri de accesare a informației. Internetul exista deja. Era o foarte mare șansă ca sistemele informatice să fie conectate la o rețea care , foarte probabil, sa fie conectată, la rândul ei, la o altă rețea. Exista o cale de la o bucată de date de pe un computer, printr-o serie de rețele, la un alt computer.
Web-ul a început să fie implementat cu o singură idee comună necesară pentru a lega totul, URI (Uniform Resource Identifier – identificator uniform de resurse) care a identificat un document în spațiul abstract WWW. De la aceasta au apărut o serie de protocoale, cum ar fi HTTP (HyperText Transport Protocol) si formate de date, precum HTML (HyperText Markup Language), care au permis computerelor să schimbe informații, mapând propriile formate locale în standarde care au oferit interoperabilitate la nivel mondial.
HTML
HTML (HyperText Markup Language) este un limbaj de markup folosit pentru crearea paginilor web. HTML este scris sub forma de elemente HTML formate din tag-uri închise între paranteze unghiulare (cum ar fi <html>). Scopul unui browser web este acela de a citi documentele HTML și de a le transforma în pagini web vizibile sau sonore. Browser-ul nu afișează tag-urile HTML, dar le folosește pentru a interpretare conținutul paginii web. HTML descrie structura unui site web semantic, împreună cu indicațiile pentru prezentare.
Elementele HTML formează piatra de temelie pentru toate site-urile web. HTML permite încorporarea imaginilor și obiectelor, alături de posibilitatra de a crea elemente interactive. Oferă mijloace pentru crearea documentelor structurate prin indicarea semanticii structurale pentru text, cum ar fi titluri, paragrafe, liste, link-uri, citate, etc. Poate încorpora script-uri scrise în alte limbaje, cum ar fi JavaScript, care afectează comportamentul paginilor web.
Etichetele HTML (tag-urile) apar de obicei sub formă de perechi, de exemplu: <b> și </b>. Un element HTML începe cu o etichetă de deschidere și se termină cu o etichetă de închidere. Informația cuprinsă între etichete reprezintă conținutul elementului HTML.
Structura generală a unui document HTML este următoarea:
<html>
<head>
<title>
</title>
</head>
<body>
</body>
</html>
Elemente de bază:
Etichete pentru legături și imagini:
Etichete pentru liste:
Etichete pentru tabele:
Etichete pentru cadre:
Etichete pentru formulare:
Etichete pentru stiluri:
Etichete pentru elemente de programare:
,
CSS
CSS este un limbaj de stil care definește aspectul documentelor HTML. De exemplu CSS acoperă fonturi, culori, margini, linii, înălțimea, lățimea, imagini de fundal, funcții avansate și multe alte lucruri. CSS este o specificație fundamentală a WEB-ului și aproape toate paginile WEB folosesc CSS.
O regulă CSS este formată din două părți:
un element de selecție
un element declarativ (format din două sau mai multe declarații)
Fiecare declarație este compusă dintr-o proprietate și valoarea acesteia, proprietatea reprezentând atributul de stil ce se dorește modificat.
Exemplu:
h1 {
color: blue;
font-size: 20px;
margin-bottom: 30px;
}
Aceste stiluri pot fi definite în mai multe moduri:
definirea în antetul documentului ( se definesc atunci când sunt unice pentru acel document )
<html>
<head>
<style type="text/css">
h1 { color: blue; font-size: 20px;margin-bottom: 30px;}
</style>
</head>
<body>
<h1>Text albastru, marimea 20px, marginea de jos 30px</h1>
</body>
</html>
definirea în cadrul unui element ( in-line ). Această metodă este rar folosită.
<html>
<head>
</head>
<body>
<h2 style=”color: blue; font-style: bold”>Text albastru, bold</h2>
</body>
</html>
definirea stilurilor într-un fișier extern (de tip .CSS)
Conținutul fișierului stil.css :
h2 {
font-family: arial;
font-style: bold;
color: blue;
}
Conținutul fișierului de tip .html:
<html>
<head>
<link rel=”stylesheet” type=”text/css” href=”stil.css” title=”Foaie de stiluri”>
</head>
<body>
<h2>Acest text este verde, italic si arial<h2>
</body>
</html>
importarea unui fișier .CSS
<html>
<head>
<style type="text/css">
@import url (“stiluri.css”)
</style>
</head>
<body>
…
</body>
</html>
Elementul de selecție de tip id este folosit pentru un singur element în mid unic.
Are următoarea sintaxă:
eticheta_html#nume_id { declaratii_CSS }
Exemplu:
<html>
<head>
<style type="text/css">
#stil_1
{
text-align: center;
color: blue;
}
</style>
</head>
<body>
<p id=”stil_1”> Paragraf centrat de culoare albastra </p>
</body>
</html>
Elementul de selecție de tip class este utilizat pentru a specifica stilul pentru un grup de elemente.
Are următoarea sintaxă:
eticheta_html.nume_class { declaratii_CSS }
Exemplu:
<html>
<head>
<style type="text/css">
.centrat
{
text-align: center;
}
</style>
</head>
<body>
<h1 class=”centrat”> Titlu centrat </h1>
<p class=”centrat”> Paragraf centrat </p>
</body>
</html>
Definirea stilurilor pentru „background”
Definirea stilurilor pentru text
Definirea stilurilor pentru fonturi
Definirea stilurilor pentru liste
Modelul de tip „box” al elementelor HTML are următoarea structură:
margin – marginea exterioară a unui element, reprezentată de un spațiu gol din jurul bordurii elementului.
border – bordura ce înconjoară conținutul elementului.
padding – marginea interioară a unui element, reprezentată de un spațiu gol din jurul conținutului elementului.
content – conținutul elementului.
Definirea stilurilor pentru border:
Aceleași atribute sunt valabile și pentru border-top, border-left și border-right.
Definierea stilurilor pentru marginea exterioară a unui element:
Definirea stilurilor pentru marginea interioară a unui element:
Setarea dimensiunilor unui element:
PHP
PHP este un limbaj de scripting pe partea de server proiectat pentru construirea aplicațiilor WEB, dar, de asemenea, este un limbaj de programare de uz general. Codul PHP este, de obicei, prelucrat de un interpretor PHP, care este implementat, de obicei, ca modul nativ al unui server WEB sau un executabil CGI (Common Gateway Interface). CGI reprezintă o interfață între server și programele care generează conținutul WEB. Codul PHP poate fi amestecat cu HTML, fiind o metodă simplă de a genera pagini WEB dinamice.
Fiind o tehnologie open-source, rulează pe majoritatea sistemelor de operare și servere WEB. Sintaxa PHP provine de la mai multe limbaje de programare precum C, Java, Perl. PHP a fost scris în limbajul de programare C de Rasmus Lerdorf în 1994 pentru a monitoriza CV-ul online și alte informații personale. Mai târziu, în 1997, doi programatori, Zeev Suraskisimplă de a genera pagini WEB dinamice.
Fiind o tehnologie open-source, rulează pe majoritatea sistemelor de operare și servere WEB. Sintaxa PHP provine de la mai multe limbaje de programare precum C, Java, Perl. PHP a fost scris în limbajul de programare C de Rasmus Lerdorf în 1994 pentru a monitoriza CV-ul online și alte informații personale. Mai târziu, în 1997, doi programatori, Zeev Suraski și Andi Gutmans, au reconstruit nucleul PHP, creând astfel PHP 3 (numit acum PHP: Hypertext Preprocessor).
Un fișier PHP poate conține text, elemente HTML și scripturi PHP.
Sintaxa PHP:
un script PHP este încadrat de „<?php”, respective “?>”, se pot folosi și “<?”, “?>”
fiecare linie de cod se termină cu caracterul “;”
comentariile sunt incluse folosind “//” (pe o linie), sau încadrate de “/” și „/” (mai multe linii)
Variabilele în PHP:
pot memora numere, șiruri de caractere, vectori
sunt precedate de caracterul „$”
nu trebuie declarate, conversia facându-se automat în funcție de tipul datelor atribuite
Operatori PHP:
aritmetici: “+”, “-”, “*”, “/”, “%”, “++”, “–”
de atribuire: “=”, “+=”, “-=”, “*=”, “/=”, “.=”, “%=”
de comparare: “==”, “!=”, “<>”, “>”, “<”, “>=”, “<=”
logici: “&&”, “||”, “!”
de concatenare: “.”
Exemplu:
<?php
$msg = "Hello!";
$aa = 10;
$bb = 29;
print($msg.($aa+$bb));
?>
Tipuri de vectori:
vectori cu index numeric:
<?php
$masini = array("AUDI","BMW","Volvo");
?>
vectori asociativi:
<?php
$varsta = array("Mihai"=>"21","Gabi"=>"26","Ion"=>"18");
?>
vectori multidimensionali:
<?php
$cars = array(
array("AUDI",22,18),
array("BMW",15,13),
array("Volvo",5,2);
?>
Instrucțiuni de test:
if … else
if (conditie)
secventa cod1;
else
secventa cod2;
switch
switch (n)
{
case valoare1:
secventa cod1;
break;
case valoare2:
secventa cod2;
break;
default:
secventa cod3;
}
Instrucțiuni ciclice:
while
while (conditie)
{
secventa cod;
}
do … while
do
{
secventa cod;
}
while (conditie);
for
for (initializare; conditie; increment)
{
secventa cod;
}
foreach
<?php
$x=array(1,2,3);
foreach ($x as $value)
{
echo ($value+1)."<br/>";
}
?>
Funcții PHP:
există funcții predefinite dar și funcții definite de utilizator
numele funcției poate începe cu o literă sau cu caracterul “_”
Exemplu:
<?php
function adunare($x,$y)
{
$suma = $x+$y;
return $suma;
}
echo "32 + 14 = " . adunare(21,14);
?>
Lucrul cu fișiere în PHP (funcții importante):
fopen – deschide un fișier
fclose – închide un fișier
feof – verifică dacă s-a ajuns la sfârșitul fișierului
fgets – citește conținutul unui fișier linie cu linie
fgetc – citește conținutul unui fișier caracter cu character
file_exists – verifică existența unui fișier
fread – returnează șirul de caractere citit
fwrite – scrie un șir de caractere într-un fișier
fscanf – citire formatată dintr-un fișier
Exemplu:
<?php
$file=fopen("test.txt","r");
while(!feof($file))
{
echo fgets($file). "<br />";
}
fclose($file);
?>
MySQL
MySQL este un sistem de gestiune al bazelor de date. Probabil cel mai folosit la ora actuală. Prima versiune a MySQL a aparut în anul 1995. Acronimul SQL provine de la „Structured Quert Language” (limbaj de interogare structurat).
Deși este folosit foarte des împreună cu PHP, MySQL poate fi folosit și împreună cu alte limbaje majore. Datorită interfețelor de programare ale aplicațiilor (API) disponibile pentru MySQL, multe aplicații create în C, C++, C#, Java, Perl, PHP pot accesa cu ușurință bazele de date. MySQL reprezintă, de asemenea o componentă de bază a platformelor LAMP sau WAMP (Linux/Windows – Apache – MySQL – PHP/Perl/Python). Există diverse aplicații grafice de administrare care sunt integrate cu MySQL și permit utilizatorilor sa lucreze cu bazele de date vizual. Printre cele mai cunoscute se numără: phpMyAdmin, SQLBuddy, MySQL Query Browser, etc.
Prima operațiune ce trebuie facută când se dorește lucrul cu bazele de date este conexiunea. Funcția folosită este mysql_connect().
Exemplu:
<?php
echo "<b>Test conexiune</b><br />";
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Conexiunea nu a putut fi realizata!'.mysql_error());
}
else echo "<br /> Conexiunea a fost realizata!! <br />";
mysql_close($con);
echo "<br /> Conexiunea a fost inchisa!! <br />";
?>
Funcția folosită pentru crearea bazei este mysql_query().
Exemplu:
<?php
echo "<b>Test conexiune la o baza de date</b><br />";
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Conexiunea nu a putut fi realizata! ' . mysql_error());
}
else echo "<br /> Conexiunea a fost realizata!! <br />";
if (mysql_query("CREATE DATABASE bd_test",$con))
{
echo "Baza de date a fost creata!";
}
else
{
echo "A aparut o erorare la crearea bazei de date: " .
mysql_error();
}
mysql_close($con);
echo "<br /> Conexiunea a fost inchisa!! <br />";
?>
Pentru a lucre cu o bază de date aceasta trebuie selectată. Acest lucru este realizat cu ajutorul funcției mysql_select_db().
Exemplu:
<?php
echo "<b>Test conexiune la o baza de date</b><br />";
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Conexiunea nu a putut fi realizata! ' . mysql_error());
}
else echo "<br /> Conexiunea a fost realizata!! <br />";
mysql_select_db("bd_test", $con);
$sql = "CREATE TABLE Student
(
ID int NOT NULL AUTO_INCREMENT,
PRIMARY KEY(ID),
Nume varchar(15),
Prenume varchar(15),
Varsta int
)";
mysql_query($sql,$con);
mysql_close($con);
echo "<br /> Conexiunea a fost inchisa!! <br />";
?>
Inserarea datelor intr-o bază de date se poate face în două moduri:
INSERT INTO table_name VALUES (value1, value2, value3,…)
INSERT INTO table_name (col1, col2, col3,…) VALUES (val1,
val2, val3,…)
Exemplu:
<?php
echo "<b>Test conexiune la o baza de date</b><br />";
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Conexiunea nu a putut fi realizata! ' . mysql_error());
}
else echo "<br /> Conexiunea a fost realizata!! <br />";
mysql_select_db("bd_test", $con);
mysql_query("INSERT INTO Student (Nume, Varsta) VALUES ('Ionescu', '18')");
mysql_query("INSERT INTO Student VALUES ('10', 'Vasilescu',
'Vasile', '21')");
mysql_close($con);
echo "<br /> Conexiunea a fost inchisa!! <br />";
?>
Funcția folosită pentru selectarea înregistrărilor dintr-o bază de date este mysql_fetch_array(), iar comanda MySQL este SELECT.
Exemplu:
<?php
echo "<b>Test conexiune la o baza de date</b><br />";
$con = mysql_connect("localhost","root","");
if (!$con)
{die('Conexiunea nu a putut fi realizata!'. mysql_error());
}
else echo "<br /> Conexiunea a fost realizata!! <br />";
mysql_select_db("bd_test", $con);
$rez = mysql_query("SELECT * FROM Student");
while($inreg = mysql_fetch_array($rez))
{
echo $inreg['Nume'] . " " . $inreg['Prenume'];
echo "<br />";
}
mysql_close($con);
echo "<br /> Conexiunea a fost inchisa!! <br />";
?>
Actualizarea și ștergerea datelor dintr-o tabelă se realizează cu ajutorul comenzilor MySQL UPDATE și DELETE .
Exemplu:
<?php
echo "<b>Test conexiune la o baza de date</b><br />";
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Conexiunea nu a putut fi realizata!'.mysql_error());
}
else echo "<br /> Conexiunea a fost realizata!! <br />";
mysql_select_db("bd_test", $con);
mysql_query("UPDATE Student SET Varsta = '66' WHERE Nume =
'Ionescu' AND Prenume = 'Ion'");
mysql_query("DELETE FROM Student WHERE Nume='Ionescu'");
$rez = mysql_query("SELECT * FROM Student");
while($inreg = mysql_fetch_array($rez))
{
echo $inreg['Nume'] . " " . $inreg['Varsta'];
echo "<br />";
}
mysql_close($con);
echo "<br /> Conexiunea a fost inchisa!! <br />";
?>
Aplicația WEB
Bootstrap
Aplicația a fost creată folosind framework-ul front-end Bootstrap.
Bootstrap reprezintă o colecție de de instrumente pentru crearea de site-uri și aplicații web. Conține cod HTML și template-uri de design bazate pe CSS pentru tipografie, formulare, butoane, navigație și alte componente pentru interfață, precum și extensii JavaScript. Proiectul a fost elaborat de către Mark Otto și Jacob Thornton la Twitter ca un framework ce încurajează folosirea armonioasă a instrumentelor interne.
Bootstrap oferă un set de foi de stil care furnizează definiții ale stilurilor de bază pentru toate componentele cheie HTML. Acestea oferă un aspect modern și uniform pentru formatarea textului, tabelelor și formularelor.
Pe langă elementele HTML obișnuite, acesta conține și alte elemente de interfață utilizate frecvent. Acestea includ butoane cu funcții avansate (grupuri de butoane, butoane cu opțiunea drop-down, liste de navigare, tab-uri orizontale sau verticale, etc.), etichete, capabilitați de tipografie avansate, iconițe, mesaje de avertizare și bară de progres.
Bootstrap este compatibil cu cele mai recente versiuni ale tuturor browserelor importante. Aceste permite, de asemenea, design web receptiv. Acest lucru înseamnă că aspectul paginii web se modifică dinamic, în funcție de caracteristicile dispozitivului folosit (desktop, tabletă, telefon mobil).
Descrierea aplicației
Aplicația dezvoltată reprezintă implementarea unei soluții web pentru un magazin virtual de licitații online.
Aplicația rulează pe un server Apache instalat pe sistemul de operare Windows. De asemenea este necesară funcționarea pe serverul de web a unor versiuni recente de PHP și MySQL ca server de baze de date.
Din punct de vedere al funcționalității, aplicația este formată din următoarele module:
modulul de înregistrare/autentificare a utilizatorilor – asigură securitatea procesului de licitații al produselor.
modulul de interfață al site-ului – conține totalitatea scripturilor ce permit comunicarea cu utilizatorul, navigarea sau vizualizarea ierarhiei produselor scoase la licitație.
modulul de licitații – conține scripturile ce permit plasarea ofertelor (bid-urilor) pentru produse
modulul de vanzare – conține scripturile ce permit scoaterea la licitație a produselor.
Modulul de înregistrare/autentificare al utilizatorilor
Acest modul are rolul de a asigura securitatea procesului de comercializare a produselor, prin utilizarea autentificării utilizatorilor ce doresc să liciteze pentru produse sau să scoată la licitație produse.
In cadrul acestui modul sunt posibile următoarele scenarii:
pentru utilizatorii neînregistrați – ce doresc să beneficieze de toate facilitățile oferite, este necesara ca aceștia să treacă prin procesul de înregistrare.
pentru utilizatorii înregistrați – se face autentificarea acestora prin introducerea adresei de email (care are rolul de username) și a unei parole, ambele corecte.
Procesul de înregistrare se derulează astfel:
se solicită, în cadrul unui formular, introducerea numelui, prenumelui, adresei de email și a unei parole.
la apăsarea butonului „Creaza Cont” se preiau informațiile introduse și se verifică validatatea acestora. Dacă adresa de email are sintaxa corectă și parola conține numărul de caractere cerut și coincide cu valoarea reintrodusă, datele sunt introduse în baza de date, iar utilizatorul redirecționat către pagina de start. Dacă datele nu sunt corecte utilizatorul va fi avertizat.
Procesul de autentificare se derulează astfel:
pentru a se autentifica utilizatorul trebuie să completeze formularul de logare prin introducerea adresei de email și a parolei.
dacă acestea sunt corecte sintactic atunci se interoghează tabela utilizatori din baza de date.
adresa de email si parola au valori unice pentru fiecare înregistrare. În urma interogarii, dacă aceste date sunt corecte, ar trebui să existe o înregistrare unică.
dacă autentificarea reușește atunci utilizatorul este redirecționat către contul personal.
dacă autentificarea eșuează utilizatorul primește un mesaj de avertizare corespunzător.
Tabela din baza de date are următoarele câmpuri:
Modulul de interfață al site-ului
Acest modul conține totalitatea scripturilor ce permit comunicarea cu utilizatorul, navigarea sau vizualizarea ierarhiei produselor scoase la licitație.
Utilizatorul poate naviga prin ierarhia produselor existente, prin selectarea categoriei din care fac parte, în final ajungând la pagina produsului ce prezintă interes.
În partea de sus a paginii, header, se găsește o bară e butoane, print intermediul careia utilizatorul poate naviga prin conținutul aplicației. Prin accesarea butonului “Rafoieste Categorii”, de tipul drop-down, va apărea un meniu cu toate categoriile de produse. Prin apăsarea unui buton corespunzător unei categorii se va genera o nouă pagină ce va conține toate produsele din acea categorie. Sunt încărcate din baza de date, din tabela produse, și apoi afișate informații de bază despre produsele din această categorie. Accesarea unui produs va redirecționa utillizatorul către pagina produsului, unde va gasi informații detaliate (poze, descrierea). De asemenea, pe pagina produsului utilizatorul va putea licita pentru acel produs.
În partea de jos a paginii utilizatorul poate accesa zona de promovare a site-ului cat și zone de întrebări frecvente.
Prin accesarea meniul de utilizator aceștia pot modifica datele personale, schimba parola, vizualizarea produselor personale scoase la licitatie, vizualizarea produselor pentru care au licitat sau să acceseze formular pentru scoaterea unui produs la licitație.
Modulul de vânzare
Acest modul conține scripturile ce permit scoaterea la licitații a produselor.
Pentru a scoate un produs la licitație utilizatorul trebuie să completeze un formular cu date despre produs. Acest formular are următoarele câmpuri:
Nume Produs – se introduce numele produsului (titlul)
Categorie – se selectează categoria din care face parte produsul
Descriere – se introduc informații despre produs
Imagini – utilizatorul are posibilitatea sa introducă până la 4 imagini ale produsului
Preț Inițial – se introduce suma de la care utilizatorul dorește să pornească licitația (număr întreg)
Durata – se selectează durata cât se dorește ca produsul sa fie scos la licitație (între 1 și 7 zile)
Baza de date conține următoarele tabele necesare pentru funcționarea scripturilor de vânzare:
tabela produse
tabela categorii
tabela imagini_produse
Modulul de licitații
Bibliografie
Inițiere in PHP 5, Editura TEORA, București, 2005
Referințe web
http://www.businessnewsdaily.com/4872-what-is-e-commerce.html
http://www.networksolutions.com/education/what-is-ecommerce/
http://en.wikipedia.org/wiki/Customer_to_customer
http://en.wikipedia.org/wiki/HTML
http://html.net/tutorials/css/lesson1.php
http://www.nusphere.com/php/php_history.htm?
http://en.wikipedia.org/wiki/MySQL
http://getbootstrap.com/
Codul sursă
Codul sursă pentru înregistrare (signup.php)
<div class="row">
<div class="col-sm-6 col-md-4 col-md-offset-4">
<h1 class="text-center login-title">Creare Cont</h1>
<div class="account-wall">
<div class="text-center">
<span class="fa-stack fa-5x">
<i class="fa fa-circle fa-stack-2x text-primary"></i>
<i class="fa fa-user fa-stack-1x fa-inverse"></i>
</span>
</div>
<form class="form-signin" method="post"action="<?php echo site_url('main/login') ?>">
<input name="nume" type="text" class="form-control" placeholder="Nume" required autofocus>
<input name="prenume" type="text" class="form-control" placeholder="Prenume" required>
<input name="email" type="text" autocomplete="off" class="form-control" placeholder="Email" required>
<input name="parola" type="password" autocomplete="off" class="form-control" placeholder="Parola" required>
<input name="parola2" type="password" autocomplete="off" class="form-control last" placeholder="Reintroduceti Parola" required>
<input class="btn btn-lg btn-primary btn-block" type="submit" value="Creaza Cont">
</form>
</div>
<a href="<?php echo site_url('main/login') ?>" class="text-center new-account">Ai cont? Log in aici!</a>
</div>
</div>
Codul sursă pentru autentificare (login.php)
<div class="row">
<div class="col-sm-6 col-md-4 col-md-offset-4">
<h1 class="text-center login-title">Logare</h1>
<div class="account-wall">
<div class="text-center">
<span class="fa-stack fa-5x">
<i class="fa fa-circle fa-stack-2x text-primary"></i>
<i class="fa fa-user fa-stack-1x fa-inverse"></i>
</span>
</div>
<form class="form-signin" method="post" action="<?php echo site_url('main/login') ?>">
<input name="email" type="text" autocomplete="off" class="form-control" placeholder="Email" required autofocus>
<input name="parola" type="password" autocomplete="off" class="form-control last" placeholder="Parola" required>
<input class="btn btn-lg btn-primary btn-block" type="submit" value="Log In">
</form>
</div>
<a href="<?php echo site_url('main/signup') ?>" class="text-center new-account">Creaza Cont</a>
</div>
</div>
Codul sursă pentru scoaterea la licitație (vinde.php):
<h3>Pune in vanzare</h3>
<form class="form-horizontal" action="<?php echo site_url('account/vinde') ?>" method="post" id="update-user-form" enctype="multipart/form-data">
<div class="row">
<div class="col-md-12">
<fieldset>
<div class="form-group">
<label class="col-sm-3 control-label"for="textinput">Nume Produs</label>
<div class="col-sm-9">
<input type="text" placeholder="Nume Produs" class="form-control" name="nume" value="" required>
</div>
</div>
<div class="form-group">
<label for="categorie" class="col-sm-3 control-label">Categorie</label>
<div class="col-sm-9">
<select name="categorie" id="categorie" class="form-control">
<?php
$categorii = $this->db->query("select * from categorii order by nume");
foreach ($categorii->result() as $categorie) {
?>
<option value="<?php echo $categorie->id ?>"><?php echo $categorie->nume ?></option>
<?php
}
?>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label" for="textinput">Descriere</label>
<div class="col-sm-9">
<textarea class="form-control" name="descriere" id="descriere" cols="30" rows="10"></textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label" for="textinput">Imagini (doar JPEG)</label>
<div class="col-sm-9">
<div class="row">
<div class="col-sm-12">
<input type="file" name="poze[0]" id="poza4" class=""/>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<input type="file" name="poze[1]" id="poza1" class=""/>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<input type="file" name="poze[2]" id="poza2" class=""/>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<input type="file" name="poze[3]" id="poza3" class=""/>
</div>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label" for="textinput">Pret Initial (RON)</label>
<div class="col-sm-9">
<input type="text" placeholder="" class="form-control" name="pret" value="0" required>
</div>
</div>
<div class="form-group">
<label for="categorie" class="col-sm-3 control-label">Durata</label>
<div class="col-sm-9">
<select name="durata" id="durata" class="form-control">
<?php
for ($i = 1; $i <= 7; $i++) {
?>
<option value="<?php echo $i ?>"><?php echo ($i > 1) ? $i . ' Zile' : $i . ' Zi' ?></option>
<?php
}
?>
</select>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="pull-right">
<button type="submit" class="btn btn-primary">Salveaza Produs</button>
</div>
</div>
</div>
</fieldset>
</div>
</div>
</form>
Codul sursă pentru schimbare parolă (schimbaParola.php):
<?php
$this->load->view('global/user-header');
?>
<h3>Schimbare Parola</h3>
<form class="form-horizontal" action="<?php echo site_url('account/schimba_parola') ?>" method="post" id="update-user-form" enctype="multipart/form-data">
<div class="row">
<div class="col-md-12">
<fieldset>
<div class="form-group">
<label class="col-sm-3 control-label" for="textinput">Parola Veche</label>
<div class="col-sm-9">
<input type="password" placeholder="Parola Veche" class="form-control" name="parola_veche" value="" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label" for="textinput">Parola Noua</label>
<div class="col-sm-9">
<input type="password" placeholder="Parola Noua" class="form-control" name="parola" value="" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label" for="textinput">Repetati Parola</label>
<div class="col-sm-9">
<input type="password" placeholder="Repetati Parola" class="form-control" name="parola2" value="" required>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="pull-right">
<button type="submit" class="btn btn-primary">Salveaza</button>
</div>
</div>
</div>
</fieldset>
</div>
</div>
</form>
<?php
$this->load->view('global/user-footer');
Codul sursă pentru afișarea produselor personale (produse.php):
<h3>Produsele Mele</h3>
<table class="table-condensed table-bordered" style="width: 100%;">
<thead>
<tr>
<th>ID#</th>
<th style="width: 100px;">Poza</th>
<th>Nume Produs</th>
<th>Categorie</th>
<th>Pret Curent</th>
<th>Expira</th>
<th>Actiuni</th>
</tr>
</thead>
<tbody>
<?php
$categorii = array();
$cats = $this->db->query("select * from categorii order by nume");
foreach ($cats->result() as $categorie) {
$categorii[$categorie->id] = $categorie->nume;
}
$produse = $this->db->query("select * from produse where user_id=" . $this->user->getUserId() . ' order by data_finala desc');
foreach ($produse->result() as $produs) {
?>
<tr>
<td><?php echo $produs->id ?></td>
<td style="text-align: center;">
<?php
$poza = site_url('uploads/no_img.jpg');
$prima_poza = $this->db->query("select * from imagini_produse where id_produs = " . $produs->id . " order by id limit 1");
if ($prima_poza->num_rows()) {
$prima_poza = $prima_poza->result();
$prima_poza = $prima_poza[0];
$poza = site_url('uploads/' . $prima_poza->imagine);
}
?>
<img class="thumbnail" style="width: 90%; height: auto; margin: auto;" src="<?php echo $poza; ?>" alt=""/>
</td>
<td><?php echo $produs->nume ?></td>
<td><?php echo $categorii[$produs->categorie] ?></td>
<td><?php echo ($produs->pret_curent) ? $produs->pret_curent : $produs->pret ?></td>
<td><?php echo ($produs->data_finala < time()) ? '<span class="label label-danger">Expirat</span>' : date('d-m-y h:i', $produs->data_finala) ?></td>
<td><?php if ($produs->data_finala > time()) { ?>
<a class="btn btn-primary btn-xs" href="<?php echo site_url('account/editeaza_produs/' . $produs->id) ?>">Editeaza</a>
<?php } ?>
<a class="btn btn-danger btn-xs" href="<?php echo site_url('account/sterge_produs/' . $produs->id) ?>" onclick="return confirm('Sunteti sigur ca vreti sa stergeti produsul?');">Sterge</a>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
CD / DVD
Autorul atașează în această anexă obligatorie, versiunea electronică a aplicației, a acestei lucrări, precum și prezentarea finală a tezei.
Referințe web
http://www.businessnewsdaily.com/4872-what-is-e-commerce.html
http://www.networksolutions.com/education/what-is-ecommerce/
http://en.wikipedia.org/wiki/Customer_to_customer
http://en.wikipedia.org/wiki/HTML
http://html.net/tutorials/css/lesson1.php
http://www.nusphere.com/php/php_history.htm?
http://en.wikipedia.org/wiki/MySQL
http://getbootstrap.com/
Codul sursă
Codul sursă pentru înregistrare (signup.php)
<div class="row">
<div class="col-sm-6 col-md-4 col-md-offset-4">
<h1 class="text-center login-title">Creare Cont</h1>
<div class="account-wall">
<div class="text-center">
<span class="fa-stack fa-5x">
<i class="fa fa-circle fa-stack-2x text-primary"></i>
<i class="fa fa-user fa-stack-1x fa-inverse"></i>
</span>
</div>
<form class="form-signin" method="post"action="<?php echo site_url('main/login') ?>">
<input name="nume" type="text" class="form-control" placeholder="Nume" required autofocus>
<input name="prenume" type="text" class="form-control" placeholder="Prenume" required>
<input name="email" type="text" autocomplete="off" class="form-control" placeholder="Email" required>
<input name="parola" type="password" autocomplete="off" class="form-control" placeholder="Parola" required>
<input name="parola2" type="password" autocomplete="off" class="form-control last" placeholder="Reintroduceti Parola" required>
<input class="btn btn-lg btn-primary btn-block" type="submit" value="Creaza Cont">
</form>
</div>
<a href="<?php echo site_url('main/login') ?>" class="text-center new-account">Ai cont? Log in aici!</a>
</div>
</div>
Codul sursă pentru autentificare (login.php)
<div class="row">
<div class="col-sm-6 col-md-4 col-md-offset-4">
<h1 class="text-center login-title">Logare</h1>
<div class="account-wall">
<div class="text-center">
<span class="fa-stack fa-5x">
<i class="fa fa-circle fa-stack-2x text-primary"></i>
<i class="fa fa-user fa-stack-1x fa-inverse"></i>
</span>
</div>
<form class="form-signin" method="post" action="<?php echo site_url('main/login') ?>">
<input name="email" type="text" autocomplete="off" class="form-control" placeholder="Email" required autofocus>
<input name="parola" type="password" autocomplete="off" class="form-control last" placeholder="Parola" required>
<input class="btn btn-lg btn-primary btn-block" type="submit" value="Log In">
</form>
</div>
<a href="<?php echo site_url('main/signup') ?>" class="text-center new-account">Creaza Cont</a>
</div>
</div>
Codul sursă pentru scoaterea la licitație (vinde.php):
<h3>Pune in vanzare</h3>
<form class="form-horizontal" action="<?php echo site_url('account/vinde') ?>" method="post" id="update-user-form" enctype="multipart/form-data">
<div class="row">
<div class="col-md-12">
<fieldset>
<div class="form-group">
<label class="col-sm-3 control-label"for="textinput">Nume Produs</label>
<div class="col-sm-9">
<input type="text" placeholder="Nume Produs" class="form-control" name="nume" value="" required>
</div>
</div>
<div class="form-group">
<label for="categorie" class="col-sm-3 control-label">Categorie</label>
<div class="col-sm-9">
<select name="categorie" id="categorie" class="form-control">
<?php
$categorii = $this->db->query("select * from categorii order by nume");
foreach ($categorii->result() as $categorie) {
?>
<option value="<?php echo $categorie->id ?>"><?php echo $categorie->nume ?></option>
<?php
}
?>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label" for="textinput">Descriere</label>
<div class="col-sm-9">
<textarea class="form-control" name="descriere" id="descriere" cols="30" rows="10"></textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label" for="textinput">Imagini (doar JPEG)</label>
<div class="col-sm-9">
<div class="row">
<div class="col-sm-12">
<input type="file" name="poze[0]" id="poza4" class=""/>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<input type="file" name="poze[1]" id="poza1" class=""/>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<input type="file" name="poze[2]" id="poza2" class=""/>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<input type="file" name="poze[3]" id="poza3" class=""/>
</div>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label" for="textinput">Pret Initial (RON)</label>
<div class="col-sm-9">
<input type="text" placeholder="" class="form-control" name="pret" value="0" required>
</div>
</div>
<div class="form-group">
<label for="categorie" class="col-sm-3 control-label">Durata</label>
<div class="col-sm-9">
<select name="durata" id="durata" class="form-control">
<?php
for ($i = 1; $i <= 7; $i++) {
?>
<option value="<?php echo $i ?>"><?php echo ($i > 1) ? $i . ' Zile' : $i . ' Zi' ?></option>
<?php
}
?>
</select>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="pull-right">
<button type="submit" class="btn btn-primary">Salveaza Produs</button>
</div>
</div>
</div>
</fieldset>
</div>
</div>
</form>
Codul sursă pentru schimbare parolă (schimbaParola.php):
<?php
$this->load->view('global/user-header');
?>
<h3>Schimbare Parola</h3>
<form class="form-horizontal" action="<?php echo site_url('account/schimba_parola') ?>" method="post" id="update-user-form" enctype="multipart/form-data">
<div class="row">
<div class="col-md-12">
<fieldset>
<div class="form-group">
<label class="col-sm-3 control-label" for="textinput">Parola Veche</label>
<div class="col-sm-9">
<input type="password" placeholder="Parola Veche" class="form-control" name="parola_veche" value="" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label" for="textinput">Parola Noua</label>
<div class="col-sm-9">
<input type="password" placeholder="Parola Noua" class="form-control" name="parola" value="" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label" for="textinput">Repetati Parola</label>
<div class="col-sm-9">
<input type="password" placeholder="Repetati Parola" class="form-control" name="parola2" value="" required>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="pull-right">
<button type="submit" class="btn btn-primary">Salveaza</button>
</div>
</div>
</div>
</fieldset>
</div>
</div>
</form>
<?php
$this->load->view('global/user-footer');
Codul sursă pentru afișarea produselor personale (produse.php):
<h3>Produsele Mele</h3>
<table class="table-condensed table-bordered" style="width: 100%;">
<thead>
<tr>
<th>ID#</th>
<th style="width: 100px;">Poza</th>
<th>Nume Produs</th>
<th>Categorie</th>
<th>Pret Curent</th>
<th>Expira</th>
<th>Actiuni</th>
</tr>
</thead>
<tbody>
<?php
$categorii = array();
$cats = $this->db->query("select * from categorii order by nume");
foreach ($cats->result() as $categorie) {
$categorii[$categorie->id] = $categorie->nume;
}
$produse = $this->db->query("select * from produse where user_id=" . $this->user->getUserId() . ' order by data_finala desc');
foreach ($produse->result() as $produs) {
?>
<tr>
<td><?php echo $produs->id ?></td>
<td style="text-align: center;">
<?php
$poza = site_url('uploads/no_img.jpg');
$prima_poza = $this->db->query("select * from imagini_produse where id_produs = " . $produs->id . " order by id limit 1");
if ($prima_poza->num_rows()) {
$prima_poza = $prima_poza->result();
$prima_poza = $prima_poza[0];
$poza = site_url('uploads/' . $prima_poza->imagine);
}
?>
<img class="thumbnail" style="width: 90%; height: auto; margin: auto;" src="<?php echo $poza; ?>" alt=""/>
</td>
<td><?php echo $produs->nume ?></td>
<td><?php echo $categorii[$produs->categorie] ?></td>
<td><?php echo ($produs->pret_curent) ? $produs->pret_curent : $produs->pret ?></td>
<td><?php echo ($produs->data_finala < time()) ? '<span class="label label-danger">Expirat</span>' : date('d-m-y h:i', $produs->data_finala) ?></td>
<td><?php if ($produs->data_finala > time()) { ?>
<a class="btn btn-primary btn-xs" href="<?php echo site_url('account/editeaza_produs/' . $produs->id) ?>">Editeaza</a>
<?php } ?>
<a class="btn btn-danger btn-xs" href="<?php echo site_url('account/sterge_produs/' . $produs->id) ?>" onclick="return confirm('Sunteti sigur ca vreti sa stergeti produsul?');">Sterge</a>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Tehnologii Web (ID: 150702)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
