Portal Online Pentru O Agentie Imobiliara

Lucrare de diplomă

Portal online pentru o agenție imobiliară

Cuprins

Capitolul 1. Introducere

1.1 Contextul

1.2 Conturarea domeniului exact al temei

1.3 Tema propriu-zisă

Capitolul 2. Fundamentare teoretică

2.1 Ce este internetul ?

2.1.1Browsere Web

2.1.2Paginile WEB și Site Web.

2.2 Comunicația prin intermediul web-ului ( SERVER WEB)

2.2.1 Server WEB

2.2.2 Arhitectura client-server.

2.2.3 Serverul Apache

2.3 Html

2.3.1. Ce este HTML?

2.3.2 Structura etichetelor (tag-urilor) HTML

2.3.3 Structura documentului HTML

2.4 Limbajul PHP

2.4.1 Introducere și istoria PHP

2.4.2 Ce este PHP

2.4.3Sintaxa de baza PHP

2.5.Cascading Style Sheets

2.6. MySql ( baze de date)

Capitolul 3. Specificațiile aplicației

3.1.Descrierea aplicației

3.2 Funcțiile sistemului

3.3 Interfața cu utilizatorul

3.4 Structuri de baze de date

Capitolul 4. Proiectarea de detaliu

4.1 Arhitectura programului

4.2. Descrierea componentelor

4.2.1 Modulul de Interfațare

4.2.2 Modulul de Administrare

4.3 Structuri de baze de date

4.4 Elemente de securitate

Capitolul 5. Utilizare

5.1 Interfața cu vizitatorul

5.2 Modulul de administrare

Capitolul 6. Concluzii

Capitolul 1. Introducere

Contextul

La ora acutală societatea în care trăim este într-o continuă evoluție, cea ce duce la o modificare a vieții cotidiene a fiecăruia dintre noi. Persoanele dispun de mai puțin timp liber, iar internetul a devenit un factor important și din ce în ce mai indispensabil în viața fiecăruia.

De la lansarea sa, internetul a cunoscut o creștere a polularității foarte mare, aceasta o putem observa și prin numărul foarte mare de utilizatori pe care îi are. În prezent internetul are aproximativ 2 miliarde de utilizatori.

Dezvoltarea foarte rapidă pe care a cunoscut-o internetul a determinat multe firme să își facă reclamă și să își prezinte serviciile și în acest mediu. Putem spune că internetul a dus și la schimbarea mediului de afaceri, până și unele firmele mici au pagină de internet sau cel puțin un loc unde își prezintă activitatea și datele de contact. Multe firme au recunoscut importanța acestuia, și au ales și acest mediu pentru căutarea de noi clienți, dar există și firme care își desfășoară activitatea exclusiv online.

Există multe motive pentru care o afacere alege să se extindă și în mediul virtual, cum ar fi număru foarte mare de persoane care au acces la conexiune internet, răspândirea foarte rapidă a informațiilor, deschiderea posibilității pătrunderii pe piețe noi, care până acum nu erau accesibile multor firme, programul de funcționare nu mai este limitat și multe altele.

În acest context portalurile web au cunoscut o dezvoltare rapidă, în principal din motivul competiției între firmele din acelaș profil.

1.2 Conturarea domeniului exact al temei

Apariția poartalurilor web a fost determinată de faptul că firmele intră pe piețe pe care până acum nu aveau acces. De exemplu în cazul unui magazin online, cumpărătorii vizați nu mai sunt limitați de localizarea geografică, comandă putând fi expediată oriunde pe glob, astfel clienți din alte țări sau regiuni au acces la serviciul oferit de acea firmă.

Printre acestea se regăsesc și agențiile imobiliare.

Agenția imobiliară este o firmă care are ca activitate profesională intermedierea vânzării sau închirierii bunurilor imobile și oferă consultanță în domeniul vânzării, punând în legătură cererea cu oferta, în schimbul unui comision din valoarea tranzacției.Prestarea serviciului de intermediere presupune găsirea unei oferte compatibile cu cerințele clientului în vederea semnării unui act (antecontract/contract/schimb/folosință) privind transferul proprietății.

Agențiile imobiliare au opțiunea de aș prezenta ofertele într-un singur loc, într-un mod mai compact și mult mai bine structurat.

Unul dintre avantajele majore din punct de vedere al clientului este legat de faptul că nu mai este necesară deplasarea fizică la o astfel de agenție, pentru a putea vizualiza ofertele, iar astfel, agenția imobiliară cu care se dorește colaborarea nu mai este aleasă după distanța fizică dintre cele două părți.

Avantajele folosirii unui astfel de portal online nu se opresc numai la clienți, și firmele se bucură de expunere pe piețe pe care altfel nu l-ar putea atinge și o organizare mai bună a ofertelor deținute.

1.3 Tema propriu-zisă

Aplicația dezvoltată pentru acest proiect de diplomă are în prim-plan comunicarea dintre firma furnizoare de servicii și clientul interesat de cumpărarea acestor servicii. În cazul de față firma furnizoare este reprezentată de o agenție imobiliară.

De la început se pot observa cele mai importatante componențe reprezentate în cazul nostru de agenția imobiliarăși potențialul client.

Prin Agenția Imobiliară înțelegem o firmă care reprezintă un intermediar în vânzarea, cumpărarea sau închirierea unui imobil. Din acest punct de vedere putem contura noțiunile : client, serviciu.

Noțiunea de client din punctul de vedere al firmei imobiliare, reprezintă o persona fizică sau juridică care este interesată de achiziționarea unui serviciu oferit de agenție în schimbul unei tranzacții ( monetare ). În acest fel putem defini și serviciul ca fiind un produs oferit de agenție unui grup de clienți interesați de achiziționarea lui, mai exact cumpărarea, închirierea sau intermedierea unei vânzării imobiliare.

Obiectivele propuse în realizearea acestui proiect sunt:

interfață grafică ușor de interpretat de utilizator;

parte de logare care împarte utilizatorii acestei aplicații în : vizitator, membru și administrator;

un meniu ușor de utilizat cu opțiunile : De vânzare, De cumpărare, Intermediere;

galerie cu imagini împărțite pe diferite categorii.

implementarea unei hărți interactive Google Maps pentru localizarea poziției imobilului;

secțiune de afișare a cursului valutar;

Aplicația a fost realizată cu ajutorul limbajelor de programare PHP, limbajul de scriptare HTML, iar pentru realizarea bazelor de date am folosit MySQL. Am ales ales folosirea limbajului PHP și a bazelor de date realizate în MySQL pentru ca acestea permit programatorului să creeze aplicații care rulează pe marea majoritate a sistemelor de operare, dar dacă nu luăm în calcul acest factor , PHP prezintă un număr foarte mare de funcții care ajută la facilitarea aproape oricărei funcții.

Capitolul 2. Fundamentare teoretică

2.1 Ce este internetul ?

Internetul este un sistem global de rețele de calculatoare interconectate între ele în conformitate cu protocoalele standardizate de comunicare „Transmission Control Protocol” și „Internet Protocol” , adică TCP/IP. Prima formă a “Internetului” a fost dezvoltatăîn anii 60’ de Ministerului de Apărare a Statelor Unite și se numea “ARPAnet”. Internetul, așa cum îl știm astăzi, este rezultatul extinderii rețelei ARPAnet.

Internetul pune la dispoziția utilizatorilor săi un număr foarte mare de informații și servicii, prin intermediul unor aplicații internet ( sau aplicații web). O parte din aplicațiile internet oferite sunt serviciile de e-mail, FTP-ul (transferul de fișiere), VoIP ( telefonie prin internet) , televiziune prin internet, e-commerce, operații bacare, WWW-ul, etc.

Pentru a ne putea folosi de toate aplicațiile pe care internetul ni le pune la dispoziție avem nevoie ( în genereal ) de un program numit “browser” cunoscut și sub numele de navigator.

Afișarea informațiilor este una din cele mai importante funcționalități ale Internetului. Informațiile cerute de utilizatori pot fi de la cele mai simple de tipul static, text, imagini, sunete până la cele mai complexe de genul poștă electronică (e-mail), transfer de fișiere, WWW-ul, etc.

Toate cele amintite mai sus sunt defapt aplicații sau servicii ce rulează pe Internet.

World Wide Web, abreviat WWW, (cunoscut și sub denumirea de web) reprezintă o colecție de documente și informații de tipul hypertext, interconectate între ele, cu ajutorul hyper-link-urilor și a URL-urilor, ce sunt accesate prin rețeaua Internet.

Termenul de WWW este des confundat cu Internetul, percepție eronată, deoarece cele două sunt foarte disctincte. Internetul este o rețea globală de calculatoare interconenctate între ele, pe când Web-ul, după cum am precizat și mai sus, este o aplicație ce rulează pe Internet.

În cele mai multe cazuri, pentru a vizualiza informațiile dorite aflate pe web, începem prin introducerea unui URL ( cunoscut și ca link) al paginii pe care dorim să o accesăm. Hypertextul este procesat de un program software, numit navigator, care preluează informațiile dorite de pe un server web.

Funcționarea WWW-ului are la bază trei standarde:

HTTP (HyperText Transfer Protocol) prin care serverul Webși browserul utilizatorului comunicăîntre ele;

HTML (HyperText Makeup Language) : limbaj de scriptare;

URI ( Uniform Resource Identifier) : folosit pentru identificarea și localizarea informațiilor cerute;

Pe parcurs au apărut și alte standarde cum ar fi: CSS, JavaScript, HTTPS, etc.

2.1.1Browsere Web

Browserul, cunoscut și ca navigator, este o aplicație ce oferă posibilitatea de a trimite cereri, primi și afișa imagini, text, sunete și alte informații aflate în World Wide Web. Principalul scop al unui browser este de a accesa informații din WWW, proces care începe prin introducerea de către utilizator a unui URI ( Uniform Resource Identifier ) , de exemplu www.google.ro. În funcție de prefixul unui URI, browserul determină cum acest URI va fi interpretat. Cel mai folosit este http, dar browserele suportă o largă varietate de alte prefixe ( https, ftp, etc. ).

