Gestionarea Bazelor de Date Prin Intermediul Interfetelor Web
LUCRARE DE LICENȚĂ
GESTIONAREA BAZELOR DE DATE PRIN INTERMEDIUL INTERFEȚELOR WEB
Cuprins
Introducere
Tema. lucrării. de fața. este crearea. unui Manager. de Conținut. (CMS) pentru bloguri. În. prezent tehnologiile web tind să ofere utilizatorului un mediu cât mai prietenos prin care sa interacționeze cu site-ul, blogul sau pagina web pe care lucrează. Acest mediu presupune existența unei interfețe de administrare a conținutului paginii web indiferent de caracterul acesteia, pliat pe nevoile clientului și pe necesitățile paginii. Acest lucru este posibil folosind formulare și baze de date, precum și instrucțiuni specifice de corelare a interfeței de administrare cu interfața pentru vizitatori.
Asupra informațiilor introduse și implicit asupra bazei de date, un CMS trebuie sa permită realizarea operațiilor CRUD (Create creare, Read citire , Upload , Delete ștergere).
Această lucrare este structurată in 5 capitole, fiecare tratând un limbaj folosit în realizarea acestui CMS.
În primul capitol am prezentat pe scurt limbajul de marcare HTML, împreuna cu CSS și particular cu Bootstrap, HTML fiind cel care hotărăște modul în care ar trebui să fie structurată și împărțită pagina, precum și ce ar trebui să conțină aceasta și CSS determinând aspectul paginii respective, atributele vizuale și uneori elementele de dinamică. Pentru acest proiect s-a folosit și fișierul Cascade Style Sheet Bootstrap pentru a determina pagina să își modifice dimensiunile și aspectul în funcție de rezoluția ecranului pe care este afișată pagina respectivă.
Capitolul doi cuprinde informații generale despre PHP și despre principalele tipuri de variabile, instrucțiuni și funcții predefinite acestuia. Limbajul PHP este cel care realizează conexiunea între pagina HTL și baza de date precum și cel care ajuta la realizarea operațiilor CRUD pe baza de date, trimițând datele în baza de date, prin intermediul formularelor.De asemenea limbajul PHP realizează conexiunea cu serverul și cu baza de date.
In capitolul 4 este prezentat limbajul MYSQL, răspunzător de acțiunile care au loc asupra bazelor de date și tabelelor, și instrucțiunile care permit realizarea operațiunilor CRUD, mai exact selectarea datelor din baza de date, ștergerea lor, modificarea informației și structurarea acesteia, ce se face în strânsă legătură cu limbajul PHP.
Capitolul 4 descrie tehnologia AJAX, o combinație de mai multe limbaje orientată atât pe parte de client cat și pe parte de server. Cu tehnologia AJAX pot fi încărcate mai multe părți din pagină individual, fără să fie necesară reîncărcarea completă a paginii.
Având în vedere că aplicațiile web sunt într-o continuă schimbare, limbajele folosite fiind constant îmbunătățite și considerând dorința spre o cât mai ușoară utilizare din partea clienților neavizați, majoritatea serviciilor web folosesc tehnologii de tip CMS. De asemenea, dorința spre interfețe cât mai complexe și cat mai dinamice, cu un conținut ușor de reînnoit datorită algoritmilor motoarelor de căutare care solicită reîmprospătarea informațională pentru o cât mai bună cotare a aplicației, CMS-ul pare să devină o necesitate și cea mai bună variantă de interacțiune cu propriul site web.
1. HTML ȘI CSS
1.1 HTML
1. Ce este. HTML? (Hypertext Markup Language)
– Este un. set de coduri logice care cons.tituie apariția unui document .web si a informatiilo.r pe care le d.eține. Codurile sunt scrise. intre "<". (paranteza deschisa) . si ">" (para.nteza inchis.a), c.u toate ca nu su.nt chiar paranteze, așa se num.esc si arata așa: <. >.
Exe.mplu:
<B.ODY> sau <FON.T>
– Cele mai. .multe elemente (numi.t.e si tag-uri) au un ele.me.nt (tag) de deschider.e si. un elemen..t de închider.e. distins prin "/" in. interiorul pa.rant.ezei desc.hise "<."..
Exem..plu:
<F.ONT> … <./FO.NT>
– Prim.ul .cuvânt care apare î.năunt.ru "<" s.e numește e.lem.ent sau eticheta..HTML si .spu.ne browse.r-ului. sa. facă ceva, precum <.F.ONT>
– Cuvint.ele car.e urmeaza dup.ă e.lement in inter.i.orul "< >"se nu.mes.c atribute c.are .descriu proprie.tăț.ile elementului. Cu.m ar fi : culoarea, mări.mea., etc.
– Atributele sun.t separate prin spat.iu si urmate de semnul. egal ."=", dupa car.e sunt scrise, intr.e ghilime.le (" ") valorile a.tributelor..
– Astfel., o eticheta HTML. poate contine eleme.ntul de identificar.e, atribute si valori..
– In urmat.orul exemplu elemen.tul este FONT at.ributul COLOR si v.aloarea BL.UE:
<FONT COL.OR="BLUE">Acest text va .fi albastru</FO.NT>
2. Structu.ra documentu.lui HT.ML
– Un do.cument (fisier) HT.ML este alcatuit din m.ai multe ele.mente si atribut.ele lor.
– La început .un element HTML cuprind.e (înconjoară ) datel.e documentului. Acest el.ement conți.ne doua sub-el.emente principa.le: HEAD si BO.DY. In HEAD se .poate adauga titlul pa.ginii web s.i alte elemente. numite metatag-ur.i, precum s.i scripturi JavaScript si stil.-uri CSS. In BODY. se adaug.a continutul document.ului care va fi afi.sat in pagina .web.
Exemplu:
<htm.l>
<head>
<titl.e>Titlu Documentului</tit.le>
</h.ead>.
<bo. .dy>.
Co.ntinutul pag.inii
</bo.dy>
</ht.ml>
Structu.ra generala a unui document HT.ML
<.HT.ML>
<HE.AD> Acesta. are si el mai multe s.ub-elemen.te:
<TI.TLE> Aici se sc.rie titlul docume.ntului, cat mai sugestiv, .si se încheie cu .</TITLE>
<BA.SE.> P.oate fi folosit pent.ru a înregistra locația .documentului in f.orma URL. (.Necesar daca docum.entul nu este accesat. in locația lui origi.nala). Se înc.heie cu <./BA.SE>
<L.IN.K> Indica o r.elație dintre documen.t si alte obiecte de p.e WEB. Se înc.heie cu. </LI.NK>.
<M.ETA> Aici sunt s.crise informații cum .ar fi tastatura (li.mbaj) folosita., descrier.ea si cuvinte ch.eie care pot fi găsite de mot.oarele de căutare. Se încheie. cu </META.>
<SCRIP.T> Conține oricare di.n JavaScript sau VB. Script. Se înc.heie cu </SCR.IPT>
<ST.YLE> Conține informații pri.vind stilul, grafica infor.mațiilor care vor .apărea pe pag.ina. Se în.ch.eie cu <../STYL.E.>
A.ici se încheie elementele adaugate in HEAD
</.HEAD.>
<B.ODY> .Etichetele H.TML si continutul do.cumentului car.e va fi afisat .in pagina web. sunt inc.luse in ace.st element. A.ici pot fi pu.se si eleme.nte cum ar .fi: <SC.RIPT.> </SCR.IPT>.
Se în.cheie cu.
</.BO.DY.>
</.HTM.L>
Sunt .mai multe .programe cu. care se pot. crea pagini .web, chiar. fara a cuno.aste limbjul HT.ML, cum sunt Mi.crosoft FrontP.age. sau Macrome.dia Dreamw.eaver.
Editoa.rele de text sun.t programele de b.aza, si cele mai fo.losite, pentru. editarea paginii w.eb. Avant.ajul folosirii lor es.te simplitatea, pent.ru creare paginii w.eb sunt necesare câteva d.in codur.ile invizibile ale limba.jului HTML, astfe.l se creaza documen.te rapid si usor, .in plus oc.upa foarte pu.tin spatiu si resu.rse de memorie, a.cestea insa necesit.a cunoasterea l.imbajului H.TML.
Dintre edit.oarele de text cunos.cute cel mai folosit es.te NotePad, care este folos.it si pentru ace.st curs, dar p.oate fi utilizat orice edit.or de text. Pentr.u începatori si p.entru usurinta cu c.are se lucreaza. eu recomand fo.losirea aplicatie NotePad sau Notepad++,. dar cei avan.sati pot folosi si altele cum a.r fi Dreamwe.saver. .
1.2 CSS
Creare.a paginilor HTML est.e un lucru relativ simplu., învățarea etichetelor H.TML si crearea .unor imagin.i ducând la reali.zarea de pagini web. de o complexitate me.die. Odată cu dezv.oltarea internetului, si.te-urile au devenit din .ce in ce mai complexe., cu un număr mai mare. de pagini, cerințe.le privind grafica si elemen.tele din pagina au dev.enit mai pretențioase. si astfel proiectare.a paginilor we.b a devenit o sarcina. ceva mai dificila. .
O pr.oblema importanta cân.d avem un site cu .multe pagini este .atunci când dorim sa fac.em anumite schi.mbări in elemente.le pagini: fondul., grafica sau fontu.l textelor din pagin.i.
Prin utiliza.rea CSS (Cascadi.ng Style Sheets), in traduc.ere "foi de stil in c.ascada", acest luc.ru nu mai este o p.roblema, realizându-se re.lativ ușor, prin schimbarea. sau adăugarea unor. elemente in .codul CS.S, ne fiind nevoi sa luc.ram la fiecare pagina s.au la fiecare eleme.nt din pagina. .
CSS se ocu.pa in general cu aspectul si .controlul grafic al el.ementelor din pagina, .cum ar fi: .textul., imaginile, fondul, culori.le si așezarea acest.ora in cadrul ferestrei paginii..
CSS fo.losește stiluri, acestea înglobeaz.ă, sub un anumit nume, atribute de f.ormatare care se .aplica asu.pra unui element in.dividual din pagina, a.supra unui grup d.e elemente sau la nivelul .întregul.ui document. .
CSS. funcționează cu HT.ML, insa nu este .HTML. El extinde f.uncționalitățile HTM.L, permițâ.nd redefin.irea etichetelor H.TML existent.e.
Prin utiliza.rea CSS aspectul. documentului p.e ansamblu, sau .a unui element. individual din .interiorul sau, po.ate fi controlat mult m.ai ușor. Stilurile p.ot fi aplicate asupra unu.i element, a.unui .document sau chiar as.upra unui întreg .site web.
Un .dezavantaj ar fi ca unele n.avigatoare nu sunt com.patibile CSS, astfel ca .documentele HTM.L sunt afișate .ca si cum CSS n-ar e.xista, dar cele ma.i cunoscute si utilizate .browsere, cum ar fi: .Mozilla Firefo.x, Internet Ex.plorer, Op.era, si alte.le, sunt co.mpatibile CSS. .
Codur.ile CSS pot fi scris.e in interiorul pa.ginii sau într.-un fișier extern cu. extensia"..css".
Codul C.SS, ca forma generala, . este alcătuit di.n: obiectul care .va fi formatat. proprietăț.ile ace.stui.a si valoar.ea (sau atributele) fiec.ă.rei proprietăț.i. .
Când este a.d.ăugat in documentul .HTML, .trebuie scris in. cadr.ul unui ta.g <style> in se.cțiu.nea HEAD a docu.mentului HTML, după cum se ve.de in formula gene.rala de mai jos; .
1.2.1 Obiectele (regulile) CSS
Exist.a trei tipuri principale .de obiecte CSS: .selector, clasa si. identificat.or.
– Selec.torul HTM.L
Selec.torul HTML se folosește. pentru a redefini modul. de afișare a conținutul.ui etichetei HT.ML.
Un selecto.r HTML reprezenta parte.a etichetei HTML care indi.ca navigatorului tip.ul de etich.eta.
Iată .un exem.plu:
h1 {. font-family.:"Arial"; font-.size:15px; .}
– Aici sel.ectorul este ".h1".
D.efinirea unui selector HTML .folosind CSS are c.a rezultat redefin.irea etichetei HTM.L. Selectoru.l si eticheta desi par .identice, totuși nu s.unt.
– Cla.sa
Clas.a este un obiect care poate f.i aplicat oricărei .etichete .HTML.
O .clasa trebuie creat.a in interiorul eti.chetei HTML îna.inte de a fi d.efinita într-un .cod CSS. Crearea clase.i in interiorul etichete.i se face simplu, prin .specificarea cuvântul.ui class si numel.e clasei, .ca in exemplu. de mai jo.s:
<h1 cla.ss="nume_clasa"> T.ext </h1>.
– "nu.me_clasa", poa.te fi orice nume d.orim.
– Apoi in interiorul codului CS.S, clasa trebuie defin.ita prin adăugarea un.ui caracter pu.nct (.) înaintea. nu.melui clasei, . ca in exemplu. următor: .
.num.e_clasa { fon.t-family:"Arial";. font-size:15px.; }
Numele. aceleași clase. poate fi atribuit m.ai multor etichete HTML .din aceeași pagina, si toat.e vor prelua ac.elași stil css.
– Identificator.
Obiectele de .tip identificator (ID.) sunt asemănătoare cu clasele. Pot fi aplicate oricărei. etichete. HTML., dar spre deose.bire de clase, numel.e unui identificator trebuie. atribuit numai unei. singure .etichete. HTML .dintr-o pagina, .pentru alta etich.eta se adaugă un ID. cu nume diferit..
Ca si clasa., identificato.ri trebuie întâi creat in inte.riorul etichetei HTM.L. Modul de creare este. simplu, pri.n specificarea cuvâ.ntului id si num.ele clasei, ca in exemplu de ma.i jos:
<h1 id="n.ume_id"> Text .</h1>
– "nume._id", poate fi oric.e nume dorim..
In int.eriorul codului CSS, id.entificatorul este d.efinit prin adăugarea unu.i caracter diez (#). înain.tea numelui, ca in .exemplu urmă.tor:
#num.e_id { font-fami.ly:"Arial"; font-.size:15px; }.
2.1.2 C.omponentel.e unui o.biect CSS
Obiectel.e CSS, indiferen.t de tipul lor, au in. compone. componenta ur.mătoarele elemen.te:
S.electorii – identifica un obiect; pot fi selec.tori de etichete HTML, clase sau identificat.ori.
Propri.etățile – identifica o proprietate a .obiectului; se refera in spe.cial la aspect.
Valorile. – sunt atributele unei pro.prietăți; pot fi cuvinte cheie, valori nu.merice sau procentuale., tipul valori.i depinzând de propr.ietate.
Sintaxa g.enerala a unei regu.li CSS este urm.ătoarea:
selector. {proprietate: valoare; }.
Proprietățile. si valorile constituie. definiția regulii. (obiectului) CSS. Acestea. se regăsesc sub. forma de perechi.,despărțite de caracterul dou.a puncte ”:”, fiecare pereche. se termina cu un .caracter punct si virgula. ";".
Etichetele. HTML nu sunt sensibile. la diferența intre majuscule. si lite.re mici. Dar. odată cu . .apari.ția limbajului .XHTML, acesta fa.ce distincție intre majuscule .si minuscule, astfel ca. toate. etichetel.e si toți selectorii .trebuie scriși cu l.itere mici. . .
2. PHP
Limbaj.ul PHP a fost creat in a.nul 1994 de către Rasmus Lerdorf, care. încercă să-și personal.izeze propria pagi.na Web; din acest motiv lim.bajul a fost numit inițial PH.P adică: Pers.onal Home Page (pagin.a de baza persona.la). Ulterior lim.bajul a fost perfecționat, . utilitatea si caracteristic.ile sale s-au .dezvoltat treptat, ajun.gând sa aibă semnifica.ție Hypertext Pr.eprprocesor (PHP). Prepro.cesarea consta in ace.ea ca datele su.nt interpretate(preproc.esate) de către serv.erul Web înain.te ca acesta sa generez.e cod HTML..
PHP est.e una dintre cele m.ai interesante tehnolo.gii pentru site-uri si p.rogramare web, î.mbina carac.teristici dintre cele mai c.omplexe cu simplitate.a în utilizare. PHP a .devenit un inst.rument de frunte .pentru dezvoltarea apli.cațiilor Web. Spre deo.sebire de alte instrument.e pentru aplic.ații We.b, cum este Perl, PHP. este un limbaj de. progra.mare comod pentru în.cepători, chiar si pen.tru. cei care nu au mai. desfășura activită.ți de program.are.
Daca. sunteți un cunoscător. al limbajului HTML, d.ar nu aveți experienta în. materie de .programa.re, va puteți pune. întrebarea: care sunt f.uncționalitățile suplim.entare pe care le po.ate asi.gura cunoașterea lim.bajului PHP? Ca .si alte limbaje de scriptâ.nd pentru Web, PHP va. permite sa fu.rnizați un continut W.eb dinamic, adică un cont.inut Web care se m.odifica auto.mat de la o zi. la alt.a sau chiar de la un m.inut la altul. Conțin.utul Web este un elem.ent important în su.sținerea traficu.lui unui sit Web; . de regula, v.izitatorii nu vor mai r.eveni la o pagina Web c.are conține .acel.eași informații ca si cele pr.ezentate la ultima vizita. Pe de alta part.e, siturile Web frecvent .actualiza.te pot atrage canti.tăți enorme de t.rafic. .
Mai .mult, spre deosebire .de limbajele de. scriptând, pre.cum Java script, P.HP rulează. pe serv.erul Web, nu î.n navigatorulul Web. .În consecință, PHP poate. obține accesul la fi.șiere, baze de .date si alte res.urse inaccesibile. programului Jav.a script. Acestea const.ituie bogate surse .de continut. dinamic, .care atrag vizitatorii. In. plus, putem folo.si limbajul PHP pe.ntru a genera cod Jav.a Scri.pt.
Secven.tele de cod PHP pot fi in.cluse într-un fișier HT.ML; ulterior ser.verul Web va identi.fica aceast.a secventa de cod , va. procesa acesta. secventa de cod ge.nerând cod HTML iar .la final va .înlocui se.cventa de cod PHP cu codul H.TML..
Printre car.acteristicile cele mai i.mportante ale im.bajului enumeram: .
– simplicit.ate : acest limbaj es.te simplu de folosit, . fiind accesibil s.i ne-programatorilor. . Dator.ita acestui fapt el a d.evenit cel mai po.pular limbaj de scri.pt pentru gene.rarea de pagini .HTML .dinamice.
– ușor de. folosit : limbajul are o sint.axa asemănătoare limbajului .C, care este foarte po.pular in randul. programatorilor. De acee.a programatorii care au cun.oștințe de C sau Perl vor .face foar.te rapid. trecerea spre PHP.. Pe. de alta parte anum.ite. aspecte cum .ar fi: declararea .si folo.sire.a variabilelor es.te mult simplificata in PHP, . spre deosebire de C++ sa.u alte limbaje de nivel î.nalt.
– efi.cienta : specificațiile li.mbajului includ folosire.a tehnicilor de POO (Prog.ramare orienta.ta pe obiecte) iar acest lu.cru contribuie la mărire.a productivității: un program.ator PH.P poate f.olosi module scrise de un. alt programator fara sa fie nevoit s.a cunoască detalii specifice. de implemen.tare a codului. .
– cross-platfor.m : există implem.entări ale limbajului pe mai mu.lte sisteme de operare, cel.e mai populare. fiind cele de p.e sistemele Linux si. Windows. In acest ca.z daca scriem cod. PHP care rule.ază pe un sistem Linux, ult.erior vom putea folos.i acest cod pe un se.rver care rulează. Windows .si viceversa..
– gra.tis : PHP reprez.enta un program .Open Source, oric.ine poate fol.osi acest limbaj fara a fi. nevo.it sa plătească ceva. De asemenea .utilizatorii au a.ccess la sursele PHP (.scrise in limbajul .C). Site-.ul oficial al limbajulu..i PHP se afla la : w.ww.php.net , datorita .popularității acestui li.mbaj exista numer.oase site-uri Web care prezint.ă informații despre PHP, e.xemple de cod, f.orum de. discuți.i , etc. .
Acest .curs de inițier.e in PHP si .MySQL este menit. a prezenta elemente in.troductive d.e programar.e si dezvoltar.e a paginilor web f.olosind PHP. Este .important sa rețineți ca .nu reprezen.ta decât un pun.ct de plecare cu l.ecții si tutori ale php. introductive. Dezvolta.rea Web este .o activitate s.olicitanta, iar viitorul dez.voltator Web trebuie sa disp.ună de multe abilități., print.re care. si pe aceea de progra.mator. Dezvoltatorii. Web începători vor găsi în .acest curs un prim .pas util si amical .în activitatea de .programare în .PHP.
2.1 Tipuri de. șiruri si var.iabile
Program.ele de calculator manipu.lează datele, care repr.ezenta informații. Progr.amele PHP folosesc dou.a categorii principale de date: . numere si șiruri. N.umerele sunt c.ompuse mai ales. din cifre, în. timp ce un sir. poate conține orice caracter, . inclusiv cifre, litere si .simboluri spec.iale.
Decizia p.rivind modul de st.ocare a datelor este im.portanta, în mod caracte.ristic, datele se .stochează su.b forma de nu.mere atunci când se dorește executarea unor operații .matemati.ce asupra datelor, deoa.rece numerele sunt stoc.ate într-.un mod ca.re permite efectuarea de c.alcule. Pe de a.lta parte, șirurile sunt .stocate folosind o modalitate care f.acilitează înțelegerea lor de că.tre operatorul uman. Datele trebuie stocate sub forma de șiruri daca formatul acestora nu este num.eric sau daca doriți .ca operatorul uma.n sa fie capabil de a introduce sau de a .vizualiza datele. .Practic, puteți asim.ila numerele cu un m.od de stocare a datelor în. interiorul calcul.atorului. Surorile se pot asim.ila unui mod de stocar.e a datelor în afara c.alculatorulu.i.
Aceste doua. mari categorii de date: nu.mere si șiruri, formează opt tip.uri principale de varia.bile :
– Boo.lean
– In.teger
– Fl.oat
– St.ring
– A.rray
– O. .bject
– Resource
– Nu.ll
In mod .normal tipul variabilelor. nu este specificat e.xplicit; acesta va fi evalua.t de către inte.rpretorul PHP la momentul. run-time (in momentu.l executarii scriptulu.i).
2.1.1. Tipul Boolean
Variabilel.e de tipul boolean .pot lua doar dou.a valori : FALSE .sau TRU.E
Variabilele de .alt tip decât boolean pot fi c.onvertite la tipul boolean. prin operatorul cast (.bool) .sau (boolean), plasate înain.tea valorilor, desi i.n general nu e nevoie. de aceasta co.nvertire, valoarea. fiind automat recu.noscuta de PHP..
2.1.2 Tip.ul in.teger
PHP fo.losește doua cat.egorii de numere: .întregi (tipul in.teger) si duble, cu virgula. (tipul float)
Variabi.lele integer reprezenta n.umerele întregi, ele pot fi. specificate in format zeci.mal, hexa.zecimal sau octal. .
Numerele într.egi reprezenta numerele fara .parte fracționara folosite la numărarea, plus. zero si numerele. negative. Cu alte cuvint.e, în PHP termenul de .întreg are aceeași semn.ificație ca si. în matem.atica. De exemplu, num.ărul 100 poate fi rep.rezentat în PHP sub .forma de între.g.
Scrierea nu.merelor PHP este. simpla. Un între.g PHP se obți.ne prin scrier.ea cifrelor .care îi alcătuiesc. valoarea. Daca valoarea es.te negativa, scrieți u.n semn minu.s imediat l.a stânga numărul.ui. Evitați sa scrie.ți spatii sau virgule ca pa.rte a unui între.g PHP.
Iată .câteva exemple de n.umere PHP î.ntregi :
2156.78 – Număr in. reprezentare zeci.mala
0x1A.8; – Număr in rep.rezentare hexazecim.ala (reprezenta: 1*1.6*16 + 10*16 +. 8 = 42.4 (in ze.cimal))
0.67 – R.eprezintă: 6*8 + 7. = 55 (in zecima.l)
Valorile mi.nime, respectiv. maxime pe care le poat.e lua o variabila de tip. integer depind de .sistemul. de operare pe care rulea.ză modulul PHP. De exemplu pentru u.n sistem Windows .val.oarea unui integer .se micșorează pe .32 de biți: 31 bit p.entru număr si un bi.t pentru sem.n. In ace.st caz valorile unui î.ntreg se afla in inter.valul :-231 repectiv: 2.31. Daca încerc.ăm sa fol.osim un integer cu. valori care ies din acest int.erval vor av.ea de-a face cu un feno.men de d.epășire : integer over.flow. In acest caz int.erpretorul PHP convertește ace.sta .valoare într-o valoare. de tip floa.t (care are un interv.al mai extins d.e valori).
In PH.P simpla împărțire .a doua valori întregi v.a produce ca rezultat o .variabila de tip. float. Pentru a obți.ne doar partea într.eaga acestui rezultat putem folosi opera.torul cast (int) in fata rez.ultatului.
Ex.: echo. (int)8.7; (va. returna 8)
Pent.ru a rotunji rezultatul .la întregul cel mai ap.ropiat de valoarea reala se p.oate folosi funcția round(),. unde intre paran.teze se adaugă valo.area.
Ex.: echo. round(8.7); (va .returna 9)
2.1.3 Tipul float
Reprezi.ntă variabile de tip real [nu.merele cu virgula], (în lb. .engleza se folos.ește punctul zecim.al în loc de virgula). De .exemplu .2.5
In general., numerele duble (tip.ul float) sunt stoca.te folosindu-se formatul s.tandard IEEE-64, care furnizea.ză 64 de biți. Acest format va p.ermite sa stocați valori care pot merge .până la 1,8 x 10 la put.erea 308 sub forma de numere du.ble si furnizează aproximativ 14 c.ifre după punctul zecim.al (sau cifre semnificati.ve) de preci.zie.
Iată cât.eva exemple de nu.mere duble (tipul. float)
123.4567 – Num.ăr de tip fl.oat
1.2e3; – R.eprezintă: 1. .2 * 103
2.1.4. Tipul string
Repre.zintă o înșiruire de caracter.e, fiecare caracter est.e memorat pe 1 byte; setul .de caractere este li.mitat la 256 valori distincte. Dim.ensiunea șirurilor poate fi oricât .de mare in PHP., nu exista s.pecificații care sa limiteze numărul .maxim de caractere dint.r-un sir.
Spre deosebi.re de întregi si de numere float, care co.nțin cifre, șirurile pot conține .orice caracter. Ca atare, . șirurile sunt utile pentru stoca.rea datelor care nu pot fi ca.lculate, precum nume, fr.aze si adrese..
In PHP, un .sir poate fi declarat in mai multe .feluri:
1) Un m.od simplu de a declara u.n sir este prin delimi.tarea cu ghilimele simple (.' ')
Daca dorim. ca șirul sa conțină cara.cterul ' va trebui sa inseram în.aintea lui caracteru.l escape \. Daca dori.m ca șirul sa conțină car.acterul \ va trebui sa dublam. acest caracter. A.cest com.portament este exempli.ficat in exemplul ur.mător:
2) O al.ta metoda pentru a specifica un. sir în PHP este prin folosirea .ghilimelelor duble (" ")..Daca într-u.n sir delimitat prin ghilimele duble v.rem ca acesta sa afișe.ze numele unei variabile, nu .valoarea a.cesteia, adăugăm un car.acter backslash (\) înaintea n.umelui variab.ilei.
Exemplu; echo "Numele variabilei. este \$var";
Acest cod va a.fișa Numele variabilei .este $var, oricare ar fi .valoarea variabilei "$v.ar".
Caracterel.e care alcătuiesc șirul sun.t incluse între ghi.limele duble. (" ");
De exe.mplu, șirul repre.zentând numele fizician.ului care a formulat teoria r.elativității este ."Albert E.instein". Asa .cum s-a expl.icat, un sir po.ate con.ține date numeri.ce; de exemp.lu, "3.1415.9".
Da.ca se dorește adăugarea .de ghilimele duble în.tr-un sir delimitat de .ghilimele duble, se .adaugă carac.terul \ in fata acestora. .
Exempl.u; echo "Numele pro.gramului este \"PHP.\".";
Prin de.limitarea cu ghilimele. duble PHP facilit.ează includerea în șirur.i a unor caractere spe.ciale, precum ca.racterele de salt la linie noua sau .retur de car, prin fur.nizarea de secvente esc.ape care reprez.enta caracter.e speciale. .
Iat.ă secventele esca.pe folosite în P.HP:
\n – sa.lt la linie noua.
\r – .retur de c.ar (rand. nou)
\t – ca.racter de tabu.lare pe orizo.ntala.
\\ – bac.kslash.
\$ – sim.bolul dolarului.
\" – gh.ilimele duble.
Ca exe.mplu, iată un sir care .include un retur de car, u.rmat de un salt la linie no.ua: "Sal.ut, l.ume!\r\.n".
Reține.ți ca fiecare secventa es.cape începe cu un .backslash (\). Pentru. a include un b.ackslash într-.un sir, trebuie sa. folosiți doua caractere. backslash..
Pe lângă. imbricarea variab.ilelor in cadrul șiru.rilor delimitate. prin ghilimele duble, . PHP pune l.a disp.oziție operatorul de co.ncatenare a șirurilor: .. (punct) . Acest opera.tor adaugă un. sir la sfârșitu.l altui sir. De ex.emplu: .
2.1.5. Tipul array
Reprezi.ntă un vector de valori, fi.ecare element al matricei .are asociat o ch.eie. Aceasta c.heie va fi folosi.ta ulterior la identi.ficarea unui elem.ent specific a.t matricei. In PHP. tipul array se mai num.ește si tip map ordo.nat, deoarece eleme.nte vectorului sunt .ordonate după c.ampul cheie. .
Variab.ilele de tip array. si lucrul cu acestea. vor fi prezentate m.ai detaliat in lecțiile. următoa.re. Iată un .exemplu simplu .de variab.ile arra.y:
2.1.6. Tipul object
Rep.rezintă de fapt insta.ntă unei clase declarate. in PHP. O clasa este .o structura car.e conține .variabile m.embru si fun.cții membru. .
Variabilel.e de tip object si l.ucrul cu acestea vo.r fi prezentate detaliat. in lecțiile următoare..
2.1.7 . Tipul resource
Este .un tip special de variabila. care păstrează o legatura .spre resurse externe. Ex.emple de res.urse extern.e: manipulatori pen.tru deschidere de fișiere, .conectare la baze .de date, comp.resia fișier.elor, resurse CO.M, etc…
2.1.8. Tipul NULL
Reprezi.ntă variabilele care nu .au inca atribuita o. valoare. .
O variabil.a se considera a a.vea valoarea Nul.l daca:
– es.te setata explicit prin atri.buirea valorii NU.LL
– nu a. fost asignata inca o valoa.re acestei variabil.e
– va.riabila a fost ștearsă .prin funcția uns.et();
P.utem afla tipul unei vari.abile folosind funcția .gettype() care re.turneaza un strin.g (sir) co.ntinuând tipul varia.bilei cercetate..
2.2 Variabile si operatori PHP
2.2.1. Valori si variabile
Daca s.e asociază o valoare cu un n.ume, ca si in algebra, este posi.bila modificarea acelei val.orii prin r.eferire la numele res.pectiv. O valoare cu. nume se numește varia.bila, deoare.ce.
In limb.ajul PHP variabilele su.nt reprezentate prin. semnul $ urmat de. numele variabilei. .
Numele vari.abilei este case sensitiv.e, adică contează da.ca numele este scris c.u litere mari sau .mici. Înt.otdeauna numele variab.ilelor trebuie sa înceapă cu o. litera sau o lingură de subl.iniere (_) si poat.e fi urmat de liter.e sau cifre. .
Iată .câteva exemple d.e nume de variabila: .
$v.ar
$Num.ăr
$_elem.ente
Pentru .a asocia o valoare u.nei variabile, veți scr.ie cu un semn e.gal, as.a:
$temp.eratura = 33.5; .
Semn.ul egal este urmat de v. .aloarea care urmează a fi atribuita vari.abilei, in acest ex.emplu, valoarea est.e data de valoarea literala dubla . (float) 33.5. Carac.terul punct si vir.gula (;) mar.chează sfârșitul .inst.rucțiuni.
De aseme.nea, puteți atr.ibui valoarea unei variabile cătr.e o alta variabila, prin sc.rierea un.i instruc.țiuni de atribuire .astfel:
$.castigator = $num.e;
In ace.st caz, valoarea variabile.i $nume devine val.area variabilei $castig.ator. Acest procedeu. se numește. Astfel o mo.dificare făcută asupra lui $nume. se va propaga automat. si asupra variabi.lei $casti.gator.
Va.riabilele declarate mai sus sunt. definite de utilizator. .In PHP exista si alte vari.abile numite "variabile pr.edefinite" care rezida i.n nucleul PHP, sunt aloca.te automat de către modu.lul PH.P, si sunt accesibil.e in program. . .
In contin.uare enumeram câteva dintr.e aceste "Variabile Superglobale." (accesibi.le din toate .scripturile PH.P):
$GLO.BALS – conțin.e referințe la variabilele. globale disponibile. in scriptul curent. .
$_SERVE.R – variabile definite .de server sau relative la context.ul in care se executa .scriptul cu.rent
$_GET – v.ariabile furnizate scriptului. prin adresa URL.
$_POS.T – variabile furniza.te scriptului prin metoda HTT.P POST (in general p.rin formulare)
$_C.OOKIE – variabile fu. .rnizate scriptului prin HT.TP cookie.
$_.FILES – furnizează scriptu.lui fișierele uploa.date
$_SESS.ION – variabile care sunt înre.gistrate in ses.iunea scriptului.
2.2.2 Operatori
Pentru a va ajuta sa efectuați calcule si prelucrări ale datelor, PHP include o diversitate de operatori si funcții utile. Când combinația valorile literale si variabilele cu operatori si funcții, construi ceea ce este cunoscut sub numele de expresii.
Operatorii sunt simboluri specifice care realizează o acțiune specifica in cadrul unei expresii.
Operatorii acționează asupra variabilelor prezente in expresie. De exemplu in cadrul expresiilor matematice vom folosi operatori aritmetici.
2.2.4. Funcții
In afara de operatori, PH.P include funcții c.are executa operații utile. Iată unele ex.emple d.e func.ții:
abs. (x) – Returneaza valo.area absoluta a l.ui 'x'
c.eil(x) – Returneaza valoa.rea 'x', rotunjita la într.egul imediat supe.rior
floo.r(x) – Returneaza valoar.ea 'x', rotunjita la întregu.l imediat infe.rior
max(x.,y,…) – Returneaza valoarea maxima a unui se.t de valori.
m.in(x,y,…) – R.eturneaza valoarea mini.ma a unui set de v.alori
pow. (x,n) – Returneaza nu.mărul 'x', ridicat la p.uterea specif.icata 'n'
strf.time(f) – Returneaza data cur.enta, formatata conform co.nținutului parametru.lui 'f'
sq..rt(x) – Re.turneaza ră.dăcina .pătrată a l.u.i 'x'
– In a.fara de acestea, PH.P include multe alte. funcții. Consultați site-.ul www.php.n.et.
Major.itatea funcțiilor necesi.ta una sau mai multe valori de in.trare, cunoscute sub num.ele de argu.mente. De exemplu., funcția "sqrt" necesita. un argument (ai.ci este 'x') care spe.cifica valoarea a carei radac.ina pătrată trebuie cal.culata.
Unele f.uncții, precum min. () si max(), preiau un numă.r nedefinit de argumente. A.lte funcții nu. necesita .nici un fel de argumente. .Pentru a putea fol.osi o funcție in mod cor.espunzător, treb.uie sa c.unoaștem:
Num.ele funcției.
A.cțiunea funcției s.i valoarea returnata de aceas.ta, daca exis.ta
Număr.ul argumentelor pre.luate de funcț.ie
Sem.nificația fiecărui .argumen.t
Iată. un exemplu sim.plu care folosește .o funcție pentru cal.culul lungimii laturilor u.nui păt.rat, dac.a este cunoscuta. aria pătratului: .
$la.tura=sqrt. ($ari.e); .
Iată. un exemplu care. prezintă modul de. utilizare a funcției "ma.x", care preia ma.i mult.e argum.ente:
$p.unctaj_maxi.m=max($pun.ctaj1, $punctaj2, $p.unctaj3.);
Rezult.atul dat variabilei "$pu.nctaj maxim" va fi de.terminat de funcția "m.ax", ac.easta determ.inand valoarea cea mai m.are a argumentelor. din parante.za.
Obs.ervații ca fiecare argumen.t este separat de vecinul sa.u printr-o .virgula.
3. Administrarea bazelor de date MySQL din linia de comanda
„MySQL este unul .dintre cele mai des utilizate sisteme de gestiune a .bazelor de date clie.nt-server, fiind utilizat deseori îm.preună cu scrip.turi P.HP. Ss.sp.re deoseb.ire de lucr.ul cu alt.e baze .de date, care presupun.e utili.zarea uno.r biblioteci suplim.entare (.dll), oper.a.rea cu baze de date. M.ySQL este im.plicit “inclu.să funcțio.nal” în motorul interpr.etorul.Fui PHP (buil.t-in)”.
Operațiile car.e se desfășoară cel mai ad.esea într-un sistem de gestiune .a bazelor de d.ate sunt:
– conecta.rea la server;
– afișarea b.azelor de date exist.ente;
– selectarea un.ei baze de date cu care treb.uie sa se lucreze;
– afișarea tab.elelor conținute într-o baz. de date;
– crearea u.nei baze de date.;
– crearea ta.belelor din interiorul unei .baze de date si precizarea .campurilor conținute in acele .tabele;
– populare.a tabelelor cu d.ate;
– inserarea, re.găsirea, modificarea sau .ștergerea datelor d.in tabele;
– efectuarea uno.r interogări asupra datel.or cuprinse in tabe.le;
– deconectar.ea de la serverul de b.aze de date. .
3.1 Conecta.rea la MySQL
Conectarea clientul.ui la serverul MySQL implică .o comandă de genul (tastată la .prompter-ul sistemului .de operare, in directorul mysql.\bin):
mysql –h h.ostname –u usernam.e –p unde:
-hostname est.e numele sau adresa IP a calc.ulatorului pe care rulează serverul .MySQL. Dacă. programul client rulează pe .același calculator ca și pro.gramul server, opțiunea –h hostn.ame poate fi omisă. N.u există nici o legătură. între numele user-ului de con.ectare la serverul. (Linux sau Windows) .pe care este instalat MyS.QL-ul și numele de us.er MySQL.
-userna.me este numele de .user.
-opțiunea. –p cere user-ului care se cone.ctează să introducă pa.rola corespunzătoare.
(va apare un .prompt pentru parolă).
După instalare, u.n user implicit este creat pen.tru conectare (pentru host-ul pe. care este instalat server.ul MySQL, respectiv p.entru un host-client la dista.nță), fără nume și fă.ră parolă. În acest caz con.ectarea (de pe host-ul local) .se face tastând doar com.anda
‘mysql’ fără parametri.i (sub Linux) sau lansând mysql.exe (s.ub Windows).
În cazul unei con.ectări reușite, programul clie.nt MySQL va afișa pro.mpter-ul corespunzător liniei .de comandă:
La apariția .liniei de comandă, serveru.l MySQL este pregătit pentru a primi .comenzi. Pentru începu.t, se vizualizează bazele de .date care sunt m.omentan sub gestiunea. severului:
Observație: Î.ncheierea unei comenzi trebu.ie să se facă neapărat prin ‘;’. Î.n cazul în care lipsește ‘;’, și. se tastează ENTER, se c.onsideră că respectiva comandă. este scrisă pe mai mu.l.te rânduri, așteptân.du-se continuarea editării co.menzii, până la introduce.rea caracterului .;. Altfel spus, ENTER după caracterul ; înse.amnă executarea comenzii iar ENTER după orice alt carac.ter însemnă continuarea .editării comenzii pe o noua li.nie. Spre exemplu, coman.da anterioară p.oate fi scrisă pe 3 linii astfe.l:
Serverul MyS.QL-ul utilizează o prima b.ază de date, numită ‘mysql’, pen.tru a stoca numele user-ilor, . parolele corespunzătoare a.cestora și drepturile lor (în d.iverse tabele, asupra cărora se. va reveni). Ștergerea ac.estei baze de date (opera.ție nerecomandată) poat.e conduce la erori în funcțio.narea server-ul.ui.
Comanda „create .database”
Înaintea. creării grupului de tabele care v.or servi la memorarea datelor, trebuie. creata o baza de date folosind com.anda create database. Exemplu: .
mysql>cre.ate database evidenta;
Comand.a „use” .
Pentru a. lucra (a selecta) o .baza de date, aceasta trebuie .precizata folosind instrucțiunea use urmata de nu.mele bazei de date res.pective.
mysql>u.se evidenta; .
Comanda „c.reate table”
După crear.ea bazei de date si selectar.ea ei se poate trece la c.rearea tabelelor.
(fișierel.or) bazei. Instrucțiunea create table are. sintaxa:
mysql>create .table nume_tabela( mysql>.nume_col1 tip atribute, .mysql>nume_col2 tip atri.bute, mysql>primary_.key(nume_col1.) mysql>);
Atributele ca.mpurilor unui .tabel
• unsigned – pre.cizează că nu sunt ad.mise valori negative. .
• not null –. precizează ca la efectuarea unei .înregistrări acel camp trebuie neapărat .completat cu o v.aloare potrivita, deci nu. este permisa valoare.a nula
• auto_increme.nt – este un atribut sp.ecial in MySQL si funcțion.ează astfel: la efectuare.a unei înregistrări în. tabel, daca nu .se precizează valoarea acestui .camp, atunci MySQL. generează. automat un număr unic, .mai mare cu o unit.ate decât valoarea ma.xima de pe coloana resp.ectiva in acel moment (.de obicei, pentru campuri cu. numere întregi). MySQL .impune ca o coloana. cu atributul auto_increment .sa aibă o valoare un.ica.
• primary_key- arata. ca acea coloana din ta.bel este indexata pentru căut.ări rapide si c.a fiecare v.aloare din acel camp trebuie s.a fie unica.
Comanda . “alter”
Modificare.a definiției unei tabele se realizea.ză folosind comanda alter. .
1.Mod.ificarea numelui unei .tabele:
mysql>alter table n.ume_vechi rename nume._nou;
2.Adoptarea u.nei coloane:
mysql>alter t.able nume_tabela add column nu.me_coloana tip atribute; .
Com.anda. “inse.rt”
Inser.t serveșt.e la ad.ăugarea de înregistrări (lin.ii) într-un. tab.el al bazei de .date .cure.nte. Sintax.a com.enzi.i este:
mysq.l>i.nsert into n. .ume_tabela(col.1, col2, . ….) .val.ues (val1.,v.al2,…); Valor.ile .d.e tip text tre.bu.ie puse. intre .ghili. .m.ele. sim.ple.
Co.manda . “.delete” .
Pen.tru a ș.t.erge unul sau. m.ai multe articole. existe..nte, dintr-o tabela s.e .va utiliza comanda d.elete .cu s.intaxa:
my.sql>d.elet.e f.rom nu.me_tabela whe.re .n.ume_cam.p=100; . . .
Pentru a. ște.rge toate articolel.e existe.nte dint.r-o tabela, sinta.xa c.omenzi.i est.e;
m.ysq.l>delete fr.om num.e_tabela; .
.Coma.nda. “drop” .
Coma.n.da drop permite. suprimar.ea .unui tabel di.n b.aza de. dat.e curenta s..au distru.gerea între.gi.i baze de .date. .Sintaxa co.men.zii .este:
mys.ql>dro.p table nume_tab. .ela;
mysql.>drop dat.a.base num.e_baza;
Coma.nda “s.ho.w”
Com..anda show se folos.ește pentru lis.tarea bazelo.r de date exi.stente., a tabelelo.r din .baza d.e date curenta sa.u. pentru listare.a camp.urilor unei. tabele. Sintax.a ei est.e:
.mysql>sho.w tables;
mysql>sho.w fields from nume_tabela;
Co.manda. “quit.” .
Comanda. .determina întrerupere.a. conexiunii cu serverul MySQ.L si închi.derea sesiunii d.e lucru a .clien.tului MySQ.L. .Este echivalen.ta cu e.xit.
mysq.l>q.uit.;
mys.ql.>exit; .
3.2 Dezvoltare .de aplicații PHP cu baze de .date MySQL
Princip.ial., operarea .în PHP cu baze MySQL e.ste extre.m de asemănă.toare cu cea cu b. .azele de date I.nterBase. (deosebirile a.părând d.oar prin funcțiile. diferite u.tiliz.ate).
3.2.1 Interogare. fără parametrii a u.nei baze de date
Exemplul următ.or prezintă una din cele mai si.mple modalități de interoga.re neparametrizate a unei t.abele MySQL, cu o afișare formata.tă a rezultatelor sub o formă tabel.ară (vezi .fig.1).
Analizând codul surs.ă, se poate observa o parte .de cod HTML pentru realizarea c.apului de tabel necesar .afișării, după care urmează .scriptul PHP propriu-zis pentru in.terogarea baze.i de date. La această par.te a codului se vor face referi.ri în continuare. Apar câteva fu.ncții PHP noi, care permit operarea cu ba.ze de date MySQL:
– mysql_connect –. permite conectare.a la un server MySQL
– mysql_select_.db – permite selecția bazei .de date MySQL
– myql_qu.ery – in.terogarea efectiva .a tabelei .MySQL (ca parametru pu.tându.-se practic folosi oric.e string .reprezentând o. comandă MySQ. .L validă)
– mysql._fetch_row – returnează u.n șir de valori (core.spunzând unei linii din t.abela interogată), iar când nu mai s.unt alte linii – returnează. FALSE
– mysql_close – î.nchide conexiunea cu s.erverul MySQ.L
Construcția de li.mbaj list( ) (care, ca și ar.ray, nu este o fun.cție PHP în sens real), .permite asignarea unor valo.ri unei liste d.e variabile (asemănătoare. practic unui șir), . printr-o singură operație. .
După cum am .mai menționat, un. astfel de exemplu de inte.rogare a unei tabele, fără .nici un parametru, e.ste un exemplu pu.r didactic. În realitate., interogările se r.ealizează pe baza u.nor informații fu.rnizate sub formă de pa.rametrii.
4. Ajax
Ajax este un acron.im (denumirea prescurtata) de la .Asynchronous JavaScri.pt And XML.
Ajax este o combinat.ie de mai multe limbaje (client si.de si server side) folosite împr.eună, bazate in pri.ncipal pe JavaScript. .
„Aceasta te.hnologie își are originea in .anii 1998-2000 când a fost d.ezvoltata si folosita de. Microsoft in a.plicația Outlook Web. Acces utilizând ext.ensii ale proprietățilo.r HTML incluse .in Internet Explorer 5. .Dar acest termen ".AJAX" a fost creat in 2005, . a devenit popular si a. cunoscut o dezvo.ltare accentuata după ce a .fost folosit de Google in ap.licațiile sale: Google Maps, Gmail” ..
In mod sta.ndard, înainte de. Ajax, pentru fiecare interacțiu.ne a unei aplicații w.eb cu serverul, pa.gina web trebuia complet. încărcată. Cu tehnolog.ia Ajax pot fi încărcate .si modificate doar anumite parti d.in pagina, prelucrate si gen.erate de server, fara a reîncar. .că to.ată pagina we.b. Acest lu.cru are ca rezultat .încărcarea mai rapi.da a conținutului in pagina si reducerea traficu.lui. De aseme.nea, pot fi trimise d.ate la server, de la pagin.a web deschisa, in timp. ce utiliza.torul urmăre.ște conținutul .paginii, fara ca aceasta. sa fie afect.ata.
Pentru folosi.rea Ajax este nec.esara cunoașterea in. primul rand a. limbajelor HTM.L sau XHTML si Ja.vascript, apoi CSS si a u.nui limbaj de prog.ramare pentru partea de. server prec.um P.HP sau ASP. .
Pentru .Ajax nu contează ti.pul limbajului de .programare folosit pe part.ea de server ci .răspunsul primit de la. server sa fie cu un Conten.t-Type de tip text (plain, . XML, H.TML).
Aja.x este suportat de majoritatea. navigatoarelor web, In.ternet Explorer, Mozilla Firefo.x, Opera, Safar.ii, …., si utilizează in princip.al obiectul JavaScript. XMLHttpRequest, aces.ta permite. realizarea comunicării .cu serverul si afișarea .datelor primite fara a fi ne.cesara reîncărcarea .paginii. .
„Având in v.edere ca Ajax trebuie sa folosească .JavaScript, care poate fi dezac.tivat de utilizator, ia.r motoarele de căutare inca nu sti.u sa indexeze paginile din. site care sunt genera.te prin JavaScript; t.rebuie ținut cont de aceste lucrur.i când se creează site-uri w.eb care folosesc .Ajax.” .
Acest curs. este gratuit, explica p.entru începători modul d.e creare si folosir.e a obiectului .XMLHttpRequ.est si lucrurile de baz.a in utilizarea Ajax, princ.ipalele metode de aplicare. si folosire a acestu.ia in paginile unu.i site.
4.1 Utilizare Ajax cu .GET si PHP
„Ajax este mai mul.t decât utilizarea obiectului XMLH.ttpRequest, const.a in folosirea, . pe lângă JavaScript, si a. unui limbaj pe partea de serv.er. Ajax poate fi .utilizat in multe tipuri d.e aplicații care pot fi i.ncluse într-o pagina web, . dar cel mai folosit e.ste pentru navigare d.e la un conținut la. altul al site-ului. A.ceasta navigare se fa.ce de obicei prin link-uri, .acestea conțin o. adresa URL către .pagina /conținutul resp.ectiv. Metoda standar.d de transmitere a dat.elor adresei URL din l.ink-uri la serve.r este GET.”
In lecția preceden.ta (despre lucrul cu XML.HttpRequest) este prezentat modul. de creare a unei cereri pentru a.pelarea unui fișier, si a.nume cu metoda open(metho.d, url, flag).
– "method" es.te metoda prin care vor f.i trimise datele, GET. sau POST (in .aceasta lecție este .prezentat GET.). .
– "url" este ad.resa URL care va fi. apelata, aceasta poate conține, alături de calea si nu.mele fișierului c.are va fi apelat, si date de tip per.echi "indice=valoare", care sunt tra.nsmise prin GE.T fișierului respectiv. .
– "flag" e.ste o valoare booleana, "t.rue" sau "false"(este ex.plicata in lecția preced.enta).
Într-o adre.sa URL, pe lângă adres.a paginii /fișierului care va .fi apelat, pot fi .incluse si anumite va.lori care sa fie procesate de .fișierul respectiv. Aceste va.lori sunt adăugate in a.dresa URL, după numele. paginii si semnul '?', sub for.ma de perechi indice=valoar.e (despărțite pr.in caracterul &, daca su.nt mai multe astfel de .perechi).
De e.xemplu:
o adresa .URL simpla către o pagina / fișier PHP, poate fi de for.ma http://www.domeniu_site./fisier.php (nu.mita si "cale. absoluta" deoarece conține toată c.alea către pagina) sau dir/f.ișier.php (folosita pentru fiși.ere din cadrul acelu.iași server, numita si .cale rel.ativa").
o adresa ce conține si .valori care trebu.ie transferate la server are .forma http://www..domeniu_site/fisier.php?in.dice1=valoare1&indice2=v.aloare2 (sau .dir/fișier.php?in.dice1=valoare1&in.dice2=valoare2.
Metoda "open()". a obiectului XMLHttpR.equest face exact a.cest lucru, creează cerer.ea care va .fi trimisa la server, compusa di.n metoda de transfer si adresa UR.L a fișierului la .care se face cerer.ea, unde pot fi adăugate. aceste valori (perechi indic.e=valoare). Apoi, pri.n metoda "send()" se exec.uta trimiterea.
.Partea importanta este si fiși.erul de pe server care va. primi datele, in co.ntextul acestui curs ma refe.r la fișiere PHP, dar pe parte.a de server poate fi fol.osit oricare alt limb.aj accepta.t de server. .
4.2 Exe.mplu de folosire Ajax.
1. – Creați pe serve.r un fișier PHP, d.e exemplu "test_get.php", .in care adaugați următorul cod: .
2. – Creați un fișier. HTML pe server, de exemplu. "ajax_get.html", in ac.elași director unde est.e si fișierul "test_g.et.php", si adaugați in el .codul de mai jos, comentariile explic.a ce rol au codurile. scrise: .
– Fișierul PHP ".test_get.php" conține un script r.elativ simplu. Daca primește date prin GET, cu indice 'test', preia valoarea lor. in variabila "$sir" si cu "e.cho" afișează /returne.ază .un sir care conți.ne valoarea string (te.xt) primita si numărul de caracter.e si cuvinte din aceast.a (calculate. de funcțiile PHP sp.ecifice).
– In fișieru.l "ajax_get.html" este, .in secțiunea HEAD .un script pentru Ajax, ia.r in secțiu.nea BODY e un tag. <h5> folosit pentru a acționa. scriptul si un DIV cu un. text in el.
– codul onclick="aja.xrequest('test_get.php', 'cont.ext')", din eticheta <h5> face ca la. click pe ea sa .fie apelata funcția ".ajaxrequest()", transferându-i ca argumente nume.le fișierului PHP ."test_get. .php" (care va fi apelat de script) si id-ul div-ului (din car.e va fi preluat conțin.utul si apoi va fi .adăugat răspunsu.l).
– După ce in va.riabila "cerere_http" este adăug.ata instanță la obiectul XMLHtt.pRequest (prin. apelarea funcției "get_XmlHt.tp()", care definește acest o.biect in funcție de browser) am cre.at in variabila "url" ad.resa URL cu fișierul p.hp care va fi apelat si datele ca.re-i sunt transmise, a.ceste date fiind perechea ."tex=conținutul_.din_div".
– Apoi, cu "ope.n()" este creata cererea si .metoda de trans.fer GET, iar "send()" efect.uează trimite.rea datelor.
– Conform .codului din scriptul P.HP "if (isset($_GET['test'])", acesta. recunoaște ca au fost trimise date pri.n GET si cu indicele. 'test', si prelucrează. datele, trimiț.ând ca răspuns șirul pe .care-l returnează expres.ia din "echo"..
– După ce scriptul a ve.rificat ca răspunsul a fost primit co.mplet, îl afișează .in div-ul cu .id="context"..
4.3 Utilizare Ajax .cu POST si P.HP
„Un alt mod de .trimitere a unor d.ate dintr-o pagina .web la server este prin metoda .POST.Cu Ajax, cererea pe.ntru trimiterea datelor. cu POST se face t.ot prin metoda "op.en()" a obiectului. "XMLHttpRequest", sintaxa. acesteia fiind open(."POST", url, flag), u.nde "POST" est.e metoda d.e transfer, "url" .este adresa fișierului PH.P la care va . .fi transmisa cererea, .iar "flag" este .o valoare boolean.a true sau false” ..
Diferența f.ata de GET, in trimiterea datelo.r prin POST, consta in 2 lucru.ri importante:
1. După creare.a cererii cu "open()" si înainte de tri.miterea ei cu "send()", se ap.elează o alta metoda a obie.ctului "XMLHttpRequest", si a.nume "setRequestHeader()", f.olosind sintaxa. :
setRequestHead.er("Content-type", "applica.tion/x-www-form-urle.ncoded")
– Aceasta .trimite un Header la server care-.i spune sa recunoască datele t.rimise de "send()" ca si .cum au fost tran.smise prin POST (precum. sunt encodate si .trimise datele din formulare). .Daca acest Header .nu este adăugat, serverul nu va recunoaște ca. datele din parametrul l.ui "send()" au. fost trimise prin POS.T.
2. Ca para.metru al metodei "sen.d()", in loc de null .se adăugă datele (pere.chile de tip .indice=valoare) ca.re trebuie trimise prin PO.ST.
In rest, prelucrar.ea răspunsului primit de la. server se face la fel ca in. cazul apelării cu. GET..
5 Descrierea aplicației
Acesta este un CM.S pentru un Blog persona.l simplu; creat c.u PHP, MySQL (folosi.nd tehnologia OOP. si PDO), HTML5, si J.avaScript (Ajax cu jQuery). Accesibil de. pe desktop si dispozitive mobile; uș.or de administra.t.
5.1 Cerințe d.e Sistem
– Server Ap.ache, cu .htaccess s.i Mod-Rewrite vala.bile.
– PHP 5..2 +
– MyS. .QL 5+
– Navigator Web cu JavaScr.ipt.
5.2 Caracterist.icile aplicație
– Adrese URL r.escrise pentru S.EO.
– Accesi.bil de pe desktop s.i dispozitive Mobile.
– Dublu sistem d.e Cache (in fișiere pe server, . si pe partea de client), ceea ce face .ca paginile sa se încarce .foarte repede, si consuma putina banda d.e trafic.
– Fiecare Catego.rie si Articol pot fi setate sa fie încărcate prin Ajax., sau standard.
– Valid HTML5. (Funcționează si pe versiune .de Internet Explo.rer care nu recun.oaște HTML5).
– Ușor de adm.inistrat (creare, m.odificare, ștergere Cate.gorii si Articole, direct din pagi.na Web).
– Ușo.r de creat propriul Te.mplate.
– Ușor de .tradus ca sa fie folosit in a.lte limbi.
– Urea.ză automat Meniul, Arhi.va si RSS Feed.
– Vizita.torii pot lăsa comentarii in p.agina de blog, si pot sa prim.ească notificare prin e-mail cân.d sunt adăugate alte c.omentarii. .
5.3 Ins.talare
1. Se deschid.e fișierul "config.php" (in directorul "b.incls/") si editează următo.arele date.
Pentru conectare la baza de date MyS.QL:
$mysql['h.ost'] = 'local.host'; .
– se înlocui.ește localhost cu adr.esa serverlui MySQL folosit.
$mysql['user.'] = 'roo.t';
– se înloc.uiește root cu numele de uti.lizator pentru acces la baza de d.ate.
$mysql['pas.s'] = 'passdb';
– se înlocuie.ște passdb cu pa.rola de acces la MySQL..
$mysq.l['bdname'] = 'dbn.ame';
– se înlo.cuiește dbname cu numele bazei de date .MySQL.
Pentru aute.ntificare si e-mail Administrator, se mo.difica următoarele date: .
define('.ANAME', 'admin');
– se înl.ocuiește admin cu ce numele adm.inistratorului
define('APA.SS', 'pass');
– se înlocuieș.te pass cu parola p.entru Administrator..
define('CMAMA.IL', '[anonimizat]');
– se înlocuieș.te [anonimizat] cu adre.sa de e-mail a Administratorului. .
Pentru a modifica n.umărul de articole paginate, afisate in pag.ina principala si in categorii, se .schimba valoare.a 12 la următoarea con.stanta (linia 20): .
define('BRO.WSPAGE', 12);
Pentru a. edita permisiunile imaginii. adăugate prin Upload in Conținut si in .Comentarii, se schimba următoare.le setări (in "config.php"):
$imguprule .= array(
'dir' =>. 'bimgs/', // directorul in care sunt s.alvate imaginile
'allowext' => a.rray('gif', 'jpg', 'jpe', . 'png'), // extensiile. permise
'maxsize' =>. 500, // mărimea maxima per.misa pt fișierul .cu imaginea, in KiloByt.es
'width' => 1.000, // lungimea maxim.a permisa, . in pixeli
'height.' => 750 // înălțimea maxima. permisa, in .pixeli
);
Daca .blogului i se adaugă un scrip.t de Înregistrare /Logare, . si se dorește ca. doar .utilizatorii .înregistrați sa poată adaugă co.mentarii, trebuie s.etata valoarea 0 la $ad.dcomm . De .asemenea se setea.ză $_SESSION['.username'] cu sesiun.ea in care acel script r.etine numele de .utilizator; in codul urmă.tor, din "config.php".:
$ad.dcomm = 1;
if($addcomm ! .== 1) {
if(isset($_SE.SSION['username'])) $nameu.sr = $_SESSION['userna.me'];
}
Pentru anu.larea opțiunii de Upload si adăugar.e imagine in comentariu, .valoarea următoarei constante. trebuie schimbata din. 1 in 0:
define('C.MALLOWI.', 1);
Pentru a anula opțiunea de notificare prin e-mail când sunt adăugate comentarii noi, se schimba valoarea următoarei constante din 1 in 0:
define('CMALLOWM', 1);
Pentru a sc.himba numărul de comentarii afisate pe. pagina,se modifica numărul .12 de la următoa.rea constanta (linia 42) cu numă.rul de comentarii droit.,. care sa fie afisat.e pe pagina :
define('CM.ROWSPAGE', 12);
2. Se copiază fi.șierele si directoarele. CMS-ului pe server: "bcac.he", "bimgs", ".bincls", "bjs", "btempl" si ."icos" (cu toate fișiere .lor), si fișierele: ".hta.ccess" si "index. .php".
3. Se acorda permisiuni ci.tire-scriere-executie ( CH.MOD 0777 sau 0755) la .directoarele. "bcache" (retine fișierele. cache) si bimgs (stochea.za fișierele cu imaginile adă.ugate prin .Upload) ..
– Perm.isiunile CHMOD,se se.ează urmând.pașii:
se cop.iază Cm s-ul pe. server,
clic-dr.eapta pe fișier, sau dir.ector,
se alege . . "Properties",
se bifează /selectează acele opțiuni..
4. S.e acorda permisiuni de ci.tire-scriere-executie la fișierul "resetchec.kcm.txt" (in .directorul "bincls/"), setând C.HMOD 0777 cu .aplicația FTP (acest fi.șier retine data r.esetării ultimei verificare a m.esajelor de către Adm.in).
5. Ultimul pas, .crearea tabelelor in. baza de date MySQL. . Pentru a crea t.abelele in MySQ.L, se deschideți. in browser fișier.ul "bincls/create_.tables.php" (In brows.er se ratează o adre.sa ca aceasta: .
"http://localhost./bincls/create_tabl.es.php"), "localhost" e nu.mele domeniului site-ului. .Utilizare
In momentul in ca.re se apelează fișieru.l create_tables, bro.wserul interpretează cod.urile di acest fișie.r care îl determina sa creeze. tabele in baza de date. .
$sqlc['blogct'] = "CREA.TE TABLE `blogct` (`id` INT UNSI.GNED AUTO_INCREMENT PRIMARY K.EY, `category` VARCHAR(3.2) NOT NULL, `page` VARCHAR. (100) UNIQUE NOT NULL DEFAU.LT '', `idpg` INT(11) DEF.AULT 1, `ajx` SMALLINT UNS.IGNED DEFAULT 1) CHARAC.TER SET utf8 COLLATE .utf8_general_.ci";
Codul de m.ai sus creează tab.ela blogct care conține campu.rile id de timp î.ntreg fara .semn cu autoincrementare., setat cheie prim.ara, category de tip. variabil lungim.e maxima 32 cu. specificația nenul., page de tip variabil, .lungime 100, .cu restricție de a .fi unic, nen.ul si default, .idpg de tip întreg lungi.me 11, ajx de tip într.eg fara semn de dim.ensiuni mici, tabela cri.ptata cu utf_8. .
Ca sa va .autentificați Administra.tor – clic pe link-ul Adm.inistrator (jos-stanga in sub.solul pagnii), si adaugați .Numele si Parola setate. in "config.ph.p".
– Pentru ieșire.a (Log out), clic p.e link-ul LogOut, care apare i.n același loc. .
• Ca sa adaugaț.i o Categorie noua – .clic pe butonul Adaugă Categ.orie (deasupra meniulu.i).
• Ca sa modificați .o Categorie (Nume, Titlu, …) -. deschideți pagina cu acea c.ategorie, apoi clic. pe butonul Editar. .e Categorie.
• Ca sa ștergeți. o Categorie (incluzând toa.te articolele din ea) – deschide.ți pagina cu acea .categorie, ap.oi clic pe butonul Șterg.e Categorie. .
• Ca sa creați un Articol. într-o Categorie – d.eschideți pagina acelei categorii, .apoi clic pe. butonul Adaugă Arti.ol.
• Ca sa modificați un Articol (titlu, continut, …) – deschideți pagina cu acel articol, si clic pe butonul Editare Articol.
• Ca sa șterg.eți un Articol (incluzând. comentariile din el) – des.chideți pagina cu acel artic.ol, s.i clic p.e butonul Șterge A.rticol
– Butonul Ș.terge Selectări, care a.pare când Admin-ul acc.esează o Categorie, sa.u Arhiva, șterge. toate artico.lele selectat.e.
– Butonul Șterge Cache (deasupra meniului) șterge toate fișierele cache din catalogul "bcache/".
In. formularul de adăugare /ed.itare continut in blog, este un buton che.ckbox "Permite. adăugare .Comentarii". Daca acest buto.n e bifat când se trimite formularul, in. acea pagina vor .putea fi adăugate coment.arii de către vizitatori. .
Un alt buton. checkbox este: "Încarcă pagina cu Aja.x". Daca acest buton este bifat., conținutul pagi.nii se va încărca prin .Ajax. Dar, daca in conținutul .paginii adaugați tag-uri .<script>, sau alte el.emente care nu pot fi afisat.e cu Ajax, deselectați acest .buton, astfel pagina se .va încarcă standard. .
Daca. doriți sa adaugați in contextul paginii. o imagine încărcată prin. Upload, clic pe .butonul Adaugă Imagine (deas.upra editorului), apoi aleg.eți fișierul și-l încărcați, folosin.d elementele de formular car.e apar sub editor..
După ce ima.ginea e salvata pe server. (in directorul "bimgs/"), codul HT.ML cu tag-ul <img> pt. acea im.agine e adăugat in editor, cu class="sh.owimg", si atributele width / height ale .imaginii initiale (mod.ificați valoarea acestor atribute, .daca doriți sa redimensi.onați imaginea in .pagina). .
Codul: cl.ass="showimg" e folosit in Java.Script ca sa afișeze .imaginea in fereastra .întreagă, când se da clic. pe ea.
• Când se. creează o Categorie, conținu.tul e opțional. D.aca nu adaugați s.pecial un cont.inut in pagina editorului, ace.sta va fi o lista paginata cu. articolele adăugate in aceast.a categorie. .
– Pagina princip.ala (Început) nu poate fi. ștearsă, afișează o lista pag.inata cu toate articolele .din Blog (in ord.ine descrescătoare a. înregistrării) .. .
5.4 Variabile PHP. si Funcții pen.tru contextul B.log-ului.
Pentru ca. toate paginile blog.ului sa se încarce standard (.fara Ajax), deschideți fișier.ul: class.GetBlog.php , si m.odificați valoarea ."ajx" la propriet.tea $clasajx (linia 9).
$clasajx. = 'ajx'; // daca schimbați. valoarea 'ajx', paginile se încarc.ă norm.al
Pentru a m.odifica /edita template-ul., se deschide fișierul ."index.php si se editează codul HT.ML si PHP. .
– $blog->c.ontent – returnează conținu.tul paginii.
– $comments – return.ează comentariile (si form.ularul de adăugare comentarii) paginii acc.esate.
– $pgbu.ttons – conține butoanele .de Editare /Ștergere C.ategorie, Adăugare Articol si Ștergere. Selectări (.când e accesata o catego.rie), sau butoanele de Edi.tare /Ștergere Articol, când. e accesata o pagina c.u articol. .
– $ctbuttons .- conține butoanele de Adăug.are Categorie si Ștergere Ca.che.
– $blog->getTop. ('id', 4) – returnează Meniu.l cu ultimele 4 Articole cre.ate.
– $blog->getTop(.'dtvisit', 4) – returnează M.eniul cu ultimele 4 pagini acces.ate.
– $blog->get.Top('visits', 4) – returnează .Meniul cu cele mai vi.zitate 4 pagini. .
Pentru a adaugă proprie.tăți CSS si pentru a modifi.ca designul templat.e-ului, se editează .fișierul "bstyles.css"., sau "bstyle_mobile.css" p.entru dispozitive mobi.le (in directorul "btemp.l/").
Alte specific.ații:
Cm .s-ul poate fi ușor modificat .ca sa fie folosit in alte limbi, . doar se traduc texte.le din fișierul "texts.php." (in directorul "bincls/.").
– Pentru limb.a Engleza este deja tr.adus, doar trebuie modificata valoarea variabilei $lsite in "config.php" (la linia 45), in loc de $ro_site; p.uneti $en_si.te;
Comentariil.e sunt paginate, si încă.rcate cu Ajax, fara sa .afecteze restul conținu.tului din .pagina, sau adresa .URL.
Sunt salvat.e într-un tabel MySQL si. afisate conform coding-ului UT.F-8. Astfel pot fi adăugate seturi. de caractere mai putin uzuale, cu.m sunt : diacritice, caracterele .speciale sau caractere spe.cifice altor limbi. Pe lângă acestea po.t fi adăugate si afisate imagini "sm.iles" si o poza in corpul mesajului (care va fi încărcată pe server). Imaginea e proporționata in co.mentariu la o lungime de 125 pixel, dar la clic pe ea este afișată in fereastra întreagă., cu dimensiunile originale. T.extul din comentariu poate fi formatat .cu taguri pt. Îngroșat, Oblic si Subli.niat
Sunt per.mise maxim 600 caractere in. comentariu, iar utilizat.orul poate sa adaug.e o adresa .de site ce va fi asociata cu. numele lui. .
Pentru prot.ecție anti-spam, formularul. de adăugare comentarii .are un cod de ver.ificare (captcha), iar timpul c.ând a fost adăugat co.mentariu e rețin.ut in Sesiune si Coo.kie, astfel. utilizatorul nu poate adaugă alt comen.tariu in in.terval de 5 min.ute.
Scriptul poat.e sa trimită notificare pri.n e-mail, la solicitarea ut.ilizatorului, când su.nt adăugate come.ntarii noi.
In notificare.a prin e-mail, utilizator.ul primește link către pagina un.de a fost adăugat .coment.ariul, si un link de. de.zabonare, in caz ca v.rea sa. nu mai primească .alte noti.ficări când .sunt adăuga.te comentarii .in acea pagina.. .
In baza d..e date e reținut IP-ul ce.lui c.are a scris comentariu, . vizib.il doar pt. .Admin. .
Administratoru.l poate sa modifice si sa ștea.rgă comentariile dir.ect in pagina web. ..
Fișierul "resetcheckc.m.txt" (in directo.rul "bincls/") retine data r.esetării ultimei verificar.e a comentar.iilor de către Admin. E fo.losit pentru a înregistra .timpul resetării verificării .comentariilor n.oi in blog. Când Administrato.rul este logat, in pagina ut.ilizatorului, sub m.esaje apare un. link "Ultimele Comen.tarii adăugate". După c.e dați click pe el se va des.chide fișierul "latestcm..php". Acesta va afi.șa toate mesajele adăugate pe site .de la ultima resetare. P.entru a reseta d.ata ultimei verificări, trebuie. . sa introduceți parola de administra.tor in căsuța de tex.t din subs.olul paginii si apăsa.ți butonul "Repet"..
Fișierul ".h.taccess" este strict n.ecesar pentru funcționalitatea. Acestui CMS, res.crie adresele URL. de accesare a pa.ginilor.
A fost testat pe .Mozilla Firefox, I.nternet Explorer, .Google Chrome si Opera, .cu XAMPP pe localhost, . de asemenea pe ser.verele unde sunt găzduite .site-urile www.m.arplo.net si www.coursesweb.n.et. Daca pe alte .sisteme nu funcționeaz.ă bine, depinde .de configurarea lor. . Pot sa apară. probleme pe serverele c.are au restricții la .htaccess, sau nu au .PHP cu PDO; sau. daca modificați cod.ul din script fara sa ș.tiți PHP si JavaS.cript.
5.5 Structura tabel.e in MySQL.
Acest CMS .folosește următoarele tabele i.n MySQL:
1. blogar – folosit c.a sa fie creata arhiva blog-.ului:
ym – re.ține anul-luna. .
idpgs – reti.ne ID-ul paginilor (separate .prin virgula) create in anul-lun.a din acel r.and.
2. blogcm.m – stochea.za datele comentarii.lor adăugate in blog:
id – indexul nume.ric al comentar.iilor. .
idp.g – ID-ul pagi.nii in care e adăugat comen.tariul.
na.me – numele utiliza.torului carte a scris comen.tariu.
email .- adresa de email a. utilizatorului
coment -. conținutul com.entariului.
site – adresa s.ite-ului utilizatorulu.i care adaugă comentariu. .
dt – data /timp.ul când e adăugat comentariu. .
ip – .IP-ul utilizatorului.
amail – sunt adău.gate una din valorile 1, . 2, sau 3; după ce u.tilizatorul adaugă .o adresa de e-m.ail când ada.ugă mesajul (1 = afișea.ză adresa de email., 2 = trimite notifica.re când sunt adău.gate mesaje noi, 3 = a.fișează adresa de e-m.ail, trimite si notifica.re).
3. blogcn – .retine conținutul art.icolelor:
id – ID-ul paginii, auto-adaugat in "blogpg".
conten.t – conținutul ar.ticolului.
4. blo.gct – stocheaza catego.riile:
id – .ID-ul categoriei.
category – nu.mele categoriei.
page – nu.mele adăugat in URL pentru accesar.ea categoriei.
idpg -. ID-ul randului din "blogpg" u.nde sunt reținute datele .categoriei (titlu, descriere, …). .
ajx – reti.ne valoarea 0 sau 1; care s.etează posibilitatea ca. pagina accesata din. Meniu sa se încarce sau nu pr.in Ajax.
5. blogp.g – stocheaza datele p.aginilor:
id. – ID-ul paginii. .
tit.le – titlul paginii. .
descript – desc.rierea paginii..
keyw – cuvin.tele cheie.
cnt – retine .o porțiune din contextul articolului (pr.imele 30 cuvinte), folos.it in lista paginat.a cu articole (afișată. in categorii).
visits – numărul .de vizitare a pagi.nii.
idct – I.D-ul categoriei căr.uia pagina aparț.ine.
dtvisit. – timestamp-ul cu tim.pul când a fost vi.zitata pagina ultima data..
dtreg – timesta.mp-ul datei când categ.oria /articolul a fost cr.eat.
adcm – retine valoa.rea 0 sau 1; care reprezi.ntă opțiunea de a ada.ugă sau nu comentar.ii in pagina.
ajx – r.etine valo.area 0 sau 1; care set.ea.ză posibilitatea ca pagina. s.a se încarce sau nu prin .Aj.ax.
5.6 Structu.ra Directoare si F.ișiere
– .hta.ccess – folosit ca sa rescrie adresa UR.L, pt. SE.O.
– index.p.hp – preia si afișează c.o.dul HTML al paginii.
1. bcache -. in acest director sunt salvate. fișierele cache pt. Articole, M.eniu si RSS-F.eed.
2. bimg.s – retine imaginile adăugate prin upload in blog.
3. bincls – conține fi.șierele cu clase si funcții P.HP care creează Cm s-u.l.
.htaccess – b.lochează accesul ex.tern la "config.php" si "resetcheckc.m.txt".
class.Base.php -. clasa principala, cu met.ode folosite in celelalte clase: efectuează instru.cțiunile SQL, trimite email, upload fișiere, creează paginare.
class.Com.ments.php – metode care. adaugă, selectează, modifica, șterge .comentarii.
class.GetBlog.p.hp – funcția de selectare contin.ut blog, creează Meniul, .Arhiva si RSS .Feed.
class.Se.tBlog.php – metode pt. adă.ugare, modificare, ștergere catego.rii si articole..
comments.ph.p – creează instanță la clasa C.omments, pt. adăugare, select.are, modificare .si ștergere come.ntarii.
config.p.hp – conține da.tele care trebuie setate de Admin. .
create_tables.php – codul pt. crearea tabelelor in baza de date.
latestcm. .php – afișează com.entariile noi adăugat.e in paginile blo.gului.
resetcheckcm..txt – retine timpul .ultimei resetări a verifi.cării comentariilor d.e către Admin.
setblog.php – conți.ne instrucțiuni PHP care. accesează clasa SetBlog .pt. adăugare /modif.icare /ștergere .pagini in blog. .
texts.php – .conține textele folosite in scr.ipt. Doar traduceți textele .din acest fișier, daca do.riți sa folosiți C.m s-ul in alta limb.a.
4. bjs -. conține fișierele ".js" cu f.uncțiile JavaScript. /Ajax /jQuer.y.
5. bte.mpl – fișierele cu cod.ul HTML si CSS p.t. template.
adm.in.css – codul CSS pentr.u. elementele afisate când. Administratorul e autentifica.t (butoane, formular edit.are pagini in blo.g).
adminlog.ph.p – formularul pt. . .autentificare Admin.istrator.
bstyle.css – propr.ietățile CSS ce definesc design.ul blog-ului.
bstyle_mobil.e.css – proprietățile CSS ce defi.nesc designul blog-ului pt. d.ispozitive mobil.e.
cmmad.d_form.php – formularul de. adăugare comentarii. .
cmmdelmod_f.orm.php – formularul d.e ștergere si editare comen.tarii
htmlhe.ad.php – codul cu tag-urile HTML din secțiu.nea HEAD.
index.ph.p – aici e creat temp.late-ul blog-ului.
index_mobile.ph.p – aici e creat templ.ate-ul blog-ului pen.tru dispozitive mobile. .
setblog_bu.ttons.php – conține butoanele ca.re deschide formularul de adăugare /editar.e continut, ștergere. pagini.
setb.log_form.php – formularul de adăugare /m.odificare pagini in blog.
ckeditor. – editorul de continut. .
7. icos – con.ține imaginile smiles din comen.tarii.
Concluzii
Proiectul de față reprezintă o variantă de CMS cu funcții standard, pliat pe cerințele minime ale managerizării conținutului unui blog.
Aplicația este permisivă și tema este doar un exemplu, ea putând fi oricând modificată și transformată într-un conținut de site web diferit de blog. De asemenea aplicația este utilă și din punct de vedere al SEO-ului (Search Engine Optimization) datorită faptului că permite utilizatorului, respectiv administratorului să introducă cuvinte cheie pentru articolele adăugate, aceste cuvinte cheie ajutând la indexarea paginii. Utilizarea Headingurilor, in special a celui principal pentru titluri facilitează în mod asemănător indexarea conținutului și vizibilitatea paginii.
Am pus accentul pe SEO deoarece o pagină web bună este o pagină web vizibilă. În ciuda conținutului bun și a aspectului ireproșabil, o pagină web ce nu se indexează și drept urare nu apare în căutări își pierde automat valoare neatingându-și scopul în care a fost creată, acela de a fi vizitată de utilizatori.
De asemenea pagina este permisivă și poate fi îmbunătățită.
Se poate adăuga un sistem de logare multi-user, codul permițând restricționarea utilizatorilor nelogați.
Ca recomandări de îmbunătățire a aplicației pot enumera:
Adăugarea unei galerii cu fotografii și pentru cms adăugarea formularului de Upload cu facilități upload, delete, read și modify.
Adăugarea unui carusel sau slider, o bandă mobilă cu poze și text pe prima pagină a blogului. Ca și aspect acest carusel poate fi creat cu html, css și javascript sau se pot folosi pluginuri, facilități bootstrap, sau orice alt program care poate ajuta la dinamica unui site. Pentru a rămâne în domeniul CMS-urilor acest slider trebuie să fie administrat din zona de administrare printr-un formular asemănător celui de la galeria foto.
Urmând modelul WordPress se pot face numeroase îmbunătățiri ca posibilitatea adăugării unui banner, instalării de widgeturi și pluginuri, schimbarea și reinstalarea temelor etc.
Această lucrare a avut ca scop exemplificarea unui Manager de Conținut simplu, realizat prin folosirea în concordanță a mai multor limbaje, atât de marcare cât și de programare, și care are la bază interacțiunea cu baze de date și în esență administrarea unei baze de date cu mai multe tabele conectate între ele prin intermediul unei interfețe web.
Bibliografie
Bill Mccarty – „PHP4”, Ed. Teora, Bucuresti, 2014
Conference in Santa Clara, California". The Conversations Network. (2007-04-26).
"Command line usage: Introduction". PHP.net. accesat 11.05.2014
Felicia Ionescu – „ Baze de date – relationale si aplicatii” Ed. Tehnica, Bucuresti, 2004
Gervasio, Alejandro. "More on Private Methods with PHP 5 Member Visibility". devshed.com accesat 11.02.2014
Jeffrey Zeldman – „Designing With Web Standards”, New Riders, 2009, pag. 33
John V. Petersen – „Baze de date pentru toti”, Ed. All, Bucuresti, 2001
Liviana Tudor – „ Sisteme informatice si gestiunea bazelor de date Oracle”, teora, Bucuresti, 2000
Lerdorf, Rasmus – "PHP on Hormones – history of PHP presentation by Rasmus Lerdorf given at the MySQL
Meyer, Eric A – „ Cascading Style Sheets: The Definitive Guide”, Third Edition. O'Reilly Media,2010, pag 66
Rasmus Lerdorf – "Re: Flexible function naming". php.internals accesat 21.04.2014
Steven Holzner – „Initiere in PHP 5”, Ed. Teora, Bucuresti, 2014
https://www.webyog.com/ accesat 4.03.2014
http://www.adaptivepath.com/ideas/ajax-new-approach-web-applications/ accesat 11.04.2014
http://www.dmoz.org/Computers/Programming/Languages/JavaScript/Ajax accesat 11.04.2014
http://www.xul.fr/en-xml-ajax.html accesat 11.04.2014
http://dev.w3.org/html5/spec/spec.html
http://www.cs.tut.fi/~jkorpela/html/empty.html accesat accesat 10.01.2014
http://computemagazine.com/man-who-invented-world-wide-web-gives-new-definition/ accesat 10.01.2014
http://www.w3.org/MarkUp/Guide/ accesat 10.01.2014
http://www.w3.org/TR/html401/conform.html#deprecated accesat 22.03.2014
http://www.w3.org/TR/html401/ accesat 22.03.2014
http://php.net/manual/en/features.commandline.webserver.php accesat 11.02.2014
Bibliografie
Bill Mccarty – „PHP4”, Ed. Teora, Bucuresti, 2014
Conference in Santa Clara, California". The Conversations Network. (2007-04-26).
"Command line usage: Introduction". PHP.net. accesat 11.05.2014
Felicia Ionescu – „ Baze de date – relationale si aplicatii” Ed. Tehnica, Bucuresti, 2004
Gervasio, Alejandro. "More on Private Methods with PHP 5 Member Visibility". devshed.com accesat 11.02.2014
Jeffrey Zeldman – „Designing With Web Standards”, New Riders, 2009, pag. 33
John V. Petersen – „Baze de date pentru toti”, Ed. All, Bucuresti, 2001
Liviana Tudor – „ Sisteme informatice si gestiunea bazelor de date Oracle”, teora, Bucuresti, 2000
Lerdorf, Rasmus – "PHP on Hormones – history of PHP presentation by Rasmus Lerdorf given at the MySQL
Meyer, Eric A – „ Cascading Style Sheets: The Definitive Guide”, Third Edition. O'Reilly Media,2010, pag 66
Rasmus Lerdorf – "Re: Flexible function naming". php.internals accesat 21.04.2014
Steven Holzner – „Initiere in PHP 5”, Ed. Teora, Bucuresti, 2014
https://www.webyog.com/ accesat 4.03.2014
http://www.adaptivepath.com/ideas/ajax-new-approach-web-applications/ accesat 11.04.2014
http://www.dmoz.org/Computers/Programming/Languages/JavaScript/Ajax accesat 11.04.2014
http://www.xul.fr/en-xml-ajax.html accesat 11.04.2014
http://dev.w3.org/html5/spec/spec.html
http://www.cs.tut.fi/~jkorpela/html/empty.html accesat accesat 10.01.2014
http://computemagazine.com/man-who-invented-world-wide-web-gives-new-definition/ accesat 10.01.2014
http://www.w3.org/MarkUp/Guide/ accesat 10.01.2014
http://www.w3.org/TR/html401/conform.html#deprecated accesat 22.03.2014
http://www.w3.org/TR/html401/ accesat 22.03.2014
http://php.net/manual/en/features.commandline.webserver.php accesat 11.02.2014
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: Gestionarea Bazelor de Date Prin Intermediul Interfetelor Web (ID: 149833)
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.
