Capitolul I. Introducere

Lucrare de licenta

CUPRINS

Capitolul I. Introducere

Capitolul II. Limbaje utilizat

2.1.Servere si limbaje

2.1.1.Apache

2.1.1.1.Caracteristici

2.1.1.2.Opțiuni de configurare

2.1.1.3.Securitate

2.1.2.MySQL

2.1.2.1.Caracteristici

2.1.2.2. Arhitectura bazelor de date

2.1.3.PHP

2.1.3.1.Caracteristici

2.1.3.2.Editarea programelor PHP

2.1.3.3.Tipuri de date

2.1.3.4.Variabile si constante

2.1.3.6. Puncte forte ale limbajului PHP

2.1.3.7.Operatori

2.1.3.7.1. Operatori aritmetici

2.1.3.7.2. Operatori de atribuire combinați

2.1.3.7.3. Operatori de comparare

2.1.3.7.4. Operatori logici

2.1.3.7.6. Operatori tablou

2.1.4.HTML

2.1.4.1.Caracteristici

2.1.4.2Crearea de suprafețe de text

2.1.4.3.Crearea campurilor ascunse

2.1.4.4.Crearea casetelor de validare

2.1.4.5.Crearea butoane radio

2.1.4.6.Crearea de selecții

2.1.4.7.Crearea unui buton de reinițializare

2.1.5.Publicarea datelor din baza de date pe WEB

Capitolul III. Baza de date cu anunțuri publicitare

3.1.Prezentarea aplicației

3.2.Baza de date

3.2.2.Structura bazei de date

3.2.3.Tabele

3.3.Structura site-ului

3.3.1.Creare utilizatorilor

3.3.2.Autentificare

3.3.3.Introducerea anunțurilor

3.3.5.Modificarea informaților utilizatorului

3.3.6.Administrarea site-ului

3.3.6.1.Administrare anunțuri

3.3.6.2.Administrare utilizatori

3.3.6.3. Adăugare categorie

3.3.8.Inchiderea sesiunii de utilizator

Capitolul IV. Concluzii

Bibliografie

Capitolul I. INTRODUCERE

Lucrarea prezintă modul de realizare a unui site de anunțuri și mica publicitate care pune în evidență folosirea bazelor de date relaționale la crearea site-urilor web dinamice. Se folosesc baze de date de tip MySQL și scripturi PHP, rulând pe un server Apache. Aplicațiile dinamice pe web sunt strict legate de utilizarea bazelor de date.

În lumea modernă, dinamica unei organizații (instituție, firmă, ONG, etc.) este constituită, pe lângă resursele materiale și umane, din informația aflată la dispoziție. Pentru ca această resursă importantă să poată fi exploatată cu rezultate profitabile trebuie ca ea să fie gestionată eficient. Metoda optimă existentă la ora actuală este crearea, utilizarea și întreținerea unor Sisteme de gestiune a bazelor de date computerizate [1].

Prin Bază de date (BD) se înțelege o colecție de informații stocate pe calculator astfel încât acestea să poată fi accesate, modificate sau șterse. Sistemul de gestiune a bazelor de date (SGBD) este un software care realizează interfața între sistemul de operare al calculatorului și beneficiarul care solicită informații din BD.

Cele mai importante funcții ale SGBD sunt:

stocarea, regăsirea și actualizarea datelor din BD – utilizatorul poate crea consulta și manipula informațiile;

crearea și întreținerea dicționarului de date (catalogul de sistem);

facilitarea accesului simultan al mai multor utilizatori ;

păstrarea unor copii de siguranță (back-up) și recuperarea datelor în cazul căderii sistemului;

securizarea datelor prin parolarea accesului utilizatorilor și gestiunea drepturilor de intervenție în BD.

Organizarea informațiilor sub forma unor BD și accesarea lor prin intermediul SGBD aduce o serie de avantaje dintre care cele mai importante sunt:

independența datelor – schimbările structurale în BD nu afectează programele de aplicație;

coerența datelor – modificarea unei înregistrări este percepută de toți utilizatorii sistemului;

integritatea datelor – printr-un sistem de restricții SGBD obligă utilizatorii să introducă date complete și în formatul cerut pentru fiecare nou obiect introdus în BD;

reducerea redundanței – se evită repetarea unor date în mai multe locații în BD. Prin urmare, se economisește spațiul de stocare (hard-disk);

controlul centralizat al datelor – administratorul BD deține dreptul gestionării și controlului în BD;

creșterea eficienței accesului la informație – selecția și manipularea unor mari cantități de date în timp real permite analiza și extragerea unor concluzii;

creșterea securității – posibilitatea protejării prin parolare a accesului la date;

limbaj de interogare – SGBD permite accesarea datelor prin intermediul unui limbaj de interogare.

Un asemenea limbaj poate fi un:

limbaj algebric în care interogările asupra relațiilor sunt exprimate prin intermediul unor operatori aplicați asupra lor (ex. SQL);

limbaj bazat pe calcul relațional în care interogările asupra relațiilor sunt exprimate prin intermediul unor condiții (predicate) pe care înregistrările (tuplele) relațiilor trebuie să le satisfacă. Există limbaje orientate pe înregistrări (ex. QUEL, Ingress) și limbaje orientate pe domenii (ex. QBE).

În ultimele trei decenii, modelul relațional s-a impus net ca soluție preferată în majoritatea implementărilor de SGBD-uri. Prin urmare, marea majoritate a mediilor software de gestionare a BD sunt concepute conform acestui model.

Fiecare dată are două caracteristici de fundamentale:

– identificatorul;

– tipul.

Identificatorul este numele atribuit datei prin care aceasta este indicată și care permite ulterior accesarea ei. Tipul datei stabilește modul în care data este memorată și modul în care operatorii și funcțiile o prelucrează. O dată poate fi text, număr, dată calendaristică, etc.

Datele pot fi elementare (simple, scalare) sau compuse (complexe). Datele compuse sunt divizibile în mai multe date simple. Un exemplu de dată simplă este Numărul de telefon (Tel) al unui angajat, iar o dată compusă este Adresa (Adr) care cuprinde județul, orașul, strada, numărul, etc.

Analizând cele de mai sus în contextul caracteristicilor fundamentale, se poate estima că data identificată de Tel trebuie să fie de tip număr, iar cea numită Adr este de tip text. De exemplu în dialectul MySQL ele se declară cu sintaxa:

Tel int(9);

Adr, varchar(30),

adică un întreg care are întotdeauna 9 cifre (3 cifre prefixul localității și 6 numărul propriu-zis), respectiv un șir cu lungime variabilă între 0 și 30 de caractere alfanumerice.

Structura relațională este o structură arborescentă de tabele așa cum se exemplifică în Figura 1.1. Legăturile dintre tabele reprezintă relațiile unilaterale sau bilaterale între atributele acestora.

Figura 1.1. Structura relațională

Capitolul II. Limbaje utilizate

În acest capitol vor fi prezentate două aspecte principale legate de realizarea bazelor de date, a serverelor și limbajeleor utilizate. Vom parcurge etapele proiectării a acestora.

2.1. Servere și limbaje

2.1.1. APACHE

Cel mai utilizat server pe care rulează php și MySQL este serverul Apache. Un server Web este programul răspunzator de mai multe servicii având diferite protocoale cu care interacționeză. Apache este un server gratuit.

Pagina oficială: www.apache.org

2.1.1.1. Caracteristici

Un server Apache găzduiește pagini HTML, oferă posibilitatea gestionării bazelor de date, suport pentru php, pagini HTML cu suport pentru SSL (Secure Socket Layer). În cele ce urmează, se va prezenta configurarea minimă necesară pentru ca un server Web sa poată fi funcțional și să ofere suport pentru CGI.

2.1.1.2. Instalarea pachetului apache:

În Figura 1.2.1.1.2. este prezentat feresta de instalare Apache:

numele rețelei și numele serverului

adresa de e-mail a administratorului

Figura 1.2.1.1.2. Fereastra de instalare

Directorul în care se va instala Apache, în mod prestabilit acesta este C:\Program Files\Apache Group\Apache.

După toate acestea, serverul Apache a fost instalat și pornit. Apache va intercepta portul 80 (în afară de cazul în care modificăm directivele Port, Listen sau BindAddress din fișierele de configurare). Pentru conectarea la server deschidem un browser și indroducem URL:

http://localhost/

Fișierul de configurare în general îl găsim în /httpd/conf/httpd.conf. În acest fișier se specifică opțiunile dorite pentru serverul Web. Toate liniile ce incep cu # sunt comentarii și sunt ignorate, la fel ca și liniile vide. În continuare se vor prezenta câteva din variabilele de configurare.

2.1.1.3 Opțiuni de configurare

Setările implicite ale serverului apache și porturile:

ServerType standalone – arată modul în care este pornit serverul Web. Acesta poate fi fie inetd, fie standalone.

ServerRoot "/etc/httpd" – reprezintă directorul în care sunt fișierele de configuare, erorile și logurile.

PidFile /var/run/httpd.pid – în acest fișier se păstrează PID-ul (process identification number) serverului pornit.

ScoreBoardFile logs/apache_runtime_status – acest fișier este folosit pentru păstrarea unor informații interne procesului server pornit. Nu toate arhitecturile cer acest lucru, dar dacă un sistem cere acest lucru, vom ști pentru că se va crea acest fișier si, în acest caz trebuie asigurat faptul că, dacă se pornesc doua instanțe ale Apache-ului, ele nu vor folosi același fișier.

Timeout 300 – numărul de secunde înainte de a primi și a trimite semnalul de timeout.

MinSpareServers 5

MaxSpareServers 20 – Apache încearcă dinamic să folosească mai multe procese pentru a trata toate cererile care se fac și se păstrează, precum și câteva de rezervă. De exemplu, un browser Netscape face simultan mai multe cereri. Periodic se verifică numărul de procese pornite și dacă sunt prea puține, se pornesc altele, iar dacă sunt prea multe, unele se opresc necondiționat.[3]

StartServers 8 – arată câte servere trebuie să se pornească inițial.

MaxClients 150 – limitează numărul de servere ce vor rula și numărul de clienți ce se vor putea conecta simultan și dacă acest număr este depașit, ultimii clienți vor fi blocați.

Se reconstruiește lista modulelor; este foarte importantă ordinea încărcării modulelor.

Port 80 – se specifică portul pe care va asculta serverul Web.

Dacă există suport și pentru SSL (Secure Socket Layer), atunci serverul Web va asculta și pe portul 80 (HTTP) și pe portul 443 (HTTPS).

User apache

Group apache

Folosind aceste două opțiuni, se specifică și ce utilizator/grup va rula serverul Web. Numele și grupul se pot scrie ca șir de caractere sau ca număr. Pe diverse sisteme datorită acestei opțiuni se poate întâmpla ca serverul sa nu aibă acces la zona de memorie partajată. În general, se folosesc apache/apache sau nobody/nobody sau nouser/nogroup.

ServerAdmin root@localhost – se prezintă adresa de mail la care se pot semnaliza unele nereguli legate de server. Această adresă de mail se va regăsi și în unele pagini HTML generate automat de serverul Web .

ServerName bb.uvvg.ro – prin intermediul acestei variabile se setează numele severului Web ce va fi trimis clienților ce efectuează diverse cereri. Numele serverului Web trebuie să fie o adresa DNS validă sau o adresă IP (a se consulta secțiunea I.3). Dacă se va seta un nume la întâmplare, cu siguranță serverul Web nu va funcționa.DocumentRoot "/home/httpd/html" – reprezintă directorul în care se vor păstra paginile Web.

Toate paginile Web trebuie să fie în acest director, dar se pot folosi legături simbolice si alias-uri.

Fiecare director la care Apache are acces se poate configura astfel încât să se precizeze ce facilități sunt permise și care nu sunt active.

Acesta este directorul rădăcină și opțiunile pentru acest director.

Se specifică numele care se va adăuga directorului unui utilizator, dacă se face o cerere de tipul ~user. Directorul publicahtml din contul utilizatorului trebuie să poată fi accesibil pentru utilizatorul sub care rulează serverul Web (în general apache). În mod normal, permisiunea pe directorul utilizatorului trebuie să fie 711 și pentru directorul publicahtml trebuie să fie 755 pentru ca să se poată citi conținutul directorului iar documentele din acest director trebuie să poată și ele să fie citite de toată lumea, în caz contrar se va genera un mesaj de eroare în momentul în care se încearcă accesarea uapache sau nobody/nobody sau nouser/nogroup.

ServerAdmin root@localhost – se prezintă adresa de mail la care se pot semnaliza unele nereguli legate de server. Această adresă de mail se va regăsi și în unele pagini HTML generate automat de serverul Web .

ServerName bb.uvvg.ro – prin intermediul acestei variabile se setează numele severului Web ce va fi trimis clienților ce efectuează diverse cereri. Numele serverului Web trebuie să fie o adresa DNS validă sau o adresă IP (a se consulta secțiunea I.3). Dacă se va seta un nume la întâmplare, cu siguranță serverul Web nu va funcționa.DocumentRoot "/home/httpd/html" – reprezintă directorul în care se vor păstra paginile Web.

Toate paginile Web trebuie să fie în acest director, dar se pot folosi legături simbolice si alias-uri.

Fiecare director la care Apache are acces se poate configura astfel încât să se precizeze ce facilități sunt permise și care nu sunt active.

Acesta este directorul rădăcină și opțiunile pentru acest director.

Se specifică numele care se va adăuga directorului unui utilizator, dacă se face o cerere de tipul ~user. Directorul publicahtml din contul utilizatorului trebuie să poată fi accesibil pentru utilizatorul sub care rulează serverul Web (în general apache). În mod normal, permisiunea pe directorul utilizatorului trebuie să fie 711 și pentru directorul publicahtml trebuie să fie 755 pentru ca să se poată citi conținutul directorului iar documentele din acest director trebuie să poată și ele să fie citite de toată lumea, în caz contrar se va genera un mesaj de eroare în momentul în care se încearcă accesarea unei pagini Web la care serverul Web nu are acces.

Prin aceste rânduri se prezintă opțiunile pentru directoarele unui utilizator. Se poate observa că acesta are voie să ruleze CGI-uri, însă această măsură luată nu ajunge. Pentru executarea cgi-urilor trebuie setate și alte opțiuni care se vor regăsi în paginile următoare.

În acest fel se specifică directorul în care unui utilizator i se permite să execute CGI-uri.

Se prezintă numele de fișier index ce este recunoscut de serverul Web.

HostnameLookups Off – se prezinta felul în care se loghează numele clientului:

ca și adresă DNS (On) sau ca adresă IP (Off).

ErrorLog logs/error_log – locul unde se vor găsi logurile de eroare pentru serverul Web.

CustomLog logs/access_log combined – locul și tipul logurilor de acces la serverul Web.

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" – reprezintă directorul în care este permisă execuția CGI-urilor. Această directivă se adresează administratorului care poate astfel să controleze cui îi este permis și cui nu să scrie sau să execute CGI-uri.

AddHandler cgi-script .cgi .pl – dacă se dorește execuția CGI-urilor și în afara directorului /cgi-bin/ prezentat anterior, atunci trebuie să se folosească această opțiune. În cazul prezentat, se permite execuția CGI-urilor și ale scripturilor perl.

2.1.1.4. Securitate

În primul paragraf al acestui capitol s-au prezentat diferite opțiuni de configurare pentru un server Apache, iar în cele ce urmează se vor prezenta câteva din metodele de securitate oferite de Apache.

Apache pune la dispoziție trei metode de tratare a cererilor particulare pentru diverse resurse de pe server. Aceste criterii sunt: AUTORIZARE, AUTENTIFICARE, ACCES.

AUTENTIFICAREA este un proces prin care se verifică faptul că persoana care vrea să acceseze o resursă este exact cine pretinde că este. Autentificarea se face pe bază de utilizator și parolă în general, dar se poate face o autentificare și prin recunoașterea vocii, a retinei sau a amprentei.

AUTORIZAREA: se verifică dacă persoana autorizată are dreptul la resursa pe care a invocat-o. În general, se determină dacă persoana autentificată face parte dintr-un anumit grup și apoi se verifică dacă grupul are sau nu acces la acea resursă .

