Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Meseria se fura, ingineria se invata.Telecomunicatii, comunicatiile la distanta, Retele de, telefonie, VOIP, TV, satelit




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Informatica


Index » educatie » Informatica
Accesarea bazelor de date in site-urile Web


Accesarea bazelor de date in site-urile Web


Accesarea bazelor de date in site-urile Web


Aplicațiile dinamice presupun existenta unei arhitecturi formata din:

- browser Web;

- Internet;

- server Web;

- server de baze de date;

- interpretor PHP.

In momentul in care utilizatorul acceseaza o pagina Web dinamica, prin intermediul unui browser Web, se transmite o cerere HTTP catre serverul Web. Daca serverul Web identifica tipul paginii ca fiind . php, atunci pagina este trimisa interpretorului PHP. Dupa interpretare, rezulta o pagina care conține cod HTML (sau JavaScript), care va fi returnata serverului Web. Sripturile PHP pot conține și cereri SQL, care vor fi adresate serverului de baze de date (mySQL).





Software-ul necesar pentru dezvoltarea de aplicații Web dinamice va cuprinde: un server Web (Apache, IIS) un interpretor PHP, un editor de text (Notepad), un browser Web (IE, Firefox, Opera) și un server de baze de date (mySQL).

Server Web reprezinta computerul și pachetul software inclus care ofera o categorie specifica de servicii unui client ce ruleaza pe un alt calculator. Serverul Web administreaza și ofera aplicațiile Web accesibile pe orice calculator conectat la Internet.

Serverul de baze de date ( sau SGBD ) este responsabil pentru stocarea datelor, gasirea lor eficienta bazata pe interogari definite de client și pentru manipularea diferitelor nivele de securitate pentru aceste date.

MySQL este cel mai popular sistem de gestiune de baze de date in regim Open Source, destinat utilizarii cu PHP. Serverul de baze de date mySQL este un sistem de gestiune de baze de date relațional, construit pe modelul client-server ce folosește limbajul SQL.

Serverul MySQL controleaza accesul la date pentru a garanta ca mai mulți utilizatori pot lucra simultan cu acestea. MySQL este un server mulți - user (mai mulți utilizatori) și multi-thread (mai multe fire de executie). Utilizeaza SQL (Structured Query Language), limbajul standard de interogare a bazelor de date din toata lumea.
SQL este limbajul standard pentru accesarea sistemelor de gestiune a bazelor de date relaționale (SGBDR). Este un limbaj relative simplu dar foarte puternic, care poate obține accesul la datele stocate in mai multe tabele, poate filtra datele dorite și poate sorta, rezuma si afișa rezultatele.

Instrucțiunile SQL trebuie incorporate in scripturile PHP astfel incat programele PHP sa poata lucra cu bazele de date relaționale.

Utilizand SQL, este posibil accesul la datele stocate intr-o baza de date relaționala fara a scrie un program de aplicație, permițand frecvent evitarea intarzierilor și a costurilor implicate de programarea personalizata.

Utilizarea bazelor de date MySQL PHP include o biblioteca de funcții care furnizeaza o interfața cu sistemul MySQL de gestiune a bazelor de date. Folosind aceste funcții, un program PHP poate obține accesul la datele rezidente dintr-o baza de date MySQL și le poate modifica.

Majoritatea interacțiunilor cu o baza de date se desfașoara dupa un model secvențial simplu:

Se deschide o conexiune cu serverul MySQL

Se specifica baza de date la care se va obține accesul

Se emit interogari SQL, se obține accesul la rezultatele interogarilor și se executa operații non-SQL

Se inchide conexiunea cu serverul MySQL


Pentru a realiza conectarea la server trebuie specificat un nume de utilizator si, de ele mai multe ori, o parola. Daca serverul ruleaza pe un alt calculator trebuie specificat si un hostname. Conectarea se realizeaza astfel:

shell> mysql -h host -u user -p

Enter password: ********


host si user reprezinta hostname-ul unde ruleaza serverul MySQL si respectiv numele unui cont MySQL,

******** reprezinta parola care trebuie introdusa.

Daca nu s-a realizat conectarea va aparea:

shell> mysql -h host -u user -p

Enter password: ********

Daca conectarea se realizeaza cu succes in continuare sunt afisate informatii introductive, urmate de prompt-ul mysql>

