lucrarea 4 php last last

Upload: -

Post on 06-Apr-2018

264 views

Category:

Documents


1 download

TRANSCRIPT

  • 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 Subsolul

    primapagina.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