Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  
AccessAdobe photoshopAlgoritmiAutocadBaze de dateC
C sharpCalculatoareCorel drawDot netExcelFox pro
FrontpageHardwareHtmlInternetJavaLinux
MatlabMs dosPascalPhpPower pointRetele calculatoare
SqlTutorialsWebdesignWindowsWordXml

LUCRARE DE DIPLOMA - Crearea si publicarea unei pagini web pe internet

calculatoare



+ Font mai mare | - Font mai mic



UNIVERSITATEA DE VEST DIN TIMISOARA

FACULTATEA DE MATEMATICA SI INFORMATICA

SECTIA INFORMATICA ROMANA



LUCRARE DE DIPLOMA

Crearea si publicarea unei pagini web pe internet

Introducere

Lucrarea de fata prezinta informatii generale si particulare care duc la crearea si publicarea unei pagini web pe internet.

Se prezinta o aplicatie ce consta intr-un site dinamic, construit utilizand tehnologiile PHP, HTML si MySQL.

Site-ul prezentat in aceasta lucrare este destinat unei agentii de turism si contine si o sectiune de administrare. Scopul site-ului este prezentarea ofertelor de cazare a diferitelor hoteluri atat din Romania cat si din alte tari, dar si posibilitatea de a rezerva un hotel. Acest tip de site aduce castiguri importante in mod indirect, fiind una dintre cele mai bune modalitati de reclama si rezervari.

Proiectarea unui astfel de site web are cateva aspecte pe care se concentreaza. Primul se refera la oferirea informatiilor importante: siteul prezinta agentia de turism, meniul, detaliile de contact, etc. Urmatorul aspect este posibilitatea de a face rezervari online, pentru un anumit hotel si o anumita perioada. De asemenea, site-ul este bine organizat fiind conceput si proiectat utilizand produse precum: Adobe Photoshop, Aptana, Xampp.

In ceea ce priveste interfata site-ului, aceasta se poate modifica in functie de preferintele fiecaruia. Exista trei variante, fiecare varianta caracterizeaza un sezon: vara, iarna si toama. Se permite, de asemenea, inregistrarea utilizatorilor la newsletter, folosind formularul de pe pagina. Pe langa posibilitatea inregistrarii la newsletter, utilizatorii isi pot exprima opinia cu privire la sondajul existent pe site.

Cu toate ca vizualizarea informatiilor de pe site este permisa tuturor vizitatorilor, adaugarea informatiilor este permisa decat membrilor site-ului, pentru aceasta fiind implementat un mecanism de logare. Lucrarea este structurata in cinci capitole, si anume:

In capitulul 1, Internetul am prezentat informatii generale despre internet, istoria acestuia si conectarea la internet. Capitulul 2, Tehnologii folosite cuprinde informatii despre limbajele de programare folosite. In capitolul 3, Descrierea si proiectarea aplicatiei am prezentat strucutra claselor, a bazei de date, aplicatiile folosite in realizarea site-ului si cateva dintre functiile php folosite cel mai frecvent. Capitolul 4, Utilizarea aplicatiei descrie utilizarea aplicatiei, iar capitolul 5, Concluzii prezinta concluziile realizarii acestui site.

1. Internetul si inportanta crearii paginilor web

1.1. Internet-ul

1.1.1 Istoria Internetului

Internetul s-a nascut la mijlocul anilor 60 in forma ARPAnet (Advanced Research Projects Agency Net) - o retea intre mai multe computere din unele institutii americane, ce lucrau pentru ARPA, un departament de cercetare din cadrul Pentagonului. ARPA a fost pus in functiune ca reactie la succesul sovietic al lansarii satelitului Sputnik in spatiu in 1957. Unul din obiectivele ARPAnet era crearea unei retele, care sa nu fie distrusa datorita atacurilor asupra sistemului. Razboiul Rece fiind la apogeu, scenariul unui dezastru era considerat fie lansarea unei bombe fie un atac nuclear.

De aici a rezultat un proiect de retea, unde reteaua insasi era permanent in pericol de atac. In consecinta:

- doar un minimum de informatii era cerut de la computerele client in retea

- oricand transmisia de date intalnea un obstacol, sau una dintre adrese era de negasit, se gasea o alta cale catre adresa cautata.

Toate acestea au fost codificate intr-un protocol care reglementa transmisia de date pe Internet. In forma sa finala, acesta era TCP/IP (Transmission Control Protocol / Internet protocol), care este si acum baza Internetului. TCP/IP face posibil ca modele diferite de calculatoare, de exemplu IBM compatibile sau Mac's, folosind sisteme diferite de operare, cum ar fi UNIX, Windows, MacOS etc. sa se 'inteleaga' unele cu altele. In acest fel, Internetul era si este cu adevarat o platforma-independenta.

Internet-ul 'civil' a inceput ca o retea de patru computere intre Universitatile din Utah, Santa Barbara si Los Angeles si Institutul de Cercetare din Stanford. In curand, cercetatori din alte institutii de stat au devenit interesati. Deoarece folosirea computerelor era costisitoare, ei au vazut imediat avantajele folosirii in comun a unei retele.

La sfarsitul anilor 60 si inceputul anilor 70, cand Internetul numara in jur de 50 de computere, s-au dezvoltat primele dintre servicii, folosite inca si azi pentru transferul informatiei:

- File Transfer Protocol pentru trimiterea si regasirea fisierelor ;

- Telnet pentru accesarea si folosirea bazelor de date, a bibliotecilor si a cataloagelor din toata lumea;

- E-Mail pentru trimiterea mesajelor personale.

Internetul era in mod categoric in ascendenta. Cu noi grupuri de utilizatori care se alaturau, in urmatoarea decada, Internetul a crescut la o retea de 200 de computere. Partea militara era organizata intr-o retea separata, Milnet.

In acelasi timp, au aparut alte retele, mai ales in sectorul academic. Importanta printre acestea era (si este) USENET sau Users' Network, care a inceput in 1979, cand cateva UNIX-computere au fost conectate impreuna.

USENET. In sute de grupuri de discutii despre orice subiect imaginabil, oamenii faceau schimb de noutati si imagini, in ciuda distantelor si a hotarelor. Alte retele s-au dezvoltat de-a lungul USENETului. Toate formau baza unui spatiu de comunicatie radical democratic. De exemplu, inaintea unei noi discutii pe care grupul o incepea, comunitatii Netului i se cerea un vot de accept. Grupurile de discutii joaca inca un rol mare pe Internet. Exista mii si zeci de mii in intreg Internetul. Alta mostenire a USENET este 'Netiquette', sau regulile de comportament pe Internet.

Zece ani dupa ce USENET isi incepuse dezvoltarea, Internetul a crescut la 80.000 de computere. A inceput sa fie un factor de luat in considerare in politica. Si curand, expresia 'Information SuperHighway' (autostrada informatiei) a devenit uzuala. In aceasta metafora, Internetul era vazut ca o importanta infrastructura pentru transportul unor bunuri vitale - informatiile.

In anii 80 si inceputul anilor 90, cand Internetul era folosit doar de un numar mic de cercetatori, arata mult diferit fata de prezent. Principalele aplicatii erau atunci posta electronica si grupurile de discutii (Newsgroups) plus diverse rutine de cautare si mecanisme de transfer al fisierelor. Aceasta era o lume UNIX, in care toate comunicatiile existau doar ca text sau numere, si liniile de comanda trebuiau memorate si tiparite.

Cand posta electronica, dar mai ales programele de cautare si de transfer al fisierelor au trebuit sa faca fata unor cerinte mai complexe, s-au dezvoltat noi navigatoare. Software-ul pentru fiecare trebuia sa fie obtinut si configurat separat. Folosirea fiecaruia trebuia sa fie invatata.

Pe scurt: datorita metalimbajului foarte dificil, folosirea Internetului in acea perioada era restransa la un mic grup de oameni din universitati si institute de cercetare.

1.1.2 Ce este internetul?

Internet-ul este o retea vasta de calculatoare care leaga milioane de retele mai mici din lumea intreaga. O retea este constituita in general dintr-un grup de calculatoare si de echipamente de calcul conectate pentru a oferi informatii si a gestiona resurse. Calculatoarele (PC-urile) dintr-un birou sunt, de obicei, interconectate pentru a putea utiliza aceleasi fisiere si aceiasi imprimanta. Toate calculatoarele legate in reteaua Internet pot schimba informatii intre ele. Este la fel de usor de comunicat cu un calculator dintr-un alt continent ca si cu unul din aceeasi camera. Putem spune ca o retea este un ansamblu de echipamente de tehnica de calcul (hardware), de produse-program (software) si infrastructura de comunicatie necesara, dedicate interconectarii calculatoarelor in vederea partajarii resurselor si serviciilor.

Servere-le si clientii: In Internet exista doua categorii importante de calculatoare: cele care inmagazineaza, sorteaza si distribuie informatiile se numesc gazde sau servere, iar cele care solicita accesul la aceste informatii si le utilizeaza se numesc clienti.

Liniile telefonice: Retelele de calcul care compun Internet-ul sunt legate prin sisteme telefonice private si publice. Ele pot trimite si primi informatii prin linii telefonice. Aceste linii variaza de la cabluri din fire de cupru pana la cabluri din fibra optica prin care se pot transmite mai multe date si cu viteza mai mare (de cca. 1000 de ori mai repede decat prin liniile telefonice din cupru). Unele retele pot fi legate si prin unde radio. Retelele din tari si continente diferite sunt deseori legate prin cabluri subacvatice sau prin sateliti.

Legaturile: Unele calculatoare - in special cele folosite de institutiile mari: universitati, departamente guvernamentale, mari companii etc. au o legatura la Internet "dedicata", aceasta inseamna ca ele sunt legate la Internet tot timpul. De obicei, persoanele care folosesc calculatoare acasa sau la birou nu au legaturi "dedicate". Ele pot sa solicite accesul la Internet folosind telefonul local si o procedura speciala (programe specifice pentru calculator). In felul acesta calculatorul de acasa sau de la birou intra in legatura, la cerere, cu un calculator deja "legat" in Internet (on-line).

Prin urmare Internet-ul este:

o cale de comunicare foarte rapida si atractiva intre oamenii acestei lumi.

- modalitatea prin care oamenii aflati oriunde pe Glob pot comunica si schimba informatii cu multa usurinta.

- oferta "de toate pentru toti", remarcandu-se prin usurinta cu care orice utilizator, fie el si novice in informatica, poate avea acces la informatie.

este o retea de retele. O retea este un grup de calculatoare care au fost conectate astfel incat sa poata comunica intre ele (sa faca schimb de informatii) Ele isi pot transmite mesaje unul altuia si pot folosi in comun informatiile sub forma de fisiere.

Retelele pot fi de mai multe tipuri