ACCESUL este cea mai generală cale de verificare; accesul poate fi permis sau respins bazându-se pe diferite criterii ca și adresa IP a clientului sau ora din zi sau tipul browserului folosit de utilizator etc.

Aceste trei metode sunt destul de apropiate și în aplicațiile reale este destul de dificil să se folosească numai una. În particular, autentificarea și autorizarea funcționează împreună.

MySQL este un server de date SQL foarte rapid, multiuser, multithread și foarte robust. Este făcut să ruleze pe sisteme foarte încărcate și să folosească foarte puține resurse. Se poate folosi atât gratis sub licență GNU (GNU GENERAL PUBLIC LICENSE) sau se poate opta pentru achiziționarea unei versiuni comerciale de Mysql este cel mai popular server de date SQL OPEN SOURCE, ceea ce înseamnă că se poate coda și modifica fără a fi nevoie ca utilizatorul să plătească o taxă. MYSQL se bazează pe tehnologia client/server și este folosit pentru gestiunea bazelor de date relaționale .

O bază de date este formată din unul sau mai multe tabele. O tabelă este, de fapt, un tabel ce conține informații. Fiecare coloană conține un anumit tip de informații iar fiecare rând conține un set de astfel de informații. În cazul nostru, un anunț reprezintă un astfel de rând.

Pagina oficială: www.mysql.com

2.1.2.1. Caracteristici

Este scris în C si C++ și a fost testat pe mai multe compilatoare;

Nu are probleme cu alocarea de memorie,

Se poate instala pe: AIX 4.x, Amiga, BSDI 2.x sau 3.0 sau 3.1 sau 4.x, DEC UNIX 4.x, FreeBSD 2.x sau 3.x, HP UX 10.20 sau Linux 2.0+ , Mac OS X Server, NetBSD1.3 sau 1.4, OpenBSD 2.5+, OS/2 Warp, SGI Irix 6.x, Solaris 2.5+, SunOS 4.x, SCO UnixWare 7.0.1, SCO OpenServer, Tru64 Unix, Win 9x, Win NT, Win 2000, Win XP;

Folosește GNU Automake, Autoconf si Libtool pentru portabilitate;

Conține funcții API pentru C, C++, Java, Perl, PHP, Phyton și Tcl;

Este complet multithread; poate folosi cu ușurință mai multe procesoare;

Folosește o structură de B-arbori pentru tabele de pe disc cu indicii comprimați;

Procese rapide bazate pe alocarea memoriei de către sistem;

Operațiuni de JOIN foarte rapide prin utilizarea unei operații optimizate de multi-join;

Tabela hash este în memorie și este folosită ca și tabelă temporară;

Funcțiile SQL sunt implementate ca niște librării foarte bine optimizate și ar trebui să fie foarte rapide ;

Tipurile de coloane sunt numeroare: întreg cu/fără semn pe 1,2,3,4 si 8 bytes, long, float, double, char, varchar, text, blob, date, time, timestamp, year, datetime, set și enum;

Înregistrările sunt de mărime fixă și variabilă;

Toate coloanele au valori inițiale;

Toate funcțiile și operatorii pot apărea într-o instrucțiune

SELECT …WHERE;

Prezintă suport pentru clauzele GROUP BY și ORDER BY;

Are diverse funcții ca și : COUNT(), COUNT( DISTINCT ..), AVG(), STD(), SUM(), MAX(),MIN() etc;

Suportă LEFT OUTER JOIN și RIGHT OUTER JOIN din ANSI SQL și ODBC;

Sunt permise alias-uri pentru tabele și coloane ca și în standardul SQL92;

Funcțiile DELETE, INSERT, UPDATE, REPLACE returnează numărul de înregistrări ce au fost modificate sau numărul de înregistrări ce se potrivesc în funcție de setările făcute;

Comanda SHOW poate fi folosită pentru a se obține informații despre bazele de date, tabele si indici;

Se pot face interogări pe tabele din baze de date diferite;

Accesul la bazele de date MYSQL se face prin autentificarea cu utilizator si parolă Parolele sunt criptate și în plus datele transmise între server și client sunt criptate;

Conține suport pentru tranzacții;

MYSQL poate manipula baze de date mari. Este utilizat pentru baze de date ce conțin 50.000.000 de înregistrări sau 60.000 de tabele cu aproximativ 5.000.000.000 de înregistrări;

Tabelele MySQL pot fi până la 8 TB, dar acest lucru depinde de cât de mare poate fi un fișier într-un anumit sistem de operare. Astfel, în LINUX INTEL 32-bit tabelele pot fi de 2GB sau 4GB în funcție de versiunea de LINUX, în LINUX ALPHA 8 TB, SOLARIS 2.5.1 2GB sau 4GB (dacă se folosește un patch), SOLARIS 2.6 4GB, SOLARIS 2.7 INTEL 4GB si SOLARIS 2.7 UltraSPARC 512GB;

Sunt permiși până la 32 de indecși pe tabele și fiecare index poate conține până la 16 coloane sau părți de coloane;

Clienții se pot conecta la server folosind socket-uri TCP/IP sau socket-uri UNIX sau NAMED PIPES (NT);

Oferă suport pentru redirectarea intrării si ieșirii standard [8].

2.1.2.2. Arhitectura bazelor de date

Vom prezenta metodologia pentru dezvoltarea unui sitem de baze de date pentru Web.

Operarea de bază a unui server Web este prezetantă în Figura 1.2.1.2.2. Aceste sistem este format din două obiecte: un browser și un server Web. Între ele este nevoie de o legătură pentru comunicare. Un browser Web formulează o cerere către server iar serverul trimite înapoi un răspuns. Acestă arhitectură se potrivește la un server care oferă pagini statice. Arhitectura care oferă un site Web susținut de o bază de date este puțin mai complexă.

Figura .2.1.2.2.1 Relația client/server dintre un browser Web și un server Web are novoie de comunicare.

Aplicațiile cu baze de date pentru web pe care le vom construi corespund structurii generale a unei baze de date Web, prezentată în Figura 2.2.1.2.2.

Figura 2.2.1.2.2. Arhitectura fundamentală a unei baze de date pe web este formată din browser Web, server Web, motorul de scriptare și serverul de baze de date.

O tranzacție obișnuită cu baze de date pentru Web este formată din următoarele etape, care sunt numerotate în Figura 2.2.1.2.2.

Browserul Web al unui utilizator emite o cerere HTTP pentru o anumită pagină Web.

Serverul Web recepționează cererea, regăsește fișierul și îl transferă motorului de căutare PHP pentru prelucrare.

Motorul PHP începe analiza scriptului. În interiorul scriptului există o comandă pentru conectare la baza de date și executarea unei interogari. PHP deschide o conexiune la serverul MySQL și trimite interogarea respectivă.

Serverul MySQL recepționează interogarea bazei de date și o prelucrează, iar apoi trimite rezultatele înpoi la motorul PHP.

Mororul PHP încheie rularea scriptului, ceea ce va implica de obicei formarea rezultatelor interogării într-un cod HTML. Apoi returnează codul HTML rezultat la serverul Web.

Serverul Web transferă codul HTML înapoi la browser.

În mod fundamental, procesul este identic indiferent de motorul de scriptare sau de serverul de baze de date folosit. De mai multe ori, software-ul serverului Web, motorul PHP și serverul de baze de date funcționează pe același sistem. Totuși, este un lucru destul de obișnuit ca serverul de baze de date să ruleze pe un alt sistem din motive de securitate, de creșterea capacității sau de distribuire a încărcăturii. Din punctul de vedere al dezvoltării, acestă muncă va fi asemănătoare, dar poate va oferi avantaje semnificative în privința performanței.

Este un limbaj de scriptare pe partea de server proiectat anume pentru Web. Este unul din limbajele de scripting care face mai ușoara legătura dintre paginile web și bazele de date.

Pagina oficiala: www.php.net

2.1.3.1. Caracteristici

Fișierul de configurare a php se află în:

C:\apachefriends\xampp\apache\bin\php.ini

Rulând un script ce conține phpinfo(); se poate vedea configurația generală a serverului apache, Figura 1.2.1.3.1.

Figura 1.2.1.3.1. Serverul Apache

2.1.3.2. Editarea programelor PHP

Pentru editarea scripturilor PHP se folosește un editor de text (ex Notepad sau phpedit).

