PROGRAMUL DE STUDII licență [609275]
4
UNIVERSITATEA DIN PITEȘTI
FACULTATEA DE ȘTIINȚE, EDUCAȚIE FIZICĂ ȘI
INFORMATICĂ
PROGRAMUL DE STUDII licență
LUCRARE DE LICENȚĂ
Coordonator științific
Titlu Prenume Nume
Absolvent: [anonimizat] 2019
UNIVERSITATEA DIN PITEȘTI
FACULTATEA DE ȘTIINȚE, EDUCAȚIE FIZICĂ ȘI
INFORMATICĂ
PROGRAMUL DE STUDII licență
Tehnologii web pentru realizarea
aplicațiilor de rezervare
Coordonator științific
Titlu Prenume Nume
Absolvent: [anonimizat] 2019
DECLARAȚIE
UNIVERSITATEA …….. ………………………………………………………………………………. ………………
FACULTATEA ……………………………………………………………………………………………………………
PROGRA MUL DE STUDII ………… ……………………………………………………………………………… .
NUMELE ȘI PRENUMELE …………………………………………………………………………… …………….
PROMOȚIA .. …………………………………………………………………………………………………………….. .
SESIUNEA DE LICENȚĂ/D ISERTAȚIE …………….. ……………………………………………………….
DENUMIREA LUCRĂR II DE LICENȚĂ/DISERTAȚIE .. …………………………… …………………
……… ………………………………. ………………………………………………………………….. ………………………
………………………………………………………………………………………………………………… …………………
………
Prin prezenta declar că prezenta Lucrarea de licență/disertație este rezultatul muncii proprii,
pe baza cercetărilor mele și pe baza informațiilor obținute din surse care au fost citate și
indicate conform regulilor de evitare a plagiatului:
toate fragmentele de text reproduse exact, chiar și în traducere proprie din altă limbă, sunt
scrise între ghilimele și dețin referința precisă a sursei;
reformularea în cuvinte proprii a textelor scrise de către alți autori deține referința precisă;
rezumarea ideilor altor autori deține referința precisă la textul original. Declar că nu s -a
folosit în mod tacit sau ilegal munca altora și că nicio parte din prezentate lucrare nu încalcă
drepturile de proprietate intelectuală ale altcuiva, persoană fizi că sau juridică. Declar că
lucrarea de licență/disertație nu a mai fost prezentată niciodată la o altă facultate sau instituție
de învățământ superior din țară sau străinătate. În cazul constatării ulterioare a unor declarții
false, voi respecta rigorile l egii.
PITEȘTI, data
Absolvent: [anonimizat]…………………………………………………………………… ..5
Capitolul 1.INTRODUCERE IN TEHNOLOGIILE WEB ………………… 6
1.1 World Wide Web………………………………………………………………… …….. .6
1.1.1 Cum a inceput World Wide Web ? ……………………………… …………… ……6
1.1.2 Descriere……………………………………………………………… ……………… .6
2.1 Hyper Text Trasfer Protocol(HTTP)……………………………….. 7
3.1 Navigator Web………………………………………….
4.1 Server Web …………………………… …………………………………………….. …..8
Capitolul 2 . TEHNOLOGI I WEB UTILIZATE PENTRU REALIZAREA
UNEI APLICAT II DE REZERVARE ………………… …………………………….
1.1 Limbajul HTML
1.1.1 Despre HTML
2.1.1 Structura unui document HTML
2.1CSS -Cascading Style Sheets
2.1.1 Elemente de bază
2.1.2 Utilizare CSS in HTML
2.1.3 Proprietăți si Selectori CSS
3.1Limbajul JAVA -SCRYPT
4.1Programarea aplicatiilor server side
4.1.1 Aplicații server side
4.1.2 Despre PHP
5.1 Baze de date in aplicatii Web
Capitolul 3. STUDIU DE CAZ. APLICAȚIE WEB DE REZERVARE
3.1 Ideea aplicației
3.2 Modul de proiectare al aplicației
3.3 Implementarea aplicației
3.3.1 Antetul paginilor
3.3.2 Pagina de înregistrare
3.3.3 Pagina de autentificare
3.3.4 Pagina principală
3.3.5 Pagina pentru selectarea locurilor disponibile
3.3.6 Pagina pentru selectarea prețului
3.3.7 Pagina pentru afișarea codului
3.3.8 Pagina pentru istoricul comenzilor
4.3 Prezentarea aplicației
CONCLUZII
BIBLIOGRAFIE
Introducere
De-a lungul timpului, tehnologiile web au evoluat pentru a oferi dezvoltatorilor web abilitatea
de a crea noi generații de experiențe web captivante si utile . Web -ul de astăzi este un rezultat
al eforturilor continue ale unor comunități web deschise care ajută la definirea acestor
tehnologii web, cum ar fi HTML5, CSS3 și WebGL, și să se asigură că acestea sunt acceptate
în toate browserele web.
Tehnologiile Web erau folosite acum câțiva ani doar de marile companii ,motivul principal
fiind costul ridicat al licențelor programelor de dezvoltare ,dar in prezent datorită evoluării
tot mai rapide a soluțiilor Open Source, oricine dorește își poate permite realizarea unei
aplicații web.
Odată cu invent area sistemelor de rezervare online ,zilele în care era necesară prezentarea
fizică la o agenția de turism pentru a rezerva bilete de avion sau pentru a rezerva o camera la
un hotel au dispărut ,astăzi dacă avem un card de credit la îndemână și acces la Internet, se
pot finaliza planurile de călătorie în câteva minute,t otul putând fi realizat datorită aplicațiilor
de rezărvări online .
Avantaj ul principal al aplicatiilor de rezervare este comoditatea,deoarece o rezervare poate
fi efectuata oricând dorim zi sau noapte , nefiind nevoie de apeluri de lungă durată sau de
deplasări cu doar câteva minute și un clic al mouse -ului, totul poate fi finalizat foarte usor.
Lucrarea este structurată pe 3 capitol e.
Capitol ul 1 intitulat ”INTRODUCERE IN TEHNOLOGIILE WEB ” , conține o prezentare
teoretică despre World Wide Web ,protocolului HT TP , server Web și navigatoarele Web.
Capitolul 2 “TEHNOLOGII WEB UTILIZATE PENTRU REALIZAREA UNEI APLICAȚII
DE REZERVARE ”, în acest capitol sunt prezentate și evidențiate elementele utile ale
următoarele tehnologii le Web: html,css,java -script,php și my sql, tehnologii care sunt
utilizate pentru realizarea unei aplic atii de rezervare care este prez entată in capitolul 3.
Capit olul 3 ”STUDIU DE CAZ.APLICAȚIE WEB DE REZERVARE” ,cuprinde metodele si
și deciziile luate pentru implementarea și proiectare unei aplicatii de rezervare la un cinema,
în cadrul căreia se pot rezerva locurile la un film. De asemenea în acest capitol este
prezentată și funcționalitatea aplicației .
Capitolul 1.INTRODUCERE IN TEHNOLOGIILE WEB
1.1 World Wide Web
1.1.1 Cum a inceput Wor ld Wide Web?
Tim Berners -Lee a scris prima propunere pentru World Wide Web în martie 1989 și a doua
propunere în mai 1990. Împreună cu inginerul sistemelor belgiene Robert Cailliau, aceasta a
fost formalizată ca o propunere de management în noiembrie 1990. Aceasta a su bliniat
conceptele principale și a definit termeni importanți în spatele webului.
După câteva luni, în noiembrie 1990, împreună cu Robert Cailliau, a fost formalizată ca o
propunere de management. Această propunere a prezentat conceptele -cheie și terminol ogia
definită în legătură cu Web -ul. În acest document a existat o descriere a "proiectului
hipertext" numit World Wide Web în care o rețea de documente hipertext ar putea fi
vizualizată de browsere. Propunerea sa cuprindea cele trei tehnologii principale (HTML,
URL și HTTP), tehnologii care ar putea u face calculatoarele să se înțeleagă reciproc .Astfel,
obiectivul din spatele invenției WWW a fost acela de a combina tehnologiile informatice
recente, rețelele de date și hipertextul într -un siste m informațional global, ușor de utilizat și
eficient.
În 1990, Tim Berners -Lee reușește să ruleze primul server Web și browser de la CERN
pentru a -și demonstra ideile iar in 1991 crează primul site Web și server Web din lume.
Adresa sa a fost info.cern. ch și a fost difuzată la CERN pe computerul NeXT. În plus, prima
adresă de pagină web a fost ” http://info.cern.ch/hypertext/WWW/TheProject.html ”.
Această pagină conținea linkuri către infor mațiile legate de proiectul WWW, precum și
despre serverele Web, descrierea hipertext și informații pentru crearea unui server Web.
Primul server Web a devenit online în decembrie 1991 în Statele Unite. În acest moment, au
existat doar două tipuri de browsere; versiunea originală de dezvoltare care era disponibilă
numai pe mașinile NeXT și browser -ul de tip "line -mode" care era ușor de instalat și rulat pe
orice platformă, dar era mai puțin accesibil utilizatorul ui și avea o putere limitată . La
sfârșitul anului 1993, existau mai mult de 500 de servere web, iar WWW reprezenta 1% din
traficul total pe internet. Primul server din afara Europei a fost instalat la Stanford Linear
Accelerator Center (SLAC) din Palo Alt o, California, pentru a găzdui baza de date SPIERS –
HEP . În 1994, Tim Berners -Lee a înființat Consorțiul World Wide Web (W3C) la Institutul
de Tehnologie din Massachusetts, cu sprijinul CERN, DARPA (așa cum a fost redenumit
ARPA) și al Comisiei Europene. Vi ziunea W3C a fost aceea de a standardiza protocoalele și
tehnologiile utilizate pentru a construi web -ul, astfel încât conținutul să fie disponibil pentru o
populație cât mai largă din lume.
În același an, companiile de telecomunicații au început să furnizeze acces la Internet, iar
oamenii puteau accesa WWW de la domiciliu ,tot in același an, a avut loc o altă conferință
în Statele Unite, la care au participat peste 100 0 de personae fiind organizată de NCSA și de
Comitetul Internațional de Conferin ță WWW nou format.La sfârșitul anului 1994 , World
Wide Web avea aproximativ 10000 de servere și 10 milioane d e utilizatori .
1.1.2 Descriere
World Wide Web, cunoscut și ca Web, este o colecție de site -uri sau pagini web stocate pe
servere web și conectate la calculatoarele locale prin internet. Aceste site -uri conțin pagini de
text, imagini digitale, înregistrări audio, videoclipuri etc. Utilizatorii pot accesa conținutul
acestor sit e-uri din orice parte a lumii prin intermediul internetului, utilizând dispozitivele lor,
cum ar fi calculatoarele, laptopurile, telefoanele mobile etc. World Wide Web, împreună cu
internetul, permite recuperarea, afișarea textului și a suportului media pe dispozitiv.
Site-ul web este o colecție de pagini web asociate care pot conține text, imagini, audio și
video. Prima pagină a unui site Web este denumită pagina de pornire. Fiecare site web are o
adresă de internet specifică (URL) , care trebuie introdusă în browser pentru a accesa un site
Web.Site -ul web este găzduit pe unul sau mai multe servere și poate fi accesat vizitând
pagina de pornire utilizând o rețea de calculatoare. Un site web este administrat de
proprietarul său care poate fi o persoană, o com panie sau o organizație.
Blocurile constructive ale paginilor web sunt pagini web care sunt formatate în HTML și sunt
conectate prin legături numite "hypertext" sau hyperlink -uri și accesate prin HTTP. Aceste
legături sunt conexiuni electronice care leagă anumite informații, astfel încât utilizatorii să
poată accesa rapid informațiile dorite. Hypertext oferă avantaj ul de a selecta un cuvânt sau o
expresie din text și, astfel, de a accesa alte pagini care furnizează informații suplimentare
referitoare la ace l cuvânt sau frază.
O pagină web primește o adresă online numită Uniform Resource Locator (URL). O colecție
specială de pagini web care aparțin unei adrese URL specifice se numește un site Web, de
exemplu, www.facebook.com, www.google.com, etc. Astfel, Wor ld Wide Web este ca o
carte electronică uriașă ale cărei pagini sunt stocate pe mai multe servere din întreaga
lume. Site-urile mici stochează toate paginile Web pe un singur server, însă site -urile sau
organizațiile mari își plasează paginile Web pe diferite servere din diferite țări , astfel încât
atunci când utilizatorii unei țări își caută site -ul, aceștia pot obține rapid informațiile de la cel
mai apropiat server.
Deci, web -ul oferă o platformă de comunicare pentru utilizatori de a recupera și de a schimba
informații prin internet. Spre deosebire de o carte, unde ne mutam de la o pagină la alta într -o
secvență, pe World Wide Web urmărim o rețea de hypertext link -uri pentru a vizita o pagină
Web și de la acea pagină web pentru a trece la alte pagin i web. Pentru a putea accesa Web -ul
este nevoie de un browser instalat pe computer.
Unii oameni confundă termenii "inte rnet" și "World Wide Web. Ei cred că sunt același lucru,
dar nu este așa. Internetul este complet diferit de WWW. Internetu l este o reț ea mondială de
dispozitive cum ar fi calculatoare , laptopuri, tablete,telefoane etc ,prin intermediul cărora
permite utilizatorilor să trimită e -mailuri către alți utilizatori și să vorbească online intre ei.
De exemplu, atunci când este trimis un e -mail sau se discută cu cineva online este utilizat
internetul,iar când este accesat un site ca “google.com ” pentru informații, utilizați World
Wide Web (o rețea de servere pe internet).
Web-ul funcționează conform formularului client -server de bază al internetu lui, așa cum se
arată în imaginea următoare :
1.1 Formular de bază client -server
Serverele stochează și transferă pagini web sau informații către calculatoarele utilizatorilor
din rețea atunci când sunt solicitate de utilizatori. Un server web este un program software
care servește paginile web solicitate de utilizatorii web folosind un browser. Calculatorul
unui utilizator care solicită documente d e la un server este cunoscut ca un client. Browserul,
care este instalat pe calculatorul utilizatorului, permite utilizatorilor să vizualizeze
documentele preluate. De la începuturile sale, Web -ul sa schimbat mult și se schimbă și
astăzi. Motoarele de căut are au devenit mai avansate în citirea, înțelegerea și prelucrarea
informațiilor. Ele pot găsi cu ușurință informațiile solicitate de ut ilizatori și pot oferi chiar și
alte informații relevante care ar putea interesa utilizatorii. Există trei tehnologii principale
implicate în transferul de informații (pagini web) de la servere la clienți (calculatoare de
utilizatori). Aceste tehnologii includ Hypertext Markup Language (HTML), Hypertext
Transfer Protocol (HTTP) și browsere Web.
2.1 Hyper Text Trasfer Protocol(HTTP)
Hyper Text Transfer Protocol ( HTTP) este un protocol de aplicație care permite WWW să
funcționeze fără probleme și eficient. Se bazează pe un model client -server. Clientul este un
browser web care comunică cu serverul web care găzduiește site -ul web. Acest protocol
definește modul în care mesajele sunt formatate și transmise și ce acțiuni trebuie să aibă
serverul Web și browserul ca răspuns la diferite comenzi. Când introduceți o adresă URL în
browser, o comandă HTTP este t rimisă pe serverul Web și transmite pagina Web solicitată .
1.2 Schemă de comunicare a protocolului HTTP.
Când deschidem un site web utilizând un browser, se deschide o conexiune la serverul web și
browserul comunică cu serverul prin HTTP și trimite o solicitare. HTTP este transmis prin
TCP / IP pentru a comunica cu serverul. Serverul procesează cererea browse rului și trimite un
răspuns, iar conexiunea este închisă. Astfel, browserul preia conținut de pe server pentru
utilizator .
Coduri de stare HTTP comune :
200 – cerere de succes (pagina web există)
301 – mutat definitiv (adesea redirecționat către o nouă adresă URL)
401 – solicitare neautorizată (autorizare necesară)
403 – interzis (accesul la pagina sau directorul nu este permis)
500 – eroare internă a serverului (cauzată adesea de o configurație incorectă a
serverulu i)
HTTP utilizează comenzi cum ar fi GET și POST, care sunt folosite pentru a gestiona
trimiterile de formulare pe site -uri web. Comanda CONNECT este utilizată pentru a facilita o
conexiune securizată care este criptată utilizând SSL. Conexiunile HTTP criptate au loc prin
HTTPS, o extensie a HTTP concepută pentru transmisii de date securizate.
3.1 Navigator Web
Un navigator web sau pur și simplu "browser" este o aplicație utilizată pentru a accesa și a
vizualiza site -uri Web.
Browserele web au avansat în instrumente care permit accesarea în siguranță și rapid a site-
urilor preferate.
Browserele web moderne au multe atribute utile. De e xemplu, navigarea în tab -uri permite
deschiderea mai multor pagini web în fil ele individuale, în loc să avem nevoie de o fereastră
separată intensivă pentr u fiecare pagin ă. O altă caracteristică utilă pe care o susțin multe
browsere moderne este abilitatea de a opri sunetul în filele individuale .
Cele mai populare browsere de astăzi sunt:
Mozilla Firefox
Google Chrome
Microsoft Edge (fostul Internet Expl orer)
Apple Safari
Operă
Cum funcționează un browser Web
Se introduce adresa URL a unui site web în bara de adrese a browserului.
Browserul localizează și so licită informațiile cerute de pe un server web.
Browserul primește un fișier într -un cod de c alculator cum ar fi H TML sau JavaScript, care
includ instrucțiuni despre mod ul de afișare a informațiilor pe acea pagină.
Browserul traduce fișierul respectiv și încarcă pagina cu informațiile cerute. Toate acestea se
întâmplă în doar câteva secunde.
4.1 Server Web
Serverele web sunt compuse din două componente, hardware și software. Hardware -ul
include documente HTML și alte date. Serverele software includ serverul HTTP, care este
utilizat pentru a comunica între computer și serverul Web. Există două tipuri de servere Web,
care sunt servere statice și dinamice
În ceea ce privește hardware -ul, un server web este un calculator care stochează software -ul
serverului web și fișierele c omponente ale site -ului web (de exemplu, documente HTML,
imagini, foi de stiluri CSS și fișiere JavaScript). Este conectat la Internet și acceptă schimbul
fizic de date cu alte dispozitive conectate la web.
Pe partea software -ului, un server web include ma i multe componente care controlează modul
în care utilizatorii web accesează fișierele găzduite, cel puțin un server HTTP. Un server
HTTP este un software care înțelege adresele URL (adrese web) și HTTP (protocolul pe care
browserul îl utilizează pentru a vizualiza paginile web). Acesta poate fi accesat prin numele
de domenii (de exemplu, mozilla.org) de pe site -urile web pe care le stochează și le oferă
conținutul către dispozitivul utilizatorului final
Ori de câte ori un browser are nevoie de un fișier g ăzduit pe un server web, browserul solicită
fișierul prin HTTP. Când cererea ajunge la serverul web (hardware), serverul HTTP
(software) acceptă solicitarea, găsește documentul solicitat (dacă nu este returnat atunci un
răspuns 404) și îl trimite înapoi la browser, de asemenea prin HTTP .
1.3 Schemă de solicitare a unui fisier găzduit de un server
Există două tipuri de servere:
Web Server
Server de aplicații
Serverul Web conține numai container web sau servlet. Poate fi folosit pentru servlet, jsp,
struts, jsf etc. Nu poate fi folosit pentru EJB. Este un c alculator unde poate fi stocat
conținutul web. În general, serverul web poate fi folosit pentru a găzdui si te-urile web.
Poate răspunde solicitării clientului î n oricare dintre următoarele două moduri posibile:
Generarea de răspuns prin utilizarea scriptului și comunicarea cu baza de date.
Trimiterea fișierului către clientul asociat cu adresa URL solicitată
Puncte importante
Dacă pagina web solicitată nu este găsită pe partea clientului, atunci serverul web va trimite
răspunsul HTTP: Eroare 404 Nu a fost găsit.
Atunci când serverul web care caută pagina solicitată în cazul în care se află pagina solicitată,
aceasta va trimite clientului un răspuns HTTP.
Dacă clientul solicită alte resurse, atunci serverul web va contacta serverul de aplicații și
datele vor fi stocate pentru construirea răspunsului HTTP.
Server de aplicații
Serverul de aplicații conține containere Web și EJB. Acesta poate fi folosit pentru se rvlet, jsp,
struts, jsf, ejb etc. Acesta e ste un produs bazat pe componenț a, care se afla in middle -layer -ul
unei arhitecturi centralizate pe server. Oferă servicii middleware pentru întreținerea și
securitatea de stat, împreună cu persistența și accesul l a date. Este un tip de server conceput
pentru a instala, a opera și a găzdui servicii și aplicații asociate pentru serviciile IT,
utilizatorii finali și organizațiile.
Un server web trebuie să stocheze mai întâi fișierele site -ului, și anume toate documen tele
HTML și materialele asociate acestora, inclusiv imagini, foi de stil CSS, fișiere JavaScript,
fonturi și videoclipuri. Din punct de vedere tehnic, se pot găzdui toate aceste fișiere pe
calculatorul propriu, da r este mult mai convenabil de stocat pe un server web dedicat
este întotdeauna în funcțiune
este întotdeauna conectat la Internet
are aceeași adresă IP tot timpul (nu toți ISP furnizează o adresă IP fixă pentru liniile
de acasă)
este menținută de un furnizor terț
Din toate aceste motive, găsir ea unui furnizor bun de gă zduire este o parte esențială în
construirii uni site web.
Odată ce se configurează o soluție de găzduire web, trebuie doar să încărcăm fișierele pe
serverul web.
În al doilea rând, un server web oferă suport pentru HTTP (Hypertext Transfer Protocol).
După cum sugerează și numele, HTTP specifică modul în care se transferă hipertext (adică
documente web legate) între două computere.
Pe un server web, serverul HTTP este responsabil pentru procesarea și răspunsul la cererile
primite. La primirea unei solicitări, un server HTTP verifică mai întâi dacă adresa URL
solicitată se potrivește cu un fișier existent.
Dacă da, serverul web trimite conținutul fișierului înapoi în browser. Dacă nu, un server de
aplicații construiește fișierul necesar.
Dacă nici un proces nu este posibil, serverul web returnează un mesaj de eroare în browser,
cel mai frecvent 404 Not Found. (Această eroare este atât de comună încât mulți designeri
web petrec destul de mu lt timp proiectând 404 pagini de eroare.)
Un server poate servi fie conținut static, fie dinamic. "Static" înseamnă "servit așa cum este".
Site-urile web statice sunt cele mai usor de configurat .
"Dynamic" înseamnă că serverul procesează conținutul sau ch iar îl generează din mers de la o
bază de date. Această soluție oferă mai multă flexibilitate, dar stiva tehnică devine mai dificil
de manevrat, făcând -o dramatic mai complexă pentru a construi site -ul Web.
Capitolul 2 . TEHNOLOGI I WEB UTILIZATE PENTRU REALIZAREA
UNEI APLICATII DE REZERVARE
2.1Limbajul HTML
2.1.1 Despre HTML
HTML sau Hyper Text Markup Language, este ce -l mai ut ilizat limbaj pentru realizarea
paginilor Web .
Limbajul HTML (Hypertext Mark Up Language) este un limbaj în continuă evoluție, cu
versiuni diferite car e suportă funcții diferite, fiecare versiune nouă având un număr de
versiune . Prima versiune a HTML nu a avut un număr de versiune și a fost numită Hypertext
Mark -up Language (HTML).
În perioada 1990 – 1999, au avut loc o mulțime de schimbări în jurul limbajului HTML, de
la versiunea 2.0 până la versiunea 4.01.
HTML 2.0 a fost lansat în 1995 și a fost standardul pentru designul site -ului până în ianuarie
1997 .
HTML 2.0 acceptă elemente de bază HTML și carac teristici precum tabele și formulare cu
set limitat de elemente de formular, cum ar fi casete de text și butoane de opțiuni.
HTML 3.2 finalizat de W3C la începutul anului 1997. Această versiune include suport pentru
crearea de tabele și opțiuni extinse pen tru elementele de formă. De asemenea, a permis
paginilor web să includă ecuații matematice complexe. Această versiune de cod HTML
acceptă multe elemente concentrate pe prezentare, cum ar fi fonturile, precum și suportul
timpuriu pentru unele funcții de scr ipting.
HTML 4.01 Versiune lansată la data de l în decembrie 1999,a ceastă versiune a adăugat
suport pentru foile de stil și abilitatea de scripting pentru elementele multimedia.
HTML5 este ultima versiune realizată , World Wide Web Consortium (W3C) a pub licat-o în
octombrie 2014. HTML5 a fost creat pentru a pe rmite diferite caracteristici de care site -urile
web au nevoie. Este ușor de adoptat deoarece nu există modificări majore la versiunea de
programare a HTML.
HTML5 își propune să aducă în discuție problemele de dezvoltare web prin punerea în
comun a practicilor regulate, acceptarea de instrumente de la diferite browsere web. Pur și
simplu, HTML5 este un nume umbrelă pentru următoarea fază a aplicațiilor web și modul în
care eficac itatea va fi extinsă cu un stil mai bun (CSS), o mai bună marcare (HTML) și o
comunicare mai bună (JavaScript) .
Browsere foarte populare care sunt compatibile cu majo ritatea caracteristicilor HTML5:
Google Chrome 10.0 și versiuni ulterioare
Firefox 4.0 și versiuni ulterioare
Internet Explorer 8.0 și versiuni ulterioare
2.1.2 Structura unui document HTML
Structura generală a unui document HTML este urmatoarea:
2.1 Structura generală
Un document HTML este delimitat de tagurile <html></html>si poate fi structurat în t rei
părți:
• Declarația tipului d e document – se declară exact ce versiunea HTML este folosită pentru
marcarea documentului . O declarație DOCTYPE trebuie specificată pe prima linie a fiecărui
document web .
Declarația <! DO CTYPE> nu este o etichetă HTML, este o instrucțiune care indică
browserului web ce versiune HTML este scrisă în pagină.
În HTML 4.01, declarația <! DOCTYPE> se referă la un DTD, deoarece HTML 4.01 se
bazează pe SGML. DTD specifică regulile pentru limbajul de marcare , astfel încât browserele
să facă conținutul corect.
HTML5 nu se bazează pe SGML și, prin urmare, nu necesită o referință la un DTD.
• Secțiunea Head – furnizeză date descriptive despre document cum ar fi titlul documentului
și setul de caractere utilizat
• Secțiunea Body -conține conținutul care va apărea când documentul se încarcă într -un
browser web
Pentru poza atașată mai sus , semnificația etichetelor este urmatoarea:
<!DOCTYPE html> -indică browserului web ce versiune de HTML este utilizată,în acest caz
HTML5.
Eticheta HEAD definește un antet al documentului HTML. Antetul conț ine informații despre
document. Browserul web nu afișează niciuna dintre informațiile din antet, cu excepția
textului conținut în eticheta TITLE.
Eticheta HEAD poate conține etichete TITLE, BASE, ISINDEX, META, SCRIPT, STYLE
și LINK.
Eticheta TITLE definește TITLUL documentului. Acesta este cel afișat în partea de sus a
ferestrei browserului. În plus, multe motoare de căutare folosesc acest lucru ca nume primar
al unui document .
Eticheta BODY specifică conținutul principal al unui document. Et icheta BODY are atribute
care permit specificarea caracteristicilor documentului.
Comentariile in HTML:
Comentariile pot fi adăugate î n orice punct din secțiunea head și body între pereche de
etichete <! – și –> .Orice apare între etichetele de comentariu este ignorat de browser si nu
influențează cu nimic afisarea.Comentariile sunt foarte utile in HTML, în special în
documente le complexe, pentru remedierile rapide , indicarea secțiunilor , menținerea
coerenței sau pentru accelerarea procesului de dezvoltare .
3.1 CSS -Cascading Style Sheets
3.1.1 Elemente de bază
CSS reprezintă un limbaj de design simplu destinat simplificării procesului de prezentare a
paginilor web. Folosind CSS se poate controla culoarea textului, stilul fonturilor, distanța
dintre paragrafe, modul în care sunt dimensionate și dispuse coloanele, ce imagini de fond
sau culori sunt folosite, precum și o varietate de alt e efecte. CSS este ușor de învățat și de
înțeles, oferind un control puternic asupra prezentării unui document HTML. Cel mai
frecvent, CSS este combinat cu lim bajele de marcare HTML sau XHTML.
CSS este creat și întreținut printr -un grup de persoane din cad rul W3C numit Grupul de lucru
CSS. Grupul de lucru CSS creează documente numite specificații. Când o specificație a fost
discutată și ratificată oficial de membrii W3C, ea devine o recomandare.
Aceste specificații ratificate sunt numite recomandări deoarec e W3C nu are control asupra
implementării efective a limbii. Firmele și organizațiile independente creează acel software.
Cascadel e Style Sheets nivel 1 (CSS1) a ieșit din W3C ca o recomandare în decembrie 1996.
Această versiune descrie limbajul CSS, precu m și un model simplu de formatare vizuală
pentru toate etichetele HTML.
CSS2 a devenit recomandarea W3C în mai 1998 și se bazează pe CSS1. Această versiune
adaugă suport pentru foile de stil specifice mass -media, de ex. imprimante și dispozitive
audio, fonturi descărcabile, poziționarea elementelor și tabele.
Spre deosebire de CSS 2, care este o specificație unică, definind diverse caracteristici, CSS 3
este împărțit în mai multe documente separate numite "module". Fiecare modul adaugă noi
capabilități s au extinde ri a caracteristicile definite în CSS 2 .Lucrul la nivelul 3 al CSS a
început în perioada publicării recomandării inițiale a CSS 2. Cele mai vechi proiecte CSS 3
au fost publicate în iunie 1999.
Avatanje in cazul utiliză ri CSS:
Economire d e timp –o foaie de stil dacă se dorește poate fi reutilizată în mai multe pagini
HTML.Se poate define un stil pentru fiecare element HTML și se poate aplica la cât mai
multe pagini web dorite .
Întreținere ușoară – Pentru a face o schimbare globală, se schi mbă pur și simplu stilul iar
toate elementele din toate paginile web vor fi actualizate automat.
Stilurile superioare – CSS are o gamă mult mai largă de atri bute decât HTML, astfel încât se
poate da o imagine mult mai bună paginilor Web.
Compatibilitatea m ai multor dispozitive – foile de stil permit optimizarea conținutului
pentru m ai multe tipuri de dispozitive portabile, cum ar fi PDA -uri ,telefoane mobile ,tablete
si multe alte dispozitive.
3.1.2 Utilizare CSS in HTML
CSS poate fi adăugat în documentele HTML în trei moduri:
Inline – utilizând atributul de stil în elemente HTML.
Intern – utilizând un element <style> în secțiunea <head>.
Extern – prin utilizarea unui fișier extern CSS.
Inline: Un stil inline poate fi folosit pentru a aplica un stil unic p entru un singur de stil
poate conține orice proprietate CSS. Exemplul de mai jos arată cum se schimbă culoarea și
marginea din stânga a unui element <h1>:
Program:
2.2 Utilizarea stilului inline intr -un document html
Rezultat:
2.3 Conținutul pagini web afișat in urma aplică ri stilului inline
Intern : O foaie de stil internă poate fi utilizată dacă o singură pagină are un stil
unic.Stilurile interne sunt definite în elementul <style>, în interiorul secțiunii <head> a unei
pagini HTML:
Program:
2.4 Utilizarea stilului intern intr-un document html
Rezultat:
2.5 Conținutul pagini web afișat in urma utilizări stilului intern
Externe: In general fisierele externe de CSS sunt cele mai folosite. Este recomandat sa se
folosească aceasta metoda deoarece este mult mai simplu de făcut modificare asupra
întregului webs ite. In acest fel c u o foai e de stil externă, se poate modifica aspectul unui
întreg site web prin schimbarea unui singur fișier. Fiecare pagină trebuie să includă o referință
la fișierul de foi de stil extern din elementul <link>. Elementul <link> intră în secțiunea
<head>:
Program:
2.6 Utilizarea stilului extern intr -un document html
Rezultat:
2.7 Conținutul pagini web afișat in urma utilizări stilului extern
2.1.3 Proprietăți si Selectori CSS
Proprietăți CSS
Proprietatea CSS Margin este utilizată pentru a defini spațiul în jurul elementelor. Este
complet transparent și nu are nic i o culoare de fundal. Elimină o zonă în jurul elementului.
Marginile de sus, de jos, stânga și dreapta pot fi modificate independent utilizând proprietăți
separ 0ate. De asemenea, puteți modifica simultan toate proprietățile utilizând proprietatea de
margine scurtă.
Există următoarele proprietăți de margine CSS:
Marginea.Această proprietate este utilizată pentru a seta toate proprietățile într -o singură
declarație.
margin -left .Este folosit pentru a seta marginea stângă a unui element.
margin -right .Este folosit pentru a seta marginea dreapta a unui element.
margin -top. Este folosit pentru a seta marginea de sus a unui element.
margin -bottom. Este folosit pentru a seta marginea inferioară a unui element.
Acestea sunt câteva valori posi bile pentru proprietatea margine:
auto. Aceasta este utilizată pentru a permite browserului să calculeze o marjă.
length .Este folosit pentru a specifica o marjă pt, px, cm, etc. valoarea implicită este de
0px.
% .Este folosit pentru a defini o marjă în procente din lă țimea elementului care
conține.
inherit .Se utilizează pentru a moșteni marja din elementul părinte.
Proprietatea text -align în CSS este utilizată pentru a specifica alinierea orizontală a textului
într-un element.
left: este folosit pentru a seta alinie rea textului în stânga.
right: Este folosit pentru a seta alinierea textului în dreapta.
center: Este folosit pentru a seta alinierea textului în centru.
justify: Este folosit pentru a întinde conținutul unui element pentru a afișa aceeași
lățime a fiecăre i linii.
inițial: se utilizează pentru a seta valoarea implicită.
Inherit :este moștenit de la părintele său.
Proprietatea display CSS definește tipul de casetă de randare care trebuie utilizată pentru un
element.
none. Dezactivează afișarea unui element .
inline .Elementul va genera o casetă de elemente inline .
block . Elementul va genera o casetă element .
inline -block. Elementul va genera o casetă de element bloc care se comportă ca o
casetă inline
table .Elementul se va comporta ca elementul HTML <table >
list-item, Elementul va genera o casetă de element bloc pentru conținut și o casetă
separată de element de listă .
table -caption . Elementul se va comporta ca elementul <caption> HTML
table -column . Elementul se va comporta ca elementul <col> HTML
table -column-group . Elementul se va comporta ca elementul <colgroup> HTML
table -header -group . Elementul se va comporta ca elementul <thead> HTML
table -row-group . Elementul se va comporta ca elementul <tbody> HTML
table -fooster -group . Elementul se va comporta ca ele mentul <tfoot> HTML
table -row. Elementul se va comporta ca elementul <tr> HTML
table -cell Elementul se va comporta ca elementul <td> HTML
inherit. Elementul va moșteni afișajul de la elementul părinte
Proprietatea background din CSS ne permite să controlăm fundalul oricărui element Este o
proprietate sten ografică, ceea ce înseamnă că ne este permite să scrie m mai multe proprietăți
CSS într -una singură .
background -color − – Setează o culoare solidă pentru fundalul, umplutura și fundalul
elementului .
background -image – Definește locația unei imagini care urmează să fie plasată în fundul
elementului.
background -repeat – Setează o direcție repetată pentru o i magine în fundalul elementului.
background -attachment – Setează o stare de atașament pentru orice im agini din fundalul
elementului.
background -position – Setează o poziție pentru imaginea de origin e în fundalul elementului.
background -clip – Specifică zona de pictură a imaginilor de funda
CSS3 a adăugat sup ort pentru mai multe fundaluri, care au un strat deasupra celuilalt
Proprietățile padding CSS sunt folosite pentru a genera spațiu în jurul conținutului unui
element, în interiorul oricărei frontiere definite.
CSS are proprietăți pentru fiecare parte a unui element:
padding -top
padding -right
padding -bottom
padding -left
Proprietatea padding poate lua una, două, trei sau patru valori separate. Dacă este setată o
valoare, aceasta se aplică tuturor celor patru laturi. Dacă sunt specificate două valori, pri ma
valoare este aplicată în partea superioară și inferioară, iar a doua valoare este aplicată în
partea dreaptă și pe partea stângă. Dacă sunt specificate trei valori, prima valoare este aplicată
în partea de sus, iar a doua valoare este aplicată în partea stângă și cea dreaptă, iar ultima
valoare este aplicată în partea de jos. Dacă sunt specificate patru valori, acestea sunt aplicate
în partea de sus, dreapta, partea de jos și partea stângă, respectiv, în ordinea specificată.
Selectori CSS
Selectorii CSS sunt folosiți pentru a viza un Element HTML sau un grup de elemente bazate
pe selectorul pe care îl folosim. Selectorii CSS sunt împărțiți ca selectori simpli, selectori de
combinații și selectori de pseudo -selectori. Selectorii sunt coloana vertebrală a css-ului. Cele
mai recente selectori din css se numesc selectori css3 introduși cu HTML5.
Există multe tipuri de selectori CSS, cum ar fi selectorii simpli, selectori de combinații și
selectori de pseudo.
Selectorul de etichete sau Selectorul de elemente este primul selector major în css. Selectorii
de etichete sunt selectorii LEVEL 1 în css. Orice element html poate fi accesat în css folosind
numele tagului. Etichetele pot fi folosite de mai multe ori, astfel încât toate elementele vor fi
numite.
Selecto rul de ID -uri este folosit pentru a apela un element HTML prin numele său unic de
identificare. Id -ul este întotdeauna unic într -o singură pagină web. Nu putem da același nume
de identificare pentru niciun alt element HTML din aceeași pagină web. ID -ul est e, în
principiu, un atribut utilizat în deschiderea sau la începutul tagului elementului html.
Valoarea ID este unică, înseamnă că nu există o separare a spațiului alb În css, selecto rul id
este apelat folosind semnul diez (#), urmat de numele id.
Selecto rul de clase din css este folosit pentru a apela toate elementele html cu același nume
de clasă.
Clasa reprezintă un grup de elemente html diferite sau aceleași. Putem da același nume de
clasă pentru două sau mai multe elemente HTML diferite.
În css, clasa este numită folosind semnul punct (.), Urmată de numele clasei.
Selectorul de clase CSS poate fi, de asemenea, utilizat cu un element sau o etichetă. Acest
lucru poate crește specificitatea sau importanța clase .
Gruparea este utilizată pentru a apela un grup de Elemente HTML după nume de tag, nume
de clasă sau id. Spre deosebire de selectorul de clasă, nu este necesar să cremăm primul
atribut. Putem grupa mai multe etichete, coduri și clase. Trebuie să folosim semnul (,) pentru
a separa select orii în grupare.
Selectarea selectorului selectează un element html bazat pe numele sau valoarea atributelor
lor. Parantezele [] sunt folosite pentru a scrie at ributul sau atributul cu valoar
3.1 Limbajul JAVA -SCRI PT
3.1.1Despre Java -Script
JavaScript este unul din cele mai populare limbaje de programare “ client -side”,pentru crearea
paginilor Web, fiind recunoscut de maj oritatea browser -lor,cum ar fi: Internet
Explorer,Firefox,Opera etc.
Javascript a fost creat la mijlocul anilor '90 ca o moda litate de a face browserele web mai
interactive. Până în acel m oment majoritatea site -urilor erau foarte plictisitoa re, deoarece de
obicei conțineau puțin text și nu aveau aproape nici o interactivitate. Pentru a rezolva această
problemă atunci când Netsca pe dezvolta versiunea actualizată a browserului Navigator, au
creat Javascript pentru a le permite să construiască un browser care să fie mai funcțional.
Avantaje ale limbajului Javascript:
Interacțiune mai redusă a serverului: se poate valida introducerea utilizatorului
înainte de a trimite pagina pe server. Acest lucru economisește traficul serverului,
ceea ce înseamnă o înc ărcare mai mică pe server.
Feedback imediat către vizitatori: nu trebuie să se aștepte o reîncărcare a
paginii pentru a vedea dacă sa uitat să se introducă ceva.
Interactivitate sporită: se pot crea interfețe care reacționează atunci când
utilizatorul se deplasează cu mouse -ul peste ele sau le activează prin intermediul
tastaturii.
Interfețe mai bogate : se poate utiliza Ja vaScript pentru a include elemente cum
ar fi drag -and-drop și sliders pentru a oferi o interfață mai bogată vizitatorilor
siturilor web.
Limitări ale limbajului JavaScript
JavaScript de pe partea clientului nu permite citirea sau scrierea de fișiere. Ace st
lucru a fost păstrat din motive de securitate.
JavaScript nu poate fi utilizat pentru aplicații de rețea, deoarece nu există un astfel
de suport disponibil.
JavaScript nu are capabilități multithreading sau multiprocesor.
JavaScript poate fi implementat intr-o pagina HTML prin intermediul etichetele lor <script>
… </ script> ..
Se pot plasa etichetele <script>, care conțin JavaScript oriunde în interiorul paginii web, dar
în mod normal este recomandat sa fie utilizat în interiorul etichetelor <head>.
Eticheta <script> alertează programul browserului pentru a începe interpretarea întregului
text ca un script.
JavaScript acceptă trei tipuri importante de casete de dialog. Aceste casete de dialog pot fi
utilizate pentru a ridica și avertiza, sau pentru a obține confirmare pe orice intrare sau pentru
a avea un fel de intrare de la utilizatori. Aici vom discuta fiecare casetă de dialog unul câte
unul. O casetă de dialog de avertizare este folosită în cea mai mare parte pentru a da un mesaj
de avertizare uti lizatorilor. De exemplu, dacă un câmp de introducere necesită introducerea
unui text, dar utilizatorul nu oferă nicio intrare, atunci ca parte a validării, puteți utiliza o
casetă de alertă pentru a da un mesaj de avertizare.
O casetă de dialog de confirma re este folosită în cea mai mare parte pentru a lua acordul
utilizatorului cu privire la orice opțiune. Afișează o casetă de dialog cu două butoane: OK și
Anulare. Dacă utilizatorul face clic pe butonul OK, metoda de confirmare a ferestrei () va
reveni la adevărat. Dacă utilizatorul dă clic pe butonul Anulare, apoi c onfirma () returnează
false.
Caseta de dialog prompt este foarte utilă atunci când doriți să afișați o casetă de text pentru a
obține o intrare de utilizator. Astfel, vă permite să interacționaț i cu utilizatorul. Utilizatorul
trebuie să completeze câmpul și apoi să facă clic pe OK.
JavaScript acceptă declarații condiționale care sunt folosite pentru a efectua diferite acțiu ni
bazate pe diferite condiții,de exemplu instrucțiunea if..else.
JavaScr ipt acceptă următoarele forme de instrucțiuni if..else –
dacă declarație
dacă declarația … altceva
dacă … altfel dacă … declarație.
Instrucțiunea if este declarația de control fundamentală care permite JavaScript să ia decizii și
să execute declarații în mod condiționat.
Sintaxa pentru o instrucț iune if este după cum urmează :
dacă (expresie) {
Declarația (declarațiile) care trebuie executate dacă expresia este adevărată
}
Aici este evaluată o expresie JavaScript. Dacă valoarea rezultată este adevărată, instrucțiunile
date sunt executate. Dacă expresia este falsă, atunci nici o declarație nu va fi executată. De
cele mai multe ori, veți utiliza operatori de comparație în timp ce luați decizii .
Instrucțiunea "if … else" este următoarea fo rmă de instrucțiune de control care permite
JavaScript să execute declarații într -un mod mai controlat.
dacă (expresie) {
Declarația (declarațiile) care trebuie executate dacă expresia este adevărată
} altceva {
Declarația (declarațiile) care trebuie executate dacă expresia este falsă}
Aici se evaluează expresia JavaScript. Dacă valoarea rezultată este adevărată, instrucțiunile
date în blocul "if" sunt executate. Dacă expresia este falsă, atunci instrucțiunile date în alt
bloc sunt executate.
Dacă if … else if … declarația este o formă avansată de … dacă altceva permite JavaScript
pentru a lua o decizie corectă din mai multe condiții.
dacă (expresia 1) {
Declarația (declarațiile) care trebuie executate dacă expresia 1 este adevărată
} altfel dacă (expresia 2) {
Declarația (declarațiile) care trebuie executate dacă expresia 2 este adevărată
} altfel dacă (expresia 3) {
Declarație (declarații) care trebuie executate dacă expresia 3 este adevărată
} altceva {
Declarație (declarații) care trebuie executată dacă nu este adevărată expresie
}
Nu există nimic special în acest cod. Este doar o serie de afirmații dacă fiecare, dacă este
parte din clauza else a declarației precedente. Declarația (declarațiile) sunt executate pe baza
condiției ade vărate, dacă niciuna dintre condiții nu este adevărată, atunci blocul altceva este
executat.
Obiectul String ne permite să lucrăm cu o serie de caractere; acesta împachetează tipul de
date primitiv de tip Javascript cu un număr de metode de ajutor.
Pe măsură ce JavaScript se convertește automat între primitive șir și obiecte String, se poate
apela oricare dintre metodele de ajutor ale obiectului String pe o primitivă de șir.
var val = new String(string);
Proprietăți string:
Constructor -Returnează o referință la funcția String care a creat obiectul.
Lungime – Returnează lungimea șirului.
Prototip – Proprietatea prototip vă permite să adăugați proprietăți și metode unui obiect.
JavaScript: Form Validation
Form Validation se utilizează în mod obișnui t la server, după ce clientul a introdus toate
datele necesare și apoi a apăsat butonul Trimite. Dacă datele introduse de un client erau
incorecte sau pur și simplu lipseau, serverul ar fi trebuit să trimită toate datele înapoi la client
și să solicite ca formularul să fie retrimis cu informații corecte.
JavaScript oferă o modalitate de a valida datele din formular pe c alculatorul clientului înainte
de al trimite pe serverul web. Validarea formularului are în general două funcții.
Validarea de bază – În pr imul rând, formularul trebuie să fie veri ficat pentru a ne asigura că
toate câmpurile obligatorii sunt completate.
Validarea formatului de date – În al doilea rând, datele introduse trebuie să fie verificate
pentru forma și valoarea corecte. Codul trebuie să includă o logică adecvată pentru a testa
corectitudinea datelor.
4.1Programarea aplicatiilor server side
4.1.1 Aplicații server side
În momentul î n care un client face o cerere sub forma unui URL , WEB serverul HTTP la care
ajunge cererea,analizeză dacă URL -ul se referă la o pagină html sau un la un scrypt .În cazul
că cererea este un scrypt,serverul HTTP pasează cererea spre o aplicație care poate interpreta
scriptul respectiv .În acest moment avem de-a face cu o aplicație server side care se derulează
după principiul afișat grafic mai jos.
2.8 Graficul derulări unei aplicații server side
Aplicații Php server side:
În cazul in care scriptul este o aplicație Php procesul de execu ție al aplicației server side este:
2.8 Procesul de executie al unei aplicaț ii server side
În majoritatea cazurilor,aplicațiile php apelează baza de date.Baza de date MySQL este cea
mai utilizată bază de date accesată de aplicațiile php.În acest caz aplicatia client -server se
poate reprezenta astfel :
2.9 Procesul de executie a unei aplicații server side ,
cu aplelare la o bază de date
4.1.2 Despre PHP
Termenul PHP este un acronim pentru PHP: Hypertext Preprocessor. PHP este un limbaj de
scripting din partea serverului conceput special pentru dezvoltarea web. PHP poate fi uș or
încorporat în fișiere HTML iar codurile HTML pot fi de asemenea scrise într -un fișier PHP.
Lucrul care diferențiază PHP față de limbajul clientului cum ar fi HTML este modul de
execuție unde codurile PHP sunt executate pe server, în timp ce codurile HTML sunt redate
direct în browser.
PHP a început ca un mic proiect open source care a evoluat pe măsură ce tot mai mulți
oameni au observa t cât de u til poate fi. Rasmus Lerdorf a realizat prima versiune de PHP in
anul 1994.
Cinci caracteristici importante care fac usoară utilizarea limbajului PHP:
1. Simplitate
2. Eficiența
3. Securitate
4. Flexibilitate
5. Familiaritate
Principalul mod de a stoca informațiile în mijlocul unui program PHP este prin utilizarea unui
variabile.
Cele mai importante lucruri care trebuie să le cunoaștem despre variabilele din PHP .
Toate variabilele din PHP sunt marcate cu semnul de dolar princip al ($).
Valoarea unei variabile este valoarea celei mai recente alocări.
Variabilele sunt atribuite operatorului =, cu variabila din partea stângă și cu expresia care
urmează a fi evaluată în dreapta.
Variabilele pot, dar nu trebuie, să fie declarate înain te de alocare.
O variabilă nu știe în avans dacă va fi utilizată pentru a stoca un număr sau un șir de
caractere.
Variabilele utilizate înainte de alocare au valori implicite.
PHP face o treabă bună de a converti automat tipurile de la unul la altul atunci când este
necesar.
Variabilele PHP sunt asemănătoare cu Perl.
Constanta in Php este un nume sau un identificator pentru o valoare simplă. O valoare
constantă nu se poate modifica în timpul executării scriptului .Prin convenție, identificatorii
constanți sunt întotdeauna majori. Un nume constant începe cu o literă sau un
underscore, urmat de orice număr de litere, numere sau subliniere. Dacă ați definit o
constantă, ea nu poate fi niciodată schimbată sau nedefinită.
Pentru a defini o constantă, trebuie să utilizați funcția define () și pentru a extrage valoarea
unei constante, trebuie doar să specificați numele acesteia. Spre deosebire de variabile, nu
este nevoie să aveți o constantă cu un $.
Diferențe dintre constante și variabile :
Nu este necesar să scriem un semn de dolar ($) înaintea unei constante ca in cazul unei
variabile
Constantele pot fi definite numai cu ajutorul funcției define ().
Constantele pot fi definite și accesate oriunde, fără a se ține seama de regulile de stabilire a
domeniului variabil.
session_start () creează o sesiune sau reia una actuală pe baza unui identificator de sesiune
transmis printr -o solicitare GET sau POST sau prin intermediul unui modul cookie.
Atunci când se solicită session_start () sau când începe o sesiune automată a sesiunii, PHP va
apela aplicațiile de salvare deschise și citite. Acestea vor fi fie un handler de salvare integrat
furnizat în mod implicit, fie prin extensii PHP (cum ar fi SQLit e sau Memcached); sau poate
fi un handler personalizat definit de session_set_save_handler (). Citirea inversă va prelua
toate datele de sesiune existente (stocate într -un format serializat special) și va fi neserializată
și va fi utilizată pentru a popula automat supersolventele $ _SESSION atunci când callback –
ul returnează datele de sesiune salvate înapoi la tratarea sesiunilor PHP.
Pentru a utiliza o sesiune numită, apelați session_name () înainte de a apela session_start ().
Când sesiunea session.use_tr ans_sid este activată, funcția session_start () va înregistra un
handler de ieșire intern pentru rescrierea URL -ului.
Dacă un utilizator utilizează ob_gzhandler sau similar cu ob_start (), ordinea funcțiilor este
importantă pentru ieșirea corespunzătoare. De exemplu, ob_gzhandler trebuie înregistrat
înainte de a începe sesiunea.
Funcția header () este o funcție încorporată în PHP care este utilizată pentru a trimite un
antet HTTP brut. Funcțiile HTTP sunt acele funcții care manipulează informațiile trimise
clientului sau browser -ului de către serverul Web, înainte de a trimite orice altă ieșire. Funcția
header () PHP trimite un antet HTTP unui client sau unui browser în formă brută. Înainte de a
fi trimis un mesaj HTML, XML, JSON sau altă ieșire către un bro wser sau un client, sunt
trimise date brute cu cerere (în special solicitare HTTP) realizate de server ca informații de
antet. Antetul HTTP furnizează informațiile necesare despre obiectul trimis în corpul
mesajului mai precis despre solicitare și răspuns.
Pentru a închide conexiunea în baza de date mysql, folosim funcția php mysqli_close () care
se deconectează de la baza de date. Este nevoie de un parametru care este o conexiune
returnată de funcția mysql_connect. Dacă parametrul nu este specificat în fun cția
mysqli_close (), atunci ultima bază de date deschisă este închisă. Această funcție revine la
adevărat dacă închide conexiunea cu succes, altfel returnează false.
Funcția isset () este utilizată pentru a verifica dacă o variabilă este setată sau nu. Da că o
variabilă este deja dezactivată cu funcția unset (), nu va mai fi setată. Funcția isset ()
returnează false dacă variabila de testare conține o valoare NULL.
Variabila $ _POST este o serie de nume de variabile și valori expediate prin metoda HTTP
POST. Variabila $ _POST este folosită pentru a colecta valori dintr -un formular cu metoda =
"post". Informațiile trimise dintr -un formular cu metoda POST sunt invizibile pentru ceilalți
și nu au limite pentru cantitatea de informații pe care trebuie să le trimită.
5.1 Baze de date în aplicaț ii Web
MySQL este cel mai popular sistem de gestionare baze de date SQL Open Source. MySQL
este unul dintre cele mai bune RDBMS care este folosit pentru dezvoltarea de aplicații
software bazate pe web. MySQL este dezvoltat, comercializat și susținut de MySQL AB, o
companie suedeză.
O bază de date este o aplicație separată care stochează o colecție de date. Fiecare bază de date
are unul sau mai multe API -uri distincte pentru crearea, accesarea, gestionarea, căutarea și
replicarea datelor pe care le deține.
Alte tipuri de stocare de date pot fi de asemenea utilizate, cum ar fi fișierele din sistemul d e
fișiere sau tabelele hash mari din memorie, dar preluarea și scrierea datelor nu ar fi atât de
rapidă și ușoară cu acele tipuri de sisteme.
În prezent, folosim sisteme de gestionare a bazelor de date relaționale (RDBMS) pentru
stocarea și gestionarea volumului mare de date. Aceasta se numește bază de date relațională,
deoarece toate datele sunt stocate în tabele diferite, iar relațiile se stabilesc utilizând chei
primare sau alte chei cunoscute sub numele de chei externe.
Un sistem relațional de manag ement al bazei de date (RDBMS) este un software care :
Permite să implementăm o bază de date cu tabele, coloane și indexuri.
Garantează integritatea referențială între rândurile diferitelor tabele.
Actualizează indexurile în mod automat.
Interpretează o interogare SQL și combină informații din diferite tabele.
RDBMS Terminology
Înainte de a începe să explicăm sistemul de baze de date MySQL, să revizuim câteva
definiții legate de baza de date.
Baza de date – O bază de date este o colecție de tabele cu date aferente.
Tabel – O tabelă este o matrice cu date. Un tabel într -o bază de date arată ca o foaie de calcul
simplă.
Coloană – O coloană (element de date) conține date de același tip, de exemplu, codul poștal
al coloanei.
Rând – Un rând (= tuplu, intrare sau înregistrare) este un grup de date conexe, de exemplu
datele unui singur abonament.
Redundanță – stocarea datelor de două ori, redundant pentru a face sistemul mai rapid.
Cheie primară – o cheie primară este unică. O val oare cheie nu poate apărea de două ori într –
un singur tabel. Cu o cheie, puteți găsi doar un rând.
Cheia externă – o cheie străină este clema de legătură între două mese.
Cheie compusă – Cheia compus (cheia compozită) este o cheie care constă din mai mul te
coloane, deoarece o coloană nu este suficient de unică.
Index – Un index într -o bază de date seamănă cu un index din spatele unei cărți.
Integritatea referențială – Integritatea referențială asigură faptul că valoarea unei chei
străine indică întotdea una un rând existent.
MySQL a devinet atât de popular din cauza mai multor motive :
MySQL este lansat sub licență open -source.
MySQL este un program foarte puternic în sine. Acesta gestionează un subset mare de
funcționalitate a celor mai scumpe și mai puternice pachete de baze de date.
MySQL util izează o formă standard a limbajului de date cunoscut ca SQL.
MySQL funcționează pe mai multe sisteme de operare și cu multe limbaje , inclusiv
PHP, PE RL, C, C ++, JAVA etc.
MySQL funcționează foarte rapid și funcționează bine chiar și cu seturi de date mari.
MySQL este foarte prietenos cu PHP, li mbajul cel mai apreciat pentru dezvoltarea
web.
MySQL suportă baze de date mari, de până la 50 de milioan e de rânduri într -un tabel.
Limita implicită a dimensiunii fișierului pentru un table este de 4GB, dar se poate
crește această valoare la o limită teoretică de 8 milioane de terabyte (TB).
MySQL este personalizabil. Licența GPL open -source permite progra matorilor să
modifice software -ul MySQL pentru a se potrivi propriilor medii specific .
Crearea unei baza de date utilizând mysqladmin
Avem nevoie de privilegii speciale pentru a crea sau a șterge o bază de date M ySQL. Deci,
dacă avem acces de utilizeator putem c rea orice bază de date folosind mysql -ul mysqladmin
binar.
[root@host]# mysqladmin -u root -p create cinema
Enter password:******
Aceasta va crea o bază de date MySQL numită cinema.
Crearea unei o baze de date utilizând PHP Script
PHP utilizează funcția mysql_query pentru a crea sau șterge o bază de date MySQL. Această
funcție are doi parametri și returnează TRUE cu succes sau FALSE la eșec.
Exemplu de creare a unei baze de date:
2.9Crearea unei baze de date
Capitolul 3. STUDIU DE CAZ. APLICAȚIE WEB DE REZERVARE
3.1 Ideea aplicației
3.2 Modul de proiectare al aplicației
3.3 Implementarea aplicației
3.3.1 Pagina de înregistrare
Pagina de înregistrare va servi la înregistrarea utilizatorilor. Aceștia vor fi obligați să
completeze un formular prin introducerea unui email și a unei parole.
Formularul HTML:
<form method="post" action="register.php" id="createform" onsubmit="return
validateForm()">
<label for="username">Nume de utilizator:</label><input type="text"
name="username" id="username" value="<?php if ($userTaken || $emailTaken) { print
$username; } ?>" required>
<label for="username">Email:</label><input type="email" name="email"
id="email" val ue="<?php if ($userTaken || $emailTaken) { print $email; } ?>" required>
<label for="username">Parolă:</label><input type="password"
name="password" id="password" required>
<?php if ($userTaken) { ?><p>Numele de utilizator este deja
înregistrat</p><?php } ?>
<?php if ($emailTaken) { ?><p>Email -ul este deja înregistrat</p><?php } ?>
<button type="submit" name="submit" id="submit">Înregistrare</button>
</form>
La trimiterea fo rmularului vom verifica datele introduse de utilizator prin funcția
JavaScript validateForm:
var reg = new RegExp("^[a -zA-Z0-9]*$");
function validateForm() {
var username = document.getElementById('username').value;
var password = document.getElemen tById('password').value;
if (username.length < 3) {
alert(" Lungimea numelui de utilizator trebuie să fie mai mare decât
3");
return false;
}
else if (!reg.test(username)) {
alert(" Numele de utilizator poate fi format doar din litere și cif re");
return false;
}
else if (password.length < 6 || password.length > 15) {
alert(" Lungimea parolei trebuie să fie între 6 și 15 caractere ");
return false;
}
else if (!reg.test(password)) {
alert(" Parola poate fi formată doar din litere și cifre ");
return false;
}
}
Vom verifica lungimea numelui de utilizator – dacă lungimea este mai mică decât 3,
atunci vom trimite o eroare utilizatorului prin functia alert. De asemenea, vom interzice
parolele mai mici decat 6 și mai mari d ecat 15.
Vom defini un pattern regex pentru verificarea caracterelor introduse în formular: new
RegExp("^[a -zA-Z0-9]*$") . Vom permite doar caracterele cuprinse între a și z, între A și Z și
între 0 și 9.
La încărcarea paginii vom verifica dacă utilizator ul este deja înregistrat și îl vom
refirecționa către pagina principală.
session_start();
if (isset($_SESSION['username']))
{
header("refresh:0;url=index.php");
}
Vom verifica dacă numele de utilizator se regăsește în baza de date:
$query = "SELECT * FROM users WHERE username = '$username'";
$record = mysqli_query($db_conn, $query);
$found = mysqli_fetch_row($record);
Dacă numele de utilizator este disponibil, se va verifica dacă email -ul introdus de
utilizator se regăsește, de asemenea, în baza de date:
$query = "SELECT * FROM users WHERE email = '$email'";
$record = mysqli_query($db_conn, $query);
$found = mysqli_fetch_row($record);
Dacă numele de utilizator și email -ul sunt disponibile, se va crea o nouă sesiune cu
numele utilizatorului și se vor introduce datele în baza de date:
$_SESSION["username"] = $username;
session_write_close();
$query = "INSERT INTO users (username, email, password) VALUES ('$username',
'$email', '$password')";
mysqli_query($db_conn, $query);
3.3.2 Pagina de aut entificare
Pagina de autentificare va servi la autentificarea utilizatorilor. Aceștia vor fi obligați
să completeze un formular HTML:
<form method="post" action="login.php" id="loginform">
<label for="username">Nume de utilizator:</label>
<input type="text" name="username" value="<?php if ($invalidUser ||
$invalidPassword) { print $username; } ?>" required>
<label for="password">Parolă:</label>
<input type="password" name="password" required>
<?php if ($invalidUser) { ?><p>Nume de utilizator invalid</p><?php } ?>
<?php if ($invalidPassword) { ?><p>Parolă invalidă</p><?php } ?>
<button type="submit" name="submit" id="submit">Autentificare</button>
</form>
La trimiterea formularului, atributele required vor verific a dacă utilizatorul a
completat câmpurile respective. De asemenea, eticheta input de tipul email va verifica dacă
utilizatorul a introdus un string de tipul email.
La încărcarea paginii vom verifica dacă utilizatorul este deja autentificat (vom
verifica d acă există o sesiune cu numele de utilizator respectiv). Codul PHP pentru această
verificare:
session_start();
if (isset($_SESSION['username']))
{
header("refresh:0;url=index.php");
}
Vom verifica dacă datele introduse de utilizator se regăsesc în b aza de date:
$username = $_POST['username'];
$password = $_POST['password'];
$query = "SELECT * FROM users WHERE username = '$username';";
$record = mysqli_query($db_conn, $query);
$found = mysqli_fetch_row($record);
mysqli_free_result($record);
$query = "SELECT * FROM users WHERE password = '$password';";
$record = mysqli_query($db_conn, $query);
$found = mysqli_fetch_row($record);
mysqli_free_result($record);
Dacă datele se regăsesc în baza de date, se va crea o nouă sesiune cu numele
utilizato rului:
$_SESSION["username"] = $username;
session_write_close();
3.3.3 Pagina principală
În pagina principală vom afișa filmele disponibile. Vom prelua datele din tabelul
„movies”:
session_start();
require('db.php');
$query = "SELECT * FROM movies";
$record = mysqli_query($db_conn, $query);
Pentru fiecare înregistrare din baza de date, vom afișa datele în interiorul etichetei
main:
<main class="page">
<?php
while ($row = mysqli_fetch_array($record))
{
?>
<section class="movie">
<div class="movie -left">
<img src="img/<?php print $row['image'] ?>">
</div>
<div class="movie -right">
<h1><?php print $row['name'] ?></h1>
<p class="de sc"><?php print $row['description'] ?></p>
<p><strong>Director:</strong> <?php print $row['director']
?></p>
<p><strong> Durata :</strong> <?php print $row['duration']
?></p>
<p><strong> Categorie :</strong> <?php print $row['category']
?></p>
<p><strong> Limba :</strong> <?php print $row['language']
?></p>
<form method="post" action="seatplantry.php">
<select name="broadcast">
<?php
$query2 = "SELECT * FROM broadcast
WHERE disabled = 0 AND movie_id = ".$row['id'];
$record2 = mysqli_query($db_conn,
$query2);
while ($row2 =
mysqli_fetch_array($record2)) {
?>
<option value="<?php print
$row2['id'] ?>">
<?php print $row2['date']
. " " . $row2['time'] . " Room " . chr(65 + $row2['house_id'] – 1) ?>
</option>
<?php
}
mysqli_free_result($record2);
?>
</select>
<button type="submit" name="submit"
id="submit"> Comandă </button>
</form>
</div>
</section>
<?php
}
mysqli_free_result($record);
?>
</div>
Se vor prelua datele din tabelul broadcast prin care se vor afișa orele de start pentru
filmele respective. Pentru o rezervare, utilizator va selecta mai întâi o dată și o oră pentru
vizio narea filmului.
3.3.4 Pagina pentru selectarea locurilor disponibile
La încărcarea paginii vom verifica dacă utilizatorul este autentificat. Dacă nu este
autentificat îl vom redirecționa către pagina de autentificare.
session_start();
if (!isset($_SESSI ON['username']))
{
header("refresh:0;url= login .php");
}
Dacă utilizatorul este autentificat, vom afișa date despre filmul respectiv, despre
timpul și locul rulării filmului:
require('db.php');
$query = "SELECT * FROM broadcast WHERE id = " . $_POST['broadcast'];
$record = mysqli_query($db_conn, $query);
$broadcastInfo = mysqli_fetch_array($record);
mysqli_free_result($record);
$query = "SELECT * FROM movies WHERE id = " . $broadcastInfo['movie_id'];
$record = mysqli_query($db_conn, $qu ery);
$movieInfo = mysqli_fetch_array($record);
mysqli_free_result($record);
$query = "SELECT * FROM houses WHERE id = " . $broadcastInfo['house_id'];
$record = mysqli_query($db_conn, $query);
$houseInfo = mysqli_fetch_array($record);
mysqli_free_r esult($record);
$query = "SELECT * FROM tickets WHERE broadcast_id = " . $broadcastInfo['id'];
$record = mysqli_query($db_conn, $query);
$seatsOccupied;
$numberOfSeatsOccupied = 0;
while ($row = mysqli_fetch_array($record)) {
$seatsOccupied[$number OfSeatsOccupied][0] = $row['row'];
$seatsOccupied[$numberOfSeatsOccupied][1] = $row['col'];
$numberOfSeatsOccupied++;
}
mysqli_free_result($record);
La trimiterea formularului din pagina principală, se va trimite id -ul rulării. Vom
prelua id -ul prin funcția $_POST .
Vom prelua datele despre timpul și locul rulării filmului respectiv din tabelul
„broadcast”. Vom prelua datele despre film din tabelul „movies” folosind câmpul „movie_id”
din tabelul „broadcast”. Vom prelua datele des pre camera care găzduiește filmul în cinema -ul
respectiv, folosind câmpul „house_id” din tabelul „broadcast”.
Vom prelua datele despre comenzile efectuate asupra filmului respectiv, la data și ora
respectivă. Vom afișa un tabel prin care informăm utilizat orul despre locurile disponibile.
Datele despre filmul respectiv se vor insera în următoarea secțiune a paginii:
<section class="movie">
<div class="movie -left">
<img src="img/<?php print $movieInfo['image'] ?>">
</div>
<div class="movi e-right">
<h1><?php print $movieInfo['name'] ?></h1>
<p class="desc"><?php print $movieInfo['description'] ?></p>
<p><strong> Ora de start :</strong> <?php print $broadcastInfo['date'] .
" " . $broadcastInfo['time'] ?></p>
<p><strong> Camera :</strong> Camera <?php print chr(65 +
$broadcastInfo['house_id'] – 1) ?></p>
</div>
</section>
În următoarea secțiune a paginii vom afișa locurile disponibile într -un formular:
<section class="movie" style="text -align: center; display: block;">
<form method="post" action="buyticket.php" onsubmit="return check();">
<?php
while ($houseInfo['rows']) {
$rowName = chr(65 + $houseInfo['rows'] – 1);
?>
<div class="ticketing -row">
<?php
for ($i = 1; $i <= $houseInfo['cols']; $i++)
{
$isReserved = false;
for ($it = 0; $it < $numberOfSeatsOccupied; $it++) {
if ($seatsOccupied[$it][0] == $houseInfo['rows']
&& $seatsOccupied[$it][1] == $i)
$isReserved = true;
}
if ($isReserved)
{
echo "<div class='ticketing -col reserved'>";
print "Sold " . $rowName . $i;
}
else
{
echo "<div class='ticketing -col'>";
print "<input type='checkbox' class='checkbox'
name='seat[]' value='" . $houseInfo['rows'] . "|" . $i . "'>";
print $rowName . $i;
}
echo "</div>";
}
$houseInfo[ 'rows'] –;
echo "</div>";
}
?>
<div class="ticketing -row">
<div class="ticketing -col screen">
Screen
</div>
</div>
<button t ype="submit" name="submit" id="submit">Select
Seats</button>
<input type="hidden" name="broadcast" value="<?php echo
$broadcastInfo['id'] ?>">
</form>
</section>
Vom folosi un input de tipul checkbox pentru afișarea locurilor și îl vom dez activa
dacă locul respectiv este deja rezervat. La trimiterea formularului vom trimite locurile
selectate într -un vector.
La trimiterea formularului vom verifica printr -un cod JavaScript dacă utilizatorul a
selectat un loc:
<script type="text/javascript" >
function check()
{
var ok = -1;
var listOfCheckboxes =
document.getElementsByClassName('checkbox');
for (var i = 0; i < listOfCheckboxes.length; i++)
{
if (listOfCheckboxes[i].checked)
ok = 1;
}
if (ok == -1)
{
alert("Please choose at least one seat.");
return false;
}
}
</script>
3.3.5 Pagina pentru afișarea codului
La confirmarea formularului pentru alegerea locurilor, utilizatorul va fi redirecționat
către pagina de confirmare.
Vom verifica dacă l ocurile selectate sunt încă disponibile:
$rowTaken = "";
for ($i = 0; $i < sizeof($_POST['seat']); $i++)
{
list($row, $col) = explode('|', $_POST['seat'][$i]);
$query = "SELECT * FROM tickets WHERE broadcast_id = '$broadcastID'
AND row = '$row' AND col = '$col';";
$rec = mysqli_query($db_conn, $query);
$info = mysqli_fetch_row($rec);
if ($info)
{
$rowTaken = chr(65 + $row – 1) . $col;
}
mysqli_free_result($rec);
}
Vom afișa un mesaj utilizatorului pentru informarea acestuia:
<mai n class="page">
<section class="movie" style="display: block; text -align: center;">
<p>Locul <?php print $rowTaken ?> este deja rezervat. Vă rugăm să
vă alegeți alt loc.</p>
</section>
</main>
Dacă locurile sunt disponibile, vom adăuga o nouă înregistrare în tabelul broadcast:
<?php
$date = new DateTime();
$code = $userInfo['id'] + $filmInfo['id'] + $date ->getTimestamp();
$seats = "";
for ($i = 0; $i < sizeof($_POST['seat']); $i++)
{
list($row,$col) = explode('|', $_POST['s eat'][$i]);
$rowName = chr(65 + $row – 1);
$seats .= $rowName . $col;
if ($i < sizeof($_POST['seat']) – 1) $seats .= ", ";
?>
<?php
$query = "INSERT IGNORE INTO tickets(broadcast_id, row, col,
user_id, code, movie) VALUES ('" . $ broadcastInfo['id'] . "', '$row', '$col', '" . $userInfo['id'] .
"', '$code', '" . $filmInfo['name'] . "')";
mysqli_query($db_conn, $query);
}
?>
Codul va fi unic și va fi format din id -ul utilizatorului, id -ul filmului și timpul
efectuării comenzii .
3.3.6 Pagina pentru istoricul comenzilor
Pagina pentru istoricul comenzilor va afișa toate datele despre comenzile făcute de
către utilizator. La încărcarea paginii vom verifica dacă utilizatorul este autentificat. În caz
contrar, îl vom redirecționa că tre pagina principală.
session_start();
if (!isset($_SESSION['username']))
{
header("refresh:0;url=index.php");
}
Dacă utilizatorul este autentificat, vom prelua datele din tabelul „tickets”.
require('db.php');
$username = $_SESSION['username'];
$query = "SELECT id, username, email, admin FROM users WHERE username =
'$username'";
$record = mysqli_query($db_conn, $query);
$userInfo = mysqli_fetch_array($record);
mysqli_free_result($record);
$query = "SELECT code FROM tickets where user_id = '" . $userInfo['id'] ."' group
by code order by code desc";
$record = mysqli_query($db_conn, $query);
Datele vor fi organizate în funcție de codul comenzii. Dacă două comenzi dețin
același cod, vom combina locurile celor două înregistrări:
<?ph p
$total = 0;
while ($row = mysqli_fetch_array($record))
{
$total++;
$query2 = "SELECT * FROM tickets WHERE code = " . $row['code'];
$record2 = mysqli_query($db_conn, $query2);
$ticketInfo = mysqli_fetch_array($record2);
$rowTaken = chr(65 + $ticketInfo["row"] – 1) . $ticketInfo["col"] . ", ";
while ($buffer = mysqli_fetch_array($record2))
{
$rowTaken .= chr(65 + $buffer["row"] – 1) . $buffer["col"] . ", ";
}
$rowTaken[sizeof($rowTaken) – 3] = ' ';
mysqli_free_result($record2);
$query2 = "SELECT * FROM broadcast WHERE id = " .
$ticketInfo['broadcast_id'];
$record2 = mysqli_query($db_conn, $query2);
$broadcastRow = mysqli_fetch_array($record2);
mysqli_free_result($record2);
?>
Vom afișa id -ul camerei, numele filmului, categoria filmului, data și ora filmului,
codul comenzii și locul în camera respectivă.
La finalul codului HTML, vom închide instrucțiunea while și vom elibera memoria
stocată în variabila $record:
<?php
}
mysqli_free_result($record);
?>
3.3.7 Pagina administratorului
Pagina administratorului va manipula datele din tabelele movies, houses și broadcast.
Pentru administrarea filmelor, se va afișa un tabel cu filmele existente și comenzi
pentru manipularea acestora: activare, dezactivare, modificare sau ștergere. Dezactivarea unei
înregistrări va determina dezactivarea ei din pagina principală.
Administrarea filmelor
Se vor selecta filmele existente într -un tabel:
$query = "SELECT * FRO M movies";
$record = mysqli_query($db_conn, $query);
<form method="post" action="adm_movies.php" onsubmit="return movies();">
<section class="admin">
<table width="100%">
<thead>
<tr>
<th>Select</th>
<th>ID</th>
<th>Nume</th>
<th>Descriere</th>
<th>Limbă</th>
<th>Categorie</th>
<th>Durata</th>
<th>Director</th>
<th>Imagine</th>
<th>Dezactivat</th>
</tr>
</thead>
<tbody>
<?php
while ($row = mysqli_fetch_array($record)) {
?>
<tr>
<td><input class="checkbox -movie" type="checkbox"
name="movies[]" value="<?php print $row['id'] ?>" /></td>
<td><?php print $row['id'] ?></td>
<td><?php print $row['name'] ?></td>
<td><?php print $row['description'] ?></ td>
<td><?php print $row['language'] ?></td>
<td><?php print $row['category'] ?></td>
<td><?php print $row['duration'] ?></td>
<td><?php print $row['director'] ?></td>
<td><?php print $row['image'] ?></td>
<td><?php if ($row['disabled']) { print 'Da'; } else { print 'Nu';
} ?></td>
</tr>
<?php
}
mysqli_free_result($record);
?>
</tbody>
</table>
Dacă utilizatorul dorește să administreze o înregistrare, logica formularului se va
regăsi în pagina adm_mo vies.php.
Se va verifica opțiunea utilizatorului:
if ($option == "disable")
{
for ($i = 0; $i < sizeof($_POST['movies']); $i++)
{
$id = $_POST['movies'][$i];
$query = "UPDATE movies SET disabled = 1 WHERE id = '$id';";
mysqli_query($db_conn , $query);
}
header("refresh:0;url=admin.php");
mysqli_close($db_conn);
}
elseif ($option == "enable")
{
for ($i = 0; $i < sizeof($_POST['movies']); $i++)
{
$id = $_POST['movies'][$i];
$query = "UPDATE movies SET disabled = 0 WHERE id = '$id';";
mysqli_query($db_conn, $query);
}
header("refresh:0;url=admin.php");
mysqli_close($db_conn);
}
elseif ($option == "delete")
{
for ($i = 0; $i < sizeof($_POST['movies']); $i++)
{
$id = $_POST['movies'][$i];
$query = "DEL ETE FROM movies WHERE id = '$id';";
mysqli_query($db_conn, $query);
}
header("refresh:0;url=admin.php");
mysqli_close($db_conn);
}
Dacă utilizatorul dorește să șteargă înregistrările selectate, se va executa o interogare
DELETE. Dacă utilizat orul activează sau dezactivează înregistrările, se va executa o
interogare de tipul UPDATE.
Dacă utilizatorul dorește să modifice o înregistrare, se va afișa un formular și se vor
completa automat cu datele înregistrării selectate:
$id = $_POST['movies'] [0];
$query = "SELECT * FROM movies WHERE id = '$id';";
$record = mysqli_query($db_conn, $query);
$movieInfo = mysqli_fetch_array($record);
mysqli_free_result($record);
mysqli_close($db_conn);
<form method="post" action="adm_movies_confirm.php">
<label for="name">Nume film:</label>
<input type="text" name="name" value="<?php print $movieInfo['name']; ?>"
required>
<label for="description">Descriere:</label>
<input type="text" name="description" value="<?php print
$movieInfo[' description']; ?>" required>
<label for="username">Limbă:</label>
<input type="text" name="language" value="<?php print
$movieInfo['language']; ?>" required>
<label for="category">Categorie:</label>
<input type="text" name="category " value="<?php print
$movieInfo['category']; ?>" required>
<label for="duration">Durata:</label>
<input type="text" name="duration" value="<?php print
$movieInfo['duration']; ?>" required>
<label for="director">Directori:</label>
<input type="text" name="director" value="<?php print
$movieInfo['director']; ?>" required>
<label for="image">Imagine:</label>
<input type="text" name="image" value="<?php print $movieInfo['image'];
?>" required>
<button type="submi t" name="submit" id="submit">Trimite</button>
<input type="hidden" name="id" value="<?php echo $movieInfo['id'] ?>">
</form>
Manipularea datelor de rezervare și camerelor disponibile în cinema se vor efectua în
mod similar.
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: PROGRAMUL DE STUDII licență [609275] (ID: 609275)
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.
