Php4all Sistem Online de Invatare Usoara a Limbajului Php
Cuprins
Introducere…………………………………3
Capitolul I. Notiuni de programare web……………………….4
1.1 World Wide Web……………………………4
1.3 Hipertextul……………………….5
Capitolul II. Limbajul PHP……………………….7
2.1 Introducere in PHP……………………….7
2.2 Evolutia limbajului, scurt istoric………………………..7
2.3 Descrierea limbajului PHP:……………………….8
2.3.1 Structura si forma generasa a unui script PHP……………………….9
2.3.2 Afisarea informatiilor si Variabilele……………………….10
2.3.3 Tipuri de date. Conversii de tip……………………….12
2.3.4 Identificatori. Constant……………………….13
2.3.5 Operatori……………………….14
2.3.6 Instructiunea conditionala IF……………………….17
2.3.7 Cicluri……………………….18
2.3.8 Vectori si matrici……………………….20
2.4 Utilizarea Bazelor de Date MySQL folosind PHP………………………..21
2.4.1 Notiuni generale, prioritatile utilizarii bazelor de date in programare PHP………………………..21
2.4.2 Functiile PHP pentru lucru cu baze de date MySQL……………………….22
2.4.3 Exemple de implimentare a functiilor PHP de lucru cu bazele de date……………………….25
Capitolul III. Dezvoltarea unei aplicatii WEB utilizand limbajul PHP………………………..27
3.1 Obiectivele noului sistem……………………….27
3.2 Etapa I : Preproiectarea aplicatiei……………………….28
3.3 Etapa II : Proiectul tehnic……………………….29
3.4 Etapa III: Proiectul de lucru……………………….35
3.5 Etapa IV: Explotarea experimentala si testarea sistemului……………………….38
3.6 Etapa V: Darea in exploatare a sistemului………………………..41<br />
<br />
Concluzie……………………….42<br />
<br />
Bibliografie……………………….43<br />
<br />
Anexe……………………….44
INTRODUCERE
Dezvoltarea rapidă din ultima perioadă a resurselor software și hardware din domeniul tehnologiei informației are meritul de a oferi o mai bună comunicare și un acces mult mai rapid la toate categoriile de informații. Acest lucru se poate observa foarte ușor datorită sistemului World Wide Web, cu ajutorul căruia, printr-un simplu click de mouse se poate naviga prin miile de resurse informaționale din întreaga lume.
World Wide Web
Browser-ele și server-ele de Web comunică între ele folosind protocolul Hypertext Transfer Protocol (HTTP). Tim Berners-Lee a dezvoltat World Wide Web folosind HTTP-ul și un concept numit Uniform Resource Locator (URL). URL-ul este un mecanism de adresare care permite browser-elor să știe unde să ajungă, cum să ajungă, și ce să facă după ce ajung la destinație.
În momentul în care se vizitează o pagină prin intermediul unui browser se întâmplă șase lucruri:
Browser-ul decodează prima parte din URL, și contactează serverul.
Browser-ul trimite restul din adresa URL către server.
Server-ul traduce URL-ul in cale și nume de fișier.
Server-ul trimite fișierul către browser.
Serverul întrerupe legătura.
Browser afișează documentul.
Browser-ul Web nu știe cât de mult dintr-un document să ceară de la server. El doar trimite cererea, și afișează ceea ce primește de la server. Serverul comunică cu browser-ul prin anumite coduri, folosind specificațiile Multipurpose Internet Mail Extensions (MIME).
Serverul pe lângă faptul că, trimite documentul către browser, știe și să execute un program. Când URL-ul adresează un program, serverul știe să execute acel program și să returneze browser-ului rezultatul executării lui ca și cum ar fi fost un fișier.
INTERNETUL
Introducere
Majoritatea site-urilor web sunt constituite din informații statice, dar Web-ul este un mediu puternic și este capabil de mult mai mult și oferă caracteristici precum: pagini Web dinamice, conectare la baze de date, pagini personalizate pentru utilizatori, colecții și prelucrări sofisticate ale datelor, interacțiuni de poștă electronică, interfețe pentru utilizatori bogate și atrăgătoare.
Internetul
Internet-ul este înconjurat de foarte multă ambiguitate și confuzie dar, în câteva cuvinte, poate fi definit ca cea mai mare rețea din lume. Majoritatea rețelelor din prezent sunt rețele locale (Local Area Networks – LANs) și sunt formate dintr-un grup de calculatoare aflate relativ aproape unul de celălalt și conectate prin echipamente hardware speciale și cabluri. Unele calculatoare îndeplinesc rolul de clienți (cunoscute, de obicei, sub denumirea de workstations) iar altele sunt servere. Toate aceste calculatoare pot comunica între ele pentru a schimba informații.
O rețea mai mare, care se întinde pe mai multe locații geografice este, de obicei, folosită de marile companii care au sedii în mai multe localități. Fiecare dintre locații are propriul său LAN, care leagă calculatoarele locale. Aceste LAN-uri, la rândul lor, sunt interconectate prin intermediul unor medii speciale de comunicare. Legăturile pot fi de la legături de tip dial-up prin modem, până la legături de mare viteză T1 sau T3 sau legături prin fibră optică. Grupul complet al LAN-urilor interconectate se numește Wide Area Network (WAN). WAN-urile se folosesc pentru a conecta locații diferite ale unei companii.
Dacă s-ar dori conectarea tuturor calculatoarelor de oriunde s-ar începe prin rularea unor backbones de viteze foarte mari, conexiuni capabile să transmită cantități mari de date, între locații strategice – probabil mari orașe sau țări diferite. Aceste backbones ar fi asemănătoare autostrăzilor de mare viteză și pe multe benzi dintre țări.
Ar trebui definită o toleranță la erori pentru a face aceste backbones complet redundante, astfel încât dacă vreo conexiune se întrerupe, ar mai fi disponibilă cel puțin o altă modalitate de a a atinge o destinație specifică.
Mai departe, ar fi create mii de legături locale care ar conecta fiecare oraș la backbone prin conexiuni mai puțin rapide. S-ar permite WAN-urilor și LAN-urilor companiilor și chiar și utilizatorilor individuali cu modem-uri pentru dial-up să se conecteze la aceste puncte de acces locale. Unele calculatoare ar putea fi conectate tot timpul, în timp ce altele s-ar putea conecta doar la nevoie.
S-ar crea apoi un limbaj comun de comunicare astfel ca fiecare calculator conectat la această rețea să poate comunica cu oricare altul.
Și în final ar trebui definită o schemă pentru a putea identifica în mod unic fiecare calculator conectat la rețea. Acest lucru va asigura faptul că informația trimisă unui anumit calculator va ajunge la destinația dorită.
Cu toate că aceasta este o descriere simplificată, este exact modul în care Internet-ul a fost realizat și lucrează.
Backbone-urile de mari viteze există într-adevăr. Majoritatea sunt deținute de marile companii de telecomunicații.
Punctele de acces locale, cunoscote sub numele de POP (Points of Presence) aparțin companiilor telefonice, de cablu și furnizorilor locali de Internet (ISPs – Internet Service Providers)
Limbajul comun este IP – Internet Protocol, dar termenul de limbaj este impropriu. Un protocol reprezintă o mulțime de reguli ce guvernează comportamentul în anumite situații. Protocoalele permit realizarea comunicării fără întreruperi și fără să apară neînțelegri. IP este protocolul folosit pentru comunicarea prin Internet, deci fiecare calculator trebuie să ruleze o copie a acestui protocol.
Identificatorii unici sunt adresele IP. Fiecare calculator, sau host, conectat la Internet are o adresă IP unică. Aceste adrese sunt formate din patru seturi de numere separate prin punct – de exemplu 208.193.16.100. Unele calculatoare au adrese fixe (sau statice), în timp ce altele au adrese alocate dinamic, de fiecare dată când este stabilită o conexiune. Indiferent de modul în care este este obținută o adresă IP, oricare două calculatoare conectate la Internet nu vor putea folosi aceeași adresă IP în același timp.
Aplicații pentru Internet
Internet-ul în sine este o masivă rețea de comunicații și oferă foarte puțin majorității utilizatorilor, din acest motiv au fost necesari 20 de ani pentru ca Internet-ul să devină fenomenul din prezent.
Internet-ul a fost ridicat la rangul de Information Superhighway și această analogie este destul de precisă. Autostrăzile nu sunt așa de atractive precum locurile în care se poate ajunge călătorind pe ele și acest lucru este valabil și pentru Internet. Ceea ce face Internet-ul așa de atrăgător sunt aplicațiile care rulează pe baza sa și ceea ce poate fi realizat cu ajutorul acestora.
Cea mai cunoscută aplicație din prezent este World Wide Web. Mulți oameni confundă Internet-ul cu World Wide Web, lucru complet greșit.
Toate aplicațiile pentru Internet folosesc protocolul IP pentru a comunica. Informația transmisă de aceste aplicații este împărțită în pachete, mici blocuri de date, care sunt trimise unei adrese IP destinație. Aplicația de la capătul celălalt procesează informțiile primate.
Câteva din aplicațiile pentru Internet sunt:
Email – SMTP (Simple Mail Transfer Protocol) este cel mai cunoscut mechanism de transmitere a mesajelor de poștă electronică, iar POP (Post Office Protocol) este interfața cea mai utilizată pentru accesarea mesajelor.
FTP – File Transfer Protocol este folosit pentru trasferul fișierelor între calculatoare.
IRC – Internet Relay Chat permite susținerea de conferințe în timp real, bazate pe text, prin Internet.
NFS – Network File System este folosit pentru a partaja fișiere între diferite calculatoare.
Newsgroups – liste de discuții bazate pe thread-uri.
Telnet – folosit pentru conectarea la un calculator de la distanță.
VPN – Virtual Private Networks permite accesul sigur al rețelelor private la Internet.
WWW – World Wide Web.
DNS
Adresele IP reprezintă singurul mod de a specifica în mod unic un host. Când se dorește comunicarea cu un alt host – un server de Web, de exemplu – trebuie specificată adresa IP a acestuia. Dar, după cum se știe, foarte rar se specifică direct adresa IP, ci se specifică un hostname.
Mecanismul care asociază hostname-urile cu adresele IP se numește DNS (Domain Name Service). Când se specifică o adresa, cum ar fi www.yahoo.com, browser-ul trimite un o cerere de tip address resolution către un server DNS, cerând acestuia adresa IP asociată numelui specificat. Serverul DNS va returna adresa IP actuală și browser-ul o va folosi pentru a comunica direct cu acel host.
Nu este obligatorie folosirea unui server DNS, utilizatorii ar putea specifica direct adresa IP a hostului cu care doresc să comunice, dar sunt câteva motive pentru care acest lucru nu se face:
Adresele IP sunt greu de reținut și pot fi ușor scrise greșit.
Adresele IP se pot schimba.
Adresele IP trebuie să fie unice, dar numele DNS nu.
Un singur host, cu o singură adresă IP, poate avea mai multe nume DNS.
Intranet și Extranet
Un intranet nu este nimic mai mult decât un Internet privat. Cu alte cuvinte, este o rețea privată, de obicei un LAN sau WAN, care permite folosirea aplicațiilor Internet-based într-un mediu sigur și privat. Ca și pe Internet-ul public, intranet-urile pot găzdui servere de Web, servere FTP sau orice alte servicii bazate pe IP.
Un extranet este o rețea de tip intranet care conectează mai multe site-uri sau organizații folosind tehnologii legate de intranet. Multe extranet-uri, de fapt, folosesc Intranet-ul ca backbone și utilizează tehnici de criptare pentru a asigura securitatea datelor transmise prin rețea.
Cele două lucruri care deosebesc intranet-urile și extranet-urile de Internet sunt cine le poate accesa și de unde pot fi accesate. Dacă o aplicație poate rula pe Internet, atunci va rula cu siguranță și pe in intranet sau extranet.
Servere Web
World Wide Web este construit pe baza unui protocol numit Hypertext Transfer Protocol (HTTP). HTTP este un protocol mic și rapid care se potrivește foarte bine sistemelor informatice multimedia și distribuite și salturilor între site-uri.
Web-ul constă în pagini cu informații de pe gazde care rulează software de tip server Web. Gazda este de multe ori identificată cu serverul Web, lucru care nu este corect. Serverul Web este un software, nu calculatorul în sine.
Un Web server este un program care furnizează pagini Web la cerere. Când un utilizator de la o adresă IP specifică solicită un anumit fișier, serverul Web încearcă să obțină acel fișier și să-l trimită înapoi utilizatorului. Fișierul solicitat poate fi codul sursă HTML al unei pagini Web, o imagine GIF, un fișier Flash, un document XML, sau un fișier AVI. Browserul Web este cel care determină ceea ce trebuie cerut, nu serverul Web. Serverul doar procesează cererea.
Conexiunile la serverele de Web se stabilesc pe măsură ce sunt necesare. Dacă este cerută o pagină de la un server Web, o conexiune IP este stabilită prin Internet între gazda solicitantă și gazda pe care rulează serverul Web. Pagina Web cerută este transmisă prin acea conexiune, iar aceasta este întreruptă de îndată ce pagina este primită. Dacă pagina primită conține referințe la alte informații ce trebuie descărcate (de exemplu, imagini GIF sau JPG), fiecare va fi obținută folosind o nouă conexiune.
Pe un același host pot rula mai multe aplicații de Internet, de exemplu un server Web, un server FTP, un server DNS și un server de mail SMTP POP3 pot rula în același timp. Fiecărui server îi este atribuit un port pentru a asigura că fiecare server va răspunde numai cererilor din partea clienților corespunzători.
Majoritatea serverelor folosesc un set de porturi predefinite. Serverele Web folosesc de obicei portul 80, dar acesta poate fi schimbat. Pot fi instalate pe porturi nestandard pentru a fi ascunse, și de asemenea, pot fi instalate mai multe servere Web pe un singur calculator asociindu-le porturi diferite.
Pagini Web
Informațiile din World Wide Web sunt stocate în pagini. O pagină poate conține oricare din următoarele: text, header-e, liste, meniuri, tabele, formulare, elemente grafice, script-uri, stiluri (style sheets), obiecte multimedia.
Paginile Web sunt realizate folosind o serie de tehnologii pe partea de client și sunt procesate și afișate de către browsere.
Browsere Web
Browserele web sunt programe client folosite pentru a accesa site-uri și pagini Web. Sarcina unui browser este de a procesa paginile Web primite și de a le prezenta utilizatorului. Browser-ul încearcă să afișeze grafice, tabele, formulare, text formatat și orice conține pagina.
Cele mai cunoscute browsere web din prezent sunt Google Chrome, Mozilla Firefox, Opera și Internet Explorer.
Pagini Web Statice și Dinamice
HTML
Paginile Web sunt fișiere cu simplu text costruite folosind limbajul Hypertext Markup Language (HTML). Acesta este implementat ca o mulțime de tag-uri ușor de învățat. Autorii paginilor Web folosesc aceste tag-uri pentru a marca paginile de text, iar browserele le folosesc pentru a randa și afișa informațiile pentru a putea fi vizualizate. Paginile Web pot să conțină legături hypertext la alte pagini.
JavaScript
HTML este un limbaj de markup. El permite crearea layout-ului paginilor și a formularelor, dar nimic mai mult. Pentru a se construi interfețe intuitive și sofisticate este necesar și un limbaj de scripting la nivel de client. Scripting-ul permite scrierea de cod (mici programe) care rulează în cadrul browserului.
Cel mai cunoscut limbaj de scripting pe parte de client este JavaScript, care este suportat (mau mult sau mai puțin) de aproape orice browser existent. Folosind JavaScript se poate realiza: validarea formularelor, animarea textului și a imaginilor, crearea de meniuri drop-down și a controalelor de navigare, se pot efectua procesări de bază numerice sau asupra textelor și multe altele.
Scripting-ul permite programatorilor să detecteze și să proceseze evenimentele. De exemplu, o pagină care se încarcă, un formular trimis, mișcarea pointer-ului mouse-ului asupra unei imagini sunt toate evenimente, iar script-urile pot fi executate automat de browser atunci cînd aceste evenimente au loc.
Script-urile pot fi incluse în codul HTML sau pot fi stocate în fișiere externe și legate în interiorul codului HTML.
Alte tehnologii pe parte de client
Majoritatea browserelor noi permit folosirea și a altor tehnologii, dintre care cele mai importante sunt:
CSS (Cascading Style Sheets) – oferă o modalitate de a separa prezentarea de conținut astfel încât ambele să poată fi refolosite și modificate cu ușurință.
DHTML (Dynamic HTML) – o combinație de HTML, script-uri și CSS care folosite împreună, pot realiza interfețe pentru utilizator foarte atractive și interactive.
Appleturi Java – mici programe care rulează în browser.
Macromedia Flash – o tehnologie inclusă în 98% din browserele existente, care oferă un mecanism pentru crearea unor interfețe atractive și portabile.
URL-uri
Piesa care leagă între ele serverele Web, browserele Web și paginile Web este URL-ul.
Fiecare pagină din World Wide Web are o adresă care este introdusă în browser pentru a-i indica acestuia să încarce pagina respectivă.
Aceste adrese se numesc Uniform Resource Locators (URLs) și sunt constituite din șase părți, astfel:
Protocol – protocolul care va fi folosit pentru a obține obiectul. De obicei acesta este http pentru obiecte din World Wide Web. Dacă protocolul este specificat, atunci acesta trebuie urmat de semnele ://.
Host – serverul Web de la care vor fi obținute obiectele. Acesta poate fi specificat ca un nume DNS sau ca o adresă IP.
Port – portul calculatorului gazdă pe care rulează serverul Web. Dacă este omis, atunci se folosește portul implicit, iar dacă este specificat, numărul portului trebuie precedat de semnul „ : ” .
Path – calea către fișierul care se dorește a fi primit sau scriptul care trebuie executat.
File – numele fișierului cerut.
Query String – parametrii opționali pentru script. Dacă este specificat, atunci trebuie precedat de semnul „ ? ’’.
Avantajul Paginilor Web Dinamice
Paginile dinamice sunt ceea ce dă viață Web-ului.
Paginile statice sunt formate din text, imagini și tag-uri HTML pentru formatare. Aceste pagini sunt create și întreținute manual, astfel că dacă informațiile se modifică și pagina trebuie modificată. Aceasta implică încărcarea paginii într-un editor, realizarea modificărilor, reformatarea textului dacă este necesar și apoi salvarea fișierului. Aceste operații necesită foarte mult timp dacă numărul paginilor care trebuie actualizate este mare.
Paginile dinamice conțin foarte puțin text. În schimb extrag informațiile necesare din alte aplicații. Paginile dinamice pot comunica cu bazele de date, foi de calcul tabelar, sisteme de gestiune a bazelor de date client-server și multe alte aplicații.
Crearea paginilor Web dinamice permite crearea de aplicații puternice, care pot include caracteristici precum următoarele:
interogarea aplicațiilor de baze de date existente pentru obținerea datelor;
crearea de interogări dinamice care facilitează obținerea în mod flexibil a datelor
execuția procedurilor stocate;
execuția codului condițional on-the-fly pentru a personaliza răspunsurile în funcție de situațiile specifice;
sporirea capabilităților formularelor HTML standard prin folosirea unor funcții de validare;
popularea în mod dinamic a elementelor din formulare;
personalizarea modului de afișare a informațiilor legate de dată, timp și monedă folosind funcții de formatare;
ușurarea creării aplicațiilor de introducere a datelor prin wizards;
generarea automată de email;
site-uri comerciale și coșuri electronice de cumpărături și multe altele.
Ințelegerea aplicațiilor Web
Browserele Web trimit cereri către serverele Web, iar acestea le îndeplinesc – trimit înapoi informațiite cerute către browser. Aceste informații sunt de obicei fișiere HTML, ca și alte tipuri de fișiere.
Și cam atât este ceea ce fac serverele Web. Ele sunt de fapt aplicații destul de simple – stau și așteaptă cererile pe care le îndeplinesc de îndată ce le primesc. Serverele Web nu permit interacțiunea cu bazele de date, nu permit personalizarea paginilor Web, nu permit procesarea rezultatelor trimiterii unui formular de către utilizator.
Un Web application Server este un software care extinde serverul Web, permițândui acestuia să facă lucrurile pe care nu le poate face singur.
Când un server Web primește o cerere de la un browser, el cercetează acea cerere pentru a determina dacă este o simplă pagină Web sau o pagină care necesită prelucrări suplimentare de către un web application server. Acest lucru îl realizează prin cecetarea extensiei sau a tipului MIME. Dacă tipul MIME indică o pagină Web simplă, atunci serverul web îndeplinește cererea și trimite fișierul către browserul clinet nemodificată. Dar dacă tipul MIME indică faptul că fișierul cerut necesită procesarea de către un web application server, atunci web serverul trimite fișierul către web application server-ul corespunzător și trimite browserului rezultatul pe care îl primește de la web application server.
Cu alte cuvinte web application serverele sunt preprocesoare pentru pagini. Acestea procesează pagina cerută înainte ca aceasta să fie trimisă înapoi la client.
2. Limbajul PHP
2.1. Introducere în PHP
PHP, acronim care provine din "PHP: Hypertext Preprocessor", este un limbaj de scripting utilizat pe scară largă, realizat și distribuit în sistem Open Source, care este special realizat pentru a dezvolta aplicații web, prin integrarea codului PHP în documente HTML. Sintaxa sa provine din C, Java și Perl și este ușor de învățat. Scopul principal al limbajului este acela de a scrie rapid pagini web dinamice, dar cu PHP se pot realiza mult mai multe.
PHP este un un limbaj de programare inclus practic in HTML. Pentru a înțelege această afirmație trebuie urmărit următorul exemplu:
<html>
<head>
<title>Exemplu</title>
</head>
<body>
<?php echo "Salut; sunt un script PHP!"; ?>
</body>
</html>
PHP este una dintre cele mai interesante tehnologii existente în prezent. Deoarece îmbină caracteristici dintre cele mai complexe cu simplitatea în utilizare, PHP a devenit rapid un instrument de frunte pentru dezvoltarea aplicațiilor în Web. Totuși, spre deosebire de alte instrumente populare pentru dezvoltarea aplicațiilor Web, cum este Perl, PHP este un limbaj de programare comod pentru începători, chiar și pentru cei care nu au mai desfășurat activități de programare în trecut.
Ca și alte limbaje de scripting pentru Web, PHP vă permite să furnizați un conținut Web dinamic, adică un conținut Web care se modifică automat de la o zi la alta sau chiar de la un minut la altul. Conținutul Web este un element important în susținerea traficului unui sit Web; de regulă, vizitatorii nu vor mai reveni la o pagină Web care conține aceleași informații ca și cele prezentate la ultima vizită. Pe de altă parte, siturile Web frecvent actualizate pot atrage cantități enorme de trafic.
Mai mult, spre deosebire de limbajele de scripting, precum JavaScript, PHP rulează pe serverul Web, nu în browserul Web. În consecință, PHP poate obține accesul la fișiere, baze de date și alte resurse inaccesibile programului JavaScript. Acestea constituie bogate surse de conținut dinamic, care atrag vizitatorii.
Se poate observa diferența față de un script CGI scris în Perl sau C – în loc să se scrie un program cu o mulțime de comenzi pentru codul HTML, se poate scrie un script HTML cu un cod inclus pentru a realiza anumite lucruri (în cazul de față tipărirea unui text).
Ceea ce distinge PHP-ul față de Javascript este faptul că, codul este executat pe server. Clientul primește doar rezultatul executării scriptului, nepermițând în nici un fel determinarea codului.
Ceea mai mare parte a sintaxei este împrumutată din C, Java și Perl, cu câteva proprietăți unice PHP-ului. Scopul acestui limbaj este de a permite programatorilior WEB dezvoltarea rapidă și dinamică a programelor.
PHP-ul a fost dezvoltat la sfârșitul anului 1994 de către Rasmus Lerdorf, ca o extensie a limbajului server-side Perl, și apoi ca o serie de CGI-uri compilate, pentru a genera un curriculum vitae și pentru a urmări numărul de vizitatori ai unui site, fiind utilizată în scopuri personale. Prima versiune care a fost folosita și de alți programatori a apărut la începutul anului 1995, fiind cunoscuta ca Personal Home Page Tools. Această versiune permitea înțelegerea câtorva funcții și macro-uri folosite în mod regulat pentru realizarea de guestbook-uri si de contoare. Acesta a fost momentul în care programatorii din toata lumea au început să-și aducă contribuția la dezvoltarea limbajului. La sfârșitul anului 1997, PHP/FI era folosit în peste 50.000 de sit-uri Web din întreaga lume. În 1997, Zeev Suraski și Andi Gutmans au rescris de la zero serverul de PHP/FI, iar noua versiune lansată pe piață a devenit cunoscută sub denumirea de PHP3. La mijlocul anului 1999, numărul de servere pe care rula PHP-ul ajunsese la 1.000.000.
Limbajul PHP, în marea majoritate a cazurilor, se folosește sub formă de secvențe de cod inserate în cadrul unui document HTML. Din acest motiv, vom prefera termenul de „script PHP” celui de program PHP. Structura unui script PHP este foarte asemănătoare cu cea a unui cod scris în limbajul C, mai ales în sensul în care structurile de programare au aceeași sintaxă și aceeați funcționalitate.
Rolurile de bază ale unui script PHP constau, în aceea că, script-ul poate prelua date trimise de către o pagina web de la un client (în general, datele pot fi trimise de către o pagina web prin intermediul formularelor) și de a executa o secvență de program în urma căreia va rezulta un cod HTML, cod pe care clientul îl va primi sub forma unei pagini web. Clientul nu va avea acces la codul efectiv al script-ului, ci, prin faptul ca acesta se afla pe server și se ruleaza tot pe acesta, va primi direct HTML-ul generat de script.
Dezvoltat inițial pentru sistemul de operare (u)NIX, serverul de PHP a fost portat cu succes și pe servere 9x/NT.
Poate ceea mai puternică și mai importantă componentă a PHP-ului este suportul cu bazele de date. Scrierea unei baze de date pentru Web este extrem de simplă. Bazele de date cu care PHP-ul știe să lucreze sunt:
Diferența dintre PHP și un alt limbaj, cum ar fi JavaScript este acela că PHP este executat pe server pe când JavaScript este executat pe calculatorului clientului (de browserul Web). Pentru un script similar celui de mai jos sus pe un server, clientul ar primi doar rezultatele scriptului ce este rulat, fără a vedea în nici un fel codul din spatele acestuia. Se poate chiar configura serverul de web ca acesta să proceseze toate fisierele HTML cu PHP și astfel nu exită nici o metodă ca un utilizator să stie defapt ce există în fișiere.
2.2 Ce poate face PHP?
Cu PHP se poate face orice. PHP este în principal axat pe partea de scripting ce rulează pe server, deci poate face orice face și un program CGI, cum ar fi colectarea de date de la formulare, generarea de conținut dinamic sau trimitere și primire de cookie-uri. Dar PHP poate face mult mai multe.
Există trei domenii principale unde sunt folosite scripturile PHP.
Scripturi ce ruleaza pe server. Acesta este cel mai tradițional și cel mai important pentru PHP. Este nevoie de trei lucrui pentru a face să meargă: interpretorul PHP (CGI sau modul de server), un server web și un browser web. E nevoie ca serverul de web să fie pornit, cu o conexiune PHP instalată. Se poate accesa rezultatul programelor PHP cu un browser prin intermediul serverului de web.
Scripting in linie de comandă. Se poate face ca PHP să ruleze fără a fi nevoie de server și de browser, ci doar de interpretorul PHP. Această metodă este ideală pentru script-urile ce se vor a fi executate de regulă folosind cron (task scheduler în Windows), sau sarcini simple de procesare a textelor.
Scrierea de aplicații ce rulează de partea clientului în mod grafic (GUI). Probabil că PHP nu este limbajul cel mai bun de a scrie aplicații cu ferestre pentru Windows sau alte sisteme de operare, dar dacă este bine cunocut și se dorește folosirea unor facilități avansate ale PHP-ului în aplicațiile ce rulează de partea clientului, se poate totuși folosi PHP-GTK pentru a scrie astfel de programe. De asemenea, există posibilitatea de a scrie aplicații ce rulează pe platforme diferite folosind această metodă. PHP-GTK este o extensie a PHP-ului, nedisponibila în distribuția principală de PHP.
PHP poate fi folosit pe aproape toate marile sisteme de operare, incluzând Linux, multe variante de Unix (incluzând HP-UX, Solaris și OpenBSD), Microsoft Windows, Mac OS X, RISC OS, probabil și altele. PHP are de asemenea suport pentru majoritatea serverelor de web din prezent. Acestea includ serverele Apache, Microsoft Internet Information Server, Personal Web Server, Netscape și iPlanet, serverul Oreillz Website Pro, Caudium, Xitami, OmniHTTPd, și multe atele. Pentru majoritatea serverelor PHP are un modul, iar pentru celelalte suportă standardul CGI, PHP putând să lucreze ca un procesor CGI.
Deci, cu PHP, există libertatea de a alege un sistem de operare și un server de web. Chiar mai mult, există posibilitatea de a alege programarea procedurală sau programarea orientată obiect, sau chiar sa se combine acestea. Cu toate acestea, nu orice facilitate a standardului POO este prezentă în versiunea curentă a PHP-ului, multe librării de cod și aplicații mari (incluzând și librăria PEAR) sunt scrise folosind doar cod POO.
Cu PHP programatorul nu este limitat să scoată rezultat HTML. Posibilitățile PHP-ului includ afișarea de imagine, fișiere PDF și chiar filmulețe Flash (folosind librăriile libswf și Ming) toate generate instant. Se poate de asemeanea ca rezultatul să fie orice fișier text, cum ar fi XHTML sau orice alte fișiere XML. PHP poate genera autmoat aceste fișiere și să le salveze în sistemul de fișiere în loc să le afișeze, formând un cache de partea serverului pentru conținutul dinamic.
Una dintre cele mai puternice și importante facilități în PHP este suportul său pentru o gamă larga de baze de date. Scrierea une pagini de web ce interacționeaza cu o bază de date este incredibil de simplă. PHP suportă și ODBC, standardul Open Database Connection, deci se poate conecta la orice altă bază de date ce suporta acest standard mondial.
PHP are deasemeanea suport pentru a conversa cu alte servicii folosind protocoale cum ar fi LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (pe Windows) și multe altele. Se pot, de asemenea, deschide socket-uri de rețea și se poate interacționa între aproape toate limbajele de programare Web. PHP are suport pentru instanțierea obiectelor Java și utilizarea lor într-un mod transparent ca obiecte PHP. Se pot de asemenea folosi extensii CORBA pentru a accesa obiecte aflate la distanță.
PHP are capabilități extrem de folositoare pentru procesarea textului, de la POSIX Extins sau expresii regulare Perl, până la parsarea documentelor XML. Pentru parsarea și accesarea documentelor XML, suportă standardele SAX și DOM.
Folosind PHP în domeniul comerțului electronic, sunt foarte folositoare pentru programul tău de plați online funcții de plată Cybercash, CyberMUT, VeriSign Payflow Pro și CCVS.
În cele din urmă, dar nu ultimul rând, PHP are și alte extensii interesante, cum ar fi funcții ale motorului de căutare mnoGoSearch, funcții pentru accesarea IRC-ului, multe utilitare de compresie (gzip, bz2), conversie de calendar, traducere…
2.2.1 Caracteristici ale limbajului
Principalele caracteristici ale limbajului sunt:
Puterea limbajului – PHP oferă o gama largă de module, permițând utilizarea codului PHP pentru dezvoltarea de aplicații Windows ASP și Shockwave Flash; ceea mai puternică caracteristică a programului este însă, numărul mare de baze de date cu care poate lucra și ușurința folosirii acestora;
Viteza de dezvoltare a programelor – în PHP programele se pot scrie folosind orice editor de texte; programul nu necesită să fie compilat, putând fi incorporat direct în paginile HTML;
Portabilitatea – programele scrise in PHP pot fi executate fără nici o modificare atât in sistemele de operare (u)NIX, cât și în orice versiune de servere 9x/NT;
Prețul – ca majoritatea limbajelor și programelor dezvoltate pentru (u)NIX, și PHP este distribuit gratuit, utilizatorul trebuind să respecte doar specificațiile GNU (Anexa A).
Există câteva modalități pentru a începe și a termina un program în PHP:
<? echo “prima metodă”; ?>
<? php echo “a doua metodă; pentru documente XML”; ?>
<% echo “a treia metodă; folosind taguri ASP”; %>
2.3 Securitatea în PHP
PHP este un puternic limbaj de programare, capabil să acceseze fișiere, să execute comenzi, să deschidă conexiuni de rețea. Aceste proprietăți fac ca tot ce rulează pe server să fie expus la un grad mare de insecuritate.
PHP-ul a fost creat special pentru a fi mai sigur decât CGI-urile scrise în Perl sau C, iar în cazul în care a fost configurat corect asigură combinația perfectă de libertate și securitate. Din cauza diferitelor moduri de utilizare a PHP-ului, există multe posibilități de configurare și control. Marea diversitate de opțiuni, garantează utilizarea PHP-ului pentru o mulțime de scopuri, dar permite de asemenea o configurare greșită care poate duce la o instalare cu urmări grave în securitatea server-ului.
Cele două moduri de instalare a PHP-ului conduc la două abordări diferite în ceea ce privește securitatea.
2.4. Elemente de bază ale sintaxei
2.4.1 Ieșirea din modul HTML
Când PHP interpretează un fișier trece prin textul acestuia până când întâlnește unul din tag-urile speciale care îi spun să pornească interpretarea textului ca fiind cod PHP. Mai departe, parser-ul execută tot codul întâlnit, până la întâlnirea unui tag PHP de închidere, care anunță trecerea normală prin text, din nou. Acest mecanism permite înglobarea codului PHP în interiorul codului HTML: tot ceea ce este în afara tag-urilor PHP este lăsat nemodificat, în timp ce tot ceea ce este în interior este interpretat ca fiind cod.
Există patru categorii de tag-uri care pot fi folosite pentru a marca bolcurile de cod PHP. Dintre acestea, doar două (<?php. . .?> și <script language="php">. . .</script>) sunt întotdeauna disponibile. Cu toate ca tag-urile în format scurt și cele de tip ASP par a fi convenabile, ele nu sunt la fel de portabile ca cele în format lung. De asemenea, dacă se dorește includerea codului PHP în XML sau XHTML, este necesar să se folosească tag-urile în forma <?php. . .?> pentru a corespunde standardului XML
Cele patru tipuri de tag-uri sunt:
1. <?php echo("if you want to serve XHTML or XML documents, do like this\n"); ?>
2. <? echo ("this is the simplest, an SGML processing instruction\n"); ?>
<?= expression ?> This is a shortcut for "<? echo expression ?>"
3. <script language="php">
echo ("some editors (like FrontPage) don't
like processing instructions");
</script>
4. <% echo ("You may optionally use ASP-style tags"); %>
<%= $variable; # This is a shortcut for "<% echo . . ." %>
Prima variantă, <?php. . .?>, este metoda preferată deoarece permite folosirea PHP-ului în cod corform standardului XML, cum ar fi XHTML.
Cea de-a doua variantă nu este întotdeauna posibilă. Tag-urile prescurtate pot fi folosite doar dacă au fost activate. Acest lucru poate fi făcut prin intermediul funcției short_tags() (numai în PHP3), prin activarea opțiunii short_open_tag în fișierul de configurare, sau prin compilarea scripturilor folosind opțiunea enable-short-tags. Chiar dacă este implicit activată în fișierul php.ini, folosirea tag-urilor prescurtate nu este recomandată.
Cea de-a patra variantă poate fi folosită numai dacă tag-urile de tip ASP au fost activate folosind setarea asp_tags din fișierul de configurare.
PHP permite folosirea unor structuri ca cea de mai jos:
<?php
if ($expression) {
?>
<strong>This is true.</strong>
<?php
} else {
?>
<strong>This is false.</strong>
<?php
}
?>
Aceasta funcționează exact cum este de așteptat, deoarece când PHP întâlnește tag-ul de închidere ?> începe afișarea a ceea ce întâlnește până la apariția unui alt tag de start. În cazul blocurilor mari de text, ieșirea din modul PHP este în general mai eficientă decât trimiterea textului folosind echo() sau print().
2.4.2 Separarea instrucțiunilor
Instrucțiunile sunt separate la fel ca în C sau Perl – fiecare instrucțiune este terminată cu un semn punct și virgulă.
Tag-ul de închidere implică și sfârșitul instrucțiunii, deci următoarele două exemple sunt echivalente:
<?php
echo "This is a test";
?>
<?php echo "This is a test" ?>
2.4.3 Comentariile
PHP-ul permite inserarea de comentarii oriunde în program. Practic modalitatea de introducere a comentariilor este identică cu ceea din C, C++ și shell-ul (u)NIX.
Astfel, există trei modalități de introducere a unui comentariu:
// Prima modalitate de introducere a unui comentariu
# A doua modalitate de introducere a unui comentariu
/*A treia modalitate de introducere a unui comentariu */
Comentariul pe o sigură linie, de fapt realizează comentarea codului până la sfârșitul liniei curente sau până la terminarea blocului curent PHP, oricare din aceste două cazuri apare primul.
De exemplu:
<?php
echo "This is a test"; // This is a one-line c++ style comment
/* This is a multi line comment
yet another line of comment */
echo "This is yet another test";
echo "One Final Test"; # This is shell-style style comment
?>
2.5 Tipuri de date
PHP suportă următoarele tipuri de date:
întregi – cu o valoare maximă uzuală de 2 milioane (32 biți);
ex: $a = 1234;
flotante – cu o valoare maximă uzuală de 1.8e308 și o precizie de 14 zecimale; ex: $a = 1.2e3;
string – un string este delimitat de semnul (“), si poate să conțină orice caracter din codul ASCII; ex: $a=”acesta este un string”;
array – poate fi definit atât element cu element, cât și cu ajutorul funcției array( );
ex: //array definit pe elemente
$a[0] = "abc";
$a[1] = "def";
$b["foo"] = 13;
//array definit cu ajutorul funcției
$a = array(
"color" => "red",
"taste" => "sweet",
"shape" => "round",
);
Tipul unei variabile, de obicei nu este stabilit de programator, ci este decis la rulare de PHP, în funcție de contextul în care acea variabilă este folosită.
2.6 Variabile
Variabilele în PHP sunt reprezentate de semnul dolar ($) urmat de numele variabilei.
Numele variabilelor sunt case-sensitive.
În PHP3 variabilele sunt întotdeauna atribuite prin valoare. Cu alte cuvinte, atunci cînd o expresie este atribuită unei variabile, întreaga valoare a expresiei originale este copiată în variabila destinație. Aceasta înseamnă că, de exemplu, după atribuirea valorii unei variabile alteia, schimbarea uneia dintre aceste variabile nu are nici un efect asupra celeilalte.
PHP4 oferă și un alt mod de a atribui valori valiabilelor: prin referință. Aceasta înseamnă că noua variabilă referă (devine un alias pentru, sau indică către) variabila originală. Schimbări în variabila nouă o afectează și pe cea inițială, și invers. Aceasta înseamnă de asemenea că nu sunt realizate copii și astfel atribuirea se realizează mai rapid.
Pentru a realiza o atribuire prin referință trebuie doar atașat un ampersand(&) la începutul variabilei care va fi atribuită (variabila sursă), ca în exemplul următor:
<?php
$var = "Bob";
$Var = "Joe";
$täyte = "mansikka"; // valid; "ä" este caracterul ASCII 228.
?>
sau
<?php
$foo = 'Bob'; // Assign the value 'Bob' to $foo
$bar = &$foo; // Reference $foo via $bar.
$bar = "My name is $bar"; // Alter $bar…
echo $bar;
echo $foo; // $foo is altered too.
?>
2.6.1 Variabile predefinite
PHP furnizează un număr larg de variabile predefinite. Multe din aceste variabile, nu pot fi documetate complet deoarece sunt dependente de serverul pe care rulează, de versiunea, modul în care a fost instalat și setarea acestuia precum și de alți factori.
Unele din aceste variabile nu vor fi folosite când PHP rulează în linie de comandă.
PHP-ul pune la dispoziția utilizatorului un număr mare de variabile predefinite. Iată câteva variabile predefinite:
SERVER_NAME – conține numele host-ului pe care serverul rulează;
SCRIPT_NAME – conține calea scriptului care rulează;
SERVER_PROTOCOL – conține numele și revizia protocolului prin care pagina a fost accesată (ex. ‘HTTP/1.0’);
Un alt tip de variabile importante în PHP, sunt variabilele cu nume variabil. Acestea sunt variabile al căror nume poate fi setat dinamic.
$a = "hello";
$$a = "world";
echo "$hello"; // se returnează world
Variabila $a primește șirul de caractere ”hello”, în timp ce a doua instrucțiune atribuie variabilei $hello șirul de caractere ”world”.
2.6.2 PHP Superglobals
$GLOBALS
Conține o referință la fiecare variabilă care este în mod curent valabilă în scopul global al script-ului. Cheile acestui șir sunt numele variabilelor globale.
$_SERVER
Reprezintă variabilele setate de serverul de web sau legate direct de mediul de execuție al scriptului curent.
$_GET
Reprezintă variabilele oferite scritpt-ului direct prin HTTP GET. Analog vechiului șir $HTTP_GET_VARS (care încă este valabil, dar depreciat).
$_POST
Reprezintă variabilele oferite scritpului direct prin HTTP POST. Analog vechiului șir $HTTP_POST_VARS (care încă este valabil, dar depreciat).
$_COOKIE
Reprezintă variabilele oferite scritpului direct prin HTTP. Analog vechiului șir $HTTP_COOKIE_VARS (care încă este valabil, dar depreciat).
$_FILES
Reprezintă variabilele oferite scritpului prin upload-ul de fișiere folosind modul POST din HTTP. Analog vechiului șir $HTTP_POST_FILES (care încă este valabil, dar depreciat).
$_ENV
Reprezintă variabilele oferite scritpt-ului prin mediu. Analog vechiului șir $HTTP_ENV_VARS (care încă este valabil, dar depreciat).
$_REQUEST
Reprezintă variabilele oferite scritpt-ului prin mecanismele de input GET, POST, și COOKIE, deci care nu pot fi de încredere.
$_SESSION
Reprezintă variabilele registrate unei sesiuni a script-ului. Analog vechiului șir $HTTP_SESSION_VARS (care încă este valabil, dar depreciat).
2.6.3 Folosirea variabilelor statice
O importantă caracteristică a scope-ului variabilei o reprezintă variabila statică. O variabilă statică există în scope-ul funcției locale, dar nu își pierde valoarea când execuția programului părăsește acest scope. Să considerăm următorul exemplu:
<?php
function Test () {
$a = 0;
echo $a;
$a++;
} ?>
Această funcție este destul de nefolositoare deoarece de fiecare dată este apelată să seteze valorea 0 variabilelei $a și să printeze "0".
Instrucțiunea $a++ care incrementează variabila nu servește nici unui scop deoarce, de îndată ce funcția iese, variabila dispare. Pentru folosirea unei funcții de numărare care nu va mai pierde număratoarea curentă, variabiala $a este declarată statică.
<?php
function Test()
{
static $a = 0;
echo $a;
$a++;
}
?>
Astfel, de fiecare dată când funcția Test() este apelată, aceasta va afișa valoarea variabilei $a și o va incrementa.
Variabilele statice oferă, de asemenea, un mod de a lucra cu funcțiile recursive. O funcție recursivă este o funcție care se autoapelează. Trebuie avută grijă la scrierea unei funcții recursive, deoarece este posibilă realizarea unei recursii infinite. Trebuie asigurat un mod de a termina recursia. Următoarea funcție recursivă simplă numără până la 10, folosind variabila statică $count pentru a știi când să se oprească:
<?php
function Test()
{
static $count = 0;
$count++;
echo $count;
if ($count < 10) {
Test ();
}
$count–;
}
?>
2.6.4 Variabile din afara mediului PHP
Formulare HTML (GET și POST)
Când un formular este trimis unui scrip PHP, informațiile din acel formular sunt automat transmise scriptului PHP. Sunt mai multe modalități de a accesa informația, de exemplu:
<form action="foo.php" method="POST">
Name: <input type="text" name="username"><br>
Email: <input type="text" name="email"><br>
<input type="submit" name="submit" value="Submit me!">
</form>
În funcție de setările și preferințele particulare, sunt multe modalități de a accesa datele din formulare HTML. Câteva exemple:
<?php
// Available since PHP 4.1.0
print $_POST['username'];
print $_REQUEST['username'];
import_request_variables('p', 'p_');
print $p_username;
// Available since PHP 3. As of PHP 5.0.0, these long predefined
// variabiles can be disabled with the register_long_arrays directive.
print $HTTP_POST_VARS['username'];
// Available if the PHP directive register_globals = on. As of
// PHP 4.2.0 the default value of register_globals = off.
// Using/relying on this method is not preferred.
print $username;
?>
Folosirea unui formular de tip GET este similară, cu deosebirea că se va folosi variabila predefinită GET în schimb. GET se poate folosi și pentru extragerea informțiilor din QUERY_STRING (informațiile de după semnul ? din URL). De exemplu, URL-ul http://www.example.com/test.php?id=3 conține date GET care sunt accesibile prin $_GET['id'].
2.7 Funcții
O funcție poate fi definită în PHP cu următoarea sintaxă:
function foo ($arg_1, $arg_2, …, $arg_n)
{
echo "Functie exemplu.\n";
return $retval;
}
Informația este trecută funcției prin intermediul argumentelor.
2.8 Structuri de control
Construcția if este una dintre cele mai importante componente a oricărui limbaj. Permite executarea condiționată a unui fragment de cod.
if (expr)
cod 1 …
else
cod 2 …
Cea mai simplă expresie repetitivă din PHP este while. Aceasta execută un cod atita timp cât expresia evaluată este adevărată (TRUE).
while (expr):
cod …
endwhile;
Expresia for, este ceea mai complexă expresie repetitivă din PHP.
for (expr1; expr2; expr3)
cod …
Prima expresie (expr1 – expresie de intrare), este evaluată (executată) necondiționat la începutul buclei.
La începutul fiecărei iterații, (expr2 – expresie condițională) este evaluată. Dacă evaluarea returnează TRUE, bucla continuă iar codul este executat. Dacă se returnează FALSE, executarea buclei se oprește.
La sfârșitul fiecărei execuții a buclei, (expr3 – expresie de reinițializare) este evaluată (executată).
2.9 Cookie-uri
PHP oferă un suport transparent pentru Cookies. Cookie-urile reprezintă un mecanism pentru stocarea datelor în browser și astfel se pot identifica utilizetoriicare revin pe o anumită pagină. Cookie-urile se pot seta folosind funcția setcookie(). Cookie-urile fac parte din header-ul HTTP, deci funcția setcookie() trebuie apelată înainte de trimiterea oricărui conținut către browser. Informațiile de tip Cookie sun apoi stocate în array-urile corespunzătoare, cum ar fi $_COOKIE, $HTTP_COOKIE_VARS ca și în $_REQUEST. Orice cookies trimis către client, va fi transformat intr-o variabilă PHP.
Dacă se dorește atribuire unor valori multiple unei singure variabile Cookie, aceasta poate fi tratată ca un array. De exemplu:
<?php
setcookie("MyCookie[foo]", "Testing 1", time()+3600);
setcookie("MyCookie[bar]", "Testing 2", time()+3600);
?>
Aceasta va crea două variabile cookie separate, cu toate că MyCookie va fi un singur array.
2.10. Upload-uri folosind PHP-ul
PHP este capabil sa recepționeze fișiere de la orice browser care respectă standardul RFC-1867 . Aceasta dă posibilitatea de a uploda atât fișiere text cât și fișiere binare.
PHP permite utilizarea funcțiilor de autentificare și manipulare a fișierelor, având astfel un control deplin asupra permisiunilor de upload pe server.
<FORM ENCTYPE="multipart/form-data" ACTION="_URL_" METHOD=POST>
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000">
Send this file: <INPUT NAME="userfile" TYPE="file">
<INPUT TYPE="submit" VALUE="Send File">
</FORM>
_URL_ trebuie să fie un fișier PHP. Câmpul hidden (ascuns) MAX_FILE_SIZE trebuie să preceadă câmpul de introducere a fișierului ce se dorește a fi transmis, iar valoarea reprezintă mărimea maximă acceptată în bytes a fișierului.
2.11 Suport
PHP are un manual oficial[1] întreținut de comunitatea din jurul proiectului. În plus, răspunsurile la multe probleme pot fi găsite printr-o simplă căutare pe internet. Există multe resurse[2] disponibile pentru un programator PHP începător.
2.1.4. Funcții MySQL
Aceste funcții permit accesul la serverul MySQL din cadrul aplicațiilor PHP. Pentru ca acestea să fie funcționale, PHP-ul trebuie compilat cu suport mysql, folosind opțiunea:
–with-mysql.
În continuare vor fi prezentate principalele funcții MySQL:
2.1.4.1. MySQL close
int mysql_close ([int identificator])
mysql_close( ) închide legătura cu serverul de MySQL asociată identificatorului. În cazul în care acesta nu este specificat, ultima legatiră deschisă va fi închisă.
2.1.4.2. MySQL connect
int mysql_connect ([string hostname [:port] [, string username [, string parola]]])
mysql_connect( ) realizează o conexiune cu serverul MySQL. Toate argumentele sunt opționale.
Legătura cu serverul va fi închisă imediat ce execuția scriptului a luat sfârșit.
2.1.4.3. MySQL create db
int mysql_create_db (string nume_tabel [, int identificator])
mysql_create_db( ) crează un tabel în baza de date asociat identificator-ului specificat.
Exemplu:
<?
$link = mysql_connect ("dark", "dinu", "parola")
or die ("Could not connect");
if (mysql_create_db ("my_db")) {
print ("Database created successfully\n");
} else {
printf ("Error creating database: %s\n", mysql_error ());
}
?>
2.1.4.4. MySQL db query
int mysql_db_query (string baza_date, string query [, int identificator ])
mysql_db_query( ) selectează o bază de date și execută o interogare.
2.1.4.5. MySQL drop db
int mysql_drop_db (string baza_date [, int identificator])
mysql_drop_db( ) șterge un tabel de pe server, asociat cu indentificator-ul specificat.
2.1.4.6. MySQL fetch array
array mysql_fetch_array (int rezultat [, int tipul_rezultatului])
mysql_fetch_array( ) este o extensie a comenzii mysql_fetch_row( ). Pe lângă faptul că stochează datele în câmpuri numerice asociative, stochează datele în indici asociativi, folosind numele câmpurilor ca și chei.
Exemplu:
<?
mysql_connect ($host, $user, $password);
$result = mysql_db_query ("database","select * from table");
while ($row = mysql_fetch_array ($result)) {
echo $row["user_id"];
echo $row["fullname"];
}
?>
2.1.4.7. MySQL fetch row
array mysql_fetch_row (int rezultat)
mysql_fetch_row( ) stochează un rând de date din rezultat asociat cu identificatorul specificat. Rândul este returnat ca un array. Fiecare coloană este stochată în offset-ul array-ului, începând de la valoarea 0.
Apelarea consecutivă a instrucțiunii mysql_fetch_row( ) returnează următorul rând, sau FALSE în cazul în care nu mai sunt rânduri.
2.1.4.8. MySQL num row
int mysql_num_rows (int rezultat)
mysql_num_rows( ) returnează numărul de rânduri.
2.1.4.9. MySQL select db
int mysql_select_db (string tabel [, int identificator])
mysql_select_db( ) setează tabelul tabel ca fiind cel activ de pe serverul asociat cu identificator.
2.1.4.10. MySQL result
int mysql_result (int rezultat, int rind)
mysql_result( ) returnează conținutul unei celule din rezultat. Această funcție este mai lentă în cazul în care rezultatul conține un număr mare de date. În acest caz este recomandată folosirea funcției mysql_fetch_row ( ).
2.1.5. Debugger-ul PHP
Debugger-ul intern PHP este util pentru depistarea erorilor, mai ales a celor evazive. Debuggerul utilizează un port TCP pentru transmiterea erorilor. Acest lucru permite utilizarea debugger-ului chiar și dintr-un program de editare de texte (opțiunea este valabilă doar pentru sistemele (u)NIX).
2.2. Limbajul MySQL
2.2.1. Introducere în MySQL
MySQL a fost creeat de Michael Widenius. Este o bază de date relațională (SGBD) mică și cu o viteză de execuție mare.
Utilizarea MySQL este restricționată doar de specificațiile GNU (Anexa A).
Principalele componente pe care le oferă MySQL-ul sunt:
suport pentru queri-uri multiple și simultane
câmpuri cu valoare fixă și variabilă
driver pentru ODBC (inclusiv sursa)
un sistem de protecție eficient
suport pentru chei unice, chei primare în sintaxa CREATE
un sistem malloc rapid
salvarea datelor în formatul ISO8859_1
posibilitatea de folosire a alias-urilor
capabilitatea de redefinire a tabelelor
2.2.2. MySQL – SQL
Baza de date MySQL oferă un set de instrucțiuni din specificația SQL92.
2.2.2.1. Crearea de noi tabele
CREATE TABLE nume_tabel ( creare_definiti,…)
creare_definiti:
nume_coloana type NOT NULL [DEFAULT valoare_default] [PRIMARY KEY]
sau nume_coloana INDEX [nume_cheie]
sau nume_coloana UNIQUE (nume_coloana[lungime], ….
REFERENCES nume_tabel
[ ON DELETE (RESTRICT | CASCADE | SET NULL) ]
Această instrucțiune este specifică SQL-ului și a fost introdusă datorită vitezei mare de execuție.
2.2.2.2. Ștergerea înregistrarilor din tabel
DELETE FROM nume_tabel WHERE definitie_where
Șterge înregistrări dintr-un tabel. Instrucțiunea returnează numărul de înregistrari afectate. În cazul în care se folosește DELETE fără clauza WHERE, tabelul este golit și apoi regenerat.
2.2.2.3. Ștergerea unui tabel
DROP TABLE nume_tabel [nume_tabel ….]
Șterge un tabel.
ATENȚIE! Comanda DROP TABLE șterge definitiv tabelul din sistem.
2.2.2.4. Instrucțiunea SELECT
SELECT [DISTINCT | ALL] expresia_select, … [FROM tabel … [WHERE definitie_where] [GROUP BY coloana, …] [ORDER BY coloana [ASC | DESC, …] ] [INTO OUTFILE ‘nume_fisier’ …]
Instrucțiunea SELECT este folosită pentru executarea interogărilor asupra tabelelor. Este inima limbajului SQL.
expresie_select poate să conțină următoarele funcții/operatori logici:
2.2.3. Administrarea serverului MySQL
Programul care este inima sistemului MySQL se numește mysqld. Programul mysqld rulează ca un daemon în sistem, acceptând conexiunile de la programele client, executând interogări și returnând rezultate. Conține un sistem multi-threading, ceea ce înseamnă că poate accepta și executa mai multe interogări in același timp.
Baza de date MySQL folosește un sistem special de tabele pentru a asigura accesul privilegiat la baza de date. Fiecare user folosește o parolă criptată.
În momentul în care se cere o conexiune la server, are loc următorul dialog între client și server:
în momentul conexiuni serverul atribuie un număr aleator clientului
clientul calculează un nou număr aleator din numărul primit de la server și din parola criptată pe care o primește de la user; numărul rezultat este trimis către server
serverul calculează un număr din parola salvată în tabel-ul său și din numărul aleator primit de la client; dacă numărul este identic cu numărul clientului, conexiunea este acceptată.
2.3. Open SSL
2.3.1. Introducere în SSL
Netscape Communications Corporation pune la dispoziția utilizatorilor un sistem de criptare RSA numit Secure Sockets Layer. SSL-ul dispune de un mecanism în care clientul poate să realizeze un contact cu server-ul și să transmită informații sigure.
SSL-ul utilizează un protocol “handshake” special care permite server-ului și clientului să se autentifice, dezvoltă un algoritm de criptare impreună cu cheile de criptare aferente. Acest algoritm realizează trei lucruri:
se asigură că, clientul și serverul se conectează in modul în care au fost programate să se conecteze;
realizează o criptare pentru a menține secret informațiile transmise între client și server;
se asigură de integritatea datelor. Cu alte cuvinte, clientul primește ceea ce serverul a returnat, și vice versa, asigurându-se ca datele nu au fost alterate în timpul tranzitului.
2.3.2. Introducere în Open SSL
Acest modul pune la dispoziția utilizatorului o metodă puternică de criptare pentru serverele Apache prin intermediul SSL-ului și a TLS-ului (Transport Layer Security). Implementarea acestui modul a fost realizată de Eric A. Young și Tim Hudson.
2.3.2.1. Licența de utilizare
Folosirea acestui modul în cadrul server-ului este resticționată de anumite legi, în funcție de țara în care este utilizat.
2.3.2.2. Tehnici de criptare
Înțelegerea SSL-ului necesită o înțelegere a algoritmilor de criptare și a semnăturilor digitale.
Algoritmi de criptare – există două categorii de algoritmi de criptare: convenționali și chei publice.
Criptarea convențională, cunoscută și ca, criptare simetrică, cere ca emițătorul și receptorul să împartă o cheie secretă. Această metodă prezintă dezavantajul că, cheia trebuie cunoscută atât de receptor cât și de emițător înainte de începerea comunicării.
Criptarea cu cheie publică, cunoscută și ca, criptare asimetrică, rezolvă problema schimbului de chei, prin definirea unui algoritm care folosește două chei. Una din chei este folosită la criptare, ceea de-a doua la decriptare. Astfel oricine poate să cripteze mesajul cu ajutorul cheii publice, dar numai deținătorul chei private îl va putea citi.
Semnaturi digitale – are ca scop unicizarea mesajului transmis. Semnaturile
digitale conțin o secvență de număr unic, asociat cheii private. În acest fel se elimină fraudele ce pot apărea în momentul unei tranzacții.
2.3.2.3. Protocolul SSL
Secure Sockets Layer este un protocol care se situează între protocolul orientat pe rețea (ex. TCP/IP) și protocolul aplicație (ex. HTTP). SSL-ul asigură o comunicare sigură între client și server, utilizând semnatura digitală pentru integritate și criptarea pentru siguranță.
SSL-ul realizează o sesiune SSL, urmată de o secvență handshake între client și server, așa cum apare în Figura 2.3.2.3–1
Figura 2.3.2.3–1 Secvența SSL Handshake
2.3.2.4. Securizarea comunicațiilor HTTP
O utilizare frecventă a SSL-ului, este pentru securizarea comunicației HTTP între un browser și un server. Acest lucru se realizează prin utilizarea protocolului aplicație HTTP împreună cu SSL, rezultând așa numitul HTTPS. Noul protocol aplicație rezultat utilizează o cale de transmitere diferită de HTTP, prin utilizarea unui alt port de comunicare (de obicei portul 443).
2.3.2.5. Configurarea SSL pentru un server (u)NIX
Configurarea protocolului SSL poate fi făcută în mai multe moduri: în funcție de tipul de protecție dorit și de vulnerabilitatea informațiilor vehiculate. Realizarea unei configurări corecte depinde de înțelegerea modului de funcționare a protocolului și de cunoștințele (u)NIX. Deoarece proiectul de față nu are ca scop configurarea unui server, exemplul următor este doar informativ.
httpl.conf
<Directory /www/html>
# In afara subariei doar accesul Intranet este permis
Order deny,allow
Deny all
Allow 194.102.78.0/24
</Directory>
<Directory /www/html/ie>
# In cadrul subariei orice acces Intranet este permis
# dar din Internet doar HTTPS + Strong-Cipher + Password
# sau alternativa HTTPS + Strong-Cipher + Client-Certificate
SSLVerifyClient optional
SSLVerifyDepth 1
SSLCACertificateFile conf/ssl.crt/company-ca.crt
SSLOptions +FakeBasicAuth +StrictRequire
SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128
# Forteaza clienti Internet sa utilizaze HTTPS
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^194\.102\.78\.[77-84]+$
RewriteCond %{HTTPS} !=on
RewriteRule .* – [F]
# Network Access Control
Order deny,allow
Deny all
Allow 194.102.78.0/24
# HTTP Basic Authentication
AuthType basic
AuthName "Protected Intranet Area"
AuthUserFile conf/protected.passwd
Require valid-user
</Directory>
Bibliografie:
1 . STIG SCTHER BAKKEN, ALEXANDER AULBACH
”Php’’ – Manual, Editura Egon Schmid, 2000
MICHAEL J. MILLER JR.
’’Mysql’’ – Documentation, Editura Data Konsulter Ab, 2000
RALF S. ENGELSCHALL
’’Open Ssl’’ – User Manual, 2000
JOHN DECEMBER, MARK GINSBURG
’’Html Si Cgi Unleashed” – Professional Reference Edition, Editura Macmillan Computer Publishing, 1996
5. Tudor Sorin și Vlad Huțanu, Crearea și programarea paginilor WEB,
București, L&S Infomat, 2004;
6. Vlad Huțanu și Carmen Popescu, Manual de Informatică intensiv pentru clasa a Xll-a, București, L&S Infomat, 2007;
7. Traian Anghel, Programarea în PHP. Ghid practic,
Iași, Polirom, 2005;
8. Julie C. Meloni, Invață singur PHP, MySQL și APACHE,
București, Corint, 2005;
9. Larry Ulman, PHP și MySQL pentru site-uri web dinamice,
București, Teora, 2006;
[10] http://www.php.net/manual/ro/ – manualul oficial php.net
[11] http://php.net/support.php – suportul php.net
12. https://ro.wikipedia.org/wiki/List%C4%83_editoare_PHP
13. https://ro.wikipedia.org/wiki/PHP
14. https://ro.wikipedia.org/wiki/Expresii_regulate_%C3%AEn_limbajul_PHP
15. http://www.seap.usv.ro/~valeriul/lupu/html_php_mysql.pdf
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: Php4all Sistem Online de Invatare Usoara a Limbajului Php (ID: 150109)
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.