LAN (Local Area Network) - acest tip de retea are dimensiuni relativ restranse, de pana la cateva sute de metri, ceea ce inseamna ca timpul de transmisie in cazul cel mai defavorabil este limitat si cunoscut dinainte. Cunoscand aceasta limita, este posibil sa se implementeze anumite tehnici simple care altfel nu ar fi fost posibile. Totodata, se simplifica administrarea retelei.

MAN (Metrropolitan Area Network) - retea extinsa la nivelul unui oras. Aceste retele folosesc cel mai des tehhologia fara fir (wireless) sau fibra optica pentru a crea conexiuni.

WAN (Wide Area Network) - retea nationala. Se foloseste pentru interconectarea mai multor LAN-uri si a altor tipuri de retele, astfel incat sa se faciliteze comunicarea intre persoane si computere situate la mari departari unele fata de altele.

INTERNET este o interconectate de LAN-uri, MAN-uri si WAN-uri prin legaturi rapide (satelit, circuite comunicatie digitala etc.).

Toate calculatoarele dintr-o retea trebuie sa comunice intre ele pe baza unui set de reguli fixe (limbaj), denumit protocol Protocolul folosit s-a standardizat si se numeste TCP/IP (Transmission Control Protocol / Internet Protocol).

Pentru a beneficia de facilitatile Internet, un utilizator trebuie sa conecteze calculatorul sau la una dintre subretelele precizate mai sus. In acest mod, calculatorul sau devine nod in Internet si utilizand protocolul TCP / IP va putea folosi diverse programe cu rol de client pentru a putea transfera informatii de la alte calculatoare cu rol de server conectate la randul lor la Internet.

Dupa ce am aflat de este Internet-ul si care este istoria lui am ajuns la urmatoarea intrebare:

Cine administreaza Internet-ul?

La fel ca alte persoane, ma intreb si eu cine este aceea persoana, sau aceea companie care administreaza Internetu. Raspunsul la aceasta intrebare vine imediat:

NIMENI!!! Nu exista vreo persoana, sau companie care sa impuna o serie de reguli. Singurele reguli care guverneaza internet-ul sunt cele ale bunului simt.

Exista totusi o organizatie a utilizatorilor internet-ului numita ISOC (INTERNET SOCIETY), care are obligatia sa gestioneze din punct de vedere tehnic internet-ul si sa standardizeze tehnologia folosita.

1.1.3 Conectarea la Internet

Exista patru moduri principale de conectare la INTERNET:

Legatura permanenta (permanent connection).

Legatura directa prin modem (dial-in direct connection).

Legatura prin modem si terminal (dial-up terminal connection).

Legatura prin posta electronica.

Servicii disponibile in INTERNET

Comunicarea si schimbul de informatii in INTERNET se realizeaza prin "servicii", ce permit exploatarea si cautarea de informatii aflate in aceasta uriasa retea. Pentru oricare dintre servicii exista un calculator care solicita informatii - un client al serviciului respectiv - de la un alt calculator care furnizeaza informatiile, numit server. Fiecare calculator legat in retea, poate fi atat client cat si server.

Cel mai utilizat serviciu in INTERNET este World Wide Web (WWW).

Acesta este un sistem cu hipertext care va ajuta sa va deplasati pe cale electronica in jurul lumii, cautand informatii. Web va permite sa "urmariti" legaturile. Pentru a folosi serviciul WWW, aveti nevoie de un browser Web (rasfoitor prin INTERNET) un program care afiseaza documente Web. (Mozila Firefox, Internet Explorer, etc).

Aproape fiecare persoana (fizica sau juridica) si-a creat propria pagina Web, in care publica informatii utile. In momentul de fata, o mare parte din paginile de Web au un aspect comercial si deci informatia cu adevarat folositoare este in permanenta scadere. Acest lucru nu trebuie sa fie ingrijorator, deoarece acolo unde exista aspect comercial, apare implicit si legea concurentei. Datorita ei, numai firmele cele mai "capabile" vor reusi sa supravietuiasca puternicului val. Desi in ultimul timp a crescut capacitatea si nivelul de performanta al retelei INTERNET, utilizatorii percep o scadere a calitatii serviciilor datorata in special aglomerarii retelei.

Factorii care determina aglomerarea retelei INTERNET sunt:

- asaltul neprofesionistilor, care in conditiile unor costuri scazute de acces, manifesta un comportament irational si neeconomic, avand ca efect "poluarea" Internet-ului;

- inexistenta unor solutii tehnice de acces care sa faca o diferentiere a serviciilor solicitate si sa permita acordarea prioritatii diferentiate de servicii;

- imperfectiunea pietei serviciilor INTERNET, structura ei reflectandu-se asupra pretului si vitezei de comunicare;

Informatii necesare pentru conectare la INTERNET(preluate de la furnizorul de servicii).

Tipul de legatura asigurata prin SLIP (Serial Line Internet Protocol) sau PPP(Point-to-Point Protocol);

Denumirea utilizatorului;

O parola;

Numarul de telefon pentru accesul pe plan local al furnizorului;

Adresa IP(Internet Protocol) pentru Domain Name Server (pe scurt DNS este metoda folosita de INTERNET pentru a crea denumiri unice pentru fiecare server de retea);

Tehnica de autentificare (denumirea pentru conectarea si parola inscrise intr-o fereastra, sau alte metode.

Observatie:

Toate paginile Web sunt identificate printr-o adresa unica, denumita Universal Resource Locator (URL - sistem universal pentru localizarea resurselor).

Adresele retelei WWW incep in acelasi mod:

https:// reprezinta prescurtarea de la Hyper Text Transfer Protocol

1.2. Site-uri web

1.2.1 Notiunea de site web

Notiunea de site web provine din limba engleza (web site) si desemneaza o grupa de pagini multimedia (continand texte, imagini fixe, animatii s.a.), accesibile in Internet, de catre oricine, de obicei pe o tema anume, si care sunt conectate intre ele prin asa-numite hiperlinkuri. Diversele site-uri web pot fi create de catre o organizatie, o persoana particulara, institutii publice etc. Notiunea apare in limba romana scrisa sub trei forme(fara a exista o pozitie oficiala care sa o favorizeze pe vreuna dintre ele):

- sit;

- site (ca in limba engleza);

- si sait (propusa de lingvistul George Pruteanu).

De obicei un site web este administrat (creat, intretinut si actualizat) de catre un asa-numit webmaster, dar exista si alte posibilitati:

- site-ul web se actualizeaza automat si permanent pe baza unei baze de date;

- paginile sale se creeaza in mod dinamic si automat in functie de actiunea utilizatorului in cadrul unei aplicatii web;

- site-ul web se creeaza si e administrat chiar de catre utilizatorii sai.

World Wide Web, pe scurt WWW sau 'Web-ul,' este un univers de informatie disponibil prin protocol HTTP

1.2.2 Tipuri de site-uri Web

Paginile HTML (Hypertext Markup Language) constituie in anumite conditii, cel mai ieftin mijloc de a publica informatii in Internet. Home page, sau pagina initiala reprezinta un document HTML care serveste ca punct de intrare initial intr-un site web.

Pagina initiala trebuie sa contina informatii cu caracter general si introductiv precum si hiperlegaturi la resursele corelate. O pagina proiectata corespunzator contine butoane de navigare interne, care ajuta utilizatorul sa se deplaseze printre numeroasele documente la care are acces.

Practic, exista patru tipuri de site-uri Web:

a) Site-uri cu pagini statice

b) Site-uri cu pagini dinamice

c) Site-uri dezvoltate pe baze de date

d) Magazine virtuale

a) Site-urile cu pagini statice - se folosesc in special drept panouri publicitare. La un asemenea site web clientii doresc transpunerea in format HTML a principalelor brosuri (pliante) de prezentare. Un asemenea tip de site este relativ usor si ieftin de construit.

b) Site-uri cu pagini dinamice - aceste site-uri necesita o actualizare periodica (zilnica sau saptamanala) a elementelor specifice. La proiectarea unui astfel de site trebuie luate in considerare urmatoarele elemente:

- modul in care vor fi actualizate datele de pe site

- costurile operatiunilor de actualizare periodica.

Comunicarea cu clientii (utilizatorii) care apeleaza un astfel de site, se poate realiza prin inserarea de formulare de e-mail, pe paginile site-ului. In aceste conditii se poate lua in considerare si folosirea unui autoresponder pus la dispozitie de catre ISP.

In felul acesta se va transmite automat un mesaj de raspuns vizitatorului site-ului, instiintandu-l astfel de primirea mesajului transmis si multumindu-i pentru vizita.

c) Site-uri dezvoltate pe baze de date - aceste site-uri impun metode si tehnici speciale pentru realizare, necesitand actualizari frecvente ale elementelor componente. Aceste site-uri se administreaza extrem de greu, ele se bazeaza pe o baza de date (de exemplu: MySQL, Oracle), care poate fi actualizata in mod regulat prin intermediul unui program prioritar.

d) Magazinul virtual - acest tip de site este cel mai complicat si mai greu de utilizat, necesitand metode si tehnici speciale de proiectare si exploatare. Magazinele virtuale se bazeaza pe date stocate in baze de date si permit clientilor sa aleaga si apoi sa achizitioneze in siguranta produse sau servicii on line, cu ajutorul cartilor de credit sau a banilor virtuali (electronic cash). Procesarea cartilor de credit este partea cea mai dificila in dezvoltarea unui astfel de site.

Motor de cautare

Ce este un motor de cautare?

Motor de cautare - este un server care navigheaza singur pe Internet si captureaza titlul, cuvinte cheie si continutul paginilor ce compun site-urile. Toate paginile gasite sunt inregistrate apoi intr-o baza de date. In momentul in care un utilizator cauta intr-un motor de cautare dupa o anumita fraza sau un cuvant, motorul de cautare se va uita in aceasta baza de date si in functie de anumite criterii de prioritate va crea o lista de rezultate pe care o va afisa sub forma de rezultat.

Cum cautam?

Motoarele de Cautare se folosesc astfel: puteti cauta in orice limba dorti. Alegeti informatia pe care doriti sa o gasiti. De exemplu: cautati firme care se ocupa cu publicitatea. Expresiile uzuale ar fi:

publicitate web - in romana sau

web advertising-in engleza.

Cautarea se poate largi astfel:

- Timisoara publicitate, reviste de publicitate web, ziare publicitate, ziare electronice sau

e-zines-in engleza.

Daca doriti o cautare zonala scrieti, mai intai numele orasului/zonei urmat de numele de domeniu cautat; Timisoara(Romania) publicitate etc. Expresiile nu trebuie sa aiba mai mult de 3-4 cuvinte. Dupa alegerea expresiei introduceti cuvintele din care este compusa, punand virgula intre ele. Apasati butonul Search si asteptati rezultatele.

Cele mai cunoscute motoare de cautare:

www.google.com

www.yahoo.com

www.altavista.com

Google- https://www.google.com