2.1.3.3. Tipuri de date

In PHP lucrul cu variabile este extrem de simplu. PHP recunoaște ușor tipurile variabilelor, iar sintaxa de definire a acestora are structura cea mai simplă posibilă.

PHP acceptă următorele tipuri de date:

Integer – utilizat pentru tipuri întregi.

Float(numit și Double)- utilizat pentru numere reale

String- utilizat pentru șiruri de caractere

Boolean- utilizat pentru valori true (adevărat) sau false (false)

Array- utilizat pentru stocarea mai multore date de același tip

Object- utilizat pentru stocarea instanțelor claselor.

2.1.3.4. Tipurile de variabile

Toate variabilele, în PHP încep cu semnul dolar ($). Nu contează ce tip de variabilă folosește. În codul programului toate arată la fel. PHP reține tipul informației stocate în variabilă.

Nu este necesară o declarare a variabilelor la începutul programului. Următorul exemplu arată cum se declară o variabilă de tipul string, integer, și floating-point:

Tipul unei variabile se referă la genul de date care sunt păstrate în ea . PHP furnizează un set din ce în ce mai mare de tipuri de date. Date diferite pot fi stocate în tipuri de date diferite.

Domeniul de valabilitate al variabilelor

Termenul de domeniu de valabilitate se referă la locurile dintr-un script în care este vizibilă o anumită variabilă. Cele șase reguli de bază din PHP, referitoare la domenii de valabilitate, sunt:

Variabile superglobale încorporate sunt vizibile peste tot în script.

Constantele, după ce au fost declarate, sunt întodeuna vizibile global, adică pot fi utilizate în interiorul și în exteriorul funcțiilor.

Variabilele globale declarate într-un script sunt vizibile în script, dar nu în interiorul funcțiilor.Variabilele utilizate în interiorul funcțiilor, care sunt declarate ca fiind globale, se referă la variabila locală având același nume.

Variabilele create în interiorul funcțiilor și declarate ca statice sunt invizibile din afara funcției dar își păstrează valoarea de la o execuție la alta.

Variabilele create în interiorul funcțiilor sunt locale funcției și își încetează existența când funcția se încheie.

Lista completă a superglobalelor este:

$GLOBALS, un tablou cu toate variabille globale

$_SERVER, un tablou cu variabilele de mediu ale serverului

$_GET, un tablou cu variabile transferate scriptului prin metoda GET

$_POST, un tablou cu variabile transferate scriptului prin metoda POST

$_COOKIE, un tablou cu variabile bloc cookie

$_FILES, un tablou cu variabile legate de încărcarea fișierelor

$_ENV, un tablou cu variabile de mediu

$_REQUEST, un tablou cu variabile introduse de utilizator, inclusiv conținutul intrărilor din $_GET, $_POST și $_COOKIE

$_SESSION, un tablou cu variabile de sesiuni

2.1.3.5. Constante

Constanta este un identificator pentru o valoare simplă. Cum arată și numele, valoarea acesteia nu se modifică pe durata execuției scriptului. Numele constantei este case-sensitive, ca și în cazul variabilelor. Prin convenție, constantele se scriu întotdeauna cu litere mari.

Constantele pot conține numai date de tipul: boolean, integer, floating-point și string.

Există cîteva diferențe între constante și variabile:

constantele nu au semnul dolar ( $ ) în față;

constantele pot fi definite și accesate oriunde, fără a ține cont de regulile de la variabile;

constantele nu pot fi redefinite.

2.1.3.6. Puncte forte ale limbajului PHP

Câțiva dintre competitorii principali ai PHP sunt Perl, Microsoft ASP.NET, Java Server Pages (JSP) și ColdFusion.

În comparație cu aceste produse. PHP are multe puncte forte, printre care:

performanță ridicată

interfață pentru multe sisteme de baze de date diferite

biblioteci încorporate pentru multe din taskurile Web obișnuite

cost scăzut

ușurință în învățare și utilizare

suport puternic orietat spre obiecte

portabilitate

disponibilitatea codului sursă

disponibilitatea suportului.

2.1.3.7. Operatori

Utilizarea operatorilor

Operatorii sunt simboluri pe care le folosim la manevrarea valorilor și variabilelor prin efectuarea unei operații asupra lor. Va trebui să folosim unii dintre acești operatori pentru a calcula totalurile la comanda clientului.

De obicei, operatorii pot avea unul, două sau trei argumente, marea lor majoritate având două. De exemplu, operatorul de atribuire are două argumente- locația de stocare, în parte stângă a semnului = și o expresie, în partea dreaptă. Aceste argumente poartă numele de operanzi; adică, lucrurile asupra căror se efectuează operația.

2.1.3.7.1. Operatori aritmetici

Operatorii aritmetici sunt foarte simpli- sunt operatori matematici obișnuiți. Tabelul 1.3.1.3.7.1 prezintă operatorii aritmetici.

Tabelul 1.2.1.3.7.1 Operatorii aritmetici din PHP

2.1.3.7.2. Operatori de atribuire combinați

Operatori de atribuire combinați există pentru fiecare operator aritmetic și pentru operatorul de concatenare a șirurilor. Un rezumat al tuturor operatorilor de atribuire combinați și al efectelor lor este prezentat în Tabelul 1.2.1.3.7.2.

Tabelul 1.2.1.3.7.2. Operatori de atribuire combinați în PHP

2.1.3.7.3. Operatori de comparare

PHP acceptă și alți câțiva operatori de comparare. Un rezumat al tuturor operatorilor de comparare este prezentat în Tabelul 1.2.1.3.7.3. Un operator care trebuie remarcat este operatorul identic, = = =, care returnează true numai dacă cei doi operanzi sunt egali și au același tip. De exemplu, 0 = = ‘0’ va returna true, dar 0 = = = ‘0’ nu va face acestu lucru deoarece primul zero este un întreg iar cel de al doilea este un șir.

Tabelul 1.2.1.3.7.3. Operatori de comparare în PHP

2.1.3.7.4. Operatori logici

Operatorii logici sunt folosiți pentru a combina rezultatele condițiilor logice. De exemplu, putem fi interesați de situația în care valoarea unei variabile, $a, este cuprinsă între 0 și 100. Va trebui să testăm condițiile $a >= 0 și $a <= 100, folosind operatorul AND, astfel:

$a >= && $a <= 100

PHP acceptă operatori logici AND, OR, XOR, (SAU exclusiv) și NOT.

Setul de operatori logici și utilizarea lor sunt prezentate in Tabelul 1.2.1.3.7.4.

Tabelul 1.2.1.3.7.4. Operatorii logici din PHP

2.1.3.7.5. Operatori pe biți

Operatorii pe biți permit tratarea unui întreg ca fiind serie de biți folosită pentru a-l reprezenta. Probabil că în PHP nu este considerat prea util, dar un rezumat al operatorilor pe biți este prezentat în tabelul 1.3.1.3.7.5.

Tabelul 1.21.3.7.5. Operatori pe biți din PHP

2.1.3.7.6. Operatori tablou

Există mai mulți operatori tablou. Operatorii element din tablou ([]) ne permit să accesăm elemente de tablou. De asemenea, în unele situații vom folosi și operatorul =>. Aceștia sunt prezentați in Tabelul 1.21.3.7.6.

Tabelul 1.21.3.7.6. Operatori tablou în PHP

2.1.4. HTML – ( hyper text markup language )

2.1.4.1. Caracteristici

Câteva elemente de HTML:

Pentru a descrie un formular folosiți eticheta FORM, care are următoarea formă elementară:

<FORM METHOD=”metoda” ACTION=”url” >

Atributul METHOD poate lua una din valorile GET sau POST.