Welcome to the MySQL ...

Aceasta inseamna ca mysql este gata pentru sa primeasca comenzile introduse.

O comanda consta intr-o declaratie SQL urmata de semnul punct si virgula.

Cat se lanseaza o comanda, mysql o trimite serverului spre executie si afiseaza rezultatele, apoi afiseaza din nou prompt-ul mysql> pentru a indica ca este gata sa accepte alte comenzi. Mysql afiseaza rezultatul interogarilor intr-o forma tabelara. Prima linie contine etichetele coloanelor, iar liniile urmatoare sunt rezultatele interogarii.

Mysql afiseaza si numarul de randuri returnate si cat timp a fost necesar pentru executia interogarii

Pe o singura linie pot fi introduse mai mule comenzi, separate cu cate un semn punct si virgula.

O comanda nu trebuie neaparat sa fie introdusa pe o singura linie, prompt-ul se schimba din mysql> in -> dupa introducerea primei linii a unei interogari pe mai multe linii. Aceasta indica faptul ca interogarea este incompleta si mysql asteapta introducerea restului interogarii.

Se poate intrerupe introducerea unei interogari pe linii multiple folosind simbolurile c

mysql> SELECT

-> USER()

-> c

mysql>

Pentru a vedea bazele de date existente pe un server se foloseste comanda SHOW:

mysql> SHOW DATABASES;

Daca baza de date test ar exista, aceasta ar putea fi accesata prin:

mysql> USE test

Deconectarea de la serverul MySQL se poate realiza oricand prin introducerea comenzii QUIT (sau a) la prompt-ul mysql.

mysql> QUIT



Activitatea de invatare 6. 1. 1 Accesarea bazelor de date in site-urile WEB

Competenta: Formateaza elementele de conținut ale sistemului cu ajutorul software-lui specific

Obiectivul/obiective vizate:

La sfarșitul acestei activitați vei fi capabil sa:

Realizezi o conexiune la baze de date

Consulți o baza de date

Actualizezi baza de date

Ștergi inregistrari

inchizi o baza de date

Durata: 30 minute

Tipul activitatii: Diagrama paianjen



Sugestii:

elevii se pot organiza in grupe mici (2 - 3 elevi) sau pot lucra individual

Sarcina de lucru: Folosind surse diferite (internet, manual, reviste de specialitate, caietul de notițe etc) obțineți informații despre accesarea bazelor de date și organizați-le dupa modelul urmator.




Activitatea de invatare 6. 1. 2 Utilizarea bazelor de date in site-urile WEB

Competenta: Formateaza elementele de conținut ale sistemului cu ajutorul software-lui specific

Obiectivul/obiective vizate:

La sfarșitul acestei activitați vei fi capabil sa:

Realizezi o conexiune la baze de date

Consulți o baza de date

Actualizezi baza de date

Ștergi inregistrari

Inchizi o baza de date


Durata: 45 minute

Tipul activitatii: Urmeaza pașii

Sugestii:

elevii se pot organiza in grupe mici (2 - 3 elevi) sau pot lucra individual

Sarcina de lucru:

Presupunem ca vrem sa realizam o baza de date ce va contine toate informatiile de contact ale cunoscutilor. Iar informatiile vor putea fi editate si consulate in internet. Vor fi folosite urmatoarele campuri in baza de date:

Nume

Tipul

Lungimea

Descrierea

id

INT


Un identificator unic pentru fiecare inregistrare

Nume

VARCHAR


Numele de familie al persoanei

prenume

VARCHAR


Numele de botez al persoanei

telefon

VARCHAR


Numarul de telefon

mobil

VARCHAR


Numarul de telefon mobil

fax

VARCHAR


Numarul de fax

email

VARCHAR


Adresa e-mail

web

VARCHAR


Pagina Web personala

Urmariți și notați pașii urmatori:

I. 1. Pentru a avea acces la o baza de date primul lucru care trebuie facut este conectare la baza de date MySQL. Daca nu suntem conectati, comenzile catre baza de date vor esua.

Pentru a folosi o baza de date trebuie sa precizam numele de utilizator (username), parola (password) si numele bazei de date :

$username = 'nume_utilizator';
$password = 'parola';
$database = 'numele_bazei_de_date';

