Sunteți pe pagina 1din 35

Abstract

Acest proiect ii propune s prezinte modul n care se poate realiza o aplicatie web functionala de tip Flor ria Online O flor rie online este o aplica ie care trebuie sa contina urmatoarele elemente functionale: y Afisarea pe prima pagina a publicului tinta si a motivatiei existentei siteului; y Posibilitatea de logare a utilizatorilor care vor s fac comenzi online sau doresc s vizualizeze site-ul. y Posibilitatea de a vizuliza produsele care sunt de vnzare pe site; y Afisarea produselor existente in stoc; y Posibilitatea de a cauta dupa nume clientii careau aplicat o comanda; y Posibilitatea de a completa un formular de comanda a carui date se inregistreaza intr-un tabel din baza de date; y Posibilitatea de a cauta cu ajutorul unui cuvant cheie, in stoc, un anumit produs; y Afisarea mesajului de trimitere a formularului la baza de date.

Aplica ia a fost realizat folosind : y limbajul static HTML pentru partea de interfa a (formatare) y limbajul de server-side scripting PHP , pentru citirea datelor din baza de date , realizarea scriptului de restric ionare a paginilor,prelucrarea datelor ce vor fi afi ate, adaugarea de noi date ,precum i modificarea celor existente in baza de date MySQL. y sistemul de gestiune a bazelor de date opensource MySQL , pentru stocarea datelor ntr-o baza de date rela ional .

Cuprins:

Abstract.........................................................................................................pag.2 Cuprins......................................................................................................... pag.3 Introducere................................................................................................... pag.5 Capitolul 1.....................................................................................................pag.5 y Proiectarea bazei de date i implementarea acesteia n SQL............. pag.5

Capitolul 2.................................................................................................... pag.8 y Structura aplica iei.............................................................................. pag.8 Capitolul 3....................................................................................................pag.10 y Implementarea aplica iei in HTML .................................................. pag.10 o Pagina principal index.html............................................... pag.10 o Formularul de registrare utilizatori - inregistrare.html.......... pag.12 o Formularul de autentificare utilizatori autentificare.html.... pag.13 y Implementarea aplica iei in PHP....................................................... pag.13 o Scripturi care rela ioneaza cu baza de date n vederea extragerii,modificarii sau nser rii de date.............................. pag.13  Conectarea la serverul MySQL config.php............... pag.13  Cautarea produselor in baza de date - cautare_f.php.... pag.14  Cautarea comenzilor in baza de date cautare_c.php...pag.14  Vizualizare produse in stoc stoc.php......................... pag.15  Adaugare flori in stoc prelucrare.php........................ pag.15  Comanda online comanda.php.................................. pag.16  Actualizare comanda actualizare.php........................ pag.17  Stergere comanda stergere_comanda.php................. pag.18  Incarcare imagini upload_poze_flori.php.................. pag.19

 Inregistrare utilizator inregistrare.php........................pag.20  Autentificare utilizator autentificare.php....................pag.20  Dezautentificare utilizator dezautentificare.php.........pag.21 o Scripturi care permit vizualizare informa iilor i operarea de interog ri numai utilizatorilor autentifica i............................. pag.22  Pagina principal restric ionat index.php................. pag.22  Pagina de c utare cautare.php.....................................pag.23  Pagina cu catalogul de flori catalogp.php.................. pag.23  Pagina de ad ugare flori - inserarep.php..................... pag.25  Pagina de comand online comandap.php................. pag.25  Pagina de actualizare comand actualizarep.php....... pag.26  Pagina pentru asisten asistentap.php....................... pag.26  Pagina de concurs upload_poze_florip.php............... pag.27 Capitolul 4................................................................................................... pag.28 y Prezentarea aplica iei......................................................................... pag.28 Capitolul 5................................................................................................... pag.35 y Instalarea aplica iei........................................................................... pag.35 Bibliografie................................................................................................. pag.36

Introducere
Proiectul este structurat pe cinci capitole i are ca scop prezentarea modalit ilor n care se folosesc PHP i MYSQL pentru a realiza o aplica ie web dinamic de tip Floraria Online,unde utilizatorii trebuie s se inregistreze i apoi s se autentifice pentru a opera cu datele stocate ntr-o baz de date. Primul capitol i propune s realizeze proiectarea bazei de date i realizarea tabelelor in MySQL. Al doilea capitol prezint structura func ional a aplica iei. Al treilea capitol are drept implementarea aplica iei folosind PHP, MYSQL, HTML pentru realizarea tuturor modulelor care alc tuiesc aplica ia. Al patrulea capitol are ca scop prezentarea aplica iei i modul de utilizare al acesteia. i

Al cincilea capitol i propune s ofere informa ii despre instalarea aplica iei modul cum poate fi aceasta utilizata de orice person .

Capitolul 1 Proiectarea bazei de date i implementarea acesteia n MySQL

1.1 Proiectarea tabelelor Pentru a face func ional aplica ia i a servi ct mai bine clien ii care vor vizita site-ul am ajuns la concluzia c trebuie s utiliz m trei tabele n baza noastr de date.

Primul tabel(users) trebuie s con in date de nregistrare ale utilizatorului care dore te s viziteze site-ul i trebuie s con in cmpurile (fig.1):

users id Name Username Password


Fig.1

