You are on page 1of 48

UNIVERSITATEA DIN ORADEA FACULTATEA DE ŞTIINŢE MASTER SPECIALIZAREA: MATEMATICĂ APLICATĂ ÎN INFORMATICĂ FORMA DE ÎNVĂŢĂMÂNT: ZI

LUCRARE DE DISERTAŢIE

Coordonator ştiinţific: Lector univ. Dr. Oros Horea Absolvent: Bizău Gheorghe

ORADEA

2011

UNIVERSITATEA DIN ORADEA FACULTATEA DE ŞTIINŢE MASTER SPECIALIZAREA: MATEMATICĂ APLICATĂ ÎN INFORMATICĂ FORMA DE ÎNVĂŢĂMÂNT: ZI

BAZE DE DATE RELAŢIONALE ÎN APLICAŢIA DESENEZ.NET

Coordonator ştiinţific: Lector univ. Dr. Oros Horea

Absolvent: Bizău Gheorghe

ORADEA
2

2011
Cuprins
Capitolul I – Introducere.............................................................................................................4 1.1. Ce este Desenez.net?........................................................................................................4 1.2. Structura site-ului.............................................................................................................5 1.3. Ce spun desenatorii despre site?......................................................................................6 Capitolul II – Desenez.net – partea publică................................................................................8 2.1. Ce poate / nu poate face utilizatorul simplu?...................................................................8 2.2. Înregistrarea pe site..........................................................................................................9 2.3. Accesarea contului.........................................................................................................10 2.4. Încărcarea desenelor pe site...........................................................................................11 2.5. Desene pe site.................................................................................................................12 2.6. Comentarii la desene......................................................................................................14 2.7. Notarea desenelor şi a desenatorilor..............................................................................15 2.8. Profilul desenatorului.....................................................................................................16 Capitolul III – Desenez.net – administrator şi moderatori........................................................18 3.1. Panoul administratorului................................................................................................18 3.1.1. Operaţii asupra conturilor...........................................................................................18 3.1.2. Statistici.......................................................................................................................19 3.1.3. Operaţii asupra desenelor............................................................................................20 3.1.4. Operaţii asupra comentariilor......................................................................................21 3.1.5. "Categorii" şi "tehnici"................................................................................................22 3.1.6. Optimizări...................................................................................................................22 3.2. Pagina moderatorului.....................................................................................................23 Capitolul IV – Baza de date a aplicaţiei - teorie şi practică......................................................23 4.1. Pe scurt...........................................................................................................................24 4.2. Ce este o bază de date?..................................................................................................24 4.3. Crearea şi accesarea bazei de date.................................................................................24 4.4. Structura bazei de date...................................................................................................26 4.4.1. Categorii......................................................................................................................26 4.4.2. Căutări.........................................................................................................................27 4.4.3. Comentarii...................................................................................................................27 4.4.4. Desene.........................................................................................................................28 4.4.5. Profile..........................................................................................................................28 4.4.6. Ratings........................................................................................................................29 4.4.7. Tehnici........................................................................................................................29 4.4.8. Users............................................................................................................................30 4.5. Lucrul cu baza de date...................................................................................................30 4.5.1. Pe scurt........................................................................................................................30 4.5.2. Prelucrarea datelor ce urmează a fi stocate.................................................................30 4.5.3. Salvarea datelor în baza de date..................................................................................35 4.5.4. Extragerea datelor din baza de date............................................................................35 4.5.5. Modificarea datelor din baza de date..........................................................................40 4.5.6. Legături între tabelele bazei de date...........................................................................42 ..............................................................................................................................................43 Capitolul V – Concluzii............................................................................................................43 5.1. Desenez.net în cifre........................................................................................................44 5.2. Evoluţia site-ului............................................................................................................44 5.3. Puncte slabe....................................................................................................................45 5.4. Puncte tari......................................................................................................................46
3

5.5. Desenez.net pentru mine................................................................................................46 Referinţe....................................................................................................................................47

Capitolul I – Introducere
1.1. Ce este Desenez.net? www.desenez.net este o comunitate online de desenatori români (din ţară şi străinătate). Site-ul este destinat pasionaţilor de desen şi pictură, atât amatori cât şi profesionişti, care vor să împărtăşească prin Internet munca lor, să primească feedback util, să schimbe informaţii, să înveţe din experienţa altora şi să-şi facă prieteni artişti.

Figura 1.1. Cele mai apreciate desene

4

