Vous êtes sur la page 1sur 224
Bill McCarty Traducere de Mihai Manastireanu AUT =o Teora Titu orginal: PHP 4 A BEGINNER'S GUIDE = Copyright © 2002 Teora ‘Toate drepturile asupra versiuni in limba romané apartin Edlturli Teora, Reproducerea integrala sau parfiald a toxtulul sau a ilustratilor din aceasta carte ‘este posiblé numai cu acordul prealabil sris al Edituri Teore, Original edition copyright © 2001 by The McGraw-Hill Companies. All rights reserved. Romanian edition copyright © 2004 by Editura Teora, All rights reserved. Teora Calea Mosilor nr, 211, sector 2, Bucuresti fax 01/210.38.28 e-mail: teora@toora.kappa.10 : eora~ Cariea prin posta GP 78-30, cod 72450 Bucurestl, Romania, tal: 017052.14.31 e-mail: epp@teore keppa.ro Coperti: Gheorghe Popescu Tehnoredactare: Techno Media Director Editorial: Diana Rotary Presedinte: Teodor Raducanu NOT 4985 CAL PHP4 ISBN 973-601-737-0 Printed in Romania Cuprins Introducere PARTEAI Scrierea programelor PHP elementare 1 Creates programelor PHP : 2 Elementele constructive ale limbsjuhii PHP 3 Crearea formolaselor HTML 4 Acoesul a date nw : 5 Lucral cu valor sealare PARTEA ATEA Scrierea unor programe PHP cu un grad avansat de complexitate 6 Scriezea instructiunilor PHP condigionale 7 Usilizarea funcyilor 8 Usilizarea tablourilor 9 Usilizarea sirutilor. PARTEA A IILA Lucrul cu date stocate 10 Usilizarea vatiabilelor cookie TI Lucrul eu fisiere si catsloage 12 Expedierea si receptionarea mesajelor de pojti electronica. 13. Nogiuni fundamentale despre bazele de date si SQL Cuprins PARTEA AIV-A Utilizarea functionalitatilor avansate ale limbajului PHP 14 Accesul la bazele de date relapionale unin 269 15 Uuilzarea claselor gia obiectelor 302 16 Utlizarea sabloanelor de aplicayie 318 17 Depanarea scripturilor PHP vm 327 PARTEAAV-A Anexe A. Raspunsuri la testele de verificare Alccasti carte este dedicatd lui Jobn C. Reynolds, B Instalazea PHP. Chief Information Officer la Azgisa Pacific University © Resurse PHP : . : 1362 Fie ca Dummezen si-i binecuwénteze eforturile de a conduce D Elemente fundamentale ale sistemului de operare UNIX. 364 APU la 0 noud percepie asupra lebnologiei si a beneficiitor E Carsctere escape 1 383 potentiale pe care aceasta le ofr. F ASCH 384 G Operstori PHP ne 387 HH Sceustare so 389 1. Funegi PHP 304 Index 423 Despre autor Bill McCarty a scris peste 2ece els de programare a calculatoarelor, abordind subiecte precum Java, preluccarea distribuitt a daelor, C++ si Linus si este seduetor colaborator la revista Linx Magagine, pentru cate scrie un editorial lunax Este profesor asociat de Web si tehnologia informatie la Facultaten de afaceri si ‘management a Universiti Azusa Pacific, Azusa California, unde a predat vreme de sapte ani in cadeal programulsi de informatickaplicach al facultii respective. Bill a dobindt sul de doctor fa gestunea sistemelorinfotmafionae la Universitares Clcemont, California, sis hicrat vreme de 15 ani ca progtamator gi gestionar de programe. fn prezent, ocuiste in La Habra, California, alituri de familia sa, Din partea autorului ‘Muli oameni au colaborat la accasti carte. Margot Maley de Ia Waterside Productions, Inc. ha prezentat pe autor la editura Osborne/MeGeaw-Hil, Rebekah ‘Young a contribuit la conturarea structusii noii clef. Paulina Pobocha si Monica Falss.s-au ocupat atit de autos, cit i de cartea aflaa la inceput, cu incurajisi sau indemnuci, dup’ cum o cereau circumstantele. john Steele a descoperit multe etori de ordi tehnic sia furnizat numeroase sugesti de valoare. Cu pugin noroc, au Fimas erori foarte pune sau chiar deloc; ex toate acestea, toate erorile caze apat sunt numai din vina antorului, care ar fi ebuit si fuck mai pusine greseli la inceput decit si le lase pe toate, ca un lenes, in seama lui John. Mike MeGee a ycurijat* ceuvinte, fraze si propozittincorecte, neclare sau... mai su. Mike sia edstigar de mai ‘moite ofisalarul, Familia autorului~ Jennifer, Patick si Sara ~ au plstrat ospoditia pe linia de plutire pe dura Iungilor Inni necesare pentry serierea tere ci datcndse at foro je se ator fd, ‘ocrotitorul autorulu, Iisus Christos, a fost si timéne unicul reper autentie de adevir si valoace al autorului, constituind 0 sursé de inspieatie a muncit acestia Introducere PHP este una dintre cele mai interesante tehnologii existente in prezent. Deos- rece imbind caracteristci dintre cele mai complexe cu simplitatea in utilizace, PHP a devenit rapid un instrument de frunte pentru dezvolearea aplicasilor in Web. Totus spre deosebire de alte instrumente populare pentru dezvoltarea aplicagilor Web, [_SBBT ote Perl, PHD este un limbaj de progsamare comod pentru incepitosi, chiar si | BEER cei care nu au mai desCgurst acuity de programme tn wioone [25 Baek sunceti un cunoscitor al limbajulai HTML, dar au aveyi experieng’ ia tte de prograrare, vi pote pun inrebete: care suatFeneionaliie sup etdre pe cate le poate asigura cunoasterea limbsjului PHP Ca gi alte limbaje de sping pentru Web, PHP vi permite si furnizati un conpinut Web dinami, adicd wn, sib Web care se modiek setae delno techs ee clae e ~-alt"Conyinural Web este un clement important in sustinerea eraficulé unui st Web; de reguli, victatorii au vor mai reveni la 0 pagini Web care contine aceleasi informagi ca si cele prezentate la ultima vit. Pe de ata part, siturle Web feee- ‘vent actualizae pot atrage cancitifi enorme de trafic Mai mult, dpre deosebire de imbajele de scripting, pecum JavaScript, PHP rulesck pe serveral Web, nu in browserul Web, In consecingi, PHP poate obgine sccesul ln fisiere, baze de date si alte resurse inaccesbile progzemulu JavaScript) Acestea constitic bogate surse de confinut dinamic, care ateag viztatori Aceasti catte este menicl a prezentaciitorului clemente introductive de progea mate si dezvoltare in Web folosind PHP. Este important si tetinesi ci volumul de fai nu reprecintl decic un punct de plecace. Dezvoltarea Web este o activtate solicitanti, iar vitorul dezvoliator Web trebuie s& dispuni de multe abilitii, printre care spe aceca de programator, Sunt increzitor c& dezvoleatorii Web incepitori vor isi in aceasek carte un prim pas util i amical in acivtaten de programace in PHP Mai mult, eartea a fost atent conceputl eu scopul de a asigura un fandament penteu invigarea nogiunilor ulterioare pe care le implica o bun cunoastere a limbajului PHP. Dups studiul materialului prezentat aici, citicorul trebuie 8% fle pregitit a Jnviga mai multe despre caraceristici si fmeyionaliisi PHP mai complexe, precum, XML, LDAP si cele legate de comerpl electronic. ze og iB Modul de organizare a c&rtii Aceasti carte incepe cu.. inceputul, explicind modul de funcfionare a limbajului PHP, apoi tece la detalicrea moduli de create a programelor PHP, scotind in cvidengl decalile mici, dat importante, precum modul de incticare a scxipturilor PHP. Volumal confine o trecere in revisth a clemeiitelor fundamentale ae limbajula HITML $i o explicace « formularclor HTML. Cele saptesprezece module ale crit 10 | Iatroducere abordeazi in mod controlat o prezentare gradati a conceptelot folosite in activita- tea de programare si a clementelor specifice limbajului PHP, fiecare modul conti- nnd clemente destinate a reimprospita memoria 5iingelegerea cititorului. De "ea, cartea confine un modul (Modulul 13) care explicd elementele funda- mentale ale bazelor de date relagionale, Scopuri Fiecare modal incepe cu un set de seopusi expicte atfl incit dumneavoastra si avefio dee privind integrareafiecirai modul in imagines de ansamblu Test de evaluare Un auro-es, care vi sj si vi evalua nivel de progres, apace de asemenca in cada leckrai modu, Raspunsuril I acete teste de evaluare se pot gisi in Anexa A. Teste ,,la minut” Fiecare sectune principal a cirgi conjine un test qa minut“, un auto-test care i sjutl si nu adornigi la volan, Rspunsurie Ia aceste teste se pot gisi la baza pagin unde se aft teste respective. Sfatul specialistului Cartea include multe casete de acest tip. Textele incluse in casete extind mate- tialul prezentat in capitolul asociat si sporese calitatea acestuia. Deseori, casetele .Sfatal specialisului* congin materiale mai avansate, care au sunt importante pentru programatorul PHP incepator, dar ajuté cititorul si examineze in perspectiva pro- blemele de la aivelnl intermediar al limbajului PHP. Casetele ,Sfatul specialisrali"™ folosesc un format de tip intrebare-rispuns. Proiecte Ficcare modul congine unul sau mai multe proiecte eare vi indic8 modul de aplicaze a conceptelor si tehnicilor explicate in modululrespecti. Apo, veti putea folosi aceste proiecte drept baz pentru studiu si experimenteulterioare, Deseor, projects! fumizeazi un bun punct de plecare penta propziul dumnneavoastri program practic. Inroducere | it Nu este necesar& experienta anterioara in domeniu! programarii upune ch sunteyiinte-o oareeare misuri familiacizat ou omeste de la premisa ci aveyi experienti in fa scent care, s pr HTML... 5 cam atit. Mat ales, nu se domeniul programa, De aceea, este explicat modull de creare a formularelor HTML, modul de programare si utilizare a limbajului PHP si sunt descrise toate clemencele necesare pentru a dezvoita situri Web simple, sustinute de baze de date, folosind PHP, Programe necesare Pentru a rula exemplele gi proiectele din aceasti carte, veti avea nevoie de acces Ja uur server PHP care suleazi PHP versiunea 4. Pucetiinstalalimbajul PHP pe propriul dumneavoastra calculator, folosind informagile furnizate in Anexa B, “Tomusi, ca incepitor, este mai convenabil si folosigi un server Web administrat de © alti persoani. Anexa C vi indici unele situri Web care identifica furnizorii de servicil Internet (ISP) care accept PHP. Molyi frnizoti de servicii Internet asigurt PHP la preturi de 20 USD lunar (in $.U.A.—N. T) sau chiar mai pusin, Nu uitafi de programele din Web Codul sursi aferent rtusor exemplelor si proietelor din accast carte este disponibil gratuit in Web, la adresa hutp://wwrw.osborne.com. Partea I: Scrierea programelor PHP elementare: Modulul 1 Crearea programelor PHP Scopuri structiuni PHP care trimit text la un browser Web « Invatati s8 documentati un script PHP + Invitati si incdrcati un script PHP intrun server prin intermediul protocolulul FTP «+ Invatati «4 executati un script PHP fn acest modul veg Daci PHP nu este ru programele PHP demon nai programele prezentat, trebuie si instalag si sh testay imbajul PHP respectind instructiunile date in Anexa B. fa modul de creare si de executare a programelor PHP. sistemul damn A Crearea unui script PHP Un script PHP poste § foarte simp sau foarte complex, Tomi exearea cia 5 2 unui seript PHP complex este extrem de simpli, necesitind numai un editor de texte obgnuit. fn aceastseegine, vei invita sd cea scepeusi PHP kimple, care | | Partea I trimit unui browser Web date de iesire sub forma de text. De asemenea, veri inviga ‘vii documentati scripmurile, astfel incit dumneavoastri si alte persoane sk pureti injclege sapid scopul si seructura acestora, Scrierea scripturilor PHP Peaeru a erea scripruci PHP, majoritatea programstorlor PHP folosese va editor de texte obignuit. Pateifolosi orice editor de texte dori. Sub Microsoft Windows, programatorii PHP folosesc freevent prograrmul Windows Notepad. Daci preferas, puted folosi WordPad sau chiar un procesor de texte precim Microsoft Word. Totus, dacifolositi un instrument difert de Notepad, trebuie si luayi misuri penta 2 salva sctiprul damneavoastl sub forma de document text; in eaz contas, iierul script contine informatii de formatase cate vor dezuta serverul PHP. Daci folosisi UNIX sau Linux, putey crea scriprari PHP folosind un program um vi, emacs sau pico. Programal in sine nu conteazi, atta vreme cit poate ves fisiere text ASCTE Scrierea scheletului programelor PHP Fiecare program PHP inchade dow’ lini speciale, care indicd serverului PHP textul cuprins incre cele dow! lini este alcituit din instructiuni PHP. Practic, aceste linit pot ft asimilate copertelor unei clrgi, care pAstrea24 unitatea programulul dumneavoaste’ PHP, Pentru a incepe si serieti an program PHP, lansati editorul dumneavoastei de texte preferat si introduceyi urmitoarele dou! lini in spayiul de Iucra al edivoruluis s- Sfatul specialistului E& inwebare: Cand scriu programe in C, folosesc un mediu integrat de dezvoltare (IDE’) precum Microsoft Visual C++, care reprezintd o gazda a unor caracteristici speciale, cate simplificd proiectarea, ccodificarea si testarea programelor. Existi medii de tip IDE pentru PHP? Raispuns: Uncle editoate de texte, precam vi, asigusi.un suport special pentru serierea programelor PHP. De exemple, carscterstca de colorare @ clementelor de sintaxi, prezenti in vi, determina serierca difertelor elemente ale programelor PHP in euloridiferite. Muli programatori PHP sune de pirere cl procedeul de colorare 2 elementelor de sintaxi fuciiteazi depistaea exotilor din programele propri, “Abreviere de la Integrated Development Environment. ~ N.T. Modulul 1: Crearea progeamelor PHP | 35 Unele editoare de texte, precum HomeSite al firmei Allaire, asiguri colorarea clementelor de sintaxa si ake racteristici care vin in sprijinal programatorilor PHP, precom manualele on-line si constructor de expres. Cu toate acestea, scrieyi programe PHP, probabil ce veu gisi uiizarea uni editor dc texte obignuit mai simpli decit folosirea unui editor echipat cu functionalitig PHP speciale. in caz contras, o bunt parte din timpul dumncavoastel va fl aloeatd inv 6 4 instrumental respectiy, a serienli progra- melor PHP in sine. Dupi ce vey cipita experiengl in serierea programelor PH, rebuie si examinayiinstrumente care vi pot ajuta in actvitatea dumneavosstr. fn acel moment, consultai lista editoaeelor PHP, disponibil in Web la adresa herp: /swww.ieworks.demon.co.uk/phpeditors hem, isi modului de wil Apoi, salvatiscriprul dumneavoastra elementar sub fornil de fsier text, cd un ‘ume cate respect urmitoarele regi © Numele fisierului crebuie si fie alcdtuit numai din caracrere minuscule, cfte si liniuye. Usilizarea spasilor sia altor caractere este interzisi ‘© Extensia numelui figierclos trebuie s& fie . ph. Asigurafi-vi cia ales un mume semnificatiy, care si descrie funcyiaseriprulia durmneavoastra, astfel incit si-1 pute identifica rapid dupa sipeimani saw chiar luni de la crearea acestuia. Vegi descoperic& liniujele sunt utile pentru separarca cuvin- telor care alcituiese numelefigierului, mind astfel liibilitatea acestuia. De exemn- plu, un fsier care confine wn script PHP ce vA permite si vizwalzat nivelurile stocurlor aflate pe inventar poate primi numele nivelurs-stee.pnp. Chiar si la mult timp dupa crearea fisierului sespectiv, nu vei avea probleme in a determina scopul acestuia. SD Sfatul specialistului — & _Intrebare: Aceste reguli de denumire a figierelor par a avea un. wracter deosebit de limitatis. Nu pot folosi gi alte caractere pentns denumirea figierelor care contin scripturi PHP? R&spuns: Ba da, putey. Dar utilizarea altor caractere vi poate provoca necazuti, De exemplu, numele de figiere din Microsoft Windows nu sunt sensi- bile la diferenta intre majuscule si minuscule, in timp ce numele de figcze din UNIX precints accastl sensibiltare. De asemenea, majoritatea sistemelor de operate prescriu reguli de denumire a fgieelor care deri de regulile pe care ‘rebuic si Je respecte adresele Web (URL). Puteyi evita problemele care apar dacoriti acestor diferenfe folosind numa litere minuscule, cifte si liniuge in rnumelefiserclor care congin scripturi PHP. Test .la minut" © Care dintre urmitoazele nume de figicre respect reyulile date penteu , folo site penta delisitar Jor HTML, respectiv cartcteru J, folosit pentra a indica membrul de inchidese al unei perechi de etichete HTML De exemply, iat o instructiune PHP care are drept date de iesire un fagment dinte-ua vers din Soivoarea a IIa de Eminescu” ‘echo(* © Un mareaj de comentariu (/ /) care lipseste sau care a fost introdus gresit De exemplu, iaté un script care confine un tip de eroare frecvent intalnit. Pusey identifica eroases? —Intrebare: Daca se doreste includerea unei ghilimele duble in ccadrul unui sis? Se poate proceda astfl firi a se folosi o secvengi escape? Raspuns: Simpla insemje a unei ghilimele duble in cadcul unui gir ar derata limbajal PHP, deoarece ghilimelele duble vor marea, in spatengi,sficital siul Pentru a include ghilimelele duble in cadrul unui gx include ral intre ghilimele simple, nu duble astfel: “El aise “sauut.*',Sirucile Incadrate inte ghiimele simple, respectiv duble, se comport oarecum difeit unee in eaport cu celelaltes ‘ef invita mai multe despre siruri in Modulul 9. Valori literale si variabile Categoile de valoci despre care ai invigar pind acum se numese rain loa. Deseos, este convenshil si arribui ur ume unei valor, similar procedeului comun folosi in algebra, O valoare cu nume se nuimeste sarah, deoarece este posibili ‘modificacesvalotitasociate mumeli. Prin contrast, o valoate literal este fix. Daci prefecai, o vasiabilt poate fi asimila® cu 0 cased cae poarth mumele variable. Valoarea unei varabile este dati de o valone itera, scish pe o bucati de hate plasati in intesioral casetei. fn orice moment, putes inlocui bucata de haste ov 0 alta, care coagine o nou valoare a variable ""Unitate de misurd pene distant folositi in giie de lim englea si egal cu apro- simadv 17 km, = NT. Unitare de misur8 pentru capacciifofosit in ple de limba englezd si egal cu apro- simativ 4 bis. ~ NT : Ragpunsuri la tes + Duda, deoarece valoarea include deseoti o part fracyionari + Inueg, deoarece valoarea este un ums fri parte Fractionart * Sis teoarece valoarea nu va fi calculata si poate congne lina, spi sau parantcze ‘Modulut 2: Elementele constructive ale limbajului PHP | 29 PHP impune citeva regull asupea numelor vasiabilelor,astfel inet si poacd face imediat diferenta dintre variable si numere, sirai si alte elemente de program, Tat ‘0 metodi de formare a unui nome corect de variabili PHP: 1. fncepesi cu simbola! dolaruhui (§) 2. Dupi simbolul dolaruui, scriei o liter sau o liniugi de subliniere (_). Litera poate fi scr cu majuscule sau minuscule. 3. Continuai prin a adiuga oricite ltere, cifte sau liniufe de subliniere dorigi. Nu vi lisagi dus de val sisi creagi un nume de variabilé atic de lung, astfel incit si fie Aifiil de tastat. Creag, totusi, un nume care si descrie cu clastate scopal varabil Tati céteva exemple de aume de vatiabile corecte si incorecte: Slungine Covet sx CCorect, dar nu foarte descriptiv y Incorect, nu incepe cu semmul dolarului Stside Incorect, semnul dolarului nu este urmat de o litera sau de un caracter de subliniere saeb Incorect, confine semrul plus acolo unde sunt permise numa tere, cite $i caractere de subliniere Desi putes folosi tere majuscule sav minuscule in sumele vatiabilelor, diferenga dincee literelescxise cu majuscule si ele scrise cu minuscule este important Vasiabila denumicé sa mu este una si acceasi cu varabila sa entra a asocia 0 valoare nei variabile, vet serie ceea ce se numeste 0 insiuc ome de anibuir. Jats wn exeenphn simp "Stobottra = 72.3: ‘Nusmele vacabile este urmat de un semn egal (=), care identifc’ instructianea ea fiind o instrucyiune de atribuire, Semnul egal este urmat de valoarea care uemea2’ a i atsibuitd varabilei In acest exempla, valoaséa este dati de valontea literals dubli 72.9, Caracteral punct si viegula (;) marchenza sista instrucfunil [Exempla anterior 4 atribuit unei vasabile o wiloase literal. De asemenca, puteyi susibui valoarea unel variable citze aleh vasabil, prin scxierea une! instruct de suwibuive ase: ‘Gastigatr ~ spurctajid-cei_aas Jn acest exz, valoarea variabilei spunetajut_cel_mai_nare inlocuieste valoaren vasiabilei seastigaton. Uherior pe parcursul acestai modtl, vei inva si series instructiuni de atribuire mai sofisticat. Ca. valoate literal, 0 variabili poate avea o valoare de tip intseg, dublu sau sit Forma valosii unei variabile se numeste pad variabile, Tipul unei vasiabile se poate modifica daca atcibuigi variabilei o valoare de un tip diferie fap de cel al valorii curente a variabilei, De exempla, instructiunea de stribuire Sx Partea I: Seserea programelot PHP elem atsibuie vasiabilei sx tpal intreg, Dack instruegiunea de atsbuire we) vv fi executaté ulterior, variabila x devine de tip dublu. in multe limbaje de progra- mare, tipul unei variabile nu poate & modificat. Daci afi programat folosind un asemenea limbs), Ia inceput s-ae putea ca aceasth caraeterstick a limbajulai PHP sk vise park deconcestanta, dar probabil ci 0 vey gisi extrem de convenabilé dupa ce vi veti § acomodat cu ea Test la minut™ © Avib Soxe. © Scriegi o insteuctiune de atribuice care atsibuie valoasea 3.14159 unei ‘varisbile demamite $3. S> Sfatul specialistului ES intrebare: in ce mod difer instrctiunie de atsibuire PHP de ecuatiile matematice? R&spuns: Desi iasteuyiunile de atibuir dia libajal PHP si ecuafle mate- matic folosesc ambele sem egal, cele dou’ noun’ sunt foarte difedte, deoarece atribuirea nu este acelasi lucra cu egaliates, Atrbuites este 0 perf cate inlocu- | ieste © valoare cu o alta, Pe de alti parte, egalitatea este o relate intre dow’ valoti. | Cand dowt valor! sunt epale, acestea iin egale pent touleauna Tonal, pute atsibui o valoare unei variabile si wherior pute atribuiaceleiagivarabile o alti taloare. Cu alte cuvinte,epalitatea este permanent atcbuites nu este >, Proiectul 2-1: Vizualizarea valoriior 3) variabilelor PHP YEBy_ In cadrul acestiproict, vey rca sve exccuta un sript PHP simplu care demonstreaza modul de utiizare a vaioror Iterale, a vavableor 5 nstruc siunior de atribuie Scopurile proiectului © Crearea unui script PHP care confine mai multe instructiuni de atribuie s instructiuni incarcarea si exocutarea scriptulul Tispunsos la tose ‘ sdistanta_1a_soare sav ceva similar sph = 9.141895 Modulul 2: Elementele constructive ale limbajulsi PHD | 31 Pas cu pas 1. Folosind un editor de texte, creat un fiser care conjine urmatorul script PHP: =p 1) PAP: nsav incepatoruaui 1y Proiectul 2-1 svaloare_irteeaga = 1) ‘Svaloare=dubla = 12345670605 sir = "Acosta este un sir ‘scho("Proiectul 2-1 eeno(* _—intrebare: Mai incude PHP si algi operatori? Raspuns: Da, PHP include mulyi alti operator in afara celor specifica. in particular, include operator logici si operatori de compatate, despre care veti Inviga in Modalal 6, 36 _ | Pamtea I: Scrievea programelor PHD clementare Unele fancy, precum min si max, preiau un numie nedefinit de argumente, Alte fancgt nu necesita nici un fel de argumente. Pentru a putea folosi o fanctie in mod corespunzitor, tebuie sii cunoastey © Numele funcrici * Acgiunea functii si valoarea returnati de aceasta, daci existi © Numiral argumentelor preluate de funcyie * Semnificaia leckrui argument Jt un exempla simplu care foloseste o foncyie pentru caleulul lungimi Iturilor ‘unui pitra, daci este cunoscuti asia pitratului: signe Gee(Sarue) Reyinesi modul in care asgumeneul Funcgii este inchos intre paranteze, ‘modal in care fanctia si argumentul siu sunt folosite intr-un mod asemanator cu 0 valoare literal sau 0 vasiabili, Jacl un exempla care prezinta modul de wtilizare a fncfiei nax, care preia mai multe argumente: spunctajieaatigator= Wax splnctay i “spunetaja, ‘spunctaya): ‘Observagi ck fiecare argument este separat de vecinul stu printr-o virgull. « Test «la minut™ © Scrieti o instruciune PHP care adangi valoarea variabilei spuete_normala Ja accea a variabilei spiata_ore_supLinentare si plaseazi rezultatul in variabila splate_totale © Scrieti o instructiune PHP ease stocheaz8 pitranul valoril variabilei sx in variabila sy. Proiectul 2-2: Un calcul in PHP In cadrul acest proiect, vati crea si excita un scrint PHP simp, care SE caleuleazé aria unui cere de raz data Scopurile proiectulul © Crearea unui script PHP care caleuleazs aria unui cere « incarcarea si executarea unui script PHP -pansad la tess © Splata_totela = splata_normels + Splate_ore_suplinentare; + Sy = SK $x; sau Sy = powlsx, 25 ‘Modulut 2: Elementele constructive ale limbajului PHP {37 Pas cu pas 1. Folosind un editor de texte, creat un figir care contine urmatorul script PHP: api //' Phe: Ghisul sneepatorulus 1 Protect 2-2 1} celeule ariei unus cere ve raza date weno(*Proiect 2-2"); Sraza = 2.05, Spi = 3.14159; Sarse = Spi. * Sraza * Seaza; echo(*raza fecho(sraza) foha(* INA Gontanstuh pagints sau 61 rormulervius este snserat act <1s00%> “IKI {n interior compului unei pagini HTML care conyine un formular putey folosi orice etichets HTML obignuiti. Pentru a descrie formularul in sine, folosiierichera font, care are urmitoasea form elementati eon ek ites ACTIONEUAL'S STATS Acribural wero al eticheti rom poste la una din valor oT sau rast. Pentre moment, specifica intotdesuina valoaea ros, Atibutal cTIon specifics adresa URL # senprului PHP care prehuereazédatele adunat prin intermedinl formula- nul, Adresa URL poste fo adresi complet, care include prococolul, namele sazdet si calea de acces, respectiv o adres paral, eae specfck 0 locafe ecatva la locatiapagini corene, Inreexcheea Fons eticheta sa /Fom corespunzitoare, plas’ conteoaele formar. Sfatul specialistului Intrebare: Cand creez.un formular HTML, cind trebuie si specific eet in loc de post ca valoare a atributulti meTHoD? R&spuns: Ca incepitor, este mai bine si folositiin mod consecvent metoda POST, deoarece alegerea intre metodele GET si POST este destul de complicati. Modulul 3: Cresres formularclor HTML {41 Ca regult empiric’, multi programatori folosesc GET penteu formulae care ‘execut o clurare sau o interogare, xespectiv POST penetra formulare care acrual- ‘ena o baz’ de date sau wn fsiet Dova dezavantaje ale metodei GET sant acelea ck impune o limied asupea canticiil de date care pot fi tsimise seriprului de prelucrare si ci transfect date prin atasacea sirurilor codificate la adresa URL a scriptului de preluerare. Astfel, dateletrimise prin metoda GET pot fi vizualizate de citee utlizator. Un avantaj al metodei GET este acela cX utlizatoii pot insera semne de carte in rezutatele uneiinterogiri sau ale unei ciutii care foloseste ‘metoda GET, dar nu pot executa aceeasi operatic in cazul unei interogici sau al tunel ciutiei care foloseste metoda POST. Desig, utilizatori por insera un semn de carte la pagina care congine un formulas ce foloseste metoda POST; rezuiaile sunt cele unde nu se poate insera semaul de care Incorporarea controalelor -Aceasti sub-secyiune descrie dou controale clementare pe care le vei folosi freevent:caseta cu text si butonul de expediere. in secyiunea urmitoare, vet afla msi multe despre contronlele pe care le putey folosi in constructia formulaselor HTML. O caseti cu text permite utlizatorului si tasteze informagi care por fi apoi trimise, unui scripe PHP. Casetele cu text sunt frecvent folosite penteu a obyine date precum numele utilizatorului, adresa sa postal sau adresa de e-mail. Pentru a crea 0 caseti cu text, scriefi o eticheti HTML care are urmitoarea formé elementard: ‘JetNpor rege Tear? a Atsibunal NAME atribuie casetei cu text un nume, astfel incat conginutal shu si fic accesibil unui seripe PHP. Numele pe care il atribuigi unui control trebuie si fie uunic in cadrul formularuli si wrebuie si respecte regulile pentru demumirea variabi- Ielor PHP, cu excepfia faprului ci numele nu trebuie si incespi cu simbolul dota- ralui, Cu alte cuvinte, numele rechnie <8 inceaps cu o liters si nu trebuie $8 contin alte caractere in afaralitereior a ciftelor si a caracterelor de sublinieze; in particulas, rnumele nu teebuie si congin’ sparil, HTML nu are 0 eticheti /3neur, deci nu inces~ cafi si combinayio evicheri meuT eu o asemenea eticheri ‘Un buton de expediere peemite udlzacorului si trimiti serveralai consinutul unui Formulas. Fecare formulas HTML. trebuie si aibfi un buton de expediere, Pentru crea un buton de expedicre, scriegi o eticher HTML care are urmatoatea forma clementark: Sieur THRESPSUaUIT VALUE cones Ateibusul vaiue specifics textal caze trebuie si apari pe suprafaya butonulal de expediere re 42 _| Partea :Serirea progtmelor PHP eementare Modulul 3 Creates fommulaclor HTML | _43 un formulae HTML comple, care incide casete cu text ee preian numele si sci #yhe=s Tet ie dead andar hae aaa “
“ora weriod=*Post= ACTION pinto phe Seen Stomunels £i s0reca Geo ott ale GeLLizatoruutyias SSecNPUT TeE=MTeXT* waeeax> So = Sictheur Tre-"Tex hake-royene_utszarorutl’> Betnevs TyeE=SuBMTT vaLueCTeanite caéne™> <6R>Acreda de e-mail: te “recip TPEO*TOC™ naueaesa_onaii"> Soo PRON he PM YE STORES Han Cod wilizatoral executl cle pe butonul de enpediete,datele incuse In cdm- “=)BoDY> purile formularului care confine butonul pe care s-2 executat clic sunt trimise In vi server. Astfel, serveral primeste fie un nume si o adces& de e-mail, fie numerele de Observayudizarea etchetelor pentru alinicrea etichetelor sia con- croalelos, precum si numele asibuive contsonlelor de ip casets eu text, Cind usilzatorul exeeuti clic pe butonul de expediere, date introduse de utilizator sunt trimise scxiprlui pypinto. pho. luscraga alanurata prezinté aspeccul forrvularuul telefon si de fax, nu conginutal ruturor celor patru cimpuri p Sfatul specialistulu), —————+———— & — Intrebare: Daca aptitudinile mele in materie de HTML sunt reduse sau ,ruginite"? Unde imi pot revizui cunostingele de HTML pentru a putea crea formulare? Rispun: Pentru a inviga sau pentru a recapitula elementele fundamentale ale limbajulsi HTML, v& propun cartea lui Wendy Willacd HTML: Goid incepate- ruta (Osborne, 2000)", Ca si alte volume din seria Cbidulinepdtoai,cartea si ‘Wendy contine teste ,Ja minut" si proiecte care conteibuie la consolidazea mate- aluli ctt. De asemenea, castea mai congine module refertoaze la JavaScript si foile de stil in cascada, tehnologii cate pot 6 utlizateeficientaliruci de PHP. || Lucrul cu formulare multiple ; In inerioral compului el pagiai HTML se pot include mai multe for anulare. Dack procedat ast, nu uta inser o etichee anterior wee etichetei a urmatorului formulae. Browserul wtlizatonalui va face indigestie Test .Ja minut™ © Care sunt atributele cate trebuie specificate in eticheta eon? © Care este controlul pe care trebuie si-l contin coate formularele HTML? © Care este eticheta HTML folositi pentru crearea unei casete cu text? : ane Sau oricare dintze exeslentele cil de HTML traduse st publicare de Edinura Teora. — FORM METHOU="POST™ ACTION="phpsnto.ohp"> ‘i : NI 7 [Raspunsuri late canon: : z Z | er ola ene + Buronul de expediere = anpur 44 _ |. Partea I Sevierea progsamelor PHP elementare », Proiectul 3-1: Vizualizarea cémpurilor 5 unui formular CE in cadral acest proiect, vei invdta s8vizualizaidateletransmise de un formular HTML care script sau de prelucrare, Vel) descoperiutlitatea acestel caractersticiatunci cind trebuies8 depanati un formular HTML sau tun script de prlucrare. Scopurile proiectului ‘© Exersarea credri unui script PHP sia unui formular HTML © Capacitatea dea sesiza rezultatele expedierii unui formular HTML Pas cu pas 1. Plasafi urmatorul script HTML intr-unfiser denumit p-3-1.php $i IncBrcatj acest figier In serverul dumneavoastrs PHP: <1 1) Faster -3-1-php phpinto() 2. Plasati urmatoarea paging HTML int-un fisier denumit p-3-1 .htm gi IncSrcall acest fisier ‘in serverul dumneavoastrS PHP, plasSndu-l in acelasi catalog ca gi fsierul p-8-1 php rts “SHEA: . hunele i adresa de e-aaii ale stilizatorului Auibutele 1 si uate sunt obligato celelalte atibuse sunt opyionale. Atibutul 125, care este dat sub forms unui numar de caractere,stabilestedimensiunca ‘vinibill a caserei cu text; ateibutal WAXLENGTH specifics numvrul maxim de caractere pe cate utlizatoral ae permisinnes de ale tasta. Valoatea atsiburul MAHLENGTH 0 poate depisi pe aceea a atsibutului $226, in care exz conginutul controlului defileaz8 spre dreapta atunci cind wiilizatoral a introdus Ze caraerere. Atsibutal VALUE consttae o valoare care este afisthiniil in caseta cu tex. SUQOS te nee Este important si cunoasteti aspectul si modul de comportare a casetei cu texts a altor controale HTML de formula. Proiectul care apare la sfarsitul acestel sectiuni v8 va oferi posibiltatea de a acumula experienta in crearea controalelor gin lucrul cu acestea, PHP clementare Crearea de suprafefe cu text Ca o caseta cu text, o suprafags cu text permite unui utilizator si introduct text. Cu toate acestes, 0 suprafagi cu text poate permite utilizatorului si introduc mai ‘multe linii de text, in timp ce o caseti cu text permite utilizatorului si intsoducd © singurd line, Tats sintaxa pentru crearea unei suprafete cu text Acribural T9¢ este obligatory; tibutcle WA, GK gi VALUE sunt optionale Daca atibutul eveoxeD apare, case de validae va fi selectai in mod prestabil, in caz contrat, casa de validare na este select iil. Atributul vALUE specifica valoatea care este trimisi servers in cxzal in caze casera de validare este select; dact asibutal su este specifica, se va trmicevaloarea on (activa). Crearea butoanelor radio Ca si casctle de validare, butoanele radio pot avea numai una din dowt valosi. Co toate acestea, butoancle radio sunt organizate in grupury iar la un moment dat poate actvat un singur buton radio din cadrul unui grup; toate ceelltetrebuie si fie dezact- vate. Buroanele radio sunt utile pentau a permite uni utlzator 8 aleagi dinuro sexie de alternative mutual exchusive. De exempls, pute folosi un ser de tei butoane radio ‘entra a permite utlizaronuhsi sh specificesipul de ambalaj pentru cadou: firk ambalaj, cu ambalj simpla sau sofistcat. Numai una dinere cele eet buroane radio poate fi sctivat; lun loc, setal de butoane radio ofes ulizatorahi otripl opyiune. Penimu a crea un buton radio, folosigi urmatoarca sintaxt RHUL TYEE= ADO" finlé=* core CHEOKED VALUES Hoses Repinesi ck aceasta este acceasi sintaxa folosith pentru exearea unei casete de validare, eu deoscbirea €& atsibural Tv are valoasea RADTO in locul valorii cHecKs0x. Atributele unui buton radio au aceeasi semniticate ca si acelea ale unei casete de validate, Torus, atriburul nave este obligatoriu pentra buroanele radio, chiar dack este optional pentru casetele de validare. Tox! membsii unui set de casete de validare prezintl aceeasi valoare 2 atriburului nau Crearea de selectii © seb ete un meniu care defile, dé unde wiizatorl poate alge una stu mmai multe opjun: De exermplu, ino selege por fi enumerate gamit pena pizza ast! Inedt un ulate spout select oie combina de gariva pe eae 0 dorese. Pent crea slefe, flout unm 48 _ | Pamtea I: Scricrea progzamelor PHP clementare Modulul 3: Crearea formulacclor HTML [49 EO AE ei MUTED lr Sa Eticheta s€tecr este folositi in combinajie cu eticheta /seLecr. Intre cele dow tichete este inelusi © sere de etichete orion fnu-o eticheti se.cct, numai arribural mae este obligatota, Atsibutal mATIPLE aati ci utiiztorul poate lege mai multe optiuni mentinind apisatitasta CTRL si executind clic pe acestea. fn absenga atbutulai wALTIPLE, ualizacorul poate selecta 0 singuri opsiune. Dack specifica ausbueal MLTIPLE, tbuie sl specifica si un stcbut wi, care atibuie un nume de tablou ca nume al contzoluli. De exemplu, un control de tip selectie care permite ulizatorului si aleagi mai mule gamnicari pentru desert trebuie denumit folosind sintaxa garnitural}, nu garniture, Comportarea unei selefi care permite o singurl opfiune este echivalenti ca aceea a unui set de buroane radio, dar aspect unei select este difert de acela al unui set de butoane radio, aga cum vetivedea in proiectal de la sarptulacesti sccfiun. Atribual size specifiek numiral opfunilor viebile, Pin utlizarea unui baton de derulare in jos sau 2 unei bare de defilae, uliztorul poate manipula selecyin pentru a obgine accesul la restul opfunilor sia alege diate acestea, ‘Apa cum sa aritat, 0 selecte este asociati cu una sau mai multe opsiuni, Pentru 2 crea o opfiune care urmenzi afi utlizaté in cadrul unei selec, folosigi urmieoarea sintaxt sl OPTRON SB Hasereers asose/séleoT> OPT SELEOTE vats oe Seon opetiniat aes. tnoeraties/OPTIONS Exicheta orrzou este combinati cu o eticheth /Oer20N. Textal dintre aceste eti- chete este cunoscut sub numeie de consinut al opyiuni. Conginusul opyiunii apace fn contcolul seL£eT, Mult programatosi HTML omit eticheta /0PT10¥, cuzin cate textul ‘optiuni se extnde pant la urmitoareaetichets oPTiON sau SELECT. Totus, sar putea ca acest mod de utlizare s8-nu fle compatibil cu versione ulterioaze ale standac- éuloi BTML. Ambele atibute ale etichetei oftrou sunt opyionale. Dack apare atriburul VALUE, valoarea 69 este timish serverulsi atunci cind este select opfiunee asocitl; in caz contrat, conkinutul optiuni este trimis a server. Atribucal SELECTED rath cd opgiunea corespunaitoare este selectati initial in caz contras,opfiunes respectivi au este selectath niga Crearea cdmpurilor ascunse Uneori este utili crearea asa-numitelor cémpuri ascunse. Valorile eémpurilor ascunse sunt trimise la server alituti de valorile altor controale; eu toate acestes, utilizatoral nu are posibilitatea de a vizualiza sau manipula valosile cdmpusilor Campurile ascunse se utilizeaz4 freevent in cadrul unei serii de formulare. De excmplu, datele introduse de utlizaror in primul formular din serie pot fi necesare in formularele ulterioate. in loc de a determina utilizatorul si introduci datcle in fiecare formulas, datele pot fi stocate intr-un cimp ascuns, creat si intializat de scripeal care prelucreaz4 primul formular. Astfel, wtilizatorul este scutt de o muni suplimentari si sunt preintimpinate eventualele eros care ar fi purue aplirea dack utlizatorul nu ar fi introdus accleasi date in formularele ulterioare Pentru a crea un cémp ascuns, folosig urmitoarea sintaxie “INPUT TWRESSEROOEN WME WaHE? VALUEEYZext?> ‘Numai atributele 1¥P€ si MAE sunt obligatorii; cu toate acestea, controlul este practic inutil in absenge atributului va.ue, a clrui valoare este rimisii in mod auto- mat la server in momentul expedierii formularuhui Fe Sfatul specialistului & intrebare: Am vazut formulare HTML care permit unui utili- zator si expedieze serverului conginutul unui figies. Cum se poate realiza acest lucru? Raspuns: Pureti permite utlizatoruli si aleagi un fiser gi apoi s& crimith serverului consinurul fsierului crednd un control de tip fsiet, prin intermediul urmicoarei sintaxe: -anput 1¥8% TLE NAVE**nune* ACCEPT="tip mine" VALUES“ text'> Ausibucul 1vPe este singurul obligatoriu; cu toate acestea, in general, apare gi atsibunal nau. Atsibutal vAcUe specificd un nume de Gsier prestabilt. Atribural ‘ACCEPT specifict formatul conyinutului fisicruli. Pot fi indicate mai multe for- mate, dar fiecare format teebuie separat de vecinii sit prin intermedial unei virgule. Formatul este specificat folosind un cod MIME (Multipurpose Internet Mail Extensions). Tabelul vitor descrie formate folosite eel mai freevent: Tip MIME Tip de date Extensii de fier application/msexcel Microsoft Excel as application/mswors Microsoft Word oe, aot application/octet-strean Binaré ee spplication/pet Adobe Acrobat st spplication/postecrspt Postscript 34, ops, ps application/ppt Microsoft PowerPoint ot application/zip Date comprimate in format Z1P asp usso/aios Musica Instrument Digital nid, mia Interface (MD!) audio/x-wav Windows Audio Format (WAV) wav sage/git Compuserve Graphics ot Interchange Format (GIF) mage! spe0 Joint Photographics Expert pee, 19, ie Group UPES) 50 _ | Parte I: Serierea programelor PHP clementare ‘Modulul 3: Ceearea formularelor BTML J 51 snage T0FF Tagged Image Format (I) tis, tare Scopurile proectulut ee pe Helge ‘+ Acumularea de experienti in crearea controalelor care alcatuiesc un formar HTML a pepe oe * rezentare aspectull gi comportarentlu controalior cae alcituise un formulae © Funizarea unui mod de a exersa urea atibutelorsvalosiorasociate eihetelor ieo/mpeg Secven video sa, mv, wpe, mpeg Faure eee aera video /quicktine Secventa video gt, pov 7 Reeeatee seed ideo /s-nsvieo Seevents video a icheta Fou de delmitare rebuie sf ib post ca valoae a asibutl stu we-wo, De asemenes, tebuie si inchudi un abut ecT¥Pe cu valoarea miitipact/ torm-dta, Ii sintana pe cae trebuie sho folosig | _ Bae posilea en damnesvo 8 cong fl in acceptefecare tip MIME. Consul-vi cu administatorul server dumnes- | voastes, pentzw a determina dack tipul de date pe care doriti st folositi este pat in mod corespuncltor. Test la minut* «© Scriey un program HTML care creeaza o caseti cu text cx ligimea egal cu 40 de caractere si care permite utlizatorului & introduc maximum 80 de caractere « Scrieyi un program HTML care erecazi o suprafayi cu text avind mea cgalé cu 80 de coloane, inilkimea de 10 rénduui si care accept fnfagurarea textului la siesta linet de text. «© Sctiei un program HTML care ereeazi o caseti de validare selectati inigial si care teimite serverului valoarea ya mods 4 Sctiei un program HTML care ereeazi o pereche de butoane radio care Vi permit si specificagi valoarca ,adevirat" sau valoatea , als Project 3-2 0 caseté HTML aglomerata& son) : Inacest proiect vei crea o caseté aglomerati, un formula HTML care conjineo varietate de controae. Veti putea manipula controalee si vizualiza datele pe care le trimit acestea unui script de prelucrare asociat formularul ‘Acest proiect este important pentru a dobindlo inelegere solid8 aflecarui con- ‘rol folosit in formularele HTML, inclusv aspectl i comportamentulacestuia Risponsuri la tess ‘ 1