Cele mai cunoscute browsere web sunt : Microsoft Internet Explorer , fiind și cel mai utilizat, urmat de Mozilla Firefox, Apple Safari, Google Chrome, Opera și altele.

Browserele Web funcționează pe baza unor protocoale ce îi conectează pe utilizatori de paginile web aflate pe serverele web. Protocoalele cele mai folosite sunt HTTP, HTTPS, FTP.

Un browser este format din mai multe programe ce permit afișare și modificarea informațiile dintr-o pagină web.

Stuctura generală a unui browser este formată dintr-o căsuța de text, în care utilizatorul introduce adresa paginii pe care dorește să o acceseze, și o parte unde este afișată informația cerută.

În figura Fig.1.1 este prezentat primul browser web, create de echipa de la NeXT.

Fig. 1.1 Primul Browser Web ( NeXT )

2.1.2Paginile WEB și Site Web.

O pagina web, este un document sau informație care este găsește în Internet și poate fi accesată cu ajutorul unui browser și afișată pe monitorul utilizatorului care a cerut informația. Aceste documente sunt de cele mai multe ori realizate în HTML, XHTM și PHP, și pot asigura navigarea prin alte paginii printr-un URI. De cele mai multe ori informațiile sunt grupate și organizate în cadrul unui site web, care poate avea un identificator unic, URI.

Un site web îl putem descrie ca o colecție de pagini web interconectate între ele, de obicei având o temă comună. Site-urile Web sunt întreținute , de obicei , de un administrator.

În perioada de început a Internetului, site-urile web se puteau accesa prin introducerea unei adrese numerice specifice, ulterior fiind introduse și numele de domenii, care au permis indicarea adresei prin cuvinte (ex: www.google.ro ). Adresele site-urilor sunt unice pentru fiecare site în parte.

În conținutul unei pagini web putem regăsi diferite texte cu diferite formate, imagini, fișiere audio, fișiere video, aplicații, butoane, hyperlikuri ( pentru trecere de o pagina la alta ), formulare, CSS-uri, scripturi, etc..

2.2 Comunicația prin intermediul web-ului ( SERVER WEB)

2.2.1 Server WEB

Un Server WEB se poate referii atât la partea o hardware ( calculatorul ) sau la una software ( o aplicație ) care ne ajută să accesăm conținutul unor informații prin intermediul Internetului, deci putem spune că serverul web ( calculatorul sau aplicația ) au un rol vital în cadrul Internetului.

Serverul calculator stocheazăsiteurile webficator unic, URI.

Un site web îl putem descrie ca o colecție de pagini web interconectate între ele, de obicei având o temă comună. Site-urile Web sunt întreținute , de obicei , de un administrator.

În perioada de început a Internetului, site-urile web se puteau accesa prin introducerea unei adrese numerice specifice, ulterior fiind introduse și numele de domenii, care au permis indicarea adresei prin cuvinte (ex: www.google.ro ). Adresele site-urilor sunt unice pentru fiecare site în parte.

În conținutul unei pagini web putem regăsi diferite texte cu diferite formate, imagini, fișiere audio, fișiere video, aplicații, butoane, hyperlikuri ( pentru trecere de o pagina la alta ), formulare, CSS-uri, scripturi, etc..

2.2 Comunicația prin intermediul web-ului ( SERVER WEB)

2.2.1 Server WEB

Un Server WEB se poate referii atât la partea o hardware ( calculatorul ) sau la una software ( o aplicație ) care ne ajută să accesăm conținutul unor informații prin intermediul Internetului, deci putem spune că serverul web ( calculatorul sau aplicația ) au un rol vital în cadrul Internetului.

Serverul calculator stocheazăsiteurile web pe hard-discul, iar aplicația server ne ajută să accesăm aceste pagini web și fișierele asociate acestora.

Fig.2.1. Server Web

Caracteristicile cele mai importante a unui calculator server este viteza de procesare a acestuia ( preferabil foarte mare), capacitatea mare a hard-discului, memoria RAM a acestuia și poate cea mai importantă este ca acesta să aibă o adresa de internet permanentă, cunoscutăși sub denumirea de adresa IP.

O aplicație server web este un program care rulează pe serverul calculator și scopul principal al acestuia este de a “livra” paginile web cerute de browserele web ( numite și Clienți).

Între un calculator personal și un calculator server nu există diferențe foarte mari din punct de vedere hard, dar putem preciza că diferența majoră este din punct de vedere soft, sistemul de operare specific fiecăruia dintre cele două. Cele mai folosite sisteme de operare pentru servere sunt dezvoltate de Linux și Microsoft.

De cele mai multe ori soluția impementată pentru aplicații mari, cu mai mulți utilizatori, este folosirea unei arhitecturi client-server, prin care înțelegem cel puțin 2 aplicații și de cele mai multe ori cel puțin două calculatoare.

Cele mai des folosite servere web sunt Apache Server, AOL Server,Oracle Web Server, dar pe lângă acestea există multe altele.

2.2.2 Arhitectura client-server.

Putem spune ca internetul este bazat pe arhitectura client-server . Un calculatorul personal reprezintă clientul, acesta rulează un program software care interacționează cu un alt program software numit server, localizat pe calculatorul server. De cele mai multe ori , clienteul este un browser web ( navigator ) care trimite un set de instrucțiuni , numite protocoale, serverului. Internetul oferă mai multe protocoale, WWW-ul ( World Wide Web ) care face parte din internet “adună” toate aceste protocoale. În acest scop se pot folosi HTTP, FTP, E-mai, etc. de pe aceași platforma, același browser web.

Fig. 2.2 Funcționarea Arhitecturii Client-Server

2.2.3 Serverul Apache

Serverul Apache este unul dintre cele mai populare servere web din întrega lume. Inițial , serverul apache a fost dezovoltat pentru serverele UNIX, dar în prezent el este disponibil pe o varieteate de sisteme de operare, cum ar fi : Microsoft Windows, Linux, Mac OS, etc. Concurentul principal al Serverului Apache este Microsoft Internet Information Services (IIS),

Acest server este unul din părțile principale ce au stat la baza dezvoltării Inernetului.

Apache HTTP server, după denumirea sa completă este un software open-source, disponibil spre descărcare pe pagina oficială www.apache.org și este cel mai popular server HTTP.

Prima alternativă viabilă a Netscape Comunication Corporation, evoluând rapid față de rivalii săi. Serverul Apache este dezvoltat și întreținut de o comunitate deschisă de programatori sub emblema Apache Software Foundation.

Apache poate rula un număr foarte mare de module care ajută la extinderea funcționalități acestuia. Aceste module variază de la server side programming până la scheme de autentificare. O parte din limbaje suportate ce serverul Apache sunt: mod_perl, mod_python, Tcl și PHP. Mai putem aminti și modulel : SSL și TLS support (mod_ssl), un modul proxyun, modul de rescriere URL (cunoscut ca un motor de rescriere mod_rewrite), custom log files (mod_log_config) și suport de filtrare (mod_include și mod_ext_filter). Un alt aspect pozitiv a serverului Apache este virtual hosting (găzduirea virtuală), care constă în posibilitatea de a găzdui mai multe situri simultan pe același server.

Faimosul motor de căutare Google folosește o versiune modificată a serverului Apache, numit Google Web Server, la fel și proiectele Wikipedia rulează pe serverul Apache.[Mel05]

2.3 Html

2.3.1. Ce este HTML?

Unul dintre componentele care stau la baza WWW-ului este HTML, care descrie formatul de baza în care documentele sunt împărtășite și vizualizare pe internet. HTML este un bun format pentru documentele web deosebindu-se prin trăsăturile sale, cum ar fi: independeta față de platformă, felul în care este structurată formatarea și legăturile hipertext.

Termenul HTML vine de la abrevierea Hipertext Makeup Language, pe care îl putem traduce ca Limbaj de marcare a hipertextului.

Limbajul HTML stă la baza paginilor web și a aplicațiilor internet și descrie formatul principal în care documentele sunt văzute și distribuite pe WWW (World Wide Web)

Prima versiune a acestui limbaj a fost creată de Tim Berners-Lee în 1989 pentru a veni în ajutorul comunității stintifice pentru o mai bună comunicare și partajare a informațiilor între ei, folosind internetul. După cum am precizat mai sus printre principapalele caracteristici care au fost urmărite în crearea HTML-ului au fost independentă față de platformă, adică posibilitatea unui document de a fi afișat în mod asemănător pe diferite calculatoare ( fontul, culorile, grafică, etc. ).

Tim Berners-Lee a folosit ca model de limbajul SGML ( Standard Generalized Markup Language ). HTML conține o descriere a tipului documentului DTD ( Document Type Definition). DTD stabilește sintaxa limbajului, descrie fiecare element al unui document scris în HTML, stabilește ce atribuite sunt permise pentru fiecare element și prezintă modelul datelor cuprinse în fiecare element. Standardul oficial HTML este World Wide Web Consortium (W3C), care este afiliat la Internet Engineering Task Force (IETF) și din anul 2000 HTML a devenit și un standard internațional (ISO/IEC 15445:2000). [***11,a]

Documentele scrise în limbajul HTML pot fi create cu un editor de text sau cu editoare HTML care permit crearea vizuală, dar care returnează tot documente în format text.

Printre trăsăturile pe care limbajul HTML le-a moștenit de la SGML este ca acesta este un limbaj ce descrie documente strucutate. Acest limbaj se bazează pe faptul că majoritatea documentelor au elemente în comun și dacă definim un set de elemente se pot marca elementele documentului cu etichete ( tag-uri ) corespuzatoare.

2.3.2 Structura etichetelor (tag-urilor) HTML

Limbajul HTML este format din seturi de etichete (tag-uri) , care dau directive despre felul în care să se formateze textul.

Tag-urile sunt texte cuprinse între parantezele unghiulare “<” și “>”, de exemplu <NumeTag>. Acestea pot conține și apribuite care pot lua anumite valori.

Majoritatea “instrucțiunilor” ( etichtetelor) HTML arată în felul următor:

<NumeTag Atribute>Textul afectat de acest tag </NumeTag>

Documentele HTML conțin tag-urile HTML și textul propriu-zis, iar sura lor poate fi accesată ușor de orice utilizator.[***11,c]

Numele tag-urilor nu sunt "case sensitive", doar opțiunile și argumentele pot deosebi în anumite cazuri literele mari și mici (de exemplu calea într-un URL care se găsește în tagul <a>)

În HTML tag-urile pot fi de două feluri:

Nevide (adică perechi), între care apare textul .Acestea afectează doar textului inclus între ele. Acestea sunt de început cu formatul : <NumeTag> și de sfârșit de forma: </NumeTag>

Exemple:

<p>Formează un nou paragraf</p>

<b>Acest text va fi afișat îngroșat (bold) </b>

Vide (singulare), au efect imediat.

Exemple :<br>textul care este scris după acest tag va apărea pe linia următoare.

<imgscr="poza.gif">

Specifică inserarea unei imagini.

Tag-urile și atributele pot fi scrise atât cu caractere mari cât și cu caractere mici, având acelas efect.

Atributele tag-urilor au nume și pot lua numai anumite valori. Forma în care pot apărea atributele este nume="valoare", valoarea fiind inclusă în ghilimele. Dacă tag-ulcontine mai multe atribute, acesteasunt separate prin spațiu. În exemplul următor este descris un tag ce conține și atribute:

<NumeTag NumeAtribut="ValoareaAtributului">Textul afectat de tag</NumeTag>

Textul va trebui să nu conțină aceste caractere, apariția lor trebuind înlocuită cu metacaractere înlocuitoare ("&lt;" și "&gt;") la rândul lui, "&" trebuie și el înlocuit cu metasecvența "&amp;" și alte caractere se pot specifica prin metasecvente (de exemplu caractere care nu sunt în setul standard ASCII).

2.3.3 Structura documentului HTML

Limbajul HTML s-a dezvoltat pe ideea creșterii ulterioare a acestuia fără a renunța la simplitate. Există puține reguli generale de care trebuie luate în vedere în construirea unui document HTML.

Un document HTML (referit uneori și ca pagina HTML) îl putem împărți în trei părți:

La începutul unui document HTML este o declarație (<!DOCTYPE… >) care specifică versiunea limbajului HTML pe care îl folosim. Restul documentului este cuprins între tag-urile <HTML> și </HTML>. El cuprinde o secțiune de "head" (atet) delimitată de tag-urile <HEAD>…</HEAD> și una de "body" (conținut)între tag-urile <BODY>..</BODY>). Între tag-ul <head> sunt cuprinse informații despre document care nu se vor afișa în pagina (eventual se va afișa pe bara de titlu a ferestrei browserului în care deschidem fișierul html ). Textul cuprins în tag-ul<body> conține descrierea paginii propriu-zise și formată din elemente de tip bloc și elemente de tip inline. [Cas03]

Structura generală a documentelor create cu HTML (4.0) :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 //EN""http://www.w3.org/TR/REC-html40/strict.dtd">

<HTML>

< HEAD>

<TITLE>Titlul documentului</TITLE>

… alte declarații/informații despre document…

</HEAD>

<BODY>

…Textul propriu-zis al documentului …

</ BODY>

</HTML>

2.4 Limbajul PHP

2.4.1 Introducere și istoria PHP

PHP: Hypertext Processor , adică PHP este un limbaj de programare accesibil din cadrul fișierelor HTML, limbaj asemănător cu C sau Perl, dar care oferă suport pentru manipularea bazelor de date ( MySQL, Oracle, etc. ). Inițial PHP reprezenta acronimul a Personal Home Page.

Bazele acestui limbaj au fost puse la sfrarsitul anului 1994 de Rasmus Lerdorf, ca un proiect personal pentru contoriza vizitatorii paginii sale personale. În anul 1995 PHP-ul a fost făcut public cu denumirea de Personal Home Page Tools.

PHP a fost revizuit în anul 1995 , astfel lansându-se PHP/FI Version 2. Form Interpreter ( FI ), un alt pachet pe care Rasmus l-a scris pentru interpretarea formularelor HTML. Acesta oferea suport pentru mSQL ( baze de date ) astfel apărând PHP/FI ( Form Interpretor ). PHP/Fi a avut foare mare succes s-a răspândindu-se foarte repede și a devenid foarte popular, acesta fiind de asemena un proiect open-source, adică oricine putea să îi aducă modificări.

Proiectul open-source PHP a luat amploare în 1998 când a fost lansată o nouă versiune a acestuia denuminte PHP3, PHP fiind rescris de Zeev Surasky și Andi Gutmans care au păstrat o mare parte din codul PHP/FI 2.0. Zeev Surasky și Andi Gutmans au schimbat de asemenea numele în acronimul recursiv PHP (PHP: Hypertext Processor ).

În anul 2000 a fost publicat PHP 4.0, a patra versiune care avea la bază motorul de scriptare Zend Engine versiunea 1.0 și oferind suport nu numai pentru serverul Apache dar și pentru alte servere web. PHP 4.0 oferă și posibilitate accesării documentelor XML.În iulie 2004 se lansează PHP 5.0 cu Zend Engin 2. În prezent PHP a ajuns la versiunea 5.3.6 lansată în otombrie 2011. [Ull06]

2.4.2 Ce este PHP

Pe siteul web oficial PHP (www.php.net), acesta este descris “ca un limbaj de scriptare integrat în HTML”. Fiind un limbaj structurat este ușor de utilizat, sintaxă acestuia este o combinație între limbajele C, Perl și Java.

Scrierea unui program folosint PHP este considerabil mai ușoară decât în alte limbaje script CGI (Common Gateway Interface ) precum Perl sau C deoarece codul PHP se scrie într-un script HTML.

Codul PHP rulează pe majoritatea sistemelor de operare ( UNIX, Linux, Windows, Macintosh) și interacționa cu majoritatea serverelor web. Față de alte limbaje script, precum Javascript, codul PHP se execută pe serverul Web, care generează un cod HTML care va fi văzut de utilizator (în browser fiind transmis numai cod HTML).

Limbajul PHP are aceleași funcții ca alte limbaje și pemite scrierea scripturilor CGI, să colecteze date și să genereze dinamic pagini web sau să trimită și să primească cookies.

2.4.3Sintaxa de bază PHP

Codul PHP este inclus între tag-urile speciale de început “<?php” și de sfârșit “?>” care oferă posibilitateaprogramatorului să scrie cod PHP, astfel trecând din “modul” HTML. Tag-urile special <?php și ?> delimitează codul pur PHP.

O altă posibilitate de a delimita codul PHP este scrierea acestuia între tag-urile <SCRIPT>…</SCRIPT> în felul următor:

<SCRIPT language=”php”> cod php </SCRIPT>.

Exemplu:

<html>

<head>

<title>Exemplu</title>

</head>

<body>

<?php

echo "Bună, sunt un script PHP!";

?>

</body>

</html>

Există opt tipuri de datesuportate de PHP :

Patru tipuriscalare : boolean, integer, string, float ;

Două tipuri compuse: array, obiect;

Două tipurispeciale : resource, NULL

De obicei tipul unei variabile nu este stabilit de programator, ci este decis de PHP la rulare,luând în considerare contextul în care acea variabilă este folosită.

Variabila este un element ce poartă un nume și căreia i se poate atribui o valoare la un moment dat,valoare ce poate fi modificată de mai multe ori sau salvată într-o bază de date. Numele dat variabilei începe cu simbolul $ urmat de orice literă sau cu caracterul “_” ($nume_variabilă).[Skl06]

Exemplu:

<?php

$nume="Cristina";

echo "Numele meu este ".$nume;

?>

În PHP întâlnim un număr mare e variabile predefinite. Acestea depind de serverul pe care rulează (versiunea, unele setări, etc).

Variabilele PHP Superglobals sunt variabile ce sunt disponibile oriunde în script. Acestea sunt: $GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIE, $_FILES, $_ENV, $_REQUEST, $_SESSION.

$GLOBALS: Conține o referință la fiecare variabilă care este în mod curent valabilă în scopul global al script-ului. Cheile acestui șir sunt numele variabilelor globale.

$_SERVER:Reprezintă variabilele setate de serverul de web sau legate direct de mediul de execuție al scriptului curent.

$_GET: Reprezintă variabilele oferite scritpt-ului direct prin HTTP GET. Analog vechiului șir $HTTP_GET_VARS (care încă este valabil, dar depreciat).

$_POST: Reprezintă variabilele oferite scritpului direct prin HTTP POST. Analog vechiului șir $HTTP_POST_VARS (care încă este valabil, dar depreciat).

$_COOKIE: Reprezintă variabilele oferite scritpului direct prin HTTP. Analog vechiului șir $HTTP_COOKIE_VARS (care încă este valabil, dar depreciat).

$_FILES:Reprezintă variabilele oferite scritpului prin upload-ul de fișiere folosind modul POST din HTTP. Analog vechiului șir $HTTP_POST_FILES (care încă este valabil, dar depreciat).

$_ENV: Reprezintă variabilele oferite scritpt-ului prin mediu. Analog vechiului șir $HTTP_ENV_VARS (care încă este valabil, dar depreciat).

$_REQUEST: Reprezintă variabilele oferite scritpt-ului prin mecanismele de input GET, POST, și COOKIE, deci care nu pot fi de încredere.

$_SESSION: Reprezintă variabilele registrate unei sesiuni a script-ului. Analog vechiului șir $HTTP_SESSION_VARS (care încă este valabil, dar depreciat).

Scopul variabilelor depinde de contextul în care acestea se folosesc. O mare parte din variabilele ce le regăsim întrul program PHP au un singur scop.

<?php

$var=10;

include "exemplu.php";

?>

O variabilă statică există în scope-ul funcției locale, dar aceasta nu își pierde valoarea când execuția programului părăsește acest scope. Să considerăm următorul exemplu:

<?php

function Test () {

$a = 0;

echo $a;

$a++;

} ?>