Când METHOD este GET (implicit), datele introduse în form sunt trimise ca o cerere HTTP GET cu ?form_data adăugat la sfârșitul URL-ului specificat de atributul ACTION. Astfel, datele trimise prin metoda GET pot fi vizualizate de către utilizator (dezavantaj). Folosirea metodei GET permite ca trimiterea form-ului să fie conținută în URL. Aceasta prezintă avantajul că poate fi făcută bookmark în browserele actuale, dar, datele nu pot conține caractere non-ASCII precum "é" si "©". De asemenea, cantitatea de date care poate fi procesată prin metoda GET este limitată de lungimea maxima a URL-ului pe care o accepta serverul și browserul. Pentru siguranță, form-urile care ar putea conține caractere non-ASCII sau mai mult de 100 de caractere trebuie să folosească METHOD=POST. Cu valoarea METHOD egală cu POST, datele introduse în form sunt trimise ca o cerere HTTP POST, iar datele sunt conținute în interiorul cererii. Majoritatea browserelor actuale nu pot face bookmark la cereri POST, dar, astfel POST nu limitează lungimea și tipul de caracter introdus, precum

Este mai bine să se folosească în mod consecvent metoda POST, deoarece alegerea între metodele GET si POST este destul de complicată. Ca regulă empirică, mulți programatori folosesc GET pentru formulare care execută o căutare sau o interogare, respectiv POST pentru formulare care actualizează o bază de date sau un fișier. Astfel, datele trimise prin metoda GET pot fi vizualizate de către utilizator.

Atributul ACTION specifică adresa URL a scriptului PHP care prelucrează datele adunate prin intermediul formularului. Adresa URL poate fi o adresă completă, care include protocolul, numele gazdei și calea de acces, respectiv o adresă parțială care specifică o locație relativă la locația paginii curente.

Între eticheta FORM și eticheta sa /FORM corespunzătoare, plasați controalele formularului.

<FORM method=”POST” action=”http://www.php.intercer.org/test.php”>

<FORM method=”POST” action=”test1.php”>

Pentru a crea o casetă de tip text folosim un control text :

<INPUT TYPE=”text” name=”mytext”>

Atributul NAME atribuie casetei cu text un nume, astfel încât conținutul său să fie accesibil unui script PHP. Numele care se atribuie unui control trebuie să fie unic în cadrul formularului și trebuie să respecte regulile pentru denumirea variabilelor PHP, cu excepția că nu trebuie să înceapă cu simbolul $. HTML nu are o etichetă /INPUT.

Dacă trimitem scriptului PHP date confidențiale, folosim o casetă text de tip password

<INPUT TYPE=”password” name=”mypassword”>

Pentru a expedia datele unui script PHP, aveți nevoie de un buton de expediere:

<INPUT TYPE=”submit” VALUE=”text”>

Atributul VALUE specifică textul care trebuie să apară pe suprafața butonului de expediere.

Crearea unui formular cu 3 controale: un control de tip text, unul de tip password și un buton se face utilizând secvența:

<FORM METHOD=”post” ACTION=”login.php”>

Login : <INPUT TYPE=”text” name=”login”>

Parola : <INPUT TYPE=”password” name=”parola”>

<INPUT TYPE=”submit” VALUE=”Login”>

</FORM>

2.1.4.2. Crearea de suprafețe cu text

La fel ca o casetă cu text, o suprafață cu text permite unui utilizator sa introducă text .Cu toate acestea, o suprafață cu text poate permite utilizatorului să introducă mai multe linii de text, în timp ce o casetă de text permite introducerea unei singure linii de text.

<TEXTAREA NAME=”mytext” ROWS=”numar” COLS=”numar” WRAP=”wrap”>

Atributul NAME (obligatoriu) specifică numele controlului;

Atributul ROWS (obligatoriu) specifică numărul liniilor de text vizibile în suprafața cu text;

Atributul COLS (facultativ) specifică numărul coloanelor de text vizibile în suprafața cu text;

Atributul WRAP (facultativ) specifică maniera de înfașurare în interiorul suprafeței cu text;

O etichetă TEXTAREA trebuie combinată cu o etichetă /TEXTAREA. Orice text care apare între etichete va fi prezentat drept conținut inițial al controlului de tip suprafață cu text.

2.1.4.3. Crearea câmpurilor ascunse

Uneori este utilă crearea așa-numitelor câmpuri ascunse. Valorile câmpurilor ascunse sunt trimise la server alături de valorile altor controale; cu toate acestea, utilizatorul nu are posibilitatea de a vizualiza sau manipula valorile câmpurilor.

<INPUT TYPE=”hidden” NAME=”mytext” VALUE=”myvalue”>

2.1.4.4. Crearea casetelor de validare

Pentru datele care pot avea numai una din două valori, cum ar fi “pornit” sau “oprit”, caseta de validare este controlul ideal. De exemplu, caseta de validare este un control adecvat pentru a permite utilizatorului să opteze pentru livrarea rapidă a unui colet. În cazul în care caseta de validare este validată, coletul va fi livrat mai rapid, în caz contrar, coletul se va deplasa cu mijloace obișnuite.

<INPUT TYPE=”checkbox” NAME=”mycheck” value=”text” CHECKED>

Dacă atributul CHECKED apare, caseta de validare va fi selectată în mod prestabilit; în caz contrar, caseta de validare nu este selectată inițial.

Atributul VALUE specifică valoarea care este trimisă serverului în cazul în care caseta de validare este selectată; dacă atributul nu este specificat, se va trimite valoarea on (activat).

2.1.4.5. Crearea butoanelor radio

Ca și casetele de validare, butoanele radio pot avea numai una din două valori. Cu toate acestea, butoanele radio sunt organizate în grupuri, iar la un moment dat poate fi activat un singur buton radio din cadrul unui grup; toate celelalte trebuie să fie dezactivate. Butoanele radio sunt utile pentru a permite unui utilizator sa aleagă dintr-o serie de alternative mutual exclusive. De exemplu, se poate folosi un set de trei butoane radio pentru a permite utilizatorului să specifice tipul de ambalaj pentru un cadou: fără ambalaj, cu ambalaj simplu sau sofisticat. Numai unul din cele trei butoane radio poate fi activat; la un loc, setul de butoane radio oferă utilizatorului o triplă opțiune.

<INPUT TYPE=”radio” NAME=”myradio” value=”text” CHECKED>

Atributele unui buton radio au aceeași semnificație ca și acelea ale unei casete de validare

Toți membrii unui set de casete de validare prezintă aceiași valoare a atributului name.

2.1.4.6. Crearea de selecții

O selecție este un meniu care defilează, de unde utilizatorul poate alege una sau mai multe opțiuni. De exemplu, într-o selecție pot fi enumerate garniturile pentru pizza, astfel încât un utilizator să poată selecta orice combinație de garnituri pe care o dorește.

<SELECT NAME=”myselect” size=”numar” MULTIPLE> etichete OPTION </SELECT>

Eticheta SELECT este folosită în combinație cu eticheta /SELECT. Între cele două etichete este inclusă o serie de etichete OPTION.

Atributul MULTIPLE arată că utilizatorul poate alege mai multe opțiuni menținând apăsând tasta CTRL și executând click pe aceasta. În absența atributului MULTIPLE, utilizatorul poate selecta o singură opțiune. Dacă se specifică atributul MULTIPLE, trebuie specificat și un atribut NAME, care atribuie un nume de tablou ca nume al controlului. De exemplu, un control de tip selecție care permite utilizatorului să aleagă mai multe garnituri pentru desert trebuie denumit folosind sintaxa garnitură, nu garnitura.

Atributul SIZE specifică numărul de opțiuni vizibile. Prin utilizarea unui buton de derulare în jos sau a unei bare de defilare, utilizatorul poate manipula selecția pentru a obține accesul la restul opțiunilor și a alege dintre acestea.

Așa cum s-a arătat, o selecție este asociată cu una sau mai multe opțiuni. Pentru a crea o opțiune care urmează a fi utilizată în cadrul unei selecții, se folosește următoarea sintaxă:

<OPTION SELECTED VALUE=”text”>conținut_opțiune</OPTION>

Eticheta OPTION este combinată cu eticheta /OPTION. Textul dintre aceste etichete este cunoscut sub numele de conținut al opțiunii. Conținutul opțiunii apare în controlul SELECT.

Mulți programatori HTML omit eticheta /OPTION, caz în care textul opțiunii se extinde până la următoarea etichetă OPTION sau /SELECT/. Totuși, s-ar putea ca acest mod de utilizare să nu fie compatibil cu versiunile ulterioare ale standardului HTML.

2.1.4.7. Crearea unui buton de reinițializare

Acest buton este folosit pentru ca utilizatorul să poată șterge toate informațiile incluse într-un formular.

