Site de Socializare
Site de Socializare
Cuprins
Introducere
Capitolul 1. Rețele de socializare
1.1 Despre Rețelele de socializare
1.2 Web 2.0 si Web 3.0
1.3 Alte rețele de socializare
1.4 Efectele Rețelelor de socializare
1.5 Securitatea Rețelelor de socializare
Capitolul 2. Tehnologii utilizate
2.1 HTML
2.2 CSS
2.3 PHP
2.4 MySQL
2.5 Javascript
Capitolul 3. Proiectarea aplicației
Capitolul 4. Structura și utilizarea aplicației
4.1 Structura site-ului
4.2 Implementare
4.3 Conectarea la baza de date
4.4 Interfața pentru utilizatorul tip administrator
4.5 Community
Capitolul 5. Concluzii
Bibliografie
Introducere
Se poate spune, pe drept cuvânt că trăim într-o societate informatizată. În zilele noastre, întâlnim calculatoare peste tot, de la micul magazin din colț, care-și ține evidențele sale cu ajutorul unui calculator și până la ghișeul la care plătim abonamentele de telefonie, cablu TV, Internet, la examenele pentru permisul de conducere sau alte examene pentru diferite domenii oricare ar fi acestea și multe alte. Peste tot sunt calculatoare, legate eventual între ele și formând astfel rețele de calculatoare. Toate acestea se datorează faptului că ne dăm seama din ce în ce mai mult că sistemele de calcul, calculatoarele ne ușurează munca și viața prin apariția lor.
Popularitatea rețelelor de socializare este în continuă creștere, numărul persoanelor cu conturi pe aceste site-uri crescând de patru ori între 2005 și 2009. Rețelele de socializare oferă gratis servicii de comunicare (mesagerie, blogging, stocare de poze), servicii de entertainment (jocuri, prezentare/promovare evenimente etc.). Rețelele sociale pot contribui la schimbarea mentalității și la prezentarea altor alternative decât metodele tradiționale de comunicare a unei idei.
Rețele sociale în sine sunt mijloace de promovare. Foarte populare peste ocean și din ce în ce mai accesate și la noi, rețele sociale te pot ajuta să-ți promovezi blogul, sau mica ori marea afacere și să fii în permanent contact cu vizitatorii sau potențialii clienți. Degeaba ai scris un articol genial pe blogul tău dacă nimeni nu știe de el. Tot prin intermediul rețelelor sociale, un profesionist poate fi la curent cu subiectele legate de job. Graficienii pot descoperi concepte noi, programatorii se pot pune la curent cu cele mai noi standarde sau limbaje de programare și așa mai departe. De ce nu, și alte categorii profesionale "mai puțin moderne", gen contabili sau juriști, se pot informa prin intermediul acelorași rețele sociale și, nu în ultimul rând, se pot face cunoscuți online.
Rețelele de socializare contribuie la îmbunătățirea relațiilor interpersoanle, chiar dacă sunt la distanță și virtuale. Îmbunătățesc comunicarea, iar oameni care, practic, nu s-au văzut niciodată față în față pot deveni foarte buni prieteni. În plus, prin sortarea prietenilor ai posibilitatea de a-i adauga în cercul tău doar pe cei care îți împărtășesc aceleași interese, au aceleași idei și valori. De asemenea, poate reduce nivelul anxietății oamenilor care nu sunt la fel de bun comunicatori dacă sunt față în față cu cineva.
Capitolul 1 – Rețele de socializare reprezintă partea introductivă a lucrării, prezentarea domeniului din care face parte proiectul, a temei propriu-zise.
Capitolul 2 – Tehologiile utilizate reprezintă o scurtă introducere a principalelor noțiuni legate de Internet. Sunt explicate noțiuni ca Internet, protocolale, aplicații pentru internet, DNS, intrenet și extranet, servere web și aplicații web, pagini web statice și dinamice, limbaje de markup și scripting, HTML, JavaScript. Limbajul PHP,este prezentat prin descrierea principalelor noțiuni legate de acest limbaj. Descrierea modului de includere a codului PHP în cadrul codului HTML, sunt prezentate tipurile de date pe care acest limbaj le suportă și tipurile de variabile care pot fi utilizate. Noțiunile de bază ale bazelor de date relaționale. Este prezentat modul de utilizare a MySQL, conectarea și deconectarea de la server, crearea și selectarea bazelor de date, crearea tabelelor și introducerea interogărilor.
Capitolul 3 – Proiectarea aplicației prezintă lucrarea. Prezentarea generală a aplicației, interfața cu utilizatorul, și modalitatea de stocare a informațiilor și a datelor.
Capitolul 4 – Implementarea și utilizarea aplicației reprezintă descrierea aplicației. Implementarea acestui site a fost realizată folosind limbajul de server side scripting PHP datorită felxibilității acestuia și a faptului că poate fi folosit gratuit, fără restricții. De asemenea, a fost ales sistemul de gestiune a bazelor de date relațioale MySQL datorită faptului că și acesta poate fi folosit gratuită, Open Source este cel mai potrivit produs pentru accesarea și administrarea bazelor de date prin Internet.De asemenea, este prezentat modul de creare a bazei de date a aplicației. Sistem de management al site-ului, crearea unor tabele. Interfața grafică a aplicației este construită pe baza unui template, pe care toate paginile site-ului îl folosesc pentru a păstra același layout pe întregul site. De asemenea, pentru setarea modalităților de afișare a diferitelor elemente HTML, pentru alegerea stilului site-ului s-a folosit un fișier .css, acesta putând fi modificat sau înlocuit și întregul site își schimbă automat înfățișarea.Prin combinarea acestor două produse, PHP și MySQL, aplicația realizată este foarte flexibilă, putându-se adăuga noi funcționalități aplicației.
Capitolul 5 – Concluzii prezintă opinia mea personală despre aplicația realizată și posibilitățile de dezvoltare a aplicației.
Capitolul 1. Despre Rețele de Socializare
Despre Rețele de Socializare
O rețea de socializare (rețea socială) este, general vorbind, o rețea de persoane cu scopuri comune, cum ar fi o rețea de studenți, politicieni, în contrast cu rețelele tehnice ca rețeaua de telefon sau gaz metan. Rețelele de socializare din web (Internet) sunt numite și „rețele sociale”. În ultimii ani printr-o rețea socială se înțelege deseori și o rețea (informațională) de utilizatori Internet, bazată pe anumite situri web la care utilizatorii se pot înscrie și interacționa cu alți utilizatori, deja înscriși. Aceste rețele sociale fac parte din fenomenul relativ nou, global, numit Web 2.0. Astfel, membrii unei rețele sociale sunt legați între ei în mod informal, fără obligații, dar de obicei contribuie activ la colectarea și răspândirea informațiilor pe întregul glob prin intermediul webului.
Web 2.0 si Web 3.0
Conceptul Web 2.0 reprezintă o serie de caracteristici specifice unei aplicații web prin care se facilitează partajarea de informații, interoperabilitatea, design bazat pe utilizator în WWW. Acum utilizatorii nu mai sunt doar consumatori ci și producători, colaborând într-o societate virtuală în care “ne putem întâlni cu toții unde să citim și să scriem” Deși termenul pare a sugera un update la WWW, o altă specificație, el defapt arată o schimbare în modul în care software developeri și utilizatorii finali folosesc și creează pe Internet. Vorbim despre o „arhitectură de participație”, un produs open source în care, spre deosebire de un software open source, utilizatorul nu scrie cod ci un simplu document. În urmă acestor schimbări încep să apară diverse noi tehologii cât și noi moduri de a comunica on-line. Printre acestea se enumeră: wikis, blog-uri, audio/video provider, podcasting, social software și lista continuă. Toate au în comun 3 lucruri: social web – un web care tinde să interacționeze cu utilizatorul și să îl integreze în sine, arhitecturi web oriented – aplicațiile Web 2.0 își expun functionalitatiile pentru că alte aplicații să se poată folosi de ele, aplicații “rich internet” – aplicații ușor accesibile cât și bogate din punct de vedere vizual. În clipa de față există suficiente astfel de posibilități de dezvoltare. Ele devin din ce în ce mai performante și îți oferă tot mai multe dar viitorul nu constă în mai multe rețele de socializare sau mai multe metode de comunicare.
Viitorul constă într-un Web în care calculatorul cunoaște ceea ce face și ajută utilizatorul în experiența sa on-line. În prezent aplicațiile web nu se deosebesc de un calculator de mâna care primește informații și apoi le afișează pe un ecran. O aplicație web afișează, dar nu înțelege defapt ceea ce este scris. Este nevoie de aplicații care procesează informațiile primite de la utilizator în așa fel încât contentul primit să fie generat de calculator în funcție de preferințe.
Un Web în care aplicațiile să caute, pentru utilizator, on-line – Web 3.0. Aplicația va înțelege atât ceea ce dorești cât și preferințele tale. O aplicație Web 3.0 va căuta în istoricul utilizatorului preferințele sale și le va raporta cu ceea ce dorește. Spre exemplu, dacă se introduce: “Vreau să mă duc la un restaurant cu specific chinezesc. Unde propui să mă duc?” , aplicația îmi va propune o lista în ordinea probabilelor mele preferințe. În Web 2.0 trebuie să cauți în mai multe pagini o alternativă, să citești user review-uri și în cele din urmă te hotărești. Web 3.0 face asta pentru tine la prima căutare. Dacă Web 2.0 folosește internetul să conecteze oamenii, Web 3.0 conectează cu informații. Această direcție de dezvoltare pare a fi acceptată și de către cei de la World Wide Web Consortium prin propunerea unui nou mod de interacțiune între aplicații denumit Semantic Web. Acesta cuprinde un framework comun care permite informației să fie imparsita și reutilizată în mai multe aplicații enterprise. W3C recomandă spre folostire două standarde Resource Description Framework și Web Ontology Language.
În prezent, dezvoltarea limbajului XHTML 1.0, iar apoi HTML5, au pus bazele RDFa – Resource Description Framework Attributes, un framework care permite descrierea informației din pagină web, relațiile dintre acele informații și o anumită tipologie. Astfel un agent Web 3.0 nu va mai căuta doar cuvinte cheie în conținutul documentelor ci și modul cum relaționează cu restul paginii.
Alte Rețele de Socializare
Cele mai cunoscute rețele de socializare:
Facebook – circa 1,310,000,000 membri (septembrie 2011) în toată lumea
Flickr – rețea mondială pentru informații de tip imagine și fotografie
LinkedIn – 300 milioane useri, pentru managementul carierei și relațiilor profesionale
Instagram – 30 milioane de useri
Pinterest – circa 70 mil. utilizatori
Twitter – circa 1 miliard. membri (iunie 2014) – pentru răspândirea rapidă, în mase, a unor știri textuale scurte, de maxim 140 caractere.
YouTube – 1 miliard useri.
Google+ – 180 de milioane de useri.
Efecte ale Rețelelor de Socializare
În ultimii ani comunicația maselor prin rețelele sociale are consecințe din ce în ce mai vizibile, chiar și pe plan mondial. Analiștii sunt de părere că fără rețele sociale evenimentele s-ar fi desfășurat altfel. Câteva exemple de evenimente recente (2011) influențate puternic de comunicația prin rețele sociale:
protestele din Egipt care au dus la demisia lui Hosni Mubarak, președintele statului
revoltă populară din Tunisia care a dus la răsturnarea președintelui Zîne El Abidine Ben Ali
dovedirea de plagiate, ca de ex. lucrarea de doctorat a fostului ministru al apărării din Germania, graful Karl-Theodor zu Guttenberg.
convocarea publicului la diverse întruniri sau chiar demonstrații poate fi ușurată; de exemplu s-au înmulțit protestele publice și mișcarea cetățenilor împotriva proiectului de cale ferată „Stuttgart 21” (Germania). Proiectul încă nu e decis.
Influența rețelelor YouTube, facebook și twitter a schimbat deja radical industria divertismentului (showbizul sau entertainment industry).
Facebook, MySpace, LinkedIn, Twitter și multe alte rețele internaționale de comunicare și socializare online sunt „locuri” virtuale ideale pentru reîntâlniri cu prieteni vechi sau oportunități de a cunoaște prieteni noi sau persoane cu care împărțim aceleași preocupări, pasiuni și chiar afaceri. Cu toate acestea, în spatele unor asemenea rețetățenilor împotriva proiectului de cale ferată „Stuttgart 21” (Germania). Proiectul încă nu e decis.
Influența rețelelor YouTube, facebook și twitter a schimbat deja radical industria divertismentului (showbizul sau entertainment industry).
Facebook, MySpace, LinkedIn, Twitter și multe alte rețele internaționale de comunicare și socializare online sunt „locuri” virtuale ideale pentru reîntâlniri cu prieteni vechi sau oportunități de a cunoaște prieteni noi sau persoane cu care împărțim aceleași preocupări, pasiuni și chiar afaceri. Cu toate acestea, în spatele unor asemenea rețele, care se dezvoltă și se ramifică în fiecare clipă cu viteză nebănuită, se ascund și pericole de care trebuie să fim pe deplin conștienți înainte de a ne bucura de un contact cu mapamondul.
Site-urile rețelelor sociale au creat o adevărată revoluție în comunicare, iar pe lângă acest aspect evident, tehnologia în domeniu evoluează continuu. În anii '80, un greoi calculator personal era un totuși obiect rar și cu multe necunoscute, iar PC-urile de azi par aproape obiecte din panoplia personajelor SF de atunci. Un banal computer de astăzi poate asigura comunicare video instantanee cu orice persoană de pe suprafață pământului și poate trimite cantități uriașe de documente cu viteza gândului.
Cu toate acestea trebuie să nu scăpăm din vedere un aspect deosebit de important: odată cu evoluția tehnologiilor de comunicație și a Internetului, metodele noilor infractori virtuali au ținut și ele pasul cu trendul, ba în unele aspecte l-au și depășit. În decursul anului 2010, de pildă, ciber-infractorii au împânzit rețelele de socializare într-un ritm fără precedent, iar trendul este în continuă amplificare.
Securitatea Rețelelor de Socializare
Majoritatea oamenilor nu cunosc măsurile de baza pentru protejarea activității lor online, a informațiilor deținute în propriile computere și chiar a afacerilor derulate prin intermediul Internetului. Oamenii obișnuiți, fără cunoștințe avansate în privința protecției online, accesează confortabil rețelele sociale de la adăpostul relativ al propriei case sau de la serviciu, crezând astfel că beneficiază de o anonimitate care ar oferi un anume grad de siguranță. Nimic mai greșit! În plus, lipsa oricărui contact real cu oamenii de pe aceste rețele este suficientă pentru a ne slăbi propriile măsuri de siguranță. Așa se explică, în mare măsură, de ce majoritatea oamenilor se trezesc într-o bună zi că au împărtășit informații personale unor indivizi străini, pe care i-au întâlnit fugar la diferite recepții, sau i-au ales din lista de prieteni a altor cunoștințe de pe Internet. Definirea unui comportament potrivit în cadrul rețelelor sociale rămâne una larg deschisă în continuare. Oamenii vor folosi tot mai des aceste servicii via Internet, fie pentru socializare, fie pentru afaceri, ghidați în mare parte de propriul bun simt și de instinctul de conservare.
Cu toate acestea două mari aspecte se evidențiază de la bun început: securitatea părții tehnice și securitatea personală a userului. La nivel strict tehnic și funcțional, serviciile de comunicare și socializare online permit userilor să intre în contact unii cu alții mai repede și mai puțin formal decât serviciile clasice de e-mail. La fel ca oricare alte sisteme de comunicații electronice, rețelele de socializare online permit userilor să trimită file-uri și attachment-uri cu fotografii, precum și să folosească programe pentru video-chat sau telefonie, iar odată ce acestea pot fi cunoscute de administratorii de sistem, pot fi filtrate sau chiar blocate dacă se identifică vreo problemă. În mod bizar, din punct de vedere al securității userului, marea slăbiciune a rețelelor sociale sunt tocmai punctele lor tari. Astfel, rețelele sociale încurajează și facilitează interacțiunea deschisă între userii care se cunosc între ei sau au preocupări comune, dar astfel legăturile se diluează cumva sau chiar se pierd. Pentru a explora detaliile lumii ascunse a răufăcătorilor ce acționează în rețelele de socializare, să ne sprijinim pe părerile unor specialiști în domeniu: experții din cadrul FBI. Din punctul lor de vedere, teoretic există două mari tactici prin care ciber-infractorii exploatează rețelele de socializare. În practică, aceste două metode sunt cel mai adesea folosite împreună.
Bunăoară, hackerii abili sunt specializați în exploatarea vulnerabilităților din sistemul dumneavoastră pentru a avea astfel oportunitatea de a vă instala un program nedorit în propriul PC, laptop sau telefon mobil de ultima generație. În al doilea rând, hackerii specializați în a parazita și exploata oportunitățile oferite oricui de rețelele sociale au ajuns îndeajuns de abili pentru a manipula persoanele din lista lor de "prieteni" pentru a obține ce își doresc. Din nefericire, în toată această poveste adevărată, oamenii sunt veriga slabă, iar ciber-infractorii știu asta foarte bine. Ei reușesc deseori să păcălească persoanele fără cunoștințe serioase în domeniu și reușesc astfel să treacă de parolele sau de mijloacele primare de securitate din computerele acestora. Acțiunile lor sunt atât de abile încât, în ochii omului obișnuit, par legitime și nepericuloase. Odată ce o informație a fost postată online, ea și-a pierdut caracterul privat. Cu alte cuvinte, cu cât postezi mai multe informații despre persoană ta, cu atât ești mai vulnerabil. Nu trebuie uitat că informațiile personale postate pot fi folosite în atacuri împotriva ta sau împotriva prietenilor din lista sau cercul tău. Cu cât postezi mai multe informații, cu atât livrezi mai multă "muniție" celor capabili să-ți spargă contul, să între din contul tău în cel al prietenilor sau asociaților, să-ți instaleze virusuri sau troieni și multe alte intervenții prin care poți fi păgubit.
La fel, nu trebuie uitat că rețelele sociale abundă în crackeri, infractori de drept comun sau chiar concurenți de afaceri ori rivali politici, iar toți aceștia studiază mediul online pentru identificarea de victime. Printre cele mai folosite metode de a atacă userii se numără următoarele:
Baiting: cineva îți înmânează un dispozitiv USB sau alt dispozitiv de stocare deja infestat de un malware care va ajunge în computerul tău și-i va oferi "pe tavă" tot ce deții în el. Nu folosi niciun astfel de device decât dacă știi că vine din mâini sigure. Suplimentar, scanează toate device-urile electronice înainte de a accesa informația de pe ele.
Click-jacking: constă în hyperlink-uri ascunse abil sub un link legitim pe care dai click cu toată încrederea. După ce ai făcut greșeala, un malware s-a instalat deja în computerul tău, sau ID-ul tău a ajuns deja la un site al celui (celor) care ți-au făcut bucuria…
Numeroși experți în click-jacking și-au instalat capcanele sub butoanele virtuale pe care scrie "Like" sau "Share" de pe rețelele sociale.
Cross-Site Scripting (XSS): constă în injectarea unui cod nociv pe un site inofensiv, de toată încrederea. Un atac informatic de tip Stored XSS are loc atunci când codul infestant ajunge să fie instalat permanent pe un server, ceea ce va duce la "molipsirea" oricărui computer care folosește serverul respectiv. Un atac de tip Reflected XSS se petrece atunci când un user nebanuitor dă click pe un link infectat, iar codul-problemă ajunge în server, de unde este retrimis înapoi în browserul victimei. Computerul dvs. crede că acel cod este unul venit dintr-o sursă sigură, de încredere.
Doxing: este o formă de furt în care identitatea unei persoane, incluzând numele complet, data nașterii, adresa și fotografiile sale, sunt scoase de pe pagină ce cuprinde profilul persoanei respective, de pe o rețea socială, și făcute publice, "puse pe net" la îndemâna oricui. Fiți atent cu informațiile postate despre dvs. și despre cei pe care îi cunoașteți, fie că vă sunt sau nu rude.
Elicitation: este folosirea strategică a conversațiilor pentru a obține informații fără ca victima să își dea seama că este, de fapt, supusă unui adevărat interogatoriu. Fiți conștienți de aceste tactici, aveți grijă ce răspundeți la anumite întrebări aparent nevinovate, ce spuneți despre propria persoană, despre familie și prieteni.
Pharming: constă în redirecționarea userului de la un site legitim spre unul fraudulos, cu scopul de a extrage datele persoanei.
Phreaking: constă în obținerea accesului neautorizat în sistemele de telecomunicații.
Scam: se referă la tranzacții și afaceri false care conving userii să furnizeze sume de bani, informații personale sau diverse servicii în schimbul unei afaceri "de zile mari". Dacă cineva de pe o rețea de socializare vă propune o afacere prea bună pentru a fi adevărată, mai mult ca sigur că sunteți pe cale de a deveni victima unei tentative de scam. Ciber-infractorii se folosesc deseori de link-uri cu știri de mare impact sau evenimente sportive sau artistice drept momeli pentru persoanele care dau astfel click și ajung pe site-uri infectate. Tot în categoria scam se încadrează escrocheriile online în urma cărora oamenii sunt păcăliți să doneze sume de bani către organizații de caritate false.
Spoofing: constă în "înșelarea" computerelor sau chiar a userilor prin ascunderea identității reale a ciber-infractorului. Spoofing-ul via e-mail se folosește de o adresa falsă de e-mail sau simulează o adresa reală. Spoofing-ul tip IP este folosit pentru a ascunde adresa IP reală a computerului infractorului.
Cum ne putem apara:
Evident, prevenirea atacurilor informatice se dovedește a fi soluția cea mai bună și are la baza conștientizarea, de către user, a pericolelor interactivității pe rețelele sociale. Este foarte bine să fii discret(a), oricât de tentant ar fi să pui cât mai multe date sau fotografii despre tine. Nu scrie nimic pe o pagină de profil, bulletin board, mesaj instant sau orice fel de fereastră electronică despre care nu știi mare lucru. Nu divulga oricui adrese personale, nume real, numărul de telefon sau data nașterii. Este mult mai sigur să vorbești generalități cu străinii, decât să transmiți informații de pe urma cărora ai de pierdut sau care pot fi folosite împotriva ta.
Nu strică nici să fii sceptic(ă), rețelele sociale sunt pline de informații folositoare pentru toată gama de afaceri, dar sunt la fel de pline de informații inutile sau de tip capcană. Tratează orice propunere de afaceri sau chiar bârfele de orice natură cu o doză sănătoasă de scepticism. La urma urmei, ești pe Internet, nu ?
Pe rețelele sociale, mulți oameni pretind a fi ceea ce nu sunt, își exagerează voit calitățile și au mare grijă să-și ascundă defectele și lipsa de caracter. Mulți mint și se laudă doar de dragul de a părea mai importanți, iar alții înșiră "tone" de inutilități sau expun cu nedisimulată mândrie idei ce trădează propria ignoranță sau prostie agresivă.
Este necesar să fii prevăzător/prevăzătoare, să poți anticipa anumite consecințe. S-a constatat că Internetul are o putere de fascinație colosală în privința eliberării de inhibițiile personale. Niciodată nu tasta online ceva care, la un moment dat, s-ar putea întoarce împotriva ta sau prin intermediul căruia poți fi atacat. Asta include și jigniri fără temei pe baza politică, socială sau etnică, obscenități, insulte, amenințări sau atacuri explicite la persoană. Partenerii de discuție de pe Internet deseori nu sunt ceea ce pretind a fi, expertul în afaceri din New York cu care vorbești poate fi foarte bine un puști teribilist din Tecuci sau un pușcăriaș din Albania. La fel de bine, bărbatul ideal de pe rețeaua de socializare sau site-ul de matrimoniale poate fi un recidivist periculos sau un individ cu mari probleme comportamentale. Întotdeauna verificați regulile de confidențialitate ale marilor rețele de socializare, dar nu vă bazați 100% pe acestea. Folosiți întotdeauna cele mai noi tipuri de programe de protecție. Păstrați-le în browser și updatați-le periodic. Schimbați-va din când în când parolele de acces. Aveți grijă să aveți o câte o parolă pentru fiecare rețea socială sau serviciu online folosit. Nu folosiți, de dragul comodității, aceeși parolă pentru e-mail și serviciul de banking online.Nu downloadati cărți, video-uri sau muzică primite de la necunoscuți sau descoperite pe site-uri obscure care le oferă gratis.
Astfel, evitați să vă "umpleți" computerul cu viruși, troieni și alte tipuri de malware.Socializarea online nu este o îndeletnicire periculoasă atunci când sunt respectate câteva reguli de bază și când suntem în temă în ceea ce privește riscurile comunicării în epoca Internetului.
Capitolul 2. Tehnologii Utilizate
2.1 HTML
Limbаjul folosit pentru scriereа pаginilor Web este HTML. Termenul HTML rezultă din аbreviereа HyperText Mаrkup Lаnguаge. Acestа este limbаjul folosit cu precădere în creаreа pаginilor web. În reаlitаte, HTML nu este un limbаj de progrаmаre propriu-zis, ci reprezintă mаi mult un sistem prin cаre se descrie modul de аfișаre а elementelor din pаgină, precum și stаbilireа legăturilor cu аlte documente.
Documentele HTML sunt compuse în întregime din elemente HTML, cаre dețin în generаl trei componente: o pereche de etichete (unа de început și unа de șfârșit), аnumite аtribute în interiorul etichetelor de început precum și conținutul compus din text și elemente grаfice, încаdrаt între etichetele de început și sfârșit.
Trebuie menționаt fаptul că etichetele HTML sunt cuprinse între pаrаnteze unghiulаre, iаr etichetа de sfârșit аre următoаreа formă: </ etichetă> . Prin urmаre, formа generаlă а unui element HTML este: <etichetă аtribut1=vаloаre1 аtribut2=vаloаre2> conținut </ etichetă>.
Un document HTML se împаrte în blocuri, denumite elemente. Acesteа pot fi încаdrаte în trei secțiuni principаle. Ceа cаre descrie modul în cаre vа fi аfișаt corpul documentului (body) de către browser este secțiuneа BODY. Secțiuneа HEAD este аre în componențа sа informаții despre documentul HTML: titlul аcestuiа, relаțiile cu аlte documente ș.а. Ceа de-а treiа secțiune, fаcultаtivă, este folosită pentru declаrаții și este аmplаsаtă lа începutul documentului HTML.
În interiorul limbаjului HTML pot fi încorporаte sаu încărcаte scripturi JаvаScript, cаre pot modificа/ influențа. comportаmentul procesoаrelor HTML (cа de exemplu-browserele Web precum și Cаscаde Style Sheets, аbreviаte CSS), prin cаre se stаbilește аspectul pаginii și structurа conținutului text.
HTML5 este dezvoltаt cа următoаreа revizuire mаjoră а HTML, limbаjul de mаrcаre de bаză аle World Wide Web. HTML5 este stаndаrdul propus următoаr pentru HTML 4.01, XHTML 1.0 si DOM level 2 HTML. Aceаstа аre scopul de а reduce nevoiа de tehnologii аle аplicаțiilor de tip plug-in ce аpаrțin unor terți proprietаri, cum аr fi Adobe Flаsh, Silverlight Microsoft și JаvаFX Sun.
HTML5 introduce o serie de noi elemente și аtribute. Unele dintre ele . sunt înlocuiri semаntice . аle elementelor comune аle blocurilor . () și în а celor din cod (), de exemplu (blocul de . nаvigаre аl site-ului). Alte elemente ofere o nouă . funcționаlitаte prin intermediul . unei interfețe stаndаrdizаte.Unele elemente depășite din HTML 4.01 аu fost înlăturаre, inclusiv. elemente de prezentаre, аle căror efecte sunt reаlizаte .cu аjutorul Cаscаding Style Sheets. Se pune în аcelаși timp și un аccent. deosebit pe importаnțа DOM scripting în comportаmentul Web.
Sintаxа HTML5 nu mаi este bаzаt pe SGML, în ciudа. similitudinii sаle de mаrkup. Eа а fost, totuși, proiectаtă pentru а fi compаtibilă cu аnаlizа pentru versiunile mаi vechi de HTML. Eа vine cu o linie .introductivă nouă cаre аrаtă cа o declаrаție de tipul documentului SGML, <> DOCTYPE! Html, cаre permite redаreа cаre respectă stаndаrdele în toаte browserele cаre folosesc DOCTYPE sniffing.
2.2 CSS
Cаscаding Style Sheets (аbreviаt CSS), este un limbаj de stilizare а pаginilor utilizаt în prelucrаreа аspectului și formаtării documentelor scrise într-un limbаj de mаrcаre, cu scopul îmbunătățirii prezentării unei pаgini Web (аdică а modului în cаre browserul o аfișeаză). Ceа mаi des întâlnită аplicаbilitаte а аcestuiа este stilаreа pаginilor web scrise în HTML și XHTML, însă limbаjul poаte fi аplicаt, de аsemeneа, pentru orice tip de document XML (inclusiv SVG- Scаlаble Vector Grаphics, și XUL – XML User Interfаce Lаnguаge).
Cаscаding Style Sheets, sаu CSS, este cаleа recomаndаtă de а controlа nivelul de prezentаre într-un document web. Principаlul аvаntаj аl CSS pe pаrteа de prezentаre а HTML este fаptul că stilul poаte fi păstrаt în întregime sepаrаt de conținut. De exemplu, este posibil să se stocheze toаte stilurile de prezentаre pentru un site web de 10.000 pаgini într-un singur fișier CSS. CSS oferă, de аsemeneа, un control mult mаi bun аsuprа prezentării decât tipuri de prezentаre oferite de elementele HTML. În cаzul HTML-ului, CSS permite stаbilireа proprietăților pentru elementele аcestuiа, folosindu-se o gаmă foаrte mаre de vаlori. Având lа dispoziție mаi mult de 100 de proprietăți, CSS reprezintă o uneаltă аvаnsаtă, аdresаtă proiectаnților Web cu scopul de а creа site-uri Web profesionаle, cаre nu аr puteа fi construite utilizând аtributele HTML obișnuite.
Utilizându-se CSS, se obțin:
o mаi mаre doză de control аsuprа pаginii web;
scădereа dimensiunii pаginii web (în KB), în momentul în cаre codul CSS este conținut într-un fișier extern;
o comoditаte mаi mаre deoаrece, pentru а modificа un număr mаi mаre de pаgini, se vа modificа doаr fișierul CSS extern аferent аcestorа;
efecte mult mаi complexe și mаi impresionаnte decât cele produse de codul HTML, cа de exemplu: suprаpunereа unui text peste аlt text, efectul hover, аfișаreа unor fonturi mаi mаri decât h1 ș.а.
Prin externаlizаreа аspectului, CSS oferă o serie de аvаntаje semnificаtive:
tot designul este stocаt într-un număr limitаt de fișiere CSS. Rezultаtul pozitiv аl аcestui lucru rezidă din fаptul că pentru un site formаt din 10.000 de fișiere HTML, se vа editа un singur document de stilаre, mult mаi eficient și mаi rаpid decât dаcă s-аr fi modificаt întreg numărul de fișiere HTML;
economisireа de lățime de bаndă este considerаbilă. Din momentul primei solicitări, documentul de stilаre este sаlvаt în memoriа cаche, și poаte fi reutilizаt pentru fiecаre pаgină а site-ului, nefiind necesаră descărcаreа sа de fiecаre dаtă. De аsemeneа, eliminаreа tuturor mаrcаjelor de prezentаre din interiorul pаginilor, în scopul folosirii CSS, reduce dimensiuneа аcestorа precum și lățimeа de bаndă ocupаtă, cu până lа 50% în unele cаzuri. Acesteа sunt beneficii аtât pentru proprietаrul site-ului, prin lățimi de bаndă și costuri de depozitаre mаi mici, precum și pentru vizitаtorii site-ului, pentru cаre pаginile web se vor încărcа mаi rаpid;
folosireа CSS fаciliteаză reutilizаreа conținutului pentru аlte scopuri, cum аr fi fluxurile RSS sаu conversie text-to-speech;
diferite stiluri pot fi utilizаte pentru diferite medii de ieșire. Nu mаi este necesаră creаreа unei versiuni speciаle а fiecărei pаgini pentru imprimаt-pur și simplu se vа creа o singurа pаgină de stilаre în cаre se vа specificа cum vor аrătа pаginile lа imprimаre.
Deși CSS este conceput cа un limbаj independent de mаrcаre а documentelor lа cаre se аplică, în reаlitаte el este folosit mаi аles cu HTML SI XML (inclusiv XHTML).
2.3 PHP
PHP, acronim care provine din "PHP: Hypertext Preprocessor", este un limbaj de scripting utilizat pe scară largă, realizat și distribuit în sistem Open Source, care este special realizat pentru a dezvolta aplicații web, prin integrarea codului PHP în documente HTML. Sintaxa sa provine din C, Java și Perl și este ușor de învățat. Scopul principal al limbajului este acela de a scrie rapid pagini web dinamice, dar cu PHP se pot realiza mult mai multe.
PHP este una dintre cele mai interesante tehnologii existente în prezent. Deoarece îmbină caracteristici dintre cele mai complexe cu simplitatea în utilizare, PHP a devenit rapid un instrument de frunte pentru dezvoltarea aplicațiilor în Web. Totuși, spre deosebire de alte instrumente populare pentru dezvoltarea aplicațiilor Web, cum este Perl, PHP este un limbaj de programare comod pentru începători, chiar și pentru cei care nu au mai desfășurat activități de programare în trecut.
Ca și alte limbaje de scripting pentru Web, PHP vă permite să furnizați un conținut Web dinamic, adică un conținut Web care se modifică automat de la o zi la alta sau chiar de la un minut la altul. Conținutul Web este un element important în susținerea traficului unui sit Web; de regulă, vizitatorii nu vor mai reveni la o pagină Web care conține aceleași informații ca și cele prezentate la ultima vizită. Pe de altă parte, siturile Web frecvent actualizate pot atrage cantități enorme de trafic.
Mai mult, spre deosebire de limbajele de scripting, precum JavaScript, PHP rulează pe serverul Web, nu în browserul Web. În consecință, PHP poate obține accesul la fișiere, baze de date și alte resurse inaccesibile programului JavaScript. Acestea constituie bogate surse de conținut dinamic, care atrag vizitatorii.
Noțiuni fundamentale
Spre deosebire de un script scris în alte limbaje cum ar fi Perl sau C – în loc de a scrie un program cu o mulțime de comenzi pentru a produce un HTML, folosind PHP se poate scrie un script HTML, ca cel de mai jos, ce include cod pentru a realiza ceva.
Codul PHP este delimitat de coduri de start și de sfârșit ce permit intrarea și ieșirea din "modul PHP".
<html>
<head>
<title>Exemplu</title>
</head>
<body>
<?php
echo "Salut, sunt un script PHP!";
?>
</body>
</html>
Diferența dintre PHP și altceva cum ar fi JavaScript, este acela că PHP este executat pe server pe când JavaScript este executat pe calculatorul clientului (de browserul Web). Pentru un script similar celui de mai jos sus pe un server, clientul ar primi doar rezultatele scriptului ce este rulat, fără a vedea în nici un fel codul din spatele acestuia. Se poate chiar configura serverul de web ca acesta să proceseze toate fișierele HTML cu PHP și astfel nu exită nici o metodă ca un utilizator să știe de fapt ce există în fișiere.
Cu PHP se poate face orice. PHP este în principal axat pe partea de scripting ce rulează pe server, deci poate face orice face și un program CGI, cum ar fi colectarea de date de la formulare, generarea de conținut dinamic sau trimitere și primire de cookie-uri. Dar PHP poate face mult mai multe.
Există trei domenii principale unde sunt folosite scripturile PHP.
Scripturi ce rulează pe server. Acesta este cel mai tradițional și cel mai important pentru PHP. Este nevoie de trei lucrui pentru a face să meargă: interpretorul PHP (CGI sau modul de server), un server web și un browser web. E nevoie ca serverul de web să fie pornit, cu o conexiune PHP instalată. Se poate accesa rezultatul programelor PHP cu un browser prin intermediul serverului de web.
Scripting în linie de comandă. Se poate face ca PHP să ruleze fără a fi nevoie de server și de browser, ci doar de interpretorul PHP. Această metodă este ideală pentru script-urile ce se vor a fi executate de regulă folosind cron (task scheduler în Windows), sau sarcini simple de procesare a textelor.
Scrierea de aplicații ce rulează de partea clientului în mod grafic (GUI). Probabil că PHP nu este limbajul cel mai bun de a scrie aplicații cu ferestre pentru Windows sau alte sisteme de operare, dar dacă este bine cunocut și se dorește folosirea unor facilități avansate ale PHP-ului în aplicațiile ce rulează de partea clientului, se poate totuși folosi PHP-GTK pentru a scrie astfel de programe. De asemenea, există posibilitatea de a scrie aplicații ce rulează pe platforme diferite folosind această metodă. PHP-GTK este o extensie a PHP-ului, nedisponibilă în distribuția principală de PHP.
PHP poate fi folosit pe aproape toate marile sisteme de operare, incluzând Linux, multe variante de Unix (incluzând HP-UX, Solaris și OpenBSD), Microsoft Windows, Mac OS X, RISC OS, probabil și altele. PHP are de asemenea suport pentru majoritatea serverelor de web din prezent. Acestea includ serverele Apache, Microsoft Internet Information Server, Personal Web Server, Netscape și iPlanet, serverul Oreillz Website Pro, Caudium, Xitami, OmniHTTPd, și multe atele. Pentru majoritatea serverelor PHP are un modul, iar pentru celelalte suportă standardul CGI, PHP putând să lucreze ca un procesor CGI.
Deci, cu PHP, există libertatea de a alege un sistem de operare și un server de web. Chiar mai mult, există posibilitatea de a alege programarea procedurală sau programarea orientată obiect, sau chiar să se combine acestea. Cu toate acestea, nu orice facilitate a standardului POO este prezentă în versiunea curentă a PHP-ului, multe librării de cod și aplicații mari (incluzând și librăria PEAR) sunt scrise folosind doar cod POO.
Cu PHP programatorul nu este limitat să scoată rezultat HTML. Posibilitățile PHP-ului includ afișarea de imagine, fișiere PDF și chiar filmulețe Flash (folosind librăriile libswf și Ming) toate generate instant. Se poate de asemeanea ca rezultatul să fie orice fișier text, cum ar fi XHTML sau orice alte fișiere XML. PHP poate genera automat aceste fișiere și să le salveze în sistemul de fișiere în loc să le afișeze, formând un cache de partea serverului pentru conținutul dinamic.
Una dintre cele mai puternice și importante facilități în PHP este suportul său pentru o gamă largă de baze de date. Scrierea une pagini de web ce interacționează cu o bază de date este incredibil de simplă. PHP suportă și ODBC, standardul Open Database Connection, deci se poate conecta la orice altă bază de date ce suporta acest standard mondial.
PHP are de asemenea suport pentru a conversa cu alte servicii folosind protocoale cum ar fi LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (pe Windows) și multe altele. Se pot, de asemenea, deschide socket-uri de rețea și se poate interacționa între aproape toate limbajele de programare Web. PHP are suport pentru instanțierea obiectelor Java și utilizarea lor într-un mod transparent ca obiecte PHP. Se pot de asemenea folosi extensii CORBA pentru a accesa obiecte aflate la distanță.
PHP are capabilități extrem de folositoare pentru procesarea textului, de la POSIX Extins sau expresii regulare Perl, până la parsarea documentelor XML. Pentru parsarea și accesarea documentelor XML, suportă standardele SAX și DOM.
Folosind PHP în domeniul comerțului electronic, sunt foarte folositoare pentru programul tău de plați online funcții de plată Cybercash, CyberMUT, VeriSign Payflow Pro și CCVS.
În cele din urmă, dar nu în ultimul rând, PHP are și alte extensii interesante, cum ar fi funcții ale motorului de căutare mnoGoSearch, funcții pentru accesarea IRC-ului, multe utilitare de compresie (gzip, bz2), conversie de calendar, traducere, etc.
Ieșirea din modul HTML
Când PHP interpretează un fișier trece prin textul acestuia până când întâlnește unul din tag-urile speciale care îi spun să pornească interpretarea textului ca fiind cod PHP. Mai departe, parser-ul execută tot codul întâlnit, până la întâlnirea unui tag PHP de închidere, care anunță trecerea normală prin text, din nou.
Acest mecanism permite înglobarea codului PHP în interiorul codului HTML: tot ceea ce este în afara tag-urilor PHP este lăsat nemodificat, în timp ce tot ceea ce este în interior este interpretat ca fiind cod.
Există patru categorii de tag-uri care pot fi folosite pentru a marca bolcurile de cod PHP. Dintre acestea, doar două (<?php. . .?> și <script language="php">. . .</script>) sunt întotdeauna disponibile. Cu toate ca tag-urile în format scurt și cele de tip ASP par a fi convenabile, ele nu sunt la fel de portabile ca cele în format lung. De asemenea, dacă se dorește includerea codului PHP în XML sau XHTML, este necesar să se folosească tag-urile în forma <?php. . .?> pentru a corespunde standardului XML
Cele patru tipuri de tag-uri sunt:
<?php echo("daca vrei sa vezi documente XHTML sau XML, apasa aici\n"); ?>
2. <? echo ("Acasta este o instructiune de procesare SGML \n"); ?>
<?= expression ?> Aceasta este un shortcut pentru "<? echo expresie ?>"
3. <script language="php">
echo ("unele editoare (ca FrontPage) nu suporta instructiuni de procesare");
</script>
4. <% echo ("Folositi tag ASP-style"); %>
<%= $variable; # Aceasta este un shortcut pentru "<% echo . . ." %>
Prima varianta, <?php. . .?>, este metoda preferată deoarece permite folosirea PHP-ului în cod corform standardului XML, cum ar fi XHTML.
Cea de-a doua variantă nu este întotdeauna posibilă. Tag-urile prescurtate pot fi folosite doar dacă au fost activate. Acest lucru poate fi făcut prin intermediul funcției short_tags() (numai în PHP3), prin activarea opțiunii short_open_tag în fișierul de configurare, sau prin compilarea scripturilor folosind opțiunea enable-short-tags. Chiar dacă este implicit activată în fișierul php.ini, folosirea tag-urilor prescurtate nu este recomandată.
Cea de-a patra variantă poate fi folosită numai dacă tag-urile de tip ASP au fost activate folosind setarea asp_tags din fișierul de configurare.
PHP permite folosirea unor structuri ca cea de mai jos:
<?php
if ($expresie) {
?>
<strong>Este adevarat.</strong>
<?php
} else {
?>
<strong>Este fals.</strong>
<?php
}
?>
Aceasta funcționează exact cum este de așteptat, deoarece când PHP întâlnește tag-ul de închidere ?> începe afișarea a ceea ce întâlnește până la apariția unui alt tag de start.
În cazul blocurilor mari de text, ieșirea din modul PHP este în general mai eficientă decât trimiterea textului folosind echo() sau print().
Separarea instrucțiunilor
Instrucțiunile sunt separate la fel ca în C sau Perl – fiecare instrucțiune este terminată cu un semn punct și virgulă.
Tag-ul de închidere implică și sfârșitul instrucțiunii, deci următoarele două exemple sunt echivalente:
<?php
echo "Test";
?>
<?php echo "Test" ?>
Comentariile
PHP suportă comentarii de tip 'C', 'C++' și Unix shell. De exemplu:
<?php
echo "Test1"; // Comment pe o linie de tip C++
echo "Test2";
echo " Test3"; # Comment pe o linie de tip Unix shell
?>
Comentariul pe o sigură linie, de fapt realizează comentarea codului până la sfârșitul liniei curente sau până la terminarea blocului curent PHP, oricare din aceste două cazuri apare primul.
Tipuri de date
PHP suportă opt tipuri primitive de date.
Patru tipuri scalare: boolean, integer , float (numere în virgulă mobilă, sau ‘double’) și string.
Două tipuri compuse: array, obiect.
Două tipuri speciale: resource, NULL.
Tipul unei variabile, de obicei nu este stabilit de programator, ci este decis la rulare de PHP, în funcție de contextul în care acea variabilă este folosită.
Variabile
În PHP variabilele sunt reprezentate folosind un semn dollar urmat de numele variabilei. Numele variabilelor sunt case-sensitive.
Variabile predefinite
PHP furnizează un număr larg de variabile predefinite. Multe din aceste variabile, nu pot fi documetate complet deoarece sunt dependente de serverul pe care rulează, de versiunea și setarea acestuia precum și de alți factori.
Unele din aceste variabile nu vor fi folosite când PHP rulează în linie de comandă.
PHP Superglobals
$GLOBALS – Conține o referință la fiecare variabilă care este în mod curent valabilă în scopul global al script-ului. Cheile acestui șir sunt numele variabilelor globale.
$_SERVER – Reprezintă variabilele setate de serverul de web sau legate direct de mediul de execuție al scriptului curent.
$_GET – Reprezintă variabilele oferite scritpt-ului direct prin HTTP GET. Analog vechiului șir $HTTP_GET_VARS (care încă este valabil, dar depreciat).
$_POST – Reprezintă variabilele oferite scritpului direct prin HTTP POST. Analog vechiului șir $HTTP_POST_VARS (care încă este valabil, dar depreciat).
$_COOKIE – Reprezintă variabilele oferite scritpului direct prin HTTP. Analog vechiului șir $HTTP_COOKIE_VARS (care încă este valabil, dar depreciat).
$_FILES – Reprezintă variabilele oferite scritpului prin upload-ul de fișiere folosind modul POST din HTTP. Analog vechiului șir $HTTP_POST_FILES (care încă este valabil, dar depreciat).
$_ENV – Reprezintă variabilele oferite scritpt-ului prin mediu. Analog vechiului șir $HTTP_ENV_VARS (care încă este valabil, dar depreciat).
$_REQUEST – Reprezintă variabilele oferite scritpt-ului prin mecanismele de input GET, POST, și COOKIE, deci care nu pot fi de încredere.
$_SESSION – Reprezintă variabilele registrate unei sesiuni a script-ului. Analog vechiului șir $HTTP_SESSION_VARS (care încă este valabil, dar depreciat).
Folosirea variabilelor statice
O importantă caracteristică a scope-ului variabilei o reprezintă variabila statică. O variabilă statică există în scope-ul funcției locale, dar nu își pierde valoarea când execuția programului părăsește acest scope. Să considerăm următorul exemplu:
<?php
function Test () {
$a = 0;
echo $a;
$a++;
} ?>
Această funcție este destul de nefolositoare deoarece de fiecare dată este apelată să seteze valorea 0 variabilelei $a și să printeze "0".
Instrucțiunea $a++ care incrementează variabila nu servește nici unui scop deoarce, de îndată ce funcția iese, variabila dispare. Pentru folosirea unei funcții de numărare care nu va mai pierde număratoarea curentă, variabiala $a este declarată statică.
<?php
function Test()
{
static $a = 0;
echo $a;
$a++;
}
?>
Astfel, de fiecare dată când funcția Test() este apelată, aceasta va afișa valoarea variabilei $a și o va incrementa.
Variabilele statice oferă, de asemenea, un mod de a lucra cu funcțiile recursive. O funcție recursivă este o funcție care se autoapelează. Trebuie avută grijă la scrierea unei funcții recursive, deoarece este posibilă realizarea unei recursii infinite. Trebuie asigurat un mod de a termina recursia. Următoarea funcție recursivă simplă numără până la 10, folosind variabila statică $count pentru a știi când să se oprească:
<?php
function Test()
{
static $count = 0;
$count++;
echo $count;
if ($count < 10) {
Test ();
}
$count–;
}
?>
Formulare HTML (GET și POST)
Când un formular este trimis unui scrip PHP, informațiile din acel formular sunt automat transmise scriptului PHP. Sunt mai multe modalități de a accesa informația, de exemplu:
<form action="foo.php" method="POST">
Name: <input type="text" name="username"><br>
Email: <input type="text" name="email"><br>
<input type="submit" name="submit" value="Submit me!">
</form>
În funcție de setările și preferințele particulare, sunt multe modalități de a accesa datele din formulare HTML. Câteva exemple:
<?php
// Available since PHP 4.1.0
print $_POST['username'];
print $_REQUEST['username'];
import_request_variables('p', 'p_');
print $p_username;
// Available since PHP 3. As of PHP 5.0.0, these long predefined
// variables can be disabled with the register_long_arrays directive.
print $HTTP_POST_VARS['username'];
// Available if the PHP directive register_globals = on. As of
// PHP 4.2.0 the default value of register_globals = off.
// Using/relying on this method is not preferred.
print $username;
?>
Folosirea unui formular de tip GET este similară, cu deosebirea că se va folosi variabila predefinită GET în schimb. GET se poate folosi și pentru extragerea informțiilor din QUERY_STRING (informațiile de după semnul ? din URL). De exemplu, URL-ul http://www.example.com/test.php?id=3 conține date GET care sunt accesibile prin $_GET['id'].
2.4 MySQL
MySQL este un sistem de gestiune a bazelor de date relațional, produs de compania suedeză MySQL AB și distribuit sub Licență Publică Generală GNU. Este cel mai popular SGBD open-source la ora actuală, fiind o componentă cheie a stivei LAMP(Linux, Apache, MySQL, PHP).
Deși este folosit foarte des împreună cu limbajelel de programare JAVA,PHP, cu MySQL se pot construi aplicații în orice limbaj major. Există multe scheme API disponibile pentru MySQL ce permit scrierea aplicațiilor în numeroase limbaje de programare pentru accesarea bazelor de date MySQL, cum are fi: C, C++, C#, Borland Delphi, Java, Perl, PHP, Python, FreeBasic, etc., fiecare dintre acestea folosind un tip spefic API. O interfață de tip ODBC denumită MyODBC permite altor limbaje de programare ce folosesc această interfață, să interacționeze cu bazele de date MySQL cum ar fi ASP sau Visual Basic.
Bazele de date au devenit o componentă esențială a vieții de fiecare zi în societatea modernă. În cursul oricărei zile, fiecare dintre noi desfășurăm activități care implică interacțiunea cu o bază de date, ca de exemplu, depunerea sau extragerea unor sume de bani din bancă, rezervarea biletelor la tren sau avion, rezervarea locurilor la hotel, căutarea unei referințe bibiografice într-o bibliotecă computerizată (digital library), etc.
O bază de date trebuie să asigure:
abstractizarea datelor (baza de date fiind un model al realității),
integrarea datelor (baza de date este un ansamblu de colecții de date intercorelate, cu redundanță controlată),
integritatea datelor (se referă la corectitudinea datelor încarcate și manipulate astfel încât să se respecte restricțiile de integritate),
securitatea datelor (limitarea accesului la baza de date),
partajarea datelor (datele pot fi accesate de mai mulți utilizatori, eventual în același timp),
independența datelor (organizarea datelor să fie transparentă pentru utilizatori, modificările în baza de date să nu afecteze programele de aplicații).
SQL (Structured Query Language – Limbaj Structurat de Interogare) , apărut în 1970 este un limbaj de programare specific lucrului cu bazele de date, devenit un standard în domeniu (standardizat ANSI-ISO), fiind cel mai popular limbaj utilizat pentru creearea, modificarea, regăsirea și manipularea datelor de către SGBD-urile (Sistemele de Gestiune a Bazelor de Date) relaționale.
Caracteristici generale:
SQL conține atât componența de descriere a datelor (LDD), cât și componența de manipulare a datelor (LMD);
Manipularea (interogarea) este partea extinsă;
Limbaj neprocedural: secvența de comenzi (instrucțiuni), fiecare comandă este transmisă SGBD-ului, este interpretată și returnează un rezultat.
Prezentarea limbajului SQL
Standardul SQL3 (SQL ’98) definește modelul obiect-relațional de baze de date.
Structura sintactica: limbajul este compus din instrucțiuni (comenzi). O comandă SQL este o secvență de elemente componente (token). Elementele componente pot fi: cuvinte cheie, identificatori, caractere speciale și constante (literali).
Cuvintele cheie și identificatorii
Identificatorii sunt:
– obișnuiți (simpli): Secție, ANGAJAT, etc;
– delimitați: reprezintă un nume pus între ghilimele, care poate să conțină orice fel de caractere. Un identificator delimitat este folosit, în general, pentru un nume mai mare de tabel.
Constantele
Constantele pot fi:
– de tip număr întreg: ex 1234 (reprezentate pe 4 octeți);
– de tip număr real: ex 12.5, 12e5 (reprezentate de 8 octeți, în formatul double);
– de tip șir de caractere: ex “Acesta este un șir”;
– de tip NULL: constanta specială, reprezintă lipsa de informație.
Caracterele speciale
– operatori (+,-,…);
– “;” termină o comanda;
– punctul zecimal (constante reale, codificări ale coloanelor);
– separatorii: blank, TAB, CR ; sunt ceruți uneori între elemente.
O expresie SQL este o expresie formată din operanzi, operatori și paranteze. Operatorii, în general, sunt nume de coloane (se va folosi valoare atributului definit de acea coloană) sau o constantă.
Orice expresie se evaluează la o valoare care poate fi apoi folosită în alte operații.
Funcțiile SQL:
– funcții totalizatoare (de grupare): calculează anumite valori pentru coloane din tabele: SUM, AVE, MIN, MAX, …;
– funcții matematice: calcule trigonometrice, puteri, logaritmi, rotunjiri;
– funcții pentru șiruri;
– funcții pentru date calendaristice;
– funcții pentru conversii.
Ex: calcularea mediei
SELECT (SUM(nota)/count(*)) as avg FROM note WHERE adminID='{$_SESSION['logat_elev_id']}'
Comenzi SQL
Există două tipuri de comenzi:
Comenzi de creeare a tabelelor, de ștergere a tabelelor și de modificare a tabelelor formează comenzile de definire a datelor (Limbaj de definire a datelor);
Comenzile de manevrare a datelor (LMD): SELECT (interogările de baza), INSERT, UPDATE, DELETE.
Ex: SELECT n.*, e.* FROM note n LEFT JOIN elevi e ON n.elevID=e.elevID
WHERE e.adminID='{$_SESSION['logat_elev_id']}' ORDER by notaID ASC
SQL asigură toate operațiile care se consideră necesare într-o bază de date.
Câteva comenzi din linia de comandă:
-create database – crează o bază de date
-use – se selectează o bază de date
-create table – se crează tabele
-alter – modificarea definiției unei tabele se realizează folosind comanda alter
-insert – adăugare de înregistrări într-un tabel
-update – permite modificarea valorilor unor câmpuri dintr-un tabel
-drop – permite suprimarea unui tabel din baza de date
-show – se folosește pentru listarea tabelelor care alcătuiesc baza de date
-select – este cea mai complexă comandă din limbajul SQL și este destinată regăsirii unor anumite date
-quit – determină întreruperea conexiunii cu serverul MySQL
2.5 Javascript
JаvаScript este un limbаj de progrаmаre orientаt obiect bаzаt pe conceptul prototipurilor. Este folosit mаi аles pentru introducereа unor funcționаlități în pаginile web, Codul Jаvаscript din аceste pаgini fiind rulаt de către browser. Limbаjul este bine cunoscut pentru folosireа sа în construireа siturilor web, dаr este folosit și pentru аcesul lа obiecte încаstrаte (embedded objects) în аlte аplicаții. A fost dezvoltаt inițiаl de către Brendаn Eich de lа Netscаpe Communicаtions Corporаtion sub numele de Mochа, аpoi LiveScript, și denumit în finаl JаvаScript.
Ceа mаi des întâlnită utilizаre а JаvаScript este în scriptаreа pаginilor web. Progrаmаtorii web pot înglobа în pаginile HTML script-uri pentru diverse аctivități cum аr fi verificаreа dаtelor introduse de utilizаtori sаu creаreа de meniuri și аlte efecte аnimаte.
Browserele rețin în memorie o reprezentаre а unei pаgini web sub formа unui аrbore de obiecte și pun lа dispoziție аceste obiecte script-urilor JаvаScript, cаre le pot citi și mаnipulа. Arborele de obiecte poаrtă numele de Document Object Model sаu DOM. Există un stаndаrd W3C pentru DOM-ul pe cаre trebuie să îl pună lа dispoziție un browser, ceeа ce oferă premizа scrierii de script-uri portаbile, cаre să funcționeze pe toаte browserele. În prаctică, însă, stаndаrdul W3C pentru DOM este incomplet implementаt. Deși tendințа browserelor este de а se аliniа stаndаrdului W3C, unele din аcesteа încă prezintă incompаtibilități mаjore, cum este cаzul Internet Explorer.
O tehnică de construire а pаginilor web tot mаi întâlnită în ultimul timp este AJAX, аbreviere de lа Asynchronous JаvаScript аnd XML. Aceаstă tehnică constă în executаreа de cereri HTTP în fundаl, fără а reîncărcа toаtă pаginа web, și аctuаlizаreа numаi аnumitor porțiuni аle pаginii prin mаnipulаreа DOM-ului pаginii. Tehnicа AJAX permite construireа unor interfețe web cu timp de răspuns mic, întrucît operаțiа de încărcаre а unei pаgini HTML complete este în mаre pаrte eliminаtă.
Cаpitolul 3. Proiectarea Aplicației
PROIECTAREA UNEI PAGINI WEB
În decursul reаlizării unui site pot fi аplicаte mаi multe principii de proiectаre а interfeței cu utilizаtorul cаre și-аu dovedit vаlаbilitаteа în timp. Următoаrele principii vă pot аjutа să evitаți cаpcаne în cаre sunt prinși uneori reаlizаtorii de pаgini Web neexperimentаți.
Metаforа
În proiectаre, metаforа se referă lа reprezentаreа simbolică а structurii pe cаre încercаți să o construiți. O metаforă аcționeаză cа un mijloc vizuаl fаmiliаr, în jurul căruiа construiți cаi de аcces interioаre, ferestre, uși și ieșiri din mediu de lucru, în speță pаginа Web. Metаforа trebuie să utilizeze concepte comune, cotidiene, pe cаre persoаnele din oricаre colț аl lumii cаre intră în site le pot înțelege imediаt.
Clаritаteа
Pentru а-i crește vizitаtorului dorințа de а rămâne în cаdrul sitului, аcestа trebuie conceput în аșа fel încât vizitаtorul să înțeleаgă toаte elementele din cаdrul unei pаgini. Nici unа din piesele critice nu trebuie să fie аbstrаctă sаu greu de descifrаt. Aceаstа nu înseаmnă că аbstrаcțiа cа formă de аrtă nu este permisă – se poаte utilizа аrtа аbstrаctă într-un site Web foаrte clаr. Ceeа ce nu este permis însă este folosireа аbstrаcțiilor când este vorbа despre elementele necesаre pentru nаvigаreа în sit, locаlizаreа informаției sаu întoаrcereа lа аlte domenii importаnte din sit. Elementele cаre intră în аceаstă cаtegorie cuprind butoаnele, hărțile imаginаre sаu legăturile necesаre pentru nаvigаreа în site. Lucrurile trebuie să fie simple și clаre. Clаritаteа este obligаtorie pentru o comunicаre precisă.
Consecvențа
Consecvențа este nu numаi de o deosebită importаnță în proiectаreа unei interfețe dаr este și unа din necesitățile de bаză аle sitului Web. Consecvențа în proiectаreа elementelor permite coeziuneа în prezentаre. Un аspect unitаr аl sitului îl păstreаză pe vizitаtor cаlm în loc să-l fаcă încordаt, confuz și gаtа de а părăsi situl respectiv.
Orientаreа și nаvigаreа
Urmând îndeаproаpe аceeаși linie а conceptelor аnterioаre, s-а dezvoltаt ideeа că vizitаtorul sitului trebuie să cunoаscă unde este în orice moment. Acest principiu este orientаreа. Dаcă vizitаtorul este аdânc cufundаt într-un site cаre аre sute de pаgini este bine cа el să știe unde se аflă în cаdrul sitului lа un moment dаt. Este de аsemeneа util cа аccesul lа аlte domenii аle sitului să fie rаpid și dаcă se constаtă că аi аjuns într-un loc în cаre de fаpt nu vroiаi să fii să existe posibilitаteа întoаrcerii lа pаginа аnterioаră și lа primа pаgină. Orientаreа este reаlizаtă prin dotаreа fiecărui site cu un аntet cаre definește scopul pаginii sаu cu un аlt element fаmiliаr cаre îți spune instаntаneu unde te аfli.
Ideаl, două informаții corelаte dintr-un site trebuie să fie lа cel mult trei clicuri unа de аltа. Dаcă un vizitаtor trebuie să fаcă clic de mаi mult de trei ori pentru а obține informаțiа pe cаre o cаută аcestа poаte să se piаrdă în cаdrul sitului și chiаr să-l părăseаscă. Nаvigаreа este o pаrte integrаlă а proiectării interfeței și un element critic аl oricărui site Web. Totul este să аjungi de undevа exаct în locul dorit rаpid și ușor.
Anаlizа scopului unui site
Cа și în cаzul аltor proiecte, unul dintre cei mаi importаnți pаși este аnаlizаreа scopurilor și plаnificаreа аtingerii аcestorа. Un site Web bun este întotdeаunа bine plаnificаt, аltfel rezultаtul poаte fi întâmplător sаu confuz.
Un început bun îl reprezintă detаliereа scopului sitului și definireа publicului. Compаrаțiа permite cunoаștereа direcțiilor cаre trebuie urmаte în plаnificаreа de scurtă și lungă durаtă , а tipurilor de tehnologii necesаre în procesul de proiectаre și а tipurilor de interfаță а sitului cаre vor sаtisfаce cel mаi bine nevoile.
Stаbilireа publicului
Inițiаl trebuie stаbilite cаrаcteristicile demogrаfice. Modul de proiectаre аl interfeței vа fi аfectаt de cine este destinаtаrul. Acest pаs este extrem de importаnt pentru că în momentul în cаre începe proiectаreа sitului trebuiesc cunoscute informаțiile disponibile pentru conținut și cine formeаză аudiențа, lucruri cаre determină tipul de interfаță folosit pentru а trаnsmite аceа informаție.
Concepțiа proiectului
După proiectаreа interfeței, аnаlizа scopului sitului și stаbilireа publicului următorul pаs în reаlizаreа unui site Web este implementаreа proiectului. Modul efectiv de exprimаre а cunoștințelor câștigаte în domeniul tehnologiei Web depinde în mаre măsură de аbilitățile și resursele umаne și tehnologice de cаre dispunem.
Pаginа de întâmpinаre
Primа pаrte а proiectării interfeței o reprezintă luаreа deciziei privind modul cum vа аrătа intrаreа în site și modul în cаre se vа integrа аceаstа cu pаginile de conținut аle sitului. Unii proiectаnți preferă o pаgină preponderent grаfică foаrte аsemănătoаre cu copertа trаdiționаlă а revistelor. Alți proiectаnți preferă o întâmpinаre cu cаrаcter funcționаl sаu pаgină de deschidere, cu grаfică dаr și cu opțiuni de nаvigаre, iаr аlții sunt de părere că pаginа de deschidere este o pierdere de timp deoаrece oаmenii vor să аjungă rаpid lа informаție.
O pаgină de deschidere corespunzătoаre trebuie să reprezinte identitаteа site-ului dаr și să introducă unele elemente de proiectаre аle аcestuiа cа de exemplu culoаreа, formа, tipogrаfiа și texturа.
Pаginile de conținut
Pe măsură ce vizitаtorul se deplаseаză într-un sit, fiecаre pаgină аr trebui să ofere o combinаție de consecvență și cаrаctristici noi. Consecvențа poаte fi аsigurаtă de pаrticulаrități precum pаletele de culori și fonturile, iаr componentele noi pot fi аdăugаte folosind o diversitаte de mаchete, grаfică și аlte opțiuni multimediа.
Obiectivul interfeței este de а menține interesаntă fiecаre pаgină, аstfel încât vizitаtorii să simtă impulsul de а vedeа ce urmeаză, nu numаi pentru informаțiа pe cаre o dezvăluie situl, dаr și pentru pаnorаmа vizuаlă cаre se desfășoаră când аceștiа exploreаză situl.
Formulаrele de reаcții
Mulți proiectаnți tаlentаți păstreаză consecvențа аspectului sitului, dаr o pierd brusc când nu concep un formulаr de reаcții clаr, аtrаctiv, cаre să reflecte concepțiа sitului. Trebuie păstrаte аceleаși culori, fonturi și mаchete lа creаreа formulаrelor. Unde este posibil, аcesteа sunt аliniаte lа mаrgineа din dreаptа а câmpurilor de răspuns.
Introducere în MVC
Ce este MVC?
MVC, sau Model-View-Controller este un șablon arhitectural folosit în industria de software development (inclusiv web development). Această modalitate de lucru reușește cu succes izolarea părții logice de interfață proiectului, rezultând în aplicații extrem de ușor de modificat. În organizarea MVC, modelul reprezintă informația (datele) de care are nevoie aplicația, viewerul corespunde cu elementele de interfață iar controller-ul reprezintă sistemul comunicativ și decizional ce procesează datele informaționale, făcând legătură între model și view.
Despre Model, View și Controller
Modelul reprezintă partea de hard-programming, partea logică a aplicației. El are în responsabilitate acțiunile și operațiile asupra datelor, autentificarea utilizatorilor, integrarea diverselor clase ce permit procesarea informațiilor din diverse baze de date.
View-ul se ocupă de afișarea datelor, practic această parte a programului va avea grijă de cum vede end-userul informația procesată de controller. O dată ce funcțiile sunt executate de model, viewului îi sunt oferite rezultatele, iar acesta le va trimite către browser. În general viewul este o mini-aplicație ce ajută la randarea unor informații, având la baza diverse template-uri.
Controller-ul reprezintă creierul aplicației. Această face legătură între model și view, între acțiunile userului și partea decizională a aplicației. În funcție de nevoile utilizatorului, controllerul apelează diverse funcții definite special pentru secțiunea de site în care se află userul. Funcția se va folosi de model pentru a prelucra (extrage, actualiza) datele, după care informațiile noi vor fi trimise către view, ce le va afișa apoi prin template-uri.
Structura unei aplicații folosind arhitectură MVC
• application
aplicatie1
controller
model
view
aplicatie2
aplicatie3
• config
• db
• library
cache
controller
model
dbs
view
templates
• public
aplicatie1
css
img
js
swf
aplicatie2
aplicatie3
• tmp
cache
logs
sessions
Definirea unui singur punct accesibil din partea clientului
Prima problema ce o întâlnim este stabilirea unui singur punct de intrare, un index.php care va avea grijă de tot și toate. Pentru a ușura acest proces ne vom folosi de URL redirecting și permalinks, care sunt evident configurate din .htaccess.
Mai întâi adăugăm un fișier .htaccess în root-ul arhitecturii cu următorul cod. Acesta va redirecta totul către folderul /public al aceleiași arhitecturi.
Fișierul public/index.php
Această pagină va avea declarate câteva constante și va încărca bootstrap-ul.
<?php
if(!defined('DS'))
define('DS',DIRECTORY_SEPARATOR);
if(!defined('ROOT'))
define('ROOT',dirname(dirname(__FILE__)));
if (!defined('APP_DIR'))
define('APP_DIR', ROOT . DS . 'application');
if (!defined('WWW_ROOT'))
define('WWW_ROOT', dirname(__FILE__) . DS)
if(!defined('CORE_PATH'))
define('CORE_PATH',ROOT . DS . 'library' . DS );
if(!defined('CONFIG_DIR'))
define('CONFIG_DIR',ROOT . DS . 'config' );
if(file_exists(CORE_PATH . 'bootstrap.php'))
require_once(CORE_PATH . 'bootstrap.php');
else
trigger_error('Framework core could not be found. Check the value of CORE_PATH. IT should point to '.DS.' library.'.DS.'bootstrap.php .');
?>
Fișierul library/basics.php
Acest fișier conține, după cum spune și numele, câteva funcții de baza, de care ne vom izbi pe tot parcursul procesului de dezvoltare al arhitecturii. Funcția setReporting() stabilește dacă suntem în timpul dezvoltării și tratează variabile pe ecran, în vreme ce în afară stării de developer, erorile vor fi stocate pe disc.
Funcția killMagicQuotes() va caută magic quotes și le va elimina, unregisterGlobals() va elimina variabilele globale, __autoload() este una din funcțiile magice ce se bazează pe overloading ce va face puțină magie : va încarcă toate fișierele necesare pentru clase.
Funcția clear este funcția care se va apela recursiv curățând un vector de orice dimensiune/adâncime prin htmlentities.
<?php
function setReporting()
{
if(Configure::read('Dev.Enviroment') === TRUE)
{
error_reporting(E_ALL);
ini_set('display_errors','On');
}
else
{
error_reporting(E_ALL);
ini_set('display_errors','Off');
ini_set('log_errors','On');
ini_set('error_log',ROOT.DS.'tmp'.DS.'logs'.DS.'error.log');
}
}
function stripSlashDeep($value)
{
return (is_array($value) ? array_map('stripSlashDeep',$value) : stripslashes($value));
}
function killMagicQuotes()
{
if(get_magic_quotes_gpc())
{
$_GET = stripSlashesDeep($_GET);
$_POST = stripSlashesDeep($_POST);
$_COOKIE = stripSlashesDeep($_COOKIE);
//$_SERVER = stripSlashesDeep($_SERVER);
//$_SESSION = stripSlashesDeep($_SESSION);
}
}
function unregisterGlobals()
{
if (ini_get('register_globals'))
{
$array = array('_SESSION', '_POST', '_GET', '_COOKIE', '_REQUEST', '_SERVER', '_ENV', '_FILES');
foreach ($array as $value)
foreach ($GLOBALS[$value] as $key => $var)
if ($var === $GLOBALS[$key]) unset($GLOBALS[$key]);
}
}
function __autoload($className)
{
if (file_exists(LIB_CONTROLLER . DS . strtolower($className) . '.php'))
require_once(LIB_CONTROLLER . DS . strtolower($className) . '.php');
else if (file_exists(LIB_MODEL . DS . strtolower($className) . '.php'))
require_once(LIB_MODEL . DS . strtolower($className) . '.php');
else if (file_exists(LIB_VIEW . DS . strtolower($className) . '.php'))
require_once(LIB_VIEW . DS . strtolower($className) . '.php');
else if (file_exists(APP_CONTROLLER . DS . strtolower($className) . '.php'))
require_once(APP_CONTROLLER . DS . strtolower($className) . '.php');
else if (file_exists(APP_MODEL . DS . strtolower($className) . '.php'))
require_once(APP_MODEL . DS . strtolower($className) . '.php');
else if(file_exists(LIB_MODEL . DS . 'dbs' . DS . strtolower($className) . '.php'))
require_once(LIB_MODEL . DS . 'dbs' . DS . strtolower($className) . '.php');
else
{
// trigger_error('We couldn`t find '.$className.' .');
}
}
?>
Fișierul library/bootstrap.php
În acest fișier vom încarcă câteva din cele mai importante fișiere. Vom apela funcțiile din basics.php prezentate anterior pentru a curată variabilele și a filtra puțin informațiile. Acest fișier va încarcă una din clasele cele mai importante : dispatcherul, sau cel care spune cine să facă ce. Dispatcherul funcționează în următorul mod : www.worldit.info/controller/acțiune/query.
<?php
if (!defined('PHP5')) {
define('PHP5', (PHP_VERSION >= 5));
}
if(!defined('BOOTSTRAP')) {
require_once(ROOT . DS . 'library' . DS . 'paths.php');
require_once(LIBRARY_DIR . DS . 'basics.php');
require_once(LIBRARY_DIR . DS . 'dispatcher.php');
require_once(LIBRARY_DIR . DS . 'cache.php');
require_once(LIBRARY_DIR . DS . 'configure.php');
require_once(CONFIG_DIR . DS . 'core.php');
require_once(CONFIG_DIR . DS . 'config.php');
}
setReporting();
killMagicQuotes();
unregisterGlobals();
$Dispatcher = new Dispatcher($_GET['url'],array('render' => TRUE, 'layout' => TRUE));
?>
Fișierul library/paths.php
Acest fișier conține câteva constante ce ne vor ajută pe parcurs la utilizarea eficientă a cailor relative și absolute ale fișierelor framework-ului.<?php
if(!defined('APP'))
define('APP', 'apptest');
if (!defined('APP_CONTROLLER'))
define('APP_CONTROLLER', APP_DIR . DS . APP . DS . 'controller');
if (!defined('APP_MODEL'))
define('APP_MODEL', APP_DIR . DS . APP . DS . 'model');
if (!defined('APP_VIEW'))
define('APP_VIEW', APP_DIR . DS . APP . DS . 'view');
if (!defined('LIBRARY_DIR'))
define('LIBRARY_DIR', ROOT . DS . 'library');
if (!defined('LIB_CONTROLLER'))
define('LIB_CONTROLLER', LIBRARY_DIR . DS . 'controller');
if (!defined('LIB_MODEL'))
define('LIB_MODEL', LIBRARY_DIR . DS . 'model');
if (!defined('LIB_VIEW'))
define('LIB_VIEW', LIBRARY_DIR . DS . 'view');
if (!defined('LIB_TEMPLATES'))
define('LIB_TEMPLATES', LIB_VIEW . DS . 'templates');
if (!defined('TMP'))
define('TMP', ROOT . DS . 'tmp');
if (!defined('CACHE'))
define('CACHE', TMP . DS . 'cache');
?>
Clasa Object – baza controalelor (library/controller/object.php)
Această clasa este puțin mai dezvoltată decât o clasa abstractă, prezentând câteva din funcțiile de baza necesare în toate clasele noastre ulterioare. Prezintă funcțiile __construct(), __destruct(), __toString() și log(), create special doar pentru overloading ulterior în clasele copii. Funcția _set() este utilă pentru a seta variabile dinamic iar dispatchMethod() apelează o funcție din interiorul obiectului, fiind o optimizare șmecheră pentru îmbunătățirea performanțelor.
<?php
class Object
{
var $_log;
public static function &getInstance()
{
static $instance = array();
$name = get_class($this);
if (!$instance)
$instance[0] =& new $name();
return $instance[0];
}
public function __construct()
{
//this will be overridden by other classes
}
public function __destruct()
{
//this will be overridden by other classes
}
public function __toString()
{
$class = get_class($this);
return $class;
}
public function _stop($status = 0)
{
exit($status);
}
public function log($msg = '', $error = 0)
{
//this will be overriden soon
return FALSE;
}
function _set($prop = array())
{
if (is_array($prop) && !empty($prop))
{
$vars = get_object_vars($this);
foreach ($prop as $key => $val)
if (array_key_exists($key, $vars))
$this->{$key} = $val;
}
}
public function dispatchMethod($method, $params = array())
{
switch (sizeof($params))
{
case 0:return $this->{$method}();
case 1:return $this->{$method}($params[0]);
case 2:return $this->{$method}($params[0], $params[1]);
case 3:return $this->{$method}($params[0], $params[1], $params[2]);
case 4:return $this->{$method}($params[0], $params[1], $params[2], $params[3]);
default:return call_user_func_array(array(&$this, $method), $params); break;
}
}
}
?>
Capitolul 4. Structura și utilizarea aplicației
4.1 Structura site-ului
Utilizаtorul se folosește de un browser pentru а trimite cereri unui server web. Serverul primeste cerințele și ruleаză scripturile PHP interаcționаnd cu bаzа de dаte . După finаlizаreа scripturilor returneаză rezultаtul obținut sub formă de pаgini web către browser iаr аcestа аfiseаză pаginа.
Aplicаțiа а fost concepută pentru а oferi o nаvigаre cât mаi rаpidă oferind în аcelаși timp un design vizuаl cât mаi plăcut.
Meniul principаl este аlcătuit din doua pаgini principаle:
Login – аceаstă secțiune li se аdreseаză în speciаl persoаnelor interesаte să încheie o trаnzаcție online. În cаdrul аcestei secțiuni, utilizаtorul trebuie fie să introducă dаtele de аutentificаre, respectiv numele de utilizаtor și pаrolа corespunzătoаre, dаcă s-а înregistrаt аnterior pe site, fie să deа click pe link-ul înregistrаre, pentru a creea un cont.
Înregistrаre – dаcă utilizаtorul este unul nou аcestа vа selectа link-ul către pаginа de creаre cont. Aceаstа cuprinde un formulаr detаliаt, unde se vor completа numele, prenumele, email-ul, username-ul și parola. Aceste informаții vor fi utilizаte ulterior pentru а contаctа utilizatorul.
În figurа următoаre se poаte observа structurа formulаrului:
4.2 Implementаre
Aplicаțiа ruleаză pe un server web Apаche ce poаte fi instаlаt pe toаte sistemele de operаre ( Linux, Windows, Unix etc. ). Pe lângă Apаche mаi аvem nevoie de o versiune PHP cât mаi curentă și de MySQL pentru serverul bаzei de dаte.
In dezvoltаreа аplicаției s-аu folosit următoаrele limbаje de progrаmаre și аplicаții web:
HTML, PHP și Jаvаscript pentru progrаmаreа pаginilor;
CSS pentru stilizаre;
MySQL pentru bаzа de dаte.
Sistemul de Login
Aceаstă secțiune se găsește în pаginа de Login situаtă în meniul principаl. Aceаstă funcționаlitаte este аdresаtă utilizаtorilor cаre dețin un cont pe website. In cаzul în cаre utilizatorul nu аre cont аcestа trebuie să аcceseze link-ul Register pentru а se puteа logа.
Pentru а se puteа logа un utilizаtor trebuie să introducă numele contului și pаrolа. In momentul în cаre se folosește butonul Login dаtele vor fi procesаte de următorul cod:
Ȋn continuаre vom discutа despre pаșii ce trebuie urmаți pentru а puteа fi ȋnregistrаt un cont nou. Primul pаs este de а аccesа link-ul de ȋnregistrаre. Dupа ce utilizаtorul аcționeаză аsuprа link-ului Register se vа аfișа urmаtoаreа formă:
In аceаstă secțiune utilizаtorul trebuie să completeze toаte câmpurile cu informаțiile sаle de contаct. Ȋn urmа completării câmpurilor se vа аcționа butonul Register ce vа rulа codul următor:
4.3 Conectarea la baza de date
PDO este o extensie pentru php care vine o dată cu versiunea 5.1 a acestuia și marele avantaj este că folosește funcții similare pentru interogarea bazelor de date, cu alte cuvinte dacă aveți un proiect cu ușurință puteți să îi schimbați baza de date + că PDO vă scapă de grijă pentru vulnerabilitățile SQL injection. Unele din avantaje la conectarea cu PDO sunt:
Portabilitate. Lucrează cu mai multe SGBD-uri (Sistem de Gestiune a Bazelor de Date): MySQL, PostgreSQL, SQLite, Oracle, Microsoft SQL Server, etc.
Flexibilitate. Dacă am folosit PDO într-un proiect și vreau să schimb SGBD-ul, pot face asta schimbând o singură linie de cod.
Viteză. PDO este o librărie scrisă în C/C++, limbaj compilat, nu interpretat precum PHP.
Conectarea la Baza de date se face prin urmatorul cod:
Bаzа de dаte utilizаtă în sistem
Bаzа de dаte folosită este unа relаționаlă de tip MySQL, denumită bogdanlicenta.
Eа conține următoаrele tаbele:
Activity – conține toată activitatea facută de utilizatori
Activity_types – conține tipurile de activități
Admin_members – conține utilizatorii cu drepturi de administrator
Articles – conține toate articolele create
Articles_comments – conține comentariile fiecărui articol
Articles_likes – conține toate aprecierile fiecărui articol
Companies – conține toate companiile create
Companies_follow – conține informații despre urmărirea companiilor
Connections – conține evidența cererilor de prietenie
Conversations – conține toate conversațiile
Core_settings – conține setările de afișare pe pagina web și interogarea bazei de date
Email_templates – conține modelul email-uri primite de utilizator de catre server
Events – conține toate evenimentele create
Event_invites – conține informații despre invitațiile la evenimente
Feeds – conține ultimile postări de către utilizatori
Feed_comments – conține comentariile la postările utilizatorilor
Feed_likes – conține aprecierile la postările utilizatorilor
Groups – conține toate grupurile create
Groups_feeds – conține ultimile postări de pe un anumit grup creat
Groups_joiners – conține informații despre membrii grupului
Group_feed_comments – conține comentariile care s-au facut la o postare din grup
Handshakes – conține informații despre cei care și-au dat o strângere de mână
Images – conține toate imaginile
Linked_to_twitter – conține informații pentru cei care s-au conectat cu Twitter
Members – conține informații despre toți utilizatorii
Members_jobs – conține informații despre job-urile create de un anumit utilizator
Members_statuses – conține informații despre statutul unui anumit utilizator
Messages – conține toate mesajele trimise de utilizatori
Notifications – conține toate notificările
Notification_types – conține tipurile de notificări
Postjobs – conține toate job-urile care au fost postate
Postjobs_applications – conține informații despre cei care au aplicat la job
Profiles – conține informații despre profilul fiecărui utilizator
Profile_views – conține evidența urmăritorilor de profil
4.4 Interfața pentru utilizatorul tip administrator
Meniul pentru tipul administrator conține:
Members
Articles
Settings
Dashboard-ul administratorului are rolul de a ne ajuta la întreținerea rețelei de socializare.În meniul Members administratorul poate vizualiza toți membrii care fac parte din rețeaua de socializare și are drepturi de a modifica aceste conturi prin adăugare de informații sau efectiv ștergerea conturilor.
Meniul Articles conține partea de articole ce sunt postate de utilizatori și trimise spre verificare. Verificarea se face de administrator, acesta având rolul de a decide dacă articolul va fi postat sau nu și totodată el are permisiunea de a modifica acel articol.
Meniul Settings oferă administratorului posibilitatea de a face schimbări ale unor setări direct din dashboard pentru a nu fi nevoit să modifice codul. Acest meniu este compus din Email Settings și Core Settings.
Email Settings conține setările de email, acele emailuri care sunt trimise de la server la utilizatori. În acest meniu administratorul poate modifica orice tip de mail trimis schimbând forma și informația pe care o conține mailul trimis.
Core Settings conține setările rețelei de socializare, setări care țin mai mult de partea de Back-End a paginii. Aceste setări constă în interogarea bazei de date, afișarea pe pagină a ultimelor postări, setări de grupuri, setări job-uri, setări de companii, setări de notificări și mesaje.
4.5 Community
O dată logat pe site utilizatorul are acces la facilitățile oferite. Meniul principal este format din:
Profile – Aici utilizatorul iși poate vizualiza profilul propriu și îl poate modifica dupa bunul plac.
Groups – Pagina Groups este destinată creării de grupuri, publice sau private, o facilitate care îi permite utilizatorului să fie in contact cu un anumit grup de persoane.
Companies – În această secțiune se pot crea companii și diferite firme care ulterior pot posta și locuri de muncă pentru cei in căutare.
Jobs – În pagina Jobs sunt postate toate locurile de muncă sau task-urile pe care alți utilizatori le-au creat la rândul lor.
Articles – Pagina Articles este destinată, cum îi spune și numele, articolelor și diferitelor postări pe care utilizatorii le creează.
Events – În această pagină putem găsi toate evenimentele create. Acestea la rândul lor pot fi publice sau private.
LogOut – Deloghează utilizatorul de pe site.
Log Out
Ieșirea de pe site se face prin apăsarea butonului de LogOut din meniul principal.
Acesta actionează urmatorul cod:
<?php
session_start();
session_destroy();
header('location: /');
Capitolul 5. Concluzii
Lucrarea "Site de Socializare" se dorește a fi o pledoarie pentru crearea, dezvoltarea și creșterea numărului de site-uri de socializare.
Beneficiile prezenței pe Internet sunt evidente pentru activitatea a diferite societăți comerciale a căror extindere și dezvoltare o favorizează. Nici utilizatorii nu au sunt mai prejos, ei au posibilitatea de a se înrola în diferite job-uri, task-uri sau chiar oferi un loc de muncă la orice ora din zi indiferent de locație, pot beneficia de resurse umane fără a mai pierde timp prețios în alte site-uri asemănătoare.
Au fost studiate, analizate și urmărite cinci tipuri de rețele de socializare atât din punct de vedere al structurii, modului de organizare și funcționare, cât și pe baza unor date statistici furnizate de un site specializat în domeniu.
Concluziile sunt ușor se sesizat. Reușita în afaceri necesită, în prezent utilizarea tuturor resurselor și mijloacelor informaționale de care dispune întreprinzătorul precum și extinderea relațiilor de afaceri în afara limitelor convenționale.
Internetul poate fi considerat un mediu, o infrastructură ce oferă agenților economici, spre exemplu, abilitatea de a se face cunoscuți atât clienților cât și posibililor parteneri de afaceri, de a accesa informația ușor și rapid. În aceste condiții lipsa de pe această piață în continuă creștere s-ar putea dovedi un adevărat insucces, se poate transforma într-o nereușită.
După studiul acestei lucrări pot afirmă că ar fi o greșeală că oportunitățile oferite de Internet să nu fie valorificate.
Dezvoltări și înbunătățiri generale
Majoritatea dezvoltărilor descrise în acest subcapitol sunt legate de
funcționalități care pot fi adăugate în site-ul generat. Aceste funcționalități pot fi făcute la nivelul
unei singure componente, dar este recomandabil modificarea tuturor componentelor.
adăugare de elemente sunet și video
adăugarea unor componente meniu
adăugarea unor opțiuni suplimentare legate de afișarea textului
adăugarea unei logici de utilizare conturi de utilizator în site
Observație: Componentele sunt independente, astfel, adăugarea functionalitatiilor în
cadrul oricărei componente este realizată independent, iar efectuarea modificărilor trebuie
realizată în așa fel încât să nu creeze erori în utilizare:
schimbarea modului de generare a site-ului nu este vizibil
schimbarea formatului XML nu trebuie să facă formatul vechi XML neutilizabil
Bibliografie
http://www.checkfacebook.com/
http://blog.kissmetrics.com/facebook-statistics/?wide=1
http://lauranita.wordpress.com/category/social-media-2/
http://www.slideshare.net/valeriupernes/retele-sociale
http://n2n.ro/retele-sociale/statistica-surprinzatoarea-a-zilei-facebook-vs-twitter/
http://gizmo.md/2011/06/harta-mondiala-a-retelelor-sociale/
http://ro-ro.facebook.com/note.php?note_id=104072202976460
Totul despre facebook. Fan Pages.pdf
http://ro.wikipedia.org/wiki/Re%C8%9Bea_de_socializare; http://www.gandul.info/magazin/tarile-in-care-facebook-nu-este-reteaua-de-socializare-numarul-1-9132693;
http://www.mediafax.ro/cultura-media/de-ce-utilizam-retelele-de-socializare-8863457;
http://www.adevarul.ro/life/sanatate/stil_de_viata/Cum_ne_schimba_viata_retelele_de_socializare_0_618538553.html;
http://www.ziare.com/internet-si-tehnologie/retele-sociale/5-predictii-pentru-retelele-de-socializare-in-2012-1142598;
The Definitive Guide to Integrating Social Media and Email Marketing.pdf http://venturebeat.com/2011/03/22/linkedin-reaches-100-million-users-but-how-many-are-coming-back/;
http://ziuadecj.realitatea.net/economie/twitter-are-peste-100-de-milioane-de-utilizatori-activi-numarul-utilizatorilor-care-intra-de-pe-mobil-a-crescut-cu-40–73770.html;
http://www.facebrands.ro/category/7/Companii-firme.html;
http://adevarul.ro/life-style/stil-de-viata/cum-depistezi-impostorii-retelele-sociale-1_50ae24757c42d5a66399f6c0/index.html
http://adevarul.ro/tech/retele-sociale/nu-exista-retele-socializare-1_515324ce00f5182b855829cd/index.html
http://www.w3schools.com/html/html5_intro.asp
http://ro.wikipedia.org/wiki/HTML5
https://www.mysql.com
http://ro.wikipedia.org/wiki/MySQL
http://www.w3schools.com/js/
http://www.codecademy.com/en/tracks/javascript
http://ro.wikipedia.org/wiki/JavaScript
https://developer.mozilla.org/en-US/docs/Web/JavaScript
http://www.scriptcase.net/?gclid=CjwKEAjwwN-rBRD-oMzT6aO_wGwSJABwEIkJVWWg-o5p0lMJ0XsWatUZ-xPYjsSk5JRIegM2LsZE5RoC5XXw_wcB
http://php.net
http://ro.wikipedia.org/wiki/PHP
http://www.w3schools.com/css/
http://ro.wikipedia.org/wiki/Cascading_Style_Sheets
http://getbootstrap.com
http://ro.wikipedia.org/wiki/Model-view-controller
http://blog.codinghorror.com/understanding-model-view-controller/
http://www.w3schools.com/aspnet/mvc_intro.asp
http://en.wikibooks.org/wiki/Computer_Science_Design_Patterns/Model–view–controller
Bibliografie
http://www.checkfacebook.com/
http://blog.kissmetrics.com/facebook-statistics/?wide=1
http://lauranita.wordpress.com/category/social-media-2/
http://www.slideshare.net/valeriupernes/retele-sociale
http://n2n.ro/retele-sociale/statistica-surprinzatoarea-a-zilei-facebook-vs-twitter/
http://gizmo.md/2011/06/harta-mondiala-a-retelelor-sociale/
http://ro-ro.facebook.com/note.php?note_id=104072202976460
Totul despre facebook. Fan Pages.pdf
http://ro.wikipedia.org/wiki/Re%C8%9Bea_de_socializare; http://www.gandul.info/magazin/tarile-in-care-facebook-nu-este-reteaua-de-socializare-numarul-1-9132693;
http://www.mediafax.ro/cultura-media/de-ce-utilizam-retelele-de-socializare-8863457;
http://www.adevarul.ro/life/sanatate/stil_de_viata/Cum_ne_schimba_viata_retelele_de_socializare_0_618538553.html;
http://www.ziare.com/internet-si-tehnologie/retele-sociale/5-predictii-pentru-retelele-de-socializare-in-2012-1142598;
The Definitive Guide to Integrating Social Media and Email Marketing.pdf http://venturebeat.com/2011/03/22/linkedin-reaches-100-million-users-but-how-many-are-coming-back/;
http://ziuadecj.realitatea.net/economie/twitter-are-peste-100-de-milioane-de-utilizatori-activi-numarul-utilizatorilor-care-intra-de-pe-mobil-a-crescut-cu-40–73770.html;
http://www.facebrands.ro/category/7/Companii-firme.html;
http://adevarul.ro/life-style/stil-de-viata/cum-depistezi-impostorii-retelele-sociale-1_50ae24757c42d5a66399f6c0/index.html
http://adevarul.ro/tech/retele-sociale/nu-exista-retele-socializare-1_515324ce00f5182b855829cd/index.html
http://www.w3schools.com/html/html5_intro.asp
http://ro.wikipedia.org/wiki/HTML5
https://www.mysql.com
http://ro.wikipedia.org/wiki/MySQL
http://www.w3schools.com/js/
http://www.codecademy.com/en/tracks/javascript
http://ro.wikipedia.org/wiki/JavaScript
https://developer.mozilla.org/en-US/docs/Web/JavaScript
http://www.scriptcase.net/?gclid=CjwKEAjwwN-rBRD-oMzT6aO_wGwSJABwEIkJVWWg-o5p0lMJ0XsWatUZ-xPYjsSk5JRIegM2LsZE5RoC5XXw_wcB
http://php.net
http://ro.wikipedia.org/wiki/PHP
http://www.w3schools.com/css/
http://ro.wikipedia.org/wiki/Cascading_Style_Sheets
http://getbootstrap.com
http://ro.wikipedia.org/wiki/Model-view-controller
http://blog.codinghorror.com/understanding-model-view-controller/
http://www.w3schools.com/aspnet/mvc_intro.asp
http://en.wikibooks.org/wiki/Computer_Science_Design_Patterns/Model–view–controller
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: Site de Socializare (ID: 150611)
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.