Sursa PHP este prelucrata de server inainte de a fi trimisa navigatorului, astfel incat este imposibil pentru orice utilizator sa vada scriptul ce conține aceste date.

I. 2. Dupa conectare este nevoie de o comanda care sa lanseze conexiunea la baza de date:

mysql_connect(localhost, $username, $password);
Aceasta linie spune PHP-ului sa se conecteze la serverul de baze de date MySQL la 'localhost' (serverul pe care ruleaza PHP-ul) folosind numele de cont memorat in $username si parola din $password.

I. 3. Crearea unei tabele cu PHP presupune parcurgerea urmatorilor pasi:

CREATE TABLE nume_tabel

Campurile sunt definite astfel :

fieldname type(length) extra info,

Campul id va fi pus ca PRIMARY, INDEX, UNIQUE si initializat ca auto_increment, intrucat acesta va fi campul identificator (primar sau index) si deci trebuie sa fie unic. Definirea sa ca auto increment inseamna ca la adaugarea fiecarei inregistrari, cata vreme nu specificam acolo un id, acesta va primi ca valoare urmatorul numar.

Pentru a crea tabela de mai sus se folosește urmatoarea secventa de comenzi PHP.

<?
$user = 'username';
$password = 'password';
$database = 'database';
mysql_connect(localhost, $user, $password);
@mysql_select_db($database) or die( 'Baza de date nu poate fi selectata');
$query = 'CREATE TABLE contacts (id int(6) NOT NULL auto_increment, nume varchar(15) NOT NULL, prenume varchar(15) NOT NULL, telefon varchar(20) NOT NULL, mobil varchar(20) NOT NULL, fax varchar(20) NOT NULL, email varchar(30) NOT NULL, web varchar(30) NOT NULL, PRIMARY KEY (id), UNIQUE id (id), KEY id_2 (id))';
mysql_query($query);
mysql_close();
?>



Se introduce numele bazei de date, contul MySQL si parola MySQL in pozitiile corespunzatoare din primele 3 linii de mai sus.

II. 1 Dupa ce ne-am conectat la severul de baze de date, trebuie sa selectam baza de date pe care vrem s-o folosim. Trebuie sa fie o baza de date la care avem acces, cu respectivul nume de utilizator. Se foloseste urmatoarea comanda:

@mysql_select_db($database) or die( 'Baza de date nu poate fi selectata');

Aceasta spune PHP-ului sa selecteze baza de date specificata in variabila $database (pe care am definit-o mai inainte). Daca conexiunea nu se poate realiza procesul (executia script-ului) se opreste afisand textul: Baza de date nu poate fi selectata

Dupa conectarea la server si selectia bazei de date dorite, putem incepe executia comenzilor pe server.

II. 2. Exista doua moduri de a executa o comanda. Primul implica introducerea comenzii in PHP, mai ales atunci cand nu apar rezultate ca urmare a executiei comenzii. Cea de a doua varianta este definirea comenzii ca o variabila. Asta va atribui variabilei rezultatele operatiei.

Pentru prima cale comanda va fi de forma:

mysql_query($query);

Introducerea datelor

Presupunem ca avem o baza de date cu adrese de contact. Pentru introducerea urmatoarelor date:

Nume: Popescu

Prenume: Gheorghe

Telefon: 021 1234567

Mobil: 0724 123456

Fax: 0294 123456

E-mail: popescughe@personal. ro

Web: http://www. xxxxxx. yyy. ro

se utilizeaza comanda:

$query = 'INSERT INTO contacts VALUES ('', 'Popescu', 'Gheorghe', '021 1234567', '072412345', '026412345', 'popescughe@personal. ro', 'http://www. xxxxxx. yyy. ro')';

Variabilei $query ii atribuim o comanda

INSERT INTO contacts VALUES.

Aceasta spune PHP-ului sa insereze in tabela numita contacts valorile care urmeaza (scrise intre paranteze). Intre paranteze apar toate campurile in ordine si sunt inserate informatiile dintre ghilimele. Spre exemplu:

Popescu va fi inserat in al 2-lea camp, care, in aceasta tabela este campul 'nume' .
Poate ati retinut ca nu am inserat nimic in primul camp din baza de date (id). Asta din cauza ca acest camp va fi un camp index, elementul unic de identificare. Fiecare inregistrare din baza de date va avea un unic ID. Din aceasta cauza, cand incarcam baza de date, vom pune ID pe 'Auto Increment', el va lua la fiecare inregistrare urmatoarea valoare din sir, iar prima inregistrare va avea valoarea ID = 1