Această funcție este destul de nefolositoare deoarece de fiecare dată este apelată să seteze valorea 0 variabilelei $a și să printeze "0".

Instrucțiunea $a++ care incrementează variabilă nu servește nici unui scop deoarce, de îndată ce funcția iese, variabila dispare. Pentru folosirea unei funcții de numărare care nu va mai pierde numărătoarea curentă, variabiala $a este declarată statică.

<?php

function Test()

{

static $a = 0;

echo $a;

$a++;

}

?>

Astfel, de fiecare dată când funcția Test() este apelată, aceasta va afișa valoarea variabilei $a și o va incrementa.

Variabilele statice oferă, de asemenea, un mod de a lucra cu funcțiile recursive. O funcție recursivă este o funcție care se autoapelează. Trebuie avută grijă la scrierea unei funcții recursive, deoarece este posibilă realizarea unei recursii infinite. Trebuie asigurat un mod de a termina recursia. Următoarea funcție recursivă simplă numără până la 10, folosind variabila statică $count pentru a știi când să se oprească.

Câteodată este util să avem nume variabil pentru o variabilă. Această este numele unei variabile ce poate fi alocată dinamic. O variabilă variabilă este declarată în felul următor:

<?php

$a="A";

$$a="B";

echo "$a $A";

?>

În PHP mai întâlnim și variabile din surse externe mediului PHP. Când un formular este trimis unui scrip PHP, informațiile din acel formular sunt automat transmise scriptului PHP. Sunt mai multe modalități de a accesa informația, de exemplu:

<form action="a.php" method="POST">

Name: <input type="text" name="username"><br>

Email: <input type="text" name="email"><br>

<input type="submit" name="submit" value="Submit me!">

</form>

În funcție de setările și preferințele particulare, sunt multe modalități de a accesa datele din formulare HTML. Câteva exemple:

<?php

print $_POST['username'];

print $_REQUEST['username'];

import_request_variables('p', 'p_');

print $p_username;

print $HTTP_POST_VARS['username'];

print $username;

?>

Folosirea unui formular de tip GET este asemănătoare, deosebindu-se prin faptul că se va folosi variabila predefinită GET în schimb. Variabila GET se poate folosi și pentru extragerea informațiilor din QUERY_STRING (informațiile de după semnul ? din URL). De exemplu, URL-ul http://www.example.com/test.php?id=3 conține date GET care sunt accesibile prin $_GET['id']. [Skl06], [***11,b]

2.5.Cascading Style Sheets

Cascading Style Sheets tradus “Foi de stil în cascadă” având abrevierea CSS, este un standard ce ne ajută la formatarea fișierelor HTML sau alte limbaje asmanatoare (XHTML, XML, etc. ) .

Principalul rol al unui fișier CSS este de a permiterea separararii conținutului unui document HTML de partea de design al aplicației, incluzând elemente de font, culoare, fundaluri, poziționare, etc. Unul din avantajele pe care le aduce CSS este acela ca formatarea este scrisă într-un singur fișier cu extensia .css, pe care îl pot folosi mai multe fișiere HTML, astfel codul fișierului HTML fiind redus, aplicațiile încărcându-se mai repede.[***11,d]

CSS are o sintaxă simplă, folosește un set de cuvinte cheie din limba Engleză, care specifică numele diferitor stiluri și proprietăți pe care acesta le oferă.

La ora actuală se pot folosi CSS-uri pe trei nivele.

Primul nivel, Inline styles unde informația este scrisă direct în etichetele documentului HTML, al doile nivel de tipul embedded informația este introdusă în blocul <head> și nivelul trei este de tip extern, informația fiind salvată într-un fișier extern cu extentis .css .

Nivelul 1, are cea mai mare importatna , acesta suprascrie orice alt paramentru.

Folisirea unui fișier CSS extern este foarte utilă deoarece fisiereul CSS poate fi utilizat pentru mai multe fișiere, acestea vor avea acelaș stil, iar editarea stilului este mult mai ușoară, practic se modifică doar fișierul CSS încărcat.

Fișierele HTML se leagă cu un fișier extern CSS se face prin introducerea etichetei:

<link rel="stylesheet" type="text/css" href="fișierul_css_pe_care_îl_încărcăm.css">

în secțiunea <head> a fiecărui document HTML.Stilurile de tip embedded se introduc în interiorul etichetelor :

<style type="text/css">

și

</style>.

Pentru realizarea unor design-uri mai complexe se pot folosi două sau chiar toate trei niveluri ale CSS-ului.[***11,a]

2.6. MySql ( baze de date)

O bază de date reprezintă o colecție de date aranjate după anumite criterii, iar pentru a accessa, adăugă sau procesa aceste date este nevoie de un program de administrare a acestor baze de date, cum ar fi MySQL.

MySQL este un sistem de gestiune a bezolor de date relațional (SQL-Structured Query Language), dezvoltat de firma MySQL AB din Suedia, dar în momentul actual este deținut de Oracle Corporation, și este un produs Open-Source. Acest program este cel mai popular SGBD (Sistem de Gestiune a Bazelor de Date) și este o componeta foarte importată a LAMP și WAMP ( unde M-ul reprezintă MySQL )

MySQL se remarcă prin rapiditate și simplitate fiind foarte ușor de învățat, în plus acesta este distribuit gratuit și poate fi downloadat de pe sit-ul oficial www.mysql.com.

Chiar dacă este folosit foarte des alatoru de limbajul PHP, MySQL permite scrierea aplicațiilor care folosesc baze de date și în alte limbaje cum ar fi : C, C++, Java, Perl, C#, etc.

MySQL funcționează după modelul client/server, adică oricine dorește să realizeze interogări a unei baze de date MySQL întâi trebuie să ruleze MySQL server(mysqld), care pornește serverul si este responsabil de intrările și ieșirile din baza de date.

Server-ul MySQL permite lucrul cu mai mulți utilizatori, modelul de securitate folosit de MySQL este format din nume utilizator, parolă, nume server (hostname) sau adresa IP și privilegii. În mod predefinit există utilizatorul:

user: root

password: ""

hostname: localhost

Prin prvilegii înțelegem operațiile ce se pot efectua asupra bazelor de date din MySQL, a tabelelor și indecșii acestora, de exemplu : SELECT, CREATE, DROP, INSERT, DELETE, etc.

O bază de date poate fi formată din mai multe tabele (relaționate sau nu), acestea fiind împărțite în înregistrări (records), înregistrări ce pot fi considerate liniile tabelului.

O înregistrare a unui tabel poate fi împărțită în mai multe câmpuri care, după cerințe, stochează diferite tipuri de date. Informațiile conținute de aceste înregistrări sunt obiectul celor mai multe operații de prelucrare.

Cele mai importatnte comenzi pentru gestiunea tabelelor și crearea bazei de date în MySQL sunt:

create database nume_baza_de_date; – creează baza de date

use nume_baza_de_date; – comandă cu ajutorul căreia selectăm folosirea unei anumite baze de date

drop database nume_bază_de_date; – șterge baza de date a cărui nume îl precizăm

show databases; – afișează bazele de date existente pe server

create table nume_tabel; – creează un tabel atunci când avem o bază de date deschisă (selectată)

show tables; – afișează tabelele din baza de date curentă

drop table nume_tabel; – șterge un tabel din baza de date

select; – în funcție de sintaxa acestei comenzi se afisaza datele cerute dintr-un anumit tabel. [Val10]

Datele reprezintă obiectul celor mai multe operații de prelucrare din MySQL. În PHP există o bibliotecă de funcții care realizeazalegatura cu sistemul MySQL de gestiune a bazelor de date. Când sunt folosite aceste funcții, un program scris în limbajul PHP poate obține accesul la datele dintr-o anumită bază de date MySQL putând să le modifice. [Tho04]

Aproape toate interacțiunilor cu o bază de date MySQL se poate realizaurmatorul model secvențial simplu:

se realizează conexiunea cu serverul MySQL;

se specifică numele bazei de date la care dorim să obține acces;

se realizează interogări SQL, se obține accesul la interogării și se execută operații non-SQL;

se închide conexiunea cu serverul MySQL

În limbajului PHP regăsim a două tipuri de interogări SQL:

interogările SELECT, acestea returnează rânduri ale unui tabel sau doar anuminte coloane a acestuia;

interogările UPDATE, INSERT și DELETE, care nu returnează rânduri ale unui tabel

Ambele categorii de interogări se folosesc cu funcția mysql_query(), dar verificarea și prelucrarea celor două categorii de rezultate ale interogărilor sunt procesate destul de diferit.

Conectarea cu baza de date în PHP se face cu ajutorul funcției mysql_connect() care arată în felul umator: mysql_connect(‘hostname’,’username’,’password’). [Mel05]

Printre alte funcții MySQL folosite în PHP amintim:

mysql_select_db () : selectează baza de date pe care o precizăm;

mysql_fetch_field (): returnează informația dintr-o anuminta coloană dată de utilizator;

mysql_num_fields(): returnează numaru câmpurilor dintr-o înregistrare (coloană);

Cheia primară a unui tabel ralationat identifică în mod unic fiecare înregistrare din tabel.

Pentru definirea unei chei primare se folosește intrucțiunea primary key. Aceasta realizează un index a coloanei căruia i-a fost aplicată primary key. Cheia primară a unui tabel relaționat identifică în mod unic fiecare înregistrare din tabel.

Capitolul 3. Specificațiile aplicației

3.1.Descrierea aplicației

În continuare va fi prezentată o aplicație web al cărei obiectiv principal este expunerea ofertelelor pe care le intermediază această agenție imobiliară.

Aplicația prezentată este realizată în mediile de programare PHP, limbajul de scriptare HTML, CSS și JavaScript, iar pentru realizarea bazei de date am folosit MySQL.

În figura Fig 3.1 putem observa o schema bloc destul de generlalizată a acestei aplicații.

Fig. 3.1 Schema Bloc

Din figură putem observatrei nivele diferite: Nivelul de Date, Nivelul Logic și Nivelul de Prezentare.

