Implementarea Unui Magazin Online Folosind Php Si Mysql
Cuprins
Capitolul 1. Introducere
1.1. Tehnologia in ziua de azi…………………………………………………………………..2
1.2. Site-uri si aplicații web………………………………………………………………………….3
1.3. Introducere a conținutului lucrării……………………………………………..7
Capitolul 2. Prezentarea tehnologiilor utilizate
2.1. Internet…………………………………………………………………………………………………9
2.2. World Wide Web…………………………………………………………………………………..11
2.3. HTML…………………………………………………………………………………………………..12
2.4. JavaScript……………………………………………………………………………………………..18
2.5. CSS……………………………………………………………………………………………………….22
2.6. XAMPP…………………………………………………………………………………………………25
2.7. PHP……………………………………………………………………………………………………….26
2.8.MySql……………………………………………………………………………………………………..31
2.9. Apache……………………………………………………………………………………………………40
Capitolul 3. Proiectarea și Implementarea aplicației
3.1. Baza de date utilizată………………………………………………………………………………42
3.2. Prezentarea aplicației………………………………………………………………………………44
Capitolul 4. Concluzii……………………………………………………………………………………………….50
Bibliografie………………………………………………………………………………………………………………51
Anexe……………………………………………………………………………………………………………………….56
Capitolul 1. Introducere
1.1. Tehnologia in zilele noastre
În secolul vitezei, unde totul avansează într-un ritm alert, schimbările din
jurul nostru sunt mai mult decât justificate. În istoria tehnologiei, dezvoltarea mașinii de calcul este unică si revolutionara. Nici o altă realizare tehnică nu a înregistrat progrese asa de rapide după inventare. De la Blasie Pascal, Gotfried Wilhelm Leibnitz ,John Napier, până la Bill Gates, Steve Jobs o mulțime de creatori tehnici au contribuit la conceperea si dezvoltarea mașinilor de calcul, ajungand la nivele de evoluție de neconceput cu numai cativa ani in urmă[18]. Calculatoarele influențeaza viața noastra de zi cu zi din ce in ce mai intens, astfel le găsim peste tot: la birou, în școli, în spitale,acasă si în bănci, etc.
Comparația primului calculator (ENIAC) cu cele de ultima generatie confirmă si intareste afirmația făcută. Cu o generație in urmă nu puteam vorbi despre, mașini automate bancare, CD-uri, calculatoarele fiind niște mașini de dimensiunile dulapurilor și trebuiau să lucreze în spațiu climatizat.
Dezvoltarea tehnologiei informației si a comunicațiilor, cea mai dinamica ramură a revoluției științei , nu ar fi fost posibilă fără descoperirile din domeniile fizicii semiconductorilor si microelectronicii. În aceste condții apare firesc că aceia care au pus bazele școlilor românești de electronică și de inginerie a dispozitivelor la semiconductoare sa fie si inițiatorii si promotorii revolutiei informatice în țara noastră .Ne referim aici profesorii Tudor Tănăsescu si Mihail Drăgănescu si multi altii. În 1953, a inceput epopeea calculatoarelor electronice romanești, prin lansarea de catre dr. Vasile Toma a proiectului primului calculator românesc cu tuburi. Acest proiect care a fost apoi sa numit CIFA -1 s sa lansat la Institutul de Fizică Atomica la București. Proiectul logic al calculatorului CIFA 1 a fost prezentat la Simpozionul International de la Dresden in 1955 și echipat cu 1500 de tuburi electronice, a fost pus in funcțiune in anul 1957.
Daele Eurostat indica faptul ca populatia Romaniei a avut contact in procentul cel mai mic cu computerul, din Europa.
Astfel, 61 % dintre românii care locuiesc in regiunile de dezvoltare , spre exemplu cei din Centru si Sud – Muntenia nu au folosit niciodată un calculator[23]. Cifra este similară cu cea întâlnită in regiunile Sud-Vest si Sud- Est (60%), procentajul cel mai mica fiind in regiunile Nord Vest(54%) si Vest (48%) .
1.3. Site-uri și aplicații web
Noțiunea si termenul de site web provine din expresia engleza web site și indica o grupă de pagini web multimedia (conținând texte, animații ș.a.m.d.), disponibile pe Internet tuturor, de obicei pe o temă anume, care sunt conectate între ele prin așa-numitele hyperlink-uri.
La începutul Internetului aceste web site-uri se accesau prin introducerea adresei sale numerice specifice ( adica adresa IP), de ex. 156.285.476.355. Ulterior pentru web site-uri s-au introdus și numele de domenii, care permit introducerea adresei respective mult mai usor, prin cuvinte,termeni sau nume ușor de reținut, spre exemplu 'www.google.com'. Adresele de site-uri web trebuie să fie clar stabilite, unice în lume și garantate pentru posesorul fiecareia.
Subiectul unui web site poate fi: un blog, un portal web, bancă, o universitate virtuală, o bibliotecă, o enciclopedie virtuală, un catalog web, un magazin virtual ,o revistă web, un ziar web și aproape orice altceva.[1]
Un web site este alcătuit de regulă din mai multe pagini web. O pagină web este un document creat cu ajutorul limbajului de marcare HTML și (opțional) limbaje de programare cum ar fi PhP, ASP etc fiind accesibil vizitatorilor prin intermediul protocolul HTTP, care transferă informația de la server la browser.
Modul de acces la resurse se datorează protocolului de comunicație implementat numit HyperText Transport Protocol, prescurtat HTTP. O sesiune de transfer se desfășoară prin pasii urmatori :
Se realizează prin o conexiune client-server:
Prima oara clientul lansează o cerere ( un request)
Apoi serverul furnizează clientului răspunsul la cererea formulată supa care serverul încheie conexiunea.
Prima etapă si anume cea de conectare, este vizibila prin apariția în bara de start a browser-ului , si aparitia mesajului "Connecting to HTTP server".
Dacă conexiunea nu poate fi realizata, apare mesajul de eroare "Can't connect to server", însoțit de motivul acestei erori.
Odată ce conexiunea la un server HTTP a fost stabilită, clientul lansează cererea. Aceasta specifica tipul de protocol folosit, resursele solicitate (fișierul sau grupul de fișiere) și în ce fel trebuie sa răspundă server-ul (metoda)[7].
Protocolul împreună cu resursa alcătuiesc un Uniform Resource Locator adica un URL. Tipul protocolului este cea mai importanta parte a unui URL. Fără acesta browser-ul nu ar ști cum să foloseasca resursa respectivă.
Proiectarea web ca disciplină știintifică este influențată de dezvoltarea dar si evolutia aplicațiilor web. Orientarea în domeniul dezvoltării aplicațiilor web este foarte des caracterizată printr-o abordare spontana si o lipsa a metodelor de dezvoltare. Datorită complexității si polivalenței dar și a ritmului reproducerii aplicațiilor web, această abordare poate avea un impact negativ asupra calității. Aplicațiile web reprezintă o nou ramura de aplicații cu propriile sale provocări asupra dezvoltării si amplificarii software-ului.
Este necesară alcătuirea unui nou ciclu de viața a aplicațiilor web, prezentarea conceptelor, tehnicilor, metodelor si utilitarelor pentru evolutia si cresterea sistematică a aplicațiilor web.
Web-ul cat si aplicațiile web și comunitatea web în ansamblu s-au dezvoltat de la apariția Internet-ului la Web 2.0 și la viziunea web-ului semantic, din acest motiv fiind elementară renunțarea la tratarea de tip ad-hoc și optrarea principiilor proiectării web.[2]
La nivel de baza , web-ul este un spațiu creat prin mijloacele unor protocoale si limbaje determinate formal. Chiar daca noi suntem implicați în realizarea paginilor si utilizarea conexiunilor dintre acestea, interacțiunea acestora formează un model web la scara macroscopicăi. Evolutia aplicatiilor web este consecinta unei proceduri complexe si este important ca proiectarea care sustine aceasta dezvoltare sa fie bine facuta. Acest lucru va da voie atat studenților cat si specialistilor din domneiu, să proiecteze aplicații web de calitate pe baza normelor de proiectare software experimentate .
Aplicațiile web din ziua de azi sunt sisteme software complexe, si dezvoltarea acestora necesită o tratare metodologică a proiectării lor. Proiectarea web presupune utilizarea unei abordari sistematice si cuantificabile , asemanator cu proiectarea aplicațiilor software , pentru realizarea Daca urmarim dezvoltarea si complexitatea distingem diferite feluri de aplicații web; aplicațiile web pot fi indreptate spre documente , spre aplicatii interactive, tranzacționale.Cerințele specifice ale proiectării aplicațiilor web reiese din caracteristicile lor specifice categoria produselor software, utilizării si dezvoltării acestora. Evoluția este o caracteristică care cuprinde cele trei categorii mentionate.(1)
Aplicațiile web actuale constituie sisteme software complexe care oferă servicii accesibile prin intermediul diferitelor dispozitive interactive si personalizate ,si sunt foarte rapide. Ele pot oferii șansa efectuarii tranzacțiilor între useri si deobicei depoziteaza datele într-o baza de date. Factorul tipic al aplicațiilor web, in comparatie cu aplicațiile software, este modul în care v-a fi utilizat web-ul.
Standardele si tehnologiile sale sunt folosite ca o platforma de dezvoltare si în acelasi timp ca platforma pentru utilizator.
Din perspectiva proiectării soft-ului, dezvoltarea aplicațiilor este un nou domeniu al acestora.
Contrar anumitor asemanari cu aplicatiile de pana acuma, trasaturile speciale ale aplicațiilor web au nevoie de o adaptare a multiplelor abordări ale proiectării softu-lui ba chiar a dezvoltării de abordări complete ,fata de cele de pana acuma.
Elementele fundamentale ale unei proiectării web sunt ca descriere similare cu cele ale proiectării software:
– obiectivele cat si cerințele trebuie sa fie clar definite;
– evolutia sistematică, treptata, a aplicațiilor web;
– cat si o planificare atenta a acestor etape;
auditul pe intreaga perioada a procesului de dezvoltare.
Categorii de aplicatii web:
Figura 1.2: Categorii de aplicatii web
Aplicațiile web se deosebesc de aplicațiile tradiționale (non-web), insusirile acestora fiind prezentate ulterior. Ele sunt intrun fel trasaturile de care aplicațiile tradiționale nu are nevoie (navigarea non-liniară) dar și trasaturile care prezintă o importanță trasatura a procesului (frecvența actualizărilor)
Si daca o trasatura este prezentă și aceasta depinde de tipul de aplicație web, dezvoltarea aplicațiilor web tranzacționale ,aceste necesita o atentie sporita fata de actualizării si consistenței conținutului fata de sistemele informaționale pure (prezentările virtuale).
Aceste trasaturi sunt motivul pentru care cele mai multe concepte, metode, si tehnici ale proiectării softului tradiționale trebuiesc adaptate la cerințele proiectarii web, chiar daca în unele cazuri acestea pot fi nepotrivite.
Figura 1.3 ne oferă o imagine a acestor caracteristici și trasaturi și le împarte în trei categorii: "produs", "utilizare" si "dezvoltare", împreună cu "evoluția" vazută ca o dimensiune atotcuprinzatoare.
Figura 1.3
1.3. Scurtă introducere a conținutului lucrării.
Tema lucrării este aceea de a implementa un magazin on-line folosind PHP și MySQL. Am dorit sa creez un magazin online destinat vânzărilor de tractoare, fiind un utilaj de nelipsit din ferme, agricultura fiind și un domeniu care s-a dezvolatat foarte mult in Romania in ultimii ani. Vizitatorii site-ului pot vizualiza și cumpăra produse expuse pe site.
Magazinul on-line este din ce in ce mai folosit, fiind un mijloc ieftin și eficient pentru dezvoltarea unei afaceri. Numărul tot mai mare de internauți, gradele de securitate din ce in ce mai sporite, accesarea de oriunde prin tehnologii moderne de wireless, sunt doar câteva dintre motivele pentru care magazinul virtual on-line este aproape de nelipsit în strategia de marketing a oricărui producător sau intermediar, care vinde diverse produse sau servicii. Deasemena și utilizatori sunt avantajați, ei au acces instant la întreg catalogul de produse, și pot comanda un produs la cel mai bun preț și calitate din confortul casei lor.
În această secțiune am făcut un rezumat despre fiecare capitol în parte și am extras ideile principale, pentru ca vizitatorul să-și poată face o viziune generală asupra magazinului. Am o secțiune ce se ocupă cu afișarea tractoarelor disponibile, fiecare vizitator poate vizualiza produsul unde sunt prezentate caracteristiciile din mai multe puncte de vedere și prețul modelului. Dacă vizitatorul dorește să vadă ofertele speciale poate vizita secțiunea de oferte. Există deasemenea secțiunea de ajutor, ca utilizatorul sa poată invăța cum se cumpără de pe acest site. Dacă un vizitator dorește să contacteze proprietarul site-ului, o poate face la secțiunea special dedicată pentru acest scop. Desigur cea mai importantă secțiune este aceea în care vizitatorul comandă produsul ales.
Acestea ar fi cele mai importante părți ale site-ului, care oferă pentru fiecare vizitator o viziune detaliată asupra IT&C-ului.
Am utilizat PHP, MySQL, JavaScript, CSS, HTML. Partea de programare a site-ului a fost asigurată și implementată cu PHP un limbaj de programare orientat pe obiecte. Pe parcurs am modificat anumite părți din site și am utilizat cât mai multe funcții și clase pentru ca la momentul finalizării paginii web aceasta să fie cât mai rapidă. Pentru stocarea informațiilor am utilizat baza de date MySQL, deoarece este cea mai răspândită și oferă o înaltă securitate. Prin CSS și HTML am realizat partea de interfață a site-ului ca să se vadă la fel în cele mai răspândite browsere cum ar fi Firefox, Opera, Chrome, Safari, Internet Explorer.
Dinamismul a fost realizat de JavaScript, și aici am utilizat o librărie nou dezvoltată Jquery, care oferă o mulțime de plugin-uri.
Capitolul 2. Prezentarea tehnologiilor utilizate in lucrare.
2.1. Internet
Cresterea numărului de utilizatori de PC duce implicit si la cresterea numărului utilizatorilor de internet. Potrivit InternetWorldStats, in 30 iunie 2012 erau 9,642,383 de utilizatori de internet în Romania.
Conform Biroului Roman de Audit Transmedia (BRAT), in 06.03 2015 existau in Romania 10,3 milioane utilizatori de internet .
In mediul rural avem 3,7 milioane de utilizatori de internet, restul, reprezentand 6,6 milioane de utilizatori de intenet din Romania, il gasim la oras.
Potrivit studiului, la nivel național, 68% din populația cu vârsta cuprinsă între 14 și 64 de ani utilizează internetul, adică 10,3 milioane de oameni, dintre care 36% din mediul rural și 64% din mediul urban.
2. Echipamentele folosite
În funcție de modul de conectivitate pe care îl aleg, 91% din utilizatorii de internet din mediul rural folosesc calculatorul, 18% – tableta și 59% – telefonul mobil/ smartphone. În zona urbană, 95% dintre internauți folosesc calculatorul, 15% – tableta și 45% – telefonul mobil/ smartphone.
Figura 2.1. Primele 10 tări din Europa ca număr de utilizatori de Internet
Numarul cetatenilor români care folosesc Internetul a cunoscut o dezvoltare in 2012, fată de 2010. Rezultatele studiului realizat de GFK Romania arata ca incidenta in randul persoanelor cu varsta de peste 15 ani a fost de 48,7% in 2012, in crestere cu 8,4% fata de anul 2010.
Si mediul rural înregistrează o dinamica deosebita, cu o crestere mai mare in 2012 fată de 2010 – cu aproximativ 11% mai multi cetateni au apelat la acest canal de comunicare anul trecut, atingând 33% din populatia rurală.
Este interesant de semnalat faptul că cel mai mult utilizarea Internetului a crescut în rândul persoanelor mature, 35-44 ani (mai mult cu 15% comparativ cu 2010)[24].
Initierea procesului de dezvoltare a Internetului a fost activat de rivalitatea între cele două mari puteri ale secolului al XX-lea: Statele Unite ale Americii si Uniunea Sovietică.
În momentul in care, in 1957, URSS lansează în cosmos primul satelit artificial al Pământului denumit Sputnik s-a declansat o campanie în Statele Unite ale Americii, astfel incat presedintele Eisenhower înfiintează o agentie specială subordonată Pentagonului: Advanced Research Projects Agency (www.darpa.mil). Această agentie a Ministerului de Apărare (Department of Defense,) este condusă de oameni de stiintă, organizati in colective multidisciplinare
Termenul „Internet” este de origine americana. Acest termen este derivat din cuvântul "International", si cuvântul "Network". Traducerea in romana înseamnă "rețea de Internet".
Prima utilizare înregistrată a cuvântului Internet dateaza din octombrie 1972, cand Robert Kahn în timpul primei conferințe internaționale de informatică și comunicare.
Robert Kahn a fost un inginer co-inventator american a TCP / IC care a servit mai întâi într-un scop militar:
În ciuda utilizarii acestui cuvant în 1972, internetul a devenit un cuvânt oficial la 1 ianuarie 1983.
În Anglia, scrierea cu majuscule a cuvântului „Internet” atesta faptul că este cea mai mare rețea și cea mai utilizata din lume. Prin urmare, este desemnat ca un obiect, in timp ce atunci când Internet este scris cu un litere mici, el defineste rețeaua de calculatoare cu ajutorul routerelor.
La origine Internetul a fost proiectat ca o rețea militară americană (numit ARPANET).
Scopul a fost de a proiecta o rețea rezistent la atacuri: dacă un punct al rețelei este distrus, informațiile trebuie să fie în măsură să continue să circule.
Internet a fost proiectat de la început ca o pânză de păianjen.
Dacă un punct al rețelei este distrus, celelalte puncte de rețea pot continua sa comunice unul cu altul, deoarece informațiile iau automat o altă cale.
Acest sistem este activ si astăzi: Când trimiteți sau primiți informații prin Internet, pachetele de date trec prin zeci de computere diferite si poate dura chiar căi diferite.
(Un program ca traceroute vă permite să vedeți calculatoarele prin care trec pachetele.)
Aceasta configurare "păianjen" a dat naștere cuvântului "web" (care inseamna literal "panza de paianjen") și "World Wide Web" ("web păianjen global", un termen care în general utilizat pentru a descrie pagini HTML legate între ele).
"Network" este cuvântul engleză pentru "rețea".
Prin interconectarea tuturor rețelelelor din lume (universități, guverne, întreprinderi, furnizori de servicii militare …), se va obține o rețea gigant, care acopera o mare parte din planeta.
"Internet" = "Inter-rețele"
Internet este interconectarea tuturor rețelelor de pe planetă.
Primele legaturi internet au fost facute prin interconectarea calculatoarelor de la Universitatatile din California – Los Angeles, Stanford Research Institute, Universitatea din California – Santa Barbara și Universitatea din Utah.
Scopul ARPANET a fost desfășurarea de activități de cercetare în rețelele de calculatoare, avand ca scop sa ofere un sistem de comunicații sigur în cazul unor situatii de atac armat . Pe măsură ce rețeaua s-a extins , oamenii de stiinta din multe alte domenii au început să o folosească.
Denumirile Internet si internet au ca origine împreunarea artificială si partială a două cuvinte din vocabularul de specialitate american: interconnected = interconectat si network = retea. Substantivul propriu „Internet” (scris cu majusculă) desemnează o retea mondială unitară de calculatoare si alte aparate cu adrese computerizate, interconectate conform protocoalelor (regulilor) de comunicare „Transmission Control Protocol” si „Internet Protocol”, numite împreună „stiva TCP/IP”. Substantivul comun „internet” (scris cu minusculă) desemnează retele speciale ce interconectează două sau mai multe retele autonome aflate la mare depărtare unele fată de altele.
În 1986, Fundatia Natională de Stiintă ( National Science Foundation ) a pus bazele NSFNET – National Science Foundation Network, o rețea distribuită de rețele capabile să suporte un trafic mult mai mare, iar anul următor mai mult de 10.000 de gazde au fost conectate la Internet. În 1988 a devenit posibilă comunicarea în timp real cu ajutorul protocoalelor IRC ( Internet Relay Chat ).
În anul 1990, ARPANET a încetat să mai existe, lăsând în urmă NSFNET, și tot in 1990 primul mod de acces ( dial-up ) comercial la Internet a devenit disponibil. În 1991, World Wide Web a fost lansat către public.
Principiul pe Internet este că, odată ce sunteți conectat , ești la egalitate cu celălalt: Fiecare computer conectat are o adresă unică (numită adresa IP) și pot trimite și primi informații cu orice alt computer.
Rețeaua de internet nu face discriminări.
Distanțele nu contează:
Internet nu se limitează la pagini web!
Cererea mai cunoscut a internetului este HTTP: Acestea sunt paginile web pe care le vedeți în browser-ul dumneavoastră.
Protocolul HTTP utilizează Internetul pentru a transporta pagini HTML, imagini (jpeg, gif …), muzica (MP3 …) video …
Există o mulțime de alte protocoale care pot fi utilizate pentru a face multe alte lucruri:
Protocolul DNS permite să găsiți o adresă IP bazată pe un nume de computer (la fel ca o carte).
Protocolul FTP este utilizat pentru a transporta fișiere de la un computer la altul.
Protocolul IRC este folosit pentru a crea "camere" cu discuții in direct.
Protocolul ICQ vă permite să știti dacă cineva este online.
Protocolul NTP permite computerelor legate la internet sincronizarea cu o marja de 500 milisecunde.
Protocoale P2P permite partajarea de fișiere de mari dimensiuni.
Protocolul NNTP permite accesul la forumuri de discuții pe mii de subiecte diferite.
SSH permite accesul securizat la computerele de la distanță.
Protocolul SMTP permite trimiterea de email-uri, și POP3 pentru a le primi.
Alte protocoale permit telefon sau videoconferinta, etc.
Toate aceste protocoale folosesc IP, Internet Protocol (IP = "Internet Protocol").
Se spune că sunt transportate prin IP (protocolul IP, este responsabil pentru transportul pachetelor de date la destinație).
Și ca o consecinta Internetul este egalitarist, el accepta sa transporte orice protocol, atâta timp cât utilizați protocolul IP.
Acest lucru înseamnă că puteți dezvolta propriul protocol. Internet este de acord pentru a transporta datele cu ușurință.
Se put inventa și protocoale utilizate pentru a comunica (atâta timp cât cealaltă parte include acelasi protocol).
Acest lucru este mult mai simplu decât pare: se poate face un program prin interactiunea cu un alt program de internet în câteva linii de cod.
Viitorul internet
Niciodata inventatorii internetului nu ar fi putut imagina toate aplicațiile care există astăzi .
Unele proiecte conecteaza toate dispozitivele între ele prin internet: Echipament hi-fi, frigider, contor electric, incalzire centrala, camera …
Aceasta este protocolul IP (Internet Protocol), care este folosit pe Internet care permite masinilor sa comunice între ele. Acesta este în prezent în versiunea 4 (protocolul IPv4).
Dar, cu toate noile aplicații pe care vrem să se creeze, exista niste limite:
dificultăți în a atribui adrese IP,
dificultăți în asigurarea viteze de transmisie (esențială pentru video, de exemplu)
dificultati de securizare
flux insuficient.
Acesta este motivul pentru care o noua versiune a IP este luată în considerare: IPv6.
În prezent, o rețea de testare IPv6 este instalata în Statele Unite și câteva companii mari au acces pentru testarea si dezvoltarea de aplicatii. Rețeaua se numește Internet2.
Dar IPv6 nu este compatibil cu IPv4.
Într-o zi va trebui, prin urmare,sa se faca trecerea la IPv6 pentru a profita de aceste evoluții.
Se prezumeaza că furnizorii de internet vor oferi o trecere treptată a abonaților lor, și toată lumea va trece treptat la noul protocol.
Sistemele actuale de operare (Windows, Linux, MacOS X …) sunt în mare parte deja capabile să înțeleagă IPv6. Vor trebui să actualizate softwarele (browsere, software de e-mail …) și instala versiuni noi pentru a se bucura de sprijinul IPv6.
2.2. World Wide Web
Principala atracție a Internetului o reprezintă World Wide Web-ul.
Tim Berners-Lee, un om de stiinta britanic de la CERN, a inventat World Wide Web (WWW) în 1989. El a fost inițial conceput și dezvoltat pentru a satisface cererea pentru schimbul automat de informații între oamenii de știință din universități și institute din intreaga lume.
Primul site de la CERN – și din lume – a fost dedicat proiectului World Wide Web in sine și a fost găzduit pe calculator NeXT Berners-Lee. Site-ul a descris caracteristicile de bază ale web; cum să acceseze documentele altor persoane și cum se configureze propriul server. Computerul NeXT – serverul web original – este încă la CERN. Ca parte a proiectului pentru a restabili primul site, în 2013 CERN a restabilit primul site din lume la adresa sa inițială.
Pe 30 aprilie 1993 CERN a pus software-ul World Wide Web în domeniul public. CERN a făcut următoarea versiune disponibilă cu o licență deschisă, ca un mod mai sigur de a maximiza difuzarea acestuia. Prin aceste acțiuni, ceea ce face software-ul necesar pentru a rula un server de web disponibil gratuit, împreună cu un browser de bază și o bibliotecă de cod, pe web a fost lăsat să se dezvolte.
Propunerea originala a lui Sir Tim Berners-Lee (CERN)
Până în octombrie 1990, Tim a scris cele trei tehnologii fundamentale care rămân pana azi fundamentul Web :
HTML: HyperText Markup Language. Marcare (formatare) limba pentru Web.
URI: Uniform Resource Identifier. Un fel de "adresa", care este unica și utilizata pentru a identifica fiecare resursă pe web. Acesta este, de asemenea, numit de obicei URL.
HTTP: Hypertext Transfer Protocol. Permite recuperarea resurselor legate de pe Web.
Tim a scris, de asemenea, prima pagină Web editor / browser ("WorldWideWeb.app"), precum și primul server Web ("httpd"). Până la sfârșitul anului 1990, prima pagina web a fost dedicata pe internet deschis, iar în 1991, oamenii din afara CERN au fost invitați să se alăture acestei noi comunități web.
Pe masura ce comunitatea Web a început să crească, Tim si-a dat seama că adevăratul potențialul al sau ar fi declanșat doar în cazul în oricine, de oriunde ar putea sa-l foloseasca fără a plăti o taxă sau sa ceara permisiunea.
El a explicat: "Dacă tehnologia ar fi ramas proprietate, în controlul meu total, probabil, ca nu s-ar fi ridicat. Nu se poate propune ca ceva să fie un spațiu universal și, în același timp, să păstreze controlul. "
Astfel, Tim si altii au militat pentru a se asigura că CERN ar fi de acord să facă acest cod de bază disponibil pe baza de redevențe, pentru totdeauna. Această decizie a fost anunțată în aprilie 1993 și a stârnit un val global de creativitate, colaborare și inovare văzut niciodată înainte. În 2014, anul în care s-a sărbătorit ziua de naștere a Web-ului, aproape doi din cinci persoane din intreaga lume l-au folosit.
Tim sa mutat de la CERN la Institutul de Tehnologie din Massachusetts in 1994 pentru a fonda World Wide Web Consortium (W3C), o comunitate internațională dedicată elaborararii de standarde web deschise. El rămâne directorul W3C si in acest moment.
Comunitatea Web a produs unele idei revoluționare, care ocupa acum o arie de raspandire mult dincolo de sectorul tehnologic:
Descentralizarea: Nu este nevoie de permisiune de la o autoritate centrală pentru a posta ceva pe web, nu există nici un nod central de control, și deci nu un singur punct de eșec … și nici " kill switch "! Aceasta implică, de asemenea, libertate de cenzură și supraveghere fără discernământ.
Non-discriminare: Dacă plătesti pentru a te conecta la internet cu o anumită calitate a serviciilor, și altul plăteste pentru o conecxiune cu o calitate mai mare a serviciilor, atunci cei doi vor comunica la același nivel. Acest principiu de echitate este, de asemenea, cunoscut sub numele principiul neutralității.
Bottom-up design: In locul unui cod scris și controlat de un mic grup de experți, a fost dezvoltat un sistem transparent, încurajând participarea maximă și experimentarea.
Universalitate: Pentru oricine ar putea publica ceva pe web, toate computerele implicate trebuie să vorbeasca aceeeași limba , indiferent de ce hardware folosesc diferitele persoane, unde locuiesc, ce cultura și convingeri politice au.
.
Consens: Pentru standarde universale, toată lumea a trebuit să fie de acord să le folosească. Tim si altii au atins acest consens prin acordarea tuturor la dreptul de a avea un cuvânt de spus în crearea standardelor, printr-un proces transparent, participativ la W3C.
Noi permutări ale acestor idei dau naștere la noi abordari interesante în diverse domenii, precum informații (date Open), politica (deschisă Guvernului), cercetarea științifică (Open Access), educație și cultură (Free Culture). Dar până în prezent, abia am atins modul in care aceste principii ar putea schimba societatea și politica în bine.
2.3. HTML
Marcaje
HTML este un limbaj de calculator folosit pe Internet. Acest limbaj este folosit pentru a crea pagini web. Acronimul vine de la HyperText Markup Language.
Aceasta denumire este justificata de faptul ca acest limbaj permite realizarea unui hypertext bazat pe o structură de balizaj.
HTML nu este, strict vorbind, un limbaj de programare, ci un limbaj care vă permite să formatați conținutul. Etichetele sunt folosite pentru a formata textul și plasarea elementelor interactive cum ar fi legături, imagini, sau chiar animatii.
Aceste elemente nu sunt în codul sursă al unei pagini HTML codificate, dar pagina HTML repetă numai aceste elemente.
Pentru a vizualiza o pagină HTML, este necesar să utilizați un browser web.
O mare parte a altor limbaje de calculator sunt asociate cu o pagină codificat în HTML. De exemplu, CSS, care vă permite să formatați conținutul unei pagini codificate în HTML. Există, de asemenea, alte limbaje de calculator, care depind în întregime de HTML, cum ar fi JavaScript.
Următoarele standarde sunt definite mai jos:
Cascading Style Sheets (CSS)
Termenul este un acronim pentru Cascading Style Sheets
CSS este un limbaj de calculator folosit pe Internet pentru a creea fișiere HTML sau XML.
Astfel, fișiere CSS, contin codul pentru pentru gestionarea si proiectarea unei pagini HTML.
Deși fisierele HTML pot fi modelate cu ajutorul tag-uri prevăzute în acest scop, în zilele noastre este mult mai recomandabil să se folosească CSS iar XHTML să se folosească doar pentru conținut.
Avantajul de a folosi un fișier CSS pentru aspectul unui site este abilitatea de a edita toate titlurile site-ului o dată în modificarea o parte a fișierului CSS. Fără acest fișier CSS, ar fi necesar să se modifice fiecare titlu a fiecărei pagini a site-ului (aproape imposibil pentru site-uri mari de mai multe mii de pagini).
Alte puncte forte sunt vizibile. Este, de exemplu, posibil să se creeze o foaie de stil speciala pentru imprimarea documentelor, care va elimina toate efectele de stil și toate părțile inutile atunci când se trece la imprimare. În mod similar, o foaie de stil poate fi folosita pentru utilizatorii de telefon mobil, care permite o mai bună gestionare in formatarea speciala pentru ecrane mai mici ale acestor dispozitive.
JavaScript
JavaScript este un limbaj de calculator folosit pe paginile web. Acest limbaj are particularitatea de a se activa ca si client, cu alte cuvinte, calculatorul va primi codul si il va rula. Acest lucru este în contrast cu alte limbaje care sunt activate de server. Executarea de cod este realizată de către browser-ul web-ul, cum ar fi Firefox sau Internet Explorer.
Unul dintre lucrurile esențiale este să se înțeleagă că JavaScript nu are nici o legătură cu Java, care este un alt limbaj de calculator.
Caracteristica speciala a JavaScript este de a crea script-uri mici pe o pagina HTML pentru a putea adauga o animație mică sau un efect special pe pagina. Acest lucru permite, în general, îmbunătățirea ergonomiei și interfața cu utilizatorul, dar unele script-uri sunt foarte utile și sunt utilizate în principal pentru a adăuga un efect estetic la pagina. Interesul codul JavaScript este executat fără să reîncărcați din nou pagina.
Tehnologia AJAX (Asynchronous JavaScript si XML) folosește foarte mult JavaScript pentru a interacționa dinamic pe pagina.
Hypertext Transfer Protocol Secure – HTTPS.
HTTPS este un protocol de comunicație destinat transferului de informație criptată prin intermediul WWW. A fost dezvoltat din necesitatea de a proteja de intruși transferul datelor prin HTTP – un protocol "clear-text", prin care datele de pe server-ul web sunt transmise browser-ului client în clar, posibilitățile de a intercepta acest transfer constituind tot atâtea posibilități de a accesa și utiliza fără restricții informațiile respective. HTTPS nu este altceva decât HTTP "încapsulat" cu ajutorul unui flux SSL/TLS – datele sunt criptate la server înainte de a fi trimise clientului, astfel încât simpla interceptare a acestora pe traseu să nu mai fie suficientă pentru a avea acces la informații. HTTPS este în același timp o metodă de autentificare a server-ului web care îl folosește, prin intermediul așa-numitelor "certificate digitale" – o colecție de date pe care un browser o solicită server-ului pentru a putea începe transferul criptat; dacă certificatul este emis de o autoritate cunoscută (de exemplu VeriSign), browser-ul poate fi sigur că server-ul cu care comunică este ceea ce pretinde a fi.
Secțiunea HEAD si BODY
Între < HEAD > și </ HEAD > se gaseste locul pentru o varietate de informații care nu sunt afișate pe ecran. În acest stadiu, care conține titlul documentului, dar mai târziu vom adăuga foaia de stil CSS.
Secțiunea HEAD este conținută în containerul <HEAD>marcaje specifice pentru HEAD</HEAD>
Marcajele din această secțiune au doar rolul să descrie documentul curent pentru programe (cum ar fi browser-e), pentru alte documente HTML sau pentru documentare. Dintre tag-urile care pot fi în această secțiune amintim <TITLE> și <META>.
<TITLE>textul titlului</TITLE>
are scopul să fixeze titlul documentului curent. Textul este bine să se limiteze la 64 de caractere (inclusiv spațiile) și să aibă înțeles în sine.
<META [ NAME=“nume”] [ CONTENT=“continut”]
[ HTTP-EQUIV=“nume-camp-antet-HTTP”]> text [</META>]
conține descrierea și cuvintele cheie atașate documentului curent, informații care vor fi interpretate de programele de căutare (nu există standarde asupra utilizării de către server-ele HTTP a informației din META).[8]
NAME este numele, descrierea sau identificarea documentului curent sau a textului care este în META.
CONTENT este conținutul tag-ului META, în general va conține cuvintele cheie atașate documentului curent.
HTTP-EQUIV arată că informația META va fi dată unui antet HTTP.
Secțiunea BODY este determinată de containerul
<BODY [ BACKGROUND=“adresa_imagine”]
[ BGCOLOR=“#rrggbb”|”culoare”]
[ TEXT=“#rrggbb”|”culoare”]
[ LINK=“#rrggbb”|”culoare”]
[ VLINK=“#rrggbb”|”culoare”]
[ ALINK=“#rrggbb”|”culoare”]
[ LEFTMARGIN=marg_st]
[ TOPMARGIN=marg_top]
[ BGPROPERTIES=“fixed”] >
conținut document
</BODY>
și conține, practic, tot ceea ce este vizibil pentru un vizitator al paginii create.
Cu excepția tag-urilor enumerate la secțiunea HEAD, toate celelalte tag-uri ale setului HTML sunt specifice secțiunii BODY.
LEFTMARGIN precizează, în pixeli, marginea stângă a documentului (distanța dintre fereastră și conținutul documentului).
TOPMARGIN precizează, în pixeli, marginea de sus a documentului (distanța dintre fereastră și conținutul documentului).
Legături în documente HTML
Legatura (link-ul) este o eticheta de mare importanta in HTML si da celui care o foloseste posibilitatea de a trece de la o pagina la alta prin simpla accesare a acestuia. De obicei link-ul este subliniat iar atunci cand suntem deasupra lui cursorul isi schimba forma.
Printr-o legătură într-un document HTML înțelegem marcajul locului de unde se poate efectua trecerea (cuplarea, conectarea) la un alt document sau la o nouă locație din documentul curent. Un loc marcat mai este denumit ancorare.[8]
Marcajele pot fi de două tipuri:
legături către alte locații: caracterizate prin textul legăturii (vizibil în documentul afișat pe ecran) și prin adresa la care se poate efectua un salt; textul legăturii va apărea pe ecran subliniat, într-o culoare diferită de cea a textului adiacent; adresa țintă a legăturii apare (dacă nu s-a indicat alt text) pe linia de stare a ferestrei browser-ului atunci când pointerul mouse-ului este pe textul legăturii;
definiri de nume care au doar rolul de a introduce ținte pentru legături; nu sunt diferențiate în documentul afișat pe ecran.
Marcajul utilizat pentru ambele tipuri de legături este <A> </A>, A provenind de la anchor.
Principalele forme ale tag-ului sunt:
a) legătura la un URL
<A HREF=“link-url”
[REL=“tip-rel”][REV=“tip-rev”][TITLE=“title-name”]
[TARGET=window|_blank|_parent|_self|_top]>
text_legatură </A>
unde:
link-url este adresa (absolută sau relativă) a documentului țintă;
tip-rel precizează tipul de relație care leagă documentul;
tip-rev precizează tipul de relație care leagă documentul referit de documentul prezent (relația inversă decât tip-rel);
title-name descrie legătura, descriere afișată de unele browsere când mouse-ul se mișcă peste ancoră;
TARGET este utilizat pentru a preciza unde va fi afișat documentul referit; valorile posibile fiind:
“nume fereastră” – indicând exact fereastra de afișare; dacă nu există este creată;
_blank – o fereastră nouă;
_parent – fereastra părinte (cea anterioară);
_self – în aceeași fereastră ca și documentul curent (valoarea implicită);
_top – în fereastra inițială.
text_legatură poate fi orice text (care poate să conțină imagini), formatat sau nu, dar care nu mai poate conține alte legături. Pentru proiectarea modului de afișare sunt disponibile trei atribute ale tag-ului BODY care definesc culoarea textului și chenarului pentru legăturile respectiv
LINK=“#rrggbb”|”culoare” – link-uri care nu au fost vizitate;
VLINK=“#rrggbb”|”culoare” – link-uri care au fost vizitate;
ALINK=“#rrggbb”|”culoare” – link-uri care tocmai au fost activate.
În cazul când se utilizează o imagine drept text-legătură, chenarul este chenar al imaginii; dacă text-legătură este doar text, atunci chenarul este doar inferior (subliniere).
b) legătura la o secțiune
Pentru a putea naviga în cadrul documentului activ este nevoie de două etape:
marcarea locului unde se poate efectua saltul, locația denumită (ținta);
marcarea locului de unde se poate efectua saltul (ancorarea).
Ambele etape se efectueaza prin tag-ul A și sunt explicate în continuare:
<A NAME=“denumire”>[text-denumire]</A>
unde:
denumire este numele sub care locația poate fi referită în legături hipertext;
text-denumire este textul care apare în pagina vizualizată.
<A HREF=“#denumire”>text_legătură</A>
unde:
denumire este numele unei locații denumite din același document; de remarcat că este necesar caracterul # în fața denumirii;
text_legătură este textul care va apărea în document sub aspectul uzual al unui punct de salt posibil.
c) legătura hipertext la o locație denumită din alt document
Marcarea ancorării se face tot printr-un tag A în care referința are un conținut mai complex:
<A HREF=“link-url#denumire”>text_legătură</A>
unde:
link-url este adresa documentului către care se poate efectua saltul (relativă sau absolută);
denumire este numele unei locații denumite din documentul referit; de remarcat că este necesar caracterul # în fața denumirii;
text_legătură este textul care va apărea în document sub aspectul uzual al unui punct de salt posibil.
Multimedia. Elemente de grafică
În această secțiune se discută probleme care țin efectiv de multimedia, cum ar fi legături către înregistrări audio/video, grafică fixă/animată etc., dar nu numai. Sunt prezente și probleme care țin de estetica prezentării, considerându-se că introducerea unor elemente grafice de atracție se încadrează mai mult în această secțiune și nu în cea dedicată formatării textului.
Elemente de grafică
a) Culori, fundaluri.
S-a văzut, la formatarea textului (tag-ul FONT), că un text poate fi scos în evidență, față de textul înconjurător, și prin utilizarea unei alte culori. Apare atunci întrebarea dacă nu se poate fixa o culoare dorită pentru tot textul unui document.[3] Aceeași întrebare se poate ridica asupra culorii hârtiei (deci a fondului pe care apare scrisul). Aceste întrebări își găsesc răspunsul în atribute ale tag-ului BODY:
BACKGROUND=“adresa-imagine”
BGCOLOR=“#rrggbb”|”culoare”
TEXT=“#rrggbb”|”culoare”
BGPROPERTIES=“FIXED”
b) Linii.
Pentru a trasa linii care să separe sau să evidențieze secțiuni de text sunt posibile două soluții:
linii trasate prin tag-ul dedicat HR;
linii trasate ca imagini înglobate.
<HR [WIDTH=nnn|nnn%] [ALIGN=left|center|right] [COLOR=“#rrggbb”|”culoare”] [SIZE=mm] [NOSHADE]>
c) Imagini grafice.
Imaginile care pot fi încărcate în documentul curent trebuie să fie sub format JPG sau GIF.
<IMG SRC=“URL-imagine” [ALIGN=left|right|top|middle|bottom] [ALT=“text-alternativ”] [BORDER=nn] [DYNSRC=“URL-dinamic”] [LOWSRC=“URL-rez-slaba”] [LOOP=nr-repet] [CONTROLS] [HEIGHT=mm] [WIDTH=ww] [HSPACE=hh] [VSPACE=vv] [ISMAP] [USEMAP]> [text]
Imagini cu legături hipertext
O facilitate a documentelor hipertext foarte utilizată în ultimul timp, atât pentru atractivitatea ei, cât și pentru posibilitățile sporite de sugerare și transmitere de informații, este crearea imaginilor care cuprind legături hipertext, legături care se activează prin click pe diferite regiuni ale imaginii. O asemenea imagine, datorită segmentării în regiuni, fiecare regiune fiind ancorarea unei legături hipertext, este numită hartă grafică (image map în engleză):
<IMG SRC=“fișier-imagine” USEMAP=“#nume-map”>
unde se remarcă trimiterea prin USEMAP la URL-ul care conține specificarea hărții. Este similar unei legături la o locație numită (începe cu #) dar numirea locației se face cu tag-ul MAP, descris în continuare, tag care introduce și specificarea regiunilor hărții.
<MAP NAME=“nume-map”>
descriere arie-1 [descriere arie-2 … [descriere arie-k]</MAP>
Descrierea unei arii cuprinde forma, coordonatele și legătura hipertext atașată. Toate acestea se marchează cu tag-ul AREA:
<AREA [SHAPE=“RECT”|“RECTANGLE”| “CIRC”| “CIRCLE”| “POLY”| “POLYGON”|“DEFAULT”] [COORDS=“coordonatele”] [HREF=“adresa URL”] [NOHREF] [ALT=“text-alternativ”] [TARGET=“nume-fereastra|_blank|_parent|_self|_top]>
Tabelarea datelor
Prezentarea datelor sub formă de tabele are importante avantaje atât prin claritate și sistematizare cât și prin posibilitățile de comparare oferite.[21] Deși tabelele pot fi construite în HTML și prin aranjarea directă a datelor, din tastatură și utilizarea unui font neproporțional (sau formatul PRE), există tag-uri dedicate cu ajutorul cărora tabelele pot fi formatate aproape la nivelul similar din procesoarele de texte.
Marcarea unui tabel se efectuează printr-un tag de introducere a tabelului și definire a atributelor globale, tag-ul TABLE, containerul respectiv conținând, apoi, definițiile pentru liniile și coloanele tabelului. Se va vedea că, de fapt, definiția elementară este asupra unei celule a tabelului, restul definițiilor precizând doar gruparea lor în linii/coloane.
2.4. JavaScript
Ce este JavaScript?
JavaScript este un limbaj de programare orientat pe obiecte, care vă permite să oferiți paginilor dumneavoastră un caracter mai dinamic și interactiv.
JavaScript a fost dezvoltat de Netscape Corporation pentru a fi utilizat în browserul Netscape Navigator. Un script JavaScript poate fi plasat direct în pagina Web, fiind executat de browser împreună cu documentul Web care-l conține.[16] Browserul Internet Explorer (versiunile mai noi decât IE 3.0) execută și el corect scripturile JavaScript.
JavaScript este un limbaj interpretat, ca și Perl, dar în cazul său nu trebuie să vă mai faceți griji în privința instalării unui interpretor deoarece acesta este inclus în browser. Codul sursă poate fi inclus în pagina Web sau poate fi pus într-un fișier separat care este referit din pagină.
Cum poate fi inclus un script în pagină?
Scripturile JavaScript pot fi incluse în pagina Web în două moduri:
prin intermediul etichetei <SCRIPT> </SCRIPT>
prin intermediul unei proceduri eveniment
Iată un exemplu foarte simplu în care în document este inclus un script care afișează în pagină textul "Buna ziua!" prin intermediul etichetei <SCRIPT>.
Unul dintre atributele etichetei <SCRIPT> este language prin care este specificat limbajul în care este scris scriptul, în cazul acesta valoarea atributului fiind "JavaScript".
O altă modalitate de a include de a include un script în pagină este salvarea acestuia ca un fișier extern și apelarea sa prin intermediul atributului src al etichetei <SCRIPT>.
Modul de execuție al scriptului
Scripturile integrate în cadrul paginilor sunt evaluate după ce încărcarea paginii s-a încheiat dar înainte ca aceasta să fie afișată. Pe de altă parte, scripturile stocate ca fișiere separate sunt evaluate înaintea tuturor scripturilor in-line (adică a celor incluse în pagină). Funcțiile definite în cadrul scripturilor nu sunt executate automat la încărcarea paginilor ci abia atunci când acestea sunt apelate, fie prin eticheta <SCRIPT> fie printr-o procedură eveniment.
Motivul este faptul că există browsere care nu recunosc și nu pot executa scripturile JavaScript. Dacă un document Web care conține cod JavaScript este încărcat într-un asemenea browser, în loc ca scriptul să fie executat, este afișat în pagină întregul cod, ceea ce nu este de dorit. Așa după cum știți, comentariile sunt ignorate de browser, astfel că includerea codului JavaScript între etichetele de comentariu va duce la ignorarea acestei părți a documentului.[12] Excepție fac browserele care recunosc JavaScript și care vor identifica prezența JavaScript și vor executa scriptul.
Am învățat până acum cum poate fi inclus codul JavaScript într-un document HTML. Să vedem, mai departe, cum putem folosi scripturile JavaScript pentru a face paginile mai atractive și a le îmbunătăți funcționalitatea.
Librăria JQuery
jQuery este o platformă de dezvoltare javascript, concepută pentru a ușura și îmbunătăți procese precum traversarea arborelui DOM în HTML, managementul inter-browser al evenimentelor, animații și cereri tip AJAX. jQuery a fost gândit să fie cât mai mic posibil, disponibil în toate versiunile de browsere importante existente, și să respecte filosofia "Unobtrusive JavaScript".[17] Librăria a fost lansată in 2006 de către John Resig.
Dar totuși apare întrebarea, care este cel mai rapid framework? La momentul în care a apărut JQuery toată lumea a început să-l compare cu Mootools, care a fost realizat de Massachusetts Institute of Technology. Mai există platforme foarte bune în următoarele două diagrame, am reprezentat cinci dintre ele, cele mai cunoscute. Dacă nu am utilizat nicio platformă până în momentul respectiv dar dorim să optăm pentru una, următoarele diagrame ne vor ajuta cu siguranță să alegem calea cea bună.
Prima diagramă reprezintă cât de rapide sunt framework-urile în browsere diferite:
După cum s-a putut observa din diagrama de mai sus Jquery și Mootools sunt pe primele locuri iar celălalte au rămas în urmă cu mult.
A doua diagramă reprezintă viteza framework-urilor:
În această ultimă diagramă Dojo a ieșit pe primul loc cu o viteză excepțională. În site-ul meu am optat pentru JQuery din mai multe considerente, în ultima vreme a ajuns la un nivel de dezvoltare foarte înalt și a devenit extrem de rapid, apar în fiecare zi plugin-uri noi care ușureză mult lucrul programatorilor, oferă tutoriale online cu exemple și ne oferă și sursa acestora. [22]Pentru noi rămâne doar implentarea în mod corect. Evident cei care sau obișnuit cu o altă platformă nu trebuie să renunțe la ea, fiecare are avantajul ei și dacă într-un anumit moment se pare că este destul de lentă față de alte platforme, ea poate deveni în viitor rapidă. Problema apare atunci când timpul de încărcare a paginii a crescut, acest lucru se datărează faptului că site-ul nostru este prea complex sau că au fost utilizate prea multe pluginuri. Eu am încercat să evit acest lucru.
2.5. CSS
Foile de stiluri HTML (Cascading Style Sheets) reprezintă o inovație în dezvoltarea World Wide Web, în ciuda faptului că ideea grupării elementelor de formatare a documentelor a apărut ceva mai demult. [3]Aplicarea stilurilor reprezintă o extindere importantă a posibilităților de design, evitând utilizarea de fișiere grafice mari ce determină încetinirea încărcării paginilor și manipularea lor greoaie.
Ce este un stil?
Când un browser citeste o foaie de stil, el va formata documentul în conformitate cu informațiile din foaia de stil.
Există trei moduri de a introduce o foaie de stil:
Foaie de stil externă
Foaie de stil internă
stil inline
Un stil reprezintă o colecție de atribute ale textului și ale modului de aranjare a documentului care pot fi aplicate în mod selectiv unui document sau doar unei părți din acesta. Aceste atribute pot fi tipul de font, mărimea și grosimea acestuia, marginile, paragrafele și orice altceva ce poate influența aspectul textului în pagină. Gruparea lor în stiluri permite autorului să aplice aceeași colecție de atribute la diferite părți ale unui document.
Stilurile aplicate unui document HTML au multe avantaje pentru creatorii de pagini Web:
Oferă control crescut asupra aspectului și plasării textului în pagină
Reduc "învălmășeala" produsă de multitudinea de deschideri și închideri ale etichetelor care descriu elementele individuale ale textului
Procesul de modificare a diferitelor elemente din pagină se simplifică
De exemplu, dacă doriți ca titlurile dumneavoastră să aibă un alt tip de font decât textul obișnuit, să fie de dimensiune mai mare și scrise cu caractere îngroșate și italice, ar trebui să definiți aceste atribute de formatare pentru fiecare titlu în parte.[12] Folosind stilurile nu aveți nevoie decât să creați o singură definiție de stil care să conțină atributele de formatare dorite, pe care să o aplicați la fiecare titlu.
În plus, folosirea stilurilor reduce considerabil efortul depus atunci când doriți să aduceți modificări aspectului și aranjării elementelor din paginile dumneavoastră. În loc să parcurgeți fiecare document în parte și să faceți modificări asupra fiecărui element, nu mai este necesar să operați modificări decât asupra foii de stiluri care controlează aceste elemente.
Tipuri de foi de stiluri
Stilurile HTML pot fi aplicate într-o pagină Web în trei moduri:
Încapsulate (embedded): stilurile sunt incluse în documentul asupra căruia se aplică, și anume în secțiunea <HEAD> a documentului. Prin includerea lor în antetul documentului, stilurile rămân invizibile pentru vizitatorul paginii.
Legate (linked): stilurile sunt definite în fișiere separate de documentul HTML. Documentul face apel la foaia de stiluri prin intermediul etichetei <LINK>. Folosirea acestui tip de stiluri face posibilă utilizarea aceleiași foi de stil pentru documente diferite. De asemenea, este posibilă aplicarea mai multor foi de stiluri pentru același document.
In-line: stilurile sunt incluse ca atribute în cadrul etichetelor HTML din document. Aceasta înseamnă că ele vor afecta doar elementul asupra căruia sunt aplicate. Este o modalitate mai puțin utilizată deoarece contrazice principiul general al stilurilor, acela de a simplifica și de a face mai lizibil codul documentului HTML.
Sintaxa definițiilor de stil este, în general, aceeași, indiferent de modul cum sunt ele aplicate. Cele trei tipuri de stiluri pot fi, de asemenea, combinate în cadrul aceluiași document. Relațiile dintre diferitele tipuri de stiluri realizează efectul de cascadă care dă numele acestei metode.
Stiluri încapsulate
Stilul incapsulat este folosit atunci când se doreste încorpora informațiilor foaie de stil într-un document HTML folosind elementul <style>.
Se poate face acest lucru prin încorporarea informațiilor foaie de stil între tag-urile<style> </ style> în inceputul documentului.
Sintaxă
Sintaxa CSS pentru foile de stil incapsulate este exact aceeasi ca și un alt cod CSS.
De exemplu, pentru a folosi codul de mai jos, pur și simplu se pune între tag-urile <head> </ head> ale documentului HTML:
<style type="text/css" media=screen>
p {font-family: georgia, serif; font-size: x-small;}
hr {color: #ff9900; height: 1px }
a:hover {color: #ff0000; text-decoration: none}
</style>
Acum, oricand si oricare dintre aceste elemente vor fi folosite în cadrul documentului, acestea vor fi formatate conform instrucțiunilor din foaia de stil de mai sus.
Foi de stil integrate sunt potrivite pentru documente cu cerințele de proiectare unice. În cazul în care stilurile trebuie să fie aplicate în întreaga documente muliple, ar trebui să se lege de o foaie de stil externa in locul folosirii unei foaie de stil incapsulate.
Stiluri legate – foi de stiluri externe
Avantajul folosirii foilor de stiluri externe este dublu. Pe de-o parte ele se pot aplica la nivelul mai multor documente HTML, realizând astfel o legătură de stil între ele, lucru deosebit de util la construirea unui site. Pe de altă parte, același document poate folosi foi de stiluri diferite, oferind vizitatorului posibilitatea de a opta pentru unul sau altul dintre ele, în funcție de propriile preferințe.
Cu o foaie de stil externa, se poate schimba aspectul unui întreg site prin schimbarea unui singur fișier!
Fiecare pagină trebuie să conțină o trimitere la fișierul foaie de stil externa in interiorul elementului <link>.
Elementul <Link> trimite în interiorul secțiunii head:
<head>
<link rel = tip "stylesheet" = "text / css" href = "mystyle.css">
</ head>
O foaie de stil externa poate fi scrisă în orice editor de text. Fișierul nu trebuie să conțină nici un tag HTML. Fișierul foaie de stil trebuie să fie salvat cu extensia .css.
Un exemplu de fișier foaie de stil numit "myStyle.css", este prezentată mai jos:
body {
background-color: lightblue;
}
h1 {
color: navy;
margin-left: 20px;
}
Stiluri in-line
Stilurile inline sunt stiluri CSS care se aplică unui element folosind atributul style.
Cum se scrie un stil inline
Scrie proprietatea stil în același mod în care ar fi într-o foaie de stil. Dar aceasta trebuie să fie una linie. Proprietăți multiple separate cu punct și virgulă la fel ca într-o foaie de stil.
background:#ccc; color:#fff; border: solid black 1px;
Puneți această linie de stiluri interiorul atributul stil al elementului pe care doriți stilata.
<p style="background:#ccc; color:#fff; border: solid black 1px;">
Avantajele stilurilor Inline
Din cauza ca sunt in cascada, stilurile inline au cea mai mare prioritate.
Asta înseamnă că vor fi aplicate indiferent de alte conditii.
Există câteva cazuri în care un stil inline poate fi suprapus, cum ar fi cu atributul !important sau cu foi de stil utilizator. Dar cu utilizare tipică CSS, stilurile inline vor avea cea mai mare prioritate.
Singurele stiluri care au prioritate mai mare decât stiluri linie sunt stiluri de utilizator aplicate chiar de cititori înșiși.
Stilurile inline sunt ușor și rapid de adăugat. Nu este nevoie de a crea un întreg nou document (ca cu foi de stil externe) sau edita un element nou în capul documentului (ca cu foi de stil interne). Trebuie doar să adăugat atributul stil care este valabil pe aproape fiecare element XHTML.
Dezavantajele Stilurilor Inline
Deoarece acestea sunt de cele mai multe ori in cascada, se pot suprapune lucruri pe care nu le intenționăm.
Stilurile inline trebuie să se aplice pe fiecare element pe care il doriți. Deci, dacă vrem ca toate paragrafele sa fie scrise in familia de fonturi "Arial" trebuie să adăugați un stil inline la fiecare <p> tag in document.
Aceasta presupune mai mult timp pentru designer si mai mult timp de descărcare pentru cititor.
Este imposibil de aplicat la pseudo-elemente și pseudo -clase cu stilul inline.
Se recomandă să nu se utilizeze stiluri inline pentru paginile. de web, deoarece acestea provoacă probleme și face pagina mult mai greu de intretinut. Singura dată când este recomandata folosirea este atunci când se doreste verificarea unui stil de repede in timpul dezvoltarii. După ce se constata ca este corespunzator pentru acel element, se va muta in foaia de stil externa.
2.6. XAMPP
XAMP (Windows/Apache/MySQL/PHP, Python, (and/or) PERL) este o aplicatie open-source conceputa ca si mediu pentru dezvoltarea aplicatiilor web ce folosesc PHP si MySql.
WAMP este format din : un server web(Apache), procesor de script(PHP)si un server de baze de date(Mysql).
Apache
Apache este un server multiplatforma HTTP (Hyper Text Transfer Protocol).
Scopul prinicipal al lui Apache este acela de a prelua cererile de resurse care ajung din rețea și de a răspunde acestora în concordanta cu cele prevăzute de protocolul HTTP. [13]
Alegerea de web server s-a focusat pe Apache pentru ca acesta este gratuit si foarte răspândit, mai stabil precum și bogat în funcționalități. În evaluare au fost luate în considerare caracteristicile în creștere pe care Apache le implementează.
Motivul pentru care Apache este alegerea celor mai multi utilizatorilor, este stabilitatea sa ieșită din comun. Ar mai fi de mentionat ca Apache este rapid, însă această trasatura depinde foarte mult de destinația sa. Dacă este folosit pentru a “servi” pagini statice (HTML), atunci Apache este un adevărat „glonț” , adica v-a functiona foarte rapid. Dacă acesta are de prelucrat foarte multe de scripturi CGI, cu fiecare script examinând baza de date în mod sincron, serverul pierde din viteză, ca orice alt server web. Mare parte din încetinire este cauzata de la scripturi și nu de la serverul Apache.
Apache este cel mai însemnat tip de server folosit pe Internet , reprezentand o componenta de baza a infrastructurii acestuia. Cea mai importanta trasatura a serverului web este de traduce un URL intr-un nume de fisier ca apoi sa-l trimita inapoi prin Internet, sau intr-un nume de program, apoi sa ruleze programul si sa transmita datele de iesire catre calculatorul sursa.
Apache este un server web complex, in mare parte datorita multiplelor insusiri pe care acesta le reprezinta. Printre acestea se numara fiabilitatea (datorita faptului ca este program open-source este testat si imbunatatit in permanenta) dar si rapiditatea, consumul scazut de resurse hardware, multitasking, virtual hostingul, securitate avansata dar si pentru ca ruleaza pe diferite platforme, usor de configurat. Technologiile suportate de Apache sunt prin urmare , protocolul HTTP 1.0, autentificare prin HTTP, CGI, Perl, PHP, JSP, SSI, SSL.
2.7. PHP
PHP este un limbaj de programare conceput datorita Internetului, oferand dinamică unei pagini de web. Este unul din cele mai importante limbaje de programare web open-source și server-side. Notiunea de PHP provine din limba engleză și este un acronim recursiv pentru Php: Hypertext Preprocessor. [4]Exemplele cele mai faimoase de utilizare a limbajului PHP sunt PhpBB (forum), PhpNuke(CMS), ba chiar și MediaWiki, software-ul folosit pentru Wikipedia. Folosirea PHP este o alternativă gratuită la utilizarea unor limbaje comerciale . Ca exemplu putem oferii limbaje precum ASP de la Microsoft, ColdFusion de la Macromedia, sau chiar JSP de la Sun Microsystems.
Istoric
PHP a fost conceput ca o extensie a limbajului server-side Perl în 1994, și apoi de o serie de CGI-uri compilate de către R. Lerdorf, pentru a genera un curriculum vitae și pentru a urmări traficul si numărul de vizitatori ai unui site web ,evoluat apoi în PHP/FI 2.0.
Proiectul open-source a început să ia amploare abea după ce Zeev Suraski și Andi Gutmans, de la Technion au lansat o versiune nouă a interpretorului PHP în vara anului 1998. Această versiune a devenit cunoscuta sub numele de PHP 3.0. Apoi tot ei au schimbat și numele acesteia în acronimul recursiv de astazi, deoarece până atunci PHP era cunoscut ca Personal Home Page Tools. Suraski și Gutmans au mai rescris odata aceasta baza a limbajului, producând astfel Zend Engine în 1999.
În primavara anului 2000 a fost lansat PHP 4.0, având la bază Zend Engine 1.0. In 13 iulie 2004 a fost lansata asadar si varianta PHP 5, cu Zend Engine II, ce a adus și o orientare obiect mai pronunțată și suportând mai multe caracteristici ale acestui tip de programare.
Popularitate
PHP-ul este unul dintre cele mai agreate limbaje de programare server-side, conform rezultatelor unui studiu facut de Netcraft în aprilie 2002, clasandu-se pe locul 9 din cele 37 milioane de domenii cercetate. Tot odata există un grafic al creșterii folosirii PHP-ului pe site-ul oficial. Renumele acestui limbaj de programare se justifica prin urmatoarele caracteristici:
Familiaritatea: sintaxa limbajului este foarte ușoară combinând sintaxele unora din cele mai populare limbaje Perl sau C;
Simplitatea: sintaxa limbajului este destul de liberă. Nu este nevoie de includere de biblioteci sau de directive de compilare, codul PHP inclus într-un document executându-se între marcajele speciale;
Eficiența: PHP-ul se folosește de mecanisme de alocare a resurselor, foarte necesare unui mediu multiuser, așa cum este Web-ul;
Securitatea: PHP-ul pune la dispoziția programatorului un set flexibil și eficient de măsuri de siguranță;
Flexibilitatea: fiind apărut din necesitatea dezvoltării Web-ului, PHP a fost modularizat pentru a ține pasul cu dezvoltarea diferitelor tehnologii. Nefiind legat de un anumit server web, PHP-ul a fost integrat pentru numeroasele servere web existente: Apache, IIS, Zeus, server, etc.;
Gratuitatea: este probabil cea mai importantă caracteristică a PHP-ului. Dezvoltarea PHP-ului sub licența open-source a determinat adaptarea rapidă PHP-ului la nevoile Web-ului, eficientizarea și securizarea codului.
Utilizare
PHP este simplu de utilizat, fiind un limbaj de programare structurat, ca și C-ul, Perl-ul sau începând de la versiunea 5 chiar Java, sintaxa limbajului fiind o combinație a celor trei. Datorită modularității sale poate fi folosit și pentru a dezvolta aplicații de sine stătătorare, de exemplu în combinație cu PHP-GTK sau poate fi folosit ca Perl sau Python în linia de comandă. Probabil una din cele mai importante facilități ale limbajului este conlucrarea cu majoritatea bazelor de date relaționale, de la MySQL și până la Oracle, trecând prin MS Sql Server, PostgreSQL, sau DB2.
PHP poate rula pe majoritatea sistemelor de operare, de la UNIX, Linux, Windows, sau Mac OS X și poate interacționa cu majoritatea servereler web. Codul dumneavoastră PHP este interpretat de serverul WEB și generează un cod HTML care va fi văzut de utilizator (clientului -browserului- fiindu-i transmis numai cod HTML).
Ce reprezintă PHP ?
Numele de Hypertext Preprocessor sau PHP nu spune prea multe despre ce este. Este un limbaj asemănător cu C sau Perl, cu variabile, constante, șiruri, string-uri și alte tipuri de date, cu instrucțiuni de control și funcții, cu obiecte și alte lucruri necesare oricărui limbaj, care interpretează cod scris pe server și returnează cod HTML pentru pagini web. HTML este un format static, care este salvat în fișiere apelate din browsere pentru a fi vizualizate. Insa atunci când se dorește crearea dinamica a fișierului HTML trebuie folosit pe server un limbaj de scripting: PHP, Perl, ASP sau altele. Din paginile respective se pot interoga baze de date, folosi informații din alte fișiere sau chiar de pe alte site-uri, folosi emailuri sau alte date stocate în diverse modalități, iar în final se construiește o pagina HTML pasata și vizualizata în browser. PHP este transparent pentru vizitatori, ceea ce rezulta fiind HTML.[4]
Nu exista compilare în PHP, codul rămâne sub forma de sursa pe server fiind interpretat la fiecare cerere. [15]Se instalează librăriile PHP-ului care știu sa funcționeze cu serverul web oricare e acela, iar la cererea unui fișier cu extensia .php (de obicei, pentru ca pot fi folosite și alte extensii) va fi chemat PHP-ul care interpretează codul specific, dintre tagurile PHP-ului, rezultând HTML. Iar în browser-ul clientului nu ajunge deloc cod PHP ci doar HTML. Așa ca parolele sau codul dvs. rămâne de nemodificat sau nevăzut pe server. Principiul este la fel și cu alte limbaje pentru Internet, server-side: ASP, Perl, ColdFusion, etc.
PHP se executa doar pe server și nu interacționează cu user-ului decât sub forma de HTML sau JavaScript. Codul PHP este marcat cu câteva tag-uri speciale. Cel mai adesea este folosit:
<?php … cod PHP … ?>
Dar se poate scrie și doar
<? … cod PHP … ?>
sau <script language="php"> … cod PHP … </script>
sau chiar <% … cod PHP … %> la fel cu ASP.
Codul PHP poate fi amestecat oriunde în pagina HTML, doar trebuie sa rezulte cod HTML, cu structura unui document HTML.
Securitatea în PHP
PHP este un limbaj de programare web puternic, iar interpretorul său, fie că este inclus în serverul web ca un modul, sau executat separat ca binar CGI, este capabil să acceseze fișiere, să execute comenzi sau să deschidă conexiuni în rețea pe server. Aceste proprietăți fac ca totul ce este rulat pe server să fie implicit nesecurizat. PHP a fost proiectat în mod specific pentru ca să fie un limbaj mai securizat pentru scrierea programelor CGI decât Perl sau C, și cu o selectare corectă a opțiunilor de configurare la compilare și la rulare, dublate de o tehnică de programare corespunzătoare, PHP vă poate oferi combinația perfectă de libertate și securitate de care aveți nevoie.
Deoarece există multe modalități diferite de a utiliza PHP, există și multe opțiuni de configurare care îi controlează comportamentul. O gamă largă de opțiuni de configurare garantează posibilitatea utilizării PHP pentru o întreagă suită de întrebuințări, dar aceasta totodată înseamnă că pot exista combinații ale acestor opțiuni și ale configurațiilor de servere, care vor duce la crearea unui mediu de execuție nesecurizat.
Flexibilitatea configurațiilor în PHP este egală și rivalizează cu flexibilitatea codului-sursă. PHP poate fi utilizat pentru a construi aplicații complete pentru servere, cu toate avantajele unui utilizator shell, sau poate fi utilizat ca o simplă incluziune de partea serverului cu grad de risc redus, într-un mediu bine controlat. [19]Modul de construire a acestui mediu și cât de securizat este el depinde în mare măsură de programatorul PHP.
Folosind PHP ca pe un binar CGI este o opțiune pe care setup-urile, dintr-un anume motiv, nu doresc sa o configureze și sa o integreze în PHP ca pe un modul în serverul software (precum Apache), sau vor folosi PHP cu ajutorul diferitelor metode de CGI wrap pentru a crea medii securizate chroot și setuid pentru scripturi. Acest setup implica de obicei instalarea binarului PHP executabil în directorul cgi-bin din serverul web. Îndrumarul CERT » CA-96.11 nu recomanda plasarea oricărui tip de interpretor de acest gen în directorul cgi-bin. Chiar daca binarul PHP poate fi folosit ca un interpretor de sine stătător, PHP a fost conceput în așa fel încât sa anticipeze atacuri generate de un asemenea setup:
Accesarea fișierelor din sistem: http://host.ext/cgi-bin/php?/etc/passwd
Informația din URL de după semnul de întrebare (?) este pasata liniei de comanda ca argumente și interpretată de interfața CGI. De obicei interpretoarele deschid și executa fișierul specificat ca prim argument în linia de comanda.
Când este apelat ca un binar CGI, PHP refuza sa interpreteze argumentele din linia de comanda.
Putem accesa orice document de pe server: http://host.ext/cgi-bin/php/secret/doc.html
Informațiile introduse în URL după numele binarului PHP, /secret/doc.html sunt de obicei utilizate pentru a specifica numele și calea câtre fișierul care trebuie deschis de către interpretorul CGI. De obicei directivele din configurația unui server web (Apache: Action) sunt folosite pentru a redirecta cererile câtre documente ca http://www.host_victima.ro/secret/script.php câtre interpretorul PHP. Cu acest setup, serverul web verifica mai întâi permisiile de acces câtre directorul /secret, și după aceea creaza cererea de redirecționare câtre http://www.host.ro/cgi-bin/php/secret/script.php. Din păcate, daca cererea originala se face sub aceasta forma nu sunt făcute nici un fel de verificări de câtre serverul web câtre fișierul /secret/script.php, ci numai pentru fișierul /cgi-bin/php. In acest fel, orice utilizator care poate executa /cgi-bin/php, poate accesa automat orice director sau fișier protejat de pe server.
Când PHP este utilizat ca modul în Apache, el moștenește permisiile default Apache (de obicei acelea ale utilizatorului "nobody"). Acest fapt are un impact mare asupra securității sistemului. De exemplu, daca folosiți PHP pentru a accesa o baza de date, și aceasta nu are management de acces inclus, va trebui sa faceți în așa fel încât aceasta sa fie accesibila utilizatorului "nobody". Aceasta înseamnă ca oricine cu drepturi default "nobody" poate acționa și modifica baza de date, fără sa fie nevoit sa introducă username sau parola. Este posibil ca un robot de indexare web sa acceseze accidental panoul de administrare al bazei de date (ex. phpMyAdmin) și sa modifice sau sa șteargă toate datele. Va puteți proteja cu ajutorul sistemului de autorizație folosit de Apache, sau printr-un model de acces personalizat folosind LDAP, fișiere tip .htaccess , etc. pe care sa le introduceți în scripturile PHP create.
Adesea, după ce politica de securitate a fost stabilita, iar utilizatorul PHP (in acest caz, utilizatorul Apache) prezintă risc redus fata de sistem, iese la iveala faptul ca PHP este restricționat în a scrie în fișierele și directoarele utilizatorilor, sau nu poate accesa și schimba anumite baze de date. De asemenea, a fost securizat asemănător în a scrie fișiere bune și rele, sau inserarea de tranzacții benefice sau dăunătoare bazelor de date.
O greșeală de securitate frecventa este ca atunci când se ajunge în acest moment, sa se dea permisii de root serverului Apache, sau sa se escaladeze voit privilegiile din acesta, pentru a facilita anumite acțiuni.
Escaladarea privilegiilor utilizatorilor Apache câtre root este deosebit de periculoasa și poate duce la compromiterea întregului sistem, așa ca sudo'ing, chroot'ing, sau alte modalități de a rula root nu ar trebui luate în considerare de câtre administratorii de sistem.
Exista și soluții mai simple. Utilizând open_basedir puteți controla și restricționa ce directorii doriți, în care poate avea acces PHP. In plus puteți seta zone apache-only, pentru a restricționa toate activitățile non-user, sau non-system, fișiere venite via web.4
2.8. MySQL
MySQL este cel mai popular sistem de management al bazelor de date Open Source relationale SQL.
MySQL este una dintre cele mai bune baze de date relationale (RDBMS )fiind utilizata pentru dezvoltarea de aplicații software web-based.
O bază de date este o aplicație separată care stochează o colecție de date. Fiecare bază de date are una sau mai multe API-uri distincte pentru crearea, accesarea, administrarea, căutarea și replicarea datelor pe care le deține.
Alte tipuri de baze de date pot fi folosite, cum ar fi fișiere de pe sistemul de fișiere sau tabele de dispersie mari , dar citirea și scrierea datelor nu ar fi atât de rapida și ușoara, cu acele tipuri de sisteme.
Deci, vom folosi sisteme de management de baze de date relaționale (RDBMS) pentru a stoca și gestiona un volum imens de date. Aceasta se numește bază de date relațională, deoarece toate datele sunt stocate în tabele diferite și relațiile sunt stabilite folosind chei primare sau a alte taste cunoscute sub numele de chei străine.
Un sistem de management al Relational DataBase (RDBMS) este un software care:
Vă permite să pună în aplicare o bază de date cu tabele, coloane și indici.
Garantează referențială Integritate între rânduri de diferite tabele.
Actualizează automat indicii.
Interpretează o interogare SQL și combină informații din diverse tabele.
Terminologie RDBMS:
Înainte de a proceda la explicarea sistemul de baze de date MySQL, ar fi necesare câteva definiții referitoare la baza de date.
Bază de date: O bază de date este o colecție de tabele, cu date aferente.
Tabel: Un tabel este o matrice cu date. Un tabel într-o bază de date arata ca o foaie de calcul simplu.
Coloană: o coloană (data element) conține date de singur tip, de exemplu codul poștal coloană.
Row: Un rând (intrarea sau înregistrare) este un grup de date aferente, de exemplu, datele dintr-un abonament.
Redundanța: Stocarea datelor de două ori, redundant pentru a face sistemul mai rapid.
Cheie primară: O cheie primară este unica. O valoare a cheii nu poate fi gasita de două ori într-un singur tabel. Cu o cheie, puteți găsi mai usor un rând.
Cheia Externa: O cheie externă este PIN-ul de legătură între două tabele.
Cheie compuas: O cheie compusa (cheie compozite) este o cheie care constă din mai multe coloane, pentru că o coloană nu este suficient de unica.
Index: Un index într-o bază de date seamănă cu un index la partea din spate a unei cărți.
Referențial de Integritate: Integritatea referentiala asigura că o valoare-cheie străina indica întotdeauna un rând existent.
MySQL Database:
MySQL este un RDBMS rapid, ușor de utilizat, folosit pentru multe companii mici și mari. MySQL este dezvoltat, comercializate și susținut de MySQL AB, care este o companie suedeză. MySQL a devenit atât de popular din mai multe motive demne de luat in seama:
MySQL este lansat sub o licență open-source. Deci nu exista nici o obligatie de plata pentru a-l folosi.
MySQL este un program foarte puternic în domeniul său . Se ocupa de managementul unui mare subset , cu funcționalitatea pachetelor de date mai mari si mai puternice.
MySQL foloseste un limbaj standard al bine-cunoscutului limbaj date SQL.
MySQL funcționează pe mai multe sisteme de operare și cu mai multe limbi, inclusiv PHP, PERL, C, C ++, JAVA, etc.
MySQL funcționează foarte rapid și funcționează bine, chiar cu seturi mari de date.
MySQL este foarte prietenos cu PHP, limbajul cel mai apreciat pentru dezvoltare web.
MySQL susține baze de date mari, de până la 50 de milioane de rânduri sau mai multe într-un tabel. Limita de dimensiune de fișier implicit pentru o masa este de 4GB, dar poate crește (în cazul în care sistemul de operare poate suporta) la o limită teoretică de 8 milioane de terabytes (TB).
MySQL este personalizabil. Licența GPL open-source permite programatorilor să modifice software-ul MySQL pentru a se potrivi lor medii specifice.
Administrative MySQL Command:
Voi prezenta o lista de comenzi importante MySQL, care se folosesc mai des pentru a lucra cu baza de date MySQL:
USE Databasename: Aceasta va fi utilizată pentru a selecta o anumita bază de date în MySQL workarea.
SHOW DATABASES: prezinta lista bazelor de date care sunt accesibile MySQL DBMS.
SHOW TABLES: Afișează tabelele din baza de date o dată ce o bază de date a fost selectata cu comanda de utilizare.
SHOW COLUMNS FROM tablename: Afișează atributele, tipuri de atribute, informații cheie, și alte informații pentru un tabel.
SHOW INDEX FROM tablename: Prezintă detalii ale tuturor indicilor tabelului, inclusiv PRIMARY KEY.
SHOW TABLE STATUS LIKE tablename\G: Rapoarte detalii de performanță MySQL DBMS și statistici.
MySQL funcționează foarte bine în combinație cu diferite alte limbaje de programare cum ar fi Perl, C, C ++, JAVA și PHP. Din urmatoarele limbi, PHP este cel mai popular, din cauza capacităților sale de dezvoltare de aplicatii web. PHP oferă diverse funcții pentru a accesa baza de date MySQL și de manipulare înregistrări de date în interiorul bazei de date MySQL. Apelare funcțiilor PHPse face în același mod în care se apeleaza orice altă funcție PHP.
Funcțiile PHP pentru utilizarea cu MySQL vor avea următorul format general de:
mysql_function(value,value,…);
A doua parte a numelui funcție este specifică funcția, de obicei, un cuvânt care descrie ceea ce face funcția. Următoarele sunt două din funcțiile pe care le vom folosi:
mysqli_connect($connect);
mysqli_query($connect,"SQL statement");
Următorul exemplu arată o sintaxă generica de PHP pentru a apela orice funcție MySQL.
<html>
<head>
<title>PHP with MySQL</title>
</head>
<body>
<?php
$retval = mysql_function(value, [value,…]);
if( !$retval )
{
die ( "Error: a related error message" );
}
// Otherwise MySQL or PHP Statements
?>
</body>
</html>
Pornind de la capitolul următor, vom vedea tot mai important functionalitatea MySQL împreună cu PHP.
PHP a început ca un mic proiect open source care a evoluat odata ce tot mai mulți oameni au aflat cât de utilă a fost.
Rasmus Lerdorf a lant prima versiune a PHP în 1994.
PHP este un acronim pentru "PHP: Hypertext Preprocessor".
PHP este un limbaj de scripting pe partea de server, care este încorporat în HTML. Acesta este utilizat pentru a gestiona dinamic baze de date, urmărirea sesiunii, chiar construirea completa a unui site e-commerce.
Acesta este integrat cu un număr de baze de date populare, inclusiv MySQL, PostgreSQL, Oracle, Sybase, Informix, si Microsoft SQL Server.
PHP este prietenos în executarea sa, în special atunci când este compilat ca modul Apache pe partea Unix.
Serverul MySQL, odată initializat, executa chiar interogări foarte complexe, cu seturi de rezultate uriașe în timp record.
PHP suportă un număr mare de protocoale majore, cum ar fi POP3, IMAP, și LDAP. PHP4 adăugat suport pentru Java și arhitecturi de obiecte distribuite (COM și CORBA), ceea ce face dezvoltarea posibila de la prima aplicatie.
PHP este iertator: limba PHP încearcă să fie cât mai iertătoare posibil.
Sintaxa PHP este C-Like.
Utilizări comune ale PHP
PHP îndeplinește funcțiile sistemului, adică de la fișierele de pe un sistem se poate crea, deschide, citi, scrie, și închideți respectivele fisiere.
PHP poate administra forme, de exemplu, aduna date din fișiere, salveaza datele într-un fișier, prin e-mail puteți trimite datele, si returna date la utilizator.
Se pot adăuga, șterge, modifica elemente din cadrul bazei de date prin PHP.
Folosind PHP, puteți restricționa utilizatorii să acceseze anumite pagini ale site-ul dumneavoastră.
Se pot cripta datele.
Caracteristicile PHP
Cinci caracteristici importante fac PHP foarte practic:
Simplitate
Eficiență
Securitate
Flexibilitate
Familiaritate
Exemplu
Deoarece "Hello, World!" este un exemplu esențial, în primul rând voi crea un script amical "Hello, World!".
Așa cum am menționat mai devreme, PHP este încorporat în HTML. Asta înseamnă că, în rândul HTML normal (sau XHTML) va avea o sintaxa PHP ca aceasta:
<Html>
<Head>
<Title> Hello World </ title>
<Body>
<? Php echo "Hello, World!";?>
</ Body>
</ Html>
Acesta va produce următorul rezultat:
Hello, World!
Dacă ați examina ieșirea HTML din exemplul de mai sus, veți observa că acest cod PHP nu este prezent în dosarul transmis de la server la browser-ul Web. Totul din PHP-ul prezent în pagina Web este prelucrat și separat de pagina; singurul lucru care s-a întors la client de la serverul web este ieșirea HTML pura.
Tot codul PHP trebuie să fie inclus în interiorul uneia dintre cele trei etichete speciale de marcare care sunt recunoscute de PHP.
<?php PHP code goes here ?>
<? PHP code goes here ?>
<script language="php"> PHP code goes here </script>
Securitatea bazelor de date
In zilele noastre, bazele de date sunt componente esențiale ale aplicațiilor web, dând posibilitatea acestora de a servi conținut dinamic. Datorita faptului ca informații secrete sau cu caracter confidențial se stochează adesea intr-o baza de date, va trebui sa luați în considerare protejarea bazelor de date.
Pentru a primi sau trimite orice informație, trebuie sa te conectezi la baza de date, sa trimiți un query valid, sa iei rezultatele, și sa închizi conexiunea. Recent, cel mai folosit limbaj query pentru asemenea tip de interacțiune este Structured Query Language (SQL). Vezi cum un atacator poate sa manipuleze un query SQL.
După cum probabil ați presupus, PHP nu va poate proteja bazele de date în sine. Următoarele secțiuni tind sa fie o introducere în noțiunile de baza ale accesării și manipulării bazelor de date, cu scripturi PHP.
Păstrați în minte următoarea regula: securitate maxima. Cu cat creșteți masurile de protecție asupra bazelor de date, cu atât mai putina este probabilitatea ca un atacator sa reușească sa sustragă date importante sau sa abuzeze de ele. Încercați ca structura și designul bazei de date sa fie cat mai eficient, după care va puteți pune problemele legate de securitate.
Designul bazelor de date
Primul pas este întotdeauna crearea bazei de date, numai în cazul în care nu doriți sa folosiți alta de pe alt server. Când o baza de date este creata, ea este desemnata unui anume utilizator, care a executat comanda de creare. In general numai proprietarul (sau superuserul) pot face orice cu obiectele din acea baza de date, iar pentru a lăsa și alți utilizatori sa o folosească, ei trebuie sa aibă privilegii.
Aplicațiile pe care le construiți nu ar trebui sa se conecteze niciodată la o baza de date cu privilegii de administrator sau superuser, pentru ca acești utilizatori pot executa orice fel de query, de exemplu, modificarea schemei (ștergerea tabelelor) sau ștergerea întregului conținut.
Se pot crea diferiți useri de baze de date pentru fiecare aspect al aplicației, cu drepturi limitate, în funcție de task-urile pe care le îndeplinesc. Se pot da numai privilegiile strict necesare, și evitați ca același user sa interacționeze cu mai multe baze de date. [2]Aceasta înseamnă ca daca un intrus va avea privilegii la baza de date, acesta va avea privilegii limitate și nu va putea sa facă decât schimbări cu impact asupra aplicație dumneavoastră.
Este bine sa nu implementați toate soluțiile prin prisma scriptului web, în schimb încercați sa creați o schema de baza de date cat mai competitiva, din care sa extrageți simplu informația. Daca sistemul evoluează, noi porturi vor fi folosite pentru a manipula bazele de date, și va trebui sa re-implementați scripturile pentru fiecare baza de date în parte.
Se poate sa doriți sa va conectați la baza de date folosind encripția SSL pentru a spori siguranța datelor, sau puteți folosi ssh pentru a cripta datele dintre clienții din rețea și serverul de baze de date. Daca este folosita una dintre aceste metode atunci monitorizarea traficului și accesul la informațiile sensibile despre bazele de date ar fi foarte dificila pentru un atacator.
Motivul alegerii MySQL
Dacă suntem în căutarea unui sistem gratuit sau necostisitor de gestiune a bazelor de date, puteți alege din mai multe opțiuni: MySQL, mSQL, Postgres, unui din motoarele gratuite (dar fără suport) furnizate de producătorii comerciali și așa mai departe. Când comparam MySQL cu alte sisteme de baze de date, ne gândim la ceea ce este cei mai important pentru noi. Performanță, suport, caracteristici (conformitate cu SQL, extensii etc.), condiții și restricții de licențiere, preț; toate acestea constituie factori care trebuie luați în considerare. Date fiind aceste considerații, MySQL are de oferit numeroase caracteristici atractive:
• Viteza. MySQL este rapid. Programatorii pretind că MySQL este cel mai rapid sistem de baze de date pe care îl puteți găsi. Putem verifica această afirmație vizitând http://www.mysql.com/benchmark.html, o pagina de comparație a performanțelor din șirul Web MySQL.
• Ușurință în utilizare. MySQL este un sistem de baze de date cu performanțe ridicate, dar relativ simplu, a cărui configurare și administrare sunt mult mai simple decât în cazul sistemelor mai mari.
• Cost. MySQL este gratuit pentru majoritatea utilizărilor interne.
• Suport pentru limbaje de interogare. MySQL înțelege SQL (Structured Query Language – limbaj de interogare structurat), limbajul preferat al tuturor sistemelor moderne de baze de date. De asemenea, puteți avea acces la MySQL folosind aplicații care acceptă ODBC (Open Database Connectivity), un protocol de comunicație cu bazele de date creat de Microsoft.
• Caracteristici. La server se pot conecta mai mulți clienți simultan. Clienții pot folosi mai multe baze de date simultan. Puteți obține acces Ia MySQL în mod interactiv, folosind numeroase interfețe care vă permit sa introduceți interogări și să vizualizați rezultate: clienți în linie de comandă, browsere Web sau clienți X Window System. De asemenea, este disponibila o varietate de interfețe de programare pentru limbaje precum C, Perl, Java, PHP și Python. Astfel, avem opțiunea de a folosi programe client preambalate sau de a scrie propriile programe client pentru aplicații personalizate.
• Conectivitate și securitate. MySQL poate fi folosit integral în rețele, iar bazele de date sunt accesibile de oriunde din Internet, deci putem partaja datele cu oricine, oriunde. Dar MySQL are controlul accesului, astfel încât persoanele care nu au dreptul să ne citească datele nu vor avea această posibilitate.
• Portabilitate. MySQL rulează pe numeroase varietăți de UNIX, precum și pe alte sisteme non-UNIX, ca Windows și OS/2. MySQL rulează pe echipamente de la calculatoare de birou la servere cu performanțe ridicate.
• Distribuție liberă. MySQL este ușor de obținut; pentru aceasta, folosim browserul de Web. Dacă nu înțelegem funcționarea unei componente sau suntem curioși cu privire la un algoritm, putem procura codul sursă și îl putem examina. Dacă nu ne place modul de funcționare a unei componente, îl putem modifica.[13]
Baze de date în MySQL și PHP
Mai înainte de a porni construcția unor script-uri pentru baze de date, ar trebui să avem o bază de date în care să plasăm informații și din care să citim. In această lecție vom vedea cum cream o bază de date în MySQL și cum o pregătim pentru date. Ca un exemplu, vom crea o bază de date de tip carte de adrese de contact.
Bazele de date MySQL au un sistem de inițializare standard (un setup). Este vorba de o bază de date, compusă din tabele, oarecum separate, conținând diferite câmpuri, etc. chiar dacă sunt parte dintr-o bază de date. Fiecare tabelă conține înregistrări care sunt făcute din câmpuri.
Procesul de instalare a unei baze de date MySQL diferă de la o platformă la alta. In esență este vorba peste tot de un nume al bazei de date, un nume de utilizator (cont) și o parolă. Aceste informații sunt cerute pentru conectarea la baza de date.
Dacă aveți pachetul PHPMyAdmin (sau un program similar) instalat, atunci puteți să intrați acolo și să vă conectați introducând contul (numele de utilizator) și parola. Dacă nu aveți așa ceva, atunci trebuie să faceți întreaga administrare a bazelor de date folosind script-uri PHP (și o puteți face).
Crearea unei Tabele
Mai înainte de orice altceva cu baza de date, trebuie să vă creați o tabelă. O tabelă este o secțiune a bazei de date pentru memorarea unor informații structurate (legate). Intr-o tabelă vom defini diferite câmpuri care vor fi folosite în acea tabelă. Din cauza acestei construcții, aproape toate centrele cu baze de date trebuie să fie satisfăcute folosind doar o bază de date.
Crearea unei tabele în PHPMyAdmin este simplă, scrieți numele, selectați numărul de câmpuri și &Quot;apăsați" butonul (click).[21] Ajungeți atunci la un ecran setup în care trebuie să creați câmpurile pentru baza de date. Dacă folosiți un script PHP pentru a crea propria bază de date, iar completa creere și inițializarea vor fi făcute îtr-o singură comandă.
Câmpuri
Există o largă varietate de câmpuri și de atribute disponibile în MySQL și vom discuta doar câteva din ele:
Tipul câmpului Descriere
TINYINT Număr Intreg mic
SMALLINT Număr Intreg mic
MEDIUMINT Număr Intreg
INT Număr Intreg
VARCHAR Text (maximum 256 caractere)
TEXT Text
Acestea sunt doar câteva dintre câmpurile disponibile. O căutare pe Internet ne poate furniza lista cu toate tipurile de câmpuri permise.
Crearea unei Tabele cu PHP
Să creăm o tabelă din PHP este ceva mai dificil decât cu MySQL. Avem de parcurs următorii pași:
CREATE TABLE nume_tabel {
Fields}
Câmpurile sunt definite după cum urmează:
fieldname type(length) extra info,
Ultimul câmp introdus nu poate include nici o virgulă.
Conectarea la o bază de date
Primul lucru care trebuie făcut, mai înainte de a putea face ceva, este conectare la baza de date MySQL. Acesta este un pas foarte important, pentru că, dacă nu suntem conectați, comenzile către baza de date vor eșua.
Practic, pentru a folosi o bază de date trebuie să precizăm numele de utilizator (username), parola (password) și numele bazei de date :
$username="nume_utilizator";
$password="parola";
$database="numele_bazei_de_date";
Desigur, aici s-ar putea discuta dacă nu-i riscant să păstrăm parola într-un fișier. Nu trebuie să vă alarmați, însă, deoarece sursa PHP este prelucrată de server înainte de a fi trimisă navigatorului, astfel încacirc;t este imposibil pentru orice utilizator să vadă scriptul.
Avem nevoie de o comandă care să lanseze conexiunea la baza de date:
mysql_connect(localhost,$username,$password);
Această linie spune PHP-ului să se conecteze la serverul de baze de date MySQL la 'localhost' (localhost se numește serverul pe care rulează PHP-ul. In afara cazului în care gazda Web indică altceva, vom folosi localhost) folosind numele de cont memorat în $username și parola din $password.
Mai înainte de a discuta cum lucrăm cu baza de date, vom vedea încă o comandă:
mysql_close();
Aceasta este o comandă foarte importantă care închide conexiunea cu serverul de baze de date. Scriptul va rula încă, dacă nu includem această comandă, iar prea multe conexiuni MySQL deschise pot cauza probleme serverului web. Este un obicei bun să includem comanda de închidere de mai sus după ce am introdus toate comenzile către baza de date, pentru a menține platforma în bună stare.
Selectarea bazei de date
După ce ne-am conectat la severul de baze de date, trebie să selectăm baza de date pe care vrem s-o folosim. Trebuie să fie o bază de date la care avem acces, cu respectivul nume de utilizator. Se folosește următoarea comandă:
@mysql_select_db($database) or die( "Baza de date nu poate fi selectata");
Aceasta spune PHP-ului să selecteze baza de date specificată în variabila $database (pe care am definit-o mai înainte). Dacă conexiunea nu se poate realiza procesul (execuția script-ului) se oprește afișând textul: “Baza de date nu poate fi selectata”
Această parte suplimentară 'or die' este bună pentru ieșire, chiar dacă nu asigură decât un minim control al erorii.
Execuția comenzilor
După conectarea la server și selecția bazei de date dorite, putem începe execuția comenzilor pe server. Există două moduri de a executa o comandă. Prima revine pur și simplu la introducerea comenzii în PHP. Asta merge atunci când nu apar rezultate ca urmare a execuției comenzii. Cea de a doua variantă este să definim comanda ca o variabilă. Asta va atribui variabilei rezultatele operației.
În această lecție vom folosi prima cale, deoarece nu așteptăm răspuns de la baze de date. Comanda va arăta cam așa:
mysql_query($query);
Folosirea acestei forme a comenzii este utilă pentru că repetăm pur și simplu aceiași comandă iarăși și iarăși fără a fi nevoie să memorăm altele. Tot ce avem de făcut este să schimbăm variabila.
2.9. APACHE
Adesea menționat ca simplu Apache, acesta este un server Web open source dezvoltat de un grup de programatori. Prima versiune de Apache, pe baza NCSA httpd server Web, a fost dezvoltata în 1995.
Dezvoltarea de bază a serverului Apache Web este realizată de un grup de aproximativ 20 de programatori voluntari, denumit Grupul Apache. Cu toate acestea, deoarece codul sursă este disponibil gratuit, oricine poate adapta serverul pentru nevoi specifice, și există o bibliotecă publică mare de Apache add-on-uri. În multe privințe, dezvoltarea Apache este similară cu dezvoltarea sistemului Linuxoperating.
Versiunea originală a Apache a fost scrisa pentru UNIX, dar există acum versiuni care se execută în conformitate cu OS / 2, Windows și alte platforme.
Numele este un tribut adus tribului nativ american Apache Indian, un trib cunoscut pentru rezistenta sa si calitatile de războinici.
O neînțelegere comună este că a fost numit Apache deoarece a fost dezvoltat de la codul de NCSA existent plus diverse patch-uri, de unde și numele unui server neuniform(patchy), sau server Apache.
Apache este cel mai frecvent utilizat server web din lume. Se rulează pe majoritatea sistemelor de operare, inclusiv sisteme de operare bazate pe Unix (cum ar fi Linux, Solaris, Digital UNIX, și AIX) si sisteme Unix-derivate (cum ar fi BSD, FreeBSD și BeOS) Mac OS și Windows.
Apache a fost cel mai popular server HTTP pe internet din 1996. Deși ambele Apache și Microsoft IIS câștigă locuri, cotele de piață sunt relativ constante, la puțin sub 70% și, respectiv, puțin peste 20%.
În luna octombrie a acestui an Apache a trecut o noua stacheta, cu peste 50 de milioane de site-uri înregistrate de firma de sondaj Netcraft, de la 40 de milioane în luna februarie.
Care ii este originea?
La Centrul National pentru aplicatii de procesare rapida (NCSA), Universitatea din Illinois, în 1995. A fost pus împreună din patch-uri pentru serverul vechi NCSA HTTP, de unde și numele: "un server neuniform (patchy)". Mai recent a fost susținut numele a fost ales din respect pentru puterea si rezistenta a națiunii Apache.
Filozofia Apache Software Foundation este, "Instrumentele de publicare on-line ar trebui să fie în mâinile tuturor, și companiile de software ar trebui să facă bani din furnizarea de servicii cu valoare adăugată, cum ar fi module de specialitate și suport … în măsura în care protocoalele World Wide Web rămân "unowned" de o singură companie, web va mentine condiții de concurență echitabile pentru întreprinderile mari și mici. "
Fundația Apache Software-ul este în spatele a zeci de alte proiecte open source, inclusiv recipientul Tomcat Java servlet, mod_perl, iar cadrul de aplicare Struts Java.
Ce il recomanda?
Apache este extrem de configurabil si poate fi extins cu ajutorul modulelor compilate pentru a oferi suport pentru mai multe limbi diferite de programare server side, scheme de autentificare și alte caracteristici. Noi module pot fi scrise cu ajutorul modulului API Apache.
Ce il face deosebit?
Alte servere web au realizat repere mai bune, dar echipa Apache a spus, "Suntem de părere că este mai bine să aibă un server gratuit suficient de rapid decât un server extrem de rapid care costa mii de dolari. Apache este rulat pe site-uri care primesc milioane de hit-uri pe zi, și au experimentat dificultăți de performanță. "
Apache are reputația de a fi mai sigur decât IIS, și fiind fixat mai rapid si mai eficient atunci când lucrurile merg prost.
Cât de greu se sttruneste?
Este mai usor de administrat, cu un număr de interfețe grafice disponibile acum.
Un fundal in Unix / Linux sistem / Solaris admin, și Perl sau programarea PHP este de ajutor.
În ce cazuri este folosit?
Apache a fost preluat de la bloggeri pentru a contracara ofensiva societăților transnaționale concurente Apache care ar putea promova cu ușurință cele mai scumpe echipamente.
Ce sisteme de nu ruleaaza?
Aproximativ 30 diferite sisteme de operare, inclusiv cele mai multe variante de Unix, Linux și BSD, Windows, Mac OSX și Novell Netware. Apache este la pachet cu distribuții Linux și sute de pachete de proprietate, inclusiv Oracle RDBMS, servere de aplicații WebSphere IBM si Kylix și Delphi apartamente de dezvoltare Borland lui.
Ce urmeaza ?
Versiuni majore sunt rare, deoarece dezvoltarea nu este determinată de venituri obtinute de licență. Bug-urile sunt mult mai frecvente. Fundația Apache Software primeste aproximativ 40 de contribuții pe zi de la dezvoltatori și utilizatori.
Un vierme care poate compromite sistemele care rulează serverul Web Apache în sistemul de operare FreeBSD este crawling Internet, dar răspândirea și impactul acestuia sunt limitate, spun expertii.
Viermele profită de o gaura de securitate cunoscut pe servere Web Apache prin scanarea Internet și instalarea unei aplicații backdoor când găsește un server Web vulnerabil. Aceasta backdoor permite atacatorului să controleze de la distanță sistemul și să-l utilizeze în atacuri asupra altor servere Web, în conformitate cu software-ul anti-virus furnizor F-Secure.
Serverul open source Apache este software-ul de server web cel mai frecvent utilizate, care rulează pe 63% din site-uri Web, potrivit unui studiu realizat de analistul britanic Netcraft.
Cu toate acestea, posibilitatile viermelui, numit scalper de F-Secure, este limitat. "Este afectat doar un mic fragment din utilizatorii Apache", a declarat Mikko Hypponen, director de cercetare la F-Secure, deoarece afectează numai Apache pe open source sistemul de operare FreeBSD.
Mike Prettejohn, director la Netcraft, a fost de acord dar a spus, "FreeBSD este a treia cea mai populara platforma pentru Apache după Linux și Solaris."
Hypponen nu vede viermele ca un pericol mare. "Versiunea curentă este risc scăzut. Se raspandeste, putem vedea hit-uri generate de vierme, dar nu este larg răspândită. Ar putea infecta o parte măsurabilă a serverului Web FreeBSD, dar că nu sa întâmplat încă", a spus el.
Variante ale viermelui ataca Apache pe alte platforme pot suprafață în curând, a avertizat Hypponen. "Ar fi ușor de a schimba acest vierme pentru a lucra la Linux sau orice alt sistem. Dar apoi, pe partea pozitivă, aș crede că administratorii de servere Apache Web sunt sârguincioși în patching, astfel încât răspândirea nu ar fi la fel de mare ca Code Red , care a infectat aproximativ 200.000 de site-uri web în două zile aproximativ un an în urmă ", a spus Hypponen.
Administratorii Apache au răspuns rapid, cu mai bine de șase milioane de site-uri web care rulează pe Apache deja actualizat la Apache 1.3.26, o versiune a software-ul invulnerabil la acest atac. Cu toate acestea, aproximativ 14 milioane de site-uri potențial vulnerabile rămân, a declarat Netcraft într-un comentariu lunar.
Defectul in serverul Web Apache, care este exploatat de vierme afectează toate versiunile de Apache 1.2, versiunile de Apache 1.3 până la 1.3.24 și versiuni de Apache 2 pana la 2.0.36, potrivit unui comunicat de Apache Software Foundation a lansat pe 20 luna iunie. Noul Apache 1.3.26 și Apache 2.0.39 rezolva problema, a declarat Fundatia.
Apache HTTP Server este un web server pentru sisteme ca și Unix, Microsoft Windows, Novell NetWare și alte sisteme de operare . Apache este remarcabil pentru ca joaca un rol cheie în creșterea inițială a Internetului din lumea întreagă. Când a fost pentru prima data eliberat, Apache a fost singura sursa alternativa viabila la Netscape Communications Corporation web server ( în mod curent cunoscut ca și Sun Java System Web Server ). De atunci a evoluat la rivalul Unix – servere web în termeni de funcționalitate și performanta. Din Aprilie 1996 Apache a fost cel mai popular server HTTP din întreaga lume a internetului, servind ca platforma de referință împotriva căreia alte server web sunt intenționate și apreciate; ca și în Ianuarie 2007, Apache a servit la 60% din toate website-urile. Apache continua sa fie cel mai popular server web care este utilizat.
Apache este dezvoltat și menținut de o comunitate deschisa de dezvoltatori de aplicații sub auspiciile Fundației Apache Software . Eliberata sub licența Apache, serverul Apache HTTP este un program gratis .
Prima versiune a web serverului Apache a fost creată de Robert McCool, care a fost serios implicat în Centru Național pentru Supercomputing Applications web server, cunoscut simplu ca și NCSA HTTPd . Când Rob a părăsit NCSA la mijlocul anului 1994 a lăsat o varietate de modele pentru a îmbunătăți circulația prin email. Rob McCool nu a fost singur în eforturile sale. Mulți alți dezvoltatori de aplicații au ajutat la formarea originalului "Apache Group": Brian Behlendorf, Roy T. Fielding, Rob Hartill, David Robinson, Cliff Skolnick, Randy Terbush, Robert S. Thau, Andrew Wilson, Eric Hagberg, Frank Peters, și Nicolas Pioch. FAQ afirma pe site-ul oficial al proiectului: “Numele Apache a fost ales din respect pentru Tribul nativ indian American al apașilor“, bine cunoscut pentru îndemânările superioare în strategia lor și inepuizabila anduranță. Cea mai răspândită interpretare este aceea ca numele provine din faptul ca atunci când a apărut la începutul anului 1995, web serverul a constat intr-un set de patch-uri la codul de baza al NCSA HTTPd 1.3 și de aceea a fost "a patchy" server .Aceasta a fost explicația inițială a website-ului acestui proiect.
Versiunea 2 a serverului Apache a fost o rescriere substanțială din codul Apache 1.x, cu o mare concentrare asupra ulterioarei modulații și dezvoltarea unei rețele portabile ,Apache Portable Runtime. Partea centrala din Apache 2 x are mai multe intensificări majore fata de Apache 1.x . Acestea include filetarea UNIX, suport mai bun pentru platforme non-UNIX , (cum ar fi Microsoft Windows), un nou Apache API, și suport IPv6 . Prima eliberare a Apache 2 a fost în Martie 2000 cu prima disponibilitate generala în Mai 2002.
Capitolul 3. Prezentarea si implementarea aplicației
3.1 Baza de date utilizată
Baza de date folosită este MySQL. Pentru o mai ușoară manipulare a bazei de date, utilitarul MySQL face o treabă bună, putând gestiona rapid și eficient datele, tabelele și întreaga bază de date.[10] Pentru conectarea la baze de date mysql, un fișier .php ce conține funcțile necesare conectării și care se numește config.php a fost folosit.
În cele ce urmează o sa va prezint câteva dintre tabelele utilizate obesrvându-se si proprietațile câmpurilor:
Tabelul „User” – useri care se conectaează la admin
Tabelul „Produse” – produsele care sunt introduse din admin
Tabelul “Orders” – comenzile care se fac de pe site
Tabelul “Poduct Images” – imaginile de la fiecare produs
Tabelul “Category” – categoriile de produse
Tabelul “Ratings” – rainting-urile puse de vizitatori
Tabelul “Templates” – template-urile pentru structura site-ului
Tabelul “Formmails” – mail-urile care se trimit de pe formularul de contact
3.2 Prezentarea aplicației
Aplicația este alactuită din 2 module
Modulul de administrare – în acest modul se fac toate setările aplicație, se introduc produsele, se gestionează paginile, se vizualizează comenzile, se introduce continutul.
Interfața utilizator în această secțiune se vizualizează produsele, continutul, se efectuează comanda, se poate contacta propritarul.
În cele ce urmează o sa prezint cele 2 module dupa cum urmează:
Modulul de administrare
Se acesează în browserul dumneavoastră urmatoarea adresa: http://catalog-licenta.co.nf/admin
La introducerea aceste adrese va apare modulul de logare:
Modulul de logare la sectiunea admin
După introducerea user-ului si parolei se deschide pagina principală a modulului admin:
Pagina principală de admin
În partea dreaptă se află structura navigațională a site-ului, de unde se editează si adaugă pagini noi la meniul de pe site.
În partea stângă se află lista cu module active din site: modulul de produse, modulul de comenzii, modulul de formulare de contact si cel de șabloane.
Pentru a edita o pagină din structura navigațională se selectează pagina dorită, iar apoi se selectează Editează / vizualizează pagina, iar pe ecran o sa apară modulul de editare:
Pagina de administare a unei pagini din meniu
Modulul de Șabloane este acela unde se editează html-ul si css-ul, se accesează selectând modulul “Șabloane” din meniul principal:
Modulul Șabloane
Modulul Formmail este acela în care se contorizează si vizualizează mail-urile trimise de catre vizitatori propritarului site-ului:
Interfața utilizator
În această pagină se prezintă site-ul. De aici se pot accesa celelalte meniuri, dând click pe fiecare dintre acestea.
În meniul din stânga sunt afișate categoriile de laptopuri disponibile.
În meniul „Tractoare” sunt afișate toate tractoarele disponible pe site, alături de titlu, descriere si prețul acestora:
Pagina de oferte afișeaza acele tractoare care sut setate din admin ca fiind produse la ofertă:
Pagina “Cum cumpar”, este o pagină cu continut, in care se explică utilizatorului cum se cumpara pe acest site:
Pagina de contact, in acestă pagină există un form cu ajutorul caruia utilizatorul poate lua legătura cu proprietarul:
Cap 4 CONCLUZII
O aplicație online (sau aplicație web) este accesibilă printr-un browser pe internet sau într-o rețea locală (un intranet). Punctul forte al unei aplicații web este ca poate fi folosită de un număr infinit de utilizatori, fara ca acestia sa trebuiască sa o instaleze și configureze pe propriul calculator. Un exemplu de aplicație online este webmailul sau de ce nu, aplicația implementată de mine ca lucrare de finalizare a studiilor.
Prin intermediul unei aplicații online se pot stoca, gestiona, modifica, trimite, primi și procesa informația folosind conectivitatea internerului, folosind mai mulți utilizatori, mai multe stații de lucru și mai multe procese în același timp. Deoarecere aplicația este bazată pe internet nu există incompatibilitați hardware, viruși, aplicația si informația fiind stocate pe un server securizat.
ANEXE
ANEXA I config.php
<?php
// PATHS
$_CONFIG["site_root_path"] = "/";
$_CONFIG["site_root_dir"] = dirname(__FILE__) . "/";
$_CONFIG["host"] = "http://catalogonline.weblogic.ro";
$_CONFIG["site_root_url"]=$_CONFIG["host"].$_CONFIG["site_root_path];
$_CONFIG["include_dir"] = "include/";
$_CONFIG["modules_dir"] = "modules/";
$_CONFIG["user_dir"] = "user_files/";
$_CONFIG["lang_dir"] = "lang/";
$_CONFIG["error_pages_dir"] = "error_pages/";
$_CONFIG["temp_dir"] = "tmp/";
// DATABASE CONNECTION
$_CONFIG["db_host"] = "localhost";
$_CONFIG["db_port"] = "3306";
$_CONFIG["db_name"] = "catalogo_main";
$_CONFIG["db_user"] = "catalogo_user";
$_CONFIG["db_password"] = "********";
// DEBUG
$_CONFIG["debug"] = true;
$_CONFIG["log_dir"] = dirname(__FILE__) . "/logs/";
$_CONFIG["debug_log_file"] = "debug.log";
$_CONFIG["log_file"] = "site.log";
// LANGUAGE
$_CONFIG["lang"] = "ro";
$_CONFIG["lang_site"] = "ro";
$_CONFIG["display_language_prefix_when_single_language"] = false;
// PRIVATE VARIABLES PREFIX
$_CONFIG["private_prefix"] = "_wm_";
$_CONFIG["admin_skin"] = "webmotor";
$_CONFIG["admin_skin"] = "webmotor";
$_CONFIG["modules_order"] = "productcatalog,imagegallery,afis,filemanager,users,templates,cache,edit,formmail,imglib,languages,menu,navigation,records,orders";
$_CONFIG["top_menu_limit"] = 8;
require_once( $_CONFIG["site_root_dir"] . "prepend.php" ); // DO NOT DELETE THIS LINE
?>
ANEXA II upload_aid.php – functia de resize a pozelor
<?php
require_once( api_get_include_dir() . "file_aid.php" );
class FileUploadException extends Exception
{
public function __construct( $message, $code = 0 )
{
parent::__construct( $message, $code );
}
public function __toString()
{
return __CLASS__ . ": [{$this->code}]: {$this->message} \n";
}
}
class FileUpload
{
public $files_dir; // must end with a "/"
public $form_varname;
public $max_filesize = 0; // in bytes
public $required = false; // throw on no-file ?
public $allowed_extensions = array(); // dot is included in extension
public $image_files_extensions = array( ".bmp", ".png", ".gif", ".jpg", ".jpeg", ".ico" );
public $video_files_extensions = array( ".avi", ".mov", ".mpg", ".mpeg", ".rv", ".asx", ".wmv" );
public $office_files_extensions = array( ".txt", ".doc", ".dot", ".xls", ".xlt", ".ppt", ".pot", ".rtf", ".mdb" );
public $audio_files_extension = array( ".wav", ".mp3", ".mid", ".mod", ".wma", ".ra", ".ram", ".ogg" );
public $file_rename_method; // options:
// "same_as_original": if not available, will overwrite
// "increment_counter": e.g. if uploaded 'file.txt' is not available, rename to 'file (1).txt'
// "random": but keeps extension. e.g.: 98237ad398d.jpg
// "custom": use filename from $custom_filename variable
public $custom_filename;
private $original_filename;
private $original_filesize;
private $uploaded_filename;
public function __construct( $files_dir, $form_varname )
{
$this->files_dir = $files_dir;
$this->form_varname = $form_varname;
$this->file_rename_method = "same_as_original";
}
public function process()
{
if( isset( $_FILES[$this->form_varname] ) && $_FILES[$this->form_varname]["name"] != "" )
{
$this->original_filename = $_FILES[$this->form_varname]["name"];
$this->original_filesize = $_FILES[$this->form_varname]["size"];
$tmp_filepath = $_FILES[$this->form_varname]["tmp_name"];
$ext = get_extension( $this->original_filename );
if( count( $this->allowed_extensions ) > 0 )
{
// check for extension validity
if( !in_array( strtolower( $ext ), $this->allowed_extensions ) )
throw new FileUploadException( /*!*/"Uploaded file type is not allowed" );
}
if( $this->max_filesize > 0 )
{
// check for filesize validity
if( $this->original_filesize > $this->max_filesize )
throw new FileUploadExceptioin( /*!*/"Uploaded file is too large" );
}
switch( $this->file_rename_method )
{
case "same_as_original":
$new_filename = $this->original_filename;
break;
case "increment_counter":
$new_filename = $this->generate_filename_incremental( $this->files_dir, $this->original_filename );
break;
case "random":
$new_filename = $this->generate_filename_random( $this->original_filename );
break;
case "custom":
$new_filename = $this->custom_filename;
break;
}
$dest_filepath = $this->files_dir . $new_filename;
if( !move_uploaded_file( $tmp_filepath, $dest_filepath ) )
{
throw new FileUploadException( /*!*/"Error while moving uploaded file" );
}
$this->uploaded_filename = $new_filename;
return true;
}
else
{
if( $this->required )
throw new FileUploadException( /*!*/"No input file" );
return false;
}
}
public function get_uploaded_filename() // output data
{
return $this->uploaded_filename;
}
public function get_uploaded_filepath() // output data
{
return $this->files_dir . $this->uploaded_filename;
}
private function generate_filename_random( $original_filename )
{
$ext = get_extension( $original_filename );
return md5( time() . $original_filename ) . $ext;
}
private function generate_filename_incremental( $files_dir, $original_filename )
{
return make_unique_filename( $original_filename, $files_dir );
}
}
?>
ANEXA III main.css – css-ul folosit pentru creearea meniului
.menu{float:right;}
.menu ul{
margin:0;
padding:0;
list-style:none;
}
.menu ul li{float:left;}
.menu ul li a{
text-decoration:none;
font-weight:bold;
color:#fff;
padding:0 15px;
height:30px;
font-size:20px;
display:block;
line-height:30px;
}
.menu ul li b{
font-weight:bold;
color:#48B3EA;
background-color:#fff;
padding:0 15px;
height:30px;
font-size:20px;
display:block;
line-height:30px;
}
.menu ul li a:hover{
font-weight:bold;
color:#48B3EA;
background-color:#fff;
padding:0 15px;
height:30px;
font-size:20px;
display:block;
line-height:30px;
}
Bibliografie
[1] „Proiectarea interfețelor utilizator”, Gianina Gabor
[2] „Baze de date relaționale: Concepte avansate”, Cornelia Győrődi, Robert Győrődi, Editura Treira, 2000
[3] „HTML, CSS si XML prin EXEMPLE” , Teodoru Gugoiu, Editura Teora 2005
[4] „PHP si MySQL pentru site-uri web dinamice”, Larry Ullman, Editura Teora 2006
[5] „Introducere in Ajax” – Traian Anghel, Editura Polirom 2006
[6] “Proiectarea siturilor web. Design și funcționalitate. (Ediția a II-a)”, Sabin Buraga, Editura Polirom
[7] “Situri web la cheie. Soluții profesionale de implementare.”, Sabin Buraga, Editura Polirom, 2004
[8] “Totul despre HTML 4”, Rick Darnel, Editura Teora
[9] “HTML pentru World Wide Web – Ghid de învățare rapidă prin imagini.”, Elizabeth Castro, Editura Corint, 2003
[10] “Sisteme de gestiune a bazelor de date.”, M. Velicanu, C. Bodea, I. Lungu, C. Ioniță, G. Bădescu, Editura Petrion.
[11] “Optimizarea paginilor WEB “, Acu, Ioan Calin , Polirom, Iasi 2003
[12] “Pagini Web Dinamice”, Anghel Traian , Scorpion , Galati , 2002.
[13] “Dezvoltarea aplicatiilor WEB folosind XHTML , PHP, MYSQL”, Anghel Traian, Polirom, Iasi, 2005.
[14] “Programarea în WEB”, Kris Jamsa, Suleiman Lalani, Steve Weakley, Editura ALL, București, 1997.
[15] “PHP4”, Bill McCarty, Editura Teora, București, 2003.
[16] “JavaScript”, Richard Wagner, R. Allen Wyke, Editura Teora, București, 2001.
[17] “Learning JQuery 1.3”, Jonathan Chaffer, Karl Swedberg, Editura Packt, 2009.
[18] http://ro.wikipedia.org/
[19] http://www.php.net/
[20] http://www.programare.org/
[21] http://www.w3schools.com/
[22] http://www.jquery.com/
[23] www.eurostats.com
[24] www.internetworldstats.com
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: Implementarea Unui Magazin Online Folosind Php Si Mysql (ID: 149890)
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.