Google a cunoscut, doar in cativa ani, un succes fenomenal. Lansat ca un simplu motor in faza de testare, in septembrie 1998, de doi studenti de la Universitatea Stanford, Larry Page si Sergey Brin, motorul de cautare isi inaugura versiunea sa comerciala un an mai tarziu. Google primeste in fiecare zi circa 130 de milioane de cereri din toata lumea deoarece el nu este un motor de cautare ca toate celelalte. Chiar daca se bazeaza pe cautarea cuvintelor cheie, clasate in functie de numar si de site-urile de origine, Google nu merge pe principiul ca site-urile respective sa plateasca pentru a fi afisate in capul listei. Sistemul "page rank", inventat de cei doi studenti, reprezinta popularitatea paginilor.

O alta particularitate a sa este de ordin strategic: in timp ce alte motoare sunt invadate de zeci de bannere publicitare, pe Google, publicitatea se limiteaza doar la cateva link-uri hypertext discrete, care apar pe ecran doar daca sunt in raport cu informatiile cautate. De asemenea, o alta caracteristica este functionarea in mai multe limbi. Poate chiar exagerat de multe: maghiara, sarba, ucraineana, turca, rusa, poloneza, olandeza etc.

Pe de alta parte, Google efectueaza cercetari documentare complexe pentru cine este interesat, fie persoana fizica sau juridic, bineinteles, contra cost. Deoarece concurenta in acest domeniu devine din ce in ce mai acerba, recent, Google a organizat un concurs al carui premiu era de 10.000 de dolari. Castigatorul premiului a creat o modalitate de cautare care permite gasirea paginilor dupa zona geografica in care sunt localizate. Dar adevaratul castigator al concursului poate fi chiar Google deoarece si-a imbunatatit tehnologiile de cautare prin programele primite de la participanti si pe care le poate administra dupa bunul plac, datorita conditiilor incluse in formularele de participare la concurs.

           Astfel, tehnologiile pe care le-a primit Google se refera la reducerea erorilor in ceea ce priveste paginile create, posibilitatea ca hyperlink-urile sa fie conectate mai bine atunci cand site-ul tinta isi schimba locatia, cautarea informatiilor in fisiere compresate etc.

Yahoo- www.yahoo.com

Cei doi dezvoltatori ai lui Yahoo!, David Filo si Jerry Yang, au lansat acest portal al web-ului in aprilie 1994. Initial era o unealta rezervata uzului personal, acestia dandu-si ulterior seama ca listele lor incepeau sa devina foarte importante, dar in acelasi timp si dificil de administrat. Nascut dintr-o idee simpla, inceput ca hobby, Yahoo a devenit, in timp, o adevarata intreprindere. Yahoo a cunoscut un succes culminant si milioane de oameni l-au folosit regulat pentru a explora web-ul. O data cu lansarea lui Yahoo!France, portalul s-a extins cu Yahoo!Japon, Yahoo!Canada, Yahoo!Germany, Yahoo!Irlande, Yahoo!Spany. Echipa primeste peste 500 de inscrieri zilnice. Site-urile al caror continut este ilegal sunt "exilate" si totodata, se face distinctia intre site-urile comerciale si celelalte.

De asemenea, Yahoo se vrea a fi foarte precis in ceea ce priveste clasamentul geografic al site-urilor. Ca si concurentii sai, Yahoo, propune servicii gratuite: informatii financiare, meteo, sport, stiri, selectia saptamanii, site-urile zilei remarcate de surferi, adrese de e-mail gratuite etc.  

AltaVista- www.altavista.com

Constatand ca pierdea utilizatori in mod constant spre bucuria unui rival cum este Google, AltaVista a lansat, de curand, un nou serviciu, AltaVistaPrima, conceput sa ajute oamenii sa-si cizeleze cautarile prin oferirea a 12 subgrupe de rezultate intr-o singura lista lunga a tuturor siturilor Web care contin informatia cautata. Noul serviciu a fost trecut in teste beta pentru a mari durata timpului pe care oamenii il petrec pe situl sau si numarul de cautari. AltaVista reprezinta o baza de date, constituita automatic de un robot care indexeaza textul integral al documentelor de pe web si al grupurilor de stiri. DigitalEquipment anunta in 1997 cifre record pentru AltaVista: 32 de milioane de pagini vizualizate zilnic de 18 milioane de

utilizatori individuali din intreaga lume.
            Venitul generat de publicitate pe AltaVista a crescut cu 267% in 1997. Planurile imbunatatirilor prevedeau inlcuderea noilor zone de cautare permitand accesul instantaneu la informatii de actualitate, calatorii, finante, sanatate etc.
            AltaVista este situat in SUA, are o acoperire internationala, este in engleza (exista si versiuni in franceza, spaniola si portugheza, dar interfata se poate adapta in functie de limba utilizatorului) si propune doua moduri de cautare: simpla si avansata, aceasta din urma propunand o gestiune completa a operatorilor booleeni, posibilitatea de a selecta limba pentru raspunsurile afisate si rafinarea cautarilor. Cautarea avansata permite limitarea rezultatelor in functie de data, limba etc..

Ofera, de asemenea, si optiunea de cautare in grupurile de stiri Usenet. Singurele inconveniente ar fi ca anumite formate sunt excluse din indexare: pdf-urile, diferite alfabete, fisierele compresate.

1.3. Importanta crearii paginilor web

In ziua de astazi importanta site-urilor web ca modalitate de prezentare a unei afaceri sau ca scop informativ este deja un lucru cert pentru fiecare.

Practic acum si cele mai mici firme au o pagina web in care prezinta cel putin datele de contact ale firmei si domeniul de activitate. Afacerile se dezvolta si cei care iau in calcul si o prezenta online pot spera sa gaseasca noi si noi clienti si/sau parteneri de afaceri.

Pentru a raspunde cat mai succint si explicit la intrebarea: "De ce mi-as construi o pagina web?" am sintetizat urmatoarele motivele:

Primul motiv este tocmai argumentul pe care l-am expus in cadrul introducerii. Este

vorba despre a-ti construi o pagina web pentru a fi prezent in spatiul internetului.

2. Un al doilea motiv il reprezinta faptul ca prin pagina web iti creste credibilitatea. Prezentarea de pe internet poate fi realizata intr-o maniera care sa creeze o impresie cat mai buna. Acest aspect poate fi intarit si prin expunerea unei filosofii a firmei. In cazul in care firma este oricum mare, pagina web creeaza unitatea intre punctele sale si ofera oportunitatea de a detalia filosofia organizatiei in ansamblu.

3. Nu doar credibilitatea poate fi potentata dar si vizibilitatea firmei. Internetul este utilizat de oameni de pretutindeni. Acestia pot intra foarte usor in contact cu firma chiar daca sunt la mii de kilometri distanta. In cazul in care nu ar exista o pagina web, sansele de a fi facut cunoscut la distanta devin mult mai mici.

4. Internetul nu iti ofera doar sansa de a te face cunoscut la distanta ci si local. Daca, de exemplu, o persoana doreste sa comande o pizza si dispune de internet, atunci poate cauta pizzerii si numere de telefon pe internet. In cazul in care pizzeria ta nu are pagina web, foarte sigur ca persoana nu o va gasi si va comanda pizza din alta parte.

5. In ceea ce priveste pretul unei paginii web, acesta poate fi chiar foarte mic, lucru care depinde de complexitatea site-ului creat. Cu toate acestea, crearea unui asemenea site iti ofera un loc de "desfacere" a produselor si serviciilor.

6. O data ce ne-am rezervat un loc pe internet suntem prezenti 24 de ore pe zi, 7 zile pe saptamana.

7. Pentru a publica anumite informatii la momentul potrivit. Ce faceti de exemplu in cazul in care informatiile dumneavoastra nu trebuie oferite mai devreme decat miezul noptii? Bilantul anual, castigatorul unui concurs, anuntul de presa pentru un eveniment mult asteptat? Acum pe internet, puteti oferi aceste informatii exact la miezul noptii sau la momentul potrivit, cu toate materialele insotitoare, ca fotografii, grafice, etc. oferite exact in acelasi moment. Imaginati-va anticipatia stirii: ' toate materialele vor fi disponibile pe pagina noastra la 00:01'. Informatia va fi oferita celor care asteapta ca aceasta informatie sa fie publicata si nu celor care risca sa va transmita informatia prea devreme.

2. Tehnologi folosite

2.1 HTML

HyperText Markup Language

2.1.1. Notiuni generale

Unul dintre primele elemente, fundamentale de altfel, ale WWW (World Wide Web) este HTML (HyperText Markup Language), standard ce descrie formatul primar in care documentele sunt distribuite si vazute pe Internet. Multe din trasaturile lui, cum ar fi independenta fata de platforma, structurarea formatarii si legaturile hipertext, fac din el un foarte bun format pentru documentele Internet si web. Primele specificatii de baza ale web-ului au fost HTML, HTTP si URL.

Paginile HTML sunt formate din etichete sau taguri si au extensia .html sau .htm. In marea lor majoritate aceste taguri sunt pereche, una de deschidere <tag> si alta de inchidere </tag>. Browserul interpreteaza aceste etichete afisand rezultatul pe ecran. HTML-ul nu este un limbaj case sensitiv (nu face deosebirea intre litere mici si mari). Unele taguri permit utilizarea de atribute care pot avea anumite valori:

<tag> </tag>

Componentele unui document HTML sunt:

versiunea HTML a documentului sau doctype-ul documentului

zona head cu etichetele <head> </head>

zona body cu etichetele <body> </body>

Toate paginile HTML incep si se termina cu tagurile <html> si </html>. In interiorul acestor taguri, se gasesc perechile <head>, </head> si <body>, </body>.

<html>

<head>

<title>Titlu pagina</title>

</head>

<body>

Continut pagina

</body>

</html>

Un alt element important in crearea unei paginii web il reprezinta DOCTYPE-ul. DOCTYPE-ul e necesar sa existe intr-o pagina web incat prin acest tag ii spunem browser-ului cum sa interpreteze pagina.

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>

<html xmlns='https://www.w3.org/1999/xhtml'>

<head> contine titlul paginii intre etichetele <title> si </title>, descrieri de tip <meta>, stiluri pentru formatarea textului, scripturi si linkuri catre fisiere externe (de exemplu scripturi, fisiere de tip CSS).

Etichetele de tip <meta> contin cuvinte cheie, descrierea paginii, date despre autor, informatii utile motoarelor de cautare si au urmatorul format:

<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-2'>

<meta name='description' content='Agentie de turism'>

<meta name='keywords' content='agentie,turism,vacanta,hotel,.'>



In exemplul anterior, au fost definite 3 taguri <meta>, pentru specificarea tipului continutului paginii, a descrierii, respectiv a cuvintelor cheie. Pentru a atasa un fisier de tip css, pentru stilurile de pe pagina, vom folosi urmatoarea sintaxa :

<link rel='stylesheet' type='text/css' href='stilul.css'>

Practic, tagul <meta> contine toate tagurile afisate de browser pe ecran. Pentru a introduce anumite comentarii in HTML, acestea trebuie plasate astfel :