<INPUT TYPE=”reset” VALUE=”reset”>

Unicul atribut obligatoriu este TYPE. Atributul opțional VALUE specifică textul care va apărea pe suprafața butonului de reinițializare; dacă atributul este omis, pe buton va scrie “Reset”.

Am văzut cum se poate crea un formular în HTML. Acum o să vedem cum putem prelua variabilele din php și să le afișăm într-o fereastră nouă.

O variabilă preluată dintr-un formular poate fi preluată prin una din modalitățile:

1. $_POST[“nume_variabila”] sau cu $_GET[“nume_variabila”] (în funcție de atributul method al formului – post sau get)

2. De asemenea, pot fi folosite și $HTTP_POST_VARS[“nume_variabilă”] și $HTTP_GET_VARS[“nume_variabilă”]

3. Dacă în PHP.ini (fișierul de configurare al php-ului) aveți setat register_globals=on puteți folosi $nume_variabilă

2.1.5 Publicarea datelor din baza de date pe web

Un browser web nu se poate lega direct la serverul MySQL, nu poate trimite interogări și nu poate afișa rezultatul returnat de acestea. Un browser web nu poate decât să afișeze pagini HTML. Din acest motiv avem nevoie de PHP, care se poate conecta , poate trimite interogări și poate afișa rezultatul interogărilor în format HTML, format înțeles de un browser web.

Figura 2.1.5. Publicarea datelor din baza de date pe web

Browserul web vrea să afișeze o pagină. El cere această pagină serverului web, care, văzând că este o pagină de tip PHP o trimite spre prelucrare modulului de PHP instalat. Acesta interpretează codul, vede ca sunt cerute date din baza de date, se conectează la aceasta, le obține și generează codul HTML pentru afișarea lor. Astfel, pagina generată este servită browserului care o afișează.

Capitolul III. BAZĂ DE DATE CU ANUNȚURI PUBLICITARE

Aplicația de față se referă la realizarea unui site de „Anunțuri publicitare” ce folosește o bază de date „publicitate” alcătuita din 4 tabele.Utilizatorii au posibilitatea de a posta anunțuri gratuit, de a căuta în baza de date a site-ului anunțuri și de a răspunde prin e-mail celui care l-a postat.

3.1. Prezentarea aplicației

O bază de date distribuită este o bază de date care este controlată de un sistem de management al bazei de date în care dispozitivele de stocare nu sunt atașate în totalitate de o unitate centrală de prelucrare obișnuită. Pot fi stocate în calculatoare multiple așezate în aceeași locație fizică, sau dipersate într-o rețea sau prin calculatoare interconectate.

Colecții de date (de exemplu într-o bază de date) pot fi distribuite de-a lungul mai multor locații fizice. O bază de date distribuită este distribuită în partiții/fragmente separate. Fiecare partiție/fragment a unei baze de date distribuită poate fi reprodusă (adică eșecuri redundante, cum ar fi o matrice de hard-disk-uri). În afară de replicarea și fragmentarea bazelor de date distribuite, există multe alte modele de tehnologii ale bazelor de date distribuite. De exemplu, autonomia locală, și tehnologii sincrone și asincrone ale bazelor de date distrbuite. Această implementare a tehnologiilor poate, și în mod sigur, depinde de nevoile afacerii și sensibilitatea/confidențialitatea datelor care vor fi stocate în baza de date. Un server de baze de date este un software care înteține o bază de date, și un client este o aplicație care cere informații de la server. Fiecare calculator într-un sistem este un nod. Un nod într-un sistem de baze de date distribuite se comportă ca un client, un server, sau ambele, depinde de situație. Bază de date ditribuită omogenă folosește un SGBD (exemplu: Oracle). [17]

Bază de date distribuită heterogenă folosește mai multe SGBD (exemplu: Oracle și MySql și postgresql).

Utilizatorii accesează baza de date distribuită prin: aplicații locale aplicații care nu necesită date de pe alte site-uri. Aplicații globale sunt aplicații care au nevoie date de pe alte site-uri .

La realizarea bazelor de date distribuite trebuie să ne asigura că:

• Distribuița este transparentă – utilizatorii trebuie să poată să interacționeze cu sistemul ca și când ar fi un sistem logic;

Tranzacțiile trebuie să fie transparente – fiecare tranzacție trebuie să mențină integritatea bazei de date de-a lungul multiplilor baze de date. Tranzacțiile trebuie de asemenea să fie divizate în subtranzacții, fiecare subtranzacție afectând un sistem de baze de date.

Avantajele bazelor de date distribuite

Reflectă structura organizațională – fragmente ale bazei de date sunt situate în departamentele de care aparțin;

Autonomie locală – un departament poate controla datele despre ele (ele fiind cele cu care sunt obișnuite);

Disponibilitate îmbunătățită – o greșeală într-un sistem de baze de date va afecta doar un fragment, în loc să afecteze toată baza de date;

Performanță îmbunătățită – datele sunt amplasate lângă site-ul cu cererea cea mai mare, iar bazele de date însuși sunt paralelizate, permițând ca încărcarea în baza de date să fie echilibrată de-a lungul serverelor. (O încărcare mare într-un modul al bazei de date nu va afecta alte module a bazei de date într-o bază de date distribuită);

Economie – costă mai puțin să se creeze o rețea de computere mai mică cu puterea unui singur computer mare;

Modularitate – sistemele pot fi modificate, adăugate sau șterse dintr-o bază de date distribuită, fară să afecteze alte module (sisteme).

3.2. Baza de date

Pentru a proiecta o baza de date relațională, trebuie întâi să se realizeze un model de date care să permită o reprezentare corectă a entităților, a relațiilor dintre ele și a constrângerilor asupra atributelor. Pentru atingerea acestui obiectiv, trebuie să se identifice un set de tabele optim și adecvat. Tehnica utilizată la stabilirea numărului și structurii acestor relații se numește normalizare. Normalizarea este o tratare de jos în sus a proiectării bazelor de date, deoarece pornește de la examinarea relațiilor dintre atribute.

3.2.1. Crearea bazei de date

CREATE DATABASE `publicitate` ;

Se creează baza de date cu numele publicitate.

Figura 3.2.1.1. Crearea bazei de date publicitate

Figura 3.2.1.2. Crearea tabelelor

3.2.2. Structura bazei de date

Baza de date este alcătuita din următoarele tabele:

admin – conține userul și parola administratorului;

anunțuri – conține informatile despre anunțuri;

categ – conține categoriile;

user – conține datele despre utilizatori;

Crearea unui tabel se face cu urmatoarea secventa:

CREATE TABLE nume-tabel(

Nume_camp1 tip-date-camp(lungime) constrângeri,

Nume_camp2 tip-date-camp(lungime) constrângeri,

………..

Nume_campN tip-date-camp(lungime) constrângeri);

Tabelele semnificative sunt legate între ele astfel încât baza de date va avea următoarea structură relațională reprezentată în figura 3.2.2.1.

Figura 3.2.2.1. Structura bazei de date

3.2.3. Tabele

In continuare vor fi prezentate cele 4 tabele ce alcatuiesc baza de date.

Fișierul de creare a tabelului admin este prezentat mai jos:

Figura 3.2.3.1. Structură tabelului admin

Fișierul care descrie crearea tabelului anunturi este prezentat mai jos:

Figura 3.2.3.2. Structură tabelului anunturi

Fișierul care descrie crearea tabelului categ este prezentat mai jos:

Figura 3.2.3.3. Structură tabelului categ

Fișierul care descrie structura tabelului useri este prezentat mai jos:

Figura 3.2.3.4. Structură tabelului user

3.3. Structura site-lui

Site-ul este structurat pe următoarele pagini:

Vizitatori

Home – prima pagină;

Login – partea de intrare în site ca utilizator;

Sign-up – partea de creare a unui cont de utilizator pe site.

Utilizatori

Home – prima pagină;

Introducere anunț – postarea de noi anunțuri;

Anunțurile mele – administrarea anunțurilor proprii de către utilizator;

Profilul meu – administrarea datelor de contact, parola;

Logout – ieșirea din sesiunea de utilizator.

Administrator

Home – prima pagină;

Introducere anunț – postarea de noi anunțuri;