2. picturi.) Traficul site-ului are o tendinţă crescândă.cea pe care o vom analiza în această lucrare) la care se adaugă forumul de discuţii (www. Aplicaţia se dezvoltă continuu. Iniţial site-ul era destinat numai desenelor în creion. fie după tehnica utilizată (creion.blog. pictură. Structura site-ului Site-ul are o secţiune principală (www. digital.forum. utilizatorii pot să participe cu idei. Vezi: [1]). acum înregistrându-se un număr de 500-1000 vizitatori / zi şi între 5000-1000 de pageviews / zi. 5 . puteţi vedea unele dintre cele mai apreciate desene.A pornit la începutul anului 2010 şi a crescut treptat ajungându-se în luna mai 2011 la peste 740 de desenatori. la începutul anului 2011 am introdus şi posibilitatea încărcării de desene digitale. desenele pot fi afişate fie după categoria în care sunt introduse. Secţiunile “Lecţii” şi “Concurs” sunt un plus pentru utilizatorii dornici să-şi dezvolte talentul şi să intre în competiţii cu alţi desenatori.1.net – am folosit platforma Wordpress. Astfel.desenez. În figura 1. blogul (www.net/index.desenez.net . etc. peste 5600 de desene încărcate pe site de către desenatori şi peste 10000 de comentarii. sugestii şi nemulţumiri prin intermediul paginii de Contact sau pe forumul site-ului. etc. Vezi: [2]) şi chat-ul (http://desenez.desenez. 1.net – am folosit platforma SEO-Board. în momentul de faţă. însă la cerinţa utilizatorilor.php?action=chat – vezi: [3]).

2. articole. desenatori. iar doritorii pot hotărî cu cine să colaboreze Links – legături spre alte site-uri RSS – feed RSS prin FeedBurner de la Google Login / Logout – intrarea sau ieşirea din cont Contact – pagină prin care utilizatorii pot trimite mesaje administratorului În coloana centrală apare conţinutul în funcţie de pagina selectată.). Atât coloanele cât şi banner-ul conţin mici spaţii publicitare în care apar reclame de la partenerii Desenez.net (Google. etc). Vrei desen? – secţiune în care desenatorii pot să-şi prezinte oferta lor. înscriere la noutăţi.3. conţinutul lor şi legătura cu baza de date vor fi tratate în capitolul următor. iar în coloanele laterale legături spre categorii de desene. Sus apare banner-ul şi logo-ul site-ului (realizate de utilizatorul vevalentin – student la arte). pe 3 coloane se doreşte a fi cât de uşor de utilizat. Figura 1.net şi se păstrează o arhivă a câştigătorilor Forum – forumul de discuţii al comunităţii Blog – blog-ul nostru. Ce spun desenatorii despre site? 6 .2.Figura 1. Paginile. Meniul orizontal conţine legături spre cele mai importante pagini din site: Desene – aici sunt afişate toate desenele. Prima pagină a site-ului Design-ul simplu (vezi figura 1. loc de anunţuri. Art & Hobby Center Bucureşti. Forumul site-ului (detaliu) 1.3. cele mai recente primele Upload – pagină pentru încărcarea desenelor pe site Lecţii – secţiune de lecţii (momentan nu foarte consistentă) Concurs – aici se desfăşoară concursurile Desenez. etc. tehnici. desene şi alte facilităţi: căutare. etc.

mie nu-mi prea spune lumea unde greşesc. ale tale.. Este ceva de genul "trebuie să mă îngrijesc pentru a nu-i jigni pe cei din jurul meu".. am ajuns astfel acum să studiez probleme profunde ale artei. precum cele ale lui dutchess. Şi asta numai datorită site-ului. pot posta lucrări de-ale lor şi pot fi încurajaţi sau chiar ajutaţi cu nişte sfaturi.” (continuarea şi alte păreri pot fi citite pe forum – vezi [4]) Khim: “mie mi se pare un grup de prieteni legaţi împreună de pasiunea pentru desen. etc nu-mi doresc decât să muncesc mai mult.. pentru că aşa simt că vă respect şi pe voi. aici găsesc multă sinceritate” somehope: “Eu nu mai ştiu cum am ajuns pe acest site.La întrebarea “Ce reprezintă pentru tine Desenez.. gabri. iar în momentul când văd postate desene care mie îmi par performante. Am zis că nu-mi strică să învăţ câte ceva.” “chiar dacă nu vă cunosc simt că am o legătură sufletească cu toţi cei de aici. indiferent dacă sunt lăudată sau criticată.3) au răspuns câţiva desenatori ce au cont şi utilizează frecvent acest site (vezi [4]).. Iată câteva opinii: rami: “. oameni pe care nu-i cunosc mai ales). să înveţe şi să aprecieze arta creată de ceilalţi” 7 . încercând să se facă remarcaţi..acest site pentru mine e un cerc mare de prieteni pe care mi l-am dorit dintodeauna şi pe care nu l-am avut şi prin care ne leaga pe toţi aceeaşi prietenie desenul. am văzut că oameni mai mult sau mai puţin pricepuţi.. m-a încurajat să incerc şi mai mult. numai că. Pe scurt..net?” pusă pe forum (figura 1.” "sper ca si peste 2 ani sa fie la fel placut si mai ales sa nu devina plictisitor. somehope. să realizez lucrări cât mai frumoase. Cred că aş vrea să-mi spună cineva ce anume trebuie să fac să nu le mai repet. Cred că tastasem titlul "lecţii de desen" şi iată! Apoi. Asta mă cam deranjează pentru că eu îmi pot vedea greşelile. pe mine m-a ajutat să perseverez şi de foarte multe ori faptul că am fost apreciată (mai mult sau mai puţin)." vladaalexia: „Pe mine acest site mă motivează să-mi dezvolt cât mai mult posibil latura aceasta artistică.

dar multora le place să admire munca altora… Astfel. dar nu este înregistrată (nu are cont). avem un exemplu de vizualizare a desenelor) poate citi comentariile scrise la desene poate recomanda prietenilor desene care i-au plăcut poate accesa profilul desenatorilor poate accesa secţiunea “Lecţii” poate citi comentariile de pe forum poate citi şi comenta informaţiile de pe blog poate să se înregistreze şi să devină astfel membru al comunităţii poate folosi pagina de Contact pentru a scrie mesaje administratorului nu poate comenta şi vota desenele nu poate încărca desene pe site nu poate să participe la concursuri nu poate scrie articole pe blog. anumite pagini şi opţiuni fiind disponibile numai membrilor. Desenez. Prin “utilizatorul simplu” vom înţelege: o persoană care accesează site-ul.1.desenez. Ce poate / nu poate face utilizatorul simplu? Figura 2. Portrete digitale de vevalentin Site-ul are un sistem de conturi.1. pe www.net. Nu toţi oamenii sunt pasionaţi de desen. utilizatorul simplu: poate admira desenele (în figura 2.Capitolul II – Desenez.1. nici comentarii pe forum nu poate avea drepturi de administrare 8 . ci oferă mult chiar pentru un utilizator care nu are cont.net – partea publică 2.net nu este un site “închis”.

Contul este creat. pe adresa de e-mail a utilizatorului fiind trimis un link de activare a contului. nickname (nume de utilizator). Înregistrarea pe site Pentru a beneficia de mai multe opţiuni şi pentru a se alătura comunităţii.2.php?action=newuser. parola contului şi adresa de e-mail.2.2. Figura 2. altfel nu deţine calitatea de membru al site-ului.) în care se cer datele despre utilizator: numele şi prenumele (nu apar pe site). Pagina conţine un formular (vezi figura 2.2. un utilizator simplu trebuie să se înregistreze accesând pagina de creare a contului aflată aici: http://desenez. Crearea contului Un membru (în plus faţă de opţiunile utilizatorului simplu): poate să comenteze desenele publicate pe site poate încărca desene poate acorda note desenelelor încăcate de alţi utilizatori îşi poate completa profilul public cu date despre el 9 .net/index. Dacă utilizatorul face click pe link-ul primit contul devine activ. Procedura de înregistrare a contului este simplă.

3. Administratorul decide în ce condiţii un utilizator îşi poate pierde calitatea de membru. în partea stângă apare meniul personal cu opţiunile (vezi figura 2. decizia aparţinând administratorului) poate fi membru activ al forumului poate să-şi prezinte oferta de desene la comandă poate să-şi promoveze blog-ul personal sau site-ul la decizia administratorului poate să facă parte din juriul concursurilor Desenez. Va apărea formularul de login (vezi figura 2. Accesarea contului Accesarea contului se face făcând click pe opţiunea “Login” din meniul orizontal.- poate să şteargă desene încărcate în contul lui poate participa la concursurile Desenez.net poate primi drepturi de administrare (poate deveni moderator. 2.4): 10 . Figura 2. Pagina de login După intrarea în cont.3. în care utilizatorul trebuie să-şi introducă nickname-ul şi parola.net poate participa cu conţinut pentru secţiunea de “Lecţii” nu poate să-şi acorde note desenelor încărcate de el.).3. Încălcarea termenilor şi condiţiilor poate duce la suspendarea temporară a contului sau la pierderea definitivă a dreptului de membru. Există şi opţiunea de a rămâne logat. De asemenea. opţiunea “Login” din meniul principal va fi înlocuită automat de opţiunea “Logout” – făcând click aici se poate părăsi contul.

Ieşire – echivalentul opţiunii Logout din meniul de sus.Încarcă desene – pentru upload de desene pe site .Fotografie personală – aici se poate încărca / schimba poza personală din profil .4. 2. Pe pagina de login utilizatorilor care nu au cont li se sugerează să-şi facă unul.Profil – vizualizarea şi modificarea datelor profilului public .Schimbă parola – utilizatorul îşi poate schimba oricând parola .4. Meniul personal .Pagina mea – pagina care apare la intrarea în cont .5.Comentarii – pentru vizualizarea comentariilor primite la desenele încărcate .Desenele mele – pagina cu desenele încărcate de utilizator . Încărcarea desenelor pe site Figura 2.Figura 2. iar celor care au probleme la accesarea contului să folosească pagina de Contact pentru a lua legătura cu administratorul. Formular de încărcare a desenelor 11 .

6. Desenez. Numai desenele “active” apar pe site. scrie un titlu. sub ele fiind titlul şi autorul desenului.net este o colecţie de desene încărcate de mulţi desenatori. dar şi în categoria şi tehnica selectate la încărcarea lui.) este disponibil numai pentru utilizatorii autentificaţi.Formularul din pagina de upload (figura 2. notate. Verificarea desenelor de moderatori sau administrator este o măsura de verificare a conţinutului încărcat. Desenul poate fi aprobat fie de administrator. La încărcarea unui desen utilizatorul selectează fişierul din calculator. Ultimele desene apar şi pe prima pagină şi de asemenea. Sunt aprobate numai desene (nu şi poze care nu au legătură cu desenul) care au un conţinut potrivit tuturor vârstelor. la profilul utilizatorului. 12 .5. Apoi completează descrierea (ajută la căutarea desenului pe site) şi apasă butonul “Încarcă”.5. În realizarea site-ului am urmărit ca totul să fie cât mai simplu. Ele sunt încărcate pe Internet cu scopul de a fi admirate. dar nu vă apărea pe site decât după ce va fi aprobat de administratorul site-ului. astfel încât utilizatorul să găsească ceea ce caută cât mai uşor. Există o secţiune principală în care apar toate desenele active pe site: “Desene” (în meniul de sus). Desene pe site Practic. fie de un moderator. Un desen poate fi oricând activat sau dezactivat.). După încărcarea desenului utilizatorul este informat că desenul s-a încărcat cu succes. Desenul aprobat apare în secţiunea “Desene”. Desenele apar sub formă de miniaturi (figura 2. 2. comentate. alege o categorie potrivită în care să apară desenul şi tehnica în care l-a realizat.

de exemplu). desen complet Sunt 18 desene pe pagină. apar detalii suplimentare (descrierea desenului. Desenele sunt filtrate după categorie şi apar ca pe pagina de desene. nota) şi comentariile la desenul respectiv. ceea ce poate fi util pentru pasionaţii de o anumită tehnică (pictură. O altă modalitate de a vedea desenele este alegând o categorie de desene.Figura 2. Desene în miniatură vs. Figura 2. din meniul din stânga. (vezi Figura 2. Exemplu de căutare şi rezultate ale căutării 13 .6. În josul paginii apare navigatorul de pagini (oferă posibilitatea de a trece la altă pagină).7. De asemenea se pot vizualiza desenele după tehnica utilizată. cu paginaţie.) Făcând clik pe miniatura unui desen se deschide pagina desenului în care desenul apare complet.6. în acest caz desenele apar filtrate.

am avut de ales între moderarea comentariilor (să nu apară comentarii decât după ce au fost aprobate) şi excluderea posibilităţii de a comenta neautentificat. Fără posibilitatea de a putea comenta şi primi comentarii. site-ul ar mult mai puţin atrăgător pentru desenatori. există şi funcţia de căutare. “somehope”. Din cauză că unii anonimi erau troll-i. Pe pagina desenului apare lista de comentarii active la acel desen. 2.7. Iniţial comentariile venite din partea persoanelor neautentificate erau etichetate ca şi comentarii din partea unui utilizator cu nickname-ul anonim. “desen simplu”.) Exemple de utilizare a funcţiei de căutare: căutarea de desene publicate de un desenator se poate face simplu căutând nickname-ul acestuia (“admin”.Pentru a ajuta utilizatorul să descopere desene mai uşor. etc. 14 .) căutarea după un anumit titlu de desen (“Lumea cărţilor”) căutarea după cuvinte cheie din descrierea desenului (“copaci”.6. dacă nu să-şi facă un cont). Comentarii la desene Un lucru important pentru fiecare desenator este să primească feedback la desenele lui. Pentru utilizatorii care nu au cont sau nu s-au logat le apare un mesaj în care li se spune că numai utilizatorii autentificaţi pot comenta (dacă au cont să se logheze. ci doar de la persoane cu cont pe site. desenele fiind filtrate după cuvintele cheie introduse de utilizator. “GhitaB”. (Figura 2. A fost dorinţa desenatorilor de a nu primi comentarii de la anonimi. etc) Utilizatorul nu bifează opţiuni de căutare ci doar scrie textul şi îi apar desenele. Pentru utilizatorii autentificaţi apare posibilitatea de a comenta desenul prin intermediul unui formular.

9. Nu toţi utilizatorii au răbdarea sau dorinţa de a vedea desene slabe. dar să nu lase ca un utilizator să poată vota de mai multe ori în aceeaşi zi.8. Introducerea de comentarii la un desen Formularul de comentarii arată ca în figura 2. Notarea desenelor şi a desenatorilor O adevărată provocare a fost crearea unui sistem cât mai bun pentru un clasament al desenelor şi desenatorilor. Am adăugat restricţiile: nici un desenator nu poate să-şi noteze propriul profil sau propriile desene nici un utilizator neautentificat nu poate să noteze Restricţiile au fost adăugate la dorinţa desenatorilor (erau utilizatori care notau intenţionat. ci dimpotrivă. ele putând fi citite. A fost destul de uşor de implementat rezultatul fiind foarte bun. Comentariile şterse de un utilizator nu dispar din baza de date. în meniul din partea stângă apare o listă cu cele mai recente comentarii. Era nevoie de un sistem care să reţină în acelaşi timp notele fiecărui desen şi desenator. În pagina personală fiecare desenator poate vedea o listă cu comentariile primite la desenele lui. De asemenea.Figura 2. 15 .7. Sub fiecare desen (pe pagina desenului) apare nota (numărul de steluţe) ca în figura 2. ci doar se dezactivează. reactivate sau şterse de administrator. 2. din rea voinţă cu note mici desene bune).8. Am găsit un script care tocmai asta făcea. Fiecare desenator are dreptul să şteargă comentarii primite sau scrise la desenele lui. Comentariile trimise apar instant pe site.

locaţia. link spre desenele postate pe site.11. Pa baza notelor primite de desene s-a realizat topul desenelor (vezi Figura 1.) 2.10. (vezi Figura 2.1. Profilul conţine: titlul. Se pot vota şi desenatorii. iar pe baza notelor de profil topul desenatorilor.Figura 2. data naşterii. Note Figura 2. rubrica “despre mine”. Urmează o listă cu miniaturi ale desenelor publicate recent. se poate observa structura paginii de profil a desenatorului.8. listă de hobby-uri.10. Profilul desenatorului În Figura 2. pentru pagina de profil. Top desenatori Analog. poza personală (opţional). website.9. nota desenatorului. data înregistrării pe site.). 16 .

17 . accesând opţiunea "Modificare profil". Pagină de profil Informaţiile din pagina de profil pot fi schimbate de utilizatorii autentificaţi.Figura 2.11. Mai multe informaţii despre opţiunile utilizatorilor şi legăturile cu baza de date pe care le implică acestea găsiţi în capitolul IV.

1.net – administrator şi moderatori 3.1.1. a comentariilor. etc). a desenelor. Panoul administratorului Site-ul are nevoie de administrare (a conturilor. Operaţii asupra conturilor 18 .1.1. Meniul din panoul administratorului Contul de administrator are nickname-ul admin şi beneficiază de toate drepturile de utilizator la care se adaugă drepturile de administrare. dar care conţine destul de multe opţiuni necesare bunului mers al site-ului.). Pentru ca această muncă să se realizeze cât mai uşor am creat şi o parte de administrare a site-ului. Figura 3. 3. La logare administratorului îi este deschis panoul de administrare sau "Pagina administrator" care se caracterizează prin mai puţine elemente grafice. Administrarea se face atât de către administrator (admin) cât şi de către moderatori.Capitolul III – Desenez. Practic. în funcţie de opţiunea selectată în acest meniu va apărea conţinutul (sub acest meniu). (vezi Figura 3. pe pagina de administrare apare meniul care cuprinde opţiunile de administrare.

În utlima coloană pentru fiecare utilizator există posibilitatea de a edita informaţiile contului ("Edit").2. Dezactivarea se poate face la cererea desenatorului sau ca o măsură de disciplinare a utilizatorului. a doua coloană reprezintă numele. utilizatorul nemaiputând să-şi acceseze contul atât timp cât este inactiv.3. Administratorul poate activa sau dezactiva un cont. Statistici Figura 3. ştergerea definitivă a contului se face de la "Del". folosind aceste opţiuni. Activarea contului are ca rezultat reactivarea desenelor. desenele şi comentariile.1. Panoul administratorului . 3. apoi adresa de e-mail şi data înregistrării pe site. în dreptul conturilor inactive apare opţiunea [A] pentru activarea contului. a treia: nickname-ul. comentariilor şi informaţiilor despre desenator. La dezactivarea contului dispar de pe site informaţiile despre desenator. În dreptul conturilor active apare opţiunea [X] echivalentă cu dezactivarea contului. Statistici (în panoul administratorului) 19 .Secţiunea "Conturi" În secţiunea "Conturi" apar detaliile conturilor utilizatorilor înregistraţi pe site şi opţiuni cu privire la ele.2.Figura 3. Prima coloană reprezintă ID-ul userului (în listă apar sus ultimii desenatori înscrişi).

(Vezi figura 3. etc. numărul de conturi active. numărul de conturi inactive. numărul de desene active şi numărul de desene inactive. Informaţiile sunt prezentate şi sub formă de grafice foarte utile pentru cel ce administrează site-ul. numărul de desene. De exemplu: statistici privind activitatea utilizatorilor. sursele de trafic. 3. grafice. cuvintele cheie căutate în motoarele de căutare.3.1.) Un cont inactiv este inactiv fie pentru că utilizatorul nu a activat contul după înregistrare (nu a făcut click pr link-ul primit prin e-mail).3. fie a fost dezactivat de către administrator (pentru încălcarea regulamentului site-ului sau din alte motive). etc. Pentru mai multe informaţii vezi [10]. Site-ul este înscris şi în Google Analytics care oferă o bogată serie de informaţii despre numărul de vizitatori. Proiectul fiind încă în dezvoltare. Operaţii asupra desenelor 20 .În secţiunea "Statistici" administratorul poate afla numărul de conturi. s-ar putea adăuga şi alte statistici pe parcurs.

3.) administratorului îi este afişată o listă cu cele mai recente desene. autor. şterge.4. activa sau dezactiva comentariile publicate pe site. putem vedea cum arată secţiunea "Comentarii".4. Secţiunea "Desene" din panoul administratorului În secţiunea "Desene" (vezi Figura 3. comentariile nu sunt şterse definitiv din baza de date.Figura 3. textul comentariului şi opţiunile cu privire la fiecare comentariu.5. Se lucrează ca în cazul desenelor şi al conturilor. categorie. activat sau dezactivat desene. Este vorba de un simplu tabel care conţine ID-ul comentariului. În realitate. În figura 3. ID-ul desenului la care s-a comentat. Fiecare desenator poate să-şi şteargă comentariile primite la desenele încărcate de el pe site. ci doar dezactivate. Operaţii asupra comentariilor Tot din secţiunea de administrare a site-ului se pot şi edita.4. ID-ul comentatorului. În listă apare desenul însoţit de informaţiile despre desen (titlu.1. apar opţiuni pentru şters. Un desen nu apare pe site decât dacă este activat de administrator sau moderator. 21 . descriere. De asemenea. data publicării pe site).

Utilizarea acestei opţiuni nu este neapărat necesară. De exemplu: un desenator poate încărca un potret desenat în creion. 3.6.1.6. "Categorii" şi "tehnici" Desenele încărcate pe site pot fi filtrate după categoria în care au fost încărcate şi tehnica folosită la desenat. se utilizează pentru a curăţa baza de date de desenele şi comentariile utilizatorilor ale căror conturi au fost şterse definitiv.6. Vezi figura 3. Mai precis. Administratorul poate citi atât comentariile active cât şi cele "şterse" de utilizatori. 22 .Figura 3.1.5. Cele două secţiuni sunt foarte asemănătoare. specificând categoria Portrete şi tehnica În creion.5. 3. Optimizări Opţiunea CurăţăBD a fost creată pentru optimizări ale conţinutului bazei de date. Site-ul este creat în aşa fel încât se pot crea / modifica oricând categoriile şi tehnicile existente. Fiecare câmp poate fi editat şi în fiecare caz poate fi adăugat un nou element (fie el categorie sau tehnică). Acest lucru poate fi realizat de administrator într-un mod simplu folosind secţiunile "Categorii" şi "Tehnici" din panoul administratorului. Figura 3.

Panoul moderatorului este simplu: el se adaugă paginii personale care apare la logare fiecărui desenator. aplicaţia are un singur administrator.3. Pagina moderatorului Momentan. Deocamdată. De asemenea. dar mai mulţi moderatori. ei pot să activeze sau să dezactiveze desenele recente publicate pe site. iar existenţa mai multor moderatori face ca timpul de aşteptare al fiecărui desen să fie mai scurt. ei ţin legătura cu administratorul semnalând eventualele nereguli de pe site. Administratorul poate oferi oricărui desenator drept de moderator. Vezi figura 3.7. Moderatorii au drepturi suplimentare faţă de utilizatorii obişnuiţi.2. Figura 3. cât şi despre legătura lor cu bazele de date aflaţi în capitolul IV. Moderatorii ajută la bunul mers al comunităţii. dar mai limitate decât administratorul. Ficare desen trebuie aprobat înainte de a apărea pe site. Capitolul IV – Baza de date a aplicaţiei .7. Pagina moderatorului Informaţii aprofundate despre cum funcţionează aceste opţiuni.teorie şi practică 23 .

folosind mediul integrat de dezvoltare NetBeans IDE. Pe scurt Aplicaţia a fost realizată în limbajul de programare PHP împreună cu sistemul de gestiune a bazelor de date MySQL.3." [8] 4. cu posibilitatea extinderii uşoare şi a regăsirii rapide a acestora. sunt oferite cititorului şi informaţii teoretice (provenite din diverse cărţi de specialitate). De asemenea. necesare dezvoltării unui asemenea proiect.4. poate consulta un top cărţi recomandate aici [6]. 4. Ce este o bază de date? "O bază de date. accentul punându-se pe rolul acesteia în aplicaţie şi modul în care se realizează operarea cu informaţiile pe care le stochează. În acest capitol se prezintă baza de date a site-ului. de asemenea pentru MySQL aici [7]. Crearea şi accesarea bazei de date Crearea unei baze de date se poate face cu ajutorul codului: CREATE DATABASE databasename iar crearea tabelelor se poate face cu: CREATE TABLE tablename ( column1name description.2. uneori numită şi „bancă de date”. 24 . reprezintă o modalitate de stocare a unor informaţii şi date pe un suport extern (un dispozitiv de stocare). [5] Cel care doreşte să înveţe PHP. column2name description …) Mai multe detalii găsiţi aici: [9].1.

Figura 4.mysql_error ()). $con) or die ('Error: '.db.com".// } function bd_deconectare() { mysql_close(). "parola"). mysql_error()). if (!$con) { die('Could not connect: ' .1.) Administratorul site-ului deţine informaţiile despre link-ul spre aplicaţia phpMyAdmin. } //selectare bd mysql_select_db("bazadedate". Pentru conectarea şi deconectarea aplicaţiei la baza de date am creat două funcţii PHP: function bd_conectare() { $con = mysql_connect("deseneznet. phpMyAdmin După crearea bazei de date. numele de utilizator şi parola.1.7470009. } 25 . acesul administratorului la baza de date se face prin intermediul aplicaţiei phpMyAdmin folosind numele de utilizator şi parola pentru baza de date a siteului. "user". (Vezi figura 4.hostedresource.

Tabelele platformelor Wordpress şi Seo Board nu fac obiectul discuţiei.2.tehnici . Tabelele bazei de date 4. SEONAME (vezi figura 4.cautari . Adăugarea.ratings .3.conţine informaţiile despre desenele încăcate pe site . care sunt componente atât ale blogului (cele cu prefixul "wp_").conţine tehnicile de desenat . Figura 4. editarea şi ştergerea categoriilor de desene se pot face din partea de administrare a site-ului. Structura bazei de date Baza de date a aplicaţiei conţine tabelele din figura 4. ale forumului (cele cu prefixul "seo_board_") şi cele ale secţiunii realizate de mine.unde user.4.pentru voturi la desene şi profile .3. Figura 4.memorează căutările făcute de utilizatori pe site . Categorii Tabelul "Categorii" are câmpurile: ID.comentarii .2.) şi stochează categoriile de desene de pe site.4. Tabelele care ţin de aplicaţia realizată de mine sunt: .pentru comentariile scrise de desenatori la desenele de pe site . Categorii 26 .tabelul cu conturile înregistrate pe site Vom lua pe rând fiecare tabel pentru a vedea în amănunt structura lui.users . care nu se publică din motive lesne de înţeles).profile .aici sunt memorate informaţiile de la profilul desenatorilor de pe site . 4.1. apoi vom trata relaţiile dintre aceste tabele.desene . parolă şi bazadedate sunt fictive (în codul site-ului apar informaţiile reale.categorii . NUME.conţine categoriile de desene .

Vezi figura 4. Creaturi.4. Comentarii Tabelul "Comentarii" are câmpurile: ID.4. Maşini. Natură statică. Vară. Exemple de comentarii: "gigel 42: "TattooEs: superb. 27 .4. Oameni. animale.) şi stochează căutările de desene făcute de utilizatori în caseta "Caută desen" (vezi figura 2. ACTIV (0 . IDUSER (ID-ului utilizatorului care a scris comentariul). Cosmos. Copaci.nu apare pe site. 1 .6. Schiţe. DATA (data scrierii comentariului). Nume. Căutări Iată câteva exemple de căutări: rose. Anime. De colorat. În figurile din această secţiune se pot observa şi proprietăţile câmpurilor. Figura 4. Iarnă. are un farmec aparte. Iluzii optice. Cărţi. Primăvară.si parul a iesit foarte fain! (2011-06-06)". alex. Abstract.) din partea stânga sus a site-ului.Iată câteva exemple de categorii: 8 Martie. Portrete.. imi place privirea foarte mult. Fantasy.5. papuci. IDDESEN (ID-ul desenului comentat).. etc. Animale. splendit ghita. Comics. TEXT (comentariul propriu-zis). Caricaturi. Fashion. Psihedelic. Flori. (2011-06-09)".z.trebuia doar centrat pe foaie.3. Peisaje.comentariul apare pe site). Simple. loganuri. "somehope: he he. Creştine.2. Căutări Tabelul "Cautari" are câmpurile: ID şi CAUTARE (vezi figura 4. Obiecte. etc. masini noi. 4. Exerciţii. Diverse.comentariu activ . Toamnă.4.mai uploadeaza desene plz (2011-06-09)". Fenomene. 4. Celebrităţi. Arhitectură.comentariu inactiv .

APROBAT (0 sau 1 .5. IDTEH (ID-ul tehnicii de desen). DATA (data încărcării desenului).cele cu 1 apar pe site).5. FIŞIER (numele fişierului din folderul cu desene corespunzător desenului încărcat). evident. DESCRIERE (descrierea desenului). IDUSER.4.4. 4. NUME (sau titlul desenului). pentru detalii despre proprietăţile câmpurilor. fie neaprobate. pe site fiind aproape 6000 de desene active. Comentarii În momentul de faţă sunt peste 14000 de comentarii pe site. Desenele inactive sunt. IDCATEGORIE (ID-ul categoriei în care a fost încărcat desenul). Figura 4.4. Desene Am putea spune că tabelul cu desene este cel mai important. Desene Exemplu de înregistrari de desene: Tabelul numără peste 7000 de înregistrări. fie "şterse" de utilizatori.6. El reprezintă esenţa site-ului.Figura 4. Vezi figura 4. Numărul lor este. în creştere. 4. Câmpurile lui sunt: ID. Profile 28 .6.

etc.7. Ratings Acest tabel memorează notele acordate la desene şi profiluri. DATANAS (data naşterii desenatorului). Pictură. Creioane colorate. Tehnici Analog tabelului "Categorii" există tabelul "Tehnici" în care apar tehnicile de desen.6. El conţinând: ID. DESPREMINE (câteva cuvinte despre desenator).4.Profilul completat de fiecare desenator este memorat în acest tabel. LOCATION (unde se află desenatorul). Este realizat de programatorul care a creat scriptul de votare cu steluţe. Pix.8. De exemplu: În creion.7. contul de hi5 sau facebook al desenatorului). blogul. HOBBY (listă de hobby-uri ale utilizatorului). Ratings 4. Figura 4. WEBSITE (link spre site-ul. Figura 4. IDUSER. 29 . Profile Tabelul memorează toate versiunile profilului fiecărui desenator aşa încât administratorul poate afla la un moment dat toate informaţiile profilului scrise de cineva. Pe site apare doar profilul cel mai recent. POZA (fotografia personală a desenatorului). 4.4.

De asemenea.este codul de activare al contului. cum sunt procesate şi stocate acestea şi de asemenea cum sunt extrase pentru a apărea în paginile siteului. "data" reprezintă data creării contului.10. datele ce urmează a fi stocate în baza de date sunt testate şi prelucrate. Prelucrarea datelor ce urmează a fi stocate Din motive de securitate. 30 . pentru a evita "Injectarea SQL" (vezi [12]) s-a folosit funcţia strip_tags [13].5. De exemplu. Users 4.9. Adresa de e-mail a utilizatorului se memorează în câmpul "email".4.2.Figura 4.5. parola este stocată criptat (md5). "cod" . "nickname" este numele cu care utilizatorul apare pe site. Câmpul "nume" conţine numele şi prenumele utilizatorului (nu apar pe site).1. Pe scurt Paginile site-ului sunt create dinamic pe baza conţinutului bazei de date. Accentul se va pune pe codul PHP şi MySQL corespunzător operaţiilor descrise deja (în mare parte) teoretic până aici. Tehnici 4. "activ" este 1 când contul este activ sau 0 când contul este dezactivat. Figura 4. 4. Lucrul cu baza de date 4. dar nu numai. parola contului nu este salvată în clar ci criptată folosind md5 (vezi [11]). Users Tabelul "Users" memorează conturile utilizatorilor înscrişi pe site. În această secţiune vom vedea cum se introduc noi informaţii în baza de date de către utilizatori.8.5.

De exemplu: o adresă de e-mail.3})?(\. function email_valid($email) { if(eregi('^[a-zA-Z0-9. În cazul adresei de e-mail există există şi o testare după stocare. în caz contrar afişându-se mesaj de eroare. testări şi prelucrări ale informaţiilor introduse de utilizatori în toate secţiunile în care ei au acces: creare de cont. Un exemplu bun de validare a datelor introduse îl găsim la crearea contului. ea trebuie să existe şi mai mult să fie a autorului contului. se fac verificări. la crearea unui cont nou.[a-zA-Z]{2. Datele introduse în baza de date sunt validate pentru a respecta cerinţele._-]+@[a-zA-Z0-9-]+\.[a-zA-Z]{2. înainte de a fi stocată este verificată cu funcţia email_valid().4}(\. Nu e suficient ca adresa să respecte forma unei adrese de e-mail. $email)) return true.ele apar pe site numai după ce sunt aprobate de administrator sau moderatori. etc. Înainte de stocare se elimină eventualul cod de injecţie astfel: $nume = strip_tags($_POST['numesiprenume']). Aceste testări şi prelucrări sunt absolut necesare. dar nu suficiente. În cazul desenelor . } În mod asemănător. introducere de desene şi comentarii pe site. Exemplu de folosire a funcţiei de criptare MD5: $parola_user = md5($parola_user).[a-zAZ]{2. 31 .3})?$'. utilizatorul introduce în câmpurile din formular datele personale printre care numele şi prenumele (câmpul "Nume") şi numele de utilizator (câmpul "Nickname").Exemplu de folosire a funcţiei strip_tags() în aplicaţie: După cum am spus deja. $nick = strip_tags($_POST['nickname']). else return false.

După validare.toate câmpurile să fie completate . totuşi necesare: .În codul de mai jos observăm că pentru a crea contul trebuie respectate următoarele reguli.etc În fiecare caz de date invalide codul de mai jos dă un mesaj de eroare specific.parola să aibă cel puţin 6 caractere . deşi banale..</b>". astfel încât utilizatorul să afle exact care este problema. } else if(strlen($parola_user)<6||strlen($parola_confirmata)<6)//parola < 6? { echo "<b>O parolă bună trebuie să aibă minim 6 caractere.. Numai după ce se face click contul va fi activ.nickname-ul să nu fie utilizat deja de un alt utilizator .</b>'. } else if(strlen($nick)>15)//nickname > 15? { echo '<b>"Nickname" maxim 15 caractere..</b>'.. if($nume&&$nick&&$parola_user&&$parola_confirmata&&$email_user)//campuri necompletate? { if(strlen($nume)>50)//nume prenume > 50? { echo '<b>"Nume şi prenume" maxim 50 caractere.adresa de e-mail să respecte forma unei adrese de e-mail . } else //e-mail ok? if (email_valid($email_user)) 32 . datele sunt salvate în baza de date şi se trimite un mail cu un link de activare a contului pe adresa de e-mail desenatorului.parola să coincidă cu parola rescrisă .

'$nume'. //select $query = mysql_query("SELECT * FROM users WHERE nickname='$nick'"). //deconectare bd_deconectare(). $parola_confirmata = md5($parola_confirmata). $subject = "Desenez.net . $message = "Salut! 33 .Cont creat". $numrows = mysql_num_rows($query).'$parola_user'.'$cod_activare'. //INREGISTRARE USER //conectare bd_conectare(). Este folosit deja de altcineva. } else { $query = mysql_query(" INSERT INTO users VALUES (''.'$acti v') ").'$email_user'. //mesaj multumire..'$nick'. redirectare $to = $email_user. if($numrows>0) { echo "<b>Trebuie să-ţi alegi un alt nickname.if($parola_user==$parola_confirmata)//parole egale? { //cripteaza parole $parola_user = md5($parola_user).'$data_inregistrarii'.</b>"..

else echo "<b>Adresa de e-mail invalidă! </b>". //print_r(error_get_last()). $headers = "From: $from". 34 . <br /> Contul va putea fi utilizat numai după activare.$cod_activare. Sar putea ca mesajul să întârzie câteva minute. deci verificaţi şi acolo.php?action=activare&cod="." Parola: ". <i>S-ar putea ca mail-ul să ajungă în folderul Spam</i>. dar pentru a-l putea folosi trebuie activat." Multumesc!".$nick.net".Contul tau a fost creat.$subject. //EROARE ?> <div class="anunturi"><h3><i>Atenţie!</i> Contul este creat dar trebuie activat.$message.net/index.$headers).</h3></div> <?php } } else echo "<b>Introduceţi corect parola! </b>". mail($to. $from = "donotreply@desenez. Pentru aceasta veţi primi un mail cu un link de activare pe care trebuie să faceţi click." Dupa activare te vei autentifica cu: Nickname: ".$parola_temp.desenez. } else echo "<b>Completaţi toate datele! :)</b>". Fa click pe link-ul urmator: http://www.

curdate(). ci tocmai pentru a fi utilizate. au loc toate salvările în baza de date.5. se pot vedea cele mai noi comentarii aşezate unele sub altele. În mod analog.'$teh'.'$categorie'. 35 .'$nick'. Mai multe despre comanda INSERT INTO găsiţi aici: [14].4. Extragerea datelor din baza de date Datele nu sunt salvate în baza de date pentru a rămâne acolo. În cazul desenelor salvate: $query = mysql_query(" INSERT INTO desene VALUES (''.'$parola_user'.3. după validarea datelor din formular): $query = mysql_query("INSERT INTO users VALUES (''. Salvarea datelor în baza de date După ce s-a trecut cu succes de etapa de validare a datelor.4.'$titlu'.'$autor'.'$email_user'. Pe baza datelor din baza de date este generat conţinutul din paginile site-ului. '$nume_fisier')").'$data_inregistrarii'. Dintr-o privire. Sunt puse acolo pentru utilizatorii care vizitează frecvent site-ul şi vor să fie la curent cu activitatea de pe site. numai apoi sunt salvate în baza de date. Exemplul 1: Afişarea celor mai recente comentarii În coloana din partea stânga a site-ului apar cele mai recente 20 de comentarii. Exemplu de salvare a datelor în baza de date (la crearea contului.'$aprobat'.'$activ')").'$cod_acti vare'. cele mai recente sus. Dă vedem câteva exemple şi modul de lucru. 4.'$descriere'.'$nume'.5.

iduser = u. <?php //CONECTARE bd_conectare().php. //SELECT COMENTARII $select_comentarii = mysql_query(" SELECT c. mai precis tabelul "Comentarii".id WHERE c. al cărei cod l-am arătat mai sus. adică cele mai recente primele.Comentariile vin din baza de date. dar nici comentarii pentru desene care au fost dezactivate). iii) Are loc deconectarea de la baza de date prin funcţia bd_deconectare(). 36 .activ = 1 and d. după cum am văzut mai sus. d. Conţinutul acestui fişier îl vom analiza mai jos: i) se realizează conectarea la baza de date prin funcţia bd_conectare().id DESC LIMIT 20 "). Acest lucru se realizează la comanda scriptului din fişierul s_comentarii.fisier as c_desen FROM comentarii c inner join users u on c.aprobat = 1 ORDER BY c. dar care comentarii sunt active şi sunt scrise la un desen activ (adică nu trebuie să apară pe site comentarii dezactivate.iddesen = d.id inner join desene d on c. ii) comanda MySQL SELECT. Sunt luate în ordinea descrescătoare a ID-ului. selectează cele mai recente 20 de comentarii din tabelul "Comentarii".text as c_text.

count(d. etragerea din baza de date făcându-se de codul: $select_categorii = mysql_query(" SELECT c.id as cat_id. ?> iv) Comentariile selectate sunt afişate într-o listă. c. pentru a avea o dimensiune a conţinutului care să nu strice aspectul site-ului.</a></li>". (Despre funcţia substr puteţi citi aici: [15]). } ?> </ul> Textul fiecărui comentariu este trunchiat la maxim 35 caractere.. Se procedează asemănător cu exemplul anterior. cu link spre desenul la care au fost publicate <ul> <?php while($tablou_comentarii = mysql_fetch_array($select_comentarii)) { $c_text = substr($tablou_comentarii['c_text']. echo "<li><a STYLE='text-decoration:none' href=\"index.php?action=desen&fisier=$c_desen\">$c_text.35).//DECONECTARE bd_deconectare(). $c_desen = $tablou_comentarii['c_desen']..0.nume as cat_nume.id) as nr_desene 37 . Exemplul 2: Afişarea categoriilor de desene Tot în coloana din stânga apare şi o listă cu categoriile de desene însoţite de numărul de desene din fiecare.

total_votes as nr_note. Exemplul 3: Topul celor mai apreciate desene Pe baza notelor acordate de desenatori s-a construit topul celor mai apreciate desene.iduser = u. total_nota 38 .idcategorie ORDER BY c.aprobat = 1 GROUP BY d.nume as desene_nume.idcategorie GROUP BY d.id ORDER BY nota DESC.id = d.activ = 1 and d. Afişarea tehnicilor se realizează în mod analog.FROM categorii c inner join desene d on c.total_value) / (r.total_value as total_nota FROM desene d inner join users u on d.id as desene_id. r. r.id inner join ratings r on d. d.fisier as desene_fisier. (vezi [17]).nume ASC "). Iată codul care realizează extragerea din baza de date: $select_desen = mysql_query(" SELECT d.id = r. Funcţia count numără desenele din fiecare categorie (vezi [16]).total_votes)) as nota. round((r.id WHERE u. d.

$select_desen = mysql_query(" SELECT 39 . În secţiunea "Desene" apar toate desenele active postate pe site. } else { $pag = 1. însă când e vorba de mii de desene evident e nevoie de paginaţie. iii) să extragem conţinutul ţinând cont de parametrii stabiliţi $li = ($pag . dar care are nota 4. Pe scurt. Cele 240 de desene din topul desenelor sunt ordonate descrescător după nota rotunjită şi de asemenea descrescător după total_nota. nu ar fi problemă a le afişa toate într-o pagină. adică punctajul total acumulat de un desen (3 note de 5 steluţe şi una de 3 stele înseamnă 3*5 + 3 = 18 puncte). } ii) să stabilim numărul de desene de pe o pagină $d_per_p = 18. câte 18 pe pagină. Exemplul 4: Extragerea desenelor ţinând cont de paginaţie În cazul în care ar fi vorba de câteva desene numai. Am ales această variantă pentru a evita situaţia când un desen cu un singur vot de 5 stele să apară înaintea unui desen votat de 100 de ori. în acest caz e nevoie: i) să ştim pe ce pagină ne găsim: if(isset($_GET['pag'])) { $pag = $_GET['pag'].99.1) * $d_per_p.DESC LIMIT 240 ").

d. cu atât mai puţin utilizatorilor care sunt dornici să aibă totul cât mai uşor la dispoziţie.id ORDER BY d. Mai multe despre "LIMIT" găsiţi aici: [18].nume as desene_nume.fisier as desene_fisier. Utilizatorul trebuie să fie logat pentru a putea avea acces la meniul personal. 4. d.nickname as user_nickname FROM desene d inner join users u on d. Un exemplu de actualizare sau modificare a înregistrărilor din baza de date este: Schimbarea parolei contului Utilizatorul poate să-şi schimbe parola din meniul personal afişat în partea stângă după autentificare. $d_per_p"). Bineînţeles că aceasta nu ne convine. Parola veche introdusă este comparată cu cea din baza de date şi numai în cazul în care acestea coincid se trece la modificarea câmpului parola din tabelul users: 40 .activ = 1 and d.id DESC LIMIT $li.aprobat = 1 GROUP BY d.iduser = u.id as desene_id.id WHERE u. La accesarea opţiunii "Modifică parolă" apare un formular în care se cere parola veche şi parola nouă de două ori (pentru a fi siguri că a scris-o aşa cum vrea). Să vedem cum se întâmplă acest lucru. Modificarea datelor din baza de date O alternativă la modificarea datelor din baza de date ar putea fi ştergerea datelor vechi şi înlocuirea cu înregistrări noi. ca administratori ai unui site.5. d.5. u.

Alte exemple asemănătoare se găsesc în partea de administrare a site-ului: administratorul poate modifica informaţiile introduse de utilizatori. 41 . Mai multe despre folosirea comenzii UPDATE găsiţi aici: [19].mysql_query("UPDATE users SET parola = '$parolanoua' WHERE nickname = '$user'").

12.11. Legături între tabelele bazei de date 42 . Schimbarea parolei contului Figura 4.5.6.Figura 4. O schemă simplă a bazei de date 4.

12. după cum am mai spus. dar poate fi încărcat în categoria "Diverse". Capitolul V – Concluzii 43 . Relaţia 3: Un utilizator poate scrie comentarii la desene. relaţiile din figură înseamnă: Relaţia 1: Un utilizator poate posta mai multe desene. În cazul în care se utilizează mai multe tehnici pentru acelaşi desen. Nu se pot asocia unui desen mai multe categorii. Relaţia 2: Un utilizator are un profil vizibil (cel mai recent). Pe înţeles. un desen poate avea un singur autor.S-a anticipat deja în extragerea datelor din baza de date felul în care tabelele interacţionează. O diagramă realizată în BDDesigner 4 (vezi [20]) se găseşte în figura 4. deşi. în tabelul Profile se salvează toate versiunile de profil ale fiecărui desenator. Totuşi.. Relaţia 6: Un desen poate fi încărcat într-o categorie dintre cele existente. o diagramă a bazei de date poate fi mult mai uşor de analizat şi înţeles. Însă. desenul se va încărca la tehnică mixtă. Relaţia 4: Un desen poate fi comentat. Relaţia 5: Un desen este realizat într-o tehnică dintre cele existente.

net înseamnă: .peste 10000 de căutări de desene înregistrate în baza de date (memorarea comentariilor s-a început destul de recent) .peste 200 de conturi inactive (dezactivate de către administrator sau neactivate de către utilizatori la crearea lor) şi peste 1400 de desene inactive (dezactivate de către administrator.peste 6000 de linii de cod scrise în peste 80 de fişiere (excluzând cele peste 1000 de fişiere ale blogului şi forumului) .5.net în cifre În momentul de faţă (iunie 2011) aplicaţia Desenez.un spaţiu ocupat pe server de aproximativ 2 GB (desenele sunt optimizate / redimensionate la încărcarea lor pe site) .aproape 15000 de comentarii postate la desene .2.1. Evoluţia site-ului 44 .între 500 şi 1000 de vizitatori unici pe zi. moderatori sau autori) . între 4000 şi 10000 de vizualizări de pagini pe zi 5. Desenez.peste 6000 de desene active încărcate pe site de către cei aproape 800 de desenatori. .

1. însumi.3.1.). Un grafic al numărului de conturi create în fiecare lună începând cu Martie 2010 (când s-a lansat site-ului) vedeţi în figura 5. iar acum zilnic se creează conturi noi.2. la început am fost singurul care publica desene.evoluţia anevoiasă a codului site-ului pentru că lucrez singur şi nu am o experienţă bogată în domeniu .e destul de greu a testa dacă un desen aparţine sau nu celui care îl postează 45 . graficul numărului de vizitatori pe lună (luat din statisticile oferite de Google Analytics) arată totuşi destul de bine (vezi figura 5. un pasionat de desen. Cu timpul s-au adunat şi alţii.o mare parte dintre cei care îşi fac cont pe site au numai o slabă activitate .prea multe desene de o calitate artistica destul de slabă .o mare parte dintre desenatori sunt amatori . 5.2. Figura 5.Aplicaţia a fost lansată pe Internet prin luna Martie 2010. Ţinând cont de faptul că nu s-a plătit nici un ban pentru publicitate. Graficul traficului site-ului oferit de Google Analytics Fiind eu. Figura 5. Puncte slabe . Graficul numărului de conturi create lunar 140 120 100 80 60 40 20 0 mar apr mai iun iul aug sept oct nov dec ian feb mar apr mai Nr conturi În medie se creează 50 de conturi pe lună.

d.câştig material (din reclamele Google [21] şi din parteneriatul cu Art & Hobby Center Bucureşti) [22]. SEO.utlizatorii vechi pe site ajută şi ei prin îndrumarea noilor veniţi 5.există desenatori specialişti care îndrumă începătorii prin intermediul aplicaţiei . dar pe lângă acestea pot să simt şi lipsurile site-ului. .) . însă atunci când apare o problemă ştiu exact unde trebuie să merg pentru a o remedia .concursurile de desen desfăşurate pe site . Puncte tari .vezi [23] .tendinţa ascendentă a graficului numărului de vizitatori. desenatori.Faptul că lucrez singur la acest proiect face ca evoluţia aplicaţiei să fie destul de înceată. primesc comentarii. 46 .4. etc arată o evoluţie a comunităţii . note la desene şi voturi la profil. ş. . beneficiile site-ului: şi eu postez desene. împreună cu administratorul. comentez desenele care-mi plac. a numărului de desene.aprofundarea cunoştinţelor de PHP şi MySQL învăţate în facultate .existenţa moderatorilor care. doresc să adaug noi şi noi elemente / funcţionalităţi astfel încât site-ul să devină unul puternic. fiind impulsionat şi de dorinţa utilizatorilor.a. pot să simt. alături de ceilalţi desenatori. formează o bună echipă pentru administrarea site-ului .5.. Pe viitor. . comentarii.Dacă s-a realizat ceva cu acest site. să-mi fac noi prieteni / colaboratori. La rândul meu.am învăţat multe lucruri noi în domeniul programării web.. sunt conştient că e doar începutul. dar şi în domenii care au legătură cu aceasta (web design. cer informaţii când e cazul. Desenez.am descoperit noi persoane pasionate de desen .m.exersarea unor cunoştinţe dobândite la master (cursul Baze de date relaţionale) . Toate acestea mă ajută să evoluez în ceea ce priveşte arta. etc.folosesc şi un cont de simplu utilizator (GhitaB) .. în afară de cele semnalate de utilizatori.secţiunea Lecţii nu are un conţinut prea bogat (încă) 5.Pe lângă contul de administrator (admin) . Astfel.net pentru mine Cred că timpul petrecut la realizarea acestui proiect m-a ajutat în mai multe privinţe: .vezi [24].cunosc structura întregului cod şi interacţiunea lui cu elementele bazei de date.

Statistici pentru site [11] http://ro.tizag.kavoir.php?action=top-desene .funcţia strip_tags() [14] http://dev.com/doc/refman/5.net/manual/en/function.BDDesigner 4 47 .mysql.seo-board.wikipedia."LIMIT" [19] http://dev.com/2009/06/best-mysql-books-to-learn-mysql-database-phpapplications.php .0/en/select.com/ . Larry Ullman.com/ .php?action=profil&user=GhitaB) Având în vedere cele de mai sus şi faptul că la începutul lucrului nu ştiam că acest site îl voi prezenta la disertaţie.crearea de link-uri "frumoase" pentru motoarele de căutare (de exemplu: http://desenez.0/en/update.php?a=vtopic&t=69 – Topic ."UPDATE" [20] http://www.net? [5] http://netbeans.org/ .com/doc/refman/5.mysql.com/analytics/ . iar în domeniul SEO .html .SEO-Board .Ce reprezintă pentru tine Desenez.funcţia substr [16] http://www.php .5/en/insert.html [8] http://ro. sunt mulţumit cu rezultatele obţinute.SQL Injection [13] http://php.net/index..html .substr.The Best PHP Books [7] http://www. Referinţe [1] http://www.MySQL count [17] http://desenez.google.org/php .INSERT INTO.mysql.sql-injection.com/doc/refman/5.php .desenez.net/manual/ro/security.net/GhitaB în loc de http://desenez.WordPress .a fun social networking site with the best online chat box [4] http://forum.net/index.MySQL [15] http://php.net/index.org/wiki/Baz%C4%83_de_date [9] PHP 6 and MySQL 5 for Dynamic Web Sites.org/wiki/MD5 .net/dbdesigner4/ .wikipedia. Peachpit Press (2008) [10] http://www.php .com/mysqlTutorial/mysqlcount.Primul lucru care urmează să-l adaug cred că este: posibilitatea de a trimite mesaje private.strip-tags.html .Despre criptarea MD5 [12] http://php.net/manual/en/function.NetBeans IDE [6] http://top-books.fabforce.forum software [2] http://wordpress.topul celor mai apreciate desene [18] http://dev.web software [3] http://xat.database.org/ .

Google AdSense [22] http://profiart.Profil admin [24] http://desenez.[21] https://www.ro/ .Profil GhitaB 48 .net/index.com/adsense/ .Art & Hobby Center Bucureşti [23] http://desenez.php?action=profil&user=admin .net/index.google.php?action=profil&user=GhitaB .