În Nivelul de Date găsim bazele de date, create în MySQL, cu tabelele aferente , populate cu date specifice. Acest nivel este în strânsă legătură cu Nivelul Logic, căruia îi pune la dispoziție datele pe care le găsim în aceste bazele de date. Datele care sunt stocate în acest nivel nu sunt modificate, acestea sunt păstrate independente de Nivelul Logic. Prin faptul că datele au un nivel separat ofera aplicațiilor o viteză de lucru mai bună.

Nivelul Logic controlează funcționalitățile aplicației, procesează comenzile primite din nivelul superior, evaluează și ia decizii logice. Acest nivel mai are ca scop și intermedierea comunicării dintre Nivelul de Date și Nivelul de Prezentare. Pentru realizarea acestui nivel se folosesc limbajele PHP și HTML.

Nivelul superior, Nivelul de Prezentare, reprezintă de fapt interfața cu utilizatorul și are ca scop principal traducerea informațiilor primite de la nivelul inferior în așa fel încât utilizatorul să o poată interpreta ( prin intermediul unui browser ).

Aplicația creată va putea fi rulată pe orice sistem, fără a necesita o instalare prealabilă, prin intermediul unui browser web (ex. Mozilla Firefox, Google Chrome, Opera, Internet Explorer, etc. ).

Împărțirea funcționalităților de care dispune aplicația se va face în funție de nivelul de acces pe care diferiți utilizatori îl au. Aceste niveluri de acces se vor împărții în utilizatori neînregistrați, utilizatori înregistrați și administratorul cu privilegii speciale.

Administratorului pe lângă drepturile pe care le are un utilizator obișnuit mai are și o interfață specială în care va putea aproba, șterge sau modifică unele conturi a utilizatorilor.

Limbajele folosite în acest nivel, după cum am specificat și mai sus, sunt PHP, HTML,CSS și JavaScript. Cu acestea se va realiza interfața grafică prin care utilizatorul poate naviga printre ofertele puse la dispoziție de agenție.

3.2 Funcțiile sistemului

Pentru o mai bună organizare și prezentare a aplicației putem grupa funcțiile acesteia în trei grupe principale.

În prima grupă putem încadra partea de autentificare:

Autentificarea propriu-zisă în urma căruia se determină nivelul de acces a fiecărui utilizator. Nivelul cu cele mai puține dreputuri este nivelul 0 (zero) și aici putem încadra utilizatorii neînregistrați, nivelul 1 pentru utilizatorii înregistrați și nivelul 2 pentru administratorul aplicației;

Înregistrarea : posibilitatea de înregistrare ca utilizator nou;

Modificare cont utilizator;

În cea de-a doua grupă încadrăm funcțiile la care are acces doar administratorul aplicației:

Administrarea utilizatorilor înscrișii pe site, adică ștergerea, blocarea, modificarea nivelului de acces (acordarea de privilegii de administrator unui alt membru);

Adăugarea unor oferte noi sau ștergerea celor care nu mai există;

În ultima grupă putem încadra navigarea prin site de către utilizator ( înregistrat sau nu ) ce se realizează prin două meniuri

Meniul principal ce va conține o scurtă descriere a agenției, opțiunea de contactare, etc.

Meniul secundar ce permite vizualizarea ofertelor pe care această agenție le pune la dispoziție

3.3 Interfața cu utilizatorul

Partea de interfață cu utilizatorul este una din cele mai importante parți a aplicației, deoarece fără aceasta, aplicația nu va putea fi înțeleasă de un utilizator.

Interfața cu utilizatorul a aplicației va fi „ user-friendly” , adică intuitivă și ușor de navigat prin ea.

În realizarea ei se va ține cont principalele obiective pe care trebuie să le atingă un site destinat unei agenții imobiliare, iar designul va fi unul sugestiv, nu foarte încărcat astfel încât un utilizator nou să poată naviga prin site fără probleme.

Cel mai important obiectiv de care se va ține cont designul va fi galeria foto, în care firma își va expune ofertele și meniul care va diferenția tipurile de oferte prezentate. Aceste oferte vor putea fi de tipul: oferte oferit spre vânzare, oferte de închiriat și opțional se va putea insera și opțiunea de intermediere.

Vor exista două meniuri, unul principal în care se vor găsi date despre agenție precum și datele de contact.

Meniu secundar, inpropiu numit secundar deoarece acesta este meniul cel mai important, unde se află legăturile către paginile de cumpărare, închiriere și galeriile foto pentru fiecare ofertă în parte.

Cromatică aleasă pentru interfață se va încerca să fie cât mai neutră fără a obosi ochii utilizatorilor doar cu câteva zone mai accentuate, în ideia scoaterii lor în evidență.

După cum am specificat în subcapitolul anterior vor exista mai multe tipuri de utilizatori. Interfața principală va fi aceiași pentru toate tipurile, dar utilizatorii cu nivelul de acces 2 (adică administratorii) vor avea în plus o interfață specială, cu un design foarte simplist, în care se vor găsii opțiunile de administrare a utilizatorilor, organizare a datelor, încărcare de noi oferte, etc..

Meniul de logare pe site va fi amplasat într-un loc cât mai vizibil, dar fără a capta atenția vizitatorilor de la scopul principal al site-ului, acela de prezentare a ofertelor agenției. O dată logat, datele utilizatorului vor apărea în partea de sus a paginii, împreună cu alte opțiuni pe car le are utilizatorul.