Anunțurile mele – administrarea anunțurilor proprii de către utilizator;

Profilul meu – administrarea datelor de contact, parola;

Administrare – administrarea site-ului, anunțuri, utilizator;

Logout – ieșirea din sesiunea de utilizator.

Figura 3.3.1. Structura unei pagini din cadrul site-lui „Anunturi.ro”

3.3.1. Crearea utilizatorilor

Crearea utilizatorilor se face prin completarea formularului de înscriere „Cont nou” de către utilizator, corectitudinea datelor revenind utilizatorului.

Figura 3.3.1 Formular inscriere user.

În continuare este prezentat conținutul fișierul care descriere modul de creare a unui utilizator nou.

După ce s-a completat formularul, informațiile sunt procesate astfel:

– Se scriu informațiile în baza de date;

– Contul este activat automat;

Figura 3.3.1.2. Afișarea mesajului de creare a noului user.

Mai jos este prezentat codul sursă ce descrie confirmarea înscrierii utilizatorului în baza de date:

3.3.2. Autentificare

Autentificarea se face pe baza unui nume utilizator și a unei parole stocate în tabelul useri.

Trimiterea parolei se encriptează cu metoda MD5(), care este o metoda de criptare destul de puternică.

Figura 3.3.2.1. Formularul autentificare user.

Codul sursă pentru formularul „Login” de introducere a numelui utilizatorului și parola sa:

Figura 3.3.2.2. Formularul cu profilul userului.

3.3.3. Introducerea anunțurilor

În figura 3.3.3.1. este prezentată pagina ce prezinta formularul introducere anunțuri.

Figura 3.3.3.2. Formularul cu adaugare anunțuri.

În continuare este prezentată secvența de program care permite introducerea datelor anunțului.

Figura 3.3.3.3 Confirmarea introducerii anunțului.

După introducerea anunțului în baza de date se afișează mesajul de succes și dă posibilitatea introducerii unui nou anunț.

Secvența următoare descrie codul sursă pentru verificarea datelor din anunț și oferă posibilitatea de a modifica valabilitatea anunțului:

3.3.5. Modificarea informațiilor utilizatorului

Pagina corespunzătoare utilizatorului care permite și modificarea informațiilor personale este prezentată în figura 3.3.5.1.

Figura 3.3.5.1. Pagina de afișarea datelor personale

În continuare este prezentată secvența de program prin care sunt afișate datele presonale curente ale utilizatorului, cu posibilitatea de modificare:

Figura 3.3.5.2. Formularul de modificare a datelor personale

În continuare este prezentată secvența de program prin care pot fi modificate datele personale ale utilizatorului:

Figura 3.3.5.4. Formularul de schimbare a parolei

3.3.6. Administrarea site-ului

Administrarea site-ului dă posibilitatea administratorului să vizualizeze toate anunțurile postate pe site. Din meniu se mai pot administra și utilizatorii. Pentru a accesa partea de administrare se folosesc: -user: admin

-parola: admin

În figurile următoare sunt prezentate paginile corespunzătoare administrării.

3.3.6.1. Administrarea anunțurilor

Figura 3.3.6.1.1. Panoul de control

Administrarea anunțurilor are următoarele posibilități:

– ștergere;

– editare;

– vizualizare;

– utilizator.

În continuare este prezentată secvența de program corespunzătoare administrari anunturilor:

3.3.6.2. Administrarea utilizatorilor

Panoul de administrarea al utilizatorilor de pe site este prezentat în figura 3.3.6.2.1. Se poate șterge, edita, adauga un user prin:

Figura 3.3.6.2.1. Panoul de administrare al utilizatorilor, stergerea unui user.

Figura 3.3.6.2.2. Panoul de administrare al utilizatorilor, adaugarea unui user.

3.3.6.3. Adăugare categorie

Ca și administrator vom putea adăuga categorii. În Figura 3.3.6.3.1. este prezentat formularul de adăugare.

Figura 3.3.6.3.1. Formularul de adăugare categorie

Secvența următoare descrie codul sursă pentru adăugare categorie.

3.3.6.4. Închiderea sesiunii de utilizator

La ieșirea din cont sesiunea de utilizator este distrusă, pentru postarea și intrarea în cont va trebui să se introducă userul și parola încă o dată.

Secvența următoare descrie codul sursă pentru distrugerea sesiunii.

Capitolul IV. CONCLUZII

Este evident faptul că, în prezent, utilizarea bazelor de date are o răspândire deosebit de largă, ea fiind un mijloc util și la îndemâna oricărui utilizator.

De obicei, o bază de date este memorată într-unul sau mai multe fișiere. Bazele de date sunt manipulate cu ajutorul sistemelor de gestiune a bazelor de date. Cel mai răspândit model de baze de date este cel relațional, în care datele sunt memorate în tabele. Pe lânga tabele, o bază de date relațională mai poate conține: indecși, proceduri stocate, trigger-e, utilizatori și grupuri de utilizatori, tipuri de date, mecanisme de securitate și de gestiune a tranzacțiilor etc. Alte modele de baze de date sunt modelul ierarhic, modelul orientat-obiect și, mai nou, modelul XML. Un sistem de gestiune a bazelor de date (SGBD) este o aplicație care permite păstrarea și gestionarea bazelor de date și care execută operații asupra datelor solicitate de utilizatori .

Pentru realizarea bazei de date s-au folosit cunoștințe avansate de programare, deoarece ea s-a dorit a fi cât mai complexă. Etapele parcurse pentru realizarea bazei de date sunt: realizarea structurii bazei de date, realizarea formularelor de introducere a datelor și asigurarea accesibilității sale pe Internet.

În plus, orice sistem de gestiune a bazelor de date relaționale trebuie să aibă un administrator de sistem. Acest administrator are ca atribuții principale: întreținerea catalogului de date al sistemului, gestionarea conturilor de utilizatori, executarea copiilor de siguranță, întreținerea fișierelor jurnal, întreținerea bazelor de date și securizarea sistemului, opțiuni dezvoltate și în prezenta lucrare.

Administratorul unui sistem de gestiune a bazelor de date relaționale este responsabil de păstrarea în siguranță a conținutului bazelor de date astfel încât înregistrările să fie accesibile numai clienților autorizați. Securizarea unui sistem presupune două aspecte: securitatea internă – protecția catalogului de date împotriva atacurilor lansate de alți utilizatori ai serverului pe care rulează sistemul și securitate a externă – protecția împotriva accesului neautorizat din partea unor persoane conectate în rețea, lucruri comentate și în lucrarea de față.

Astfel lucrarea se structurează pe cinci capitole dintre care două bibliografia și concluziile.

În capitolul I se prezintă câteva date generale privind importanța utilizării bazelor de date și a avantajelor pe care acestea le prezintă.

În capitolul II s-a realizat un studiu bibliografic privind tipurile de severe și limbajele utilizate în realizarea aplicației. Astfel, s-a făcut referire în mod special la serverul Apache, ca server web, la serverul MySQL, ca server de baze de date, la PHP ca limbaj de scripting și la HTML ca limbaj de realizare a paginilor web. În acest capitol s-a prezentat și modul în care se face publicarea datelor din baza de date pe web. Tot în acest capitol sunt prezentate etapele de proiectare ale unei baze de date, respectiv proiectarea conceptuală, proiectarea logică și proiectarea fizică a bazei de date cu tot ce implică aceastea.

În capitolul III este prezentată partea practică a lucrării, o aplicație privind realizarea unei baze de date cu anunțuri publicitare, organizate pe diferite domenii. Se pornește de la stabilirea structurii bazei de date, la crearea efectivă a celor 4 tabele conținute în baza de date, a relațiilor care există între acestea și până la realizarea formularelor de introducere a datelor utilizatorilor și a celor legate de anunțuri. Un interes deosebit se acordă și modului de administrare a site-lui, atât în ceea ce privește utilizatorii, cât și anunțurile publicitare. Se prezintă de asemenea modul în care se realizează căutarea în baza de date, existând două posibilități: după domeniu și după cuvinte-cheie.

Baza de date a fost testată o perioadă mai lungă de timp și deși există posibilitatea de a exista erori, acestea sunt uneori greu de depistat și corectat, așa încât după regulile lui Murphy, există șanse mari să provoace daune maxime în momentele cele mai critice.