<!-- Comentariu--> 

2.1.2. Formatarea textelor

Formatarea continutului paginii se face cu ajutorul unor taguri simple. Spre exemplu, in HTML, trecerea la un rand nou se face doar prin introducerea tagului <br>, iar pentru paragraf nou, prin folosirea tagului <p>, cu inchiderea lui. Folosind taguri adecvate, textul poate fi formatat.

Pentru fonturi, se poate modifica marimea (size), culoarea (color), forma (<b>, <strong> - bold, <i> - italic, <u> - underline, etc.), familia (family - Arial, Verdana, etc.), textul poate fi aliniat pe orizontala sau verticala iar titlurile (heading), de la 1 la 6, sunt diferite ca marime.

Etichetele <div> si <span> delimiteaza un bloc text in vederea formatarii. Unul din atributele blocului <div> este align care poate lua valorile center (aliniere pe centru), left (aliniere la stanga), right (aliniere la dreapta).

Pentru exemplificare, vom prezenta tagurile descrise mai devreme:

<b>Tag pentru bold</b>

<i>Tag pentru italic</i>

<u>Tag pentru subliniere</u>

<strong>Tag ingrosat</strong>

<font color="red">Text rosu</font>

<font family="Arial">Text scris cu font Arial</font>

<font size="10">Text scris cu font de 10</font>

<div align='center'>Text centrat</div>

<h3>Text de tip Heading 3</h3>

Pentru organizarea informatiei pe pagina, pot fi folosite listele. Acestea pot fi neordonate, ordonate si de definitii. Listele neordonate sunt delimitate de tagurile <ul> si </ul>, iar elementele, de <li> si </li>. Listele ordonate sunt delimitate de tagurile <ol> si </ol>, iar elementele de <li> si </li>. Elementele listei pot fi particularizate folosind atributul type care poate lua valorile A (litere mari), a (litere mici), I (cifre romane mari), i (cifre romane mici), 1 (optiunea default). Listele de definitii sunt delimitate de tagurile <dl> si </dl>. Termenii listei sunt delimitati de etichetele <dt> si </dt>, iar definitiile termenilor de <dd> si </dd>.

2.1.3. Linkuri

Un tag important in HTML este <a> (linkul), deoarece ofera utilizatorului posibilitatea navigarii de la o pagina la alta. De obicei, link-ul este subliniat, iar cursorul isi schimba forma, la trecerea asupra lui. Totusi, prin modificarea stilurilor, linkul poate aparea in pagina cu o culoare distincta, fara a fi subliniat, in functie de decizia web designerului.

Link-ul are urmatoarele atribute:

href - adresa fisierului destinatie (nume fisier - daca se afla in acelasi folder cu pagina curenta, adresa relativa - daca se afla pe acelasi server sau disc, indicandu-se calea, adresa URL - adresa completa a paginii )

target - in ce fereastra se va deschide fisierul destinatie (_blank - pagina va fi incarcata intr-o noua fereastra, _parent - pagina va fi incarcata in fereastra parinte, _top - pagina va fi incarcata in fereastra top a cadrului, _self - pagina va fi incarcata in aceeasi fereastra )

title - mica descriere asociata legaturii afisata in momentul in care mouse-ul se afla deasupra textului de link

Poate fi inserat un link catre o adresa de email astfel ca, la apasarea acelui link, se va deschide o fereastra a clientului de email instalat, care va avea automat trecuta adresa la destinatar.

2.1.4. Imagini

Majoritatea paginilor web contin imagini, cate au rolul de a le face mai atractive pentru vizitatori, desi pretul platit consta in incarcarea mai grea. Cateva din formatele de imagini utilizate in paginile web sunt: JPEG (*.jpg sau *.jpeg), GIF (*.gif), BMP (*.bmp), PNG (*.png). Formatul GIF este recomadat pentru realizarea butoanelor si a icoanelor iar JPG pentru fotografii.

Tagul folosit pentru inserarea unei imagini in pagina este:

<img> si are urmatoarele atribute:

- src (sursa, locul unde se afla imaginea, cu aceleasi posibilitati ca si la adresele linkurilor) ;

- width (latimea imaginii);

- height (inaltimea imaginii);

- alt (numele care inlocuieste imaginea pana aceasta se incarca sau cand nu a fost gasita); - border (chenar, daca valoarea este 0, inseamna ca imaginea nu are border).

Dimensiunea imaginii afisate de browser este stabilita de argumentele width si height, care pot fi diferite de dimensiunile imaginii originale, caz in care imaginea va fi redimensionata automat de catre browser. Aceste etichete au o mare utilizare deoarece tabele constituie structura care sta la baza organizarii marii majoritati a paginilor web (inclusiv cea de fata).

2.1.5. Tabele

Des intalnite, in creearea paginilor web, sunt tabelele. Acestea sunt formate din linii si coloane, impartind zona in celule. Fiecare celula pastreaza informatia care va fi afisata. Pentru o afisare corecta a tabelului, fiecare rand va avea acelasi numar de celule. Daca dorim ca o celula sa fie goala, vom introduce un spatiu gol (space) sau codul echivalent &nbsp;.

Pentru inserarea unui tabel este folosita perechea de taguri <table> si </table>, pentru un rand <tr> si </tr>, iar pentru o celula <td> si </td>. De asemenea, tabele pot fi imbricate, adica in interior pot contine unul sau mai multe tabele.

Atributele tagului <table>sunt:

border (bordura),

width (latimea tabelului),

height (inaltimea tabelului),

bgcolor (culoarea de fundal),

background (imaginea de fundal),

cellspacing (distanta intre celule),

cellpaddind (distanta dintre marginea celulei si continutul acesteia).

Pentru celule, atributele etichetei <td> sunt: align (aliniere pe orizontala a continutului) , valign (aliniere pe verticalala a continutului: top, bottom, middle), width (latimea celulei), height (inaltimea celulei), bgcolor (culoarea de fundal), background (imaginea de fundal), colspan (uneste celula cu cea din dreapta ei), rowspan (uneste celula cu cea de sub ea). Un exemplu de tabel cu o linie si o coloana :

<table border="0" width="100%" cellpadding="0" cellspacing="0">

<tr>

<td>Celula</td>

</tr>

</table>

2.1.6 DIV-uri

Div-ul adica <div>/div> nu este altceva decat o caseta care este folosita pentru gruparea elementelor HTML. div-urile sunt folosite pe scara larga impreuna cu CSS. Folosind atributele id si class putem aplica pentru o formatare speciala. Div-urile pot avea mai multe proprietati: border, width, height, background, position, margin, padding.

<div id='stil'>

<p> Acesta este un paragraf aflat intr-un div</p>

</div>

2.1.7. Formulare

Folosind formularele, webdesignerul sau administratorul site-ului poate colecta diverse informatii de la vizitatori. Pentru realizarea acestora, se va utiliza tagul <form>, care are, printre cele mai importante atribute, action si method.

action metioneaza adresa scriptului PHP (aflat pe server) care va interpreta formularul

method indica metoda folosita de browser pentru transmiterea formularului si poate lua valorile GET si POST

o       GET - datele sunt trimise prin adaugarea la adresa indicata de action. Permite trimiterea unor mici cantitati de date.

o       POST - datele sunt trimise separat si sunt permise cantitati mari de date.

<form method="metoda" action="url" >

Se foloseste in mod consecvent metoda POST, deoarece alegerea intre metodele GET si POST este destul de complicata. Ca regula empirica, multi programatori folosesc GET pentru formulare care executa o cautare sau o interogare, respectiv POST pentru formulare care actualizeaza o baza de date sau un fisier. Astfel, datele trimise prin metoda GET pot fi vizualizate de catre utilizator.

Formurile contin diverse tipuri de controale. Pentru a se creea o caseta de tip text, sintaxa este:

<input type="tip" name="nume" />

Atributul name atribuie casetei text un nume, astfel incat continutul sau sa fie accesibil unui script PHP. Numele atribuit unui control trebuie sa fie unic in cadrul formularului si trebuie sa respecte regulile pentru denumirea variabilelor PHP, cu exceptia ca nu trebuie sa inceapa cu simbolul $. HTML nu are o eticheta /INPUT.

Pentru scrierea de parole, se va declara o caseta text de tip password:

<input type="password" name="parola" />

Pentru a introduce un buton in formular, vom scrie sintaxa:

<input type="submit" name="trimite" value="Trimite" />

Ca o caseta cu text, o suprafata cu text (textarea) permite unui utilizator sa introduca text.Cu toate acestea, o suprafata cu text poate permite utilizatorului sa introduca mai multe linii de text, in timp ce o caseta de text permite introducerea unei singure linii de text.

<textarea name="nume" rows="numarRanduri" cols="numarColoane" ></textarea>

Atributul name este obligatoriu si specifica numele controlului. Si atributul rows este obligatoriu. Acesta specifica numarul liniilor de text vizibile in suprafata cu text. Atributul cols este facultativ si specifica numarul coloanelor de text vizibile in suprafata cu text.

Tagul textarea trebuie combinat cu un tag de inchidere. Orice text care apare intre aceste taguri va fi prezentat drept continut initial al controlului de tip suprafata cu text.

 Daca dorim sa trimitem la server si alte date, care sunt ascunse utilizatorului, vom folosi in formular campuri ascunse. Valorile campurilor ascunse sunt trimise la server alaturi de valorile altor controale, dar utilizatorul nu are posibilitatea de a vizualiza sau manipula valorile campurilor.

<input type="hidden"  name="nume" value="valori" />

Pentru datele care pot avea numai una din doua valori, cum ar fi "pornit" sau "oprit", caseta de validare de tip checkbox este controlul ideal. De exemplu, caseta de validare este un control adecvat pentru a permite utilizatorului sa opteze pentru livrarea rapida a unui colet. In cazul in care caseta de validare este validata, coletul va fi livrat mai rapid, in caz contrar, coletul se va deplasa cu mijloace obisnuite.

<input type="checkbox" name="verificare" value="verificat" checked='checked' />

Daca atributul checked='checked' este trecut, caseta de validare va fi selectata in mod prestabilit; in caz contrar, caseta de validare nu este selectata. Atributul value specifica valoarea care este trimisa serverului in cazul in care caseta de validare este selectata; daca atributul nu este specificat, se va trimite valoarea activat.

Ca si casetele de validare, butoanele radio pot avea numai una din doua valori. Cu toate acestea, butoanele radio sunt organizate in grupuri, iar, la un moment dat, poate fi activat un singur buton radio din cadrul unui grup; toate celelalte trebuie sa fie dezactivate. Butoanele radio sunt utile pentru a permite unui utilizator sa aleaga dintr-o serie de alternative mutual exclusive. De exemplu, se poate folosi un set de trei butoane radio pentru a permite utilizatorului sa specifice tipul de ambalaj pentru un cadou: fara ambalaj, cu ambalaj simplu sau sofisticat. Numai unul din cele trei butoane radio poate fi activat; la un loc, setul de butoane radio ofera utilizatorului o tripla optiune.

