Dezvoltarea Unei Pagini Web Pentru Prezentarea Unui Hotel
Cuprins
Introducere 1
Enunțul temei 1
Contextul proiectului 1
Motivația 1
Descriere generală 2
STUDIU BIBLIOGRAFIC 1
Comerțul electronic 1
Beneficiile E-commerce (comerțul electronic) 2
Avantajele 4
Probleme 4
Modele de afaceri 4
Magazin electronic (e-shop) 4
Alte realizări (Proiecte similare) 5
ANALIZĂ ȘI FUNDAMENTARE TEORETICĂ 1
Introducere 1
Pagini web 1
Browsere Web 1
HTML 1
CSS 1
JavaScript 2
Introducere în PHP 2
Noțiuni Fundamentale 3
Tipuri de date 4
Variabile 4
Noțiuni de bază 4
Variabile predefinite 4
PHP Superglobals 4
Folosirea variabilelor statice 5
Variabile din afara mediului PHP 6
Cookie-uri HTTP 6
Baze de date 6
Structura unei baze de date 6
MySQL 7
Introducere în MySQL 7
Caracteristicile de bază ale MySQL 7
Tipuri de coloane 7
Comenzi și funcții 7
Conectivitate 7
Tiny MCE 8
XAMPP 8
PROIECTARE DE DETALIU ȘI IMPLEMENTARE 1
Tehnici de interacțiune 1
Butoane virtuale 1
Meniuri virtuale 1
Cazuri de utilizare 2
Diagrama cazurilor de utilizare (engl. Use Case Diagram) 2
Apăsare buton virtual 2
Obiective Proiectarea și programarea în PHP a rezervării online 2
Structura paginii web și baza de date 3
Secțiunea de prezentare 3
Secțiunea de rezervare 3
Secțiunea de administrare 3
Baza de date 4
Funcționarea 9
Structurarea site-ului 14
Vizitarea paginilor 14
Efectuarea rezervări 17
Pagini de administrare 19
TESTARE ȘI VALIDARE 29
CONCLUZII 32
Introducere
Enunțul temei
Scopul acestui proiect de licență este dezvoltarea unei pagini web, site dedicat pentru prezentarea unui hotel si unde va fi posibil si un sistem de rezervare online pentru vizitatorii site-ului.
Posibilitatea de a face rezervări online pentru aproape orice călătorie, a revoluționat intreaga industrie a turismului. Mulțumită siteurilor de turism, se poate planifica o vacanță completă online cu doar cateva apăsări de mouse nemaifiind necesare ajutorul agențiilor și agenților de turism.
Mulți utilizatori au descoperit că pot găsi rezervări, cazare si informații complete mult mai bune și în același timp, au posibilitatea de a economi bani.
Acest site poate prelua toate rezervările unui utilizator, furnizând informații detaliate despre camere și chiar despre zonele din apropierea hotelului pe care se poate vizita.
Contextul proiectului
Din momentul în care intervine Internetul cu marile avantaje pe care acesta le aduce (email, comerț electronic și tranzacții electronice, piața Internet, distribuția de ‘conținut’) prin cuprinderea în sfera informației electronice a unui număr cât mai mare de cetățeni se trece la societatea informațională.
E-turismul descrie digitalizarea proceselor și lanțurilor de valori pentru optimizarea eficienței lor. Pentru a realiza acest lucru, CTI sunt puse în aplicare pentru dezintermedierea pieței turismului. În contrast cu aceasta, turismul virtual este un termen pentru realitate virtuală ce sprijină concediile.
E-turismul descrie digitalizarea proceselor și lanțurilor de valori pentru optimizarea eficienței lor. Pentru a realiza acest lucru, CTI sunt puse în aplicare pentru dezintermedierea pieței turismului. În contrast cu aceasta, turismul virtual este un termen pentru realitate virtuală ce sprijină concediile.
În ultimii ani dezvoltarea a mai multor site-uri pentru prezentarea unui hotel și pentru rezervarea unei camere online a oferit posibilitatea celor cu buget mai mic să concureze acum cu cei cu bugeturi mari. Multe dintre propietari a hotelurilor consideră Internet-ul locul potrivit pentru a oferi clienților lor anumite servicii de nerefuzabile.
Motivația
Odată cu dezvoltarea tehnologiilor informației și a comerțului electronic, rezervărea electronică (online booking) s-a dovedit a fi una dintre cele mai populare modalități de facilitare a accesului la bunuri și servicii, prin intermediul internet-ului .
Utilizate cel mai mult în domeniul hotelier, al transporturilor aeriene și pentru serviciile de rent-a-car, serviciile de rezervări electronice se conformează exigențelor legale care își au izvorul în actele normative ce fac referire la serviciile de internet, în și la cele de comerț electronic și încheierea contractelor la distanță, în particular. Ar trebui să fie o chestiune de rutină pentru navigatori și, în același timp, consumatori de servicii online de a trimite ordine electronice către agențiile turistice prezente în spațiul virtual, ordine pentru anumite bunuri sau servicii.
Au fost proiectate, în acest scop, aplicații client/server și tot mai multe companii, implicit cele din domeniul serviciilor turistice, au trecut la operarea pe Web a afacerilor datorită acestui format electronic, întrucât nu este foarte dificil să scrii un mesaj text și să plasezi informația într-o bază de date.
De altfel, una dintre oportunități este aceea de a putea primi ordine prin e-mail.
În cazul în care vizitatorul unui portal de turism găsește o ofertă satisfăcătoare, acesta poate face rezervarea directă prin completarea unui formular cu datele de contact, formular ce este trimis agenției ofertante, evitând astfel deplasarea la locul unde, în mod abișnuit, poate fi prestat serviciul pentru care manifestă interes.
Printre avantajele rezervărilor electronice se numără disponibilitatea online a serviciului 24 din 24 de ore, timp economisit, confirmarea este trimisă imediat (în cazul în care se folosește un sistem automat de rezervări, existând cazuri când confirmarea depinde, totuși, de un agent de rezervări uman), flexibilitatea în ceea ce privește modificarea detaliilor rezervări.
Printre dezavantajele rezervărilor electronice se numără eroarea umană și criminalitatea informatică datorită vulnerabilităților în sistemele de rezervare.
Descriere generală
Lucrarea este structurată pe șase capitole, în care se vor prezenta atât noțiuni teoretice cât și modul de proiectare , implementare și testare a unui site dedicat pentru prezentarea unui hotel care va avea si un sistem de rezervare online.
Astfel în acest capitol s-a prezentat un context general, obiectivele și specificațiile proiectului.
În capitolul doi, Studiu bibliografic, se va face un scurt istoric al e-comertului și o descriere a unui site indentic pentru rezervare online.
Capitolul cu numărul trei, Tehnologii utilizate pentru implementare, va prezenta tehnologiile HTML ,CSS, baze de date și aplicații client-server.
Următorul capitol, cu numărul patru, Proiectarea și implementarea sistemului de monitorizare va fi structurat în două părți. În prima parte se va face o prezentare a programării aplicației în Android , iar în a doua parte se va face descrierea sistemului de monitorizare.
Capitolul cinci reprezintă ,Testarea sistemului de monitorizare, unde se va verifica funcționalitatea sistemului.
Lucrarea se incheie cu concluziile, care reprezintă capitolul 6, în care se face o prezentare a tot ce s-a realizat, precum și obiectivele de viitor.
STUDIU BIBLIOGRAFIC
Comerțul electronic
În ultimele ani dezvoltarea fără precedent a tehnologiilor informaționale determinate de necesitatea stocării și a transmiterii rapide a informațiilor cu costuri cât mai mici, a revoluționat comerțul global.
Comerțul electronic constă în derularea unei afaceri, ca activitate generatoare de valoare, având ca suport rețeaua Internet și utilizarea unor pachete de programe software specifice.
O altă definiție dată comerțului electronic este următoarea: comerțul electronic (e-commerce, pe scurt E-C) este acea manieră de a conduce activitățile de comerț care folosește echipamente electronice pentru a mări aria de acoperire (locul în care se află potențialii clienți) și viteza cu care este livrată informația.
Comerțul electronic poate fi considerat un schimb electronic de informații între o afacere și clienții săi. Aceasta se poate face prin fax, telefon, voice-mail, email, extranet sau Internet, pentru a enumera doar câteva dintre mijloace.
Partea Electronic Business (E-Business), comerțul electronic a fost proiectat în mod special pentru a realiza schimbul de informații între clienți și furnizori.
În era informațională, cheia competitivității întreprinderilor o constituie comerțul electronic, acesta asigurând:
-acces la noi segmente de piață sau la noi clienți;
-crește viteza de derulare a afacerilor;
-oferă o flexibilitate ridicată a politicilor comerciale;
-reduce costurile cu aprovizionarea , cu desfacerea, cu publicitatea;
-asigură simplificarea procedurilor.
Comerțul electronic poate lua o multitudine de forme, influențând profund activitatea de afaceri. Aplicațiile potențiale care sunt vizate de comerțul electronic sunt următoarele:
-oferirea de produse și servicii precum și efectuarea de servicii cum ar fi comanda de cărți sau abonamente la publicațiile on-line;
-regăsirea și schimbul de informație cum ar fi: detalii legate de produse și servicii, cataloage, instrucțiuni de folosire și briefinguri financiare;
-creșterea eficienței activității de afaceri prin: promovarea utilizării poștei electronice și furnizarea de acces la bazele de date ;
-realizarea de tranzacții financiare cum ar fi: telebanking și digicash.
Prin eliminarea barierelor geografice dintre furnizori și clienți, comerțul electronic oferă posibilitatea comercializării de produse în întreaga lume sporind astfel numărul potențialilor clienți.
În ultimii ani dezvoltarea Internet-ului a oferit posibilitatea ca oamenii de afaceri să-și extindă domeniul de activitate pătrunzând pe noi piețe și să-și prezinte paginile Web indiferent de dimensiunea sau amplasarea geografică a firmei. Acest lucru a permis întreprinderilor mici și mijlocii să concureze acum giganții industriei. Multe dintre firme consideră Internet-ul locul potrivit pentru a oferi clienților lor anumite servicii însă tot mai multe dintre paginile de Internet urmăresc să evolueze de la obiectivele de marketing la vânzarea directă.
În forma lui simplă, comerțul electronic necesită prezența într-o rețea de bază, promovarea firmei, furnizarea de servicii premergătoare vânzării și servicii post-vânzare, condiții minime care pot fi asigurate fără dificultate și cu costuri reduse.
Utilizarea Internet-ului are ca efect reducerea duratei de vânzare a unui produs, scăderea costurilor de comunicare, permite livrarea datelor în formă digitală, scade costurile de transport și distribuție și permite formarea unor parteneriate integrate și puternice.
Evoluția comerțului electronic are un impact major asupra economiei existând premisele creării de noi întreprinderi, diversificarea celor existente și, în special, asupra potențialului pieței forței de muncă și a gradului de ocupare a acesteia în viitor.
Industria comerțului electronic face distincție între tranzacțiile Business-to-Business (B-2-B sau BTB) și tranzacțiile Business-to-Consumer (B-2-C sau BTC):
-Business-to-Consumer se referă la relațiile dintre comerciant și consumatorul final, fiind considerat comerț electronic cu amănuntul;
-Business-to-Business cuprinde toate tranzacțiile ce se efectuează între doi sau mai mulți parteneri de afaceri. Acest tip de tranzacții se bazează, de regulă, pe sisteme extranet adică partenerii de afacerii acționează pe Internet prin utilizarea de nume și parole pentru paginile Web proprii.
O noua opțiune în cadrul comerțului electronic este tranzacția Business-to-Employee (B-2-E) care se referă la tranzacțiile din interiorul unei firme, destinate personalului angajat al firmei și efectuate prin sistemul intranet propriu.
Totuși se observă că în ultimii ani comerțul electronic a cunoscut o dinamică ascendentă datorită creării unui mediu favorabil promovării și utilizării comerțului electronic prin sensibilizarea și conștientizarea întreprinzătorilor.
Beneficiile E-commerce (comerțul electronic)
este convenabil, siturile fiind operaționale 24 ore pe zi, 7 zile pe săptămână;
costuri interne mici, comerțul electronic eliminând interacțiunea dintre cumpărător și intermediarii tranzacției;
costuri scăzute de procesareupare a acesteia în viitor.
Industria comerțului electronic face distincție între tranzacțiile Business-to-Business (B-2-B sau BTB) și tranzacțiile Business-to-Consumer (B-2-C sau BTC):
-Business-to-Consumer se referă la relațiile dintre comerciant și consumatorul final, fiind considerat comerț electronic cu amănuntul;
-Business-to-Business cuprinde toate tranzacțiile ce se efectuează între doi sau mai mulți parteneri de afaceri. Acest tip de tranzacții se bazează, de regulă, pe sisteme extranet adică partenerii de afacerii acționează pe Internet prin utilizarea de nume și parole pentru paginile Web proprii.
O noua opțiune în cadrul comerțului electronic este tranzacția Business-to-Employee (B-2-E) care se referă la tranzacțiile din interiorul unei firme, destinate personalului angajat al firmei și efectuate prin sistemul intranet propriu.
Totuși se observă că în ultimii ani comerțul electronic a cunoscut o dinamică ascendentă datorită creării unui mediu favorabil promovării și utilizării comerțului electronic prin sensibilizarea și conștientizarea întreprinzătorilor.
Beneficiile E-commerce (comerțul electronic)
este convenabil, siturile fiind operaționale 24 ore pe zi, 7 zile pe săptămână;
costuri interne mici, comerțul electronic eliminând interacțiunea dintre cumpărător și intermediarii tranzacției;
costuri scăzute de procesare a tranzacțiilor, metoda de plată electronică fiind mai puțin costisitoare decât modul de plată prin monetar;
creștere substanțială a vitezei procesului de vânzare. Companiile de e-commerce recepționează veniturile mai rapid decât în sistemul tradițional;
reducerea erorilor, procesarea automată producând mai puține erori decât procesul de vânzare tradițional;
spațiul nelimitat – siturile de e-commerce putând afișa/indexa un număr nelimitat de bunuri și servicii;
prezența globală crescută, compania putând fi accesată (teoretic) de posibilii clienți din orice colț al lumii;
disponibilitatea informațiilor despre clienți, existând astfel posibilitatea de a studia preferințele unui client individual sau ale unui grup specific de clienți, de a modela afacerea după dorințele clientului sau de a schimba rapoarte analitice privind clientela
cea mai bună interacțiune cu clientul.
Deci, comerțul electronic este o categorie de e-business. Există posibilitatea comercializării de servicii, de exemplu e-turism (www.bizravel.com, www.opentravel.org), e-leasing, e-consulting.
Figura 2.1 dfsdf
Avantajele
Promovarea produsului – se poate realiza printr-un contact direct și interactiv cu clienții, primul avantaj fiind posibilitatea de a oferi informații recente și ample despre produs. Totuși, nu despre toate (parfumuri, etc.)
Noi canale de vânzare – produsele existente pot fi livrate pe o arie largă fără a mai fi nevoie de întreținut un magazin cu existentă fizică. Mai mult, limitele geografice dispar în toate zonele unde există Internet, o afacere poate fi desfășurată în toată lumea la un singur centru de comandă dotat cu mijloace computerizate.
Economii la vânzarea/cumpărarea produsului – generate de suprimarea costului deplasării până la vânzător, eliminarea cheltuielilor necesare pentru a întreține un magazin clasic, reducerea timpului afectat tranzacției, etc.
Timpul redus de acces la produs – este un avantaj pentru servicii cu un ciclu de viață scurt (știrile).
Service mai bun pentru clienți- consultanța poate fi disponibilă non-stop, relațiile interumane fiind mai strânse;
Marca și imaginea corporației pot fi mai ușor modelate – acestea sunt importante mai ales când clienții folosesc tehnologii avansate (b2b);
Adaptarea la shimbări poate fi mai rapid și mai facil efectuată atunci când firma este deja la curent și utilizează cele mai noi tehnologii ale comerțului electronic;
Îmbunătățirea relațiilor cu clienții – fiecare client trebuie sa se simtă apreciat, remarcat dezvoltându-se relații 1-la-1;
Dezvoltarea de noi produse se poate realiza în concordanță cu cerințele consumatorului – clienții pot afecta direct designul unui nou produs, vizualizându-l cu ajutorul computerului. Monitorizând atitudinile clienților, firma poate obține informații prețioase despre proiectarea noilor produse sau îmbunătățirea celor vechi;
Noi modele de afaceri – pot fi considerate vânzarea de informații pentru experții în finanțe ori alte domenii.
Probleme
asistență – gradul de informații referitoare la un produs poate fi insuficient;
fiabilitate și credibilitate – punctul cheie este ca multitudinea de date pe web, pe care le poate oricine accesa, să se transforme în informații ce vor deveni ulterior cunoaștere. Din cauza timpului scurt de existență sau a dinamicității ridicate, datele se învechesc foarte rapid, lipsind mecanismele necesare unei analize de termen lung.
Modele de afaceri
Magazin electronic (e-shop)
Minimal, un e-shop conține un catalog de produse sau servicii cu descrieri tehnice și comerciale pentru fiecare poziție din catalog, gestionate de un sistem de gestiune a bazelor de date care se va ocupa cu stocarea și manipularea datelor și oferirea posibilităților de acces la informațiile dorite de client. Varianta medie a unui e-shop oferă posibilități pentru preluarea comenzilor (prin poșta electronică sau prin formulare interactive completate direct de pe situl web al vânzătorului), iar varianta extinsă adaugă posibilitatea efectuării on-line a plății prin diverse mijloace de plată plus diferite alte activități. În ansamblu, funcțiile unui sit web de comerț electronic includ prezența unui catalog on-line, o metodă pentru procesarea plăților electronice, realizarea facturării, transportului, promovarea și realizarea altor servicii pentru client.
Magazin electronic universal (e-mall) reprezintă o colecție de magazine electronice reunite într-un site. Acceptă de obicei aceleași metode de plată și oferă anumite facilități.
Aprovizionarea electronică (e-procurement) – pentru procurarea bunurilor și serviciilor, marile companii și autorități publice organizează licitații. Prin publicarea pe web a specificațiilor ofertei, scad atât timpul, cât și costul de transmisie, mărindu-se numărul de firme ce pot lua parte la licitație. Astfel, crește concurenta și scade prețul
Piața unui terț (third part marketplace) – se apelează la un site web pentru a avea acces la catalogul de produse al unei companii. Acest site aparține unui terț (un furnizor de servicii Internet, un furnizor de aplicații sau o bancă). Avantajul este că intersecția cu posibilii clienți este unică pentru mai mulți producători.
Comunități virtuale – (virtual comunities). Fiecare membru poate oferi spre vânzare produse sau servicii sau poate adresa cereri de cumpărare a unor produse/servicii. Calitatea de membru a unei comunități virtuale presupune plata unei taxe sau să fie compusă din clienți fideli ai unui produs sau grup de produse.
Furnizori de servicii cu valoare adăugată pentru canalele de comerț electronic (value chain service provider) furnizorii de astfel de servicii sunt specializați pe funcții specifice, precum asigurarea logisticii, rezolvarea tranzacțiilor financiare sau expertiză în managementul producției și al stocurilor. Plata acestor servicii se realizează pe baza unor tarife sau cote procentuale.
Platforme de colaborare (collaborative environments) cuprind un set de instrumente software și un mediu informațional pentru colaborarea între companii (via extranet), ce pot îndeplini funcția de proiectare sau concepție în colaborare. Câștigurile provin din taxa de membru sau taxa de utilizare și din vânzări de instrumente specializate (destinate proiectării, organizării fluxului de documente (workflow și gestiunii concurente a datelor.
Alte realizări (Proiecte similare)
ANALIZĂ ȘI FUNDAMENTARE TEORETICĂ
Introducere
Majoritatea site-urilor web sunt constituite din informații statice, dar Web-ul este un mediu puternic și este capabil de mult mai mult astfel oferă caracteristici precum: pagini Web dinamice, conectare la baze de date, pagini personalizate pentru utilizatori, colecții și prelucrări sofisticate ale datelor, interacțiuni de poștă electronică, interfețe pentru utilizatori bogate și atrăgătoare.
Pagini web
Informațiile din World Wide Web sunt stocate în pagini. O pagină poate conține oricare din următoarele: text, header-e, liste, meniuri, tabele, formulare, elemente grafice, script-uri, stiluri (style sheets), obiecte multimedia.
Paginile Web sunt realizate folosind o serie de tehnologii pe partea de client și sunt procesate și afișate de către browsere.
Browsere Web
Browserele web sunt programe client folosite pentru a accesa site-uri și pagini Web. Sarcina unui browser este de a procesa paginile Web primite și de a le prezenta utilizatorului. Browser-ul încearcă să afișeze grafice, tabele, formulare, text formatat și orice conține pagina.
Cele mai cunoscute browsere web din prezent sunt Google Chrome, Mozilla Firefox, Opera și Internet Explorer.
HTML
Paginile Web sunt fișiere cu simplu text costruite folosind limbajul Hypertext Markup Language (HTML). Acesta este implementat ca o mulțime de elemente numite tag-uri. Autorii paginilor Web folosesc aceste tag-uri pentru a marca paginile de text, iar browserele le folosesc pentru a randa și afișa informațiile in scopul de a putea fi vizualizate. Paginile Web pot să conțină legături hypertext la alte pagini.
CSS
Css-ul este un limbaj de stilizare al elementelor html, al tagurilor html. Denumirea de CSS provine din limba engleză de la cascading style sheets.
CSS este utilizat de pagini web pentru a defini culori, fonturi, layout, precum și alte aspecte legate de prezentarea documentelor. El este conceput în primul rând pentru a permite separarea documentului ca și conținut (scrise în HTML sau un Markup Language similar) de documentul de prezentare (scris în CSS).
Această separare poate îmbunătăți accesibilitatea conținutului, să ofere o mai mare flexibilitate și poate diminua caietul de sarcini al celui care se ocupă de mentenanța unui site web prin asigurarea unui control mai simplu.
In Web Design-ul modern, pentru stilizarea paginilor web se folosește numai CSS. Acest lucru inseamnă că de la culoarea literelor si a backgroundului până și la poziționarea elementelor de pe o pagină web, totul este stilizat prin CSS. Stilurile folosite pe o pagină pot fi încorporate în pagina respectivă sau pot fi chemate din fișiere externe, fișiere css.
Pentru folosirea (css-ului), acestui limbaj de stilizare, neapărat trebuie să cunoasteți limbajul html.
JavaScript
HTML este un limbaj de markup. El permite crearea layout-ului paginilor și a formularelor, dar nimic mai mult. Pentru a se construi interfețe intuitive și sofisticate este necesar și un limbaj de scripting la nivel de client. Scripting-ul permite scrierea de cod (mici programe) care rulează în cadrul browserului.
Cel mai cunoscut limbaj de scripting pe parte de client este JavaScript, care este suportat (mai mult sau mai puțin) de aproape orice browser existent. Folosind JavaScript se poate realiza: validarea formularelor, animarea textului și a imaginilor, crearea de meniuri drop-down și a controalelor de navigare, se pot efectua procesări de bază numerice și asupra textelor și multe altele.
Scripting-ul permite programatorilor să detecteze și să proceseze evenimentele. De exemplu, o pagină care se încarcă, un formular trimis, mișcarea pointer-ului mouse-ului asupra unei imagini sunt toate evenimente, iar script-urile pot fi executate automat de browser atunci cînd aceste evenimente au loc.
Script-urile pot fi incluse în codul HTML sau pot fi stocate în fișiere externe și legate în interiorul codului HTML.
Introducere în PHP
PHP, acronim care provine din "Hypertext Preprocessor", este un limbaj de scripting utilizat pe scară largă, realizat și distribuit în sistem Open Source, care este special realizat pentru a dezvolta aplicații web, prin integrarea codului PHP în documente HTML. Sintaxa sa provine din C, Java și Perl și este ușor de învățat. Scopul principal al limbajului este acela de a scrie rapid pagini web dinamice, dar cu PHP se pot realiza mult mai multe.
PHP este una dintre cele mai interesante tehnologii existente în prezent deoarece îmbină caracteristici dintre cele mai complexe cu simplitatea în utilizare.
Mai mult, spre deosebire de limbajele de scripting, precum JavaScript, PHP rulează pe serverul Web, nu în browserul Web. În consecință, PHP poate obține accesul la fișiere, baze de date și alte resurse inaccesibile programului JavaScript. Acestea constituie bogate surse de conținut dinamic.
Noțiuni Fundamentale
Folosind PHP se poate scrie un script HTML, ca cel de mai jos, ce include cod pentru a realiza ceva. Codul PHP este delimitat de coduri de start și de sfârșit ce permit intrarea și ieșirea din "modul PHP".
<html>
<head>
<title>Exemplu</title>
</head>
<body>
<?php
echo "Salut, sunt un script PHP!";
?>
</body>
</html>
Diferența dintre PHP și altceva cum ar fi JavaScript este acela că PHP este executat pe server pe când JavaScript este executat pe calculatorul clientului (browserul Web).
PHP este în principal axat pe partea de scripting ce rulează pe server, deci poate face orice face și un program CGI, cum ar fi colectarea de date de la formulare, generarea de conținut dinamic sau trimitere și primire de cookie-uri.
Scripturi ce ruleaza pe server. Acesta este cel mai tradițional și cel mai important pentru PHP. Este nevoie de trei lucruri pentru a face să meargă: interpretorul PHP (CGI sau modul de server), un server web și un browser web. E nevoie ca serverul de web să fie pornit, cu o conexiune PHP instalată. Se poate accesa rezultatul programelor PHP cu un browser prin intermediul serverului de web.
PHP poate fi folosit pe aproape toate marile sisteme de operare, deci, cu PHP, există libertatea de a alege un sistem de operare și un server de web. Chiar mai mult, există posibilitatea de a alege programarea procedurală sau programarea orientată pe obiecte, sau chiar să se combine acestea.
Una dintre cele mai puternice și importante facilități în PHP este suportul său pentru o gamă largă de baze de date. Scrierea une pagini de web ce interacționează cu o bază de date este incredibil de simplă. PHP suportă și ODBC, standardul Open Database Connection, deci se poate conecta la orice altă bază de date ce suportă acest standard mondial.
Tipuri de date
PHP suportă opt tipuri primitive de date.
Patru tipuri scalare:
– boolean
integer
– float (numere în virgulă mobilă, sau ‘double’)
– string
Două tipuri compuse:
– array
– obiect
Două tipuri speciale:
– resource
– NULL
Tipul unei variabile, de obicei nu este stabilit de programator, ci este decis la rulare de PHP, în funcție de contextul în care acea variabilă este folosită.
Variabile
Noțiuni de bază
În PHP variabilele sunt reprezentate folosind un semn dollar urmat de numele variabilei. Numele variabilelor sunt case-sensitive.
În PHP3 variabilele sunt întotdeauna atribuite prin valoare. Cu alte cuvinte, atunci cînd o expresie este atribuită unei variabile, întreaga valoare a expresiei originale este copiată în variabila destinație. Aceasta înseamnă că, de exemplu, după atribuirea valorii unei variabile alteia, schimbarea uneia dintre aceste variabile nu are nici un efect asupra celeilalte.
PHP4 oferă și un alt mod de a atribui valori valiabilelor: prin referință. Aceasta înseamnă că noua variabilă referă (devine un alias pentru, sau indică către) variabila originală. Schimbări în variabila nouă o afectează și pe cea inițială, și invers. Aceasta înseamnă de asemenea că nu sunt realizate copii și astfel atribuirea se realizează mai rapid.
Variabile predefinite
PHP furnizează un număr larg de variabile predefinite. Multe din aceste variabile, nu pot fi documentate complet deoarece sunt dependente de serverul pe care rulează, de versiunea și setarea acestuia precum și de alți factori.
Unele din aceste variabile nu vor fi folosite când PHP rulează în linie de comandă.
PHP Superglobals
$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 script-ului direct prin HTTP GET. Analog vechiului șir $HTTP_GET_VARS (care încă este valabil, dar deprecat).
$_POST
Reprezintă variabilele oferite scriptului direct prin HTTP POST. Analog vechiului șir $HTTP_POST_VARS (care încă este valabil, dar deprecat).
$_COOKIE
Reprezintă variabilele oferite scriptului direct prin HTTP. Analog vechiului șir $HTTP_COOKIE_VARS (care încă este valabil, dar deprecat).
$_FILES
Reprezintă variabilele oferite scriptului prin upload-ul de fișiere folosind modul POST din HTTP. Analog vechiului șir $HTTP_POST_FILES (care încă este valabil, dar deprecat).
$_ENV
Reprezintă variabilele oferite scriptului prin mediu. Analog vechiului șir $HTTP_ENV_VARS (care încă este valabil, dar deprecat).
$_REQUEST
Reprezintă variabilele oferite script-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 deprecat).
Folosirea variabilelor statice
O importantă caracteristică a scope-ului variabilei o reprezintă variabila statică. O variabilă statică există în scope-ul funcției locale, dar nu își pierde valoarea când execuția programului părăsește acest scope.
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ă.
Variabile din afara mediului PHP
Formulare HTML (GET și POST)
Când un formular este trimis unui script PHP, informațiile din acel formular sunt automat transmise script-ului PHP.
Î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;
?>
Folosirea unui formular de tip GET este similară, cu deosebirea că se va folosi variabila predefinită GET în schimb.
Cookie-uri HTTP
PHP oferă un suport transparent pentru Cookies. Cookie-urile reprezintă un mecanism pentru stocarea datelor în browser și astfel se pot identifica utilizetorii care revin pe o anumită pagină. Cookie-urile se pot seta folosind funcția setCookie(). Cookie-urile fac parte din header-ul HTTP, deci funcția setCookie() trebuie apelată înainte de trimiterea oricărui conținut către browser. Informațiile de tip Cookie sunt apoi stocate în array-urile corespunzătoare, cum ar fi $_COOKIE, $HTTP_COOKIE_VARS și în $_REQUEST.
Baze de date
Structura unei baze de date
O bază de date este o colecție de date organizată astfel încât acestea să poată fi ușor găsite și actualizate.
O bază de date conține toate informațiile necesare despre obiectele ce intervin într-o mulțime de aplicații, relațiile logice între aceste informații și tehnicile de prelucrare corespunzătoare. În bazele de date are loc o integrare a datelor, în sensul că mai multe fișiere sunt privite în ansamblu, eliminându-se pe cât posibil informațiile redundante.
De asemenea, se permite accesul simultan la aceleași date, situate în același loc, sau distribuite spațial, a mai multor persoane de pregătiri diferite, fiecare cu stilul personal de lucru.
Sistemul de programe care permite construirea unei baze de date, introducerea informațiilor în bazele de date și dezvoltarea de aplicații privind bazele de date se numește Sistemul de Gestiune a Bazelor de Date (SGBD).
Un SGBD dă posibilitatea utilizatorului să aibă acces la date folosind un limbaj de nivel înalt, pentru a obține informații, utilizatorul făcând abstracțtie de algoritmii aplicației pentru selecționarea datelor implicate și a modului de memorare a lor. SGBD-ul este o interfață între utilizatori și sistemul de operare.
MySQL
Introducere în MySQL
MySQL este un sistem de gestiune a bazelor de date. Mai mult chiar, MySQL este un sistem de gestiune a bazelor de date relaționale și este distribuit în regim Open Source.
MySQL poate fi descărcat de pe Internet, poate fi folosit fără a plăti ceva și, dacă se dorește, codul sursă poate fi studiat și i se pot aduce modificări necesare.
Serverul de baze de date MySQL este foarte rapid, fiabil și ușor de utilizat. Inițial a fost dezvoltat pentru a manipula baze de date de dimensiuni mari. Conectivitatea sa, viteza și securitatea fac ca serverul MySQL să fie potrivit pentru accesarea bazelor de date prin Internet.
Caracteristicile de bază ale MySQL
Tipuri de coloane
MySQL dispune de multe tipuri de date pentru coloane: numere întregi de 1,2,3,4 și 8 bytes lungime cu/fără semn, FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET, ENUM, și înregistrări cu lungime fixă și cu lungime variabilă.
Comenzi și funcții
pentru operatori și funcții în clauzele SELECT și WHERE ale interogărilor.
pentru clauzele GROUP BY, ORDER BY și pentru funcții de grup (COUNT(), COUNT(DISTINCT …), AVG(), STD(), SUM(), MAX(), MIN(), și GROUP_CONCAT()).
pentru LEFT OUTER JOIN și RIGHT OUTER JOIN.
DELETE, INSERT, REPLACE și UPDATE returnează numărul de rânduri modificate.
Comanda SHOW specifică pentru MySQL poate fi folosită pentru a obține informații despre bazele de date, tabele și indecși.
Conectivitate
Clienții se pot conecta la serverul MySQL folosind socket-uri TCP/IP pe orice platformă.
Interfața Connector/ODBC oferă suport MySQL pentru programe client care folosesc conexiuni ODBC (Open DataBase Conectivity).
Tiny MCE
Editor complex, de asemenea numit WYSIWYG de la What You See Is What You Get (ceea ce vezi este ceea ce primești), înseamnând că textul este formatat în timp ce scri.
Un editor HTML complex care funcționează foarte bine pe toate navigatoarele majore folosite astăzi.
Când folosești editorul, cele mai multe scurtături de tastatură funcționează ca în orice alt editor text. Spre exemplu: Shift+Enter introduce o linie nouă, Ctrl+C = copiază, Ctrl+X = taie, Ctrl+Z = revine la forma anterioară, Ctrl+Y = reface acțiunea, Ctrl+A = selectează tot, etc.
XAMPP
Este un pachet de aplicații open source care acționează ca un server web pentru a obține pagini dinamice. În pachet de programe se află: server de web (Apache HTTP Server), server de baze de date (MySQL), server Filezila, Tomcat, Mercury și interpretoare pentru script-uri scrise în limbajele PHP și Perl.
Disponibil pe platformele Microsoft Windows,Linux, Solaris și Mac. XAMPP a fost creat însă pentru a pune la dispoziția dezvoltatorilor un instrument eficient de testare a diferitelor aplicații în dezvoltare.
Serverul web Apache este mult mai convenabil decât orice
alte tipuri de soluție de server de web , deoarece permite designeri site-ul web și
programatori pentru a testa munca lor, fără acces la internet
Instalat pe calculator, pachetul de aplicații va face ca acesta să aibă comportamentul unui server.
După pornirea a aplicației XAMPP se vor apăsa butoanele Start din dreptul celor aplicații pe care vrem să folosim în cazul nostru pentru testării siteurilor : Apache și MySQL.
PROIECTARE DE DETALIU ȘI IMPLEMENTARE
Tehnici de interacțiune
În aplicațiile grafice utilizatorul trebuie să interacționeze cu lumea virtuală printr-un anume mod. O tehnică de interacțiune implică comunicarea între utilizator și dispozitiv prin schimb de informații. Utilizatorul semnalează sistemului o operație pe care dorește să se efectueze prin utilizarea unei tehnici de interacțiune cum ar fi apăsarea unui buton, introducerea unei valori într-un câmp etc. iar sistemul va răspunde într-un mod corespunzător, oferind utilizatorului o reprezentare vizuală a rezultatului pe un dispozitiv de afișare.
Tehnicile de interacțiune pot fi clasificate în funcție de complexitatea lor în următoarele categorii (aceste tehnici se referă la manipularea obiectelor virtuale):
Gesturi: acțiuni simple pe care un utilizator le poate îndeplini pentru a interacționa cu un obiect virtual (click, apăsare, eliberare etc.)
Tehnici de interacțiune simple: implică faptul că utilizatorul introduce o singură valoare ca și intrare pentru sistem
Tehnici de interacțiune complexe: implică faptul că utilizatorul introduce mai mult de o valoare și poate fi o combinație a tehnicilor de interacțiune prezentate mai sus (un exemplu tipic este un meniu)
În cele ce urmează se vor defini următoarele tehnici de interacțiune: butoane virtuale.
Butoane virtuale
Butonul virtual reprezintă o tehnică de interacțiune simplă prin care un utilizator poate declanșa foarte ușor un eveniment prin apăsarea sa.
În continuare se prezintă trei tipuri de butone virtuale care se pot lua în considerare pentru implementarea diferitelor moduri de interacțiune:
Buton vizual (engl. button): tehnică de interacțiune simplă care permite utilizatorului să declanșeze un eveniment dorit
Buton opțiune (engl. radiobutton): tehnică de interacțiune simplă care se bazează pe selectarea unei singure valori dintr-un set predefinit de opțiuni reprezentate prin butoane virtuale
Casetă opțiune (engl. checkbox): tehnică de interacțiune simplă care permite utilizatorului efectuarea unei decizii binare, adică o decizie între două opțiuni mutual exclusive
Meniuri virtuale
Prin gruparea logică a mai multor tehnici de interacțiune simple se pot implementa meniuri, care reprezintă o tehnică de interacțiune complexă.
Pentru realizarea meniurilor s-a considerat combinarea tehnicilor de interacțiune simple din categoria tehnicilor cu butoane virtuale (buton vizual, buton opțiune, casetă opțiune).
Cazuri de utilizare
Diagrama cazurilor de utilizare (engl. Use Case Diagram)
Figura de mai jos prezintă diagrama cazurilor de utilizare pentru aplicația InteractLeARn și este alcătuită din următoarele cazuri de utilizare:
· Apăsare buton virtual
· Selectare obiect virtual
Apăsare buton virtual
Actorul principal: adminul
Scopul:
· Adminul dorește să apese un buton virtual
Precondiții:
· Siteul rulează
· A pornit înregistrarea video de la camera web care este conectat la sistem
· Se vede înregistrarea video pe ecranul sistemului
· Markerul asociat butonului virtual este detectat de către sistem
Postcondiții:
· Evenimentul asociat butonului apăsat a fost declanșat
Fluxul principal:
1. Utilizatorul alege markerul care este asociat cu butonul virtual
2. Utilizatorul pune degetul pe marker
3. Sistemul detectează apăsarea butonului
4. Sistemul afișează rezultatele vizuale asociate evenimentului de apăsare
5. Utilizatorul ia degetul de pe marker pentru a elibera butonul
Cerințe speciale:
· aplicația necesită folosirea XAMPP,pentru a avea un server web și o bază de date
Obiective Proiectarea și programarea în PHP a rezervării online
Site-ul proiectat are ca obiectiv promovarea on-line a unui hotel și posibilitatea de a rezerva camere la hotelul prezentat online.
Fiecare rezervare va fi adăugată în baza de date a site-ului unde adminul îl poate verifica șterge.
Numai camerele disponibile se pot rezerva. Plata camere va fi realizată online cu ajutorul unui card, după completarea formularului cu datele persoanei care dorește să efectueze o rezervare.
Structura paginii web și baza de date
Structural, pagina web este compus din trei secțiuni:
Secțiunea de prezentare;
Secțiunea de rezervare;
Secțiunea de administrare.
Secțiunea de prezentare
Secțiunea de prezentare se adresează pentru toți vizitatorii, care poate să afle informații despre hotel, poate avea acces la galeria de imagini despre camere, poate să afle cu ce este dotat fiecare cameră înparte și poate afla mai multe detalii despre hotel sau despre o cameră prin completarea unui formular.
Răspunsul la întrebări, nelămuriri va fi trimis prin e-mail utilizatorului.
Principalele pagini care sunt accesibile acestui tip de utilizator (guest) sunt: homepage.php, facilities.php, links.php, about_us.php și contact_us.php. Acest utilizator are acces și la secțiunea de rezervare.
Secțiunea de rezervare
Secțiunea de rezervare este disponibilă pentru toți vizitatorii. Această posibilitate de rezervare online este disponibilă pe fiecare pagină a site-ului.
Pentru aceasta ei au la dispoziție două locuri unde își selectează data cazării și data plecării de la hotel și un loc unde să specifice câte camere doresc.
La sfârșit printr-un singur click vor fi redirecționați către o pagină unde au șanse să își aleagă după preferințe ce camere vor să rezerve.
Camerele disponibile vor fi de culoare verde iar cele indisponibile vor fi de culoare roșie.
Paginile principale aflate la dispoziția unui client sunt booking.php, booking_cart.php și booking_finished.php, unde clienții completează un formular cu datele personale și efectuează plata camerei.
Secțiunea de administrare
Secțiunea de administrare este accesibilă administratorului hotelului, care poate fi un angajat cu acces la pagina de administrație, nu neapărat programatorul magazinului.
Un administrator are acces la toate paginile magazinului, în plus el putând adăuga sau modifica camere, adăuga poze despre camere, adăuga rezervări, vizualiza rezervările și datele personale a unui client, răspunde la mesaje, prelucra rezervările sau ștergerea manuală a acestora.
Un administrator are acces la întreaga bază de date, putând manipula informația după nevoie.
Baza de date
Baza de date folosită este cea aparținând aplicației XAMPP adică serverului MySQL și conține 7 tabele: user, client, reservations, rooms, gallery, content, countries.
Tabelul user conține următoarele câmpuri:
id – id-ul unic al utilizatorului;
name – numele adminului;
pass – parola adminului;
Cu userii aflați în tabelul acesta, se pot conecta la secțiunea de administrare.
Tabelul client conține următoarele câmpuri:
id – indexul primar al tabelei, este id-ul clientului;
last_name – numele de familie a clientului;
first_name – prenumele clientului;
adress – adressa completă a clientului;
city – orașul de proveniență a clientului;
post_code –destinat pentru memorarea codul poștal a clientului
state – destinat pentru memorarea regiunii de unde e clientul;
country – destinat pentru memorarea țării de unde e clientul;
phone – destinat pentru memorarea numărul de telefon a clientului, pentru contactare;
fax – destinat pentru memorarea faxului clientului, pentru contactare;
email – destinat pentru memorarea adresei de email a clientului, pentru contactare;
request – destinat pentru memorarea unor observații a clientului;
card_number – destinat pentru memorarea numărul de card a clientului;
card_date – destinat pentru memorarea data de expirare a cardului;
card_name – destinat pentru memorarea numelui specificat pe card;
card_type – destinat pentru memorarea tipului de card folosit pentru plătirea rezervării;
card_cvc – destinat pentru memorarea celor 3 numere aflate pe spatele cardului.
În tabelul acesta va fii stocat datele clienților care au efectuat o rezervare.
Tabelul reservation conține următoarele câmpuri:
id – indexul primar al tabelei, este id-ul rezervării;
start – data începerii a rezervării;
end – data terminării a rezervării;
room – id-ul camerei care a fost selectată de către client, această id a camerei se află în tabelul rooms;
client – id-ul clientului care a procesat rezervarea unei camere, id-ul clientului apare în tabelul client;
adults – numărul de adulți care vor fi cazați în data specificată;
children – numărul de copii care vor fi cazați în data specificată.
Tabela rooms conține următoarele câmpuri:
id – indexul primar al tabelei, este id-ul camerei;
name – destinat pentru memorarea numele camerei;
price – destinat pentru memorarea prețul camerei;
pers – destinat pentru memorarea numărului de persoane care pot fi cazați în această cameră;
nr – reprezintă numărul a căte camere exitsă de acest tip.
Tabela gallery conține următoarele câmpuri:
id – indexul primar al tabelei;
name – destinat pentru memorarea numeluide gallerie existentă;
Tabela content conține următoarele câmpuri:
id – indexul primar al tabelei;
name – destinat pentru memorarea numelui unei pagini, cum ar fi: home.php;
col1 – conține textul si designul textului a fiecărei pagini înparte;
col2 – conține textul si designul textului a fiecărei pagini înparte;
col3 – conține textul si designul textului a fiecărei pagini înparte;
Structura unei pagini constă dintr-un banner, meniu și footer. În meniu partea de sus este alcătuit dintr-o imagine iar partea de jos este alcătuit din 3 coloane. Aceste coloane sunt luate din tabelul content pentru fiecare pagină separat, există pagină unde este folosit doar o coloană. Pentru pagina index.php cele 3 coloane sunt următoarele:
coloana1:
<p><span style="color: #666666; text-decoration: underline;"><span style="font-size: 14px; color: #835615; font-weight: bold;">We </span><spanstyle="font-size:14px;color:#867d6b;font- weight:bold;">Offer</span></span></p>
<p>All rooms are good sized studios with ensuite and fully equipped kitchen.</p>
coloana2:
<p><span style="color: #666666; text-decoration: underline;"><span style="font-size: 14px; color: #835615; font-weight: bold;">Great</span> <span style="font-size: 14px; color: #867d6b; font-weight: bold;">Location</span></span></p>
<p>Comming soon!</p>
coloana3:
<p><span style="color: #666666; text-decoration: underline;"><span style="font-size: 14px; color: #835615; font-weight: bold;">Contact</span> <span style="font-size: 14px; color: #867d6b; font-weight: bold;">Us</span></span></p>
<p><strong>Hotel Escada</strong><br />7 Mogosoaia<br />Cluj-Napoca, Romania</p>
<p>T:0757 777 777<br />F: 0264 777 777<br />E: [anonimizat]</p>
<p><a href="../hotel/contact_us.php">Use our Contact Form</a></p>
Pagina index.php va arăta astfel:
title – destinat pentru memorarea titlul paginii, de exemplu: Hotel Escada – Home;
Tabelul countries conține următoarele câmpuri:
id – id-ul unic al utilizatorului
name – numele tării
Funcționarea
Site-ul este structurat sub formă de tabel, fiind împărțit în trei părți: banner (adică header), conținut (adică content) și footer. Banner-ul și footer-ul se vor repeta în fiecare pagină.
Cu această secvență de cod se va face referință la unul dintre fișierele cu extensia css, care ajută la designul paginii.
<link rel="stylesheet" type="text/css" href="css/main.css" />
Scripturile vor implica folosirea anumitor funcții, cum ar fi, de exemplu acea de conectare la baza de date MySQL, sau folosirea unor variabile globale.
Acestea vor fi memorate în mai multe fișiere de funcții, numite html.php, mysql.php și variabile.php, ce se vor include în pagina în care va fi folosit.
De asemenea, vor fi incluse fișiere care vor conține cod CSS, pentru stabilirea stilului, designului codului HTML. Fișierul main.css respectă specificațiile CSS și are următorul conținut:
@charset "utf-8";
body {
font-size: 11px;
font-family: Arial, Helvetica, sans-serif;
padding: 0px;
margin:0px;
background-image:url(../images/back.jpg);
background-repeat:repeat;
}
#main {
height: 100%;
width: 927px;
margin:0 auto;
}
#banner {
width:927px;
height:124px;
float:left;
background-image:url(../images/site2_077.png);
}
#big_image {
width:927px;
height:402px;
float:left;
background-image:url(../images/site2_05.png);
}
#big_image2 {
width:927px;
height:271px;
float:left;
background-image:url(../images/site2_05.png);
}
#content {
width:927px;
min-height:200px;
float:left;
background-image:url(../images/site2_08_cropped.png);
background-repeat:repeat-y;
}
#footer {
width:927px;
height:48px;
background-image:url(../images/site2_10.png);
float:left;
}
#menu {
color:#FFF;
width:530px;
margin-left:370px;
margin-top:101px;
}
#col1_cont {
width:270px;
margin-left:40px;
margin-top:15px;
float:left;
text-align: justify;
}
#col2_cont {
width:270px;
margin-left:20px;
margin-top:15px;
float:left;
text-align: justify;
}
#col3_cont {
width:270px;
margin-left:20px;
margin-top:15px;
float:left;
text-align: justify;
}
Astfel, dacă administratorul decide să schimbe formatul afișării informației în pagină, nu va trebui decât să modifice o linie din acest fișier pentru a avea rezultatul de-a lungul întregului site.
Scripturile vor trebui să recunoască adminul din momentul conectării, până în cel al deconnectării. Acest lucru se poate realiza foarte ușor prin intermediul sesiunilor.
Controlul sesiunilor reprezintă o modalitate nativă a PHP-ului de a recunoaște un utilizator în timpul navigării prin site.
Sesiunile în PHP sunt date de un număr unic de identificare generat de server (Session ID) și stocat în partea de administrare a aplicației, fie prin intermediul unei cookie, fie transmis prin intermediul URL-ului de la pagină la pagină.
Un ID Session funcționează ca o cheie ce permite înregistrarea pe server a unei variabile numite session variable, a cărei conținut este stocat în partea de server.
Astfel, pe toată durata de viață a acestei variabile, serverul va „ști”, bazat pe Session ID, starea adminului ce a cerut accesul.
Dacă un admin se loghează folosind un username și o parolă, se va crea o variabilă numită valid_user, generând un cookie pe calculatorul clientului, până la deconectarea acestuia sau având o durată de viață temporal stabilită.
În cazul nostru, există două fișiere, index.php și logout.php, care gestionează starea pentru un admin.
<?php
include_once("../include/html.php");
include_once("../include/mysql.php");
include_once("../include/variabile.php");
$sql = new db();
session_start();
$html = new template("home.html");
if((isset($_SESSION['login']))&&($_SESSION['login']=="admin")) {
header("Location: content.php");
}
unset($_SESSION['login']);
$name = g_post("name");
$pass = g_post("pass");
if((!empty($name))&&(!empty($pass))) {
$login = $sql->query("SELECT * FROM `user` WHERE `name` = '$name' AND `pass` = '$pass'");
if(mysql_num_rows($login)==1) {
$lg = mysql_fetch_object($login);
if($lg->name == "admin") {
$_SESSION['login'] = "admin";
header("Location: content.php");
}
}
}
$html->show();
?>
Prima dată se conectează la baza de date cu funcția: include_once("../include/mysql.php"), în care se află conectarea la baya de date.
În acest caz, s-a interogat tabela user, unde s-a căutat numele de utilizator și parola acestuia pentru corespondența acestora cu două variabile transmise de formularul de logare.
În continuare se verifică dacă numărul de linii rezultate din interogare este mai mare ca zero, ceea ce înseamnă că utilizatorul și parola există. În cazul în care nu le identifică, va proceda la afișarea unui mesaj de logare.
Dacă le găsește, va accesa pagina content.php.
Structurarea site-ului
Structurarea hotelului propune vizitatorului parcurgerea anumitor pași: vizitare și rezervarea camerei.
Vizitarea paginilor
Vizitarea propune mai multe pagini, printre care cea de start – homepage.php – care prezintă hotelul, pagini ilustrate în continuare:
Aceasta este pagina de întâmpinare, de unde vizitatorul poate naviga pe celelalte pagini al site-ului.
Pagina aboutus.php oferă niște informații despre noi.
Pagina rooms.php oferă niște informații despre camere aflate în hotel, cu ce sunt dotate, câte tipuri de camere sunt, care sunt diferențele între ele și vizitatorii au la dispoziție și un mic album de poze despre camere.
Pagina contactus.php este foarte important pentru vizitatori. Ei pot să se adreseze la administrația hotelului cu întrebări, nelămuriri și dacă apar niște probleme în a rezerva camere.
Navigarea între aceste pagini se face cu ajutorul unui meniu grafic care se află în bannerul paginii, realizat cu ajutorul tehnologiei JavaScript:
Pe această figură se poate observa pe ce pagini poate plimba un client a hotelului.
Efectuarea rezervări
Pentru a efectua o rezervare se va parcurge următoarele pagini: booking.php, booking-car.php și booking-finished.php.
Pentru a rezerva o cameră utilizatorul trebuie fie să selecteze data începerii și data terminării rezervării unei camere.
El poate să decidă de câte camere are nevoie, după care cu apăsrea unui buton va trebui să selecteze după preferință camera unde se va caza.
Această opțiune este valabilă pe toate paginile siteului.
Aici clientul află ce fel de camere și ce prețuri au camerele diferite.
Pagina de selectare a camerei:
Pe această pagină utilizatorul poate să își aleagă camera dorită, să afle prețul camerei pe o noapte (va fi cerut să specifice câți adulți și câți copii vor veni).
Dacă camera aleasă este deja ocupată este semnalizată cu o culoare roșie altfel este liberă.
Urmează ca utilizatorul să termină rezervarea cu completarea unui formular cu date personale și plătirea camerei prin card.
Dacă câmpurile notate cu * nu sunt completate va apărea o eroare, dacă câmpurile sunt completate în totalitate atunci se va finaliza rezervarea.
Toate datele clientului vor fi salvate în baza de date a site-ului în tabelul client.
Finalizarea rezervării:
Pagini de administrare
În continuare, pentru a accesa paginile de administrație va trebui ca adminul să se conecteze pe pagina index.php.
Completând câmpurile nume si parolă și prin intermediul sesiunilor scripturile vor trebui să recunoască adminul din momentul conectării, până in cel al deconnectării.
Connectarea va fi posibilă dacă în tabelul user se află un cont memorat cu numele si parola scrisă la autentificare.
Altfel dacă numele sau parola diferă va apărea o eroare.
Dacă connectarea este reușită atunci adminul va fi direcționat către pagina content.php.
Pe această pagină adminul are la dispoziție editarea fiecărei pagini in parte care este accesibil pentru vizitatori.
Va selecta oricare dintre paginile folosite la prezentarea hotelului și la rezervarea online: about_us, booking, booking_cart, contact_us, home, links, rooms.
La oricare dintre aceste pagini va avea posibilitatea de a modifica conținutul paginii.
În fiecare content va apare designul si textul scris pe pagina selectată a siteului, unde cu ajutorul editorului se va putea edita textul, de a crea tabele noi, de adăugare a unei hyperlinkuri, de a salva, de a selecta stilul fontul textului.
Pentru a efectua modificări va avea la dispoziție un mic editor de text numit tiny_mce, care are aproape toate propietățile asemănător cu alte editoare de texte.
Content1, Content2, Content3 sunt 3 coloane care intră în alcătuirea body-ului site-ului.
Datele aflate în aceste Content-uri sunt memorate, salvate în baza de date a site-ului în tabelul content. Aceste date se pot modifica și în baza de date.
Pagina bookings.php va ajuta adminul în prima parte să adauge o rezervare nouă in baza de date.
Va trebui să completeze câmpurile de check in adică data cazării, check out adică data eliberării camerei, va selecta tipul camerei și va completa în câmpul No.Rooms câte camere va avea nevoie.
Codul pentru introducere a unei noi rezervări este următorul:
if((!empty($check_in))&&(!empty($check_out))&&(!empty($room))) {
if($copies > 1) {
for($i=1;$i<=$copies;$i++) {
$sql->query("INSERT INTO `reservations` (`start`,`end`,`room`,`adults`,`children`) VALUES ('$check_in','$check_out','$room','0','0')");
}
} else {
$sql->query("INSERT INTO `reservations` (`start`,`end`,`room`,`adults`,`children`) VALUES ('$check_in','$check_out','$room','0','0')");
}
}
În partea a doua a paginii adminul va putea să selecteze unu dintre rezervările deja finalizate și să le șteargă pentru a nu stoca date deja neimportante în baza de date a hotelului.
Iar codul pentru ștergerea rezervării este:
$del_booking = g_post("del_booking");
if(!empty($del_booking)) {
$sql->query("DELETE FROM `reservations` WHERE `id` = '$del_booking'");
}
Pagina clients.php este foarte importantă, deoarece dacă in tabelul de reservation avem multe rezervări va fi foarte greu de aflat câți clienți avem în data cerută de propietarul hotelului.
Această pagină ne va ușura munca deoarece vom avea nevoie numa perioada de timp pentru care vrem să aflăm.
Această opțiune e bună și pentru a observa câte familii, persoane efectuează rezervări în aceleași perioade de timp in fiecare an.
Adminul va trebui să selecteze cu ajutorul unui calendar data de începere a perioadei de timp si data de încheiere, iar la apăsarea butonului Go va avea lista cu clienți care au rezervare sau au fost la hotel in data aceea.
El va mai putea să afle detaliile clienților care au fost găsite.
Pagina rooms.php conține adăugarea, modificarea și ștergerea uneia sau mai multor camere.
Adminul pentru adăugarea unei alte camere decât cele existente va trebui să completeze câmpurile următoare: numele camerei, prețul camere pe o zi, câte persoane pot fi cazate în această cameră și câte camere de acest gen va avea.
Codul de inserare este următorul :
if((!empty($name))&&(!empty($price))&&(!empty($pers))&&(!empty($nr))) {
$sql->query("INSERT INTO `rooms` (`name`,`price`,`pers`,`nr`) VALUES ('$name','$price','$pers','$nr')");
}
La modificarea datelor unei camere el va trebui să selecteze prima dată camera dorită la care vrea să modifice: numele camerei, prețul, numărul persoanelor care pot fi cazate in această cameră sau câte camere de acest tip există momentan.
Codul de modificare :
if((!empty($room_mod))&&(!empty($name_mod))&&(!empty($price_mod))&&(!empty($pers_mod))&&(!empty($nr_mod))) {
$sql->query("UPDATE `rooms` SET `name`='$name_mod',`price`='$price_mod',`pers`='$pers_mod',`nr`='$nr_mod' WHERE `id` = '$room_mod'");
}
Opțiunea de ștergere a unei camere existente va fi cel mai simplu, deoarece toate tipurile de camere sunt memorate in baza de date,prin conectarea la baza de date sunt extrase doar numele camerelor, iar cu un singur click se va putea să se șteargă.
Codul pentru ștergere :
if(!empty($del_room)) {
$sql->query("DELETE FROM `rooms` WHERE `id` = '$del_room'");
}
Pagina gallery.php conține adăugarea unei noi galerii de poze, adăugarea unei poze la o categorie de galerie, ștergerea unui categorii de galerie și ștergerea unei poze dintr-o galerie.
Adăugarea unei noi galerii(categorii) de poze adminul va trebui să își aleagă numele galeriei, după care să completeze câmpul destinat numelui galeriei. Finalizarea galeriei va fi printr-o apăsare a unui buton numit Add.
Codul pentru adăugare galerie este următorul :
//add categ
$nume_categ = g_post("nume_categ");
if(!empty($nume_categ)) {
$sql->query("INSERT INTO `gallery` (`name`) VALUES ('$nume_categ')");
}
Adăugarea unei noi poze la o galerie existentă este aproape asemănătaore cu adăugarea unei noi galerii. Adminul va trebui să își aleagă în care dintre galeriile existente vrea să fie adăugată poza dorită.
Codul pentru adăugarea acesta este următorul:
//add poza to categ
$categ_add = g_post("categ_add");
if((!empty($categ_add))&&(!empty($_FILES["poza_add"]))) {
$i=1;
while(file_exists("../gallery/".$categ_add."_".$i.".jpg")) $i++;
$last = $i;
if((!empty($_FILES["poza_add"]))&&($_FILES["poza_add"]["error"] == 0)) {
if((($_FILES["poza_add"]["type"] == "image/pjpeg") || ($_FILES["poza_add"]["type"] == "image/jpg") || ($_FILES["poza_add"]["type"] == "image/jpeg")) && ($_FILES["poza_add"]["size"] < 2000000)) {
$new_file_poza = $categ_add."_".$last.".jpg";
$path = "../gallery/".$new_file_poza;
move_uploaded_file($_FILES["poza_add"]["tmp_name"], $path);
}
}
}
Adminul va putea să șteargă o galerie existentă care deja nu este dorită de acesta. Odată cu ștergerea unei galerii, dacă în galerie există poze atunci și acelea vor fi șterse.
Codul pentru ștergerea unei galerii este:
//del categ
$categ_del = g_post("categ_del");
if(!empty($categ_del)) {
$i=1;
while(file_exists("../gallery/".$categ_del."_".$i.".jpg")) {
unlink("../gallery/".$categ_del."_".$i.".jpg");
$i++;
}
$sql->query("DELETE FROM `gallery` WHERE `id` = '$categ_del'");
}
Ștergerea unei poze dintr-o galerie este posibilă, dacă adminul selectează galeria dorită și din galerie va trebui să selecteze imaginea sau imaginile dorite pentru ștergere. Ștergerea va fi efectuată print-un click pe imagine si apoi delete.
Codul pentru această ștergere este următorul:
//get picz
$categ_poza = g_post("categ_poza");
if(empty($categ_poza)) {
$categ_poza = $cat_poz;
}
if(!empty($categ_poza)) {
$i=1;
while(file_exists("../gallery/".$categ_poza."_".$i.".jpg")) {
$html->addrow("gal_picz");
$html->replacerow("@img@", "../gallery/".$categ_poza."_".$i.".jpg");
$html->replacerow("@dir@", "../gallery/");
$html->replacerow("@cat@", $categ_poza);
$html->replacerow("@id@", $i);
$i++;
}
}
$get_categs = $sql->query("SELECT * FROM `gallery` ORDER BY `name` ASC");
while($gc = mysql_fetch_object($get_categs)) {
$html->addrow("categ");
$html->replacerow("@id@", $gc->id);
$html->replacerow("@nume@", $gc->name);
}
$get_categs = $sql->query("SELECT * FROM `gallery` ORDER BY `name` ASC");
while($gc = mysql_fetch_object($get_categs)) {
$html->addrow("categ2");
$html->replacerow("@id@", $gc->id);
$html->replacerow("@nume@", $gc->name);
if($categ_poza == $gc->id) {
$html->replacerow("@sel@", "selected=\"selected\"");
} else {
$html->replacerow("@sel@", "");
}
}
Pagina upload.php este folositoare pentru a încărca o imagine, care va putea fi folosită pe pagina content.php. Pe pagina content.php se poate folosi poza respectivă la designul paginilor accesibile pentru vizitatori.
Codul pentru încărcarea pozei este următorul:
if((!empty($_FILES["fisier"]))&&($_FILES["fisier"]["error"] == 0)) {
$new_file_poza = mt_rand(12832,97676).$_FILES["fisier"]["name"];
$path = "../upl/".strtolower(str_replace(" ","",$new_file_poza));
if(move_uploaded_file($_FILES["fisier"]["tmp_name"], $path)) {
$html->replace("@uploaded_file@", .substr($path,2));
} else {
$html->replace("@uploaded_file@", "The file could not be uploaded!");
}
} else {
$html->replace("@uploaded_file@", "");
}
Pagina logout.php va fi o simplă deconectare pentru admin de pe user și va fi redirecționat către pagina index.php.
Codul va fi următorul:
session_start();
unset($_SESSION['login']);
header("Location: index.php");
După deconectare sau în timpul când adminul este conectat el va putea să se întoarcă la paginile de prezentare a hotelului cu un simplu click pe Go Back on the Site.
Asemenea ca și la vizualizare parcurgerea acestor pagini va fi posibilă cu ajutorul unui meniu care se află în bannerul paginii, creat cu tehnologia JavaScript.
TESTARE ȘI VALIDARE
Testarea paginii web se face pentru verificarea funcționării acestuia.
Pentru testare va fi nevoie prima dată pornirea unui server web(Apache) și unei baze de date(MySQL), pentru acesta vom folosi XAMPP, în care vom starta Apache și MySQL.
După acesta vom folosi un browser(de exemplu Google Chrome) pentru a acces siteul.
Fiind un vizitator vom încerca să efectuăm o rezervare online. Primu pas este să selectăm perioada de timp pentru care vom efectua rezervarea.
După selectarea datei vom selecta camerele după dorința noastră.
Camera de 4 persoane apare cu culoare roșie, asta însemnând că este deja ocupată.Va urma să completăm formularul cu datele personale.
Cu aceste pași va fi posibil să finalizăm rezervarea.
Acuma vom verifica dacă intradevăr rezervarea sa efectuat, accesând în browser http://localhost/phpmyadmin/ unde vom selecta baza de date a siteului.
Vom selecta tabelul reservations unde vom găsi rezervarea noastră.
Unde 31 este numărul de rezervare , urmând de perioada de rezervare, de câte camere vom avea nevoie, 17 reprezintă id-ul clientului care a făcut rezervarea, numărul de adulți și numărul de copii.
Accesăm acuma tabelul client unde vom căuta clientul cu id-ul 17.
Figura anterioară îi dovadă că rezervarea a fost procesată corect.
CONCLUZII
Bibliografie
Se ordonează alfabetic și în ordine cronologică, times new roman (12), un singur rând.
[Nr. crt.] Iovan Tudor, „Titlul lucrării”, editura, anul apariției; (Se ordonează alfabetic și în ordine cronologică, times new roman (12));
[Nr. crt.] Iovan Tudor, Vasilescu Ionel, „Titlul lucrării”, editura, anul apariției;
[Nr. crt.] Bundescu Paul xxxxxxxxxx;
Acronime
GSM – Global System for Mobile Communications
Anexa
Bibliografie
Se ordonează alfabetic și în ordine cronologică, times new roman (12), un singur rând.
[Nr. crt.] Iovan Tudor, „Titlul lucrării”, editura, anul apariției; (Se ordonează alfabetic și în ordine cronologică, times new roman (12));
[Nr. crt.] Iovan Tudor, Vasilescu Ionel, „Titlul lucrării”, editura, anul apariției;
[Nr. crt.] Bundescu Paul xxxxxxxxxx;
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: Dezvoltarea Unei Pagini Web Pentru Prezentarea Unui Hotel (ID: 139127)
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.