Pentru a fi ușor accesibilă pe Internet, aplicației i s-a realizat un design simplu, care nu împiedică încărcarea rapida de către utilizator.

Ca urmare a celor prezentate în toate cele trei capitole de bază ale lucrării de licență, se poate trage concluzia că aceasta reprezintă o abordare modernă a modului de realizare a publicității, tot mai des utilizată în întreaga lume.

BIBLIOGRAFIE

Peterson, J., (2003), Baze de date pentru începători, Ed. All, București;

Ionescu, N., (2003), Calculatorul personal: configurare, optimizare, Ed. Niculescu, București;

Henderson, K., (2003), Proceduri stocate în SQL Server. XML, HTML, Teora (traducere Ion Bldea și Eugen Sipoș, după ediția din 2002);

Forta, B., (2002), SQL pentru începători, (SAMS) Teora, București (traducere Daniel Cihodaru, după ediția din 1999);

Jalobeanu, M., (2001), WWW în învățământ: Instruirea prin Internet, Cum căutăm și Cum publicăm pe Web, Ed. CCD, Cluj-Napoca;

Cicortaș, Al., (2002), Inițiere în Access și SQL, Ed. UVVG, Arad;

Lungu, I., Iorga, M., Velicanu, M. (2002), Baze de Date – Să învățăm sistemul Oracle în 28 de lecții, Editura Economică, București;

Honour, E., Dalberth, P., Kaplan, A., Mahta, A. (2001), Oracle – Secrete (Soluții finale la problemele puse de bazele de date în Oracle) , Teora (traducere Roxana Mărășoiu, Delia Alexandrescu, după ediția din 1998);

Knuth, D.E., (1999), Arta programarii calculatoarelor. Algoritmi fundamentali, vol. 1, Teora, București;

Băduț, M., (2003), Calculatorul în trei timpi, ed.II-a, Ed. Polirom, Iași;

Knuth, D.E. (1974), Tratat de programare a calculatoarelor. Sortare și căutare, Ed. Tehnică, București;

Robinson, L., (2002), Programarea Bazelor de Date cu Visual C++6, Teora, București (traducere Aurelia și Daniel Merezeanu, după ediția din 1998);

Grant, T., (1997) Învățați fără profesor ORACLE Power Objects, în 21 de zile, Teora, București;

Boian, F., M., (1999), Programarea distribuită în Internet, Ed. Albastră, Cluj;

Acostăchioaie, D., Buraga, S., (2003), Utilizare Linux: Noțiuni de bază și practică, Ed. Polirom, seria Linux;

Marinescu, D., Dimitriu, G. Trandafirescu, M., (2002), PC, Manualul începătorului, ediția a III-a, Ed. Teora;

Popa, Gh., (2003), Baze de date ACCESS, Ed. Cison, București

Saporta G., Ștefănescu V. (1996), Analiza datelor și informatică – cu aplicații de piață și Sondaje de opinie, Editura Economică. București.

BIBLIOGRAFIE

Peterson, J., (2003), Baze de date pentru începători, Ed. All, București;

Ionescu, N., (2003), Calculatorul personal: configurare, optimizare, Ed. Niculescu, București;

Henderson, K., (2003), Proceduri stocate în SQL Server. XML, HTML, Teora (traducere Ion Bldea și Eugen Sipoș, după ediția din 2002);

Forta, B., (2002), SQL pentru începători, (SAMS) Teora, București (traducere Daniel Cihodaru, după ediția din 1999);

Jalobeanu, M., (2001), WWW în învățământ: Instruirea prin Internet, Cum căutăm și Cum publicăm pe Web, Ed. CCD, Cluj-Napoca;

Cicortaș, Al., (2002), Inițiere în Access și SQL, Ed. UVVG, Arad;

Lungu, I., Iorga, M., Velicanu, M. (2002), Baze de Date – Să învățăm sistemul Oracle în 28 de lecții, Editura Economică, București;

Honour, E., Dalberth, P., Kaplan, A., Mahta, A. (2001), Oracle – Secrete (Soluții finale la problemele puse de bazele de date în Oracle) , Teora (traducere Roxana Mărășoiu, Delia Alexandrescu, după ediția din 1998);

Knuth, D.E., (1999), Arta programarii calculatoarelor. Algoritmi fundamentali, vol. 1, Teora, București;

Băduț, M., (2003), Calculatorul în trei timpi, ed.II-a, Ed. Polirom, Iași;

Knuth, D.E. (1974), Tratat de programare a calculatoarelor. Sortare și căutare, Ed. Tehnică, București;

Robinson, L., (2002), Programarea Bazelor de Date cu Visual C++6, Teora, București (traducere Aurelia și Daniel Merezeanu, după ediția din 1998);

Grant, T., (1997) Învățați fără profesor ORACLE Power Objects, în 21 de zile, Teora, București;

Boian, F., M., (1999), Programarea distribuită în Internet, Ed. Albastră, Cluj;

Acostăchioaie, D., Buraga, S., (2003), Utilizare Linux: Noțiuni de bază și practică, Ed. Polirom, seria Linux;

Marinescu, D., Dimitriu, G. Trandafirescu, M., (2002), PC, Manualul începătorului, ediția a III-a, Ed. Teora;

Popa, Gh., (2003), Baze de date ACCESS, Ed. Cison, București

Saporta G., Ștefănescu V. (1996), Analiza datelor și informatică – cu aplicații de piață și Sondaje de opinie, Editura Economică. București.

Similar Posts

  • Aplicatia User Connect

    I . INTRODUCERE Sistemul de Gestiune a Bazelor de Date (SGBD) prezintă sisteme informatice (sisteme software) specializate în stocarea și prelucrarea unui volum foarte mare de date. Un Sistem de Gestiune a Bazelor de Date (Database management system – DBMS), este un set complex de programe ce permite păstrarea, organizarea, extragerea datelor din bazele de…

  • Retele Virtuale Private

    PROIECT DE DIPLOMĂ Rețele virtuale private CUPRINS 1. Introducere 2. Elemente fundamentale despre interconectarea calculatoarelor 2.1 Modelul de referință OSI 2.2 Modelul TCP/IP 2.3 Adrese IP 2.4 Tipuri de rețele și metode de interconectare 3. Rețele Virtuale private        3.1 Introducere in VPN 3.2 Modul de funcționare 3.3 Avantaje VPN 3.4 Tipuri de rețele VPN…

  • Bazele de Date

    CUPRINS Introducere …………………………………………………………………….. Pagina 3 Capitolul 1: Noțiuni introductive despre bazele de date ………………… Pagina 4 1.1. Scurt istoric al bazelor de date …………………………………………….Pagina 4 1.2. Definirea bazelor de date ………………………………………………. Pagina 6 1.3. Sisteme de baze de date …………………………………………………. Pagina 7 1.4. Nivelul de organizare a datelor într-o bază de date …………………….. Pagina 8…

  • Asigurarea Securitatii Informatiei In Retele de Calculatoare

    IΝΤRODUCΕRΕ……………………………………………………………3 Capitolul 1. Studiul și analiza sistеmului еxistеnt…………………………..4 1.1 Prеzеntarеa unității еconomicе-socialе………………………….5 1.2 Activitățilе dеsfășuratе în unitatеa еconomică………………….5 1.3 Studiul sistеmului dе conducеrе………………………………..5 1.4 Studiul sistеmului condus……………………………………….7 1.5 Schеma fluxului informațional………………………………….10 1.6 Produsе comеrcializatе dе SC Glulam SA……………………..10 Capitolul 2. Proiеctarеa dе ansamblu a soluțiеi informaticе………………14 2.1 Proiеctarеa și monitorizarеa unеi rеțеlе dе calculatoarе………14 2.1.2…

  • Gestionarea Relatiilor cu Clientii Si Noile Tehnologii Informationale Utilizate

    Gestionarea relatiilor cu clientii si noile tehnologii informationale utilizate INTRODUCERE În mai bine de jumătate de secol, calculatoarele electronice au demonstrat o evoluție spectaculoasă atât sub aspect tehnologic, cât și de extindere a domeniilor de aplicație. Aproape nimic nu mai poate fi conceput a funcționa în viitor, fără a nu se ține seamă de noile…