II. 3. Introducerea datelor dintr-o pagina HTML

Introducerea datelor din paginile HTML este aproape identica cu inserarea lor din script-uri PHP. Avantajul consta, insa, in faptul ca nu apare nevoia schimbarii script-ului pentru fiecare camp de introdus. in plus, putem permite 'vizitatorilor' sa introduca direct datele lor.

Pagina HTML cu celule text pentru introducerea detaliilor corespunzatoare va arata astfel:

<form action = 'insert. php' method = 'post'>
Nume Familie: <input type = 'text' name = 'nume'><br>
Prenume: <input type = 'text' name = 'prenume'><br>
Telefon: <input type = 'text' name = 'telefon'><br>
Mobil: <input type = 'text' name = 'mobil'><br>
Fax: <input type = 'text' name = 'fax'><br>
E-mail: <input type = 'text' name = 'email'><br>
Web: <input type = 'text' name = 'web'><br>
<input type = 'Submit'>
</form>

Aceasta pagina poate fi formatata. script-ul poate fi editat pentru ca in locul introducerii informatiilor direct din script in baza de date, sa fie folosite variabilele:

<?
$username = 'username';
$password = 'password';
$database = 'baza_mea_de_date';

mysql_connect(localhost, $username, $password);
@mysql_select_db($database) or die( 'Baza de date nu poate fi selectata');
$query = 'INSERT INTO contacts VALUES ('', '$nume', '$prenume', '$telefon', '$mobil', '$fax', '$email', '$web')';
mysql_query($query);
mysql_close();
?>

Acest script trebuie salvat ca fisier cu numele insert. php, astfel ca sa poata fi apelat de formularul HTML. In loc ca datele sa fie introduse local, ele se introduc in formular si sunt memorate in variabilele care apar precizate acolo si care sunt transmise apoi PHP-ului.

II. 4. Pentru vizualizarea sau extragerea inregistrarilor se pot folosi comenzi dupa cum urmeaza. Comanda SELECT din SQL, folosita intr-o cerere MySQL in forma:

SELECT * FROM contacts

va spune script-ului sa selecteze toate inregistrarile din tabela contacts. Va trebui executata atribuind rezultatele unei variabile:

$query = 'SELECT * FROM contacts';

$rezultat = mysql_query($query);

Intregul continut al bazei de date va fi atribuit variabilei cu numele $rezultat (care va fi deci o matrice). Mai inainte de a putea scoate aceste date va trebui sa le extragem ca variabile simple, separate. Pentru asta trebuie sa stim cate inregistrari avem in tabela (deci si in variabila $rezultat )

Pentru calculul numarului de linii din tabela o comanda speciala in MySQL. Este importanta pentru ca in baza de date se fac uzual numeroase actualizari, completari, stergeri.

$num = mysql_numrows($rezultat);

Astfel, variabila $num va capata ca valoare numarul de linii din $rezultat (adica din baza de date). Acest numar va putea fi folosit pentru ciclul in care se vor analiza si desface in variable separate campurile fiecarei linii.

Pentru a selecta din tabel (din rezultat) linie cu linie definim un indice, o variabila $i care va parcurge (cu incrementare) valorile de la 1 la $num

$i = 0;
while ($i < $num)

Acesta va executa ansamblul numit OPERATIILE ASUPRA LINIEI de exact $num ori, adica de atatea ori cat trebuie. La fiecare reluare $i fiind marit cu o unitate. Astfel $i poate fi folosit si pentru a preciza numarul liniei care se prelucreaza.

In partea pe care am numita OPERATIILE ASUPRA LINIEI trebuie sa separam fiecare camp din linia - inregistrare asociindu-l unei variabile, folosind urmatoarea secventa:

$variable = mysql_result($rezultat, $i, 'numele_campului');

II. 5. Pentru a extrage fiecare componenta din baza noastra de date, vom folosi urmatoarele instructiuni:

$nume = mysql_result($result, $i, 'nume');
$prenume = mysql_result($result, $i, 'prenume');
$telefon = mysql_result($result, $i, 'telefon');
$mobil = mysql_result($result, $i, 'mobil');
$fax = mysql_result($result, $i, 'fax');
$email = mysql_result($result, $i, 'email');
$web = mysql_result($result, $i, 'web');