Al doilea tabel(comanda) l vom folosi pentru nregistrarea unei comenzi.Pentru ca aceasta s se poate realiza avem nevoie de urmatoarele cmpuri(fig.2):

comanda id nume prenume telefon adresa floare culoare nr_bucati


Fig.2

Al treilea tabel (flori) va reprezenta produsele care sunt existente n stoc.Acesta va con ine urm toarele cmpuri(fig.3):

flori id denumire pret culoare stoc


Fig.3

1.2 Crearea tabelului n MySQL


Se creeaza baza de date desene animate astfel: Se acceseaza interfata de administrare a serveruluiMySQL, astfel : //localhost/phpmyadmin, dupa care se taseteaza numele floraria online in caseta Create new Database si se apasa butonul Create(fig.4).

Fig.4

In sectiunea SQL se executa comenzile de mai jos pentru crearea tabelelor:

Fig.5

Pentru crearea tabelului comanda:


CREATE TABLE `comanda` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nume` text NOT NULL, `prenume` text NOT NULL, `telefon` text NOT NULL, `adresa` text NOT NULL, `floare` text NOT NULL, `culoare` text NOT NULL, `nr_bucati` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;

Pentru crearea tabelului flori:


CREATE TABLE `flori` ( `id` int(11) NOT NULL AUTO_INCREMENT,

`denumire` text NOT NULL, `culoare` text NOT NULL, `pret` text NOT NULL, `stoc` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=152 ;

Pentru crearea tabelului users:


CREATE TABLE `users` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `Name` text NOT NULL, `Username` varchar(15) NOT NULL, `Password` char(65) NOT NULL, PRIMARY KEY (`Id`), UNIQUE KEY `Username` (`Username`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;

Procedura de creare a bazei de date si a tabelelor din interiorul ei a fost realizata,de acum putem incepe cu realizarea paginilor in HTML i a scripturilor PHP.

Capitolul 2 Structura aplica iei


HTML Din punct de vedere al structurii ,aplica ia aceasta con ine urm toarele fi iere i PHP: Descrierea fi ierului Pagina principal unde se poate realiza inregistrarea sau autentificarea utilizatorilor.Accesul la ea se poate face i de c tre utilizatorii nenregistrati tocmai pentru a le permite inregistrarea.

Nr.Crt. Denumirea fi ierului 1. index.html

2. 3. 4.

inregistrare.html autentificare.html index.php

5. 6.

inregistrare.php autentificare.php

7.

cautarep.php

8.

catalogp.php

9.

inserarep.php

10. 11. 12. 13. 14.

comandap.php actualizarep.php stergere_comandap.php asistentap.php upload_poze_florip.php

Singurele comenzi permise(care nu sunt restric ionate) vizitatorilor sunt cea de a porni sau opri muzica din player sau de a accesa link-urile Autentifica-te! sau Creeaza un cont nou!. Permite inregistrarea utilizatorilor in baza de date a Florariei Online in vederea permiterii accesului la intregul continut al site-ului. Permite autentificarea utilizatorilor inregistrati pentru a putea avea acces la continutul site-ului. Reprezinta pagina principala care este restrictionata de un script PHP si poate fi vizualizata doar de utilizatorii autentificati.Prin intermediul acestei pagini se poate naviga prin toate paginile site-ului . Permite de asemenea dezautentificarea utilizatorului de pe site. Script care salveaza valorile introduse de noi in tabelul users din baza noatra de date.Permite de asemenea dezautentificarea utilizatorului de pe site. Script care verifica daca datele introduse de noi si ne redirectioneaza pe pagina de start securizata daca am introdus un utilizator sau o parola existenta in baza noastra de date sau pe pagina de autentificare pentru o noua incercare. Permite de asemenea dezautentificarea utilizatorului de pe site. Pagina restric ionat de un script PHP prin intermediul c reia se pot c uta produse existente n baza noastr de date sau comenzile realizate n baza noastr de date. Permite de asemenea dezautentificarea utilizatorului de pe site. Pagina restric ionat de un script PHP unde putem vizualiza poze cu flori existente n stoc sau chiar totalitatea florilor disponibile pentru comanda prin accesarea link-ului: Vizualizare flori disponibile pentru comanda. Permite de asemenea dezautentificarea utilizatorului de pe site. Pagina restric ionat de un script PHP care permite introducerea de noi produse in tabelul flori din baza noastra de date. Permite de asemenea dezautentificarea utilizatorului de pe site. Pagina restric ionat de un script PHP care permite introducerea datelor necesare pentru o camanda in tabelul comanda din baza noastra de date. Pagina restric ionat de un script PHP prin intermediul c reia se modifica anumite nregistr ri din tabelul comanda. Pagina restric ionat de un script PHP prin intermediul c reia putem s stergem o anumit inregistrare din tabelul comanda. Pagina restric ionat de un script PHP care permite trimiterea unui e-mail c tre un destinatar predefinit. Pagina restric ionat de un script PHP care permite

15. 16. 17 18. 19. 20. 21. 22. 23. 24.

actualizare.php cautare_c.php cautare_c.php comada.php config.php prelucrare.php stergere_comada.php stoc.php upload_poze_flori.php dezautentificare.php

nc rcarea de fi iere de tip JPG care au o m rime mai mic de 20000 kb. Script PHP care permite modificarea unei nregistr ri din tabelul comanda. Script PHP care permite afi area unei nregistr ri din tabelul comanda. Script PHP care permite afi area unei nregistr ri din tabelul flori. Script PHP prin intermediul c ruia putem nregistra n baza de date o comand . Script PHP care permite conectarea la MySQL i selectarea bazei de date floraria online. Script PHP prin intermediul c ruia putem introduce produse noi in baza de date. Script PHP prin intermediul c ruia putem sterge o anumit nregistrare din tabelul comanda. Script PHP care permite vizualizarea tuturor nregistr rilor din tabelul flori. Script PHP care permite nc rcarea unei imagini n folderul upload din dosarul D:\Program Files\EasyPHP 3.0\www\Floraria Online-cu autentificare. Script PHP care ncheie sesiunea nceput de utilizator i l redirec ioneaz pe pagina index.html.

Capitolul 3
3.1 Implementarea aplica iei n HTML
3.1.1 Pagina principal index.html Codul <html> <title>Floraria Online</title> <body> <table width="800" border="1"> <tr> <td colspan="2" style="background-color:#C1C1C0;"> <a href="autentificare.html">Autentifica-te!</a> <a href="inregistrare.html">Creeaza un cont nou!</a> <marquee direction=right behavior=alternate scrolldelay=5><h1>Floraria Online</h1> </marquee> </td> </tr> <tr valign="top"> <td style="background-color:#C0C0C0;width:130px;textExplica ia Titlul paginii. Corpul paginii. Dimensiunea tabelului. Partea de sus a tabelului. Nr. de coloane din tabel. Link-uri. Text misc tor.

Partea stng a tabelului. Tipul alinierii tabelare. Imaginea de fundal.

align:top;"> <ul type="square"> <li><b><a href='index.html'>Acasa</a><br/></li> <li><b><a href='cautarep.php'>Cautare</a></b><br /></li> <li><b><a href='catalogp.php'>Catalog</a></b><br /></li> <li><b><a href='inserarep.php'>Adaugare flori</a><br /></li> <li><b><a href='comandap.php'>Comanda online</a></b><br /></li> <li><b><a href='actualizarep.php'>Actualizare comanda</a><br/></li> <li><b><a href='stergere_comandap.php'>Anulare comanda</a></b><br /></li> <li><b><a href='asistentap.php'>Asistenta</a><br /></li> <li><b><a href='upload_poze_florip.php'>Concurs</a><br /></li> </ul> <img border="4" src="imagini/trandafir.jpg" alt="Trandafir" width="125" height="125" /> <br /> <img border="4" src="imagini/orhidee.jpg" alt="Orhidee" width="125" height="125" /> <br /> <img border="4" src="imagini/margareta.jpg" alt="Margareta" width="125" height="125" /> <br /> <audio controls="controls"> <source src="song.mp3" type="audio/mpeg" /> <source src="song.ogg" type="audio/ogg" /> <embed height="75px" width="125px" src="muzica/mel1.mp3" /> </audio> "Apasati butonul <b>STOP</b> pentru a opri muzica." </td> <td style="backgroundcolor:#C0C0C1;height:200px;width:400px;text-align:top;"> <h1>Florile fac viata mai frumoasa!</h1> <fieldset> <p>Floraria Online va ofera o gama numeroasa de solutii pentru a infrumuseta viata dumneavoastra sau a persoanelor dragi care va inconjoara.</p> </fieldset> <H5 align="center"> <h2>O paleta larga de culori</h2> <img border="4" src="imagini/lalea.jpg" alt="Lalea" width="304" height="228" /> <h3>Floraria noastra va ofera:</h3> <ul type="square"> <li>flori proaspete si in stare buna</li>

Lista. Linkuri.

Imagini.

Player audio.

Partea dreapt a tabelului. Heading. Fieldset(chenar). Paragraf.

Heading Heading. Imagine.

i aliniere.

Heading. List .

10

<li>livrare si la domiciliu</li> <li>accesorii</li> <li>impachetare eleganta</li> <li>si multe altele</li> </ul> </H5> </td> </tr> <tr> <td colspan="2" style="background-color:#C1C1C1;textalign:center;"> Copyright 2012 www.florariaonline.ro Contact: <small>E-mail:florariaonline@yahoo.com Numar de telefon:0786665665</small> </td> </tr> </table> </body> </html>
Fig.6

Partea de jos a tabelului.

Text mic.

3.1.2 Formularul de nregistrare inregistrare.html


Codul <form name="register_form" action="inregistrare.php" method="post"> <table width="40%" border="0" cellpadding="0" cellspacing="2"> <tr> <td width="40%">Nume si prenume</td> <td><input type="text" name="register_name" id="register_name" /></td> </tr> <tr> <td>Username</td> <td><input type="text" name="register_username" id="register_username" /></td> </tr> <tr> <td>Parola</td> <td><input type="password" name="register_password" id="register_password" /></td> </tr> <tr> <td>&nbsp;</td> <td><input type="submit" name="register_btn" Explica ia Tipul formularului.ac iunea i metoda. Tabelul cu format rile. Cmpurile din formular introduse n tabel.

Butonul de submit.

11

value="Inregistrare" /></td> </tr> </table> </form> Pentru a te intoarce la pagina principala apasa <a href="index.html">aici</a>.
Fig.7

Link.

3.1.3 Formularul de autentificare utilizatori autentificare.html Codul form name="login_form" action="autentificare.php" method="post"> <table width="40%" border="0" cellpadding="0" cellspacing="2"> <tr> <td width="40%">Username</td> <td><input type="text" name="login_username" id="login_username" /></td> </tr> <tr> <td>Parola</td> <td><input type="password" name="login_password" id="login_password" /></td> </tr> <tr> <td>&nbsp;</td> <td><input type="submit" name="login_btn" value="Login" /></td> </tr> </table> </form> Pentru a te intoarce la pagina principala apasa <a href="index.html">aici</a>.
Fig.8

Explica ia Tipul formularului.ac iunea metoda. Tabelul cu format rile. Cmpurile din formular introduse n tabel.

Butonul de submit.

Link.

3.2. Implementarea aplica iei n PHP


3.2.1 Scripturi care rela ioneaz cu baza de date n vederea extragerii,modific rii sau introducerii de date
3.2.1.1 Conectarea la serverul MySQL config.php Codul <?php $AdresaBazaDate ="localhost"; $UtilizatorBazaDate ="root"; Explica ia Datele necesare pentru realizarea

12

$ParolaBazaDate ="mysql"; $NumeBazaDate ="Floraria Online"; $conexiune = mysql_connect($AdresaBazaDate,$UtilizatorBazaDate,$ParolaBazaDate) or die("Nu se poate realiza conectarea la MySQL!"); mysql_select_db($NumeBazaDate,$conexiune) or die("Nu se gaseste baza de date!"); ?>

conect rii. Realizarea conexiunii. Selectarea bazei de date.

3.2.1.2 Cautarea produselor in baza de date - cautare_f.php Codul <?php require_once('config.php'); $a=$_POST['record']; $cerereSQL ="SELECT * FROM `flori` Where denumire LIKE '%$a%'"; $rezultat = mysql_query($cerereSQL); while($rand = mysql_fetch_array($rezultat)) { echo "<fieldset><h3><hr> Denumirea florii: $rand[denumire]<br> Culoarea florii : $rand[culoare]<br> Pretul : $rand[pret]<br> In stoc : $rand[stoc]<br> </fieldset>"; echo "Acestea sunt valorile cele mai apropiate de cautarea ta.<br/> Daca vrei sa te intorci la pagina anterioara apasa <a href='cautarep.php'><b>aici</b></a>"; } ?>
Fig.9

Explica ia Utilizarea config.php. Preluarea datelor din formular. Interogarea de selec ie. Preluarea datelor in baza de date. Afisarea rezultatelor.

Afisarea unui mesaj si a unui link.

3.2.1.3 Cautarea comenzilor in baza de date cautare_c.php Codul <?php require_once('config.php'); $a=$_POST['record']; $cerereSQL ="SELECT * FROM `comanda` Where nume LIKE '%$a%'"; $rezultat = mysql_query($cerereSQL); while($rand = mysql_fetch_array($rezultat)) { Explica ia Utilizarea config.php. Preluarea datelor din formular. Interogarea de selec ie. Preluarea datelor in baza de date.

13

echo "<fieldset><h3><hr> Numele clientului: $rand[nume]<br> Prenumele clientului: $rand[prenume]<br> Telefon: $rand[telefon]<br> Adresa: $rand[adresa]<br> Produsul comandat: $rand[floare]<br> Culoarea florii: $rand[culoare]<br> Cantitate: $rand[nr_bucati]<br> </fieldset>"; } echo "Acestea sunt valorile cele mai apropiate de cautarea ta.<br/> Daca vrei sa te intorci la pagina anterioara apasa <a href='cautarep.php'><b>aici</b></a>"; ?>
Fig.10

Afisarea rezultatelor.

Afisarea unui mesaj si a unui link.

3.2.1.4 Vizualizare produse in stoc stoc.php Codul <?php require_once('config.php'); $cerereSQL = 'SELECT * FROM `flori`'; $rezultat = mysql_query($cerereSQL); $i=0; while($rand = mysql_fetch_array($rezultat)) { $i=$i+1; echo $i.') '.'<b>Denumirea florii:</b> '.$rand['denumire'].' <br> <b>Culoarea:</b> '.$rand['culoare'].' <br> <b>Pretul:</b> '.$rand['pret'].' <br> <b>In stoc:</b> '.$rand['stoc'].' <br> <hr>'; } echo "Acestea sunt toate florile disponibile pentru comanda.<br> Pentru a te intoarce la pagina anterioara apasa <a href='catalogp.php'>aici</a>."; ?>
Fig.11

Explica ia Utilizarea config.php. Interogarea de selec ie. Preluarea datelor in baza de date. Afisarea rezultatelor.

Afisarea unui mesaj si a unui link.

3.2.1.5 Adaugare flori in stoc prelucrare.php Codul <?php $con = mysql_connect("localhost","root","mysql"); if (!$con) { die('Could not connect: ' . mysql_error()); Explica ia Conectarea la baza de date.

14

} Selectarea bazei de date. $sql="INSERT INTO flori (denumire, culoare, pret, stoc) Interogarea de VALUES ad ugare a ('$_POST[denumire]','$_POST[culoare]','$_POST[pret]','$_POST[stoc]')"; valorilor introduse in if (!mysql_query($sql,$con)) formular. { die('Error: ' . mysql_error()); } echo 'Va multumim. <br> Datele dumneavoastra au fost introduse cu succes in baza de date. Afisarea unui mesaj si a unui <br> link. Pentru a te intoarce la pagina anterioara apasa <a href="inserare.html">aici</a>.'; mysql_close($con) ?>
Fig.12

mysql_select_db("Floraria Online", $con);

nchiderea conexiunii.

3.2.1.6 Comanda online comanda.php Codul <?php $con = mysql_connect("localhost","root","mysql"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("Floraria Online", $con); $sql="INSERT INTO comanda (nume, prenume, telefon, adresa, floare, culoare, nr_bucati) VALUES ('$_POST[nume]','$_POST[prenume]','$_POST[telefon]','$_POST[adresa ]','$_POST[floare]','$_POST[culoare]','$_POST[nr_bucati]')"; if (!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); } echo 'Va multumim. <br> Datele dumneavoastra au fost introduse cu succes in baza de date. <br> Pentru a te intoarce la pagina anterioara apasa <a href="comandap.php">aici</a>.'; Explica ia Conectarea la baza de date.

Selectarea bazei de date. Interogarea de ad ugare a valorilor introduse in formular.

Afisarea unui mesaj si a unui link. nchiderea

15

mysql_close($con) ?>
Fig.13

conexiunii.

3.2.1.7 Actualizare comanda actualizare.php Codul <?php $con = mysql_connect("localhost","root","mysql"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("floraria online", $con); $nume=$_POST['nume']; $prenume=$_POST['prenume']; $telefon=$_POST['telefon']; $adresa=$_POST['adresa']; $floare=$_POST['floare']; $culoare=$_POST['culoare']; $nr_bucati=$_POST['nr_bucati']; if (($nume=="")||($prenume=="")||($telefon=="")||($adresa=="")||($floare= ="")||($nr_bucati=="")||($prenume=="")) { echo "Campurile solicitate nu sunt completate"; echo "<a href='actualizarep.php'>Inapoi la formular.</a>";} else { mysql_query("UPDATE comanda SET telefon = '$telefon',adresa = '$adresa',floare = '$floare',culoare = '$culoare',nr_bucati = '$nr_bucati' WHERE nume = '$nume' AND prenume = '$prenume'"); Explica ia Conectarea la baza de date.

Selectarea bazei de date. Preluarea datelor din formular.

Test dac au fost introduse valori Dac nu au fost introduse valori se afi eaz mesajul cu linkul Dac au fost introduse valori se execut interogarea de modificare. Se afi eaz un mesaj i un link.

echo 'Va multumim. <br> Datele dumneavoastra au fost actualizate cu succes in baza de date. <br> Pentru a te intoarce la pagina anterioara apasa <a href="actualizarep.php">aici</a>.'; } mysql_close($con) ?>
Fig.14

Se nchide conexiunea.

3.2.1.8 Stergere comanda stergere_comanda.php

16

Codul <?php $con = mysql_connect("localhost","root","mysql"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("Floraria Online", $con); $v=$_POST['cautare']; $cerereSQL="SELECT * FROM comanda where nume='$v'"; $rezultat=mysql_query($cerereSQL); $number = mysql_numrows($rezultat); echo 'Numar de inregistrari gasite:'; echo $number. '<br>'; if($number!==1) { echo 'Nu s-a gasit nici o inregistrare.'; } else { echo 'S-a gasit urmatoarea inregistrare:<br>'; while($rand=mysql_fetch_array($rezultat)) { echo $rand['nume'].' | '.$rand['prenume'].' | '.$rand['telefon'].' | '.$rand['adresa'].' | '.$rand['floare'].' | '.$rand['culoare'].' | '.$rand['nr_bucati'].'<br>'; } $cerereSQL1 = "DELETE FROM comanda WHERE nume like '$v%'"; echo ' Inregistrarea afisata s-a sters cu succes! <hr>'; mysql_query($cerereSQL1); echo 'Mai jos este data lista clientilor care au comenzi active:<br>'; include('vizualizare_comanda_dupa_stergerep.php'); } echo 'Va multumim. <br> Pentru a te intoarce la pagina anterioara apasa <a href="stergere_comandap.php">aici</a>.'; ?>

Explica ia Conectarea la baza de date.

Selectarea bazei de date. Preluarea datelor din formular. Interogarea de selec ie. Execu ia interog rii. Interogarea de num rare a rndurilor. Afi area numarului nregistr rilor. Test. Afisarea unui mesaj.

Afi area unui mesaj. Afi area nregistr rilor g site.

Interogarea de tergere. Afi area unui mesaj. Afi area unui mesaj i a unui link.

17

Fig.15

3.2.1.9 Incarcare imagini upload_poze_flori.php Codul <?php if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 20000000)) { if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload :--> " . $_FILES["file"]["name"] . "<br />"; echo "Tipul :--> " . $_FILES["file"]["type"] . "<br />"; echo "Dimensiunea :--> " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Fisier temporar :--> " . $_FILES["file"]["tmp_name"] . "<br />"; if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " <--Fisierul este deja existent.<br /> "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "Fisierul a fost stocat in:--> " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "Fisier nevalabil."; Explica ia Verific tipul fi ierului i dimensiunea.

Afi eaz eroarea. Afi eaz caracteristicile fi ierului uploadat.

Verific dac fi ierul exist deja in folderul de upload i afi eaz un mesaj. Mut fi ierul din folderul temporar n folderul upload i afi eaz un mesaj. Daca fi ierul nu corespunde se afi eaz un

18

} echo " .<br/> Daca vrei sa te intorci la pagina anterioara apasa <a href='upload_poze_florip.php'><b>aici</b></a>"; ?>
Fig.16

mesaj. Se afi eaz un mesaj i un link.

3.2.1.10 Inregistrare utilizator inregistrare.php Codul <?php session_start(); Explica ia

Porne te sesiunea. Conectarea la require_once("config.php"); MySQL i baza de date. if ($_POST['register_name'] != "" && $_POST['register_username'] != "" Verifica daca exista date && $_POST['register_password'] != '') { transmise Preia datele din $name = $_POST['register_name']; formular. $username = $_POST['register_username']; $password = md5($_POST['register_password']); $query = "INSERT INTO `users` (`Name`,`Username`,`Password`) VALUES ('".$name."','".$username."','".$password."')"; $result = mysql_query($query) or die ( "Error : ". mysql_error() ); Formeaza si executa interogarea de inserare in baza de date. Afiseaza un mesaj de succes i un link.

if ($result) { echo "Inregistrarea a fost efectuata cu succes.<br> Click <a href='index.html'>aici</a> pentru a reveni la pagina de login"; } } ?>
Fig.17

3.2.1.11 Autentificare utilizator autentificare.php Codul <?php session_start(); require_once("config.php"); Explica ia Porne te sesiunea. Conectarea la MySQL i baza de date.

19

if ($_POST['login_username'] != "" && $_POST['login_password'] != '') { $username = $_POST['login_username']; $password = md5($_POST['login_password']); $query = "SELECT * FROM `users` WHERE `Username` = '".$username."' AND `Password` = '".$password."'"; $result = mysql_query($query) or die ( "Error : ". mysql_error() ); if (!$result || mysql_num_rows($result) < 1) {

Verifica daca exista date transmise Preia datele din formular. Formeaza si executa interogarea de inserare in baza de date. Verifica daca interogarea MySQL a gasit date valide. Daca nu, afiseaza un mesaj de eroare. Salveaza username-ul si parola in sesiune. Afiseaza un mesaj de succes.

echo "Datele introduse sunt incorecte<br> Click <a href='autentificare.html'>aici</a> pentru a reveni la pagina de login"; } else { $_SESSION['username'] = $username; $_SESSION['password'] = $password; echo "Autentificarea a fost efectuata cu succes.<br> Pentru a continua apasa <a href='index.php'>aici</a> pentru merge mai departe."; } } else { echo "Nu ati introdus datele cerute.Va rugam apasati <a href='autentificare.html'>aici</a> pentru o noua incercare"; } ?>
Fig.18

Afi eaz un mesaj i un link.

3.2.1.12 Dezautentificare utilizator dezautentificare.php Codul <?PHP session_start(); session_destroy(); echo "Dezautentificare reusita!<br> Va multumim ca ati intrat pe site-ul nostru si va asteptam inapoi cu placere!<br> Apasati <a href='index.html'><b>aici</b></a> pentru a va intoarce pe Explica ia Porne te sesiunea. ncheie sesiunea. Afi eaz un mesaj de succes i un link.

20

pagina principala."; ?>


Fig.19

3.2.2 Scripturi care permit vizualizare informa iilor numai utilizatorilor autentifica i

i operarea de interog ri

3.2.2.1 Pagina principal restric ionat index.php n mare parte codul de la aceast pagin este identic cu cel de la index.php(fig.5).Pentru a nu prezenta nc odat acele por iuni de cod am s abordez doar ce difer . Codul <?php session_start(); require_once("config.php"); // verifica daca exista date in sesiune if (isset($_SESSION['username']) && isset($_SESSION['password'])) { // preia datele din sesiune $username = $_SESSION['username']; $password = $_SESSION['password']; // formeaza si executa query-ul de select din baza de date $query = "SELECT * FROM `users` WHERE `Username` = '".$username."' AND `Password` = '".$password."'"; $result = mysql_query($query) or die ( "Error : ". mysql_error() ); // verifica daca interogarea MySQL a gasit date valide if (!$result || mysql_num_rows($result) <1) { // daca nu, afiseaza un mesaj de eroare echo "Acces interzis<br> Click <a href='index.html'>aici</a> pentru a reveni la pagina de login"; } else { echo " } } ?> table width='800' border='1'> <tr> <td colspan='2' style='background-color:#C1C1C0;'> Explica ia Toat aceast por iune testeaz dac utili atorul este autentificat.

Este afi at

21

Esti autentificat! <b>/</b> <a href='dezautentificare.php'><b>Dezautentificare</b></a> <marquee direction=right behavior=alternate scrolldelay=5><h1>Floraria Online</h1> </marquee> </td> </tr>
Fig.20

mesajul ca suntem autentifica i. Apare un link de dezautentificare.

3.2.2.2 Pagina de c utare cautarep.php n mare parte codul de la aceast pagin este identic cu cel de la index.php(fig.5) iar partea de autentificare este exact ca la index.php(fig.)Pentru a nu prezenta nc odat acele por iuni de cod am s abordez doar ce difer . Codul <H5 align='center'> <h2>Cautare floare</h2> <form action='cautare_f.php' method='POST' > <H5 align='left'> <INPUT TYPE='text' NAME='record' SIZE='15' MAXLENGTH='15'><INPUT TYPE='submit' NAME='go' VALUE='CAUTARE'></H5> </form> <h2>Cautare comenzi dupa numele clientului</h2> <form action='cautare_c.php' method='POST' > <H5 align='left'> <INPUT TYPE='text' NAME='record' SIZE='15' MAXLENGTH='15'><INPUT TYPE='submit' NAME='go' VALUE='CAUTARE'></H5> </form> </H5>
Fig.21

Explica ia Dou formulare de c utare. Introducerea valorii de c utare.

Introducerea valorii de c utare.

3.2.2.3 Pagina cu catalogul de flori catalogp.php Partea de autentificare este exact ca la index.php(fig.)Pentru a nu prezenta nc odat acele por iuni de cod am s abordez doar ce difer . Codul <html> <title>Catalog</title> <table width='655' border='1'> <tr> Explica ia Titlul paginii. Implementarea uni tabel cu

22

<td colspan='2' style='background-color:#C1C1C0;'> Esti autentificat!<b>/</b> <a href='dezautentificare.php'><b>Dezautentificare</b></a>

format rile de rigoare. Afi area mesajului de autentificare i a link-ului de dezautentificare. Text mi c tor.

<marquee direction=right behavior=alternate scrolldelay=5><h1>Floraria Online</h1> </marquee> </td> </tr> <h1>Catalog de flori</h1> <table border='2'> <caption>O gama variata de flori la dispozitia dumneavoastra!</caption> <tr> <th>Lalele</th> <th>Trandafiri</th> <th>Orhidee</th> <th>Narcise</th> <th>Margarete</th> </tr> <tr> <td><img src='imagini/lalea1.jpg' alt='Lalea vargata' width='125' height='125' /></td> <td><img src='imagini/trandafir1.jpg' alt='Trandafir rosu' width='125' height='125' /></td> <td><img src='imagini/orhidee1.jpg' alt='Orhidee pestrita' width='125' height='125' /></td> <td><img src='imagini/narcise1.jpg' alt='Narcise galben-deschis' width='125' height='125' /></td> <td><img src='imagini/margarete1.jpg' alt='Margarete albe' width='125' height='125' /></td> </tr> <tr> <td><img src='imagini/lalea2.jpg' alt='Lalea multicolora' width='125' height='125' /></td> <td><img src='imagini/trandafir2.jpg' alt='Trandafir galben' width='125' height='125' /></td> <td><img src='imagini/orhidee2.jpg' alt='Orhidee roz' width='125' height='125' /></td> <td><img src='imagini/narcise2.jpg' alt='Narcise cu trompa' width='125' height='125' /></td> <td><img src='imagini/margarete2.jpg' alt='Margarete africane' width='125' height='125' /></td> </tr> <tr> <td><img src='imagini/lalea3.jpg' alt='Lalea roz' width='125' height='125' /></td>

Tabel cu imagini de flori.

23

<td><img src='imagini/trandafir3.jpg' alt='Trandafir albastru' width='125' height='125' /></td> <td><img src='imagini/orhidee3.jpg' alt='Orhidee salbatica' width='125' height='125' /></td> <td><img src='imagini/narcise3.jpg' alt='Narcise albe' width='125' height='125' /></td> <td><img src='imagini/margarete3.jpg' alt='Margarete mov' width='125' height='125' /></td> </tr> </table> <a href='stoc.php'>Vizualizare flori disponibile pentru comanda</a><br> <a href='index.php'>Inapoi la pagina principala</a> </html>
Fig.22

Link. Link.

3.2.2.4 Pagina de ad ugare flori - inserarep.php n mare parte codul de la aceast pagin este identic cu cel de la index.html(fig.5) iar partea de autentificare este exact ca la index.php(fig.)Pentru a nu prezenta nc odat acele por iuni de cod am s abordez doar ce difer . Codul <form action='prelucrare.php' method='post'> <fieldset> Denumirea florii: <input type='text' name='denumire' /><br/> Culoare: <input type='text' name='culoare'/><br/> Pret: <input type='text' name='pret'/><br /> In stoc: <input type='text' name='stoc'/><br /> <input type='submit' value='Trimite'/><br/> </form>
Fig.23

Explica ia Un formular unde se introduc datele ce vor fi prelucrate pentru introducerea in baza de date.(tabelul flori)

3.2.2.4 Pagina de comand online comandap.php n mare parte codul de la aceast pagin este identic cu cel de la index.html(fig.5) iar partea de autentificare este exact ca la index.php(fig.)Pentru a nu prezenta nc odat acele por iuni de cod am s abordez doar ce difer . Codul <h2>Comanda Online</h2> <form action='comanda.php' method='post'> <fieldset> Numele: <input type='text' name='nume' /><br/> Prenumele: <input type='text' name='prenume'/><br/> Telefon: <input type='text' name='telefon'/><br /> Adresa: <input type='text' name='adresa'/><br /> Produsul comandat: <input type='text' name='floare'/><br /> Culoarea: <input type='text' name='culoare'/><br /> Cantitate: <input type='text' name='nr_bucati'/><br /> Explica ia Un formular unde se introduc datele ce vor fi prelucrate pentru introducerea in baza de date.(tabelul comanda)

24

<input type='submit' value='Trimite'/><br/> </form>


Fig.24

3.2.2.5 Pagina de actualizare comand actualizarep.php n mare parte codul de la aceast pagin este identic cu cel de la index.html(fig.5) iar partea de autentificare este exact ca la index.php(fig.)Pentru a nu prezenta nc odat acele por iuni de cod am s abordez doar ce difer . Codul <h2>Introdu datele din nou pentru actualizare</h2> <form action='actualizare.php' method='post'> <fieldset> Numele: <input type='text' name='nume' /><br/> Prenumele: <input type='text' name='prenume'/><br/> Telefon: <input type='text' name='telefon'/><br /> Adresa: <input type='text' name='adresa'/><br /> Produsul comandat: <input type='text' name='floare'/><br /> Culoarea: <input type='text' name='culoare'/><br /> Cantitate: <input type='text' name='nr_bucati'/><br /> <input type='submit' value='Trimite'/><br/> </form>
Fig.25

Explica ia Un formular unde se introduc datele ce vor fi prelucrate pentru introducerea in baza de date.(tabelul comanda)

3.2.2.6 Pagina pentru asisten

asistentap.php

n mare parte codul de la aceast pagin este identic cu cel de la index.html(fig.5) iar partea de autentificare este exact ca la index.php(fig.)Pentru a nu prezenta nc odat acele por iuni de cod am s abordez doar ce difer . Codul h3>Completati formularul pentru orice problema cu care va confruntati!</h3> <form action='MAILTO:florariaonline@yahoo.com' method='post' enctype='text/plain'> Nume: <br /> <input type='text' name='name' value='numele' /><br /> E-mail: <br /> <input type='text' name='mail' value='e-mail' /><br /> Comentariu:<br /> <input type='text' name='comment' value='comentariul dumneavoastra...' size='50' /> <br /><br /> <input type='submit' value='Trimite'> <input type='reset' value='Sterge'>
Fig.26

Explica ia Un formular unde se introduc date ce vor fi trimise la o adresa de e-mail predefinit .

3.2.2.7 Pagina de concurs upload_poze_florip.php

25

n mare parte codul de la aceast pagin este identic cu cel de la index.html(fig.5) iar partea de autentificare este exact ca la index.php(fig.)Pentru a nu prezenta nc odat acele por iuni de cod am s abordez doar ce difer . Codul <H5 align='center'> <h2>Concurs poze flori</h2><br /> <fieldset> <h3>*Incarcati cele mai frumoase poze cu flori pe care le aveti si puteti castiga unul din cele trei premii pe care le ofera firma noastra:</h3><br /> <h4>Locul I:<br /> -o excursie in statiunea St.Tropez</h4> <h4>Locul II:<br /> -200 euro</h4> <h4>Locul III:<br /> -un super buchet de flori</h4> </fieldset> <form action='upload_poze_flori.php' method='post' enctype='multipart/form-data'> <label for='file'>Numele fisierului:</label> <input type='file' name='file' id='file' /> <br /> <input type='submit' name='submit' value='Incarca' /> </form> <table border='2'> <caption>Premii:</caption> <tr> <td><img src='imagini/st.tropez.jpg' alt='Saint Tropez' width='125' height='125' /></td> <td><img src='imagini/200euro.jpg' alt='200 Euro' width='125' height='125' /></td> <td><img src='imagini/buchet.jpg' alt='Un super buchet de flori' width='125' height='125' /></td> </tr> </table> <small>*pentru a va putea contacta pozele trebuie sa aiba numele adresa dumneavostra de e-mail<br /> ex:'id-ul_tau@provider_mail.com.jpg' din care 'idul_tau@provider_mail.com' este denumirea fisierului si '.jpg' extensia lui </H5></small>
Fig.27

Explica ia Tipul de heading i alinierea. Mesaj c tre vizitatori.

Formular de upload cu posibilitatea de a c uta in fi ierele proprii.

O lista cu premiile.

Mesaj de tip small pentru a nu ocupa mult spa iu.

26

Capitolul 4 Prezentarea aplica iei


index.html

Fig.28

index.php

27

Fig.29

cautarep.php

Fig.30

catalogp.php

28

Fig.31

inserarep.php

Fig.32

stergere_comandap.php

29

Fig.33

comandap.php

30

Fig.34

actualizarep.php

Fig.35

asistentap.php

Fig.36

upload_poze_florip.php

31

Fig.37

autentificare.html

Fig.38

inregistrare.html

32

Fig.39

cautare_f.php

Fig.40

cautare_c.php

Fig.41

stoc.php

33

Fig.42

stergere_comanda.php

Fig.43

upload_poze_flori.php

Fig.44

Capitolul 5 Instalarea aplica iei


Pentru instalarea i rularea aplica iei se urmeaz pa ii urm tori:
1. Dac nu este instalat, se instaleaza EasyPHP ; 2. Se copiaza folderul Floraria Online in C:\Program

34

Files\EasyPHP3.0\www ; 3. Se copiaza folderul phpmyadmin (interfa a MySQL) din C:\Program Files\EasyPHP3.0\ in C:\ProgramFiles\EasyPHP3.0\www ; 4. Se creeaz baza de date floraria online n //localhost/phpmyadmin (interfata MySQL) , caseta Create New Database; 5. Se selecteaz baza de date floraria online (click) i se execut scriptul SQL ; 6.Se acceseaz aplica ia la adresa //localhost/floraria online

35