<INPUT TYPE="radio" NAME="butonRadio" value="valoare" checked='checked' />

Atributele unui buton radio au aceeasi semnificatie ca si acelea ale unei casete de validare. Toti membrii unui set de casete de validare prezinta acceasi valoare a atributului name.

Un alt control popular in formulare este selectia. O selectie este un meniu care defileaza, de unde utilizatorul poate alege una sau mai multe optiuni. De exemplu, intr-o selectie pot fi enumerate numele tarilor din Europa, astfel incat un utilizator sa poata selecta optiunea dorita.

<select name="nume">

<option value="textValoare" selected="selected">Optiune</option>

<option value="textValoare2">Optiune 2</option>

</select>

Tagul select este folosit in combinatie cu tagul de inchidere. Intre cele doua etichete este inclusa o serie de etichete option.

Etichetele option pot avea atribute ca:

atributul multiple, multiple='multiple' arata ca utilizatorul poate alege mai multe optiuni, mentinand apasata tasta CTRL si executand click pe aceasta. In absenta atributului multiple, utilizatorul poate selecta o singura optiune. Daca se specifica atributul multiple, trebuie specificat si un atribut name, care atribuie un nume de tablou ca nume al controlului.

atributul size specifica numarul de optiuni vizibile. Prin utilizarea unui buton de derulare in jos sau a unei bare de defilare, utilizatorul poate manipula selectia pentru a obtine accesul la restul optiunilor si a alege dintre acestea.

Eticheta option este combinata cu cea de inchidere. Textul dintre aceste etichete este cunoscut sub numele de continut al optiunii. Continutul optiunii apare in controlul select.

Un buton foarte util pentru formulare este cel de reinitializare. Acest buton este folosit pentru ca utilizatorul sa poata sterge toate informatiile incluse intr-un formular.

<input type="reset" value="Reseteaza" />

Atributul obligatoriu pentru aceasta eticheta este type. Atributul optional value specifica textul care va aparea pe suprafata butonului de reinitializare; daca atributul este omis, pe buton va scrie Reset.

2.2. PHP

Hypertext Preprocessor

2.2.1 Introducere in PHP

PHP este un limbaj de programare destinat in primul rand internetului, aducand dinamica unei pagini web. Este unul din cele mai importante limbaje de programare web open-source si server-side. Numele PHP provine din limba engleza si este un acronim recursiv:

PHP: Hypertext Preprocessor

PHP a fost inceput in 1994 ca o extensie a limbajului server-side Perl, iar in vara anului 1998 lansat o noua versiune a interpretorului PHP aceasta versiune primind numele de PHP 3.0. In mai 2000 a fost lansat PHP 4.0, avand la baza Zend Engine 1.0. Pe 13 iulie 2004 a fost lansat PHP 5, care ofera posibilitatea programarii orientate pe obiecte.

In prezent, exista mai mult de un million de siteuri care folosesc PHP, pentru ca imbina caracteristici dintre cele mai complexe cu simplitatea in utilizare. PHP este un instrument de frunte pentru dezvoltarea aplicatiilor web, fiind in acelasi timp comod pentru orice nivel de programatori, chiar si pentru incepatori.

Limbajul PHP furnizeaza continut dinamic, adica date care se modifica automat de la o zi la alta sau chiar mai rapid. Continutul e un element important, pentru ca atrage vizitatorii, determinandu-i sa revina permanent pentru informatii noi. In plus, spre deosebire de limbajele gen JavaScript, codul PHP este rulat pe server, nu in browser. Astfel, PHP poate obtine accesul la fisiere, baze de date si alte resurse care nu sunt accesibile procedurilor scrise in JavaScript.

Intr-o pagina HTML poate fi inclus cod PHP. Acesta se va executa de fiecare data cand pagina este incarcata. Codul PHP genereaza cod HTML, care este vazut astfel de vizitator.

Operatiile pe care programele PHP le executa sunt:

Afisare de date - o operatie simpla, datele trebuie astfel trimise incat ele sa fie disponibile si vizibile pentru utilizator

Prelucrare de date

Citire de date

PHP poate fi folosit pe aproape toate marile sisteme de operare: Linux, variante de Unix, Windows, Mac OS, RISC, etc. Exista, de asemenea, suport pentru majoritatea serverelor de web din prezent: Apache, Microsoft Internet Information Server, Personal Web Server, Netscape, Oreillz Website Pro, Caudium, Xitami, OmniHTTPd, etc. Pentru majoritatea serverelor, PHP are un modul, iar pentru celelalte suporta tandardul CGI.

2.2.2 Puncte forte

In comparatie cu alte limbaje de programare destinate web-ului, PHP are multe puncte forte

printre care :

-performanta ridicata - utilizand un singur server ieftin puteti oferii milioane de accesari pe zi.Daca utilizati un numar mare de servere de consum, capacitatea de servire devine practic nelimitata.

-interfete pentru multe sisteme de baze de date diferite - PHP are conexiuni native disponibile pentru multe sisteme de baze de date. In afara de bazele de date MySql, va mai puteti conecta direct, printre altele, si la alte sisteme de gestiune a bazelor de date. Xampp este o aplicatie care contine atat serverul apache pe care se ruleaza scripturile php, cat si phpmyadmin-ul care este un sistem de gestiune a bazelor de date care utilizeaza o interfata foarte usor de folosit.

-biblioteci incorporate pentru multe din taskurile Web obisnuite - fiind destinat web-ului, are functii incorporate pentru realizarea multor operatii utile cum ar fi prelucrarea de imagini, generarea de fisiere PDF, lucrul cu sesiuni, cookie etc..

-cost scazut - cand este vorba de cost, php sta cel mai bine. PHP-ul este gratis.

-usurinta in invatare si utilizare - este foarte usor de invatat si la fel de usor de utilizat. Sintaxa PHP este bazata pe sintaxa altor limbaje de programare. In principal C si Perl.

-suport puternic orientat pe obiecte - ofera atat posibilitatea programarii procedurale cat si posibilitatea programarii orientata pe obiect. Ca si in alte limbaje de programare si in PHP intalnim mostenire, atribute private si protected, clase si metode abstracte, interfete, constructori si destructori.

-portabilitate - PHP-ul poate fi utilizat pe toate sistemele de operare majore, inclusiv Linux, multe variante Unix (inclusiv HP-UX, Solaris si OpenBSD), Microsoft Windows, Mac OS X, RISC OS si probabil altele.

2.2.4 Sintaxa PHP

Intotdeauna, codul php este delimitat cu etichetele <? cod php ?> si/sau <?php cod php ?>.

<?php

echo 'Acesta este primul meu script php';

?>

Observam instructiunea echo, instructiune de afisare, care va scrie stringul dat ca parametru. Instructiunea echo este o functie echivalenta cu printf(), System.out.println(). Instructiunile PHP se incheie cu caracterul punct si virgula. Pentru delimitarea unei expresii de tip text, folosim ghilimelele, iar pentru concatenarea stringurilor, vom folosi caracterul punct.

