În cadrul acestui proiect de licență au fost stabilite următoarele obiective: [303429]
1. [anonimizat] a [anonimizat]. [anonimizat] a car va atinge o valoare aproximativa de 81 miliarde de dolari până în anul 2019.
De-a [anonimizat] s-[anonimizat], trecând astfel de la mașini de clasă mică/economice, [anonimizat], [anonimizat].
[anonimizat], [anonimizat] a car, [anonimizat] a fi nevoiți sa depună eforturi suplimentare.
[anonimizat] a [anonimizat], deoarece există cerere si acolo. Totodata, traseele si destinațiile s-[anonimizat], motiv pentru care companiile de rent a car au un succes garantat.
Este o [anonimizat]-se ca acest gen de servicii să fie din ce in ce mai profesionale si mai avantajoase pentru clienti. [anonimizat] a [anonimizat], mașini noi și avantaje pentru clienții lor.
[anonimizat], deoarece s-a [anonimizat]. [anonimizat].
1.1 Obiective
Am ales ca temă o [anonimizat], [anonimizat], ci o necesitate. [anonimizat].
Scopul proiectului este de a [anonimizat], care prin prisma comerțului electronic să permită rezervarea online de mașini. Intregul proces se desfășoară cu ajutorul unei interfețe prietenoase și ușor de utilizat.
În cadrul acestui proiect de licență au fost stabilite următoarele obiective:
Pe partea administrativă:
posibilitatea de a insera o [anonimizat] a fost adăugată se pot adăuga imagini care ajută la prezentare
Pe partea utilizatorilor:
posibilitate de a [anonimizat]
1.2. Cerințe și specificații
Cerințele ce trebuiesc îndeplinite în ceea ce privește aplicația sunt legate în pricipal de funcționalitate și fiabilitate. Astfel aplicația va urmări să rezolve următoarele cerințe:
implementarea unui meniu de navigare
implementarea unui sistem de logare pentru administrator
crearea secțiunii administrative
evidența entităților
posibilitatea vizitatorilor de a intra în contact cu administratorul fără a face rezervare
implementarea unui slider cu imagini de prezentare pentru fiecare entitate
posibilitatea de rezervarea a autoturismului dorit
1.3 Structura lucrării
2. Analiza problemei
2.1 Avantajele utilizării aplicațiilor web
Aplicațiile web sunt programe web-based, executate într-un browser web și implementate folosind tehnologii precum: PHP, ASP, PEARL, PYTHON, HTML, CSS, JAVASCRIPT, etc. Popularitatea acestora se află într-un trend ascendent, tot mai mulți utilizatori îndreptându-se spre acest tip de aplicații datorită avantajelor pe care le oferă comparativ cu programele clasice (instalate si rulate).
Fiind aproape universal folosite de cei care pun la dispoziție servicii online, era normal ca aplicațiile web să aibă un număr important de beneficii, care să le facă atât de dezirabile.
Fiind dezvoltate pentru a putea fi accesate de pe orice browser, aplicațiile web trebuie testate doar pentru diferite astfel de navigatoare. Astfel, la ele se poate lucra de pe orice sistem de operare, nefiind necesară si testarea pe mai multe din acestea. Rezultă astfel costuri mai scăzute in procesul de realizare a unei aplicații web.
Spre deosebire de aplicațiile traditionale, cele web sunt disponibile si ușor de accesat oriunde si oricând, atât timp cât se utilizează un PC care are conexiune la Internet. Așadar, atât clienții cât si proprietarii au mai ușor acces la ele. În plus, aplicațiile web sunt mai ușor de personalizat decât cele de pe desktop. Designul, prezentarea și întregul mesaj sunt mai ușor de modificat, dar pot fi prezentate și diferit pentru diferite grupuri de utilizatori.
Conținutul unei aplicații web poate fi accesat de pe o varietate de dispozitive (PC, telefoane mobile, tablete, PDA-uri, console, mai nou smart tv-uri si multe altele), sporind și mai mult posibilitățile utilizatorilor să aibă acces și să interacționeze cu informațiile. Îar aplicațiile web pot interacționa între ele mult mai ușor, sporind astfel accesul clienților la date.
Nu în ultimul rând, acestea sunt ușor de instalat (prin intermediul update-urilor se poate ajunge la toți utilizatorii deodata), se adapteză la un volum de informații din ce în ce mai mare si sunt mai bine securizate (găsindu-se pe servere dedicate) si ușor de creat.
Fig. 2.1 Comunicarea dintre utilizatorul web si serverul web
2.2 Conceptul de magazin virtual
O comunitate virtuală (online) se referă la un sistem, eventual bazat pe tehnologia informației și comunicațiilor, compus din entitați diverse, care interacționează între ele, comunică si conlucrează prin intermediul mecanismelor oferite de mediu. Cel mai important element într-o comunitate este entitatea. Acest concept este critic deoarece definește un corespondent virtual al unde entitați reale care utilizează sistemul, putând fi un operator uman, o aplicație software, un aparat.
Magazinul virtual este un tip de comunitate online și reprezintă corespondentul virtual al entitații reale, care asigură vânzarea produselor și serviciilor, precum și interacțiunea dintre ofertant și client. A cunoscut o dezvoltare rapidă încă de la apariția conceptului și a reușit, în scurt timp, să penetreze întreaga piață de desfacere de bunuri și servicii. Dezvoltarea în paralel a tehnologiilor care permit securizarea tranzacțiilor pe Internet, a făcut ca acest tip de comunitate virtuală să fie din ce în ce mai populară.
Un magazin electronic se implementează prin intermediul unui site web, administrat de companie, pentru marketing-ul și vânzările propriilor produse și servicii. De asemenea este un mod viabil de a prezenta o firmă pe piața electronică cu un minimum de efort.
2.3 Comerț electronic
Comerțul electronic (e-commerce) este procesul de cumpărare, vânzare sau schimb de
produse, servicii sau informații prin intermediul rețelelor de calculatoare. E-comerț-ul este un comerț rapid, care se desfășoară în timp real și comod, iar cumpărătorii și comercianții au drept piată, prin Internet, întreaga lume, magazinele fiind valabile non-stop. Amenajarea unui magazin vitual este mai puțin costisitoare, costurile de întreținere sunt mult mai reduse iar aria de acoperire este practic nelimitată, livrarea produselor facându-se prin intermediul serviciilor de curerat.
Principala problemă cu care s-au confruntat proprietarii magazinelor virtuale a fost înmulțirea încercărilor de fraudă. Astfel, chiar dacă piața externa deține aproximativ 90% din numărul total de tranzacții, renumele hackerilor constituie un semnal de alarmă pentru potențialii clienți.
Tranzacționarea electronică a mărfurilor și serviciilor constituie o extensie a comerțului actual. Se obține astfel o eficiență sporită, în sensul reducerii costurilor și în ceea ce privește efectul market-ingului și se îmbunătățește relația beneficiar-client. Comerțul electronic facilitează și cooperarea între firme. Reduce costurile de market-ing și de livrare, susține strategia de market-ing a firmei și oferă acces pe noi piețe.
Mulți oameni considera comerțul electronic ca fiind orice tranzacție comercială condusă electronic pentru cumpărarea unor produse cum ar fi cărți, CD-uri, bilete de călătorie și altele. Dar, comerțul electronic are, în sens larg, un impact mult mai profund asupra evoluției afacerilor și cuprinde, în fapt, nu numai noile achiziții comerciale ci și totalitatea activităților care susțin obiectivele de market-ing ale unei firme și care pot include, spre exemplu, publicitate, vânzări, plăți, servicii către clienți, etc.
Avantajele comerțului electronic
Comerțul electronic este elementul de bază al noii economii, iar Internetul reprezintă principalul mediu prin care acesta își face simțită prezența.
În ceea ce privește avantajele utilizării comerțului electronic, acestea pot fi analizate din trei puncte de vedere: al companiei, al consumatorului și al societății.
Avantajele companiei:
– extinderea zonelor de activitate pentru piețele naționale și internaționale – cu un capital minim, o companie poate rapid și ușor să-și localizeze clienții, furnizorii potriviți și cei mai buni parteneri de afaceri din lume;
– creșterea vitezei de comunicare;
– îmbunătățirea eficienței (datele sunt în format electronic, reducând astfel, de exemplu, erorile de tastare);
– reducerea inventarului și a managementului stocurilor;
– reducerea timpului dintre cheltuirea capitalului și primirea produselor/serviciilor;
– reducerea unor costuri de creare, procesare, distribuție, stocare, regăsire a informațiilor bazate pe hârtii (prin e-mail se reduc costuri privind mesageria, iar Electronic Data Interchange determină reducerea stocurilor și costurilor legate de ciclul de cumpărare);
– întărirea relațiilor cu furnizorii și clienții (site-ul Web conține informații actualizate, utile tuturor părților, iar Electronic Data Interchange implică o strânsă legătură a partenerilor pentru stabilirea standardelor de comunicare);
– o cale rapidă și modernă de furnizare a informațiilor despre companie (prin paginile de Web);
– canale alternative de vânzare (prin Web).
Avantajele cumpărătorului:
– efectuarea rapidă de cumpăraturi sau alte tranzacții la orice oră, în orice zi;
– căutare rapidă de produse și servicii, cu posibilități de comparare a prețurilor și calităților potrivite;
– transport rapid a produselor, mai ales al celor digitale;
– permite participarea clienților la licitații virtuale, la reuniuni electronice din comunitățile virtuale, unde au loc schimb de idei, de experiențe;
– comoditate sporită;
– facilitează competiția, având ca rezultat reduceri substanțiale.
Avantajele comerciantului în urma introducerii comerțului electronic sunt:
– atragerea de noi clienți prin intermediul unui nou canal de distribuție;
– permite persoanelor angajate să lucreze de acasă, reducându-se astfel traficul și poluarea;
– permite ca unele mărfuri să fie vândute la prețuri mai mici, astfel încât și oamenii cu venituri mai mici să poată cumpăra mai mult, ridicându-le standardul de viață;
– permite oamenilor din lumea a treia și a celor din zonele rurale să aibă acces la produse și servicii, care altfel nu le-ar fi fost accesibile;
– facilitează furnizarea de servicii publice, cum ar fi sănătatea, educația, distribuirea serviciilor sociale ale guvernelor la un cost redus și cu o calitate îmbunătățită.
Avantaje generale ale comerțului electronic:
– Internet-ul, mediul prin care comerțul electronic se realizează, este omniprezent, accesibil și ieftin;
– accesul la resursele oferite de comerțul electronic se poate face printr-o gamă largă de tehnologii (calculatoare, PDA-uri, telefoane mobile, televiziune digitală, cabine telefonice);
– este redus timpul dedicat cumpărăturilor;
– pot fi adaptate schemele de plăți bazate pe card, deja existente;
– nu există limitări geografice;
– intermediarii pot fi eliminați din lanțul de aprovizionare;
– stocurile pot fi minimizate sau chiar eliminate prin procese de producție „just-in-time”.
În practică, motivele pentru care o companie dorește să se lanseze în comerțul electronic pe Internet sunt următoarele:
√ posibilitatea de a-și lărgi clientela: pe Internet, orice companie poate avea o prezență globală, beneficiind de clienți din toată lumea. De exemplu, oricine este conectat la Internet poate vizita paginile Web ale unei companii, indiferent de localizarea geografică a utilizatorului.
√ reduceri drastice ale costurilor pentru distribuție și servicii pentru clienți: utilizarea Internet-ului duce la scăderea semnificativă costurilor, cu toate că prezența pe Internet implică unele costuri inițiale, care diferă în funcție de serviciile dorite (e-mail, Web etc.), dar acestea se amortizează relativ repede. De exemplu, trimiterea prin poștă a unei broșuri de prezentare a produselor implică un cost cu mult mai mare decât cel al trimiterii broșurii în format electronic prin e-mail sau cel al plasării acesteia pe un site Web. Un alt avantaj al costurilor mici de distribuție este posibilitatea de a distribui mult mai multă informație și actualizarea rapidă a acesteia.
Avantajele menționate mai sus decurg în principal din caracteristicile tehnice și economice ale Internetului (interoperabilitatea, caracterul global, WWW, costurile scăzute de conectare la Internet, ușurința de utilizare a browser-elor Web).
3. Tehnologii, instrumente și limbaje utilizate pentru dezvoltarea aplicației
3.1 HTML
HTML este o formă de marcare orientată către prezentarea documentelor text pe o singură pagină, utilizând un software de redare specializat, numit agent utilizator HTML, cel mai bun exemplu de astfel de software fiind browserul web. Acesta poate fi generat direct utilizând tehnologii de codare din partea serverului cum ar fi PHP, JSP sau ASP.
HTML este o prescurtare de la Hyper Text Mark-up Language și este codul care stă la baza paginilor web. Paginile HTML sunt formate din etichete sau tag-uri și au extensia .html sau .htm . HTML-ul nu este un limbaj case sensitive(nu face deosebirea între litere mici și mari). Cu ajutorul HTML putem realiza urmatoarele:
documente independete de platformă
legaturi cu alte documente de pe Internet
introducere de imagini, sunet și video
interactivitate între cititorul documentului și document
Toate tag-urile sunt scrise între paranteze unghiulare: <nume-tag> . Aceste tag-uri sunt de două feluri: de inceput <nume-tag> și de sfărsit </nume-tag> și au efect asupra obiectului descris între ele.
Fiecare document HTML este structurat în două părti: antetul – „head” și conținutul – „body”. Structura unui document HTML arată astfel:
<html>
<head> <title> Titlul Documentului</title> </head>
<body> Conținutul documentului </body>
</html>
O caracteristică majoră a HTML-ului o reprezintă abilitatea lui de legare a unei porțiuni de text de alte documente, de a purta cu el referințe. Acest lucru este realizat cu hyperlink-uri. Fiecare referință (hyperlink) într-un document HTML este definită de două componente:
elementul de activare, de tip text sau de tip grafic, prin intermediul căruia se activează legătura
elementul URL care descrie adresa documentului adresat și eventual a punctului de intrare în document, după ce hyperlink-ul este activat.
Formularele permit construirea de ecrane de comunicare de date către un script prin intermediul unui server Web. Formularele au următoarele atribute:
ACTION: desemneaza script-ul care va fi declanșat după validarea cererii;
METHOD: indică maniera în care datele vor fi transmise script-ului destinatar.
Ultima versiune este HTML5. Obiectivele sale principale au fost acelea de a îmbunătăți limbajul cu un suport pentru cele mai recente apariții multimedia, în același timp menținându-l ușor de citit de oameni și bine înțeles de computere și device-uri (browsere web, parsere, etc.). Acestea cuprinde elemente ca <video>, <audio>, <header> si <canvas>, precum și integrarea conținutului SVG (Scalable Vector Graphics) care înlocuiește utilizarea tag-ului generic <object> . Aceste noutăți sunt proiectate pentru a facilita includerea și manipularea în web a conținuturilor multimedia și grafice fără a fi nevoie să se recurgă la proprietățile de plugin și API. Alte noi elemente ca <section>, <article>, <header> si <nav> sunt proiectate să îmbunătățească conținutul semantic al documentelor. API-urile și DOM-urile (document object model) sunt certitudini și sunt părți fundamentale în specificațiile HTML5. HTML5, de asemenea, definește in câteva detalii prelucrările necesare pentru documentele invalide, astfel încât sintaxa erorilor va fi tratată uniform de toate browserele cunoscute.
3.2 JavaScript
JavaScript a fost realizat de firma Netscape și Sun și a fost conceput ca un limbaj care extinde posibilitățile de lucru ale HTML-ului. Pe scurt, este încorporat într-un fișier HTML, deci el conlucrează cu acesta. Este un limbaj interpretat, altfel spus navigatoarele care-l cunosc au încorporat un interpretor, care analizează instrucțiunile JavaScript și le execută imediat pe calculatorul local. Acesta furnizează un set complet de comenzi și funcții construite chiar în interiorul sursei HTML. Acest limbaj nu necesită un compilator extern, execuția codului se realizează automat de către navigator.
JavaScript este un limbaj care utilizează obiecte. Limbajul dispune de un mecanism specific de creare și utilizare a lor. De asemenea, limbajul are deja generate o mulțime de obiecte. În absența lor, puține operații s-ar putea programa ușor.
Datorită faptului că JavaScript este interpretat, erorile de sintaxă se depisteaza mai greu (nu mai este compilatorul care îți arată unde este eroarea). De regulă, o eroare de sintaxă are ca efect faptul că începând de la ea, următoarele instrucțiuni nu mai sunt executate. Pentru a o găsi, se poate folosi funcția alert().
Integrarea JavaScript în codul HTML se face prin elementul script, plasat între marcajele <script language=”JavaScript”> și </script>. De asemenea, se poate folosi elementul noscript între marcajele <noscript> și </noscript>, pentru a încadra un text ce va fi afișat, în situația în care navigatorul nu poate afisa JavaScript. Atributul language este opțional, dar recomandat, marcajul <script language=”JavaScript”> anuntând navigatorul că va urma un cod aferent.
Codul JavaScript poate fi plasat atât între marcajele <head> și </head>, cât și între marcajele <body> și </body>, însă este recomandată prima variantă, astfel încât funcțiile să nu fie apelate înainte ca sursele JavaScript să se încarce. Cea mai des întâlnită utilizare a JavaScript este în scriptarea paginilor Web. Programatorii Web pot îngloba în paginile HTML script-uri pentru diferite activități cum ar fi verificarea datelor introduse de utilizatori, crearea de meniuri sau a efectelor animate.
Un alt limbaj de scriptare este VBScript. VBScript (Visual Basic Scripting Edition) un limbaj de scriptare dezvoltat de Microsoft și acceptat de Web browser-ul Internet Explorer de la Microsoft. VBScript se bazează pe limbajul de programare Visual Basic, dar este mult mai simplu. În multe privințe este similar cu JavaScript. Permite autorilor de pagini Web să includă controale interactive, cum ar fi butoane și bare de scroll, în paginile lor Web.
3.3 PHP
PHP este un limbaj de programare ce rulează server, proiectat special pentru WEB. Inițial, PHP venea de la Personal Home Page, dar a fost modificat și acuma înseamnă Hypertext Preprocessor. Nu exista compilare in PHP, codul ramânea sub formă de sursă pe server fiind interpretate la fiecare cerere. PHP se execută doar pe server și nu interacționează cu userul decât sub formă de HTML sau JavaScript. Codul PHP este marcat de câteva taguri speciale. Cel mai adesea este folosit:
<?php …… COD PHP …… ?>
PHP este în principal axat pe partea de scriptare ce rulează pe server, deci se poate realiza un program pentru colectarea de date de la formulare, generarea de conținut dinamic și/sau trimitere și primire de cook-uri. Există trei domenii principale unde sunt folosite scripturile PHP:
Scripturi ce rulează pe server
Scripting la linia comandă
Scrierea de aplicații ce rulează pe partea clientului în mod graphic
Una dintre cele mai puternice și importante facilitați în PHP o reprezintă suportul său pentru o gamă largă de baze de date. Funcțiile PHP pentru acces la bazele de date nu sunt standardizate.
Variabilele în PHP se reprezintă prin intermediul unui identificator prefixat de caracter “$”. Numele variabilei este case-sensitive( variabile $PHP sunt diferite de $php). Există un tip de variabile globale care stochează diverse categorii de variabile externe ($_GET, $_POST, $_COOKIES etc).
Instrucțiunile limbajului PHP sunt cele uzuale din alte limbaje de programare. Sunt disponibile instrucțiuni de atribuire, instrucțiuni de test (if și switch), instrucțiuni repetitive (while, do, for, foreach) și instrucțiuni de control (break, continue, return).
În urma unui sondaj realizat de Netcraft, se observă că în anul 2012 numărul siteurilor web care au la bază PHP crescuse de peste 100 de ori față de anul 2002. Acest sondaj ne arată că PHP este intr-o continuă ascensiune.
3.4 MySQL
MySQL este un sistem de gestiune a bazelor de date relaționale, multiuser și multithread, care s-a impus prin fiabilitate și viteza de lucru încă de la apariția sa. Există incompatibilități între anumite limbaje și sisteme de gestiuni a bazelor de date. Astfel, PHP-ul lucrează foarte bine cu bazele de date MySQL și impreună se adaptează la toate sistemele de operare cunoscute.
Realizează cu usurință importarea diverselor baze de date și exportarea sub formă de fișiere sql. Tranzacțiile nu sunt parte a tabelelor implicite ale lui MySQL, dar sunt incluse două tipuri noi de tabele BDB și InnoDB. Modelul de securitate folosit de MySQL se bazează pe nume de utilizator, parolă, nume server sau adresa de IP și privilegii. Prin privilegii se înteleg operațiunile ce vor fi permise asupra bazei de date, tabelelor sau indecsilor.
PHP include o bibliotecă de funcții care furnizează o interfață cu sistemul MySQL de gestiune a bazelor de date. Folosind aceste funcții, un program PHP poate obține accesul la datele rezidente într-o bază de date MySQL și le poate modifica.
Caracteristicile MySQL-ului sunt:
este o platformă deosebit de stabilă
este independent de sistemul de operare pe care rulează
este gratuit in anumite condiții de licențiere
3.5Apache
Apache este un server HTTP de tip open source. Apache are un rol important în dezvoltarea webului, fiind folosit în prezent în circa 65.2 % din paginile web.
Serverul Apache este caracterizat ca fiind un software gratuit și open source, acesta făcând ca, începând din aprile 1996, el să fie cel mai popular server HTTP. Cu toate că în noiembrie 2005 a început să piardă din cota de piață, în aprilie 2008 Apache stătea încă la baza a peste 50 % din siturile web, iar în iunie 2013 a ajuns la 65.2%. Apache este folosit pentru 46,91% din totalul domeniului românesc.
Apache suportă o mare varietate de module care îi extind funcționalitatea, acestea variază de la partea de programare a serverului și până la scheme de autentificare. Câteva limbaje suportate sunt: mod_perl, mod_python, Tcl si PHP. O altă calitate 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.
Principalul competitor al serverului Apache este Microsoft Internet Information Services (IIS), urmat de Sun Java System Web Server al companiei Sun Microsystems și multe altele, cum ar fi Zeus Web Server.
3.6 jQuery
Este o librărie JavaScript, menită să simplifice managementul unui document HTML:
navigare, animații, interacții Ajax, etc. Ținta acestei librării este de a schimba modul cum Javascript interacționează, facând navigarea într-o pagină mult mai usoară și placută.
JQuery se poate folosi pentru a rezolva următoarele probleme specifice programării Web:
Parcurgerea si modificarea arborelui DOM (incluzând suport pentru selectori CSS3 și Xpath simpli).
Înregistrarea și modificarea evenimentelor din navigator.
Manipularea elementelor CSS (Cascading Style Sheets).
Efecte și animații.
Cereri tip AJAX.
3.7 CSS
CSS, prescurtarea de la Cascading Style Sheets, sunt etichete folosite pentru formatarea paginilor web (de exemplu formatare text, background sau aranjare in pagina, etc).
Beneficiile sintaxei CSS sunt:
formatarea este introdusă într-un singur loc pentru tot documentul
editarea rapidă a etichetelor
datorită introducerii într-un singur loc a etichetelor se obtine o micșorare a codului paginii
Sintaxa CSS este structurată pe trei nivele:
proprietățile etichetelor din documentul HTML
informatia introdusă in blocul HEAD
comenzile aflate în pagini separate
Legătura paginilor HTML cu fișierele externe CSS se face prin introducerea următoarei linii:
<link rel=”stylesheet” type=”text/css” href=”fisier_css.css”>
Atributele indică urmatoarele:
rel (fișierul este tip stylesheet)
type (este de tip text ce conține comenzi CSS)
href (adresa fișierului)
CSS3 reprezintă un upgrade ce aduce câteva atribute noi și ajută la dezvoltarea noilor concepte in webdesign.
Unele dintre cele mai importante segmente (module) noi adăugate acestui standard pentru formatarea elementelor HTML aduc un plus considerabil in dezvoltarea activități webdesign.
Mai jos sunt prezente in listă cele mai importante modulele adăugate in CSS3:
Selectors
Box Model
Backgrounds and Borders
Image Values and Replaced Content
Text Effects
2D/3D Transformations
Animations
Multiple Column Layout
User Interface
Deși au apărut unele deficiente de compatibilitate intre browsere, majoritatea proprietăților CSS3 au fost implementate cu succes in variantele browserelor noi.
3.8 Bootstrap
Bootstrap este un framework JavaScript, open Source, dezvoltat de echipa de la Twitter. Este o combinație de coduri HTML, CSS și JavaScript concepute pentru a ajuta la construirea componentelor pentru interfața cu utilizatorii. Bootstrap a fost, de asemenea programat să suporte atât HTML5 cât și CSS3 și ofera funcționalități mai avansate site-ul.
3.9 PHPMailer
PHPMailer este o clasă de biblioteci pentru PHP care oferă o colecție de funcții pentru a crea și a trimite e-mail-uri. PHPMailer suportă mai multe moduri de a trimite e-mail: mail (), Sendmail, qmail și direct pe servere SMTP. Pe scurt: PHPMailer este o modalitate eficientă de trimitere a e-mail-urilor în PHP.
<?php
require 'PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->setFrom('example@examplegmail.com', 'Your Name');
$mail->addAddress('example@gmail.net', 'My Friend');
$mail->Subject = 'Primul mesaj';
$mail->Body = 'Salut, acesta este primul mesaj folosind PHPMailer.';
if(!$mail->send()) {
echo Mesajul nu a fost trimis.';
echo 'Mailer error: ' . $mail->ErrorInfo;
} else {
echo Mesajul a fost trimis.';
}
3.10 phpMyAdmin
phpMyAdmin este o unealtă gratuită și Open Source, scrisă în PHP destinată să se
ocupe de administrarea MySQL prin utilizarea unui navigator web. Se pot efectua diferite sarcini, cum ar fi crearea, modificarea sau ștergerea bazei de date, a tabelelor, câmpurilor sau rândurilor, executarea de instrucțiuni SQL, sau administrarea utilizatorilor și permisiunilor.
3.11 Adobe Dreamweaver
Adobe Dreamweaver (cunoscut anterior ca Macromedia Dreamweaver) este o aplicație de dezvoltare web a companiei americane Adobe Systems, disponibilă atât pentru Microsoft Windows, cât și pentru Apple Mac OS. Versiunile recente includ suport pentru tehnologii web cum ar fi CSS, JavaScript, PHP, Cold Fusion, cât și cadre ASP.
Dreamweaver s-a bucurat de un larg succes încă de la sfârșitul anilor 1990 și momentan deține aproximativ 80 % din piața editoarelor HTML. Produsul poate fi rulat pe variate platforme software: Mac OS, Windows, dar suportă în același timp și platforme UNIX cu ajutorul unor emulatoare software cum ar fi Wine.
Ca orice alt editor WYSIWYG( “what you see is what you get” ), Dreamweaver face posibilă crearea cu ușurință a paginilor HTML și de către utilizatorii neexperimentați prin ascunderea detaliilor de implementare a paginilor.
Dreamweaver permite folosirea majorității browserelor instalate pe calculatorul utilizatorului, pentru a previzualiza site-ul web creat. De asemenea inglobează și câteva utilitare pentru administrarea site-urilor, cum ar fi cele pentru a găsi și modifica o linie de cod sau un paragraf, în întregul site, pe baza oricăror parametri specificați de către utilizator. Se poate crea cod JavaSript fără a avea cunoștințe de programare cu ajutorul panourilor de stare.
Odată cu apariția versiunii MX, Macromedia a încorporat utilitare de generare dinamică a conținutului. De asemenea este oferit suport pentru conectarea la baze de date (cum ar fi cele de tip MySQL și Microsoft Access) pentru a filtra și afișa conținutul folosind scripturi de genul PHP, ColdFusion, Active Server Pages (ASP) și ASP.NET, fără a avea nevoie de o prealabilă experiență în programare.
Un aspect foarte lăudat al Dreamweaver-ului îl reprezintă arhitectura sa extensibilă. Extensiile sunt mici programe pe care care oricine le poate descărca și instala. Acestea pot fi scrise de orice dezvoltator (de obicei în HTML și JavaScript), aducând un spor de performanță și funcționalitate, îmbunătățind astfel programului. Aceste extensii sunt produse de o comunitate de dezvoltatori si publicate (atât comercial cât si gratuit) pentru proleme de dezvoltare web.
3.12 XAMP
XAMPP este un pachet de programe free software, open source și cross-platform web server, care constă în Apache HTTP Server, MySQL database și interpretoare pentru scripturile scrise în limbajele de programare PHP și Perl. XAMPP este disponibil pentru Microsoft Windows, Linux, Solaris, și Mac OS X, și este utilizat în principal pentru dezvoltarea proiectelor web. Acest software este util pentru crearea paginilor dinamice, utilizând limbaje de programare ca PHP, JSP, Servlets.
XAMPP a fost creat însă pentru a pune la dispoziția dezvoltatorilor un instrument eficient de testare a diferitelor aplicatii in dezvltare. Odată instalat pe calculatorul propriu, pachetul de aplicații va face ca acesta să aibă comportamentul unui server, permițând testarea aplicațiilor scrise fără a intra în conflict cu firma care va găzdui în final produsul software realizat.
XAMPP deasemeni asigură suport pentru crearea și manipularea bazelor de date în MySQL și SQLite între utilizatori.
Fig 3.1 XAMPP Control Panel Application
După lansarea în execuție a acestei aplicații se vor apăsa butoanele “Start” din dreptul celor două aplicații esențiale testării saiturilor : Apache si MySQL.
Fig 3.2 Directorul xampplite
Pentru oprirea aplicațiilor se va selecta xampp_stop.
Verificarea funcționării aplicațiilor necesare pentru testarea saiturilor se poate realiza tastând în browser adresa aplicației web integrate în XAMPP și destinate administrării serverului de baze de date MySQL: http://localhost/phpmyadmin/.
4. Proiectarea bazei de date
Noțiuni generale
O bază de date, uneori numită „bancă de date”, reprezintă o modalitate de stocare a unor informații și date pe un suport extern (un dispozitiv de stocare), având posibilitatea extinderii ușoare și a regăsirii rapide a acestora.
Termenul de bază de date apare în 1967 și reprezintă o colecție de informații corelate despre subiectul studiat, relațiile logice dintre acestea și tehnicile de prelucrare corespunzătoare (sortare, ștergere, adăugare, inserare, modificare).
Orice bază de date are următoarele proprietăți implicite:
Baza de date este o colecție logică coerentă de date, ce are cel puțin un înteles.
Baza de date este destinată, construită și populată de date despre un domeniu bine precizat.
Viteză mare de regăsire și actualizare a informațiilor.
Compactă, volumul ocupat de sistemele de baze de date, fiind mult mai redus decât documentele scrise.
Redundanță scăzută a datelor memorate, care se obține prin partajarea datelor între mai mulți utilizatori și aplicații.
Menținerea integrității datelor prin politica de securitate (drepturi de acces diferite, în funcție de rolul utilizatorului), prin gestionarea tranzacțiilor și prin refacerea datelor în caz de funcționare defectuoasă a diferitelor componente.
Sistemul de gestiune a bazelor de date
Sistemul de gestiune a bazelor de date, prescurtat S.G.B.D. reprezintă sistemul de programe care permite construirea bazelor de date, introducerea de înregistrări în bazele de date și dezvoltarea de aplicații privind bazele de date, permitând astfel accesul utilizatorului la date printr-un limbaj de nivel înalt, apropiat de modul obișnuit de operare (o interfață între utilizator și sistemul de operare).
Entități, legături între entități
Un model conceptual cuprinde descrierea tuturor entităților unei baze de date
împreună cu toate legăturile existente între ele. O entitate este un conținut de sine stătător, o realitate obiectivă care există prin ea însăși. Orice entitate este caracterizată prin proprietățile sale și reprezentată prin tipuri de entități. Un tip de entitate este o reprezentare în cadrul unui model de date, care corespunde unei categorii de obiecte din lumea reală.
Relații între entități
Se numește relație între entitățile E1, E2, … , Ek orice submulțime a produsului
cartezian al mulțimilor elementelor celor k entități, adică mulțimi de elemente de forma (e1, e2, … , ek), unde e1 este element din E1, e2 din E2, etc. O asemenea relație se notează REL(E1, E2, … , Ek), unde REL este numele asociat relației. In majoritatea cazurilor k=2, deci majoritatea relațiilor sunt binare.
În cazul relațiilor binare, în funcție de câte elemente corespund fiecărui element dintr-o entitate în cealaltă entitate, se poate face următoarea clasificare:
Relație unu-la-unu (1:1), reprezintă cel mai simplu tip de relație dintre înregistrările (rândurile) unor tabele corespondente. Astfel, unei înregistrări dintr-o tabelă îi va corespunde doar o singură înregistrare din tabela corespondentă (relație de tip soț-soție).
Relație unul-la-mai-mulți (1:N), leagă o înregistrare dintr-un tabel de bază cu mai multe înregistrări dintr-un alt tabel corespondent prin intermediul unui câmp cheie. Câmpul cheie din tabelul de bază se mai numește și cheie primară, iar câmpul cheie corespondent din cealaltă tabelă reprezintă cheie străină (externă). Relatiile unu-la-mai-mulți sunt cel mai întâlnit tip de relații. (relație de tip tata-fiu).
Relație mai-mulți-la-mai-mulți (M:N), reprezinta un tip de relații complexe care nu sunt implementate în mod direct în sistemele de gestiune a bazelor de date relaționale. În etapa de analiză a unei activități putem desprinde și cazuri în care unei înregistrări (rând) dintr-o tabelă îi pot corespunde mai multe înregistrări dintr-o altă tabelă, în același timp însă, unei înregistrări din cea de-a doua tabelă îi pot corespunde mai multe înregistrări din prima tabelă. Adică fiecărui element al primei entităti îi corespunde unul sau mai multe elemente din a doua entitate și viceversa (relație de tip prieten-prieten).
Modelul conceptual al datelor (M.C.D)
Modelul conceptual utilizează o abstractizare prin relație, recunoscută de
ISO (Organizația Națională de Standardizare) ca fiind o apropiere de modelul ENTITATE-RELAȚIE. Modelul conceptual al datelor reprezintă o structură generală logică a bazei de date, structură care este independentă de software-ul utilizat sau de structura de stocare a datelor.
Un model conceptual al datelor presupune:
Reprezentarea organizării datelor într-un format grafic care poartă denumirea de diagrama entitate-asociere.
Verificarea validității modelării datelor.
Generarea unui model fizic al datelor care specifică modul de implementare a bazei de date.
5. Implementarea și utilizarea aplicației
5.1 Crearea bazei de date a aplicației
5.1.1 Crearea unei baze de date folosind XAMPP
Baza de date a fost realizată cu aplicația XAMPP folosind phpMyAdmin.
Pentru deschiderea aplicației phpMyAdmin se pornește XAMPP și se tastează în caseta de text pentru adrese a oricărui browser (Google Chrome, Opera, Internet Explorer, etc) adresa http://localhost/phpmyadmin/.
Fig 5.1.1
În fereastra afișată se va tasta numele noii baze de date (rent_car) și se va apăsa butonul Creeză:
Fig 5.1.2
phpMyAdmin va crea comanda SQL de creare a unei baze de date și o va trimite serverului MySQL.
Fig 5.1.3
Odată creată, baza de date rent_car va fi bază de date curentă. Comenzile ulteriore, de exemplu cele prin care se vor crea tabelele (fișierele) acesteia, se vor adresa acesteia.
La următoarele porniri ale aplicației phpMyAdmin intrarea în baza de date rent_car se va realiza prin selectarea acesteia în maniul afișat în panoul din stânga al aplicației.
Fig 5.1.4
5.1.2 Crearea unui tabele a bazei de date
Crearea tabelei users
Tabelul users va conține datele de identificare a utilizatorilor autorizați să opereze în baza de date. Acest tabel este prezent în toate bazele de date accesibile prin Internet. Crearea unui tabel se realizează concomitent cu definirea structurii sale.
Fig 5.1.5
Tabelul users are 6 câmpuri (engl. fields).
În vederea creării comenzii create table, phpMyAdmin va cere introducerea numelui și tipului fiecăruia dintre câmpurile tabelului.
Fig 5.1.6
Câmpurile tabelului users sunt id_user (INT – valoare întreagă), nume (VARCHAR lungime maximă 150 caractere), prenume (VARCHAR – lungime maximă 150 caractere), username(VARCHAR – lungime maximă de 150 caractere), email (VARCHAR – lungime maximă de 150 de caractere ), parola (VARCHAR – lungime maximă 150 caractere). Tipul VARCHAR se folosește pentru siruri de caractere de lungime variabilă. Pentru câmpul id_user s-a mai precizat că este PRIMARY și s-a selectat caseta AUTO_INCREMENT.
Prima caracteristică, PRIMARY indică faptul că id_user este cheie primară. Cheia primară a unui tabel din baza de date are valori distincte pentru toate articolele din tabel și are rolul de identificator unic al acestora. Dacă ulterior se va dori suprimarea unui articol se va putea selecta articolul indicându-i cheia primară.
Proprietatea AUTO_INCREMENT indică modul de formare a valorilor câmpului id_user. Valoarea acestuia pentru un nou articol care urmează să fie adăugat se calculează automat, prin incrementarea valorii corespunzătoare ultimului articol present în tabel.
Crearea tabelului se realizează prin apăsarea butonului .
5.2 Interfața cu utilizatorul
Interfața este una simplă, intuitivă, ușor de navigat, făcând astfel ca timpul utilizatorului, indiferent de gradul acestuia de cunoaștere să fie unul plăcut. Interfața arată similar, indiferent dacă este navigată de un utilizator simplu sau de unul cu rang de administrator, singura diferență fiind zona de admin, unde numai cel din urmă tip de utilizator are acces. Aceasta implică funcționalități care permit o bună gestionare a informațiilor pe website, având ca scop informarea clienților cu cele mai noi apariții și oferte, dar și pentru a le oferi o interfață cât mai ușor de utilizat. Funcționalitațile de baza sunt: crearea, ștergerea, modificarea sau vizualizarea entităților, facând astfel site-ul în întregime dinamic.
Fig 5.2.1
Fiecare pagină este formată dintr-un div mare care cuprinde toate div-urile în care sunt încadrate toate elementele aplicației.
Background-ul este setat în CSS prin comanda:
slider {
min-height: 500px;
background-image: url(../img/bnr-bg1.jpg);
background-repeat: no-repeat;
background-attachment: fixed;
background-size: cover;
background-position: 50% 0%;
În cadrul primei pagini a aplicației (Fig 5.2.1) am ales să împart pagina în 3 mari secțiuni, și anume: Header, Mijloc(conținut) și Footer.
Prima secțiune conține (Fig 5.2.2) Logo-ul firmei alături de motto-ul ei aflată în partea de stănga sus al ecranului. În partea de jos al header-ului se regăsește un meniu cu 5 pagini, utilizatorul va vedea doar 4 dintre acestea deoarece ultima pagină este destinată și vizibilă doar administratorului site-ului, deoarece aceasta are ca scop delogarea de pe contul de administrator.
Fig 5.2.2
Cea de-a doua secțiune (Fig 5.2.3) conține un formular de căutare care va ajuta utilizatorul să găsească mai repede ceea ce are nevoie, ușurându-i astfel munca. Acesta conține 4 criterii de selecție în funcție de clasă, carburant, cutie de viteze si numărul de pasageri.
Fig 5.2.3
A treia secțiune (Fig 5.2.4) este împărțită la rândul ei în 4 categorii, însă doar 3 sunt vizibile utilizatorului. Acestea sunt:
Contact – adresa sediului și numerele de telefon
Linkuri si butoane Social-media – linkuri catre celelalte pagini ale siteului. Butoanele Social-media ofera posibilitatea utilizatorilor de a urmări firma și pe rețele de socializare precum Facebook, Twitter si Google+
Mașini adăugate recent – aici sunt afișate ultimele trei mașini adăugate pe site.
Fig 5.2.4
Pagina Flota auto (Fig 5.2.5) prezintă câteva detalii ale fiecărei mașini în parte, cum ar fi clasa, carburantul, tipul cutiei de viteze, numărul de locuri și prețul/zi.
Fig 5.2.5
Datele au fost preluate din baza de date urmând exemplul de mai jos, cu ajutorul limbajului PHP.
$select_query = mysqli_query($con, " SELECT * FROM `cars` order by `id_car` asc ");
while($result_line = mysqli_fetch_array($select_query)) {
$id_car = $result_line['id_car'];
$car_poza = $result_line['car_poza'];
$car_marca = $result_line['car_marca'];
$car_model = $result_line['car_model'];
$car_combustibil = $result_line['car_combustibil'];
$car_clasa = $result_line['car_clasa'];
$car_cutie_viteze = $result_line['car_cutie_viteze'];
$car_locuri = $result_line['car_locuri'];
$car_pret = $result_line['car_pret'];
Pentru a vedea mai multe opțiuni și poze ale fiecărui vehicol în parte se selecteaza butonul Rezerva.
Fig 5.2.6
Pentru vizualizare imaginilor s-a folosit o funcție JavaScript. La fiecare trecere a mousului peste pozele în miniature se schimba poza principal.
<script type="text/javascript">
$('document').ready(function(){
$('#car_img_1').mouseover(function(){
$('#car_img_primary').attr("src","");
var src_img_1 = $('#car_img_1').attr("src");
$('#car_img_primary').attr("src",src_img_1);
});
$('#car_img_2').mouseover(function(){
$('#car_img_primary').attr("src","");
var src_img_2 = $('#car_img_2').attr("src");
$('#car_img_primary').attr("src",src_img_2);
});
$('#car_img_3').mouseover(function(){
$('#car_img_primary').attr("src","");
var src_img_3 = $('#car_img_3').attr("src");
$('#car_img_primary').attr("src",src_img_3);
});
})
</script>
Pentru selectarea datei de închiriere s-a folosit o funcție JavaScript cu o constrângere ca data de sfârșit să fie obligatoriu mai mare ca data de început.
<script type="text/javascript">
$('document').ready(function(){
$('#rent_date_end').datepicker({
format: 'yyyy-mm-dd'
}).on('changeDate', function(en){
if($('#rent_date_end').val() != '') {
if($('#rent_date_end').val() < $('#rent_date_start').val()) {
$('#rent_date_start').val('');
$('#reservse_car2').prop('disabled',true);
} else {
$('#reservse_car2').prop('disabled',false);
}
}
});
$('#rent_date_start').datepicker({
format: 'yyyy-mm-dd'
}).on('changeDate', function(en){
if($('#rent_date_end').val() != '') {
if($('#rent_date_end').val() < $('#rent_date_start').val()) {
$('#rent_date_start').val('');
$('#reservse_car2').prop('disabled',true);
} else {
$('#reservse_car2').prop('disabled',false);
}
}
});
})
</script>
Siteul nu necesită crearea unui cont pentru a face o rezervare. Rezervarea se face doar prin completarea unui formular. După completarea tuturor câmpurilor și trimiterea rezervării, utilizatorului îi va apărea un mesaj prin care i se confirmă solicitarea rezervării (Fig 5.2.7), urmând ca mai apoi clientul să fie contactat de o persoana desemnată din cadrul firmei pentru a discuta pe seama contractului de închiriere. Pentru trimiterea cererei de rezervare am folosit clasa de biblioteci PHPMailer.
Fig 5.2.7
O altă pagină care este accesibilă utilizatorilor este Termeni și condiții. În această pagină se regăsesc detalii despre tot ceea ce trebuie sa aibă în vedere clienții care dorește să închirieze un autovehicul.
Fig 5.2.8
Ultima pagină din cadrul interfeței cu utilizatorul este pagina Contact (Fig 5.2.9). În cadrul acestei pagini utilizatorul se poate adresa administratorului fără a fi nevoit să facă o închiriere. Toate câmpurile sunt obligatorii pentru a se asigura o comunicare cât mai bună între administrator și posibilul client. Codul pentru aceste restricții este urmatorul:
<script type="text/javascript">
$(document).ready(function(){
var session_success = "<?php echo $session_success; ?>";
if(session_success != '')
alert(session_success);
var check_form = "";
$('#send_contact').click(function(){
check_form = true;
if($('#name').val() == '') {
check_form = false;
alert('Toate rubricile sunt obligatorii!');
$('#name').focus();
}
if($('#email').val() == '' && check_form) {
check_form = false;
alert('Toate rubricile sunt obligatorii!');
$('#email').focus();
}
if($('#phone').val() == '' && check_form) {
check_form = false;
alert('Toate rubricile sunt obligatorii!');
$('#phone').focus();
}
if($('#message').val() == '' && check_form) {
check_form = false;
alert('Toate rubricile sunt obligatorii!');
$('#message').focus();
}
if(check_form) $('#contactform').submit();
})
})
</script>
Fig 5.2.9
5.3 Prezentarea panoului de administrator
În continuarea acestui capitol, vom prezenta și cea de-a doua parte, și anume partea administratorului. Singurul care are nevoie de un cont este administratorul. Contul accestuia se creează direct in baza de date. Pentru accesarea pagina de Admin se tastează în caseta de text pentru adrese a oricărui browser (Google Chrome, Opera, Internet Explorer, etc) adresa http://localhost/rent_car2/admin.php/.
Fig 5.3.1
Administratorul, în cadrul aplicației are dreptul să introducă, să șteargă sau să modifice conținutul din cadrul aplicației. Odată ce s-a logat cu un cont valid de administrator, îi va apărea în Header opțiunea de Logout, iar în Footer îi va apărea o nouă coloană numită Admin zone care conține două linkuri către paginile de administrare atât a mașinilor cât și a închirierilor.
Fig 5.3.2
MCD, MLD, MFD
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: În cadrul acestui proiect de licență au fost stabilite următoarele obiective: [303429] (ID: 303429)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