Script-ul complet pentru extragerea datelor:

<?
$username = 'username';
$password = 'password';
$database = 'baza_noastra_de_date';
mysql_connect(localhost, $username, $password);
@mysql_select_db($database) or die( 'Baza de date nu poate fi selectata');
$query = 'SELECT * FROM contacts';

$rezultat = mysql_query($query);

$num = mysql_numrows($rezultat);

mysql_close();

echo '<b><center>Database Output</center></b><br><br>';



$i = 0;
while ($i < $num)
?>

Formatarea scoaterii

Pentru prezentarea pe ecran a datelor in forma unui tabel trebuie realizata o formatare cu ajutorul HTML. Se inchide tagul PHP si se introduc liniile normale din HTML. Ori de cate ori ajungem la o variabila o vom include folosind o secventa de forma:

<? echo '$numele_variabilei'; ?>

Ciclul PHP va fi folosit pentru a repeta o secventa de cod ca cea de mai sus, la includerea variabilelor intr-un tablou.



<table border = '1' cellspacing = '2' cellpadding = '2'>
<tr>
<th><font face = 'Arial, Helvetica, sans-serif'>Nume</font></th>
<th><font face = 'Arial, Helvetica, sans-serif'>Telefon</font></th>
<th><font face = 'Arial, Helvetica, sans-serif'>Mobil</font></th>
<th><font face = 'Arial, Helvetica, sans-serif'>Fax</font></th>
<th><font face = 'Arial, Helvetica, sans-serif'>E-mail</font></th>
<th><font face = 'Arial, Helvetica, sans-serif'>Website</font></th>
</tr>

$i = 0;
while ($i < $num)


echo '</table>';

Aceasta secventa va afisa antetul tabelului, apoi va adauga o linie suplimentara pentru fiecare inregistrare din baza de date, formatand datele la extragere .

II. 6. PHP poate fi folosit pentru a selecta date individuale, doar anumite inregistrari, sau inregistrarile care verifica anumite criterii.

SELECT * FROM contacts

Daca vrem sa selectam doar pe acele persoane care au prenumele 'Nicu' vom folosi o cerere de forma:

SELECT * FROM contacts WHERE prenume = 'nicu'

Se pot selecta inregistrarile pe baza oricarui camp din baza de date, sau se poate selecta o inregistrare folosind mai multe campuri, adaugand in clauza:

field = 'value'

Daca dintr-un formular de cautare primim a variabila numita $nume_cautat putem imagina urmatoarea secventa:

$query = 'SELECT * FROM contacts WHERE nume = '$nume_cautat'';
$result = mysql_query($query);

Prezentarea pe ecran in forma unui tabel se face folosind PHP pentru extragerile HTML incluzand variabilele in zonele corecte. De fiecare data cand ajungem la o variabila va fi inclusa folosind o secventa de forma:

<? echo '$numele_variabilei'; ?>

Putem folosi un ciclu PHP pentru a repeta o secventa de cod de mai sus, la includerea variabilelor intr-un tablou. Putem formata pentru datele sa apara intr-o tabela mare:

<table border = '0' cellspacing = '2' cellpadding = '2'>
<tr>
<th><font face = 'Arial, Helvetica, sans-serif'>Nume</font></th>
<th><font face = 'Arial, Helvetica, sans-serif'>Telefon</font></th>
<th><font face = 'Arial, Helvetica, sans-serif'>Mobil</font></th>
<th><font face = 'Arial, Helvetica, sans-serif'>Fax</font></th>
<th><font face = 'Arial, Helvetica, sans-serif'>E-mail</font></th>
<th><font face = 'Arial, Helvetica, sans-serif'>Website</font></th>
</tr>

$i = 0;
while ($i < $num)


echo '</table>';

Secventa afiseaza antetul tabelului, apoi va adauga o linie suplimentara pentru fiecare inregistrare din baza de date.

III. Un script de actualizare are doua parti. Prima parte a script-ului de actualizare foloseste procedeul de selectie a unei singure inregistrari, adaugand doar elemente HTML pentru a-l face mai util.

III. 1. Mai intai, ne conectam la baza de date si selectam inregistrarea potrivita.

