Lucrarea 4 Php Last Last
Transcript of Lucrarea 4 Php Last Last
-
8/3/2019 Lucrarea 4 Php Last Last
1/1615
Lucrarea_4 PRIMII PAI N PHP
Tema 4 PHP
4.1 Obiective
Introducere n elementele de baz ale limbajului PHP; Real izarea unor scripturi PHP, i mo dif icarea acestora pen tru a vedea
diferenele;
4.2 Introducere
PHP este un limbaj dinamic, ceea ce nseamn c PHP comunic cu utilizatorul, el efectuedinamic operaii, iar coninutul p aginii se schimb n real-time , n funciede prefer ine. Deexemplu n HTML nu putem modif ica con inutul unei pagini dectdac o nlocuim cu una
nou (cu coninut nou). n PHP lucrurile stau mai simplu, printr-un script putem introduce tiripe pagina noastr sau putem modifica titlul paginii, sauputem construi formu lare dinam icepe care util izatorii s le foloseasc. T otui acestlucru nu nseamn c ne debarasam del imb ajul HTM L, n icidecum.Cei care au cunotine H TML vor nelege i nva m aiuor PHP.
4.2.1 Sintaxa
La fel ca i n limbajul HTM L, atunci cnd deschidem un tag, el trebuie autom atnchis, pen trua nu genera erori (ex.i ), i n PHP, cu ajutorultagurilor vom putea del im ita codul PHP de codul HTML. Estefoarte important de tiut,pentru lejer i tate se pot fo los i mai s implu taguri le, cu toate acesteametodele prin care putem delimita tagurile PHP sunt m aimulte, spre exemplu:
echo"Acesta este un text";
Sau
atunci cnd este activat opiuneaasp_tagsdinphp.ini.Este recom andat utilizarea primelor taguri descrise anterior, adic:
Ca n orice limbaj de programare/scripting, n PHP exist posibilitatea adugriide com entariisau note n codul surs. Acestea nu sunt luate n considerare de ctrecomp ilator. Iatcteva exemple de comentarii acceptate n PHP:
/* Comentariu in stil C */// Comentariu in stil C++# Comentariu in stil Bourne shell
Not:Pentru nceptori nu es te recom andat folosirea com entarii lor de t ip shel l .Odeclaraie n PHP se nche ie tot timpul cu punct i virgul (;).
-
8/3/2019 Lucrarea 4 Php Last Last
2/1615
Neterminarea unei declaraii cu punct i virgul va duce la eroare de tip parseerror. Exemplu de cod care folosete un comentariu i o declaraie:
Prima linie este comentariu i este ignorat de PHP, a doua linie reprezint odeclaraie care se ncheie bineneles cu ;.
4.2.2 Aplica ii de nceput
Exemplul 1:Vom testa configuraia PHP cu ajutorul funciei phpinfo(), scriind urmtorulscript ntr-un fiier nou php, cu ajutorul lui PHP Design 2005/2007 saualt editor:
Se salveaz codul ca info.php i se ruleaza n browser /vezi lucrarea 1_last/.Se vor obine o mulime de informaii despre configuraia PHP, tipul serverului, etc.funcia phpinfo() are variabilele deja declarate n motorul PHP i de aceea nu estenecesar dect s o declarm o singur dat.Exemplul 2:Scriem un exemplu PHP n stil clasic, prin care salutm utilizatorii. Iat codul:
Se salveaz sub numele salut.php i ruleaz n browser (ex.http://localhost/salut.php). Pe ecran apare afiat textul Salutare la toti cititorii.Acest lucru a fost posibil datorita functiei echo() cu ajutorul creia de acum naintevom afia text pe ecran.Not: pe lng funcia echo() mai exist i print() care poate fi folosit nacelai mod.Observaie:echo() nu este totui o funcie, ea reprezint un constructor de limbaj dar pentruuurina exprimrii o vom numi funcie. O dovad bun n sensul c nu este funcieeste aceea c nu suntem nevoii sa folosim paranteze. Sintaxa echo Salutare latoti cititorii; este de asemenea acceptat.S scriem mai multe exemple cu funcia echo(), pentru c va fi folosit foarte des,i s vedem ce se poate face cu ea:
http://localhost/salut.phphttp://localhost/salut.php -
8/3/2019 Lucrarea 4 Php Last Last
3/1615
Salveaz codul de mai sus ca numelemeu.php i ruleaz-l n browser. Veiobserva c n ciuda faptului c am scris textul pe mai multe linii, el va fi afiat nbrowser pe o singura linie. Fapt care evident nu ne convine, aa ca vom apela latagul
din HTML:Acum textul va apare pe 3 linii separate.!!!!Pentru coderii avansai care doresc s aib totul clar i afiat corect nconformitate cu toate standardele vor opta pentru urmtorul cod:Caracterul \n este un caracter de tip escape. Diferena se poate observa cnd neuitm n codul surs HTML generat. \nnseamn newline, adic indic faptul curmeaz linie nou. Totui acesta nu este singurul caracter de tip escape, iatlista complet:
Tabel caractere escape
Caracter Descriere
\a alarma\cx control-x (x poate fi orice
\e escape\f formfeed\n newline (linie noua)\r carriage return\t tab
\xhh caracter cu codul hexa hh\ddd caracter cu codul octal ddd
4.3 Variabile si tipuri de date n PHP
n PHP toate variabilele ncep cu semnul de dolar ($). Dup semnul $ se poateintroduce un ir de caractere care poate aprea n diferite combinaii:$variabila $variabila123$prima_variabila$_VARIABILA
Acestor variabile le pot fi asignate orice valori, fie c este vorba de un ir decaractere, numere, propoziii, fraze, etc.n funcie de rolul pe care l au ntr-un script, variabilele pot fi de dou feluri:
variabile globale i variabile locale (ex. cele declarate n cmpul unei funcii).
4.3.1 Lucrul cu variabile si tipuri de date
-
8/3/2019 Lucrarea 4 Php Last Last
4/1615
n codul de mai jos vei regsi perfect conceptul de variabil:
Coninutul variabi lei$saluteste p asat funcieechocare va af ia con inutul acesteia, d eci
va rezulta textul Salutare natiune.Urm torul cod dem onstreaz concep tul de variabil ncapsulat. n cazul de maijos este vorbadespre o variabi l ncapsulat
Rulai n brow ser scriptul de m ai sus i vei vedea c el afieaz textul Num elem eu este A lexMaimescu.
Probabil v-ai dat seam a pn acum de ce se lucreaz cu variabile. Pentru c ne fac viaprogram ator mai uoar, une i variabile i putem asigna orice valoare, orice text orict ar fim are, ipe care l putem manipula d oar prin apelarea un ei sim plevariabi le a signate.
n codul de m ai sus am d eclarat dou variabi le$numarul1i $numarul2, crora le-am da tvalor i le 25, respect iv 20. Mai jos am efectuat opera ia s impl deadunare, al crei rezultateste coninut de variabi la$rezultat. Pentru a af i a aceastvaloare ne folosim de funciaecho(). Rezultatul este clar, pe ecran va fi afiat, num rul45 (20+25=45).Pe lng operaia de adunare (+) se m ai pot efectua opera urmtoarele operaiimatemat ice:(-) scdere, (*) nm ul ire, (/) m pr ire, (% ) m odul.
Tipurile de date n PHP su nt urmtoarele: array-uri; num ere de tip float sau double; integer; object; string
Aceste noiuni ar trebui s v fie cunoscute de la programarea n C++ .n continuare vom discuta despre tipurilestringi integer.
Unstringeste format dintr-o plaj de caractere. Acesta p oate s fie un cuvnt, ol inie, saupoa te un ntreg articol.Un integereste un nu m r ntreg care ia valori ntre(-32768 i 32767).Pentru a determ ina ce tip de da t este o anum it variabila, putem folosi funciagettype().Iat un exem plu:
-
8/3/2019 Lucrarea 4 Php Last Last
5/1615
Mai sus am creat o variabil numit $variabila_mea creia i-am dat valoareaSalut, sunt o variabila. Apoi prin funcia gettype() am chemat aceast variabilpentru a afla ce fel de tip este ea. Mai jos am utilizat echo() pentru a afia tipulvariabilei. Pe ecran se va afia, Aceasta variabila este de tip string.
Facei un test si pentru $variabila_mea=6
4.3.2 Variabile dinamice
De multe ori este util s folosii variabile dinamice. O variabil normal sedeclar aa:
$variabila = salutare ;
Acum s zicem c vrem o variabil care s aib numele valorii lui $variabila,deci scriem:
$$variabila = lume;Cu alte cuvinte, mai sus am creat o variabila cu numele $salutare i i-am datvaloarea lume. Ne putem juca cu variabile dinamice la infinit, dar atunci cnd s-aajuns la un nivel mare deja se creaz confuzii iar dac cineva ar dori s citeasc,pentru a mbunti, codul scris de tine, atunci nu ar mai nelege nimic.
Exist o sintax special care se folosete pentru variabilele complexe, i anume,ncadrarea ntre acolade {}:
echo "Salutare ${$variabila}"; // rezulta: Salutare lumeAtunci cnd folosim array-uri, o sintax ca $$variabila [1] este incorect pentru cPHP nu ar tii crui nivel s aplice indexul, de aceea se folosete expresia:{$variabila [1]} sau ${$variabila}[1].
4.4 Cod PHP n cod HTML
...
Codul de mai sus ilustreaz foarte bine colaborarea dintre PHP i HTML. CodulPHP poate fi asimilat cu uurin de tagurile HTML att timp ct el se afl ntredelimitrile .De asemenea se pot introduce mai multe declaraii ntre tagurile html, n diferitemoduri:
..........
-
8/3/2019 Lucrarea 4 Php Last Last
6/1615
?> .........
Sau
Fiierele de t ip PH P pot include codhtml, f ie c face parte d in ele, fie c e ste scris separa t.Privi i urmtorul cod:Iar codul luiindex.inceste urmtorul:
Exemplele de mai sus sunt concludente, ns trebuie specif icat c folosireafiierelor de tip.incnu este recunoscuta de Apache i nu este parsata caphp, aa cinformaii senzitive sepot vedea prin intermediul browserului, de aceea trebuie s apelam la setri lehttpd.confi s adugm urm toarele linii:
Order allow,deny
Deny from all
n acest fel am blocat accesul din exteriorul serverului la f i ierele cu extensia.inc. Aceastaeste o practic foarte bun (care poate fi executat i prin intermediul unui.htaccess1n caz canu avem acces lahttpd.conf, cum se ntmpl de obicei pe serverelevirtuale).Not: Totui nu este o practic bun i nu se recomand folosirea fiierelor cu extensii.inccimai degrab cu extensia.php.Ch iar i aa problemele nu se termin, deoareceacestea t rebuie protejate mpotr ivaaccesului direct.
Iat ce metode de protecie se pot folosi: plasarea tuturor f i ierelor cu informaie sensibil ntr-un director sau mai mudirectoare care urme az s f ie protejate prin.htaccess. Aic i ne referim lafiierele care nusunt accesate direct de user n pagin, ci la cele care se introducde obicei cu funciileinclude(),include_once(), require(), require_once().
plasarea tutu ror fiierelor cu inform aii sensibile ntr-un director sau d irectoarediferitede cel din rdcina web (httpdocs, w ww , etc), n acest fel ele nu pot f i accesateprin browser n nici un fel. Aceast metod nu este aplicabil pentruservere virtualesau ntr-un enviromen t t ip server de host ing din cauzarestriciilor sau din cauz cPHP poate fi setat nsafe_mode.
http://e/0_BAZE%20DE%20DATE_CURS_IA_MI_DINA/LABORATOARE/00_LUCRAREA%20DE%20LABORATOR_2/Lucrarea%20nr.7.doc#bookmark0http://e/0_BAZE%20DE%20DATE_CURS_IA_MI_DINA/LABORATOARE/00_LUCRAREA%20DE%20LABORATOR_2/Lucrarea%20nr.7.doc#bookmark0http://e/0_BAZE%20DE%20DATE_CURS_IA_MI_DINA/LABORATOARE/00_LUCRAREA%20DE%20LABORATOR_2/Lucrarea%20nr.7.doc#bookmark0http://e/0_BAZE%20DE%20DATE_CURS_IA_MI_DINA/LABORATOARE/00_LUCRAREA%20DE%20LABORATOR_2/Lucrarea%20nr.7.doc#bookmark0http://e/0_BAZE%20DE%20DATE_CURS_IA_MI_DINA/LABORATOARE/00_LUCRAREA%20DE%20LABORATOR_2/Lucrarea%20nr.7.doc#bookmark0http://e/0_BAZE%20DE%20DATE_CURS_IA_MI_DINA/LABORATOARE/00_LUCRAREA%20DE%20LABORATOR_2/Lucrarea%20nr.7.doc#bookmark0 -
8/3/2019 Lucrarea 4 Php Last Last
7/1615
1 Un fiier .htaccess este un simplu fiier text ce conine comenzi, denumitedirective Apache. Aceste directive se aplic i afecteaz fiierele din directorul ncare se afl fiierul .htaccess precum i subdirectoarelor acelui director .
5 Variabile PHP utilizate n paginile web dinamice
5.1 Obiective
Structura i elemente de baz pentru construirea unui site dinamic.
5.2 Introducere
n continuare se prezint o modalitate de cum se poate construi un site cuajutorul limbajului HMTL i PHP.Ca exemplu, vom construi un site al studenilor de la specialitateaManagementul Informational. n acest sens, studenii vor crea n propriuldirector de pe server, un subdirector MI_101, n care vor mai creaurmtoarele subdirectoare: IMG, STUD, CATALOG i PROIECTE.
Exemplul prezentat nu este un standard, este doar o modalitate de a vedea cum sepoate construi un site i cum se preiau sau trimite variabilele prin intermediul
site-ului. Putei, pe baza acestui exemplu, s v construii propriul site, n formapreferat de dvs. i adaptnd modelul acesta la necesitile voastre.
Forma general a sitului este dat n figura de mai jos:
Pentru antent se poate opta pentru dou variante:1. fie se realizeaz un desen n bmp, denumit antet.gif, de dimensiune
-
8/3/2019 Lucrarea 4 Php Last Last
8/1615
2. fie se creeaz un nou fiier antet.html, n care se creeaz un tabel cu o liniei 23 celule n care se pot introduce: imagini, text sau alte informaii.
-
8/3/2019 Lucrarea 4 Php Last Last
9/1615
Studenii vor realiza imaginea n bmp, aa cum arat mai sus, sau dup propriaimaginaie.
5.3 Elementele componente
5 .3.1 Index
index.php - n care se seteaz nivelul de raportare al erorilor. Apoi, se verific dacexist fiierele antet.html , corp.php isubsol.htmli se ncarc sau se oprete cu unmesaj de eroare.
Scriptul acestui fiier este:
5 .3.2 Fi ierul antet.html
antet.html - n acest fiier se afieaz codul html pentru nceputul paginii, i dacexist, se ncarc i fiierele cu cod CSS i JavaScript folosite n pagin.
Managementul Informational
5 .3.3 Corpul paginii
coprp.php - conine codul HTML existent ntre tagurile i Dacexist, se ncarc i fiierele care conin meniul vertical, precum i fiierul careafieaz coninutul paginii cerute.
-
8/3/2019 Lucrarea 4 Php Last Last
10/1615
{ include("meniu_vertical.html"); } echo' ';if (file_exists("pagina.php")){ include_once("pagina.php"); } echo ' ';echo'';?>
5 .3.4 M e n iu l v e r t ic a l meniu_vertical.html - conine codul HTML pentru meniul vertical
HOME Studenti Catalog Proiecte Contact
5 .3.5 Pagina de afi at
pagina.php - afieaz coninutul paginilor, n funcie de linkul cerut. Dac secer pagini externe, se verific dac acea pagin exist i se ncarc pentru afiare
-
8/3/2019 Lucrarea 4 Php Last Last
11/1615
if (file_exists("studenti.html")){include_once("studenti.html");$afisare = '';} else{ $afisare = '
Eroare: Nu se gaseste fisierul studenti.html';} break;//CATALOGcase 'cat':if (file_exists("catalog.html")) {include_once("catalog.html"); $afisare = ''; } else{ $afisare = '
Eroare: Nu se gaseste fisierul catalog.html';} break;//PROIECTEcase 'pro':if (file_exists("proiecte.html")) { include_once("proiecte.html"); $afisare =
''; } else { $afisare = '
Eroare: Nu se gaseste fisierul proiecte.html'; }break;//CONTACTcase 'contact':if (file_exists("contact.html")){$afisare = '';include_once("contact.html");} else{ $afisare = '
Eroare: Nu se gaseste fisierul contact.html';} break;case 'index':if (file_exists("primapagina.html")) { include_once("primapagina.html");$afisare = '';} else{ $afisare = '
Eroare: Nu se gaseste fisierul primapagina.html';} break;default:$afisare = '
Eroare: A fost ceruta pagina care nu exista pe server.';}// se afiseaza codul html pentru pagina
echo $afisare;?>contact.html - poate fi o pagina extern, cu coninut HTML sau PHP, precum iformulare de contact.
Pagina de contact
e-mail: [email protected]
telefon: 0373-0693.5333
fax: 0373-0693.5333
mobil: 0373-0693.5333 -
8/3/2019 Lucrarea 4 Php Last Last
12/1615
5 .3.6 Subsolulprimapagina.html - este fiierul care afieaz informaii generale despre scopul siobiectivele sitului, i ncheie tagul html.
Aceasta este prima pagina
care trebuie sa contine Scopul Sitului.subsol.php - este fiierul care afieaz n josul paginii informaii referitoare la: dataultimei modificri; date despre dreptul de autor; informaii generale, i ncheie tagulhtml.
Subsolul paginii web.Ultima actualizare:
Informatiile continute de aceste pagini apartin autorului sau suntpreluate din diverse surse (precizate).
Informatiile prezentate aici pot fi folosite in mod liber de catre oricinefara obligatii.
Autorul nu-si poate asuma nici un fel de responsabilitate legata defolosirea incorecta a informatiilor prezentate.5.4 Mod de lucrun directorul C:\Program Files\EasyPHP2.0b1\www\.......\,sau directoriul Dvsde lucru unde este instalat Appache, se creeaz un subdirector, de exempluLaborator, n care se creeaz toate fiierele enumerate mai sus, mai puindata_ora.php, care va fi plasat n directorul module (aa cum se vede n figura de mai
jos).
Schema de lucru cu modul de instalare APPACHE si PHPconform lucrarii_1_LAST
Se creeaza mapa SAIT_TEST in htdocs din Mapa APPACHE2.2. Inaceasta mapa sa inscriu toate fisierele si mapele de lucru.
-
8/3/2019 Lucrarea 4 Php Last Last
13/1615
Apoi se lanseaza
Se selecteaza directoriul SAIT_TEST
-
8/3/2019 Lucrarea 4 Php Last Last
14/1615
Se selecteaza mapa WWW
In ultima mapa se testeaza fiecare fisier aparte si pentru a
primi urmatoarea pagina WEB test, pe hostul local selanseaza
-
8/3/2019 Lucrarea 4 Php Last Last
15/1615
Tem:n meniu_vertical, s se mai introduc un link, sub Contact, denumit Admin,care va deschide (pe viitor) o pagin pentru conectarea la o baz de date ncare s se introduc datele ce vor fi afiate n paginile Studenti i Catalog.S se creeze un fiier stil.css n care s se defineasc stiluri particularizate pentruacest site (se va apela la laboratorul nr. 3).
In cazul in care veti incerca sa lucrati cu DENWER-ul
Veti avea in directoriul home
Structura mapei care contine pagina web test
-
8/3/2019 Lucrarea 4 Php Last Last
16/16
Lansarea paginii web experimentale