1.1. Tehnologia în zilele noastre În secolul vitezei, unde totul avansează într-un ritm alert, schimbările din jurul nostru sunt mai mult decât… [310735]
Capitolul 1.
INTRODUCERE
1.1. [anonimizat]-[anonimizat]. [anonimizat]. Nici o altă realizare tehnică nu a înregistrat progrese așa de rapide după inventare. [anonimizat] ,[anonimizat], Steve Jobs o [anonimizat] [ Wikipedia]. [anonimizat]: [anonimizat], [anonimizat], etc.
Comparația primului calculator (ENIAC) cu cele de ultima generație confirmă si intareste afirmația făcută. Cu o [anonimizat], 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 [anonimizat]. În aceste condiț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 revoluției informatice în țara noastră .Ne referim aici profesorii Tudor Tănăsescu si Mihail Drăgănescu si mulți alții. În 1953, a [anonimizat]. 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.
Datele Eurostat indica faptul ca populația României a [anonimizat].
Astfel, 61 % [anonimizat] – Muntenia nu au folosit niciodată un calculator[www.eurostas.com]. [anonimizat]- Est (60%), procentajul cel mai mica fiind in regiunile Nord Vest(54%) si Vest (48%) .
1.2. 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 ([anonimizat] ș.a.m.d.), [anonimizat] o [anonimizat]-[anonimizat].
[anonimizat] (adică adresa IP), de ex. 156.285.476.355. [anonimizat] s-[anonimizat], [anonimizat], spre exemplu 'www.google.com'. [anonimizat], unice în lume și garantate pentru posesorul fiecăreia.
Subiectul unui web site poate fi: [anonimizat], bancă, o universitate virtuală, o bibliotecă, o [anonimizat], un magazin virtual ,o [anonimizat].[Proiectarea interfațelor utilizator,G.Gabor, pg. 20]
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 e.t.c. 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 pașii următori:
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 apariția 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)[Situri web la cheie, Sabin Buraga, pg 47].
Protocolul împreună cu resursa alcătuiesc un Uniform Resource Locator adică un URL. Tipul protocolului este cea mai importanta parte a unui URL. Fără acesta browser-ul nu ar ști cum să folosească resursa respectivă.
Proiectarea web ca disciplină științifică este influențată de dezvoltarea dar si evoluția 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 amplificării software-ului.
Este necesară alcătuirea unui nou ciclu de viața a aplicațiilor web, prezentarea conceptelor, tehnicilor, metodelor si utilitarelor pentru evoluția si creșterea 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 optarea principiilor proiectării web.(Baze de date relațional:concepte avansate, C.Gyororodi,R.Gyororody, pg. 63)
La nivel de bază, 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ă. Evoluția aplicațiilor web este consecința unei proceduri complexe si este important ca proiectarea care susține aceasta dezvoltare sa fie bine făcuta. Acest lucru va da voie atât studenților cat si specialiștilor din domeniu, 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 abordări sistematice si cuantificabile, asemănător cu proiectarea aplicațiilor software , pentru realizarea Daca urmărim dezvoltarea si complexitatea distingem diferite feluri de aplicații web; aplicațiile web pot fi îndreptate spre documente , spre aplicații 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 menționate.(Proiectarea interfațelor utilizator, G.Gabor, pg.40)
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 efectuării tranzacțiilor între useri si de obicei depoziteaza datele într-o baza de date. Factorul tipic al aplicațiilor web, in comparație 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 același timp ca platforma pentru utilizator.
Din perspectiva proiectării soft-ului, dezvoltarea aplicațiilor este un nou domeniu al acestora.
Contrar anumitor asemănări cu aplicațiile 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;
– evoluția sistematică, treptata, a aplicațiilor web;
– cat si o planificare atenta a acestor etape;
-auditul pe întreaga perioada a procesului de dezvoltare.
Categorii de aplicații web:
Figura 1.2: Categorii de aplicații web
Aplicațiile web se deosebesc de aplicațiile tradiționale (non-web), însușirile acestora fiind prezentate ulterior. Ele sunt intr-un fel trasaturile de care aplicațiile tradiționale nu are nevoie (navigarea non-liniară) dar și trasaturile care prezintă o importanță trăsătura a procesului (frecvența actualizărilor)
Si daca o trăsătura este prezentă și aceasta depinde de tipul de aplicație web, dezvoltarea aplicațiilor web tranzacționale ,acestea necesita o atenție sporita fata de actualizarea si consistența 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 proiectării 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" văzută ca o dimensiune atotcuprinzătoare.
Figura 1.3 Categoriile de trasaturi si evolutia acestora
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 calculatoare și componente, fiind un echipament electronic de nelipsit în ziua de azi, domeniul tehnologiei informației dezvoltându-se tot mai mult în Romania în 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 produselor disponibile, fiecare vizitator poate vizualiza produsul unde sunt prezentate caracteristicile 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ă învăț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 si CSS. Partea de programare a site-ului a fost asigurată și implementată cu Prestashop. 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 si PHP 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 PHP si CSS care oferă o mulțime de plugin-uri.
Capitolul 2.
PREZENTAREA TEHNOLOGIILOR UTILIZATE IN LUCRARE
2.1. Internet
Creșterea numărului de utilizatori de PC duce implicit si la creșterea 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, reprezentând 6,6 milioane de utilizatori de internet din Romania, îl găsim la oraș.
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.
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 țări din Europa ca număr de utilizatori de Internet
Numărul cetățenilor români care folosesc Internetul a cunoscut o dezvoltare in 2012, fată de 2010. Rezultatele studiului realizat de GFK Romania arata ca incidenta in rândul persoanelor cu vârsta de peste 15 ani a fost de 48,7% in 2012, in creștere cu 8,4% fata de anul 2010.
Si mediul rural înregistrează o dinamica deosebita, cu o creștere mai mare in 2012 fată de 2010 – cu aproximativ 11% mai mulți cetățeni au apelat la acest canal de comunicare anul trecut, atingând 33% din populația 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)[www.internetworldstats.com].
Inițierea 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 declanșat o campanie în Statele Unite ale Americii, astfel încât președintele Eisenhower înființează o agenție specială subordonată Pentagonului: Advanced Research Projects Agency (www.darpa.mil). Această agenție a Ministerului de Apărare (Department of Defense,) este condusă de oameni de știință, organizați 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 datează din octombrie 1972, când 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 utilizării acestui cuvânt î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 definește 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 înseamnă literal "pânza de păianjen") ș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țelelor din lume (universități, guverne, întreprinderi, furnizori de servicii militare …), se va obține o rețea gigant, care acoperă o mare parte din planeta.
"Internet" = "Inter-rețele"
Internet este interconectarea tuturor rețelelor de pe planetă.
Primele legături internet au fost făcute prin interconectarea calculatoarelor de la Universitățile 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, având ca scop sa ofere un sistem de comunicații sigur în cazul unor situații de atac armat . Pe măsură ce rețeaua s-a extins , oamenii de știința din multe alte domenii au început să o folosească.
Denumirile Internet si internet au ca origine împreunarea artificială si parțială a două cuvinte din vocabularul de specialitate american: interconnected = interconectat si network = rețea. Substantivul propriu „Internet” (scris cu majusculă) desemnează o rețea 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ă rețele speciale ce interconectează două sau mai multe rețele autonome aflate la mare depărtare unele fată de altele.
În 1986, Fundația Națională de Știință ( 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ă știți 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 videoconferința, 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 consecința 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 pot inventa și protocoale utilizate pentru a comunica (atâta timp cât cealaltă parte include același protocol).
Acest lucru este mult mai simplu decât pare: se poate face un program prin interacțiunea cu un alt program de internet în câteva linii de cod.
Viitorul internet
Niciodată inventatorii internetului nu ar fi putut imagina toate aplicațiile care există astăzi .
Unele proiecte conectează toate dispozitivele între ele prin internet: Echipament hi-fi, frigider, contor electric, încălzire centrala, camera …
Aceasta este protocolul IP (Internet Protocol), care este folosit pe Internet care permite mașinilor 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 niște limite:
dificultăți în a atribui adrese IP,
dificultăți în asigurarea viteze de transmisie (esențială pentru video, de exemplu)
dificultatea 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 aplicații. Rețeaua se numește Internet2.
Dar IPv6 nu este compatibil cu IPv4.
Într-o zi va trebui, prin urmare,sa se facă 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 știința 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 întreaga 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.
Fig.2.2. 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 ("http"). 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 măsura 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 folosească fără a plăti o taxă sau sa ceara permisiunea.
El a explicat: "Dacă tehnologia ar fi rămas 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 alții 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 întreaga 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ă elaborării 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 răspândire 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ătești pentru a te conecta la internet cu o anumită calitate a serviciilor, și altul plătește pentru o conexiune 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ă vorbească aceeaș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 alții 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 abordări 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. CSS
Foile de stiluri HTML (Cascading Style Sheets) sunt o inovație în dezvoltarea World Wide Web, chiar dacă gruparea elementelor de formatare a documentelor a apărut ceva mai demult. [HTML,CSS și XML prin exemple,T.Gugoiu, pg.88]Aplicarea stilurilor se foloseste foarte mult la partea de design, evitând utilizarea de fișiere grafice mari care încetinesc încărcărea paginilor și manipularea lor.
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
Modul de aranjare a documentului și colecția de atribute ale textului care pot fi aplicate selectiv sau doar unei părți dintr-un document, formează un stil. Aceste particularități sunt : fonturile,grosimea sau mărimea fontului, paragrafele sau orice poate evidenția aspectul documentului. Grupate în stiluri, ele se pot aplica la diferite parți din document
Avantajele folosirii acestor stiluri in crearea de pagini web:
Control crescut asupra aspectului și poziționării textului în pagină.
Multitudinea de deschideri și închideri ale etichetelor care descriu elementele individuale ale textului, crează o anume dezordine care se poate reduce cu aceste stiluri.
Simplificarea modificării diferitelor elemente din pagină .
Dacă se dorește ca titlurile 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, trebue definite aceste stiluri de formatare pentru fiecare titlu în parte.[Pagini Web Dinamice, A.Traian, pg.69] Folosind stilurile nu este nevoie decât să fie creată o singură definiție de stil care să conțină atributele de formatare dorite și care să se aplice la fiecare titlu.
În plus, folosirea stilurilor reduce considerabil efortul depus atunci când se fac modificări ale aspectului și aranjării elementelor din pagini. Nu se mai parcurge fiecare document, nu se mai fac modificări la fiecare element, ci doar se operează modificări asupra foii de stiluri care controlează aceste elemente.
Categoriile foilor de stiluri
Stilurile HTML pot fi folosite într-o pagină Web în trei variante:
Încapsulate (embedded): sunt incluse în antetul documentulului asupra căruia se aplică, și anume în secțiunea <HEAD>,rămânând invizibile pentru cel care vizitează pagina.
Legate (linked): sunt definite în fișiere separate de documentul HTMLCu ajutorul etichetei <LINK> se face legătura intre document și foaia de stiluri <LINK>. Cu ajutorul acestui tip de stiluri se poate utiliza aceiași foaie de stil pentru documente diferite, precum și folosirea mai multor foi de stiluri pentru același document.
In-line: stilurile sunt introduse ca atribute în cadrul etichetelor HTML din document, adică vor influența doar elementul asupra căruia sunt aplicate.Deoarece contrazice principiul general al stilurilor, de a simplifica și de a face mai lizibil codul documentului HTML, este mai puțin folosită.
Funcția stilurilor este, în general, aceeași, indiferent de modul cum sunt ele aplicate, ele putând fi aplicate combinat in același document. Legăturile dintre diferitele tipuri de stiluri generează efectul de cascadă care dă numele acestei metode.
Stilurile încapsulate
Stilulrile încapsulate sunt folosite atunci când se dorește încorporarea 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 începutul documentului.
Sintaxă
Sintaxa CSS pentru foile de stil încapsulate este exact aceeași 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, oricând 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 multiple, ar trebui să se lege de o foaie de stil externa in locul folosirii unei foaie de stil încapsulate.
Stilurile legate – foile de stiluri externe
Folosirea lor are doua avantaje majore:
– 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.
– același document poate folosi foi de stiluri diferite, lăsând vizitatorului posibilitatea de a alege 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 condiții.
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 îl 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 întreținut. Singura dată când este recomandata folosirea este atunci când se dorește verificarea unui stil de repede in timpul dezvoltării. După ce se constata ca este corespunzător pentru acel element, se va muta in foaia de stil externă.
2.4. WHM/CPANEL
cPanel si WHM (WebHost Manager) combină o serie de facilitati, punându-vă astfel la dispoziție toate uneltele de care este nevoie in administrarea mai multor conturi de găzduire web (in cazul resellerilor).
WHM
Prin WHM aveti posibilitatea de a crea atât pachete de găzduire predefinite pentru proprietarii de domenii, cât si pachete personalizate (fiecare cont creat având la dispoziție panoul de administrare cPanel si toate facilitatile incluse in acesta). Accesul la WHM vă pune la indemană toate instrumentele necesare unei bune administrări ale conturilor de găzduire web. WHM/cPanel este la ora actuală lider de piața, recunoscută fiind drept unealta cea mai eficienta pe piața de web hosting.
Iată ce puteți face cu WHM: creare cont nou, updatare cont găzduire, creare pachete găzduire specială, configurare baze de date, configurare backup-uri, instalare certificate SSL, configurare conturi pentru reselleri, administrare conturi si altele.
cPanel
CPanel este un panou de control care vă permite să vă administrați planul de găzduire prin intermediul unei interfete web. Aveti posibilitatea de a administra mai multe aspecte, precum: adrese de e-mail, fisiere, backup-uri, conturi FTP, scripturi CGI, baze de date, domenii, subdomenii, statistici web și nu numai.
Serverul unde este găzduit site www.abes.ro are la bazaă ca sistem de operare Linux, WHM/cPanel asigura disponibilitatea 24/24 online a site-ului www.abes.ro.
Fig. 2.4.1. Panou de administrare WHM
Fig. 2.4.2. Panou de administrare spatiu de stocare
2.5. PHP
PHP este un limbaj de programare conceput datorita Internetului, oferind dinamică unei pagini de web. Este unul din cele mai importante limbaje de programare web open-source și server-side. Noțiunea 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 dezvoltare a limbajului server-side Perl în 1994, și apoi de o serie de CGI-uri compilate de către R. Lerdorf, pentru a crea un curriculum vitae și pentru a urmări traficul si numărul de vizitatori ai unui site web . Ulterior, aceasta versiune s-a dezvoltat în PHP/FI 2.0.
Proiectul open-source a început să crească, după ce Zeev Suraski și Andi Gutmans, de la Technion au lansat o versiunea nouă PHP 3.0. în anul 1998, rămanând apoi la denumirea de astăzi, deoarece până atunci PHP era cunoscut ca Personal Home Page Tools. Suraski și Gutmans au mai rescris odată aceasta baza a limbajului, producând astfel Zend Engine în 1999.
Evoluția continuă cu primăvara anului 2000 când a fost lansat PHP 4.0, având la bază Zend Engine 1.0, apoi în 13 iulie 2004 a fost lansată versiunea PHP 5, cu Zend Engine II, cu 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 făcut de Netcraft în aprilie 2002, clasându-se pe locul 9 din cele 37 milioane de domenii cercetate. Pe site-ul oficial se poate vedea un grafic al utilizării PHP-ului. Renumele acestui limbaj de programare se justifica prin următoarele caracteristici:
Familiaritatea: funcția limbajului este foarte ușoară fiind combinație a funcțiilor limbajelor Pearl sau C.
Simplitatea: funcția limbajului este destul de liberă. Deoarece codul PHP este inclus într-un document executându-se între marcajele speciale; nu este nevoie de biblioteci sau de directive de compilare.
Eficiența: într-un mediu multiuser, așa cum este Web-ul, resursele sunt foarte importante, PHP-ul folosind mecanisme de alocare a resurselor.
Securitatea: PHP-ul oferă programatorului un set flexibil și eficient de măsuri de siguranță;
Flexibilitatea: 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: Fiind dezvoltat sub licență open-source, aceasta este probabil cea mai importantă caracteristică a PHP-ului , ceea ce a condus la adaptarea rapidă PHP-ului la nevoile Web-ului, eficientizarea și securizarea codului.
Utilizare
Funcția limbajului PHP este o combinație a funcțiilor limbajelor Perl, C și Java- de la versiunea 5 în sus, fiind un limbaj simplu de utilizat. Poate fi folosit pentru a dezvolta aplicații de sine stătătoare, de exemplu în combinație cu PHP-GTK sau poate fi folosit ca Perl sau Python în linia de comandă. 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 diverse sisteme de operare, de la UNIX, Linux, Windows, sau Mac OS X și poate interacționa cu majoritatea servereler web. Codul 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. Însa 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.[PHP și MySQL, pentru site-uri web dinamice,L.Ullman, pg. 123]
Nu exista compilare în PHP, codul rămâne sub forma de sursa pe server fiind interpretat la fiecare cerere. [PHP4, Bill McCarty,pg,112] 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. [www.php.net]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.6. 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ă puneți în aplicare o bază de date cu tabele, coloane și indici.
Garantează reverenț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 găsita de două ori într-un singur tabel. Cu o cheie, puteți găsi mai ușor un rând.
Cheia Externa: O cheie externă este PIN-ul de legătură între două tabele.
Cheie compusa: 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 obligație 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 folosește 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: prezintă 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 următoarele limbi, PHP este cel mai popular, din cauza capacităților sale de dezvoltare de aplicații 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 apelează 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 funcționalitatea MySQL împreună cu PHP.
PHP a început ca un mic proiect open source care a evoluat odată ce tot mai mulți oameni au aflat cât de utilă a fost.
Rasmus Lerdorf a lansat 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ă inițializat, 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 aplicație.
PHP este iertător: 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 fișiere.
PHP poate administra forme, de exemplu, aduna date din fișiere, salvează 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. [Baze de date relaționale,C.Gyorodi, R.Gyorodi, pg. 124]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.
Trebuie spus că modul de instalare a unei baze de date MySQL diferă de la o platformă la alta.Informațiile cerute pentru conectarea la baza de date sunt: numele bazei de date, nume utilizator și parola.
Pentru pachetul PHPMyAdmin (sau un program similar) instalat, se face conectarea introducând numele de utilizator și parola. Dacă nu exista această cale, atunci se face întreaga administrare a bazelor de date folosind script-uri PHP.
Cum se crează Tabela?
O tabelă este o secțiune din baza de date utilizată la memorarea unor informații structurate (legate). In tabelă se definesc diferite câmpuri care vor fi folosite în tabelă. Importanța tabelei rezultă din faptul că, aproape toate centrele cu baze de date trebuie să fie satisfăcute folosind doar o bază de date.
Crearea unei tabele în PHPMyAdmin se face scriind numele, se selectează numărul de câmpuri și &Quot;apăsați" butonul (click).[www.w3schools.com] Se deschide un ecran setup în care se crează câmpurile pentru baza de date.
Câmpuri
Din multitudinea de câmpuri și de atribute disponibile în MySQL și vom discuta doar câteva din ele:
Tipul câmpului Descriere
TINYINT Număr Întreg mic
SMALLINT Număr Întreg mic
MEDIUMINT Număr Întreg
INT Număr Întreg
VARCHAR Text (maximum 256 caractere)
TEXT Text
Am redat doar câteva câmpuri disponibile, dar toate câmpurile permise se pot găsi pe Internet.
Cum se realizează o Tabelă cu PHP?
O tabelă creată cu MySQL este mai usor de realiyat decât una creată din PHP. Etapele sunt următoarele:
CREATE TABLE nume_tabel {
Fields}
Câmpurile sunt definite astfel:
fieldname type(length) extra info,
Nu se pune virgulă în ultimul câmp introdus.
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 încâ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, trebuie 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.7. 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 aplicații 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 menține 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 îl 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 îl 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 strunește?
Este mai ușor 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 nu rulează?
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 urmează ?
Versiuni majore sunt rare, deoarece dezvoltarea nu este determinată de venituri obținute de licență. Bug-urile sunt mult mai frecvente. Fundația Apache Software primește 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 experții.
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, posibilitățile 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 Fundația.
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.[Sisteme de gestiune a bazelor de date, M.Velicanu, C. Bodea, I.Lungu, C.Ioniță, G.Bădescu, pg. 18] Pentru conectarea la baze de date mysql, un fișier .php ce conține funcțiile necesare conectării și care se numește config.php a fost folosit.
În cele ce urmează o să vă prezint câteva dintre tabelele utilizate observându-se si proprietățile câmpurilor:
Fig. 3.1.1. Schema generala a aplicatiei
Fig. 3.1.2. Tabelul „User” – useri care se conectează la admin
Fig. 3.1.3. Tabelul „Produse” – produsele care sunt introduse din admin
Fig. 3.1.4. Tabelul “Orders” – comenzile care se fac de pe site
Fig. 3.1.5. Tabelul “Poduct Images” – imaginile de la fiecare produs
Fig. 3.1.6. Tabelul “Category” – categoriile de produse
Fig. 3.1.7. Tabelul “Ratings” – rainting-urile puse de vizitatori
Fig. 3.1.8. Tabelul “Templates” – template-urile pentru structura site-ului
Fig. 3.1.9. Tabelul “Formmails” – mail-urile care se trimit de pe formularul de contact
3.2 Prezentarea aplicației
Deoarece comerțul on line în România crește enorm în fiecare an, iar calculatorul a devenit un instrument indispensabil, am creat acest magazin virtual de vânzări de calculatoare și componente de calculatoare cu foarte multe avantaje atât pentru comerciant cât mai ales pentru cumpărător.
Avantajele de a detine un magazin online sunt numeroase si mentionez aici doar cateva dintre cele mai importante:
un magazin online poate fi ținut "deschis" 24 de ore pe zi, 7 zile pe săptamană
personalul necesar conducerii si intreținerii unui magazin online este net mai puțin numeros decat cel necesar intreținerii unui magazin clasic
chiria necesară unui magazin online este infimă, comparativ cu cea necesară pentru a avea un magazin clasic.
"rafturile" cu produse ale unui magazin online pot fi rearanjate prin cateva click-uri de mouse, direct din birou, fară a necesita inchiderea magazinului, pe cand rearanjarea produselor intr-un magazin clasic poate fi anevoioasa si de durata.
pentru un vizitator, saltul de la o secțiune la altă sectiune se face instant, printr-un click.
comparația între diverse produse este facila, in cazul unui magazin online, ea putând fi facută pe ecranul monitorului, pentru mai multe produse simultan.
în cazul unor produse apreciate de cumparatorii precedenți, părerile acestora pot determina potențialii clienți să intre in magazinul online si să cumpere, și ei, aceleași produse.
sortarea produselor în funcție de diverse criterii, cel mai important fiind pretul, lucru practic imposibil de realizat intr-un magazin clasic.
un cumparator într-un magazin online, nu numai ca nu este nevoit sa împingă caruciorul de cumparaturi de-a lungul si de-a latul magazinului, dar îl și poate lăsa plin cu produse și continua cumpărăturile după o perioadă de timp, timp in care produsele adăugate în coșul său de cumpărături este păstrat pentru a fi adăugate altele sau pentru a le plăti.
panoul de administrare este simplu și intuitiv. Se pot adăuga rapid produse și fotografii ale produselor precum și oferte de prețuri.
Fig. 3.2.1. Schema logică a aplicației
Aplicația este alcătuită 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 conținutul.
Interfața utilizator în această secțiune se vizualizează produsele, conținutul, se efectuează comanda, se poate contacta proprietarul.
În cele ce urmează o sa prezint cele 2 module după cum urmează:
Modulul de administrare
Se accesează în browserul dumneavoastră următoarea adresa: http://abes.ro/admin493fhsntv
La introducerea aceste adrese va apare modulul de logare:
Fig.3.2.2Modulul de logare la secțiunea admin
După introducerea user-ului si parolei se deschide pagina principală a modulului admin:
Fig.3.2.3.Pagina principală de admin
Î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.
Fig.3.2.4. Pagina de administrare comenzi
Fig.3.2.5. Pagina de administrare produse
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 de sus sunt afișate categoriile disponibile.
În meniul „Produse” sunt afișate toate produsele disponibile pe site, alături de titlu, descriere si prețul acestora:
Fig.3.2.6. Pagina de oferte afișează acele produse care sunt setate din admin ca fiind produse la ofertă:
Fig.3.2.7. Pagina “Cum cumpăr”, este o pagină cu conținut, in care se explică utilizatorului cum se cumpăra pe acest site:
Fig.3.2.8. Pagina de contact, in această pagină există un form cu ajutorul căruia utilizatorul poate lua legătura cu proprietarul:
Capitolul 4.
Particularități
Comercianții care își oferă produsele și serviciile prin Internet analizează eficiența site-ului din trei puncte de vedere: cel global, care vizează performanța de ansamblu a magazinului, cel al marketingului și cel comercial.
Performanța globală a magazinului este direct influențată de calitatea managementului pe de o parte, și de numărul de vizitatori și volumul vânzărilor pe de altă parte. Exemple de întrebări care evidențiază performanța globală a magazinului sunt: Care este volumul vânzărilor pentru o anumită perioadă de timp (săptămână, lună)? Care este numărul celor care accesează site-ul într-o zi? Care este rata de conversie (procentul de vizitatori care au efectuat cumpărături) pentru această săptămână?
Marketingul prin Internet poate fi definit în linii mari ca activități desfășurate pentru a câștiga clienți pentru magazinele on-line și de a-i păstra. Tehnicile pentru marketingul on-line fac apel la bannerele introduse în paginile web, la reperele (hiperlegăturile) plasate în motoarele de căutare și pe marile portaluri și la campaniile de promovare prin e-mail. Exemple de întrebări care evidențiază eficiența acestor tehnici sunt: Care banner generează cel mai mare trafic și volum de vânzări? Câte vânzări se datorează unui anumit banner? Ce produse achiziționează clienții ca urmare a accesării unui banner? Care este rata de conversie pentru fiecare banner? Ce portal aduce cel mai mare volum de trafic? Ce portal generează cele mai multe vânzări? Câte vânzări sunt generate de fiecare reper plasat într-un motor de căutare? Ce produse achiziționează clienții ca urmare a accesării unui anumit reper? Analiza de marketing nu trebuie să neglijeze segmentarea cumpărătorilor. Este importantă cunoașterea segmentelor, deoarece permite o mai bună cunoaștere a clienților și a preferințelor acestora. Datorită segmentării pot fi utilizate seturi diferite de variabile cum ar fi caracteristicile demografice și comportamentul cumpărătorului, care sunt selectate în funcție de domeniul care trebuie analizat.
Analiza eficienței din punct de vedere comercial a magazinului virtual vizează în general următoarele 4 aspecte: sortimentul de produse, sugestiile comerciale, metaforele de cumpărare și particularitățile de design ale site-ului web.
Primul domeniu de analiză, cel al sortimentului de produse își propune să stabilească gradul în care gama de mărfuri prezentate în magazinul on-line satisface din punct de vedere sortimental cerințele clienților. Dacă sortimentul de produse nu este optim atunci comerciantul poate schimba de exemplu, marca, calitatea, regulile de selecție, prețul de vânzare. Exemple de întrebări legate de eficiența magazinului virtual din punct de vedere al sortimentale sunt: Care sunt produsele care au avut cea mai mare desfacere într-o anumită perioadă de timp, de exemplu săptămâna acesta? Care este rata de conversie pentru un anumit departament de vânzări? Cu ce frecvență și în ce cantitate sunt cumpărate produsele? Ce caracterizează produsele care nu mai sunt cerute? Care este procentul vânzărilor unui produs generate de căutarea sa prin intermediul unui motor de căutare?
Sugestiile comerciale sunt tehnici pentru prezentarea și/sau gruparea produselor pentru a crește motivația de a cumpăra din magazinele on-line. Exemple de sugestii comerciale sunt: vânzările încrucișate, vânzările de tip upgrade, promoțiile și recomandările. Sugestiile comerciale sunt asociate unor hiperlegături în paginile web. Exemple de întrebări care vizează eficiența sugestiilor comerciale sunt: Cu cât au contribuit vânzările încrucișate la venitul global? Care au fost perechile de produse care s-au bucurat de cel mai mare succes în cadrul vânzărilor încrucișate? Dar cele mai puțin solicitate? Care este rata de conversie globală pentru vânzările încrucișate? Dar pentru vânzările de tip upgrade? Cât de mult au contribuit promoțiile la venitul global? În cadrul celor mai bine vândute produse pe site pe care nivele se plasează cele mai bune promoții?
Metaforele de cumpărare într-un magazin on-line sunt mijloacele pe care clienții le folosesc pentru a găsi produsele pe care-i interesează. Exemplele includ răsfoirea ierarhizată prin catalogul de produse, diferite forme de căutare și configurația necesară pentru a solicita produsele de comandă. Eficiența diferitelor metafore de cumpărare este de interes pentru comercianții on-line. În mod asemănător sugestiilor comerciale, metaforele de cumpărare sunt asociate unor hiperlegături în paginile web. Aceasta permite gruparea și aranjarea pe categorii a hiperlegăturilor dintr-un magazin on-line în funcție de sugestiile comerciale și metaforele de cumpărare
Particularitățile de design ale site-ului comercial reprezintă un alt domeniu de analiză a eficienței comerciale a acestuia. Particularitățile de design se referă la aspectul fundalului, a mijloacelor utilizate (filme, imagini, text), caracterele și corpul literelor utilizate, dimensiunea, culoarea, amplasarea acestor elemente în pagină. Exemple de întrebări care contribuie la stabilirea eficienței comerciale a particularităților de design sunt: Care sunt elementele de design care contribuie la creșterea vânzărilor? Care sunt paginile de web cel mai des accesate? Se vând mai bine produsele dacă sunt prezentate în colțul stânga sus al paginii de web?
Într-un mod similar celui în care marketingul utilizează bannerele și referirile la site pentru a atrage clienții, comerțul on-line utilizează hiperlegăturile și legăturile către imagini pentru a determina potențialii clienți să acceseze paginile de vânzare a produselor. Comercianții prezenți pe web întrebuințează o varietate de tactici pentru a comercializa produsele prin intermediul hiperlegăturilor. Din această perspectivă, problema monitorizării și măsurării eficienței diferitelor tactici de comercializare utilizate într-un magazin on-line poate fi împărțită în 3 subprobleme:
1. clasificarea hiperlegăturilor în funcție de scopurile lor comerciale
2. monitorizarea și măsurarea traficului pe hiperlegături și analiza eficienței
3. decelarea profitului adus de hiperlegături pe tipuri de sugestii comerciale, metafore de cumpărare și particularitățile de design folosite la realizarea paginii web a magazinului on-line.
După ce s-au stabilit domeniile de analiză a eficienței magazinului on-line, trebuie introdus un set de metrici, numite rate de microconversie, care pot fi folosite la măsurarea eficienței eforturilor depuse în domeniile analizate. În mod tradițional, rata de conversie a unui magazin on-line indică procentul de vizitatori care au efectuat cumpărături. În timp ce această metrică este utilă pentru a evalua eficiența globală a magazinului, ea nu poate ajuta la stabilirea factorilor din magazin care pot afecta performanța comercială. Noțiunea de rată de microconversie extinde această măsură tradițională, luând în considerare cei 4 pași efectuați la realizarea cumpărăturilor on-line, care sunt:
1. impresia lăsată de produs; datorită aspectului paginii de web în care produsul este inserat, potențialul client trece la pasul următor
2. accesarea prin clic-ul dat pe hiperlegătură a paginii web a produsului; dacă potențialul client este satisfăcut de informațiile prezentate, de aspectul produsului, de preț și de modul în care sunt prezentate aceste elemente atunci el trece la pasul următor
3. plasarea produsului în coșul de cumpărare
4. cumpărarea produsului și încheierea tranzacției.
Noțiunea de rată de microconversie extinde măsura tradițională, luând în considerare obiectivele de marketing și comerciale asociate hiperlegăturilor. În acest mod, rata de microconversie este asociată strategiilor de marketing și comerciale și poate fi utilizată pentru evaluarea eficienței diferitelor aspecte comerciale ale magazinului on-line. Spre deosebire de tradiționalele rate de conversie care dau o măsură de ansamblu pentru întregul site, ratele de microconversie pot fi calculate pentru fiecare produs, sugestie comercială, metaforă comercială și banner în parte; în speță pentru fiecare hiperlegătură către pagina produsului. În cele ce urmează vor fi prezentate ratele de microconversie corespunzătoare aspectelor comerciale ce sunt asociate unei hiperlegături.
1. Produsul. Ratele de vizitare-accesare, accesare-plasare în coș, plasare în coș-cumpărare și/sau rata de vizitare cumpărare pot fi calculate pentru fiecare articol comercializat în magazinul on-line pentru a măsura eficiența per articol. Ratele de microconversie calculate pentru produs pot fi însumate pentru a obține ratele pentru grupe de produse dacă acest lucru este necesar.
2. Sugestiile de cumpărare. Cele patru rate de microconversie și eficacitatea hiperlegăturilor pot fi calculate pentru hiperlegături care apelează la vânzări încrucișate sau de tip upgrade, la promoții și recomandări pentru a arăta eficiența acestor metode comerciale într-un magazin virtual.
3. Metaforele de cumpărare. Cele patru rate de microconversie și eficacitatea hiperlegăturilor pot fi calculate pentru hiperlink-uri care de exemplu, apar în paginile cu rezultatele căutărilor, ca măsură a eficacității motorului de căutare utilizat.
4. Elemente de design. Hiperlegăturile către paginile care prezintă produse pot fi clasificate în funcție de elemente precum: mijloacele (text, imagini) și culorile utilizate, caractere și corpuri de litere folosite, dimensiunile elementelor din pagină și amplasarea acestora. Cele patru rate de microconversie și eficiența pot fi calculate pentru fiecare hiperlegătură pentru a evidenția eficiența diferitelor design-uri.
Prin urmărirea precisă a pașilor de cumpărare și a metricilor aferente este posibilă descoperirea punctelor care generează pierderi de clienți și se pot lua măsurile necesare. Acest sistem nu este dificil de implementat din moment ce accesările paginilor de web sunt înregistrate automat în servere, iar traficul poate fi monitorizat.
Capitolul 5
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 că poate fi folosită de un număr infinit de utilizatori, fără ca aceștia să trebuiască să 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 internetului, folosind mai mulți utilizatori, mai multe stații de lucru și mai multe procese în același timp. Deoarece aplicația este bazată pe internet nu există incompatibilități hardware, viruși, aplicația si informația fiind stocate pe un server securizat.
Aplicația are si un rol de scădere a costurilor , utilizatorul având la dispozitie toate informațile necesare , fără a fi nevoie de angajați sau de costuri suplimentare legate de locație (chirie , intreținere) evitându-se astfel inchirierea unui spațiu comercial cu expunere ridicată ,acesta fiind astfel deschis 24/7
Promovarea site-ului poate fi făcută folosind rețelele de socializare și exact către grupurile țintă .Putem urmării traficul de pe site cu scopul de a vedea de unde au venit clienții cae au finalizat o comanda .
Magazinul on-line atrage asupra sa o expunere la nivel național , adresându-se clienților din diferite orașe ba chiar si diferite țări
Un alt avantaj al aplicației mele este menținerea stocurilor minime, nefiind necesară aprovizionarea de la furnizor decât in momentul unei comenzi ferme.
Toate acestea duc la simplificarea procesului business , având avantaje de natură economică , de gestiune dar si de securitate .
Ca deosebire față de alte situ-ri de profil, am încercat să vin cu ceva nou, cu un mod de atragere și satisfacere a cumpărătorilor, mai inedit și anume: posibilitatea cumpărătorului de a comanda un produs personalizat. Se pot personaliza ambalajele produselor în funcție de dorința clientului, pentru el insuși sau pentru a face un cadou mai deosebit.
Având în vedere avantajele unui magazin on line, precum și rapididatea cu care se extinde acest concept, voi avea în vedere să dezvolt și să optimizez această aplicație în funcție de opiniile cumpărătorilor, trendul pieței on line precum și în funcție de evoluția produselor din domeniul IT.
ANEXE
ANEXA I config.php
$currentDir = dirname(__FILE__);
if (is_file($currentDir.'/defines_custom.inc.php')) {
include_once($currentDir.'/defines_custom.inc.php');
}
require_once($currentDir.'/defines.inc.php');
$start_time = microtime(true);
define('_PS_SSL_PORT_', 443);
ini_set('default_charset', 'utf-8');
ini_set('magic_quotes_runtime', 0);
ini_set('magic_quotes_sybase', 0);
if (!headers_sent()) {
header('Content-Type: text/html; charset=utf-8');
}
if (!file_exists(_PS_ROOT_DIR_.'/config/settings.inc.php')) {
if (file_exists($currentDir.'/../install')) {
header('Location: install/');
} elseif (file_exists($currentDir.'/../install-dev')) {
header('Location: install-dev/');
} else {
die('Error: "install" directory is missing');
}
exit;
}
require_once(_PS_ROOT_DIR_.'/config/settings.inc.php');
require_once(_PS_CONFIG_DIR_.'autoload.php');
require_once $currentDir . DIRECTORY_SEPARATOR . 'bootstrap.php';
if (is_file(_PS_CUSTOM_CONFIG_FILE_)) {
include_once(_PS_CUSTOM_CONFIG_FILE_);
}
if (_PS_DEBUG_PROFILING_) {
include_once(_PS_TOOL_DIR_.'profiling/Controller.php');
include_once(_PS_TOOL_DIR_.'profiling/ObjectModel.php');
include_once(_PS_TOOL_DIR_.'profiling/Db.php');
include_once(_PS_TOOL_DIR_.'profiling/Tools.php');
}
if (Tools::convertBytes(ini_get('upload_max_filesize')) < Tools::convertBytes('100M')) {
ini_set('upload_max_filesize', '100M');
}
if (Tools::isPHPCLI() && isset($argc) && isset($argv)) {
Tools::argvToGET($argc, $argv);
}
if (!isset($_SERVER['REQUEST_URI']) || empty($_SERVER['REQUEST_URI'])) {
if (!isset($_SERVER['SCRIPT_NAME']) && isset($_SERVER['SCRIPT_FILENAME'])) {
$_SERVER['SCRIPT_NAME'] = $_SERVER['SCRIPT_FILENAME'];
}
if (isset($_SERVER['SCRIPT_NAME'])) {
if (basename($_SERVER['SCRIPT_NAME']) == 'index.php' && empty($_SERVER['QUERY_STRING'])) {
$_SERVER['REQUEST_URI'] = dirname($_SERVER['SCRIPT_NAME']).'/';
} else {
$_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'];
if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])) {
$_SERVER['REQUEST_URI'] .= '?'.$_SERVER['QUERY_STRING'];
}
}
}
}
if (!isset($_SERVER['HTTP_HOST']) || empty($_SERVER['HTTP_HOST'])) {
$_SERVER['HTTP_HOST'] = @getenv('HTTP_HOST');
}
$context = Context::getContext();
try {
$context->shop = Shop::initialize();
$context->theme = new Theme((int)$context->shop->id_theme);
if ((Tools::isEmpty($theme_name = $context->shop->getTheme()) || !Validate::isLoadedObject($context->theme)) && !defined('_PS_ADMIN_DIR_')) {
throw new PrestaShopException(Tools::displayError('Current theme unselected. Please check your theme configuration.'));
}
} catch (PrestaShopException $e) {
$e->displayMessage();
}
define('_THEME_NAME_', $theme_name);
define('__PS_BASE_URI__', $context->shop->getBaseURI());
require_once($currentDir.'/defines_uri.inc.php');
global $_MODULES;
$_MODULES = array();
define('_PS_PRICE_DISPLAY_PRECISION_', Configuration::get('PS_PRICE_DISPLAY_PRECISION'));
define('_PS_PRICE_COMPUTE_PRECISION_', _PS_PRICE_DISPLAY_PRECISION_);
if (Configuration::get('PS_USE_HTMLPURIFIER')) {
require_once(_PS_TOOL_DIR_.'htmlpurifier/HTMLPurifier.standalone.php');
}
Language::loadLanguages();
$default_country = new Country(Configuration::get('PS_COUNTRY_DEFAULT'), Configuration::get('PS_LANG_DEFAULT'));
$context->country = $default_country;
@date_default_timezone_set(Configuration::get('PS_TIMEZONE'));
$locale = strtolower(Configuration::get('PS_LOCALE_LANGUAGE')).'_'.strtoupper(Configuration::get('PS_LOCALE_COUNTRY'));
setlocale(LC_COLLATE, $locale.'.UTF-8', $locale.'.utf8');
setlocale(LC_CTYPE, $locale.'.UTF-8', $locale.'.utf8');
setlocale(LC_TIME, $locale.'.UTF-8', $locale.'.utf8');
setlocale(LC_NUMERIC, 'en_US.UTF-8', 'en_US.utf8');
$cookie_lifetime = defined('_PS_ADMIN_DIR_') ? (int)Configuration::get('PS_COOKIE_LIFETIME_BO') : (int)Configuration::get('PS_COOKIE_LIFETIME_FO');
if ($cookie_lifetime > 0) {
$cookie_lifetime = time() + (max($cookie_lifetime, 1) * 3600);
}
if (defined('_PS_ADMIN_DIR_')) {
$cookie = new Cookie('psAdmin', '', $cookie_lifetime);
} else {
$force_ssl = Configuration::get('PS_SSL_ENABLED') && Configuration::get('PS_SSL_ENABLED_EVERYWHERE');
if ($context->shop->getGroup()->share_order) {
$cookie = new Cookie('ps-sg'.$context->shop->getGroup()->id, '', $cookie_lifetime, $context->shop->getUrlsSharedCart(), false, $force_ssl);
} else {
$domains = null;
if ($context->shop->domain != $context->shop->domain_ssl) {
$domains = array($context->shop->domain_ssl, $context->shop->domain);
}
$cookie = new Cookie('ps-s'.$context->shop->id, '', $cookie_lifetime, $domains, false, $force_ssl);
}
}
$context->cookie = $cookie;
if (defined('_PS_ADMIN_DIR_')) {
$employee = new Employee($cookie->id_employee);
$context->employee = $employee;
if ($employee->id_profile != _PS_ADMIN_PROFILE_) {
Shop::cacheShops(true);
}
$cookie->id_lang = (int)$employee->id_lang;
}
if (isset($cookie->id_lang) && $cookie->id_lang) {
$language = new Language($cookie->id_lang);
}
if (!isset($language) || !Validate::isLoadedObject($language)) {
$language = new Language(Configuration::get('PS_LANG_DEFAULT'));
}
$context->language = $language;
require_once($currentDir.'/smarty.config.inc.php');
$context->smarty = $smarty;
if (!defined('_PS_ADMIN_DIR_')) {
if (isset($cookie->id_customer) && (int)$cookie->id_customer) {
$customer = new Customer($cookie->id_customer);
if (!Validate::isLoadedObject($customer)) {
$context->cookie->logout();
} else {
$customer->logged = true;
if ($customer->id_lang != $context->language->id) {
$customer->id_lang = $context->language->id;
$customer->update();
}
}
}
if (!isset($customer) || !Validate::isLoadedObject($customer)) {
$customer = new Customer();
if (Group::isFeatureActive()) {
$customer->id_default_group = (int)Configuration::get('PS_UNIDENTIFIED_GROUP');
}
}
$customer->id_guest = $cookie->id_guest;
$context->customer = $customer;
}
retrocompatibility */
$https_link = (Tools::usingSecureMode() && Configuration::get('PS_SSL_ENABLED')) ? 'https://' : 'http://';
$context->link = new Link($https_link, $https_link);
define('_PS_OS_CHEQUE_', Configuration::get('PS_OS_CHEQUE'));
define('_PS_OS_PAYMENT_', Configuration::get('PS_OS_PAYMENT'));
define('_PS_OS_PREPARATION_', Configuration::get('PS_OS_PREPARATION'));
define('_PS_OS_SHIPPING_', Configuration::get('PS_OS_SHIPPING'));
define('_PS_OS_DELIVERED_', Configuration::get('PS_OS_DELIVERED'));
define('_PS_OS_CANCELED_', Configuration::get('PS_OS_CANCELED'));
define('_PS_OS_REFUND_', Configuration::get('PS_OS_REFUND'));
define('_PS_OS_ERROR_', Configuration::get('PS_OS_ERROR'));
define('_PS_OS_OUTOFSTOCK_', Configuration::get('PS_OS_OUTOFSTOCK'));
define('_PS_OS_OUTOFSTOCK_PAID_', Configuration::get('PS_OS_OUTOFSTOCK_PAID'));
define('_PS_OS_OUTOFSTOCK_UNPAID_', Configuration::get('PS_OS_OUTOFSTOCK_UNPAID'));
define('_PS_OS_BANKWIRE_', Configuration::get('PS_OS_BANKWIRE'));
define('_PS_OS_PAYPAL_', Configuration::get('PS_OS_PAYPAL'));
define('_PS_OS_WS_PAYMENT_', Configuration::get('PS_OS_WS_PAYMENT'));
define('_PS_OS_COD_VALIDATION_', Configuration::get('PS_OS_COD_VALIDATION'));
if (!defined('_MEDIA_SERVER_1_')) {
define('_MEDIA_SERVER_1_', Configuration::get('PS_MEDIA_SERVER_1'));
}
if (!defined('_MEDIA_SERVER_2_')) {
define('_MEDIA_SERVER_2_', Configuration::get('PS_MEDIA_SERVER_2'));
}
if (!defined('_MEDIA_SERVER_3_')) {
define('_MEDIA_SERVER_3_', Configuration::get('PS_MEDIA_SERVER_3'));
}
ANEXA II global.css – css-ul folosit pentru crearea meniului
@charset "UTF-8";
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font: inherit;
font-size: 100%;
vertical-align: baseline; }
html {
line-height: 1; }
ol, ul {
list-style: none; }
table {
border-collapse: collapse;
border-spacing: 0; }
caption, th, td {
text-align: left;
font-weight: normal;
vertical-align: middle; }
q, blockquote {
quotes: none; }
q:before, q:after, blockquote:before, blockquote:after {
content: "";
content: none; }
a img {
border: none; }
article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
display: block; }
/*!
* Bootstrap v3.0.0
*
* Copyright 2013 Twitter, Inc
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
* Designed and built with all the love in the world by @mdo and @fat.
*/
/*! normalize.css v2.1.0 | MIT License | git.io/normalize */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
display: block; }
audio,
canvas,
video {
display: inline-block; }
audio:not([controls]) {
display: none;
height: 0; }
[hidden] {
display: none; }
html {
font-family: sans-serif;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%; }
body {
margin: 0; }
a:focus {
outline: thin dotted; }
a:active,
a:hover {
outline: 0; }
h1 {
font-size: 2em;
margin: 0.67em 0; }
abbr[title] {
border-bottom: 1px dotted; }
b,
strong {
font-weight: bold; }
dfn {
font-style: italic; }
hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
height: 0; }
mark {
background: #ff0;
color: #000; }
code,
kbd,
pre,
samp {
font-family: monospace, serif;
font-size: 1em; }
pre {
white-space: pre-wrap; }
q {
quotes: "\201C" "\201D" "\2018" "\2019"; }
small {
font-size: 80%; }
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline; }
sup {
top: -0.5em; }
sub {
bottom: -0.25em; }
img {
border: 0; }
svg:not(:root) {
overflow: hidden; }
figure {
margin: 0; }
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em; }
legend {
border: 0;
padding: 0; }
button,
input,
select,
textarea {
font-family: inherit;
font-size: 100%;
margin: 0; }
button,
input {
line-height: normal; }
button,
select {
text-transform: none; }
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button;
cursor: pointer; }
button[disabled],
html input[disabled] {
cursor: default; }
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box;
padding: 0; }
input[type="search"] {
-webkit-appearance: textfield;
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
box-sizing: content-box; }
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none; }
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0; }
/*# sourceMappingURL=global.css.map */
Bibliografie
[1] „Proiectarea interfaț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] “HTML pentru World Wide Web – Ghid de învățare rapidă prin imagini.”, Elizabeth Castro, Editura Corint, 2003
[9] “Sisteme de gestiune a bazelor de date.”, M. Velicanu, C. Bodea, I. Lungu, C. Ioniță, G. Bădescu, Editura Petrion.
[10] “Optimizarea paginilor WEB “, Acu, Ioan Calin , Polirom, Iasi 2003
[11] “Pagini Web Dinamice”, Anghel Traian , Scorpion , Galați , 2002.
[12] “Dezvoltarea aplicațiilor WEB folosind XHTML , PHP, MYSQL”, Anghel Traian, Polirom, Iasi, 2005.
[13] “Programarea în WEB”, Kris Jamsa, Suleiman Lalani, Steve Weakley, Editura ALL, București, 1997.
[14] “PHP4”, Bill McCarty, Editura Teora, București, 2003.
[15] “Learning JQuery 1.3”, Jonathan Chaffer, Karl Swedberg, Editura Packt, 2009.
[16] http://ro.wikipedia.org/
[17] http://www.php.net/
[18] http://www.programare.org/
[19] http://www.w3schools.com/
[20] http://www.jquery.com/
[21] www.eurostats.com
[22] www.internetworldstats.com
[23] www.prestashop.com
[24] www.cpanel.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: 1.1. Tehnologia în zilele noastre În secolul vitezei, unde totul avansează într-un ritm alert, schimbările din jurul nostru sunt mai mult decât… [310735] (ID: 310735)
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.