$id = $_GET['id'];
$username = 'nume_utilizator';
$password = 'parola';
$database = 'baza_de_date';
mysql_connect(localhost, $username, $password);

$query = ' SELECT * FROM contacts WHERE id = '$id'';
$result = mysql_query($query);
$num = mysql_numrows($rezultat);
mysql_close();

$i = 0;
while ($i < $num)

Unde 'Zona de cod suplimentar' marcheaza portiunea din script unde vor apare comenzile de actualizare.

III. 2. Formatarea HTML :

<form action = 'updated. php' method = 'post'>
<input type = 'hidden' name = 'ud_id' value = '<? echo '$id'; ?>'>
Numele de Familie: <input type = 'text' value = 'ud_first' value = '<? echo '$nume'?>'><br>
Numele de Botez: <input type = 'text' value = 'ud_last' value = '<? echo '$prenume'?>'><br>
Numarul de Telefon: <input type = 'text' value = 'ud_phone' value = '<? echo '$telefon'?>'><br>
Numarul de Mobil: <input type = 'text' value = 'ud_mobile' value = '<? echo '$mobil'?>'><br>
Numarul de Fax: <input type = 'text' value = 'ud_fax' value = '<? echo '$fax'?>'><br>
Adresa E-mail: <input type = 'text' value = 'ud_email' value = '<? echo '$email'?>'><br>
Adresa Web: <input type = 'text' value = 'ud_web' value = '<? echo '$web'?>'><br>
<input type = 'Submit' value = 'Update'>
</form>

Secventa construieste un formular standard.

III. 3. Urmeaza actualizarea efectiva a bazei de date. Operatia implica o noua cerere pentru baza de date:

$query = 'UPDATE contacts SET nume = '$ud_first', prenume = '$ud_last', telefon = '$ud_phone', mobil = '$ud_mobile', fax = '$ud_fax', email = '$ud_email', web = '$ud_web' WHERE id = '$ud_id'';

Aceasta cerere spune sistemului de gestiune de baze de date sa actualizeze tabela contacts in acele linii in care ID coincide cu valoarea din $ud_id (care a primit valoarea id a inregistrarii pe care o actualizam), modificand urmatoarele campuri cu valorile specificate (care au fost introduse cu ajutorul formularului).

Cererea poate fi inglobata in scriptul:

$ud_id = $_POST['ud_id'];
$ud_first = $_POST['ud_first'];
$ud_last = $_POST['ud_last'];
$ud_phone = $_POST['ud_phone'];
$ud_mobile = $_POST['ud_mobile'];
$ud_fax = $_POST['ud_fax'];
$ud_email = $_POST['ud_email'];
$ud_web = $_POST['ud_web'];

$username = 'nume_utilizator';
$password = 'parola';
$database = 'baza_de_date';
mysql_connect(localhost, $username, $password);

$query = 'UPDATE contacts WHERE id = '$ud_id' SET first = '$ud_first' last = '$ud_last' phone = '$ud_phone' mobile = '$ud_mobile' fax = '$ud_fax' email = '$ud_email' web = '$ud_web'';
mysql_query($query);
echo 'Actualizarea s-a facut';
mysql_close();

Se va actualiza baza de date transmitand si o confirmare utilizatorului.

IV. Pentru stergerea inregistrarilor - trebuie sa-i transmitem pozitia (ID-ul) inregistrarii, printr-un URL:

delete. php?id = 11

V. Cautarea - se poate realiza o cautare limitata in baza de date folosind functia speciala din MySQL, LIKE , in forma:

SELECT * FROM nume_tabela WHERE nume_camp LIKE '%$string%'

LIKE va spune bazei de date sa foloseasca posibilitatile proprii de cautare. Semnele % au semnificatia ca orice alte date pot sa apara in pozitia lor si variabila $string va contine cererea de cautare

VI. Comanda mysql_close(); inchide conexiunea cu serverul de baze de date. Scriptul va rula inca, daca nu includem aceasta comanda, iar prea multe conexiuni MySQL deschise pot cauza probleme serverului web. Este bine sa includem comanda de inchidere dupa ce am introdus toate comenzile catre baza de date, pentru a mentine platforma in buna stare.









Politica de confidentialitate





Copyright © 2023 - Toate drepturile rezervate