Galeriile cu fotografiile imobileleor vor fi împărțite în două categorii: galerii generale ( unde sunt prezentate toate ofertele pentru un anumit tip de imobil , ex: apartamente cu o cameră, și galerii principale unde se pot vizualiza toate fotografiile unui anumit imobil, împreuna cu o scurtă descriere a acestuia și localizarea exactă pe hartă interactivă.

Deasemenea va putea fi introdus și un convertor valutar pentru a ajuta clienții să își facă o ideie mai bună asupra prețurilor imobilelor.

O altă parte importantă pe care trebuie să fie prezentă este opțiunea de căutare, cu aujutorul căreia utilizatorii vor putea să găsească mai ușor proprietățile ce îi interesează.

3.4 Structuri de baze de date

Aplicația va fi realizată în limbajul de programare PHP, iar pentru acesta s-a ales folosirea serverului de baze de date MySQL, fiind cel mai recomandat pentru acest limbaj. Pentru a putea lucra cu aceste două aplicații se va alege folosirea serverului Apache. Toate aceste programe sunt incluse în pachetul WAMP.

În figura 3.1 se observă modul prin care acestea se leagă:

Fig. 3.1 Funcționarea serverului Apache, cu serverul MySQL și PHP

După cum am precizat mai sus ,pentru memorarea unor informații cu care lucrează aplicația se va folosi serverul de baze de date MySQL. Informațiile se vor stocate într-o singură bază de date. În aceasta bază de date se regăsesc tabele cu informații privind utilizatorul, frecvența accesării site-ului precum și consecințele unor acțiuni a unora dintre utilizatorii înregistrați și informații despre galeria foto cu pozele aferente fiecărui imobil pus la dispoziție de această agenție

Mai în detaliu, baza de date va conține un tabel cu datele personale ale viitorului membru, cum ar fi :

Numele de identificare pe site ( unic pentru fiecare utilizator );

Parola aleasă;

Numele;

Prenumelei;

Adresa exactă;

Numaru de telefon;

Adresa de email;

Nivelul de acces;

Un numar de identificare al acestuia;

Ora și data înscrierii

Alt tabel va conține utilizatorii înregistrați, cu următoarele câmpuri:

Numele de utilizator;

Data și ora;

Mai poate fi creat și un tabel în care se vor memora utilizatorii blocați de administrator, cu câmpurile:

Nume membru;

Data și ora la care a fost blocat membrul

În aceași bază de date se vor crea tebelele necesare realizării galeriei foto. Unul din tabele va stoca date despre categoria galeriei, iar într-un tabel diferit se regăsesc informații despre pozele ce vor forma galeria foto. Astfel se va putea crea un tabel cu următoarele câmpuri:

Id (care va fi de tipul cheie primară );

Nume_galerie;

Descriere;

Tip;

Mod;

Cea de-a doua tabelă pentru galerie poate conține informații legate de imaginile ce se regăsesc în galeria de imagini și va conține următoarele câmpurile:

Id, pentru a identifica poza;

Numele pozei;

Descrierea pozei;

Categoria din care face parte poza respectivă;

De asemenea va exista un tabel cu câmpurile pentru descrierea imobilului:

Numărul de camere;

Suprafața;

Numărul de balcoane;

Compartimentarea;

Confort;

Nr. Balcoane închise;

Suprafață balcoane;

Nr. băi;

Etaj;

Nr. etaje imobil;

Tip imobil;

An construcție;

Mobilat;

Preț

Altele;

În acest tabel se mai pot adăuga și alte informații pentru a fi expuse clienților.

Capitolul 4. Proiectarea de detaliu

4.1 Arhitectura programului

Aplicația prezentată în continuare a fost realizată cu limbajele de programare PHP, HTML, iar baza de date de care această aplicație dispune a fost realizată cu ajutorul serverului MySQL. Toate aceste programe le putem găsi în pachetul WAMP, care a fost folosit și în cazul de față.

În figura 4.1 se poate observa o arhitectura a întregii aplicații.

Fig. 4.1 Arhitectura sistemului

În figura 4.1 este prezentată arhitectura aplicației, aplicație pe care o putem încadra în tipul “Three-tier“ ( dupa modelul expus în capitolul antecedent în fig. 3.1 ). Această schemă o putem reface pentru cazul nostru după modelul din figura 3.2 (arhitectura pe 3 nivele pentru aplicația prezentă ):

Fig. 4.2 Diagrama pe 3 nivele a aplicației

Stratul logic îl putem împărții în mai multe module.

Modulul de Interfațare;

Modulul de Administrare;

Stratul de Date cuprinde baza de date, iar stratul de Prezentare este prezentat prin legătura dintre client, browser și Internet.

4.2. Descrierea componentelor

În continuare se va încerca o scurtă descriere a modulelor evidențiate în subcapitolul anterior: Modulul de Interfațare și modulul de Administrare.

4.2.1 Modulul de Interfațare

În principuiu acest modul este prezentat prin interfața cu utilizatorul, realizată cu ajutorul limbajului, HTML și pentru designul interfeței am folosit limbajul CSS.

Designul interfeței a pornit de la un template general realizat în programul Adobe Photoshop CS3, urmând ca ulterior să se realizeze interfața aplicației. Aplicația are un design unic pentru toate paginile ce urmează să fie afișate, acestora fiindu-le alocate diferite zone în care vor apărea. Tematica cromatică este destul de neutră zone colorate, pentru a atrage atenția utilizatorului în accele zone de interes. O astfel de zona ar fi meniul secundar unde se află linkurile către ofertele agenției, iar altă este partea de înregistrare.

Putem spune că zona în care se regăsește galeria foto este una din cele mai importante. Aici agenția expune ofertele, împărțite în două mari grupuri: ofertele date spre vânzare și ofertele de închiriat. Fiecare din cele două categorii conține opțiuni de a vizualiza diferitele oferte pentru diferite tipuri de impobile, cum ar fi: garsoniere, apartamente ( cu una sau mai multe camere ), case, terenuri. Utilizatorul poate naviga cu ușurință printre oferte.

4.2.2 Modulul de Administrare

Modulul de Administrare, realizat în limbajul PHP, HTML, iar baza de date realizată cu ajutorul aplicației MySQL.

Așa cum am specificat și în capitolul anterior, autentificarea utilizatorilor se face pe trei nivele. Nivelul cel mai mare, adică 2, îl vor avea doar administratorul sau administratorii aplicației, ei au drepturi depline. Nivelul 1 îl reprezintă membrul înregistrat, cu drepturi limitate față de administrator, iar ultimul nivel este compus din utilizatorii neînregistrați, cu nivel 0.

În baza de date sunt stocate datele de înregistrare ale utilizatorilor. Putem spune că pricipalul utilizator al acestui modul este administratorul aplicației, dar toți utilizatorii pot modifica tabelele acestei baze de date, atunci când doresc să devină membrii înregistrați sau când își modifică unde date din contul personal de utilizator.

Tot în acest modul, administratorii aplicației pot încărca oferte noi, poze și descrierea acestora, respectiv șterge ofertele care nu mai sunt valabile.

Prin descriere înțelegem o zonă vizibilă doar membrilor înregistrați să vizualizeze informații detaliate despre imobile ( preț, zonă, utilități, etc. ). De asemneanea doar mebrii logați au acces la zona de căutare, pentru o găsire mai eficientă a tipurilor de imobile căutate. Dacă un utilizator neînregistrat dorește să vizualizeze un imobil, acesta poate vedea doar imaginile cu acestea.

Acest modul este realizat în cea mai mare parte cu limbajul PHP, folosind funcții pentru lucrul cu baze de date.

4.3 Structuri de baze de date

În aplicația web prezentată, datele folosite despre ofertele agenției cât și cele legate de utilizatorii înregistrați sunt stochate într-o bază de date realizată în MySQL. Am ales folosirea acestui server de baze de date pentru că în realizarea aplicației limbajul de bază pe care l-am utilizat este PHP, iar serverul MySQL este cel mai utilizat și unul dintre cele mai recomandate, pentru folosirea cu acestlimbaj.

Baza de date se numește “Imobiliare“, iar tabelel conținute le putem împărții în două categorii astfel: tabele pentru date legate de ofertele puse la dispoziție de agenție și tabelele ce cuprind informații despre membrii înregistrați. Sunt șase tabele în baza de date fiecare cuprind date despre o aumită categorie de informații :

galerie_categorie: cuprinde date despre categoria galeriei foto implementate;

galerie_poze: stochează informații despre imaginile galeriei;

galerie_detalii: stochează datele legate de imobilele prezentate prin imagini;

utilizatori: conține datele cu care membrul s-a înregistrat;

activi: cuprinde lista membrilor activi pe site;

blocați: sunt memorați membrii blocați de pe site;

Tabela galerie_categorie conține informațiile despre galeria foto, categoria din care face parte. Structura tabelei se observa în figura 4.3.

Fig. 4.3 Structura tabelului galerie_categorie.

După cum putem observa și în figură, tabela galerie_categorie este structurată pe 4 coloane:

category_id : după cum îi sugerează și numele, acest câmp este un identificator unic al datelor introduse în tabel, având aplicat o restricție de tip cheie primară, astfel datele introduse sunt unice și nenule. Valorile cuprinse de coloană sunt auto-incrementate;

category_name: în această coloană sunt stocate numele categoriilor ( a tipurilor de imobile a cărora le aparține această galerie). Câmpul este de tipul șir de caractere de maxim 50 de caractere ( varchar (50) ) și nu se acceptă valori nule, valoare implicită fiind zero;

category_description: acest câmp conține o mică descriere a categoriei, este de tipul text și nu se poate lăsa necompletat, având restricția NOT NULL;

category_type: cuprinde timpul categoriei și este de tipul șir de caractere ( varchar(28) ) cu resticția NOT NULL;

mod_categorie: : câmp de tipul tinyint de maxim 4 caractere, introducerea datelor în acest câmp este obilgatorie;

Tabela galerie_pozecuprinde are structura este prezentată în figura 4.4.

Fig. 4.4 Structura tabelului galerie_poze.

Tabelul este format din 4 coloane:

photo_id: acest câmp are impusă cheie primară, este auto-incrementată și este de tipul bigint de maxim 20 de caractere. În acest câmp este reținut identificatorul unic pe care îl primește fiecare imagine;

photo_filename: este memorat numele imaginii care poate avea maxim 25 de caractere ( varchar(25) ), acesta este implicit nul.

photo_caption: reține descrierea pozei, tipul variabilei este text cu valoarea implicită NULL;

photo_category:este stocată categoria imaginii, iar variabilă în care se stochează este de tipul bigint cu maxim 20 de caractere;

Tabela galerie_detalii are structura prezentată în figura 4.5, aceasta cuprinde informații despre galeria de oferte vizualizată:

Fig. 4.5 Structura tabelului galerie_detalii.

Câmpurile tabelului sunt:

nr_camere: variabile de tipul tinyint cu 10 caractere, ce reprezintă numărul de camere a unei proprietăți. Valoarea implicită este 1, în momentul realizării descrierii se poate alege între opțiunile de la 0 la 6 camere, valoarea 1 reprezintă o cameră;

supraf: în acest câmp se memorează suprafața dată în metri pătrați a imobilului, este o variabilă de tipul int 11 caractere;

nr_balc: conține numărul de balcoane, care e memorat într-o variabilă tinyint, valoarea implicită este 0, reprezentând nici un balcon, iar valoarea maximă pe care o poate lua este 5;

compart: compartimentarea imobilelor poate fi decomandat, nedecomandat și tip vagon, acestea sunt stochate în variabilă șir de caractere ( varchar(16) ) ;

confort: câmpul de tip tinyint memorează comfortul imobilului pe o scară de la 0 la 4, implicit va fi aleasă confort 1 dacă nu se selectează altă valoare;

balc_inch: ne arată numărul de balcoane închise, memorate într-o variabilă tinyint;

supraf_balc: câmpul reține suprafața balcoanelor ( metri pătrați ) într-o variabilă de tip int;

nr_bai: se memorează numărul de băi într-o variabilă tinyint, valoarea implicită este 1 care reprezintă o baie, dar se poate alege între opțiuni de la 0 la 4;

etaj: câmp de tipul tinyint memorează numărul etajului la care se află imobilul care pot fi de la 0 la 12,unde 0 este parter, iar 12 etajul 12;

nr_etaj: ne arată numărul de etaje pe care îl are imobilul în care se află proprietatea care ne interesează, variabilă este de tipul tinyint cu valori de la 0 la 12;

tip_imobil: reține tipul imobilului într-o variabilă șir de caractere ( varchar (10) ) cu opțiunile : bloc, casă, vilă, teren;

an_constr: în acest câmp se memorează anul construirii imobilului, câmpul fiind de tipul int;

mobilat: valorile posibile pentru acest câmp sunt : da, nu sau parțial, iar tipul câmpului este varchar de maxim 10 caractere;

altele: valorile memorate în acest câmp conțin informații diverse despre imobil. Aceste informații introduse sunt de tipul text;

index_nr: reține numărul galeriei din care face parte descrierea realizată, are o valoare unică de tip cheie primară, are aceiaș valoare ca și category_id din tabelul galerie_categorie și photo_category din tabelul galerie_poze;

Toate câmpurile din tabelul galerie_descriere sunt de tipul NOT NULL, adică nu accespta valori nule, fiecări câmp trebuie să îi fie atribuită o valoare.

În cea de-a două “parte “ a bazei de date Imobiliare găsim tabelele cu informații despre membrii înregistrați, administratori și altele.

Tabelul utilizatoriare următoarea structură prezentată în figura 4.6.

Fig. 4.6 Structura tabelului membrii

Acest tabel conține pe o parte date introduse de membrul în momentul înregistrării, pe de altă parte datele sunt introduse automat de calculator.

Câmpurile acestui tabel sunt:

numeutilizator: este un câmp de tip șir de caractere ( varchar (30) ) ce memorează numele de identificare unic al membruluiacestad fiind asigurat are o resticție de tip cheie primară aplicată acestui câmp, nu se permint valori de tipnul;

parola: se reține parola introdusă de membru, aceasta fiind înainte criptată cu md5(), ulterior pentru a nu putea fi vizualizată de nimeni. Acest câmp este de tipul șir de caractere ( varchar(32) ),iar valoarea implicită este 0;

nume: acest câmp stochează numele membrului, având tipul varchar(30), fiind obligatoriu completat;

prenume: se reține prenumele de tipul șir de caractere ( varchar(30) ), nu se acceptă valori nule;

adresa: în acest câmp se memorează adresa dată de membru la înregistrare, este de tip varchar de 150 de caractere și nu poate fi lăsat necompletat;

telefon: memorează numărul de telefon al membrului, este de tipul int cu maxim 13 caractere ( am folosit 13 caractere pentru a perminte și introducerea numerelor de telefon din afara țarii, cu prefixul 00XX ), de asemenea acest câmp nu poate fi lăsat necompletat;

idutilizator: câmp care stochează id-ul membrului, acesta este de tipul șir de caractere, valoarea implicită este nulă;

nivel: reține nivelul ce acces al membrului într-o variabilă de tip tinyint , inițial nivelul membrului este setat pe 1, adică nivelul membrilor înregistrați, ulterior acesta poate fi schimbat de către persoane autorizate;

email: câmpul reține adresa de email a mebrului, este de tipul șir de caractere;

timestamp: returnează ora și data înregistrării pe care o ia de la server;

Tabelul activi are structrura ca și cea din figura 4.7.

Fig. 4.7 Structura tabelului activi.

Tabelul conține membrii activi ai site-ului, ajutând la o mai bună organizare de către administratorii aplicației.

Câmpurile tabelului sunt:

numeutilizator: în acest câmp se memorează numele membrului, câmpului fiind-ui aplicată o cheie primară care asigură ca nu se găsesc mai multe înregistrări cu acelaș nume. Tipul este șir de caractere ( varchar(30) );

timestamp: memorează data și ora;

Tabelul blocațiare structura prezentată în figura 4.8.

Fig. 4.8. Structura tabelului blocați.

Câmpurile tabelului sunt:

numeutilizator: câmp cu restricție de cheie primară care memorează numele de utilizator a membrilor;

timestamp: memorează data și ora;

4.4 Elemente de securitate

În zona destinată administrării este permis accesul doar mebrilor cu drepuri de administrator, logarea se realizaza pe baza numelui de utilizator și parolă. În momentul introducerii parolei, în locul caracterelor va aparea “• “, astfel datele utilizatorului sunt protejate. În momentul înregistrării, viitorului membru i se cere să confirme parola pentru a evita scrierea greșită a parolei, astfel dacă cele două câmpuri nu sunt identice se va semnala un avertisment.

Odată trimise, datele utilizatorului sunt stocate în baza de date, iar parola este codificată cu funcția md5, iar parola necodificată nu poate fi accesată de nici o personă.

Un alt element de securitate introdus este acela că dacă un utilizator scrie adresa unei pagini destinate doar administratorilor, acesta va fi redirecționat automat la pagina principală, astfel nu se poate intra în modulul de administrare fără autorizație.

Capitolul 5. Utilizare

Lucrarea de diplomă prezentă are ca temă realizarea unei aplicații web, prin urmare această aplicație nu necesită o instalare prealabilă și poate rula pe orice calculator sau dispozitiv conectat la Internet, indiferent de sistem de operare pe care acesta îl are instalat.

Interfața cu vizitatorul

La accesarea site-ului, se încarcă o pagină principală, care este comună pentru orice tip de vizitator/utilizator. Aceasta pagina pricipală o putem împarți în mai multe zone de interes, astfel avem zona cu primul meniu al aplicației ce cuprinde legături către pagina principală ( Acasă ), paginile cu serviciile pe care le mai oferă agenția, informații despre procesul de cumpărare (Servicii și Credite Imobiliare ), iar ultima legătură se face către pagina de Contact. Al doilea meniu, putem spune și cel mai important, în care sunt prezente legăturile către paginile de vizualizare a ofertelor imobilelor de vânzare, respectiv de închiriat.

Pagina principală a site-ului este prezentată în figura 5.1 Interfața principală.

Fig. 5.1 Interfața principală

Această pagină principală o putem împărții în 4 zone, astfel putem identifica zona de meniuri pe care am menționat-o mai sus, zona de conversie, zona de autentificare/căutare și zona centrală.

Pentru a vedea ofertele expuse de agenție pe site, vizitatorul alege una din cele doua opțiuni: De Vânzare sau De Închiriat. Alegerea oricărui dintre cele două ramuri ne redirecționează către o nouă pagină, având aceiaș structura ca pagina de start, dar în care de această dată în zona centrală a paginii va apărea un alt meniu de unde se va selecta una din opțiunile: Apartamente ( cu o cameră până la 6 camere ), Garsoniere, Case, Terenuri, Spațiu comercial și Spațiu de birouri. Acestea sunt afișate după modelul prezentat în figura 5.2.

Fig. 5.2 Alegere tip imobilul spre vizualizare.

O dată aleasă o opțiune, se deschide galeria aferentă alegerii, în care sunt prezentate toate ofertele care se încadrează în acea categorie, sub forma unor thumbnail-uri cu o mică descriere sub acestea, iar pentru vizualizarea tuturor imaginilor unui imobil se va apăsa pe legătura aflată deasupra fiecărui thumbnail.

După selectarea unui imobil anume, se reîncarcă în aceiaș zonă galeria prin care se poate naviga prin apăsarea în orice zonă a imagini, iar o dată ce s-a ajuns la ultima imagine, se v-a relua de la început.

Imaginile ofertelor pot fi vizualizate de orice vizitator, dar detaliile fiecarei oferte sunt accesibile doar membrilor înregistrați pe site. Astfel în locul descrieri apare mesajul :

În zona de conversie se gaseste un convertor valutar, care realizeaza conversii în timp real din euro/dolari în lei, sau invers. Am implementat aceasta opțiune de conversie pentru că am considerat foarte util ca viitori clienți să poată afla prețurile și în RON ( prețurile de vânzare sau închiriere a imobilelor fiind date in Euro pe site ), pentru o apreciere mai bună a acestora și o eventuală comparare cu oferte a altor site-uri competitoare. Implicit este setată conversia din EURO în RON.

În figura 5.3 este prezentat acest convertor.

Fig.5.3 Convertor valutar

În pagină, sub acest convertor este amplasată zona de autentificare/căutare.

Pentru a putea vizualiza ofertele complet un vizitator trebuie să se autentifice, prin introducerea unui nume de utilizator și parola aferentă acestuia. În cazul în care vizitatorul nu este înregistrat pe site, acesta o poate face, pe zona de autentificare fiind prezentă o legătură care îl redirecționează spre un formular de înregistrare.

Dacă se doreste momorarea numelui de utilizator în browser, se bifează opțiunea ” Ține minte”, prin care nu mai este nevoie introducerea de fiecare dată când se accesează site-ul a numelui de utilizator și a parolei, autentificarea făcându-se automat. Bifarea acestei opțiuni este recomandată doar în cazul în care calculatorul de pe care se autentifică nu este folosit și de alte persoane, astfel se împiedică accesarea fără permisiune a contului.

Vizitatorul care are deja un cont activ pe site, introduce datele , Nume Utilizator, respectiv Parola. Dacă una, sau amandouă, date introduse sunt greșite se va semnala eroare: ” Nu există nume de utilizator ”respectiv ” Introduceti parola ”, care ne atenționează că nu s-a introdus parolă.

Această zonă este prezentată în figura 5.4, în care se observa clar toate opțiunile pe care le are (autentificarea propriu-zisă, creare cont, recuperare parolă ).

Fig. 5.4 Zona de autentificare

În cazul în care un vizitator nu are cont de utilizator și doreste să înregistreze pe site, acesta are această opțiunea, prin apăsarea legăturii ”Înregistrați-vă”, fiind redirecționat la formularul de înregistrare, care se încarcă în zona centrală. Aici se cere completarea datelor de către viitorul membru, toate câmpurile fiind obligatorii. În cazul necompletării unuia din câmpuri se va semnala eroare în dreptul căsuței necompletate, sau completate greșit. După completarea corectă a datelor, se apasă butonul de trimitere a datelor, astfel realizându-se înregistrarea. Structura acestui formular se poate observa în figura 5.5.

Fig. 5.5. Formularul de înregistrare.

După ce s-a trimis cererea de înregistrare va apărea următorul mesaj:

Fig. 5.5 Mesaj înregistrare cu succes.

În cazul în care înregistrarea nu s-a putut realiza va aparea un mesaj prin care se cere reîncercarea înregistrării mai târziu.

Noul utilizator va primi pe adresa de email specificată în formular, un mesaj de la echipa site-ului, în care se confirmă înregistrarea cu succes ca nou membru.

O dată autenticat, în partea din stânga sus apare următorul mesaj:

După cum se observă utilizatorul are optiune de a modifica contul , opțiune de a vizualiza datele sale personale și opțiunea de dezautentificare, Logout.

O dată autentificat, zona în care se afla autentificarea, acum se găsește opțiunea de căutare cu care utilizatorul poate găsi făra a mai naviga prin meniurile galeriilor și galerii. După completarea cu criteriile de căutare dorite se afișază doar ofertele care corespund parametrilor ceruți de utilizator. Modulul de căutare arată ca în figura 5.6.

Fig. 5.6 Zona de căutare

După cum se observa în imagine, căutarea se face pe baza a trei criterii: dacă se dorește cumpărarea sau închirierea imobilui, după tipul imobilului și dupa preț ( la care se poate alege între mai multe intervale în care să fie cuprins prețul, acesta fiind exprimat în EURO ).

Dacă datele după care se dorește căutarea nu au nici un corespondent printre ofertele de pe site, atunci se va afișa următorul mesaj, în zona centrală.

Față de un vizitator simplu, un membru înregistrat prezintă unele avantaje. Acestea sunt: posibilitatea vizualizării ofertei complete, prin care înțelege că se pot vedea și detaliile ofertelor ( preț și prezentarea lui ). Alt dezavantaj pe care îl are un vizitator față de un membru este faptul că acesta nu are opțiunea de a folosi modulul de căutare. Acest modul apare doar după înregistrare.

Modulul de administrare

Prin administrare înțelegem, organizare informațiilor. În cazul de față administrarea site-ului este realizată de un administrator, care defapt este un membru înregistrat cu privilegii mai mari decât unul simplu. Diferențierea dintre un membru simplu și un administrator este dată de nivelul de acces pe care acesta îl are. Administratorii site-ului au un nivelul de acces 2, iar un membru înregistrat are nivelul de acces 1.

Administratorul se autentifică ca și un membru normal, doar ca spre deosebire de un membru normalare în plus două opțiuni: Administrator și Administrate Oferte.

În secțiunea Administrator sunt opțiunile de administrare a membrilor, cum ar fi: afișarea unui tabel cu toti membri înregistrați, adresele de email, nivelul de acces pe care îl are fiecare membru în parte și ultima dată când a fost activ pe site.

Înterfața din care administratorul site-ului își desfășoară activitatea este una diferită de cea interfața principală. Aceasta nu are elemente de design, deoarece am considerat că nu este nevoie.

Un administrator poate realiza din zona de administrare modificări atât membrilor înregistrați cât și galeriei de oferte a agențoiei.

Operațiile ce se pot face la adresa unui membru sunt: ștergerea, schimbarea nivelului acordat unor membri, blocarea membrilor. Toate aceste opțiuni sunt prezentate în figura5.7 prezentată mai jos.

Fig. 5.7 Modulul de administrare membri.

Cea de-a doua opțiune pe care un administrator o are în plus unui membru normal este aceea de a adăuga sau șterge ofertele agenției.

Introducerea sau stergerea ofertelor se face prin accesarea modului de administrare oferte.

Pentru agăugarea unui nou imobil în galerie se completează un formular cu datele imobilului precum și categoria galeriei unde dorim sa publicăm noul anunț. Acest formular este prezentat în figura 5.8.

Fig.5.8 Adaugare anunț.

După completarea cu date despre imobil suntem redirecționați la alt formular de unde adaugăm pozele dorite. Acesta arată ca în figura 5.9.

Fig.5.9

Când utilizatorul nu mai dorește navigarea pe site și dorește să nu mai fie autentificat, acesta are opțiunea de Logout, adică ieșire. În urma selectării acestei opțiuni, membrul înregistrat devine un vizitator simplu.

Capitolul 6. Concluzii

Aplicația realizată reprezintă un site de prezentare și expunere a ofertelor unei agenții imobiliare, poate fi accesată de orice persoană, având unele restricții sau nu. Accesarea ei se poate face prin orice terminal compatibil http.

Un mare avantaj al aplicației prezentate îl reprezintă număru mare de utilizatori care o pot accesa, fără a fi nevie de o configurare prealabilă a calculatorului sau instalarea ei.

Aplicația web realizată reunește toate caracteristicile și facilitățile pe care o agenție imobiliară trebuie să le ofere clienților săi,

Administrarea site-ului nu necesită cunoștinte de programare sau administrare de baze de date, acesta poate fi administrat de orice persoana ce deține un cont de administrator. Modificările ce pot fi aduse se realizează printr-o interfața grafică, separată de cea a utilizatorilor înregistrati ca membri normali. Unul din motivele alegerii unei astfel de administrare a fost reducerea costurilor ( nu mai este necesară angajarea unei persoane specializate ), iar informațiile ajung mai repede la publicul vizat.

Interfața cu utilizatorul este una prietenoasă, elementele de interes a site-ului fiind ușor de indentificat. Datele sunt prezentate într-un format structurat, acestea fiind ușor de găsit, fără prea mare efort, meniurile fiind poziționate tocmai pentru a ușura navigarea prin site.

Designul interfeței a fost realizat cu ajutorul limbajului CSS, iar imaginile folosite au fost prelucrate cu ajutorul programului Adobe Photoshop CS3. Pe baza acestui design a fost construită aplicația, în limbajul PHP, cu scripturi care comunică cu baza de date .

La ora actuală pe internet există o multitudine de site-uri a unor agenții imobiliare, defapt putem spune ca marea majoritate a agențiilor imobiliare au și site de prezentare. Aplicația de față are o structură asemănătoare acestora, prezentând oferte de vânzare, închieire în funcție de numărul de camere dorite. Site-ul cuprinde toate părțile importante pe care le are un site de acest gen, dar bineințeles se pot aduce unele îmbunătațiri, de exemplu se poate adăuga un calculator de taxe pe care viitorul cumpărator va trebui să le platească. Modul în care este structurată aplicația permite introducerea ușoara a unor noi module.

Ca și o concluzie, putem spune că agențiile imobiliare reprezintă un factor foarte important în pocesul de cumpărare sau închiriere a unui imobil, iar site-urile destinate acestor agenții sunt o unealtă ce ușurează comunicarea între ambele parți ( client/agenție).

BIBLIOGRAFIE

[Ull06] Ullman, L. (2006) PHP și MySQL pentru site-uri web dinamice, Ed. Teora, ISBN: 1-59496-069-0;

[Cas03] Castro, E. (2003) HTML pentru world wide web, Ed. Corint, ISBN: 973-653-507-x;

[Skl06] Sklar D., Trachtenberg A. (2006) PHP Cookbook second edition, Ed. O’Reilly, ISBN-13: 978-0-596-10101-5;

[Tho04] Thompson L., Welling L. (2004), Dezvoltarea aplicatiilor WEB cu PHP și MySQL, Ed. Teora, ISBN:1-59496-051-8

[Mel05] Meloni J. (2005) PHP, MySQL si Apache, Ed. CORINT, ISBN 973-653-657-2;

[Val10] Valade, J. (2010) Php and MySql for Dummies, 4th edition, Ed. Wiley Publishing, Inc., ISBN: 979-0-470-52758-0

[***11,a] Standardul W3,www.w3.org/TR/REC-html40

[***11,b] PHP:Hypertext Processor, http://www.php.net/manual/ro/index

[***11,c] Tutorial PHP, www.w3school.com

[***11,d] Tutoriale CSS, http://htmldog.com/guides/cssbeginner/

BIBLIOGRAFIE

[Ull06] Ullman, L. (2006) PHP și MySQL pentru site-uri web dinamice, Ed. Teora, ISBN: 1-59496-069-0;

[Cas03] Castro, E. (2003) HTML pentru world wide web, Ed. Corint, ISBN: 973-653-507-x;

[Skl06] Sklar D., Trachtenberg A. (2006) PHP Cookbook second edition, Ed. O’Reilly, ISBN-13: 978-0-596-10101-5;

[Tho04] Thompson L., Welling L. (2004), Dezvoltarea aplicatiilor WEB cu PHP și MySQL, Ed. Teora, ISBN:1-59496-051-8

[Mel05] Meloni J. (2005) PHP, MySQL si Apache, Ed. CORINT, ISBN 973-653-657-2;

[Val10] Valade, J. (2010) Php and MySql for Dummies, 4th edition, Ed. Wiley Publishing, Inc., ISBN: 979-0-470-52758-0

[***11,a] Standardul W3,www.w3.org/TR/REC-html40

[***11,b] PHP:Hypertext Processor, http://www.php.net/manual/ro/index

[***11,c] Tutorial PHP, www.w3school.com

[***11,d] Tutoriale CSS, http://htmldog.com/guides/cssbeginner/

Similar Posts

  • Aplicatii Java pe Telefoane Mobile. Mesagerie Sms. Cmcchat

    Cuprins Introducere…………………………………………………..3 Limbajul Java………………………………………………………….3 J2ME…………………………………………………………………..8 Specificațiile CLDC……………………………………………………..13 CLDC 1.0………………………………………………………………………………….13 CLDC 1.1………………………………………………………………………………….42 Specificațiile MIDP………………………………………………………44 MIDP 1.0…………………………………………………………………………………..44 MIDP 2.0…………………………………………………………………………………..57 Wireless Java API……………………………………………………….64 Comunicatii wireless.Prezentare……………………………………………….64 Specificația Java pentru Bluetooth…………………………………65 SMSChat…………..……………………………………….68 Introducere……….…………………………………………………..68 Implementare…………………………………………………………70 Interfata…….…………………………………………………………75 Bibliografie…………………………………………………79 Introducere Limbajul Java Java este un limbaj de programare dezvoltat inițial de Sun Microsystems și lansat în 1995 ca element de bază al platformei…

  • Sistem DE Reglare Numerica A Vitezei Unui Motor Asincron PE Principiul Orientarii Dupa Camp

    SISTEM DE REGLARE NUMERICĂ A VITEZEI UNUI MOTOR ASINCRON PE PRINCIPIUL ORIENTĂRII DUPĂ CÂMP CUPRINS INTRODUCERE Cap. I MODELUL MAȘINII ASINCRONE 1.1 Analiza unitară a mașinilor electrice 1.2 Conceptul de fazor spațial 1.3 Tratarea matricială a modelului ortogonal 1.4 Transformări de axe 1.5 Reducerea mărimilor rotorice la stator 1.6 Ecuațiile de tensiune ale mașinii asincrone…

  • Sisteme Distribuite. Exemple Sugestive de Utilizare

    Sisteme distribuite Concepte generale privind sistemele distribuite Un sistem distribuit reprezintă o colecție de calculatoare ce au acces la memoria proprie sau la anumite memorii comune partajate, fiind conceput cu scopul partajării unor resurse și pentru rezolvarea concurentă a unor aplicații paralele. Din modul de definire a sistemelor distribuite se pot enumera câteva caracteristici de…

  • Sistem de Management al Scolaritatii Elevilor

    Cuprins GENERALITĂȚI Din cele mai vechi timpuri omul a simțit nevoia să cunoască spațiul înconjurător, și materializarea gândirii sale într-un limbaj matematic de bază. Odată cu evoluția omului au evoluat și problemele acestuia, soluția la aceasta a fost inventarea unei mașini de calcul ce îi va schimba radical modul de viață. Dezvoltarea rapidă din ultima…

  • . Teoria Probabilitatilor

    CAPITOLUL 1: NOȚIUNI GENERALE DE TEORIA PROBABILITĂȚILOR În condițiile lărgirii considerabile a cadrului de aplicare a metodelor matematice moderne în toate domeniile de studiu și cercetare științifică ca și în rezolvarea unor probleme practice, o atenție deosebită se acordă teoriei probabilităților și aplicațiilor acesteia. Teoria probabilităților este o disciplină matematică asemenea geometriei, algebrei, mecanicii sau…