Comentarea codului se face folosind doua caractere slash (//), atunci cand dorim sa comentam doar o linie, sau /* comentariu */ atunci cand comentariul se intinde pe mai multe linii.

Variabile

Variabilele in PHP, respecta anumite reguli, astfel:

. Numele incepe cu simbolul $

. Urmatorul caracter este underscore (_) sau o litera

. Apoi pot fi adaugate litere, cifre sau liniute de subliniere

Trebuie notat faptul ca limbajul PHP este case sensitive, deci, in numele variabilelor, diferenta dintre literele scrise cu majuscule si cele scrise cu minuscule este importanta. Variabila denumita $Variabila este diferita de variabila $variabila.

$variabila="Aceasta este o variabila";

$var= 4;

2.2.6 Tipuri de date

String

Inainte de a putea folosi un sir de caractere, trebuie mai intai sa il creeam! Un sir de caractere pote fi folosit direct intr-o functie, sau il putem pune intr-o variabila. Mai jos vom crea exact acelasi text de doua ori: in primul caz vom pune sirul intr-o variabila, iar in cel de-al doilea punem sirul de caractere direct in functie.

<?php

$string='Buna ziua!';

echo 'Buna ziua!';

echo $string;

?>

In exemplul de mai sus primul sir de caractere este stocat in variabila $string, in timp ce cel de-al doilea sir de caractere va fi folosit in functia echo si nu trebuie sa fie depozitat. Rezulatul va fi:

Buna ziua! Buna ziua!

Array

Vectorii in PHP sunt niste multimi formate din chei. Fiecarei chei din vector i se ataseaza o valoare. Acest tip de date este optimizat astfel incat sa poata fi folosit in locul urmatoarelor structure de date: liste, colectii, stive, cozi si altele. Valoarea unei variabile de tip vector se poate specifica folosind constructia:

array(cheie => valoare, cheie=> valoare,.). Exista trei tipuri de array:

. Array numeric

. Array asociativ

. Array multidimensional

Array numeric

$tari = array('Romania','Grecia','Bulgaria');

Array asociativ

$tari=array('Romania'=>"Timisoara", 'Grecia'=>"Atena", 'Bulgaria'=>"Varna");

Array multidimensional

$tari=array( "Romania"=>array("Timisoara", "Iasi", "Cluj"),

"Franta"=>array("Lyon", "Paris")

);

Boolean

Este cel mai simplu tip de date. O variabila de tipul boolean poate avea doar doua valori: TRUE sau FALSE (ADEVARAT sau FALS). De asemenea, poate lua valori intregi care sa le reprezinte pe cele de mai sus. Astfel, valoarea 0 inseamna FALSE, iar orice alta valoare intreaga diferita de 0 inseamna TRUE.

Integer

O variabila de tip integer reprezinta o valoare din multimea numerelor intregi. Aceste numere pot fi specificate in baza 10, in baza 16 sau in baza 8, conventiile fiind aceleasi ca si in limbajele C/C++, Java.

Float



O variabila de tip float poate fi specificata folosind fie forma zecimala, fie cea stiintifica (cu exponent).

Constante

Constanta este un identificator pentru o valoare simpla. Valoarea constantei nu se modifica pe durata executiei scriptului. Numele constantei este case-sensitive, ca si in cazul variabilelor. Prin conventie, constantele se scriu intotdeauna cu litere mari.

2.2.7 Operatori

In toate limbajele de programare, operatorii sunt utilizati pentru a efectua operatii de manipulare de variabile si valori. In PHP ca si in alte libaje de programare, exista mai multe categorii de operatori:

Operatorii de atribuire;

Operatorii aritmetici;

Operatorii de comparare;

Operatorii String;

Operatorii de atribuire

Operatorul de atribuire este: "="

$ex1= 3;

$ex2= $ex1;

Acum atat $ex1 cat si $ex2 vor avea valoarea egala cu 3.

Operatorii aritmetici

Operator

Nume

Exemplu

+

Adaugare

2+2

-

Scadere

4-2

*

Inmultire

3*5

/

Impartire

6/3

%

Modulo

50%5

Operatori de comparare

Comparatiile sunt utilizate pentru a verifica relatia dintre variabile si/sau valori. Operatorii de comparare sunt folositi in interiorul conditiilor pentru a face evaluarea returnand adevarat sau fals.

Operator

Nume

Exemplu

==

Egal cu

$x==$y

!=

Diferit

$x!=$y

<

Mai mic decat

$x<$y

>

Mai mare decat

$x>$y

<=

Mai mic sau egal

$x<=$y

>=

Mai mare sau egal

$x>=$y

Operatori String

Dupa cum am vazut mai devreme punctul '.' este utilizat pentru a adauga doua siruri de caractere, impreuna. In PHP .(punct) se numeste operator de concatenare.

<?php

$sir1='Salut ';

$sir2='George!';

echo $sir1.$sir2;

?>

Instructiuni in PHP

Instructiunea if.else

Pentru a intelege cum functineaza instructiunea if.else vom lua urmatorul exemplu:

<?php

$numar = 3;

if ( $numar == 3 ) else

?>

Rezultatul va fi: Adevarat! Numarul este 3

Ce contine codul de mai sus:

- mai intai am definit o variabila careia i-am dat valoarea 3;

- in acest exemplu, vom compara o variabila cu o valoare. Pentru a face o astfel de comparatie, vom utiliza '==';

- $numar este egal cu 3, asa ca instructiunea va fi evaluate cu valoarea adevarat;

- codul cuprins intre (adica: echo' Adevarat! Numarul este 3') va fi executat in momentul in care declaratia este adevarata;

- in acest caz codul cuprins intre instructiunii else nu va ma fi folosit.

Instructiunea ELSEIF

Aceasta instructiune este (dupa cum vedeti) o combinatie dintre instructiunea if si cea else. Aceasta poate verifica fiecare conditie pana in momentul in care una dintre conditiile gasite returneaza o valoare adevarata.

<?php

$a = 20;

$b = 1;

$rezultat = $a + $b;

if($rezultat == '20') elseif ($rezultat == '21') else

?>

Instructiunea SWITCH

Aceasta instructiune functioneaza asemanator cu cea if, insa permite conditiilor sa aibe mai mult de 2 valori. Intr-o instructiune if, conditia poate fi adevarata sau falsa, insa intr-o instructiune switch conditia poate lua orice numar de valori diferite. Aceasta instructiune trebuie sa contina o instructiune case care sa manevreze fiecare valoare pe care o doriti.

<?php

$destinatie = 'China';

echo 'Calatorint in  $destinatie <br />';

switch ($destinatie)

?>

Valoarea $destinatie a fost China, asa incat, atunci cand PHP efectueaza trecerea la switch se face o cautare pentru un case cu valoare 'China'. Cand este gasit case-ul respectiv este executat codul din acel segment.

Bucla WHILE

Cel mai simplu tip de bucla PHP este while. Asemenea instructiunii if, ea se bazeaza pe o actiune. Diferenta dintre if si while este aceea ca instructiunea if, daca gaseste adevarata conditia, afiseaza o singura data bucata de cod din ea, insa in conditia while, daca rezultatul este adevarat, bucata de cod respectiva se va repeta atat timp cat conditia este adevarata.

<?php

$numar = 1;

while($numar <= 5)

?>

Structura FOR

O alternativa cu o functionalitate mai ridicata pentru utilizarea buclelor este structura repetitiva for. Sintaxa este foarte asemanatoare cu cea din limbajele C/C++ si Java si anume:

for(expresie1; conditie; expresie2)

Prima expresie este evaluata o singura data, inainte de inceperea executiei ciclului. Expresia conditie este testata inaintea fiecarei repetari a buclei. Daca expresia returneaza fals, repetarea se opreste. Expresia 2 este executata la sfarsitul fiecarei repetari. Instructiunea se executa la fiecare repetare a buclei. Oricare dintre cele trei expresii poate lipsi; in cazul in care o expresie lipseste, se considera ca ea are valoarea true. Buclele WHILE si FOR sunt identice din puct de vedere functional insa bucla FOR este putin mai complexa.

<?php

for ($variabila = 1; $variabila <= 10; $variabila++)

?>

Structura FOREACH

Structura FOREACH ofera o cale simpla de parcurgere a array-urilor. Exista doua moduri de utilizare a acestei structuri. Prima sintaxa parcurge un array definit de variabila_array. La fiecare iteratie, valoarea elementului curent este atribuita variabilei variabila_element care se poate folosi ca orice variabila.

foreach(variabila_array as variabila_element)

A doua sintaxa face acelasi lucru, numai ca indicele elementului din array este atribuit la fiecare iteratie variabilei variabila_cheie.

foreach(variabila_array as variabila_cheie=>variabila_element)

Exemplu de folosire:

<?php

$arr = array('rosu','galben','verde');

foreach($arr as $element)

foreach($arr as $cheie=>$element)

?>

2.2.9 Functii

Pentru a efectua mai rapid anumite calcule si pentru a nu scrie anumite secvente de instructiuni in mai multe locuri in cod, exista posibilitatea apelarii functiilor. Majoritatea acestora accepta argumente, valori de intrare ce influenteaza operarea si rezultatul functiei. Pentru a specifica argumente, se folosesc paranteze; daca functia are mai mult de un argument, acestea trebuie separate prin virgula.

Argumentele pot fi: valori literale, variabile sau expresii. Exista functii care au argumente optionale, care pot fi specificate sau omise. Majoritatea functiilor returneaza valori. Functiile permit obtinerea accesului la programe PHP scrise anterior.

O functie foarte utila este require, care are ca parametru numele unui fisier al carui continut il insereaza in script, inlocuind instructiunea require. Practic, e ca si cum continutul acelui fisier face parte din script.

Pe langa functiile oferite de bibliotecile de functii din PHP, programatorul are posibilitatea sa defineasca propriile functii. Pentru a defini o functie, vom nota:

function nume_functie(argumente)

- nume_functie este numele functiei, iar argumente este lista de argumente ale functiei.

- Cuvantul cheie function, numele functiei si lista cu argumente alcatuiesc antetul functiei.

Termenul de corp al functiei se refera la instructiunile incluse intre acolade care urmeaza dupa antetul functiei. Instructiunile din corpul functiei se executa atunci cand functia este apelata.

function calculeaza($termen1,$termen2)

2.3 MySQL

O baza de date este o colectie de date organizata astfel incat acestea sa poata fi usor gasite si actualizate. O baza de date contine toate informatiile necesare despre obiectele ce intervin intr-o multime de aplicatii, relatiile logice intre aceste informatii si tehnicile de prelucrare corespunzatoare. In bazele de date are loc o integrare a datelor, in sensul ca mai multe fisiere sunt privite in ansamblu, eliminandu-se pe cat posibil informatiile redundante. De asemenea, se permite accesul simultan la aceleasi date, situate in acelasi loc, sau distribuite spatial, a mai multor persoane de pregatiri diferit, fiecare cu stilul personal de lucru.

Sistemul de programe care permite construirea unei baze de date, introducerea informatiilor in bazele de date si dezvoltarea de aplicatii privind bazele de date se numeste Sistem de Gestiune a Bazelor de Date (SGBD). Un SGBD da posibilitatea utilizatorului sa aiba acces la date folosind un limbaj de nivel inalt, apropiat de modul obisnuit de exprimare, pentru a obtine informatii, utilizatorul facand abstractie de algoritmii aplicati pentru selectionarea datelor implicate si a modului de memorare a lor. SGBD-ul este o interfata intre utilizatori si sistemul de operare.

Sistemele de baze de date au in vedere mai multe tipuri de structuri de reprezentare a informatiilor la nivel logic si de operare cu ele dintre acestea, modelul relational fiind cel mai folosit.

Acest model a fost dezvoltat de un matematician de la IBM, E.F. Codd, prin anii 1960, iar bazele de date organizate pe baza acestui model se numesc baze de date relationale.

Un model relational de baze de date cuprinde trei componente principale:

- Structura datelor - prin definirea unor domenii si a relatiilor n-are.

- Integritatea datelor - prin impunerea unor restrictii.

- Prelucrarea datelor - prin operatii din algebra relationala sau calculul relational.

Modelul relational se bazeaza pe notiunea matematica de relatie, asa cum este definita in teoria multimilor, si anume ca o submultime a produsului cartezian a unei liste finite de multimi numite domenii. Elementele unei relatii se numesc tupluri, iar numarul de domenii din produsul cartezian se numeste aritatea relatiei.

De obicei relatiile sunt reprezentate sub forma unor tabele in care fiecare rand reprezinta un tuplu si fiecare coloana reprezinta valorile tuplurilor dintr-un domeniu dat al produsului cartezian. Coloanelor si, respectiv, domeniilor corespunzatoare lor li se asociaza nume intitulate atribute.

Accesul la informatii se face pe baza cheilor. O cheie este o coloana (sau un grup de coloane) care identifica in mod unic un rand dintr-un tabel.

Este, de fapt, surprinzator cat de utila poate fi o baza de date, mai ales atunci cand poate fi folosita intr-un site Web. Sunt foarte multe lucruri care se pot face intr-un astfel de caz, de la afisarea unor simple liste si pana la producerea integrala a paginilor Web dintr-o baza de date. Cateva exemple cu PHP si MySQL, folosite impreuna, sunt:

Schimbarea - rotatia Banner-elor. Pentru a realiza schimbarea pe ecran a imaginilor la diferitele vizitari ale unei pagini si a asigura astfel un interes mai mare al vizitatorilor, se poate folosi un script PHP care deschide o baza de date se extrage aleator o imagine sau un set de imagini, pentru a-l include intr-un set de pagini Web. Scriptul PHP va contoriza deasemeni numarul de cate ori a fost vazut banner-ul, putand, cu modificari minore, sa urmareasca chiar si numarul de click-uri. Pentru a adauga, schimba sau edita bannerele, tot ce avem de facut este sa schimbam baza de date iar scriptul va incarca banner-ul corect in toate paginile site-ului Web.

Sute de forumuri de dezbatere sunt acum realizate - ruleaza in PHP si MySQL. Acestea s-au dovedit mult mai eficiente dacat alte sisteme, creand cate o pagina pentru fiecare mesaj si oferind o larga varietate de optiuni. Toate paginile forumului pot fi actualizate prin schimbarea unui script PHP.

Bazele de Date. Un astfel de exemplu (edificator) il ofera site-urile care dau toate informatiile dintr-o baza de date. Spre exemplu, Script Avenue este rulat de cateva scripturi, care furnizeaza toate informatiile dintr-o baza de date ampla. Toate categoriile de scripturi diferite pot fi accesate intr-un singur script exact prin schimbarea URL-ului pentru a accesa diferite parti ale bazei de date.

Cand avem un site de mari dimensiuni - cu multe pagini, si dorim sa modificam aspectul general sau sa schimbam proiectul, chestiune care ar cere foarte mult timp pentru aducere la zi si incarcare. Cu PHP si MySQL intregul site Web se poate reduce la unul sau doua scripturi PHP care sa acceseze o baza de date MySQL pentru a obtine informatiile pentru paginile Web. Pentru a actualiza sau a modifica proiectul centrului Web nu trebuie sa schimbam decat o pagina.

Sunt necesare trei componente pentru a putea rula scripturi PHP care sa acceseze baze de date cu MySQL.

In primul rand, este nevoie de un server Web. Acesta poate fi sau pe calculatorul personal sau pe o 'gazda' Web. Oricare pachet - oricare tip de server Web este acceptat si va lucra cu PHP si MySQL, dar cel mai recomandat este Apache, care e public si gratis.

PHP trebuie sa fie instalat pe server. Daca nu este deja instalat, puteti sa o faceti sau sa apelati la administratorul serverului Web, in acest sens. Pachetul de instalare poate fi descarcat - preluat de la https://PHP.net si este deasemeni public - gratuit. Daca nu sunteti sigur daca este sau nu instalat, o sa vedeti mai jos cum va puteti lamuri.

In fine, aveti nevoie de MySQL. Acesta este de fapt pachetul de programe pentru gestiunea bazelor de date. Puteti folosi deasemenea multe alte sisteme de baze de date (SQL, Oracle etc.) dar aici discutam despre PHP/MySQL, deci avem nevoie de MySQL (cu toate ca se folosesc comenzi care tin de limbajul SQL iti 'merg' la oricare din sistemele de baze de date SQL.

Cativa dintre competitorii principali ai MySQL sunt PostgreSQL, Microsoft SQL Server si Oracle. MySQL are multe puncte forte printre care:

-performanta ridicata;

-cost scazut;

-usurinta in configurare si invatare;

-portabilitate;

-disponibilitatea codului sursa;

-disponibilitatea suportului.

Administrarea MySQL se poate face din linie de comanda sau folosind browserul si accesand aplicatia numita PHPMyAdmin scrisa in PHP. Cele mai uzuale operatii cu bazele de date sunt:

Comanda

Semnificatie

CREATE

creaza o baza de date sau un tabel

DROP

sterge o baza de date sau un tabel

INSERT

adauga inregistrari intr-un tabel

DELETE

sterge inregistrari dintr-un tabel

UPDATE

updateaza inregistrarile dintr-un tabel

SELECT

selecteaza un tabel

ALTER

alterarea unui tabel

In MySQL spatiul alocat pe discul serverului este functie de tipul de date. Cateva din tipurile de date folosite in bazele de date MySQL sunt:

Tip

Semnificatie

int()

numar intreg

32 biti

bigint()

numar intreg

64 biti

tinyint()

numar intreg (-128 la 127 sau 0 la 255)

8 biti

mediumint()

numar intreg

24 biti

smallint()

numar intreg

16 biti

char()

sectiune cu lungime fixa de la 0 la 255 caractere

varchar()

sectiune cu lungime variabila de la 0 la 255 caractere

float()

numar mic cu virgula flotanta

double

numar mare cu virgula flotanta

Text

sir cu maximum 65535 caractere

Date()

data in format YYYY-MM-DD

Date

data in format YYYY-MM-DD HH:MM:SS

time

ora in format HH:MM:SS

Pentru ca baza de date sa fuctioneze mai bine coloanelor li s-au adaugat modificatori de coloana. Tipul de date intregi incep de la valori negative la pozitive. Daca se adauga optiunea UNSIGNED, care este un modificator de coloana, nu vor mai fi valori negative ci vor incepe de la 0. Alti modificatori sunt:

AUTO_INCREMENT functioneaza cu orice tip intreg. La fiecare rand nou adaugat in baza de date numarul asociat va fi incrementat.  NULL inseamna fara valoare (diferit de spatiu sau zero). NOT NULL inseamna ca orice inregistrare va fi considerata ceva. PRIMARY KEY este rolul primei coloane din tabel, totodata reprezentand elementul de referinta pentru fiecare linie.

3. Descrierea si proiectarea aplicatiei

Descrierea aplicatiei

In aceasta lucrare mi-am propus sa realizez un site de prezentare pentru o agentie de turism, care va avea continut dinamic si care va putea fi administrat online, printr-un sistem de administrare, la care se logheaza administratorul si/sau un angajat al agentiei. Partea de prezentare are urmatoarele sectiuni:

Meniu: se gasesc link-urile: acasa, despre noi, informatii utile, contact, cataloage de sezon care ofera informatii despre agentia de turism

Vacante in Romania: lista catorva statiuni din Romania

Vacante in strainatate: lista catorva tari

Oferta: hotelurile care ofera reduceri pentru vizitatorii

Rezervari online: posibilitatea pentru vizitatori de a rezerva un hotel dintr-o anumita statiune pentru o anumita perioada de timp

Sondaj: posibilitatea exprimarii opiniei cu privire la intrebarea de pe site

Contact: adresa si formularul de contact

Newsletter: posibilitatea de inscriere la newsletter a vizitatorilor

Alege sezon: aici vizitatorul are posibilitatea de a schimba intreaga interfata a site-ului foarte usor

Sistemul de administrarea are urmatoarele sectiuni:

Prima pagina: aici sunt afisate informatii cu privire la numarul de: tari, statiuni, hoteluri, rezervari, oferte adaugate pana in prezent

Rezervari: vizualizarea si confirmarea rezervarilor existente

Vacante: cu ajutorul acestui meniu putem adauga, vizualiza, sterge tari, statiuni, hoteluri



Newsletter: vizualizarea email-urilor inscrise, trimiterea unui email nou

Cataloage: adaugarea, vizualizarea si stergerea cataloagelor

Sondaj: in aceasta sectiune administratorul are posibilitatea de a vedea rezultatele sondajului, adresa ip, data si optiunea aleasa de fiecare persoana care a votat. Pe langa aceste optiuni acesta mai poate: reseta voturile, schimba intrebarea, adauga optiuni si sterge optiuni.

Configurari: aici administratorul poate vedea toti utilizatori care au acees la sistemul de administrare al site-ului. Isi poate modifica parola prin introducerea parolei vechi; poate sterge din utilizatori.

Alte informatii oferite de sistemul de administrare sunt: informatii despre utilizatorul logat(nume, ultima logare, email-ul).

3.2 Proiectarea aplicatiei

3.2.1 Proiectarea in ansamblu

Proiectarea de ansamblu a sistemului informatic si succesiunea activitatilor din cadrul proiectarilor este urmatoarea:

Structurarea bazei de date

Definirea claselor

Definirea relatiilor dintre clase

Stabilirea designului

Stabilirea aplicatiilor software necesare pentru dezvoltarea aplicatiei

Publicarea

Proiectarea site-ului web trebuie sa raspunda de urmatoarele cerinte:

o       Flexibilitate;

o       Fiabilitate;

o       Usurinta in folosire;

o       Usurinta in modificarea datelor

o       Implementarea cat mai rapida;

o       Eficienta maxima;

Proiectarea bazei de date trebuie sa aiba aibe in vedere cateva cerinte tehnice si anume:

o       Unicitate a cheii;

o       Integritate a domeniului;

o       Integritate a relatiei;

o       Integritate de referinta;

Aplicatia este structurata in doua parti si anume: partea de frontend si anume site-ul propriu zis si partea de backend sistemul de administrare al site-ului.

Partea de frontend este structurata astfel:

Cuprinde urmatoarele directoare:

v     cataloage - cataloagele adaugate in format PDF pe sie

v     classes - toate clasele necesare

v     common - aici se gasesc: - css - fisierele css

- img - imaginile din care este compus site-ul

- js - fisierele javascript

v     modul - site-ul este impartit pe module pentru a fi usor de modificat

- default - fisierele php care ajuta la generarea meniului si a informatiilor de pe site

- template - in acest director se gaseste template-ul site-ului(base_template.php)

v     poza_m - imaginile adaugate la hotel cu rezolutia de 800x600

v     poza_s - imaginile adaugate la hotel cu rezolutia de 80x60

v     system - in acest director se gaseste fisierul de configurare al site-ului care contine informatii cu privire la baza de date.

Partea de backend sau sistemul de administrarea al site-ului se gaseste in directorul admin si este structurata astfel :

v     classes - toate clasele necesare

v     common - css -fisierele css

- fckeditor - fisierele editorului de text folosit

- icons - iconitele folosite pentru: sterge, modifica, adauga

- img - imaginile folosite la interfata

- js - fisierele javascript

v     modul - in acest director se gasesc toate modulele site-ului. Am structurat in acest fel atat site-ul cat si sistemul de administrare deoarece este foarte usor de modificat si de adaugat atat module noi cat si functionalitati noi la modulele existente

v     system - fisierul de configurare al sistemului de administrare

3.2.2 Structura bazei de date

Baza de date se numeste licenta si are urmatoarele tabele:

Catalog

-id, nume, marime

Fig. 3.2.1.1

Newsletter

-id, email, data

Fig. 3.2.1.2

Pagini

-id, titlul, continut

Fig. 3.2.1.3

Rezervare_log

-id, nume, cnp, email, telefon, data_rezervarii, perioada, locatie

Fig. 3.2.1.4

Rezervare

-id, id_tara,id_statiune,id_hotel, status, nume, prenume, email, telefon, cnp, adresa, data_rezervarii, perioada, tip_camera, servicii_masa, alte_indicatii, pers1, pers2, pers3, pers4, pers5, pers6

Fig. 3.2.1.5

Sondaj_intrebare

-id, intrebare

Fig. 3.2.1.6

Sondaj_ip

-id, id_optiune, ip, data

Fig. 3.2.1.7

Sondaj_optiuni

-id, optiune, voturi

Fig. 3.2.1.8

Utilizatori

-id, username, password, email, name, type, lastlogin

Fig. 3.2.1.9

Vacanta_hotel

-id, id_tara, id_statiune, director, oferta, nume, email, telefon, situare, adresa, dotari_generale, dotari_camere, servicii, facilitati_copii, observatii, pret

Fig. 3.2.1.10

Vacanta_hotel_poze

-id, hotel, nume, descriere

Fig. 3.2.1.11

Vacanta_hotel_tarife

-id, id_hotel, perioada, cazare, cazare_mic, cazare_pranz, cazare_mic_pranz, cazare_pranz_cina, cazare_tot, pret

Fig. 3.2.1.12

Vacanta_statiune

-id, id_tara, nume

Fig. 3.2.1.13

Vacanta_tara

-id, nume

Fig. 3.2.1.14

3.2.3 Structura conceptuala a bazei de date

3.2.4 Definirea claselor si a relatiilor dintre acestea

Actorii: Vizitator, Administrator, Angajat agentie

Pentru frontend clasele sunt structurate in felul urmator :

Clase: - mysql: query(), execute_statement(), query_row()

-frontend: lista_pagini(), continut_pagina(), acasa_continut(), scoate_id(), romania_id(), lista_statiuni_romania(), statiuni(), lista_statiuni_strainatate(), lista_nume_tara(), lista_nume_statiune(), lista_nume_hotel(), lista_detalii_hotel(), lista_tarife_hotel(), lista_poze_hotel(), liste_cataloage(), lista_intrebare(), lista_optiuni(), voteaza(), lista_ip(), verifica_vot(), total_voturi(), adauga_newsletter(), adauga_rezervare(), oferte(), lista_hoteluri_statiune(), lista_hoteluri_oferte(), lista_tari_statiuni()

Pentru backend clasele arata astfel :

Clase: - mysql: query(), execute_statement(), query_row()

pagini: lista_pagini(), adauga_pagina(),continut_pagina(),salveaza_pagina()

sondaj: lista_intrebare(),lista_optiuni(),total_voturi(),adauga_optiune(), sterge_optiune(), modifica_intrebarea(), resetare_voturi(), voteaza(), lista_ip(), verifica_vot(), lista_votanti()

default: hoteluri(), oferte(), tari(), statiuni(), rezervari()

newslwtter: lista_email(), sterge_email()

catalog: adauga_catalog(), lista_catalog(), lista_catalog_id(), sterge_catalog()

configurare: lista_utilizatori(), date_utilizator(), modifica_date_utilizator(), modifica_parola(), adauga_utilizator(), sterge_utilizator()

rezervari: lista_rezervari(), detalii_rezervare(), confirma_rezervare(), sterge_rezervare(), nume_tara(), nume_statiune(), nume_hotel(), email_hotel(), lista_log(), sterge_log()

vacanta: adauga_tara(), lista_tari(), selectbox_tari(), adauga_statiune(), lista_statiuni(), lista_statiuni_id(), selectbox_lista_tari(), selectbox_lista_tari_hotel(), selectbox_lista_statiuni_hotel(), adauga_hotel(), sterge_director(), lista_hoteluri(), sterge_hotel(), lista_hotel_date(), modifica_hotel(), nume_hotel(), verifica_tarif(), lista_tarife(), adauga_tarife(), sterge_tarif(), redimensioneaza(), adauga_poza(), adauga_poza(), sterge_poza(), verifica_statiune(), sterge_statiune(), verifica_tara(), sterge_tara()

3.2.5 Aplicatiile software folosite in dezvoltarea site-ului si rularea site-ului

Pentru realizarea proiectului am ales urmatoarele aplicatii software:

ca editor de text am folosit un produs open-source Aptana www.aptana.com

pentru realizarea designului am ales Adobe Photoshop CS2

pentru rularea scripturilor php am ales Xampp care contine serverul Apache si Phpmyadmin

ca browser web am ales Mozila Firefox

Pentru rularea site-ului trebuie sa parcurgem urmatorii pasi:

1. Instalati aplicatia Xampp. (La instalarea Xampp-ului trebuie sa bifati: Instal Apache as service si Instal MySQL as service - aplicatia se instaleaza in C:xampp) .

2. Merge-ti in C:xampphtdocs si sterge-ti continutul directorului

3. Instalare Site: Copiati directorul cu site-ul in directorul: C:xampphtdocstravelagency

4. Dupa copierea site-ului, deschide-ti Mozila Firefox, iar in bara de adresa treceti urmatorul link: https://localhost/phpmyadmin/ care ne va duce la PhpMyadmin pentru a incarca baza de date

5. Creeam o noua baza de date, ii dam un nume si apoi importam baza de date

6. Mergem apoi in directoarul: system si deschidem fisierul de configurare pentru a trece numele bazei de date ales

7. Odata creata baza de date deschidem in Mozila Firefox o noua fereastra si introducem urmatoarea adresa: https://localhost/travelagency/

3.2.6 Functii utilizate in aplicatie

isset() - functie care verifica daca a fost setata o valoare a unei variabile;

mysql_connect('localhost', $user, $pass) - deschide o conexiune carte un server mysql (numele serverului - ,localhost', $user - username-ul si parola - $pass);

mysql_select_db($dbname) - alege o baza de date mysql dupa conectarea la un server mysql;

mysql_query() - trimite o comanda mysql bazei de date active de pe server;

mysqli_fetch_object() - scoate rezultatele din interogare;

mysqli_num_rows() - returneaza numarul de linii din rezultatul unei cereri mysql;

session_start() - initializeaza o sectiune de date bazata pe ID-ul de sesiune trimis printr-o cerere

session_destroy() - distruge toate datele asociate cu sesiunea curenta;

$_GET si $_POST - contin variabile primite de script prin intermediul unor transferuri care folosesc metodele HTTP get, respectiv post. De exemplu, prin intermediul acestor vectori, pot fi accesate valorile campurilor dintr-un formular care a fost completat si transmis folosind una dintre cele doua metode. $_GET si $_POST sunt array-uri.

$_SESSION - contine variabile care corespund sesiunii curente a script-ului.

ob_start() - opreste afisarea bufferului pana la terminarea executiei scriptului;

ob_get_clean() - pune continutul bufferului curent si apoi sterge bufferul;

require_once() - include un fisier;

str_replace() - cauta si inlocuieste intr-un string un caracter ales de noi si il inlocuieste

3.2.7 Publicarea site-ului

In ceea ce priveste publicarea site-ului pot spune ca acest proces nu este atat de complicat pe cat pare. Pentru a face un site sa functioneze pe un server avem nevoie de urmatoarele date: adersa de ftp, username-ul si parola. Adersa de ftp nu este altceva decat adresa calculatorului pe care va fi gazduit site-ul; username-ul este numele utilizatorului cu care ne vom conecta. Aceste date ne sunt furnizate de catre compania de hosting. Pentru a ne conecta la ftp avem nevoie de o aplicatie care sa poata face acest lucru. Putem folosi de exemplu Toatal Commander. Dupa ce ne-am conectat nu ne ramane decat sa copiem intregul site pe acea adresa. Dupa ce site-ul a fost copiat pe ftp, va trebui sa modificam fisierele de configurare config.php din directoarele system, respectiv admin/system. Va trebui sa trecem in acel fisier datele de la conectare. Pentru ca site-ul sa fie functional va trebui sa punem si baza de date. Acest lucru difera de la un hosting la altul. In principiu pentru a pune baza de date, compania de hosting ne va da un link de genul: https://www.numesite.ro/phpmyadmin/ . Și aici vom fi nevoiti sa ne autentificam. Dupa autentificare si dupa ce am pus baza de date site-ul devine functional.

4. Utilizarea aplicatiei

4.1 Sectiunea destinata vizitatorilor

Prima pagina a site-ului contine in centru informatii generale despre agentie. In partea stanga se gaseste meniul site-ului si lista statiunilor, respectiv a tarilor. Partea dreapta a site-ului contine in partea de sus un link -care ofera posibilitatea vizitatorului de a schimba designul site-ului; sondajul; formularul de inscriere la newsletter si lista hotelurilor care au oferte.

Vizitatorul poate alege statiunea, iar in functie de aceasta are posibilitatea de a vedea toate hotelurile din statiunea respectiva.

Se poate observa cum utilizatorul a ales sa vada hotelurile care se gasesc in statiunea Costinesti si in acelasi timp cum a schimbat designul site-ului. De asemenea poate vedea toate datele hotelului respectiv alegand link-ul detalii >> .

Daca hotaraste ca acest hotel este hotelul in care vrea sa isi petreaca concediul, poate face o rezervare alegand link-ul solicita rezervare>>. Pentru a face rezervarea va trebui sa completeze formularul de rezervari.

4.2 Sectiunea de administrare

Fiecare sectiune poate fi administrata, continutul siteului fiind in totalitate dinamic. Se poate adauga, modifica, sterge: tara, statiune, hotel.

Adaugare tara

Adaugare statiune - pentru a adauga o statiune trebuie mai intai sa alegem o tara

Adauga hotel - pentru a adauga un hotel nou trebuie sa alegem: tara si statiunea

Trimite newsletter - pentru a trimite newsletter va trebui sa alegem din meniul din stanga Trimite newsletter

Adauga catalog

Sondaj - rezultatele voturilor, adaugare de noi optiuni, modificare intrebare, resetare voturi

Utilizatori - vizualizare utilzatori, stergere utilizatori, modificare parola

5. Concluzii

Aplicatia descrisa in aceasta lucrare are ca scop consolidarea cunostiintelor dobandite pe parcursul a trei ani de zile, cat si exemplificarea unui model mai complex de sistem informatic folosit foarte mult in prezent pe internet.

Am incercat si in acelasi timp sper ca am reusit sa scot in evidenta avantajele enorme pe care ni le ofera PHP si MySql cum ar fi rapiditatea, flexibilitatea si costurile foarte reduse, aproape inexistente in realizarea site-urilor web.

Pe parcusul celor patru capitole am realizat o prezentare de ansamblu a tehnologiilor folosite in construire acestui site web, incepand cu limbajul HTML, un limbaj de baza cu care se incepe practic "patrunderea" in lumea programarii web, continuand cu limbajul PHP, cu prezentarea conceptelor folosite in crearea unei baze de date MySql, apoi cu descrierea si proiectarea aplicatiei si terminand cu utilizarea aplicatiei.

Un alt avantaj oferit de PHP in fata multor limbaje de programare web este faptul ca este gratuit, paginile se incarca repede si nu neceista resurse foarte mari pentru aplicatii. De asemenea, datele sunt securizate si codul este interpretat pe server, paginile fiind transmise browserului in format HTML.

Pe langa plusul de imagine si profesionalism pe care il aduce un site oricarei companii, avantajele prezentei pe internet ale unei agentii de turism sunt urmatoarele:

Ofera vizitatorilor posibilitatea de a vedea toate tarile, statiunile si hotelurile disponibile

De asemenea posibilitatea de a vedea detalii despre hotelurile prin publicarea pozelor si a restul informatiilor

Extinde aria de clienti

Usurinta rezervarii cu ajutorul formularului de rezervari online

Anuntarea ofertelor si posibilitatea oferita vizitatorilor de a rezerva rapid un hotel

Contactul direct cu vizitatorii prin sectiunea de Contact.

6. Bibliografie

Catalin Drogoreanu, "Tutorial complet HTML", https://www.etutoriale.ro/articles/112/1/Tutorial-complet-HTML, 2006

Paul DuBois, "MySQL". Teora, 2001

Bill McCarty, "PHP4 - A beginner's guide", Teora, 2002

Larry Ullman, "PHP si MySQL pentru site-uri WEB dinamice", Teora, 2004

Michael Widenius, Arjen Lentz, and Paul DuBois, "MySQL Reference Manual", https://www.mysql.com/documentation/, 2002

"Dezvoltarea aplicatiilor Web folosind XHTML,PHP si MySQL" ,Editura Polirom, 2005

www.php.net/

https://ro.wikipedia.org/wiki/PHP





Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 13223
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved