Documente Academic
Documente Profesional
Documente Cultură
Dezvoltare Aplicatii Web
Dezvoltare Aplicatii Web
APLICAIILOR
WEB
Bogdan Ptru
Laborator 1. Introducere
a) Ce inseamna o pagina web dinamica, care sunt diferentele fata de una statica?
La o pagina statica te uiti, la o pagina dinamica interactionezi in ambele sensuri.
b) Cum putem realiza o pagina web dinamica?
Folosind un mediu de programare web adecvat: Medii de programare web:
PHP/MySQL, ASP .NET, Flash ActionScript, VB Script, JavaScript etc.
c) Ce presupune sa realizezi o pagina web sau un site dinamic?
Un calculator pe care sunt instalate urmatoarele 3 servere: server web (ca sa
recunoasca adrese gen http://....), un server PHP (ca sa poate interpreta programele
PHP) si un server pentru baze de date MySQL (pentru a putea accesa si prelucra
tabelele din bazele de date)
d) Cum putem sa instalam toate acestea?
Exista kitul all-in-one EasyPHP sau PHP Triad care le cuprinde pe toate trei. Le
cautam pe web cu Google si le descarcam si instalam pe calculatorul propriu.
e) OK, fac pagina web dinamica pe calculatorul meu, cum pot sa fac sa o vada
oricine?
Trebuie sa iti cumperi un domeniu (de exemplu www.exemplu.ro, de la www.rotld.ro
sau www.hostdomain.ro sau altii) sau sa inchiriezi unul de la cei care ofera gratis
(www.xhost.ro, www.3x.ro etc.) sau pe bani (www.vodafone.ro etc). Apoi, vei plati
lunar o taxa (in jur de 5 euro) si vei putea sa-ti depozitezi acolo site-ul tau si baza ta
de date (folosind protocolul FTP din programul Total Commander, de exemplu).
f) Un prim program PHP care va aduna doua numere
Vom crea doua fisiere: index.html si suma.php
In index.html vom avea un formular continand doua casete de text pentru cele doua
numere:
Ambele fisiere vor fi realizate folosind un editor de texte, de exemplu Notepad. Putem
descarca de pe web un mediu de editare compilare executie mai performant (IDE).
Observatii: exista doua metode de a trimite variabile de la fisierul HTML catre programul
PHP: POST si GET.
Daca folositi metoda POST, atunci programul PHP recunoaste automat variabilele
din formularul HTML, dar variabilele din PHP se scriu cu simbolul $ in fata.
De exemplu x din formular devine $x in PHP, y din formular devine $y in PHP.
Securitatea datelor este mai mica, variabilele pot fi preluate si de alte programe
rau intentionate.
Daca folositi metoda GET, atunci puteti prelua in programul PHP variabilele din
formularul HTML, folosind $_GET[x] si $_GET[y]. Securitatea este mai
buna.
Programul PHP va genera un simplu fisier text, in care va afisa Suma este: si suma.
Daca vrem ca sa generam o intreaga pagina web avem doua variante:
Generare din cod PHP, folosind functia echo:
<?php
echo(<html><head><title>Suma</title></head><body>);
$suma=$x+$y;
echo("<p>Suma este: $suma");
echo(</p></body></html>);
?>
<html><head><title>Suma</title></head><body>
<p>Suma este:
<?php
$suma=$x+$y;
echo($suma);
?>
</p></body></html>
Atentie! Si acest fisier se salveaza cu extensia PHP, chiar daca are elemente HTML in el.
O alta varianta este crearea unui singur fisier index.php, care sa cuprinda atat
formularul pentru introducerea operanzilor, cat si codul PHP pentru calculat suma si apoi
se va reimprospata pagina respectiva.
Exercitii:
echo("<html><head><title>Salutare!</title></head>");
echo("<body bgcolor='fuschia'>");
// deschid fisierul nrvizit pentru citire
$f = fopen("nrvizit","r");
// citesc nr. de vizitatori de acolo
fscanf($f,"%d",$x);
// fscanf(fisierul de unde citesc, tipul de data,
// variabila citita). obs: %d - numar intreg
$x = $x + 1; // am crescut cu 1 numarul de vizitatori
echo("Esti vizitatorul nr. $x");
fclose($f); // am inchis fisierul
$f = fopen("nrvizit","w");
// deschid din nou fisierul, de data asta pentru a scrie
// in el
// scrie un sir $x intr-un fisier $f, conversia
// de la intreg la sir se face automat
fputs($f,$x);
fclose($f); // am inchis din nou fisierul
?>
Pentru a scrie in fisier, am apelat la o functie speciala, numita fputs, care scrie intr-un
fisier text un sir de caractere, dar conversia de la numar intreg la sir de caractere se
realizeaza automat. De fapt, limbajul PHP este foarte puternic in privinta conversiei
dintre date de diferite tipuri.
Exercitii:
1) Scrieti un program PHP care preia dintr-un formular HTML urmatoarele date din
CV-ul unei persoane (ex. numele, prenumele, adresa, numar de telefon, adresa de
e-mail, sexul, educatie, locuri de munca, pasiuni etc.) si le salveaza intr-un fisier
text.
if ($C10=="ON") fwrite($f,"10-da\n");
else fwrite($f,"10-nu\n");
if ($C11=="ON") fwrite($f,"11-da\n");
else fwrite($f,"11-nu\n");
if ($C12=="ON") fwrite($f,"12-da\n");
else fwrite($f,"12-nu\n");
if ($C13=="ON") fwrite($f,"13-da\n");
else fwrite($f,"13-nu\n");
fwrite($f,$disponib); fwrite($f,"\n");
if ($PR1=="ON") fwrite($f,"1-da\n");
else fwrite($f,"1-nu\n");
if ($PR2=="ON") fwrite($f,"2-da\n");
else fwrite($f,"2-nu\n");
if ($PR3=="ON") fwrite($f,"3-da\n");
else fwrite($f,"3-nu\n");
if ($PR4=="ON") fwrite($f,"4-da\n");
else fwrite($f,"4-nu\n");
if ($PR5=="ON") fwrite($f,"5-da\n");
else fwrite($f,"5-nu\n");
if ($PR6=="ON") fwrite($f,"6-da\n");
else fwrite($f,"6-nu\n");
fwrite($f,$sugestii); fwrite($f,"\n");
fclose($f);
}
?>
10E
1-da
2-nu
3-da
4-da
5-da
6-nu
7-nu
8-nu
9-nu
10-nu
11-nu
12-nu
13-nu
in week-end
1-nu
2-nu
3-nu
4-nu
5-da
6-da
Ar fi bine sa existe si un cerc de limbi straine.
#
In continuare vom realiza programul PHP care sa citeasca si sa afiseze datele din fisierul
FORMULAR.TXT din exemplul anterior. Fireste, nu este cel mai potrivit mod de a lucra
cu date att de complexe, de aceea vom apela la un sistem de gestiune a bazelor de date
(SGBD), precum MySQL, care este foarte simplu de invatat si de utilizat, este liber si
versiunile sale pentru Windows95/98 si Linux pot fi desc`rcate din web de la adresa
http://www.mysql.com.
Dar pna atunci, programul care realizeaza citirea si afisarea datelor despre persoanele
incluse in club este cel de mai jos. Din punct de vedere didactic, acest program si cel de
la punctul anterior au rolul de a prezenta utlizarea eficienta a instructiunii if-else,
lucrul cu fisiere text, precum si crearea de pagini web in mod dinamic, direct din cod
PHP.
Programul de mai jos prezinta si o utilizare interesanta a functiei de generare a numerelor
aleatoare, care face ca de fiecare data cnd se va genera pagina web dinamica sa se obtina
o alta imagine GIF in cadrul paginii. Daca imaginile GIF sunt si animate, efectul este
foarte captivant.
<?php
echo("<html><title>Persoane inscrise in club</title>");
echo("<body background='fond.jpg'>");
echo("<p align='center'>");
srand((double)microtime()*1000000);
$r = rand(0,3);
if ($r==0) {
echo("<a href='formular.html'>");
echo("<img src='clubarta.gif'></a>\n")"); }
else
if ($r==1) { echo("<a href='formular.html'>");
echo("<img src='clubmuzica.gif'></a>\n");}
else if ($r==2)
{ echo("<a href='formular.html'>");
echo("<img src='clubretea.gif'></a>\n");}
else if ($r==3)
{ echo("<a href='veniti_cu_noi.html'>");
echo("<img src='veniticunoi.gif'></a>\n"); }
echo("</p><br>");
echo("<img src='calv.gif'>\n");
echo("<center><font size=+2 color='blue'>");
echo("Persoanele inscrise in <b><a href='clubul.html'>");
echo("CLUBUL NOSTRU</a></b> sunt:</font></center><br><br>");
echo("<p align='right'>");
echo("<ol>");
$denumire[1]="Revista"; $denumire[2]="Thalia";
$denumire[3]="Retea"; $denumire[4]="Apollo";
$denumire[5]="Poesis"; $denumire[6]="Muzica";
$f=fopen("formular.txt","r");
$n=0;
while (!feof ($f)) {
$s = fgets($f, 4096);
if ($s!="") {
$numele = fgets($f, 4096);
$n=$n+1;
for ($i=3; $i<7; $i++)
$s = fgets($f, 4096);
$cl = fgets($f, 4096);
for ($i=8; $i<22; $i++)
$s = fgets($f, 4096);
echo("<p>$n. <b>$numele</b>, <i>$cl</i>---> ");
for ($i=22; $i<28; $i=$i+1) {
$s = fgets($f, 4096);
if ($s[2]=="d") { $y=$s[0]; echo("$denumire[$y]; "); }
}
$gata=0;
while (!$gata) {
$s = fgets($f, 4096);
if ($s[0]=='#') $gata=1;
}
}
echo("</p>");
}
fclose ($f);
echo("<p><br><b>Total: $n persoane.</b></p>");
?>
In acest program am folosit functia fgets pentru a citi date dintr-un fisier text. PHP
dispune de o mare varietate de functii de intrare-iesire a datelor din fisiere, asa ca ramne
la latitudinea fiecarui programator de a alege cea mai potrivita varianta, pentru o situatie
data.
2) Dnd comanda use baza; ne putem alege baza de date "baza" pentru a lucra in
continuare cu ea (o deschidem).
Exemplu:
mysql> use baza;
Database changed
3) Comanda create table ne permite crearea unui nou tabel, cu o anumita structura, in
cadrul bazei de date curente.
Exemplu: Vom crea tabelul agenda pentru gestionarea numelor si vrstelor unor
persoane:
mysql> create table agenda (nume char(30), varsta int(3));
Query OK, 0 rows affected (0.22 sec)
pu,
cant,
valoare)
conopida
mazare
piersici
cartofi
morcovi
conopida
castraveti
pepene
|
|
|
|
|
|
|
|
18
35
6
19
10
16
8
78
|
|
|
|
|
|
|
|
43
3
56
34
20
7
10
18
|
|
|
|
|
|
|
|
774
105
336
646
200
112
80
1404
|
|
|
|
|
|
|
|
+------------+------+------+---------+
| denumire
| pu
| cant | valoare |
+------------+------+------+---------+
| conopida
|
18 |
43 |
774 |
| mazare
|
35 |
3 |
105 |
| piersici
|
6 |
56 |
336 |
| cartofi
|
19 |
34 |
646 |
| morcovi
|
10 |
20 |
200 |
| conopida
|
16 |
7 |
112 |
| castraveti |
8 |
10 |
80 |
| pepene
|
78 |
18 |
1404 |
| CONOPIDA
|
8 |
10 |
80 |
+------------+------+------+---------+
9 rows in set (0.00 sec)
c) Afisarea doar a produselor cu valoarea mai mare sau egala cu o valoare data (500):
mysql> select * from marfuri where valoare>=500;
+----------+------+------+---------+
| denumire | pu
| cant | valoare |
+----------+------+------+---------+
| conopida |
18 |
43 |
774 |
| cartofi |
19 |
34 |
646 |
| pepene
|
78 |
18 |
1404 |
+----------+------+------+---------+
3 rows in set (0.06 sec)
d) Afisarea valorii produselor din tabel si a valorii cu tot cu TVA (se considera cota TVA
ca fiind de 19%). Desi in structura tabelului nu exista cmpul val_tva, se va genera
aceasta coloana prin comanda select de mai jos:
mysql> select denumire, valoare, valoare*1.19 as val_tva from marfuri;
+------------+---------+---------+
| denumire
| valoare | val_tva |
+------------+---------+---------+
| conopida
|
774 | 921.06 |
| mazare
|
105 | 124.95 |
| piersici
|
336 | 399.84 |
| cartofi
|
646 | 768.74 |
| morcovi
|
200 | 238.00 |
| conopida
|
112 | 133.28 |
| castraveti |
80 |
95.20 |
| pepene
|
1404 | 1670.76 |
+------------+---------+---------+
8 rows in set (0.00 sec)
e) Selectarea produselor din tabel cu preturi unitare intre doua valori date (de exemplu 10
si 40), in ordine alfabetica:
mysql> select * from marfuri where pu between 10 and 40 order by
denumire;
+----------+------+------+---------+
| denumire | pu
| cant | valoare |
+----------+------+------+---------+
| cartofi |
19 |
34 |
646 |
| conopida |
18 |
43 |
774 |
| conopida |
16 |
7 |
112 |
| mazare
|
35 |
3 |
105 |
| morcovi |
10 |
20 |
200 |
+----------+------+------+---------+
5 rows in set (0.00 sec)
7) Instruc\iunea SQL delete sterge una sau mai multe intregistrari dintr-un tabel al
bazei de date. Se pot folosi, ca si la select, diferite criterii de stergere.
Exemplu: La tabelul de mai sus, daca aplicam urmatoarea instructiune delete, vom
elimina din tabel rndurile ce contin att denumirea 'conopida', ct si denumirea
'CONOPIDA". Acest lucru se datoreazaoperatorului special like, care nu deosebeste
literele mari de cele mici.
mysql> delete from tabel where denumire like 'conopida';
Query OK, 3 rows affected (0.05 sec)
mysql> select * from tabel;
+------------+------+------+---------+
| denumire
| pu
| cant | valoare |
+------------+------+------+---------+
| mazare
|
35 |
3 |
105 |
| piersici
|
6 |
56 |
336 |
| cartofi
|
19 |
34 |
646 |
| morcovi
|
10 |
20 |
200 |
| castraveti |
8 |
10 |
80 |
| pepene
|
78 |
18 |
1404 |
+------------+------+------+---------+
6 rows in set (0.16 sec)
8) In sfrsit, instructiunea update permite actualizarea unui articol din baza de date. Afla
singur cum se foloseste!
Corespunzatoare tuturor acestor instructiuni SQL exista functiile PHP de lucru cu baze de
date MySQL numite mysql_connect pentru conectarea la baza de date si
mysql_query pentru realizarea de interogari SQL, deci pentru celelalte comenzi.
Acestea vor fi exemplificate in continuare.
Anex
Exemplu de aplicate complexaPHP-MySQL
In continuare vom prezenta o aplicatie PHP cu o baza de date MySQL mai complexa, In
care putem face adaugari, stergeri, vizualizari intr-un tabel MySQL, direct dintr-o pagina
web, prin intermediul unor functii PHP.
Astfel, sa consider`m ca avem o baza de date numita chiar BAZA, ce contine un tabel
numit chiar TABEL, acesta avnd urmatoarea structura:
denumire - caracter(20), pu - numeric(5), cant - numeric(5), valoare - numeric(10)
Baza de date se refera la produsele (m`rfurile) dintr-o magazie. Cmpul valoare este
determinat ca fiind pu inmultit cu cant.
Vom crea o pagina web cu doua cadre: in cadrul din stnga vom avea un meniu de unde
putem accesa diferite comenzi asupra tabelului, comenzi al caror efect se va vizualiza in
cadrul din dreapta.
Iata cum va arata pagina web in cazul in care s-a actionat, de exemplu, comanda
"Adaugare":
<html>
<head>
<title>Depozitul virtual</title>
<frameset border="5" frameborder="5" cols="180,*">
<frame name="left" target="right" resizable src="meniu.html" scrolling="yes">
<frame name="right" resizable src="prezentare.html">
<noframes>
</head>
<body>
Depozitul virtual.
This page uses frames, but your browser
doesn't support them.
</body>
</noframes>
</frameset>
</html>
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>Meniu principal</title>
</head>
<body background="fond.jpg" bgcolor="#C0C0C0">
<p><font color="#800000" size="4"><strong>Depozitul virtual</strong></font></p>
<p><a href="prezentare.html" target="right">Prezentare</a></p>
<p><a href="adaugare.html" target="right">Adaugare</a></p>
<p><a href="stergere.html" target="right">Stergere</a></p>
<p><a href="modificare.html" target="right">Modificare</a></p>
<p><a href="vizualizare.html" target="right">Vizualizare</a></p>
<p> </p>
</body>
</html>
Fireste, vom avea cele cinci fisiere care sunt apelate din meniu. Fisierul
MODIFICARE.HTML nu este creat; Iti propun drept exercirtiu implementarea comenzii
de modificare a unui articol din baza de date. Vei folosi instructiunea UPDATE din SQL.
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>Prezentare</title>
</head>
<html>
<head>
<title>Adaugare</title>
</head>
<body background="fond.jpg" bgcolor="#FFFFFF">
<p><font color="#FF0000" size="5">
<strong>Adaugare produs:</strong></font></p>
<p>Se adauga un produs nou in baza de date.</p>
<form action="adaugare.php" method="POST">
<p>Denumire: <input type="text" size="20" name="den">
Pret unitar: <input type="text" size="20" name="pret"></p>
<p>Cantitate: <input type="text" size="20" name="cantit">
<p>Fisier cu poza: <input type="file" size="20" name="poza">
<p><input type="submit" name="butonOK" value="Adauga"> Parola de
adaugare: <input type="password" size="8" name="parola"></p>
</form>
</body>
</html>
<html>
<head>
<title>Stergere</title>
</head>
<body background="fond.jpg" bgcolor="#FFFFFF">
<p><font color="#FF0000" size="5">
<strong>Stergere produse:</strong></font></p>
<p>Se sterg produse diin baza de date, dupa criterii:</p>
<form action="stergere.php" method="POST">
<p>Denumire: <input type="text" size="20" name="den">
Pret unitar: <input type="text" size="20" name="pret"></p>
<p>Cantitate: <input type="text" size="20" name="cantit"><input
type="submit" name="butonOK" value="Sterge"> Parola de
stergere: <input type="password" size="9" name="parola"></p>
</form> </body> </html>
<html>
<head>
<title>Vizualizare</title>
</head>
<body background="fond.jpg" bgcolor="#FFFFFF">
<p><font color="#FF0000" size="5">
<strong>Vizualizare produse:</strong></font></p>
<p>Se listeaza produse din baza de date, dupa criterii:</p>
<form action="vizualizare.php" method="POST">
<p>Denumire: <input type="text" size="20" name="den">
Pret unitar: <input type="text" size="20" name="pret"></p>
<p>Cantitate: <input type="text" size="20"
name="cantit"> <input
type="submit" name="butonOK" value="Listeaza"></p>
<p>Ordonare dupa: <input type="radio" checked name="R1"
value="denumire"> denumire <input type="radio" name="R1"
value="pu"> pret unitar <input type="radio" name="R1"
value="cantitate">cantitate</p>
</form>
</body>
</html>
Comanda de vizualizare poate avea urmatorul efect, daca se lasa libere toate cmpurile:
In continuare, vom prezenta cele trei script-uri care realizeaza operatiile de adaugare,
stergere si respectiv vizualizare a unor inregistrari din tabelul bazei de date, pe baza
formularelor descrise. Conventia la vizualizare este ca daca nu se introduce nici un cmp
in formular, atunci se vor vizualiza toate inregistrarile din baza de date, dar fara fotografii
(ci doar cu trimiteri la ele).
<?php
if ($parola!="parola")
{
echo "<html><head><title>Stergere</title></head>";
echo "<body background='fond.jpg'>";
echo "<br>Adaugarea o poate face doar";
echo "administratorul!";
echo "<br>El cunoaste parola de stergere!";
echo "</body></html>";
}
else {
// bogdan=127.0.0.1
$con=mysql_connect("","bogdan","passw") or
die("Nu ma pot conecta!");
mysql_select_db("baza",$con);
$valoare=$cantit*$pret;
mysql_query("insert into tabel(denumire,pu,cant,valoare) values(\"$den\",
\"$pret\", \"$cantit\", \"$valoare\");", $con);
mysql_close($con);
$con=ftp_connect("bogdan");
ftp_login($con,"bogdan","passw");
$nf=$den."_".$pret."_".$cantit;
$p=strrpos($poza,".");
$extensie=substr($poza,$p+1);
$fis_poza=$nf.".".$extensie;
ftp_put($con,$fis_poza,$poza,FTP_BINARY);
ftp_quit($con);
echo "<html><head><title>Adaugare</title></head>";
echo "<body background='fond.jpg'>";
echo "<br>Am adaugat: <b>$den</b>, PU: $pret Cant: $cantit Val:
$valoare";
$s=stripslashes($poza);
echo ("<p align='center'><img src='$s'</p>");
echo("</body></html>");
}
?>
Vei observa cu usurinta faptul ca in afara de a adauga datele unui produs in baza de date,
are loc si un transfer al unui fisier binar continnd imaginea produsului. Acest fisier se
afla pe calculatorul client si este transferat pe calculatorul server (gazda), prin protocolul
FTP, folosind chiar functii specializate pe "File transfer protocol" pe care le detine PHP.
Daca ti se pare ca nu intelegi cum stau lucrurile cu transferul prin FTP sau ai o problema
cu acest lucru, poti elimina liniile de program care fac referinta la transferul imaginii
produsului.
<?php
if ($parola!="parola")
{
echo "<html><head><title>Stergere</title></head>";
echo "<body background='fond.jpg'>";
echo "<br>Stergerea o poate face doar";
echo "administratorul!";
echo "<br>El cunoaste parola de stergere!";
echo "</body></html>";
}
else {
if (($den=="") && ($pret=="") && ($cantit==""))
{
$con=mysql_connect("","bogdan","passw") or
die("Nu ma pot conecta!");
mysql_select_db("baza",$con);
$s="delete from tabel";
mysql_query($s,$con);
mysql_close($con);
echo "<html><head><title>Stergere</title></head>";
echo "<body background='fond.jpg'>";
echo "<br>S-au sters toate inregistrarile!";
echo "</body></html>";
}
else
{
// server, cont, parola
$con=mysql_connect("","bogdan","passw") or
die("Nu ma pot conecta!");
mysql_select_db("baza",$con);
$s="delete from tabel where ";
if ($den!="")
if (($pret!="") or ($cantit!=""))
$s1="denumire like \"$den\" and ";
else
$s1="denumire like \"$den\"";
else
$s1="";
if ($pret!="")
if ($cantit!="") $s2="pu=$pret and";
else $s2="pu=$pret";
else $s2="";
if ($cantit!="") $s3="cant=$cantit"; else $s3="";
$s=$s.$s1.$s2.$s3.";";
mysql_query($s,$con);
mysql_close($con);
echo "<html><head><title>Stergere</title></head>";
echo "<body background='fond.jpg'>";
echo "<br>Am sters toate produsele $s";
echo "</body></html>";
}
}
?>
<?php
if (($den=="") && ($pret=="") && ($cantit==""))
{
$con=mysql_connect("","bogdan","passw") or
die("Nu ma pot conecta!");
mysql_select_db("baza",$con);
echo "<html><head><title>Vizualizare</title></head>";
echo "<body background='fond.jpg'>";
echo "<br>Mai jos sunt listate toate produsele<p>";
echo "<table border=\"1\">";
echo "<tr>";
echo "<td><strong>Nr. crt.</strong></td>";
echo "<td><strong>Denumire</strong></td>";
echo "<td><strong>Pret unitar</strong></td>";
echo "<td><strong>Cantitate</strong></td>";
echo "<td><strong>Valoare</strong></td>";
echo "<td><strong>Imagine</strong></td></tr>";
$s="select * from tabel order by ";
if ($R1=="denumire") $s=$s."denumire;";
else
if ($R1=="pu") $s=$s."pu;";
else $s=$s."cant desc;";
echo ($s);
$rez=mysql_query($s, $con);
$conftp=ftp_connect("bogdan");
ftp_login($conftp,"bogdan","passw");
$i=0;
while ($sir=mysql_fetch_array($rez))
{
$i=$i+1;
echo "<tr>";
echo "<td>$i</td>";
echo "<td>$sir[0]</td>";
echo "<td>$sir[1]</td>";
echo "<td>$sir[2]</td>";
echo "<td>$sir[3]</td>";
//
//
$nf=$sir[0]."_".$sir[1]."_".$sir[2].".jpg"; //!!!
ftp_get($conftp,"c:\\Windows\\Temp\\".$nf,$nf,FTP_BINARY);
$poza = stripslashes($nf);
$ss="c:\\Windows\\Temp\\".$nf;
$ss="ftp://bogdan//".$nf;
echo "<td><a href=$ss>click aici pentru ";
echo "foto</a></td>";
echo "</tr>";
}
echo "</table>";
mysql_free_result($rez);
ftp_quit($conftp);
echo "</p></body></html>";
}
else
{
$con=mysql_connect("","bogdan","passw") or
die("Nu ma pot conecta!");
mysql_select_db("baza",$con);
$s="select * from tabel where ";
if ($den!="")
if (($pret!="") or ($cantit!=""))
$s1="denumire like \"$den\" and ";
else
$s1="denumire like \"$den\"";
else
$s1="";
if ($pret!="")
if ($cantit!="") $s2="pu=$pret and";
else $s2="pu=$pret";
else $s2="";
if ($cantit!="") $s3="cant=$cantit"; else $s3="";
$s=$s.$s1.$s2.$s3.";";
echo "<html><head><title>Vizualizare</title></head>";
echo "<body background='fond.jpg'>";
echo "<br>Mai jos sunt listate toate produsele $s<p>";
echo "<table border=\"1\">";
echo "<tr>";
echo "<td><strong>Nr. crt.</strong></td>";
echo "<td><strong>Denumire</strong></td>";
echo "<td><strong>Pret unitar</strong></td>";
echo "<td><strong>Cantitate</strong></td>";
echo "<td><strong>Valoare</strong></td>";
echo "<td><strong>Imagine</strong></td></tr>";
$rez = mysql_query($s, $con);
$conftp=ftp_connect("bogdan");
ftp_login($conftp,"bogdan","passw");
$i=0;
while ($sir=mysql_fetch_array($rez))
{
$i=$i+1;
echo "<tr>";
echo "<td>$i</td>";
echo "<td>$sir[0]</td>";
echo "<td>$sir[1]</td>";
echo "<td>$sir[2]</td>";
echo "<td>$sir[3]</td>";
$nf=$sir[0]."_".$sir[1]."_".$sir[2].".jpg"; //!!!
ftp_get($conftp,$nf,$nf,FTP_BINARY);
$poza = stripslashes($nf);
echo "<td><a href='$poza'>click aici pentru ";
echo "foto</a></td>";
echo "<td><img src='$poza'></td>";
//
//
echo "</tr>";
}
echo "</table>";
mysql_free_result($rez);
ftp_quit($conftp);
echo "</p></body></html>";
}
?>