Interfata Web Pentru Verificarea Situatiei Scolare A Studentilor DIN Cadrul Universitatii Ioan Slavici

FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI” TIMIȘOARA

UNIVERSITATEA “IOAN SLAVICI” TIMIȘOARA

FACULTATEA DE INGINERIE

DOMENIUL CALCULATOARE ȘI TEHNOLOGIA INFORMAȚIEI

FORMA DE ÎNVĂȚĂMÂNT – ZI

PROIECT DE DIPLOMĂ

CONDUCĂTOR ȘTIINȚIFIC:

Prof.Univ.Dr.Ing. Titus SLAVICI

Dr. Ing. Alin MNERIE

ABSOLVENT:

ALBUTIU CRISTIAN- ADRIAN

-2016-

FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI” TIMIȘOARA

UNIVERSITATEA “IOAN SLAVICI” TIMIȘOARA

FACULTATEA DE INGINERIE

DOMENIUL CALCULATOARE ȘI TEHNOLOGIA INFORMAȚIEI

FORMA DE ÎNVĂȚĂMÂNT – ZI

INTERFATA WEB PENTRU VERIFICAREA SITUATIEI SCOLARE A STUDENTILOR DIN CADRUL UNIVERSITATII IOAN SLAVICI

CONDUCĂTOR ȘTIINȚIFIC :

Prof.Univ.Dr.Ing. Titus SLAVICI

Dr. Ing. Alin MNERIE

ABSOLVENT:

ALBUTIU CRISTIAN- ADRIAN

2016

UNIVERSITATEA DIN ORADEA

FACULTATEA de Inginerie Electrică și Tehnologia Informației

DEPARTAMENTUL Calculatoare și tehnologia informației

TEMA _________________

Proiectul de Finalizare a studiilor a studentului_ALBUTIU CRISTIAN ADRIAN

1). Tema proiectului de finalizare a studiilor: INTERFATA WEB PENTRU VERIFICAREA SITUATIEI SCOLARE A STUDENTILOR DIN CADRUL UNIVERSITATII IOAN SLAVICI

2). Termenul pentru predarea proiectului de diplomă: 15.06.2016

3). Elemente inițiale pentru elaborarea proiectului de finalizare a studiilor : sunt date de sistemul integrat WEB si a aplicatii ale bazelor de date create in jurul intrumentelor de bord dezvoltate in cadrul universitatii absolventului.

4). Conținutul proiectului de finalizare a studiilor :

Introducere ;

1.Bazele de date aplicate prin intertet si tehnologiile WEB;

2. Limbajele tehnologiilor WEB prin intermediul bazelor de date ;

3.Aplicatii WEB pentru verificarea situatiei scolare ;

4. Concluzii.

5). Material grafic: 9 figuri

________________________________________________________________________________

6). Locul de documentare pentru elaborarea proiectului de diplomă:Biblioteca si laboratoarele Universitatii Ioan Slavici,carti proprii,tutoriale de pe internet.

7). Data emiterii temei: 01.10.2015.

Coordonatori științifici

Prof.Univ.Dr.Ing. Titus SLAVICI

Dr. Ing. Alin MNERIE

REFERAT

PRIVIND PROIECTUL DE DIPLOMĂ

A

ABSOLVENTULUI : ALBUTIU CRISTIAN- ADRIAN

DOMENIUL / PROGRAMUL DE STUDIU: Calculatoare și tehnologia inormatiei

SPECIALIZAREA Calculatoare

PROMOȚIA 2016

Titlul proiectului INTERFATA WEB PENTRU VERIFICAREA SITUATIEI SCOLARE A STUDENTILOR DIN CADRUL UNIVERSITATII IOAN SLAVICI.

…..………………………………………………………………………………………………………..

Structura proiectului : Lucrarea este structurată pe 4 capitole din care 2 teoretice, 1 capitol practice și 1 capitol pentru prezentarea concluziilor. Lucrarea mai cuprinde o bibliografie cu referințe bibliografice și de specialitate + anexe…………………………………………. ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………….…………………………………………………………………………………………………………………………………………

Aprecieri asupra conținutului proiectului de DIPLOMĂ (finalizare a studiilor), mod de abordare, complexitate, actualitate, deficiențe

Prezenta lucrare prezintă un sistem integrat WEB prin care studentii universitătii Ioan Slavici din Timisoara îsi pot vizualiza informatii personale, situatii financiare si scolare. Lucrarea este foarte complexă și tratează în detaliu atât probleme teoretice dar mai ales practice, informarea stundetilor este foarte importantă.

……………………………………………………………………………………………………………………………………………..

………………………………………………………………………………………………………………………………………………

………………………………………………………………………………………………………………………………………………

Aprecieri asupra proiectului (se va menționa: numărul titlurilor bibliografice consultate, frecvența notelor de subsol, calitatea și diversitatea surselor consultate; modul în care absolventul a prelucrat informațiile din surse teoretice)

La realizarea lucrării studentul a consultat si mentionat 20 referinte bibliografice de actualitate, acestea fiind corect prelucrate ……………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..

(se va menționa: opțional locul de documentare și modul în care absolventul a realizat cercetarea menționându-se contribuția autorului)

……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………

Concluzii (coordonatorul proiectului trebuie să aprecieze valoarea proiectului întocmite, relevanța studiului întreprins, competențele absolventului, rigurozitatea pe parcursul elaborării lucrării, consecvența și seriozitatea de care a dat dovadă absolventul pe parcurs)

Seriozitatea si interesul absolventului pentru subiectul lucrării a făcut ca lucrarea să fie foarte complexă prezentând aspecte practice pentru realizarea bazelor de date, interogarea acestora, sau alte functii integrare web cu baze de date atingandu-se astfel scopul lucrării ………………….. ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………….

…………………………………………………………………………………………………………………………………………….

Redactarea proiectului respectă ……………….DA………………………….cerințele academice de redactare (părți, capitole, subcapitole, note de subsol și bibliografie).

Consider că proiectul îndeplinește/ nu îndeplinește condițiile pentru susținere în sesiunea de Examen de LICENȚĂ (finalizare a studiilor) din …IULIE 2016………………… și propun acordarea notei ………………….

Oradea,

Data Conducător Științific

CUPRINS

INTRODUCERE

Interactiunea om-calculator (HCMI- Human Computer Interaction) este definita in sens larg ca fiind stiinta care studiaza oamenii si tehnologiile computatioane si modul in care cele doua compnente se influenteaza reciproc(Dix si altii, 2004).

Utilizatorii sistemelor informatice doresc aplicatii interactive in avans care sa fie usor de utilizat si usor de invatat fara sa fie nevoiti sa citeasca numeroase manuale. Din nefericire astfel de interefete sunt dificil de proiectat si implementat. Myersm, in 1991 observa in urma unor studii ca 48% din codul unei aplicatii este destinat interfetei cu utilizatorul si in jur de 50% din timpul de implementare este folosit pentru implementarea interfetei. Cu cat interfatele devin mai usor de utilizat , cu atat devin mai dificil de creat. Realizatorii de interfete au nevoie de unelte care sa ii ajute in dezvoltarea interfetelor avansate cu utilizatorul ( Schlungbaum, 1996).

Constantine si Lockwood (1999) prezinta o colectie de principii pentru imbunatatirea calitatii proiectarii unei interfete cu utilizatorul:

Principiul structurii. Interfata cu utilizatorul trebuie organizata intr-un mod util cu scopul clar si semnificativ bazata pe modelele consistente care sunt cunoscute de utilizatori, grupand componentele care au legatura intre ele si separandu-le pe cele diferite, diferentiind elementele neasamanatoare si prezentandu-le asemanator pe cele similare. Principiul structurii se refera la arhitectura generala a intrerfetei cu utilizatorul.

Principiul simplicitatii. Interfata cu utilizatorul trebuie sa asigure o realizare usoara a functiilor uzuale , prezentand o comunicare clara si simpla pe limba utilizatorului. De asemenea trebuie sa furnizeze cai rapide de realizare a unor proceduri lungi.

Principiul vizibilitatii. Interfata trebuie sa prezinte grupat toate optiunile si materialele necesare pentru o anumita sarciva fara a distrage atentia utilizatorului cu informatii extreme sau redundante. Interfetele bine proiectate nu incarca utilizatorul cu prea multe alternative sau prea multe informatii.

Principiul feedbackului. Interfata trebuie sa informeze utilizatorul de actiunile sau interpretarile , modificarile de stare sau de conditii si de erorile sau exceptiile care sunt relevante sau de interes pentru utilizator intr-un limbaj clar, concis si familiar utilizatorului.

Principiul tolerantei. Interfata trebuie sa fie flexibila si toleranta si sa reduca costul greselilor si al utilizatorilor necorespunzatoare prin furnizarea posibilitatii de a anula comenzile sau de a le reface si in acelasi timp sa previna pe cat posibil erorile tolerand variate intrari sau secvente si interpretand rezonabil toate actiunile care sunt rezonabile.

Principiul reutilizabilitatii. Interfata trebie sa refoloseasca componente si comportamente interne si externe mentinand consistenta cu scopul reducerii nevoii utilizatorului de a reagandi si a-si reaminti.

CAPITOLUL I

BAZELE DE DATE APLICATE PRIN INTERNET SI TEHNOLOGIILE WEB

[]O structura de date este o colectie de date, eventual de tipuri diferite pe care sa definit o anumita organizare si careia ii este specific un anumit mod de identificare a elementelor componente

DEFINITIA INTERNETULUI SI RETELELOR WEB

Ce inseamna Internet

Etimologic. Cuvantul "Internet" este un cuvant compus, obtinut prin impreunarea cuvintelor englezesti: “interconnected” = interconectat si “network” = retea.

Actual. Se refera la reteaua mondiala unica de calculatoare interconectate prin protocoalele (reguli) de comunicare comune – Transmission Control Protocol si Internet Protocol – pe scurt, TCP/IP.

Social. In ziua de azi internetul este un fenomen social, atat datorita faptului ca incepand din 1990, in fiecare an numarul calculatoarelor legate la retea s-a dublat, cat si datorita dezvoltarii unui numar impresionant de aplicatii on-line.

Tehnic. Termenul mai poate desemna si o retea ce interconecteaza doua sau mai multe retele autonome aflate la mare departare unele fata de altele – in opozitie fata de conceptul de “intranet”, care se refera la interconectarea a doua sau mai multe calculatoare din accelasi complex – birou, cladire, ansamblu comercial sau de productie.

Filozofic. O “lume” aparte in care poti intra prin intermediul unei “ferestre”, in care informatia circula liber, fara restrictii, iar oricine, oricand poate avea acces la ea. Fiecare persoana poate deveni un alt personaj in aceasta “lume”.

In 24 octombrie 1995, FNC (Federal Networking Council) a definit termenul Internet astfel:

Internet-ul reprezinta un sistem informational care:

utilizeaza in mod unitar acelasi spatiu de adrese bazat pe IP (Internet Protocol) sau pe viitoarele sale extensii;

este capabil sa asigure comunicarea prin suita de protocoale TCP/IP (Transmission Control Protocol / Internet Protocol) sau prin viitoarele sale extensii;

ofera acces, public sau privat, la servicii de comunicatii de nivel inalt.

Istoria Internet-ului

Punctul de pornire in dezvoltarea retelei Internet a fost rivalitatea a doua mari puteri. In 1957, URSS lanseaza in spatiu primul satelit artificial – Sputnik. Cum pentru prima data Statele Unite erau pe locul 2, presedintele Eisenhower riposteaza infiintand ARPA (Advanced Reseach Project Agency), o agentie speciala subordonata Pentagonului. ARPA era condusa de oameni de stiinta, avea o birocratie redusa si avea ca scop dezvoltarea cercetarii tehnologiilor avansate in toate domeniile.

In 1959, la numai un an de la infiintarea agentiei, John McCarthy, al carui nume a fost ulterior asociat cu inteligenta artificiala, gaseste solutia de a conecta mai multe terminale la un singur calculator central si dezvolta conceptul de “time-sharing” (partajarea timpului) – o modalitate de lucru utilizata in cazul in care mai multe aplicatii solicita acces concurential la o resursa fizica sau logica si prin care fiecarei aplicatii i se aloca o cuanta de timp pentru accesul la resursa solicitata. Acesta a fost un prim pas catre retelele de calculatoare.

Intre timp apar calculatoarele instalate in marile universitati si se pune problema interconectarii acestora. Cercetatorul Lawrence Roberts sustine o solutie greu de imaginat pentru interconectarea calculatoarelor – “packet-switching” (comutarea pachetelor). Pentru a transmite informatia, aceasta este “rupta” in bucati mai mici, numite pachete. Ca si la posta clasica, fiecare pachet contine informatii referitoare la destinatar, astfel incat el sa poata fi dirijat corect pe retea. La destinatie, intreaga informatie este reasamblata. Desi aceasta metoda a intampinat rezistenta, in 1969 incepe sa functioneze reteaua ARPANET intre 4 noduri: University of California at Los Angeles, University of California at Santa Barbara, University of Utah si Stanford Research Institute.

Ca program al Departamentului Apararii al SUA (Department of Defense), ARPANET s-a dezvoltat uluitor de repede, conectand tot mai multe calculatoare. In 1979, ARPA decide sa separe reteaua in doua, una pentru lumea universitara si comerciala si una militara. Cele doua retele puteau comunica in continuare, constituindu-se practic o inter-retea (internet) denumita initial DARPA Internet si consacrata ulterior sub denumirea de Internet.

Numerosi cercetatori din domeniul academic si militar si-au concentrat eforturile in scopul dezvoltarii unor programe de comunicare in retea. Astfel, in 1980, o serie de programe de comunicare (denumite protocoale), care sunt utilizate si astazi, erau deja finalizate. In 1983, TCP/IP devine unicul protocol oficial si ca urmare tot mai multe retele de calculatoare, din intreaga lume, au fost conectate la ARPANET. Cresterea numarului de calculatoare conectate la Internet a devenit exponentiala, astfel incat in 1990 Internet-ul cuprindea peste 3.000 de retele si 300.000 de calculatoare. In 1992 era conectat calculatorul cu numarul 1.000.000. In perioada ce a urmat, marimea Internet-ului s-a dublat cam la fiecare an.

Un rol foarte important in dezvoltarea Internet-ului revine faptului ca accesul la documentatie, inclusiv la specificatiile protocoalelor a fost liber. La inceput, conform traditiilor academice, toate ideile si rezultatele erau publicate. Dar aceasta modalitate de comunicare era prea formala si prea putin dinamica, in raport cu necesitatile de informare ale cercetatorilor. Un pas important a fost facut de catre S. Crocker in 1969, care a initiat o serie de “note de cercetare” denumite RFC (Request for Comments), numerotate cronologic, care la inceput au fost tiparite si transmise prin posta, apoi, o data cu introducerea serviciului FTP (File Transfer Protocol) au fost difuzate on-line, pentru ca mai apoi, o data cu nasterea serviciului WWW (World Wide Web) aceste note sa poata fi accesate cu usurinta din intreaga lume.

Internet-ul a evoluat mult in cele 3 decenii de existenta. A fost conceput in era time-sharing-ului, dar s-a dezvoltat in era calculatoarelor personale, a tehnologiilor client-server si a retelelor de calculatoare. A fost initiat de un grup restrans de cercetatori, dar a devenit un urias succes comercial, cu investitii anuale de miliarde de dolari.

Internet-ul va evolua, cu siguranta, in pas cu industria calculatoarelor. Vor fi dezvoltate noi servicii, noi modele de acces, vor aparea noi aplicatii (de exemplu, televiziunea prin Internet sau forme tot mai sofisticate de transferuri financiare). Cert este ca Internet-ul, care a transformat secolul XX in secolul informatiei, va constitui infrastructura secolului XXI.

Caracteristici Tehnice

În ziua de astăzi Internetul este susținut și întreținut de o mulțime de firme comerciale. El se bazează pe specificații tehnice foarte detaliate, ca de exemplu pe așa-numitele „protocoale de comunicație”, care descriu toate regulile și protocoalele de transmitere a datelor în această rețea. Vezi și articolul despre Modelul de Referință OSI.

Protocoalele fundamentale ale Internetului, care asigură interoperabilitatea între orice două calculatoare sau aparate inteligente care le implementează, sunt Internet Protocol (IP),Transmission Control Protocol (TCP) și User Datagram Protocol (UDP).

Aceste trei protocoale reprezintă însă doar o parte din nivelul de bază al sistemului de protocoale Internet, care mai include și protocoale de control si aplicative, cum ar fi: DNS,PPP, SLIP, ICMP, POP3, IMAP, SMTP, HTTP, HTTPS, SSH, Telnet, FTP, LDAP, SSL, WAP și SIP.

Din cauza multelor fuziuni dintre companiile de telefonie și cele de Internet (Internet Service Providers, prescurtat ISP) au apărut o serie de probleme în sensul că sarcinile acestora nu erau clar delimitate.

Rețeaua regională a ISP-ului este formată prin interconectarea ruterelor din diverse orașe pe care le deservește compania. Dacă pachetul este destinat unui calculator-gazdă deservit direct de către rețeaua ISP, pachetul va fi livrat direct lui. Altfel el este predat mai departe operatorului (firmei) care furnizează companiei ISP servicii de comunicare prinbackbone-ul rețelei. (In engleză backbone înseamnă in general șira spinării, iar în informatică înseamnă rețeaua de bază pentru interconectarea rețelelor). În partea superioară a acestei ierarhii se găsesc operatorii principali de la nivelul backbone-ului rețelei, companii cum ar fi AT&T sau SPRINT. Aceștia răspund de backbone-uri mari cu mii de rutere conectate prin fibră optică, cu bandă largă de transfer.

Corporațiile și firmele de hosting utilizează așa-numitele „ferme” de servere rapide (= multe servere, situate eventual în aceeași sală sau clădire), conectate direct la backbone. Operatorii încurajază pe clienții lor să folosească această conectare directă prin închirierea de spațiu în rack-uri = dulapuri speciale standardizate pentru echipamentul clientului, care se află în aceeași cameră cu ruterul, conducând la conexiuni scurte și rapide între fermele de servere și backbone-ul rețelei.

Dacă un pachet trimis în backbone este destinat unui ISP sau unei companii deservite de aceeași coloană, el este transmis celui mai apropiat ruter. Pentru a permite pachetelor să treacă dintr-un backbone în altul, acestea sunt conectate în NAP-uri (Network Access Point). În principiu un NAP este o sală plină cu rutere, cel puțin unul pentru fiecarebackbone conectat. O rețea locală conectează toate aceste rutere astfel încât pachetele să poată fi retransmise rapid din orice coloană în orice alta. În afară de conectarea în NAP-uri, backbone-urile de dimensiuni mari au numeroase conexiuni directe între ruterele lor, tehnică numită conectare privată (private peering).

Unul dintre paradoxurile Internetului este acela că ISP-urile, care se află în competiție între ele pentru câștigarea de clienți, cooperează în realizarea de conectări private și întreținerea Internetului.

Ce inseamna WWW?

World Wide Web, cunoscut sub denumirile WWW, W3 sau Web, reprezinta cel mai utilizat si mai atractiv serviciu Internet. In traducere aproximativa, World Wide Web inseamna ”tesatura raspandita in intreaga lume”. Este formata dintr-o colectie de documente specifice acestui serviciu, conectate logic intre ele, denumite hipertexte.

Un hipertext este un document care contine pe langa text, imagini, secvente audio si video (intr-un cuvant, elemente multimedia) si legaturi catre alte documente de tip hipertext, care pot fi localizate pe orice server Web din reteaua Internet.

Hipertextele sunt denumite deseori si pagini Web. Presupunand ca se creeza o pagina web a unei univeritasi, aceasta va trebui sa contina legaturi catre pagini specifice fiecarei facultati. La randul lor, aceste pagini vor contine legaturile catre specializarile disponibile, catedrele existente, profesorii implicati s.a.m.d.

O legatura – sau “un link” – dintr-un hipertext poate sa duca la un alt hipertext, ca in cazurile prezentate mai sus, dar si catre diferite resurse: fisiere contand text, imagini sau sunete, un grup de stiri, un server FTP etc. Referitor la pagina propusa ca exemplu, este uzual sa putem accesa suportul de curs in format PDF, sau fisierul Excel continand notele de la laborator.

In plus, resursa catre care se creeaza legatura poate fi de pe un calculator din reteaua Internet situat oriunde pe glob. Consultarea informatiilor organizate sub forma de hipertexte se realizeaza cu ajutorul unui program special denumit browser. Utilizand un browser, utilizatorii serviciului WWW au posibilitatea de a se ”misca liber” pe retea, de la un document la altul, indiferent de serverul pe care documentele sunt memorate, motiv pentru care aceasta operatie a fost denumita sugestiv ”navigare”.

Cum a luat nastere serviciul WWW?

Desi Internetul are o istorie mai veche, serviciul WWW a fost creat incepand cu 1989. Initiatorii acestui nou mod de comunicare au fost Tim Berners-Lee si Robert Caillau, cercetatori la CERN (Consiliul European pentru Cercetare Nucleara), care intentionau sa creeze un nou sistem informational pentru a facilita cercetatorilor schimbul de informatii si colaborarea in cadrul proiectelor stiintifice.

Tim Berners-Lee este la ora actuala presedintele World Wide Web Consortium (W3C), un forum tehnic international, care, impreuna cu Internet Advisory Board, defineste standardele WWW.

Tim Berners-Lee si echipa sa au dezvoltat primele versiuni pentru cele 4 componente cheie necesare serviciul WWW:

protocolul HTTP (HyperText Transfer Protocol – Protocol de Transfer al Hipertextelor)

limbajul de descriere a hipertextelor HTML (HyperText Markup Language),

serverul Web

browser-ul.

Primul browser nu functiona in mod grafic, ci in mod linie de comanda, dar ulterior cercetatorii, printre care si Marc Andreessen, au inceput sa dezvolte browser-e cu interfata grafica. Marc Andreessen a dezvoltat popularul browser Mosaic la NCSA (National Center for Supercomputing Applications), care a revolutionat comunitatea Internet. In 1994, a infiintat firma Mosaic Communications, care ulterior a devenit Netscape Communications Corporation.

Desi initial a fost destinat cercetatorilor, acest nou mod de comunicare nu se mai limiteaza la schimburi de informatii stiintifice. Serviciul WWW s-a dezvoltat exploziv, astazi fiind utilizat in scoli, in lumea afacerilor, in casele a milioane de oameni, constituind platforma dezvoltarii a milioane de noi aplicatii, cum ar fi tranzactii financiare on-line, servicii multimedia on-line sau servicii de cautare a informatiilor pe retea.

Cum functioneaza serviciul WWW ?

[]Prima utilizare publica a serviciului WWW a fost in ianuarie 1992, la Geneva. Prin proiectul lui Tim Berners-Lee au fost stocate documente pe mai multe calculatoare, denumite servere Web, apoi au fost consultate prin intermediul unui browser

Florin, Pilat. 1996. World Wide Web Ghid de utilizare. 1996

Pentru a naviga pe Internet, cel mai uzaual se foloseste un browser web. Acesta comunica prin intermediul protocolului HTTP (HyperText Transfer Protocol) si al stivei TCP/IP cu un server Web. Practic, serviciul functioneaza conform modelului clasic client-server, browser-ul fiind aplicatia client. Spre deosebire de protocolul FTP, care creeaza o conexiune continua, pana la aparitia unei erori sau pana la inchiderea conexiunii de catre utilizator, protocolul HTTP functioneaza discontinuu, pe baza de tranzactii.

Navigarea pe un site web presupune urmatoarele operatiuni:

browser-ul stabileste o conexiune TCP/IP catre server. Protocolul la nivel de aplicatie utilizat este specificat printr-un numar, denumit numar de port. Protocolul HTTP are asociat in mod implicit numarul de port 80.

browser-ul emite o cerere HTTP catre server. O cerere HTTP este constituita din:

o linie de cerere (Request Line) – formata dintr-o comanda HTTP, urmata de un URL (Uniform Resource Locator – identificator uniform al resursei) – adresa resursei solicitate si de versiunea protocolului HTTP, utilizat;

un antet (Request Header) care contine informatii despre cerere si despre clientul care executa cererea, codificate intr-un anumit mod;

corpul cererii (un document).

Comenzile HTTP se numesc metode. Cele mai frecvent utilizate metode HTTP sunt:

GET (clientul solicita serverului sa transfere resursa specificata prin URL-ul care urmeaza in linia de cerere),

POST (clientul solicita serverului sa utilizeze resursa identificata prin URL-ul care urmeaza in linia de cerere pentru a prelucra informatiile transmise in corpul cererii),

– HEAD (clientul nu solicita serverului sa transfere resursa specificata prin URL-ul care urmeaza in linia de cerere, ci doar informatiile despre resursa transferate de server in antetul raspunsului)

PUT (clientul solicita serverului sa utilizeze informatiile transmise in corpul cererii drept resursa identificata prin URL-ul care urmeaza in linia de cerere).

Serverul Web receptioneaza cererea, o interpreteaza si emite un raspuns catre browser.

Raspunsul este constituit din:

un cod de stare, care descrie modul de finalizare a cererii si o scurta descriere a codului;

un antet (Response Header) ce contine informatii despre resursa solicitata, eventual alte declaratii necesare pentru livrarea raspunsului;

un corp, format din datele transferate.

Codurile de stare sunt formate din 3 cifre. Codurile care incep cu cifra 1 sunt coduri de informare (de exemplu: 100 – clientul poate continua cererea). Codurile care incep cu cifra 2 sunt coduri de succes (200 – cerere rezolvata cu succes; 203 – cerere GET sau HEAD indeplinita). Codurile care incep cu cifra 3 sunt coduri de redirectare (302 – resursa solicitata are temporar un alt URL). Codurile care incep cu cifra 4 reprezinta coduri de eroare client (404 semnifica faptul ca resursa solicitata de browser nu a fost gasita; 401 – cerere neautorizata). Codurile care incep cu cifra 5 sunt coduri de eroare server (500 – eroare interna a serverului; 504 – timpul de asteptare a raspunsului a expirat. Serverul intrerupe automat conexiunea.

Limbajul de marcare pentru hipertext (HTML)

HTML este prescurtarea de la HyperText Markup Language, limbajul utilizat in World Wide Web pentru descrierea hipertextelor. HTML nu este de fapt un limbaj de programare, ci doar un limbaj de descriere. El contine elementele pe baza carora sunt construite paginile de internet.

Limbajul HTML ofera instrumentele necesare pentru a creea pagini web continand text, liste ordonate sau neordonate, tabele, imagini, link-uri catre alte pagini sau diferite resurse – printr-un simplu clic.

Limbajul HTML a fost creat in 1990 de catre Tim Berners-Lee si Daniel Connoly, fiind derivat din SGML (Standard Generalized Markup Language – limbaj standard generalizat de marcare), un standard international, aprobat in 1986. SGML permite tehnoredactarea documentelor complexe utilizand un set de reguli de descriere specific. HTML este un limbaj mult mai simplu, destinat doar paginilor Web, dar are caracteristici specifice limbajelor descriptive:

documentele HTML sunt exclusiv de tip text (ASCII), prin urmare ele pot fi editate direct, prin comenzi specifice sistemului de operare folosit. De exemplu, pentru crearea unui document HTML in Windows putem utiliza unul din editoarele de texte incluse in sistemul de operare (Notepad, Wordpad) sau orice alt editor de texte.

HTML se poate genera direct utilizand tehnologii de codare din partea serverului cum ar fi PHP, JSP sau ASP, .NET.

HTML este de asemenea utilizat in email, pentru a conferi functionalitatea de Rich Text Formatting. Majoritatea aplicatiilor de email folosesc un editor HTML incorporat pentru compunerea email-urilor si un motor de prezentare a email-urilor de acest tip.

documentele descrise in HTML pot fi vizualizate cu ajutorul unor aplicatii speciale denumite browser-e, care lucreaza pe diferite tipuri de sisteme de calcul, prin urmare, documentele HTML sunt independente de platforma de lucru.

HTML furnizeaza mijloacele prin care continutul unui document poate fi adnotat cu diverse tipuri de metadate si indicatii de redare. Indicatiile de redare pot varia de la decoratiuni minore ale textului, cum ar fi specificarea faptului ca un anumit cuvant trebuie subliniat sau ca o imagine trebuie introdusa, pana la scripturi sofisticate, harti de imagini si formulare. Metadatele pot include informatii despre titlul si autorul documentului, informatii structurale despre cum este impartit documentul in diferite segmente, paragrafe, liste, titluri etc. si informatii cruciale care permit ca documentul sa poata fi legat de alte documente pentru a forma astfel hiperlink-uri (sau web-ul).

HTML utilizeaza pentru descrierea documentelor Web etichete specifice pentru fiecare element descris. O eticheta (denumita si tag sau control) este un identificator care furnizeaza browser-ului instructiuni de formatare a documentului. Tag-urile stabilesc atat structura documentului, cat si aspectul acestuia.

1.2 Reteaua web si aplicatile de tip baze de date

Termenul provine din vocabualrul tehnic al limbii engleze in original fiind „data base management system”. Se prescurteaza astfel: S.G.D.B. Sistemul de gestiune a bazelor de date este totalitatea programelor utilizate pentru crearea, interogarea si intretinerea unei baze de date. Include doua categorii de module: module care sunt comune cu cele ale sistemelor de operare ale calculatoarelor si module cu functii specifice bazei de date.

Subsistemele monitor contin programele de control al perifericelor si sistemul de gestiune a fisierelor. Subsistemele externe sunt alcatuite din procesorul de definitie si programul de administrare. Alaturi de acestea exista programe de descriere a bazei de date si cereri de prelucrare.

Intre utilizator si sistem exista doua interfete: definirea bazei de date si utilizarea bazei de date. Definirea unei baze de date se executa sub controlul procesorului de definitie (PD), capabil sa prelucreze programe de descriere, formulate folosind limbaje specializate cunoscute sub denumirea de limbaje de definitie a datelor (LDD).

Reteaua Web poate fi privita ca o platforma de furnizare pentru utilizatori a unei interfete spre una sau mai multe baze de date. Multi comercianti de sisteme de gestiune a bazelor de date (SGBD) sunt interesati in oferirea unor solutii ideale de conectivitate a bazei de date la reteaua Web. Majoritatea organizatiilor necesita o solutie mai generala, care sa le impiedice de a deveni legate de o anumita tehnologie.

In ceea ce priveste integrarea aplicatiilor de tip baza de date in reteaua Web exista unele cerinte care la ora actuala nu pot fi indeplinite complet. Aceste cerinte sunt urmatoarele:

abilitatea de a accesa date comune, valabile, intr-un mod sigur;

conectivitatea independenta de date si comerciant, pentru a permite libertatea de a selecta sistemul SGBD;

o solutie privind conectivitatea, care sa profite de toate caracteristicile unui sistem SGBD al unei organizatii;

o tratare cu ajutorul arhitecturii deschise, pentru a permite interoperarea cu o varietate de sisteme si tehnologii;

o solutie eficienta din punct de vedere al costului, care sa permita capacitatea de scalare, cresterea si modificarile in directii strategice si sa reduca costurile dezvoltarii si intretinerii aplicatiilor;

suportul pentru tranzactii care cuprinde cereri HTTP multiple;

suportul pentru autentificarea bazata pe sesiuni si aplicatii;

performante acceptabile;

suprasarcina de administrare minimala;

un set de instrumente de inalta productivitate, care sa permita dezvoltarea, intretinerea si desfasurarea aplicatilor cu relativa usurinta si viteza.

Arhitectura Web – SGBD

Arhitectura traditonala client – server pe doua etaje

Arhitectura client – server pe doua etaje ofera o separare de baza a sarcinilor. Clientul (etajul 1) este responsabil in primul rand de prezentarea datelor catre client, iar serverul (etajul 2) este responsabil in primul rand de furnizarea serviciilor de date catre client.

Serviciile de prezentare trateaza actiunile interfetei cu utilizatorul si logica principala din aplicatia din domeniul afacerilor. Serviciile de date furnizeaza o logica limitata a aplicatiei din domeniul afacerilor – de regula, validarea, pe care clientul nu o poate efectua din cauza lipsei de informatii, si accesul la datele cerute, independent de locatia acestora. Datele pot proveni din sisteme SGBD relationale, sisteme SGBD orientate spre obiecte, sisteme SGBD mostenite. De obicei, clientul va fi rulat pe calculatoare desktop ale utilizatorilor finali si va interactiona cu un server centralizat al bazei de date, prin intermediul unei retele.

Arhitectura pe trei etaje

Arhitectura pe trei etaje propune trei straturi, fiecare fiind rulat pe o platforma diferita:

stratul format din interfata cu utilizatorul, care este rulat pe calculatorul utilizatorului final (clientul);

stratul format din logica afacerii si prelucrarea datelor. Acest etaj este rulat pe un server si este denumit server de aplicatie;

un sistem SGBD care stocheaza datele necesare etajului de mijloc. Acest etaj poate fi rulat pe un server separat, denumit serverul de baze de date.

In aceasta arhitectura, clientul este acum responsabil numai de interfata cu utilizatorul a aplicatiei si, eventual, de efectuarea unei prelucrari logice simple, cum ar fi validarea intrarii. Acum logica afacerii din cadrul aplicatiei se afla intr-un strat propriu, conectat fizic la client si la serverul de baze de date prin intermediul unie retele locale (LAN) sau de mare suprafata (WAN). Un server de aplicatie este proiectat pentru a servi mai multi clienti.

Proiectare pe trei etaje prezinta o serie de avantaje, cum ar fi:

prin centralizarea logicii afacerii pentru multi utilizatori finali in cadrul unui singur server de aplicatie, se centralizeaza intretinerea aplicatiei. Se elimina astfel preocuparile legate de distribuirea elementelor de software;

modificarea sau inlocuirea unui etaj, fara a le afecta pe celelalte este mai usoara;

separarea miezului logicii afacerii de functiile bazei de date face ca implementarea echilibrarii incarcarii sa fie mai usoara.

Avantajele si dezavantajele tratarii cu ajutorului sistemelor Web – SGBD

Reteaua Web, ca platforma pentru sistemele de baze de date poate aduce noi solutii atat pentru afacerile dintre companii, cat si pentru legaturile din interiorul acestora. Aceasta tratare prezinta unele avantaje, dar si o serie de dezavantaje.

Avantajele tratarii cu ajutorul sistemelor Web – SGBD sunt urmatoarele:

Multe situri Web sunt inca bazate pe fisiere, fiecare document fiind stocat intr-un fisier separat. De altfel, chiar si cea mai mare „baza de date” din lume – reteaua Web – s-a dezvoltat utilizand foarte putin tehnologia bazelor de date. Totusi exista unele avantaje ale tratarii prin sisteme SGBD, comparativ cu sistemele bazate pe fisiere. De exemplu, problema sincronizarii informatiilor atat in baza de date, cat si in fisierele HTML dispare, deoarece paginile HTML sunt generate dinamic din baza de date. Acest lucru simplifica administrarea sistemului, acordand continutului fisierelor HTML intreaga functionalitate si protectie a sistemului SGBD, cum ar fi securitatea si integritatea.

Simplitatea. La inceput, limbajul HTML ca limbaj de marcare era usor de utilizat atat de catre cei care realizau paginile Web, cat si de catre utilizatorii finali incepatori. Intr-o anumita masura, acest fapt este inca adevarat, avand in vedere ca pagina HTML nu prezinta o functionalitate foarte complexa.

Independenta de platforma. Majoritatea clientilor Web (browserelor) sunt independenti de platforma ceea ce prezinta un avantaj pentru crearea unei versiuni bazate pe Web a aplicatiilor de tip baza de date. Deoarece exista browsere pentru principalele paltforme de calcul, atunci nu este necesar ca aplicatiile sa fie modificate pentru a putea fi rulate in sisteme de operare sau medii cu ferestre diferite.

Interfata grafica cu utilizatorul. O problema principala in utilizarea unei baze de date ar putea fi accesul la date. Accesul la bazele de date se poate face prin intermediul unei interfete bazate pe text si conduse prin meniuri sau prin intermediul unei interfete de programare. Aceste interfete pot fi incomode si dificil de utilizat. Astfel, o interfata grafica cu utilizatorul (GUI) de calitate poate simplifica si imbunatati accesul la baza de date. Browserele Web pun la dispozitie o interfata GUI comuna si usor de utilizat, care poate fi folosita pentru a accesa o baza de date.

Standardizarea. Limbajul HTML reprezinta un standard la care adera toate browserele Web, permitand ca un document HTML de pe un calculator sa fie citit de catre utilizatorii de pe orice calculator din lume care au o legatura la Internet si un browser Web. Utilizand limbajul HTML, realizatorii invata un singur limbaj, iar utilizatorii finali folosesc o singura interfata GUI.

Suportul pentru platforme multiple. Faptul ca browserele Web sunt disponibile pentru aproape orice tip de platforma de calcul permite utilizatorilor de pe majoritatea tipurilor de calculatoare sa acceseze o baza de date de oriunde din lume. Astfel, informatiile pot fi raspandite cu un minim de efort si timp, fara a fi necesara rezolvarea problemelor incompatibilitatii diverselor elemente de hardware, sisteme de operare si software.

Accesul transparent la retea. Un beneficiu major al retelei Web consta in faptul ca accesul la aceasta este transparent pentru utilizator – cu exceptia specificarii unei adrese URL – si tratat in intregime de catre browserul Web si serverul Web. Acest suport incorporat pentru retea simplifica in mare masura accesul la bazele de date, eliminand necesitatea unor elemente costisitoare de software pentru retea si complexitatea sarcinii de a face ca diversele platforme sa comunice unele cu altele.

Desfasurarea scalabila. Prin stocarea aplicatiei pe un server separat, in loc de client, reteaua Web elimina timpul si costul asociate desfasurarii aplicatiei, simplifica tratarea reactualizarilor si administrarea unor platforme multiple aflate in birouri multiple. De la serverul de aplicatie, aplicatia poate fi acum accesata din orice site Web din lume.

Dezavantajele tratarii cu ajutorul sistemelor Web – SGBD sunt urmatoarele:

Fiabilitatea. Internetul reprezinta in mod curent un mediu de comunicatii lipsit de fiabilitate si lent – de exemplu, este posibil ca serverul sa nu functioneze si astfel o cerere pe Internet sa nu fie livrata. Dificultatile apar atunci cand utilizatorii incearca sa acceseze informatiile de pe un server in momentele de varf, atunci cand acesta este supraincarcat sau atunci cand o retea este deosebit de lenta. Fiabilitatea reprezinta unul din motivele principale pentru care organizatiile continua sa depinda pentru aplicatiile importante de propriile retele intranet, in loc de reteaua publica Internet. Reteaua intranet privata se afla sub controlul organizatiei, putand fi intretinuta si imbunatatita atunci cand oganizatia considera ca este necesar.

Securitatea. Securitatea reprezinta o preocupare serioasa pentru o organizatie care isi face bazele de date accesibile pe Web. Autentificarea utilizatorilor si transmisiile sigure de date pot fi o problema datorita numarului mare de potentiali utilizatori anonimi.

Costul. Intretinerea unui site Web complex poate fi costisitor, mai ales datorita cererilor crescande ale utilizatorilor.

Functionalitatea limitata a limbajului HTML. Cu toate ca limbajul HTML pune la dispozitie o interfata comuna si usor de utilizat, simplitatea sa inseamna ca unele aplicatii de tip baza de date cu un inalt grad de interactivitate s-ar putea sa nu poata fi transformate cu usurinta in aplicatii bazate pe Web, pastrand acelasi caracter prietenos cu utilizatorul.

Performantele. Majoritatea clientilor complecsi ai bazelor de date de pe Web se centreaza in jurul unor limbaje interpretate, ceea ce ii face mai lenti decat clientii traditionali ai bazelor de date, care sunt compilati nativ. De exemplu, limbajul HTML trebuie interpretat de catre un browser Web; JavaScript si VBScript sunt limbaje de scriptare interpretate care extind limbajul HTML prin constructii de programare.

Imaturitatea instrumentelor de dezvoltare. In majoritatea dezvoltarilor de pe Internet se utilizau limbajele de programare din prima generatie, in care mediul de dezvoltare era format numai din ceva mai mult decat un editor de text. Aceasta situatie a constituit un neajuns substantial al dezvoltarii Internetului, mai ales deoarece creatorii utilizeaza acum medii de dezvoltare mature, de natura grafica.

CAPITOLUL II

LIMBAJELE TEHNOLOGIILOR WEB PRIN INTERMEDIUL BAZELOR DE DATE

[]Alfabetul (A) – multimea finita si nevida a simbolurilor utilizate intr-un limbaj natural sau de programare

2.1. Serverul „APACHE”

Serverul web este in esenta o aplicatie care pe baza unor cereri formulate de un client in baza protocolui HTTP ii ofera acestuia un document si/sau un mesaj. El reprezinta un program ce ruleaza in regim de proces (daemon) pe o masina cu un sistem de operare multitasking (UNIX, Windows).

Numarul mare de utilizatori web face ca un astfel de server sa fie foarte utilizat, fiind nevoie de resurse importante pentru buna lui functionare.

Numarul de astfel de programe-server este destul de mare. Netcraft, o societate din Marea Britanie, realizeaza in fiecare luna o supraveghere a folosirii serverelor. Astfel din peste 13 milioane de servere web, mai bine de 60% sunt servere Apache, serverul realizat de o comunitate open-software, utilizabil pe toate platformele, dar in special si cu cele mai bune rezultate pe platforme UNIX. Microsoft cu Internet Information Server (IIS), existent doar in varianta pentru Windows NT, ocupa 21% din piata, iar iPlanet, o colaborare Sun-Netscape, aproape 8%, restul fiind detinut de alte programe.

Motivul pentru care Apache este liderul pietei si cel mai folosit server web consta in existenta lui pe foarte multe platforme si la un pret de cost nul (gratuit). Cu toate acestea este deosebit de fiabil si configurabil, raspunzand excelent unui trafic masiv si/sau resurse putine.

In combinatie cu Linux, Apache este o solutie excelenta pentru un server web, la un pret de cost egal cu zero, iar resursele hardware necesare nu sunt mari. Pentru proiectul panda.ro a fost aleasa aceasta combinatie, cu atat mai mult cu cat Apache ofera o multime de solutii pentru dezvoltarea de aplicatii web (limbaje de programare CGI).

Serverul web nu este destinat in exclusivitate acestui scop. Posibilitatea de a crea adrese virtuale pe o aceeasi adresa IP face ca un astfel de server sa poata stoca un numar foarte mare de locatii web, fara nici o problema, serverul doar selectand paginile functie de URL care i se cere.

Clientul web (Browser)

Un client web, denumit generic browser (navigator) este o aplicatie ce ruleaza pe un sistem ce ofera suport pentru protocolul HTTP in principal (si altele in particular) si este capabil sa afiseze informatii codificate in limbajul HTML si text (in principal), oferind suport si pentru alte tipuri de informatie (imagine, animatii). Totodata clientul da posibilitatea prin intermediul interfetei cu utilizatorul (GUI) sa interactioneze cu continutul paginii de tip hipermedia, preluand actiunile utilizatorului.
  Programele client sunt diverse si exista pe orice sistem de operare, motiv pentru care servicul WWW este accesibil practic oricarui utlizator. Datorita limbajului HTML, continutul paginilor este redat aproximativ sub aceeasi forma tuturor utilizatorilor, diferentele fiind minore, depinzand mai mult de capacitatea tehnica a sistemului si de versiunea clientului.
  Daca la inceput programele client nu dispuneau de capacitati grafice, informatiile WWW fiind in general sub forma de text, ulterior, datorita progresului in domeniul sistemelor de operare si al interfelor grafice, capacitatile browser-ului au crescut, ajungandu-se la inglobarea tuturor serviciilor Internet in cadrul unui client web. Practic pentru utilizatorul obisnuit browser-ul este practic Internet-ul.

In esenta un client web trebuie sa ofere acces la urmatoarele functii:

navigare – posibilitatea de a interactiona cu continutul prin ceea ce se numeste legatura (link), esenta mediului hipermedia;

comunicare – prin suportarea protocoalelor internet (in special HTTP);
  afisare si redare – in conformitate cu specificatiile HTML trebuie sa ofere suport pentru imagini (formatele GIF, JPEG si PNG);

suport pentru tehnologii si standarde noi – Java, ActiveX, Flash, XML etc.

acces la resursele sistemului de operare – salvare de fisiere, imprimare etc.

Piata clientilor web este una cat se poate de acerba, in ciuda faptului ca aceste programe sunt gratuite sau livrate impreuna cu alte aplicatii (chiar cu sistemele de operare). Clasificarea clientilor se poate face dupa diverse criterii, nici unul nefiind totusi relevant.

O parte importanta a utilizatorilor folosesc sisteme de operare Windows, motiv pentru care browser-ul Internet Explorer detine un segment important de piata.

Protocolul web (HTTP) a fost formulat in 1990 si standardizat in 1996 intr-o prima versiune (HTTP 1.0), astazi fiind in uz veriunea 1.1. Ulterior acesta a fost completat cu alte standarde pentru a face fata noilor cerinte impuse de cresterea Internetului.

Protocolul HTTP in versiunea 1.1 (curenta) a fost elaborat in 1997 de ungrup de specialistidin cadrul companiei DEC (Digital Equipment Cormporation) si a MIT (Massatchusets Intitute of Technology) si a fost inregistarata de Network Working Group sub codul RFC 2068.

Protocolul HTTP este un protocol de nivel aplicatie pentru sisteme distribuite, colaborative si hipermedia, folosit in sistemul global WWW incepand cu 1990. Protocolul foloseste referinte de tipul Uniform Resource Identifier (URI) pentru locatii sub forma URL sau nume (URN) pentru accesarea resurselor, mesajele fiind transmise intr-un format similar mesajelor e-mail definit de standardul MIME (Multipurpose Internet Mail Extensions). Totodata HTTP este suport de comunicatie si pentru alte protocoale Internet (SMTP, NNTP, FTP etc.).

HTTP este un protocol de tip cerere / raspuns. Un client trimite o cerere catre server ce consta dintr-o cerere propriu-zisa, un URI si o versiune de protocol, care este urmata de un mesaj codificat MIME continand parametrii cererii, ai clientului si un posibil continut. Serverul raspunde cu o serie de informatii continand versiunea protocolului, codul operatiei (succes sau eroare), urmate de un mesaj codificat MIME ce contine informatii legate de server, metainformatii si, posibil, continut.

Majoritatea comunicatiilor HTTP sunt initiate de un agent si consta intr-o cerere aplicata unei resurse pe un anumit server. Cazul cel mai simplu il reprezinta o singura conexiune intre agent si server.
  O situatie mai complicata survine in momentul in care in lantul cerere / raspuns intervin mai multi intermediari (proxy, porti, tuneluri). Un proxy este un agent retransmitator, preluand cererile, rescriindu-le o parte din mesaj si trasmitandu-le mai departe catre server. O poarta (gateway) este un agent de preluare, actionand ca un strat intre unul sau mai multe servere si, daca este necesar, traducand cererea intr-un alt protocol. Tunelul este folosit pentru transportul mesajelor nemodificate printr-un alt intermediar (de exemplu un firewall). Fara a intra in amanunte putem spune ca, in cazul intermediarilor, nu este obligatorie transmiterea mesajelor intre client si server, o parte din ele putand fi oferite de intermediar datorita stocarii lor anterioare (cache).

In mod obisnuit HTTP are loc peste conexiuni TCP/IP. Portul implicit este TCP 80, dar si alte porturi pot fi folosite. Cu toate acestea HTTP-ul nu este dependent de TCP/IP, el presupunand doar existenta unei conexiuni, ca urmare orice protocol ce asigura aceste cerinte poate fi folosit.

Configurarea unui server web

Pentru pornirea serverului Apache trebuie verificati existenta unui set minim de configurarii in fisierul httpd.conf. Acesta poate fi editat cu ajutorul unui editor de text. Sub Linux/Unix acest lucru este posibil folosind utilitarul joe. Sub Windows,puteti folosi Notpad sau Notepad2;

Doi parametri trebiue configurati inaite de a incerca sa rulam serverul Apache pentru prima oara si anume:numele serverului, pe de-o parte si, pe de alta parte,adresa de IP si portul pe care acesta va asculta.

De obicei,serverul Apache isi da seama automat care este numele pe care trebuie sa il foloseasca,pe baza adresei de IP a statiei pe care a fost instalat,dar acest lucru nu se intampla intotdeauna. Daca serverul are o intrare DNS, ar trebiu sa folositi una din adresele de IP in loc de nume. Daca serverul nu este conectat la o retea, se poate folosi valoarea 127.0.0.1, care este adresa de loopback. Valoarea implicita a portului pe care asculta serverul este 80. S-ar putea sa fie nevoie de schimbarea acestei valori daca mai exista un server Web care asculta pe acet port, sau daca nu exista drepturi administrative–doar un utilizator cu drepturi administrative poate sa asocieze porturi privilegiate(acele porturi cu numarul sub 1024) pe platformele Linux/Unix. Se poate schimba atat adresa cat si portul folosind directiva Listen. Directiva Listen accepta ca parametru fie un numar de port,fie o adresa si un port separate de doua puncte (:).Daca este specificat portul,serverul Apache va asculta pe acel port pe toate adresele disponibile pe acea statie.Daca se specifica si o adresa da IP,atunci serverul va asculta numai pe acea adresa si numai pe portul specificat. De exemplu,Listen 80 asculta cereri pe tote adresele IP pe portul 80. Directiva Listen 10.0.0.1 : 443 instrueste serverul Apache sa asculte daor pe adresa 10 .0.0.1 si pe portul 443.

Directiva ServerName va permite sa definiti numele pe care serverul il va raporta in orice adresa URL in care se vizeaza pe el insusi.Directiva accepta un nume DNS si un port optional,separate prin doua puncte (:). Trebuie să ne asigurăm ca aceasta directiva are alocata o valoare nula. In caz contrat,serverul nu va functiona corect; de exemplu, va efectua redirectionari incorecte.

Pe platformele Linux/Unix,puteti folosi directivele User si Group pentru a specifica sub ce utilizator si grup va rula serverul.Utilizatorul nobady este o alegere buna pentru majoritatea platformelor.

Fisierul executabil al serverului Apache se numeste httpd pe platforma Linix/Unix si apache.exe in cazul platformelor Windows.Acest executabil accepta multi parametri din linia de comnanda.

2.2 Agent utilizator HTML

Prezentarea limbajului HTML

HyperText Markup Language (HTML) este un limbaj de marcare utilizat pentru crearea paginilor web ce pot fi afisate intr-un browser (sau navigator). HTML ofera programatorilor mijloacele necesare pentru:

publicarea online a documentelor cu titluri, texte, tabele, liste, imagini etc.

navigarea catre alte informatii prin accesarea link-urilor, printr-un click al mouse-ului

realizarea de formulare prin care sa se desfasoare tranzactii cu servicii remote, in scopul cautarii de informatie, efectuarea de rezervari, comandarea de produse

includerea fisierelor cu date text, clipuri video, fisiere audio sau alte aplicatii direct in documente

Structura limbajului HTML

Limbajul HTML se bazeaza pe etichete de formatare numite uzual tag-uri. Acestea informeaza browserul (sau alt interpretor de limbaj HTML) cum trebuie sa afiseze informatia corespunzatoare.

Toate tag-urile HTML incep cu o semnul “<” si se termina cu “>”. Este important de precizat faptul ca in HTML nu se face distinctie intre literele mari si mici. Cu toate acestea, exista anumite notatii uzuale in majuscule sau minuscule, care se recomanda a fi respectate.

<HTML> Aceasta eticheta comunica unui interpretor HTML (program de navigare) ca documentul este scris si formatat in limbajul HTML standard. Exemple de interpretoare HTML ar putea fi programul Internet Explorer al companiei Microsoft si Netscape Navigator.

Desi multe etichete HTML sunt unitati de sine statatoare, unele dintre ele sunt perechi, avand etichete de inceput si sfarsit. Eticheta de inceput se numeste eticheta de deschidere, iar cea de sfarsit se numeste eticheta de inchidere.

Daca incepem o fraza scrisa cu caractere inclinate sau italice cu <I> (marcajul de scriere cursiva), trebuie sa o incheiem cu </I>. Efectul corespunzator etichetei este aplicat textului dintre eticheta de inceput si cea de sfarsit.

Pentru ca paginiile web sa fie in conformitate cu noiile standarde W3C si etichetele de sine statatoare trebuiesc inchise si anume avem eticheta <br> de sine statoarea ea va fi inchisa astfel <br />.

Atributele unui element se precizeaza in cadrul etichetei de inceput si se aplica in general doar elementului current – sau uneori si elementelor implicate in acesta.

De exemplu, daca dorim sa includem o imagine in document, trebuie sa specificam ca atribut adresa fisierului care contine imaginea, eventual si modul de aliniere a imaginii in raport cu textul. Eticheta urmatoare permite includerea in document a imaginii “foto.gif” din locatia curenta, aliniata la mijlocul randului de text: <IMG SRC=”foto.gif” ALIGN=MIDDLE>.

Structura unui fisier HTML

Orice fisier HTML are urmatoarea structura:

1: <html> <!– Marcheaza inceputul fisierului *.html–>

2: <head> <!– Marcheaza antetul fisierului *.html–>

3: <title> <!– Marcheaza titlul fisierului *.html–> </title>

4: </head>

5: <body>

6: <!– Corpul fisierului *.html locul unde se scriu instructiluniile–>

7: </body>

8: <head>

9: </html>

Un document simplu:

1: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

2: <html lang="ro"> <!– atributul “lang” defineste limba in care apare continutul paginii html //–>

3: <head>

4: <title>Un document simplu</title>

5: </head>

6:  

7: <body>

8: <p>Textul documentului</p> <!– tag-ul “p” semnifica “paragraph” cu ajutorul lui si al atributelor sale putem procesa textul in asa fel incat sa apara cum ne dorim //–>

9: </body>

10: </html >

Standarde pentru HTML

Specificatiile HTML sunt dictate de World Wide Web Consortium (W3C). Din punct de vedere al W3C, standardul in vigoare pentru limbajul HTML, inca din 24 Decembrie 1999, este HTML 4.01 – standard care exista si a devenit recomandare a W3C din 1997.

Acest standard defineste limbajul HTML destinat pentru World Wide Web si este o subversiune a HTML 4. Pe langa facilitatile pentru text, multimedia si hyperlink-uri a versiunilor precedente (HTML 3.2 si HTML 2.0), HTML 4 suporta mai multe optiuni multimedia, limbaje pentru script-uri, fisiere pentru stiluri (CSS), facilitati imbunatatite pentru tiparire si documente care sunt mai accesibile utilizatorilor cu diuabilitati. De asemenea, odata cu standardul HTML 4 s-au facut mari eforturi pentru internationalizarea documentelor, in scopul ca Web-ul sa devina intr-adevar World Wide (disponibil in intreaga lume).

HTML 4 este o aplicatie SGML conform cu standarul international ISO 8879 – Standard Generalized Markup Language.

XHTML – reformularea HTML ca si aplicatie XML

XHTML este o familie de tipuri de documente si module prezente si viitoare, care reproduc, se subscriu si extend limbajul HTML 4. Familia de documente XHTML sunt bazate pe XML si sunt implementate cu scopul de a functiona in conjunctie cu aplicatiile bazate pe XML.

XML este prescurtarea de la Extensible Markup Language, si a fost conceput ca o modalitate de a recastiga puterea si flexibilitatea SGML fara cea mai mare parte din complexitatea acestuia. Cu toate ca este o forma restrictionata de SGML, XML pastreaza totusi cea mai mare parte din puterea SGML, si ii pastreaza cele mai comune trasaturi.

Standardul W3C pentru acest limbaj este momentan XHTML 1.0 – prima specificatie oficiala din aceasta familie – revizia a doua publicata in 1 August 2002. Este o reformulare a trei tipuri de documeente din HTML 4 ca aplicatii ale XML 1.0. Scopul este ca limbajul sa fie folosit pentru descrierea continutului care este atat conform XML si, daca sunt urmate cateva reguli simple, opereaza in aplicatii conforme HTML 4. Programatorii care migreaza catre XHTML 1.0 vor observa urmatoarele avantaje:

documentele XHTML sunt conforme XML, astfel sunt usor de vizualizat, editat si validat de uneltele pentru fisiere XML

documentele XHTML pot fi scrise de o asemenea maniera incat sa opereze la fel / mai bine in aplicatiile care suporta HTML 4 si mai nou XHTML 1.0

documentele XHTML pot utiliza aplicatii (script-uri, applet-uri) care se bazeaza pe DOM-ul (Document Object Model) de HTML sau XML

pe masura ce familia XHTML evolueaza, documentele conforme HTML 1.0 vor interopera cu toate noile numeroase aplicatii si medii XHTML

XHTML este considerat in specificatiile W3C pentru XHTML 1.0 “urmatorul pas in evolutia Internetului”. Programatorii care migreaza catre XHTML pot intra in lumea XML si a multiplelor ei avantaje, fiind in continuare siguri pe compatibilitatea continutului cu standardele precedente si viitoare.

HTML 5

Exista “Working Draft”-ul pentru HTML 5 – a cincea revizie majora pentru limbajul de baza a WWW, publicat cu data de 04 Martie 2010 pe site-ul oficial W3C (http://www.w3.org/). Specificatiile pentru HTML 5 sunt inca in elaborare activa. In noua versiune, vor fi adaugate noi functionalitati in ajutorul developerilor de aplicatii web, precum si noi elemente pe baza cercetarilor privind practicile curente. Un aspect deosebit de important il va consitui definirea clara a criteriilor de conformitate pentru aplicatiile de interpretare, intr-un efort de a imbunatatii interoperabilitatea.

Printre punctele in lucru ale noului standard:

folosirea DOM ca si baza pentru definirea limbajului

concept nou de implementare a continutului (inlocuirea conceptelor de “block”, respectiv “inline” din HTML 4)

concentrarea pe accesibilitate ca un concept incorporat pentru noile elemente

concentrarea pe definirea semnanticii in detaliu

elementele “menu” si “command”

cache pentru aplicatii web offline

facilitatea de “contentEditable” si cea de “UndoManager”

arhitectura Drag and Drop / Copy Paste

De asemenea, se vehiculeaza introducerea unor noi comenzi:

article: o sectiune de continut independent, cum ar fi un articol de ziar sau de blog

header: un grup de ajutoare introductorii sau pentru navigatie

footer: sectiune care contine informatiile despre autor, copyright etc.

video si audio: pentru continut multimedia

embed: continut de plugin

time: data si/sau ora

command: o comanda pe care utilizatorul o poate invoca

2.3 Limbaj de programare PHP

PHP – Istoric

PHP a inceput in anul 1994 ca o extensie a limbajului server-side Perl, si apoi ca o serie de CGI-uri compilate de catre Rasmus Lerdorf, pentru a genera un curriculum vitae si pentru a urmari numarul de vizitatori ai unui site. Apoi a evoluat in PHP/FI 2.0, dar proiectul open-source a inceput sa ia amploare dupa ce Zeev Suraski si Andi Gutmans, de la Technion au lansat o noua versiune a interpretorului PHP in vara anului 1998, aceasta versiune primind numele de PHP 3.0. Tot ei au schimbat si numele in acronimul recursiv de acum, pana atunci PHP fiind cunoscut ca Personal Home Page Tools. Apoi Suraski si Gutmans au rescris baza limbajului, producand astfel si Zend Engine in 1999. In mai 2000 a fost lansat PHP 4.0, avand la baza Zend Engine 1.0.

Pe 13 iulie 2004 a fost lansata veriunea PHP 5, cu Zend Engine II, ce a adus si o orientare obiect mai pronuntata si suportand mai multe caracteristici ale acestui tip de programare. PHP 5 aduce mai multe noutati fata de versiunea 4:

Suport imbunatatit pentru OOP

Introduce extensia PDO – PHP Data Objects, care defineste o modalitate facila si consistenta de accesare a diferitelor baze de date. Imbunatatiri de performanta.

Suport imbunatatit pentru MySQL si MSSQL

Suport nativ pentru SQLite

Suport SOAP integrat

Iteratori pentru date

Control de erori prin tratarea de exceptii.

La sfarsitul lui 2007 doar versiunea 5.x mai era intretinuta, deoarece in data de 13 iulie 2007 (exact la 3 ani dupa lansarea PHP5), PHP Group a anuntat ca PHP4 va fi scos din uz pe 31 decembrie 2007, desi prognozeaza ca anumite upgrade-uri de securitate se vor oferi pana pe 8 august 2008. Dezvoltarea la PHP 6 incepuse deja in decembrie 2007 si urmeaza sa fie oferit odata cu scoaterea din uz a PHP4.

PHP 6 are urmatoarea agenda de imbunatatiri

suport pentru Unicode

scoaterea definitiva a unor functii ca register_globals sau magic_quotes

retragerea definitiva a variabilelor tip $HTTP_*_VARS.

Ultima versiune lansata in mod oficial de echipa de programatori php.net este PHP 5.3.2, din data de 04 Martie 2010.

Prezentarea limbajului PHP

[]Diferenta esentiala fata de alte limbaje de scripting este faptul ca PHP este un interpretor server-side. Pentru a putea testa pagini PHP pe calculator si nu pe internet aveti nevoe de un server web si de pachetul PHP instalat.

PHP-ul este unul din cele mai folosite limbaje de programare server-side, conform unui studiu efectuat de Netcraft in aprilie 2002, aparand pe 9 din cele 37 milioane de domenii cercetate in studiu. De asemenea, exista un grafic al cresterii folosirii PHP-ului pe site-ul oficial.

Popularitatea de care se bucura acest limbaj de programare se datoreaza urmatoarelor caracteristici :

Familiaritatea: sintaxa limbajului este foarte usoara combinand sintaxele unora din cele mai populare limbaje Perl sau C;

Simplitatea: sintaxa limbajului este destul de libera. Nu este nevoie de includere de biblioteci sau de directive de compilare, codul PHP inclus intr-un document executandu-se intre marcajele speciale;

Eficienta: PHP-ul se foloseste de mecanisme de alocare a resurselor, foarte necesare unui mediu multiutilizator, asa cum este web-ul;

Securitatea: PHP-ul pune la dispozitia programatorului un set flexibil si eficient de masuri de siguranta;

Flexibilitatea: fiind aparut din necesitatea dezvoltarii web-ului, PHP a fost modularizat pentru a tine pasul cu dezvoltarea diferitelor tehnologii. Nefiind legat de un anumit server web, PHP-ul a fost integrat pentru numeroasele servere web existente: Apache, IIS, Zeus, server, etc.;

Gratuitatea: este probabil cea mai importanta caracteristica a PHP-ului. Dezvoltarea PHP-ului sub licenta open-source a determinat adaptarea rapida a PHP-ului la nevoile web-ului, eficientizarea si securizarea codului.

PHP este simplu de utilizat, fiind un limbaj de programare structurat, ca si C-ul, Perl-ul sau incepand de la versiunea 5 chiar Java, sintaxa limbajului fiind o combinatie a celor trei. Datorita modularitatii sale poate fi folosit si pentru a dezvolta aplicatii de sine statatorare, de exemplu in combinatie cu PHP-GTK sau poate fi folosit ca Perl sau Python in linia de comanda. Probabil una din cele mai importante facilitati ale limbajului este conlucrarea cu majoritatea bazelor de date relationale, de la MySQL si pana la Oracle, trecand prin MS Sql Server, PostgreSQL, sau DB2.

PHP poate rula pe majoritatea sistemelor de operare, de la UNIX, Linux, Windows, sau Mac OS X si poate interactiona cu majoritatea servereler web. Codul dumneavoastra PHP este interpretat de serverul WEB si genereaza un cod HTML care va fi vazut de utilizator (clientului -browserului- fiindu-i transmis numai cod HTML).

PHP are un manual oficial intretinut de comunitatea din jurul proiectului. In plus, raspunsurile la multe probleme pot fi gasite printr-o simpla cautare pe internet. Exista multe resurse disponibile pentru un programator PHP incepator.

PHP pentru World Wide Web

PHP este un limbaj de programare server-side, ceea ce inseamna ca poate sa faca ceea ce orice program CGI poate sa faca: sa colecteze date din formulare, sa genereze continut dinamic pentru pagini web, sa primeasca sau sa trimita cookies.

Dar PHP poate sa faca mult mai mult decat atat. Exista trei mari domenii in care este folositi programarea PHP:

Scripturi pe partea de server (server-side): cea mai traditionla zona si totodata cel mai important target pentru PHP. E nevoie de un parser PHP, un server web si un browser pe partea de client. Serverul web trebuie sa ruleze cu PHP instalat.

Programare in linia de comanda: se poate rula un script PHP fara server sau browser. E nevoie doar de parser-ul de PHP. Aceasta utilizare este ideala pentru script-uri executate folosind cron (pe *nix sau Linux) sau Task Scheduler (Windows). Aceste scripturi pot de asemenea fi folosite pentru implementarea unor taskuri simple de procesare text.

Scrierea de aplicatii desktop: PHP probabil nu este cel mai bun limbaj de programare pentru ceearea de aplicatii desktop cu interfata grafica, dar avand cunostinte avansate de PHP, si folosind facilitatile client-server, se poate folosi PHP-GTK pentru astfel de programe.

PHP poate fi folosit pe toate sistemele de operare importante, inclusiv Linux, variante de Unix, Microsoft Windows, Mac OS, RISC OS etc. PHP suporta de asemnea majoritatea serverelor web curente. Printre acestea sunt incluse Apache, Microsoft Internet Information Service, Personal Web Server, serverele Netscape si iPlanet, Oreillz Website Pro, Caudium, Xitami, OmniHTTPd si multe altele.

PHP nu limiteaza iesirea programelor la HTML. Limbajul include posibilitati de generare a imaginilor, a fisierelor PDF sau chiar filme Flash. Se pot de asemenea genera iesiri sub forma de text, XHTMl sau XML. Cu PHP se pot genera aceste fisiere, sau se pot salva pe disc.

Una dintre proprietatile cele mai importante si puternice ale PHP este suportul pentru o gama larga de baze de date. Sunt suportate actualmente urmatoarele baze de date: dabas D, dBase, Empress, FilePro (read-only), Hyperwave, IBM DB2, Informix, Ingres, InterBase, FrontBase, mSQL, Direct MS-SQL, MySQL, ODBC, Oracle (OCI7 and OCI8), Ovrimos, PostgreSQL, SQLite, Solid, Sybase, Velocis, Unix dbm.

PHP ofera de asemenea suport pentru comunicarea cu alte servicii utilizand protocoale diverse: LDAP (Lightweight Directory Access Protocol – interogarea si modificarea serviciilor de directoare prin intermediul TCP/IP), IMAP (Internet Message Access Protocol – permite accesul la mesajele din folderele de e-mail de pe un server), SNMP (Simple Network Management Protocol – protocol de retea folosit in special in sistemele de management ale retelelor), NNTP (Network News Transfer Protocol – protocol de Internet folosit pentru transportarea stirilor Usenet intre serverele de stiri si aplicatiile end-user), POP3 (Post Office Protocolul – Version 3 – unul din protocoalele utilizate de un calculator gazda pentru receptionarea postei electronice), HTTP (Hypertext Transfer Protocol), COM (pe Windows – interfata hardware, portul serial original. Se refera si la porturile virtuale pentru Bluetooth sau adaptoare USB-la-serial).

2.4 Sistem de gestiune a bazelor de date MySQL

[]Bazele de date inteleg SQL un limbaj simplu folosit pentru solicitarea datelor. SQL este un limbaj puternic care poate obtine accesul la date stocate si care poate filtra si sorta datele dorite si afisa rezultatele

Un sistem de gestiune a bazelor de date relaționale (SGBDR) este un instrument esențial în numeroase medii, de la utilizările mai tradiționale în contexte de afaceri, cercetare si învățământ și până la aplicațiile mai recente, cum ar fi operarea motoarelor de căutare din Internet. Totuși, în ciuda importanței unei baze de date performante pentru gestiunea și accesul la resursele informaționale, aceasta s-a dovedit a fi dincolo de resursele financiare a numeroase instituții. Din punct de vedere istoric, sistemele de baze de date au constituit o propunere costisitoare, firmele distribuitoare percepând onorarii substanțiale, atât pentru program cât și pentru asistența necesară, iar deoarece motoarele de baze de date prezentau frecvent cerințe hardware substanțiale pentru a putea rula cu performanțe cât de cât rezonabile, costurile erau si mai mari.

În anii din urmă, situația s-a schimbat, atât din punct de vedere al echipamentelor, cât si din acela al programelor. Calculatoarele personale au devenit necostisitoare, dar puternice; pe de altă parte, a apărut o întreagă mișcare în direcția scrierii unor sisteme de operare cu performanțe ridicate pentru aceste calculatoare, sisteme disponibile la prețul unui compact disc ieftin, sau chiar gratuit, prin Internet., Caldera, LinuxPPC, pentru a numi doar câteva).

Sistemele de baze de date precum Postgres și mSQL au devenit disponibile gratuit sau la un preț scăzut. Mai recent, producătorii comerciali, precum Informix și Oracle, au început să-si ofere programele gratuit pentru sisteme de operare precum Linux. Totuși, aceste din urmă produse sunt livrate, în general, numai în formă binară, fără suport, ceea ce le limitează utilitatea.

Unul din noii veniți în domeniul bazelor de date cu preț scăzut sau gratuite este MySQL, un sistem client/server de gestiune a bazelor de date relaționale originar din Scandinavia. MySQL include un server SQL, programe client pentru accesul la server, instrumente administrative și o interfață de programare pentru scrierea propriilor dumneavoastră programe.

Bazele sistemului MySQL au fost puse în 1979, o dată cu instrumentul pentru baze de date UNIREG, creat de Michael "Monty" Widenius pentru compania suedeză TcX. în 1994, TcX a început să caute un server SQL pentru a-1 utiliza la dezvoltarea aplicațiilor

Popularitatea sistemului MySQL nu este limitată la comunitatea Open Source. Acesta rulează pe calculatoare personale (într-adevăr, o bună parte din programarea cu MySQL are loc pe sisteme Linux ieftine). Dar MySQL este portabil si rulează pe sisteme de operare comerciale (precum Solaris, Irix si Windows) și pe echipamente care merg până la servere de întreprindere, în plus, performanțele sale rivalizează cu acelea ale oricărui sistem de baze de date de mari dimensiuni, cu milioane de înregistrări.

Variantele de gestiune a bazelor de date mai putin costisitoare: MySQL, mSQL, Postgres, unul din motoarele gratuite (dar fără suport) furnizate de producătorii comerciali și așa mai departe.

MySQL are de oferit numeroase caracteristici atractive:

• Viteză. MySQL este rapid. Programatorii pretind că MySQL este cel mai rapid sistem de baze de date pe care îl puteți găsi.

• Ușurință în utilizare. MySQL este un sistem de baze de date cu performanțe ridicate, dar relativ simplu, a cărui configurare și administrare sunt mult mai simple decât în cazul sistemelor mai mari.

• Cost. MySQL este gratuit pentru majoritatea utilizărilor interne.

• Suport pentru limbaje de interogare. MySQL înțelege SQL (Structured Query Language – limbaj de interogare structurat), limbajul preferat al tuturor sistemelor moderne de baze de date. De asemenea, puteți avea acces la MySQL folosind aplicații care acceptă ODBC (Open Database Connectivity), un protocol de comunicație cu bazele de date creat de Microsoft.

• Caracteristici. La server se pot conecta mai mulți clienți simultan. Clienții pot folosi mai multe baze de date simultan. De asemenea, este disponibilă o varietate de interfețe de programare pentru limbaje precum C, Perl, Java, PHP și Python. Astfel, avem opțiunea de a folosi programe client preambalate sau de a vă scrie propriile programe client pentru aplicații personalizate.

• Conectivitate și securitate. MySQL poate fi folosit integral în rețele, iar bazele de date sunt accesibile de oriunde din Internet. Dar MySQL are controlul accesului, astfel încât persoanele care nu au dreptul să vă citească datele nu vor avea această posibilitate.

• Portabilitate. MySQL rulează pe numeroase varietăți de UNIX, precum și pe alte sisteme non-UNIX, ca Windows și OS/2. MySQL rulează pe echipamente de la calculatoare de birou la servere cu performanțe ridicate.

• Distribuție liberă. MySQL este ușor de obținut; pentru aceasta, folosiți-vă browserul de Web.

Sistemele de gestiune a bazelor de date sunt frecvent utilizate pentru executarea unor operații cum sunt cele pentru care se folosesc fișierele.

O bază de date este un fișier de mari dimensiuni din anumite puncte de vedere, dar un fișier cu un sistem de fișare încorporat. Păstrarea prin metode electronice a înregistrărilor prezintă câteva avantaje importante față de păstrarea manuală a înregistrărilor.

Avantajele sistemului MySQL :

• Timp redus de fișare a înregistrării.

• Timp redus de regăsire a înregistrării.

• Ordine de regăsire flexibilă.

• Format flexibil al datelor de ieșire.

• Acces simultan la înregistrări pentru mai mulți utilizatori.

• Acces de la distanță la înregistrări și transmiterea electronică a acestora,

2.5. Pachetul de programare XAMPP

Inca de la dezvoltarea lor aceste tei proiecte (Apache, MySQL, PHP) au fost gandite in oarecare masura sa conlucreze fiind destinate pentru serverele Unix dar avand acum pe piata lansate si versiuni cu suport pentru utilizatorii Windows sau Mac OS. Cel mai bine este ca testarea unei aplicatii web sa se faca pe serverul unde va rula, cum toate cele trei sunt cross platform va fi foarte usor sa dezvoltati si sa se ruleze in acelas timp aplicatia pe calculatorul de lucru, inainte de a ajunge la server. Pentru aceasta trebuie sa le instalati pe toate trei, rand pe rand, dupa care sa le uitati acolo, pentru ca foarte rar va mai trebui sa schimbati din parametrii de instalare.

Nou pe piata este pachetul all in one care va ofera un mod simplu de a le instala automat sau si mai bine, de a nu le instala ci doar de a le rula direct de pe un memory stick folosind aplicatii portabile gen xampp (lampp versiunea de Unix/Linux).

XAMPP este un pachet software care include AMPP (server Apache, MySQL, PHP și Perl). Acest pachet este un pachet necomercial, care poate fi gasit în distribuții atât pentru Windows cât și pentru Linux.

Avantajele acestui software sunt :

Foarte ușor de instalat și configurat

Conține numeroare pachete utilitare, generatoare de trafic pentru site-uri, acceleratoare pentru motoarele php, etc.

Funcționează foarte bine, și este în permanență testat atât pe windows cât și pe sistemele de operare SUSE, Redhat, Mandrake, etc.

În versiunea ce-a mai simplă Xamp conține pachete pentru :

Apache

MySQL

PHP

Perl

ProFTPD, an FTP server

OpenSSL

Pentru dezvoltarea aplicației descrise în acest proiect au fost testate atât versiunile Xampp (pentru sistemul de operare windows) cât și Lampp (pentru varianta de Linux). Comportamentul aplicației și al bazelor de date fiind identic pe ambele platforme de operare.

2.6 Stilizarea pagini cu ajutorul CSS

Prezentarea limbajului CSS

CSS (Cascading Style Sheets) au existat sub o forma sau alta de la inceputurile SGML (Standard Generalized Markup Language) in 1970. CSS au fost dezvoltate pentru a se reusi o abordare mai consistenta a documentelor web. In timp HTML a inceput sa permita si sa inglobeze o mare varietate de stiluri pentru a face fata cererii dezvoltatorilor web. Aceasta evolutie a dat programatorilor un mai mare control asupra aspectului paginii web, cu pretul ridicarii gradului de complexitate si dificultate in scrierea codului.

Pentru a imbunatati capacitatea de prezentare pe web, au fost propuse catre W3C limbajele de stil. Din cele noua originale, doua au fost alese si au devenit fundatia pentru ce urma sa se numeasca CSS. Hakon Wium Lie a propus in 1994 Cascading HTML Style Sheets (CHSS), asemanator stilului CSS de azi. Bert Bogs lucra la un browser denumit Argo, care folosea propriul lui stil, Stream-based Style Sheet Proposal (SSP). Cei doi au lucrat impreuna si au dezvoltat standardul CSS (‘H’ a fost scos deoarece stilul poate fi aplicat si altor limbaje de marcare in afara de HTML).

Spre deosebire de limbajele de stiluri existente in acea vreme (DSSSL, FOSI), CSS permitea ca stilul unui documente sa fie influentat de mai multe stiluri. Fiecare stil putea sa mosteneasca sau sa decurga din altul permitand un mix de preferinte stilistice controlate in mod egal de designer-ul site-ului si utilizator.

Propunerea lui Hakon a fost prezentata in cadrul conferintei “Mosaic and Web” tinuta in 1994 la Chicago, si din nou cu Bert Bos in 1995. W3C s-a aratat foarte interesat de dezvoltarea CSS, si a organizat in acest scop un workshop prezidat de Steven Pemberton. Acesta a fost un prim pas spre oficializarea CSS – astfel ca in decembrie 1996 s-a lansat CSS level 1.

Astfel CSS a devenit un limbaj care ajuta la descrierea documentelor scrise cu ajutorul limbajelor de marcare a textului. Este aplicat cel mai frecvent in stilizarea paginilor web scrise in HTML si XHTML, dar limbajul poate fi aplicat oricarui document XML, inclusiv SVG (Scalable Vector Graphics) si XUL (XML User Interface Language).

Utilitatea si utilizarea CSS

CSS poate fi folosit local de catre vizitatorii paginiilor web pentru a defini culori, fonturi, asezari in pagina, si alte aspecte ale prezentarii documentului. A fost conceput in principal pentru a face separarea intre continutul documentului (scris in HTML), si aspecul lui (definit prin CSS). Aceasta separare poate imbunatati accesibilitatea continutului, imbunatateste controlul specificatiilor prezentarii si sporeste flexibilitatea, reduce complexitatea codului si previne repetarea tag-urilor.

Sintaxa. CSS are o sintaxa simpla si foloseste un numar redus de cuvinte in engleza pentru specificarea diferitelor proprietati de stiluri.

Utilizarea CSS

Stilurile interne: fiecare fisier (X)HTML contine codul CSS necesar. Atunci când se doreste o schimbare de stil (marimea fontului, culoare, etc) trebuie operata modificarea in toate paginile ce contin acel stil.

Stilurile externe: se constuieste un fisier CSS extern, care nu contine cod (X)HTML, ci doar cod CSS. Inserarea fisierului extern se face prin plasarea unui link in sectiunea <head></head> a fiecarei pagini in care se doreste folosirea stilul respectiv.

<link rel="stylesheet" type="text/css" href="fisier

Folosind metoda fisierelor CSS externe, toate paginile (X)HTML pot folosi acelasi fisier de formatare a stilului. Iata câteva motive pentru care aceasta metoda de lucru este recomandata in detrimentul stilurilor CSS interne:

intretinere mai usoara

dimensiuni reduse ale paginilor (X)HTML

economie de banda internet

flexibilitate

Structura CSS

Pornim de la exemplul formatarii tag-ului de titlu in culoarea albastu: H1 { color : blue }

O regula CSS este compusa din doua parti: selectorul (H1) si declaratia (color:blue). Declaratia are doua parti: proprietatea (color) si valoarea (blue). Chiar daca examplul prezentat incearca sa influenteze doar una dintre proprietatile necesare pentru redarea unei pagini web, este de fapt in sinea lui un “style sheet”. Combinat cu alte asemenea declaratii (o caracteristica esentiala a stilurilor CSS este combinarea acestora), va determina prezentarea finala a documentului.

CSS2 cuprinde peste 100 de proprietati, incluzând color, font-weight, font-size, font-family, line-height, background, float, position, margin, padding.

Iata câteva exemple:

1: BODY {

2: font-size: 12pt;

3: text-indent: 3em; /* i.e., 36pt */

4: }

5:  

6: H1 {

7: font-weight: bold;

8: font-size: 12pt;

9: line-height: 14pt;

10: font-family: Helvetica;

11: font-variant: normal;

12: font-style: normal

13: }

14:  

15: P { color: blue; font-variant: small-caps }

16:  

17: IMG { float: left }

Standardul pentru CSS

Incepând cu 11 Aprilie 2008 este in vigoare ultima varianta a standardului W3C pentru CSS2 (Cascading Stzle Sheets, level 2). Acest limbaj de formatare a fost construit pe CSS1, stilurile conforme cu CSS1 ramânând, cu câteva exceptii, conforme si cu standarul CSS2. Noul standard implementeaza un stil care suporta stiluri specifice diferitelor iesiri media, permitând prezentarea pe browsere vizuale, imprimante, dispozitive braille etc. Aceste noi specificatii suporta de asemenea pozitionarea continutului, descarcarea fonturilor, formatarea tabelelor, facilitati de internationalizare, contoare si numerotare automata etc.

Ca raspuns la procesul de evolutie si dezvoltare a stilurilor, W3C a emis mai multe documente:

candidat de recomandare CSS3 Basic User Interface Module (11 Mai 2004) – valori pentru cursor, valori pentru content (icon), proprietatea icon, proprietatea resize

sugestii de extindere a CSS (10 Decembrie 1998) – includ coloane, text vertical, ruby, containere float catre partea de sus – jos a paginii, footnotes, smart tabs, efecte la tranzitia intre pagini, fundal gradient si multe altele

recomandari pentru CSS 2 Revizia 1 (CSS 2.1) (08 Septembrie 2009) – noi valori pentru list-style-type, suport pentru ID-uri multiple de atribute pentru un selector, elementul BODY in HTML

recomandarile propuse pentru “Selectors Level 3” (15 Decembrie 2009) – schimbarea listei definitiilor de baza, noi selectori simplii, noi pseudo-elemente, rescrierea gramaticii

candidat de recomandare fundaluri si contururi Level 3 (17 Decembrie 2009) – optiunea “layering multiple background images”, diverse efecte pentru contururi

CAPITOLUL III

APLICAȚII WEB PENTRU VERIFICAREA SITUAȚIEI ȘCOLARE

[]Baza de date poate fi privită ca o colecție de fișiere interconectate care conțin nucleul de date necesare unui sistem informatic.

3.1. Aplicatia bazelor de date

Aplicația este bazată pe interogarea unei baze de date numită universitate având 24 tabele. Structura bazei de date este prezentată mai jos.

Pentru realizarea lucrării de licență vor fi prezentate doar o parte din funcțiile aplicației și anume logarea studentului (folosind tabela users), afișarea datelor personale (folosind tabela studenți) și functia de afișarea notelor (folosind tabelele materie, note și confani).

Pentru prezentarea tabelelor a fost folosită o aplicație phpmyadmin, inclusă în pachetul Xamp.

Aplicația foloseste o copie a bazei de date a studenților, originalul aflându-se integrat în aplicația de gestiune a studenților aflată în secretariatul universității.

Interfața web a fost dezvoltată după modelul și structura aplicației de gestiune a studenților.

.

3.2. Înterfața login

Pentru realizarea interfeței de autentificare a fost folosit un formular în care se completează utilizatorul și parola, acestea fiind verificate folosind funcția SELECT în baza de date.

Dacă rezultatul este pozitiv adică în tabela users a fost găsit atât utilizatorul cât și parola aferentă atunci se începe o sesiune nouă și este încărcat pasul următor.

Meniul principal conține link-uri către funcțiile aplicației. Aceste funcții sunt interpretate cu ajutorul fișierului main.php, urmat de comanda (GET cmd) specifică. În funcție de această comandă este lansat fișierul php următor.

Codul pentru verificarea utilizatorului și al parolei este prezentat în continuare.

3.3 Verificarea datelor personale

Dacă din meniul principal a fost aleasă comanda pentru afișarea datelor personale (cmd=modstudenti) atunci este încărcat fișierul modstudenți.php.

Acest fișier realizează crearea unui formular în care cu ajutorul funcției SELECT este interogată baza de date și sunt afișate datele studentului.

3.4 Verificarea situatiei scolare

Interfața pentru afișarea notelor este prezentată în figura urmatoare :

Pentru reținerea și afișarea notelor sunt folosite 3 tabele : o tabelă materia care memorează informațiile despre disiplină (profesorii titulari, nr. de ore pentru laborator, seminar, curs, codul materiei); o tabelă de configurare ani (confani) care retine structura anului universitar : pentru o anumită promotie se aplică o structură a materiilor, nr. de credite pentru fiecare, tipul materiei, obligatorie – optională – facultativă, formă de examinare, etc. Pe lângă aceste informații sunt memorate id-ul materiei (codul unic pentru a putea exact materia) și un cod propriu și unic pentru identificarea exactă a poziției în cadrul tabelei.

Aflarea notelor se face interogând tabela note de unde ne interesează să afișăm ultima înregistrare a notei pentru un student cu identificatorul idstud la materia identificată prin idconfani. Notele sunt de tip real și sunt separate pentru nota final, nota la curs și nota pe activitate. Astfel sunt afișate toate informațiile de care este nevoie, calcúlate mediile și nr. total de credite obținut.

Secvența de cod pentru afișarea situației școlare este prezentată în continuare.

CAPITOLUL IV

CONCLUZII

Concluzii

Lucrarea prezintă o aplicație complexă folosind interfață web și baze de date mysql. Soluția aleasă este o soluție ieftină tinând seama că pachetul integrat xampp este gratuit, dar și datorită faptului că la ora actuală limbajele php, html și javascript sunt foarte cunoscute și de aici și programarea devine mai ieftină.

WWW-ul reprezinta cel mai utilizat si mai atractiv serviciu Internet. In traducere aproximativa, World Wide Web inseamna ”tesatura raspandita in intreaga lume”. Este formata dintr-o colectie de documente specifice acestui serviciu, conectate logic intre ele, denumite hipertexte. A fost aleasă această soluție pentru portabilitatea între sistemele de operare, servere. Majoritatea clientilor Web (browserelor) sunt independenti de platforma ceea ce prezinta un avantaj pentru crearea unei versiuni bazate pe Web a aplicatiilor de tip baza de date.

Pentru realizarea interfeței actuale au fost folosite trei aplicații care înca de la dezvoltarea lor (Apache, MySQL, PHP) au fost gandite in oarecare masura sa conlucreze fiind destinate pentru serverele Unix dar avand acum pe piata lansate si versiuni cu suport pentru utilizatorii Windows sau Mac OS. XAMPP este un pachet software care include AMPP (server Apache, MySQL, PHP și Perl). Acest pachet este un pachet necomercial, care poate fi gasit în distribuții atât pentru Windows cât și pentru Linux.

Structura bazei de date a fost gândită și pusă în aplicare încă din anul 2007 când a fost realizat primul soft care să gestioneze situația studenților din universitatea Ioan Slavici. La această structură au fost aduse modificări minore pe parcursul timpului, dar în acest an 2010, a fost total reproiectată cu scopul pregătirii pentru RMU (Registrul Matricol Unic) întrucât anumite date nu erau incluse în baza de date. Datele anterioare au fost integrate în noua structură. Odată cu realizarea acestor modificări majore a fost realizată si prezenta interfată prin care studentii pot să-si urmarească situatia scolară.

ANEXE

Codul sursa main.php

<?php

include 'include/config.php';

// initializam sesiunea

session_start();

// verificam daca cine acceseaza pagina este autorizat

if (!isset($_SESSION['db_is_logged_in']) || $_SESSION['db_is_logged_in'] !== true) {

// daca nu este autorizat afisam index.php

header('Location: index.php');

exit;

}

include 'include/debuglib.php';

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<!– saved from url=(0014)about:internet –>

<html>

<head>

<title>main.gif</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<!–Fireworks 8 Dreamweaver 8 target. Created Sat Feb 24 19:46:38 GMT+0200 2007–>

<script type="text/javascript" language="JavaScript" src="<?echo SCRIPT_DIRECT_FOLDER?>menu/browser.js"></script>

<script type="text/javascript" language="JavaScript" src="<?echo SCRIPT_DIRECT_FOLDER?>menu/menu.js"></script>

<script type="text/javascript" language="JavaScript" src="<?echo SCRIPT_DIRECT_FOLDER?>functii.js"></script>

<script language="JavaScript">

<!–

function MM_findObj(n, d) { //v4.01

var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {

d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}

if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];

for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);

if(!x && d.getElementById) x=d.getElementById(n); return x;

}

function MM_swapImage() { //v3.0

var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)

if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}

}

function MM_swapImgRestore() { //v3.0

var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;

}

function MM_preloadImages() { //v3.0

var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();

var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)

if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}

}

//–>

</script>

<body onload="init()">

</head>

<body bgcolor="#ffffff" onLoad="MM_preloadImages('<?php echo IMG_DIRECT_FOLDER ?>main_r2_c4_f2.gif','<?php echo IMG_DIRECT_FOLDER ?>main_r2_c6_f2.gif','<?php echo IMG_DIRECT_FOLDER ?>main_r2_c8_f2.gif','<?php echo IMG_DIRECT_FOLDER ?>main_r2_c10_f2.gif','<?php echo IMG_DIRECT_FOLDER ?>main_r2_c12_f2.gif','<?php echo IMG_DIRECT_FOLDER ?>main_r2_c14_f2.gif');">

<table border="0" cellpadding="0" cellspacing="0" width="950">

<!– fwtable fwsrc="main.png" fwbase="main.gif" fwstyle="Dreamweaver" fwdocid = "830750665" fwnested="0" –>

<tr>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="18" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="8" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="6" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="153" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="3" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="105" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="4" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="194" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="3" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="65" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="5" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="159" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="4" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="77" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="3" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="120" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="6" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="17" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="1" border="0" alt=""></td>

</tr>

<tr>

<td colspan="18"><img name="main_r1_c1" src="<?php echo IMG_DIRECT_FOLDER ?>main_r1_c1.gif" width="950" height="56" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="56" border="0" alt=""></td>

</tr>

<tr bgcolor = "#951029">

<td rowspan="2" colspan="3"><img name="main_r2_c1" src="<?php echo IMG_DIRECT_FOLDER ?>main_r2_c1.gif" width="32" height="35" border="0" alt=""></td>

<td></td>

<td rowspan="2"><img name="main_r2_c5" src="<?php echo IMG_DIRECT_FOLDER ?>main_r2_c5.gif" width="3" height="35" border="0" alt=""></td>

<td></td>

<td rowspan="2"><img name="main_r2_c7" src="<?php echo IMG_DIRECT_FOLDER ?>main_r2_c7.gif" width="4" height="35" border="0" alt=""></td>

<td></td>

<td rowspan="2"><img name="main_r2_c9" src="<?php echo IMG_DIRECT_FOLDER ?>main_r2_c9.gif" width="3" height="35" border="0" alt=""></td>

<td></td>

<td rowspan="2"><img name="main_r2_c11" src="<?php echo IMG_DIRECT_FOLDER ?>main_r2_c11.gif" width="5" height="35" border="0" alt=""></td>

<td></td>

<td rowspan="2"><img name="main_r2_c13" src="<?php echo IMG_DIRECT_FOLDER ?>main_r2_c13.gif" width="4" height="35" border="0" alt=""></td>

<td></td>

<td rowspan="2"><img name="main_r2_c15" src="<?php echo IMG_DIRECT_FOLDER ?>main_r2_c15.gif" width="3" height="35" border="0" alt=""></td>

<td><img name="main_r2_c16" src="<?php echo IMG_DIRECT_FOLDER ?>main_r2_c16.gif" width="120" height="23" border="0" alt=""></td>

<td rowspan="2" colspan="2"><img name="main_r2_c17" src="<?php echo IMG_DIRECT_FOLDER ?>main_r2_c17.gif" width="23" height="35" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="23" border="0" alt=""></td>

</tr>

<tr>

<td><img name="main_r3_c4" src="<?php echo IMG_DIRECT_FOLDER ?>main_r3_c4.gif" width="153" height="12" border="0" alt=""></td>

<td><img name="main_r3_c6" src="<?php echo IMG_DIRECT_FOLDER ?>main_r3_c6.gif" width="105" height="12" border="0" alt=""></td>

<td><img name="main_r3_c8" src="<?php echo IMG_DIRECT_FOLDER ?>main_r3_c8.gif" width="194" height="12" border="0" alt=""></td>

<td><img name="main_r3_c10" src="<?php echo IMG_DIRECT_FOLDER ?>main_r3_c10.gif" width="65" height="12" border="0" alt=""></td>

<td><img name="main_r3_c12" src="<?php echo IMG_DIRECT_FOLDER ?>main_r3_c12.gif" width="159" height="12" border="0" alt=""></td>

<td><img name="main_r3_c14" src="<?php echo IMG_DIRECT_FOLDER ?>main_r3_c14.gif" width="77" height="12" border="0" alt=""></td>

<td><img name="main_r3_c16" src="<?php echo IMG_DIRECT_FOLDER ?>main_r3_c16.gif" width="120" height="12" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="12" border="0" alt=""></td>

</tr>

<tr>

<td rowspan="4"><img name="main_r4_c1" src="<?php echo IMG_DIRECT_FOLDER ?>main_r4_c1.gif" width="18" height="559" border="0" alt=""></td>

<td colspan="16"><img name="main_r4_c2" src="<?php echo IMG_DIRECT_FOLDER ?>main_r4_c2.gif" width="915" height="7" border="0" alt=""></td>

<td rowspan="4"><img name="main_r4_c18" src="<?php echo IMG_DIRECT_FOLDER ?>main_r4_c18.gif" width="17" height="559" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="7" border="0" alt=""></td>

</tr>

<tr>

<td><img name="main_r5_c2" src="<?php echo IMG_DIRECT_FOLDER ?>main_r5_c2.gif" width="8" height="534" border="0" alt=""></td>

<td colspan="14">

<?php

$cmd="";

if(isset($_GET['cmd'])) $action=$_GET['cmd'];

switch($action){

case "materii": {

echo '<iframe src="'.PHP_DIRECT_FOLDER.'materii.php?action=clear" name="visual" width="901" marginwidth="0" height="534" marginheight="0" align="top" scrolling="no" frameborder="0"></iframe>';

break;

}

case "persoane": {

echo '<iframe src="'.PHP_DIRECT_FOLDER.'persoane.php?action=clear" name="visual" width="901" marginwidth="0" height="534" marginheight="0" align="top" scrolling="no" frameborder="0"></iframe>';

break;

}

case "studenti": {

echo '<iframe src="'.PHP_DIRECT_FOLDER.'studenti.php?action=clear" name="visual" width="901" marginwidth="0" height="534" marginheight="0" align="top" scrolling="no" frameborder="0"></iframe>';

break;

}

case "modstudenti": {

echo '<iframe src="'.PHP_DIRECT_FOLDER.'modstudenti.php?action=clear" name="visual" width="901" marginwidth="0" height="534" marginheight="0" align="top" scrolling="no" frameborder="0"></iframe>';

break;

}

case "notereg": {

echo '<iframe src="'.PHP_DIRECT_FOLDER.'notereg.php" name="visual" width="901" marginwidth="0" height="534" marginheight="0" align="top" scrolling="YES" frameborder="0"></iframe>';

break;

}

case "listpersoane": {

echo '<iframe src="'.PHP_DIRECT_FOLDER.'listpersoane.php?action=clear' .$_GET.'" name="visual" width="901" marginwidth="0" height="534" marginheight="0" align="top" scrolling="no" frameborder="0"></iframe>';

break;

}

case "conf_ani": {

echo '<iframe src="'.PHP_DIRECT_FOLDER.'conf_ani.php?'.$_GET.'" name="visual" width="901" marginwidth="0" height="534" marginheight="0" align="top" scrolling="no" frameborder="0"></iframe>';

break;

}

case "listareabsolvent": {

echo '<iframe src="'.PHP_DIRECT_FOLDER.'listareabsolvent.php?inf='.$_GET['inf'].'" name="visual" width="901" marginwidth="0" height="534" marginheight="0" align="top" scrolling="YES" frameborder="0"></iframe>';

break;

}

case "modabsolvent": {

echo '<iframe src="'.PHP_DIRECT_FOLDER.'modabsolvent.php?inf='.$_GET['inf'].'" name="visual" width="901" marginwidth="0" height="534" marginheight="0" align="top" scrolling="YES" frameborder="0"></iframe>';

break;

}

case "inchidepromotie": {

echo '<iframe src="'.PHP_DIRECT_FOLDER.'finpromo.php'.'" name="visual" width="901" marginwidth="0" height="534" marginheight="0" align="top" scrolling="YES" frameborder="0"></iframe>';

break;

}

default: {

echo '<iframe src="view.php" name="visual" width="901" marginwidth="0" height="534" marginheight="0" align="top" scrolling="no" frameborder="0"></iframe>';

break;

}

}

?>

</td>

<td><img name="main_r5_c17" src="<?php echo IMG_DIRECT_FOLDER ?>main_r5_c17.gif" width="6" height="534" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="534" border="0" alt=""></td>

</tr>

<tr>

<td colspan="16"><img name="main_r6_c2" src="<?php echo IMG_DIRECT_FOLDER ?>main_r6_c2.gif" width="915" height="5" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="5" border="0" alt=""></td>

</tr>

<tr>

<td colspan="16"><img name="main_r7_c2" src="<?php echo IMG_DIRECT_FOLDER ?>main_r7_c2.gif" width="915" height="13" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="13" border="0" alt=""></td>

</tr>

</table>

</body>

</html>

Codul shownote.php

<?php

include '../config.php';

include '../dbopen.php';

session_start();

// verificam daca cine acceseaza pagina este autorizat

if (!isset($_SESSION['db_is_logged_in']) || $_SESSION['db_is_logged_in'] !== true) {

// daca nu este autorizat afisam index.php

header('Location: index.php');

exit;

}

include '../debuglib.php';

$YPOS=0;

if (isset($_GET['scroll'])) $YPOS=$_GET['scroll'];

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Untitled Document</title>

<script language="JavaScript">

function text_Style(formname, color1, color2) {

var formbj = document.getElementById(formname);

var inputArr = formbj.getElementsByTagName("INPUT");

for (i=0; i<inputArr.length; i++)

{

if (inputArr[i].type=="text" )

{

inputArr[i].onfocus = function()

{

this.style.backgroundColor = color2;

};

inputArr[i].onblur = function()

{

this.style.backgroundColor = color1;

};

}

}

var inputArr = formbj.getElementsByTagName("TEXTAREA");

for (i=0; i<inputArr.length; i++)

{

inputArr[i].onfocus = function()

{

this.style.backgroundColor = color2;

};

inputArr[i].onblur = function()

{

this.style.backgroundColor = color1;

};

}

}

function NewWindow(mypage,myname,w,h,scroll,pos)

{

var win=null;

if(pos=="random")

{

LeftPosition=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;

TopPosition=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;

}

if(pos=="center")

{

LeftPosition=(screen.width)?(screen.width-w)/2:100;

TopPosition=(screen.height)?(screen.height-h)/2:100;

}

else

if((pos!="center" && pos!="random") || pos==null)

{

LeftPosition=0;

TopPosition=20

}

settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no';

win=window.open(mypage,myname,settings);

}

function mediaf(dtform,dtfld,dtfldc,dtflda) {

var err = 0

var dtstr = dtfld.value

var valid = "0123456789."

var temp;

var mesaj='Sunt acceptatea doar numere.';

for (var i=0; i< dtstr.length; i++)

{

temp = "" + dtstr.substring(i, i+1);

if (valid.indexOf(temp) == "-1") err = 1;

}

if (err==1) {

alert(mesaj);

dtfld.focus();

dtfld.select();

return false;

} else {

dtflda.value=dtstr;

dtfldc.value=dtstr;

return true;

}

}

function mediaa(dtform,dtfld) {

var err = 0

var dtstr = dtfld.value

var valid = "0123456789"

var temp;

var mesaj='Sunt acceptatea doar numere.';

for (var i=0; i< dtstr.length; i++)

{

temp = "" + dtstr.substring(i, i+1);

if (valid.indexOf(temp) == "-1") err = 1;

}

if (err==1) {

alert(mesaj);

dtfld.focus();

dtfld.select();

return false;

} else {

return true;

}

}

function mediac(dtform,dtfld) {

var err = 0

var dtstr = dtfld.value

var valid = "0123456789"

var temp;

var mesaj='Sunt acceptatea doar numere.';

for (var i=0; i< dtstr.length; i++)

{

temp = "" + dtstr.substring(i, i+1);

if (valid.indexOf(temp) == "-1") err = 1;

}

if (err==1) {

alert(mesaj);

dtfld.focus();

dtfld.select();

return false;

} else {

return true;

}

}

function getcoord(ff) {

//return document.documentElement.scrollTop;

var scrOfX = 0, scrOfY = 0;

if( typeof( window.pageYOffset ) == 'number' ) {

//Netscape compliant

scrOfY = window.pageYOffset;

scrOfX = window.pageXOffset;

} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {

//DOM compliant

scrOfY = document.body.scrollTop;

scrOfX = document.body.scrollLeft;

} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {

//IE6 standards compliant mode

scrOfY = document.documentElement.scrollTop;

scrOfX = document.documentElement.scrollLeft;

}

return [ scrOfY ];

}

function putcoord(YPOS) {

//document.documentElement.scrollTop=YPOS;

window.scroll(0,YPOS);

}

function submitform(form, url)

{

for (i=2; i<arguments.length; i=i+2)

{

if (arguments[i+1]=="" )

{

alert("Trebuie introdus campul \n"+arguments[i]);

return;

}

}

var myform;

myform = document.all(form);

// url=url+getcoord();

myform.action=url;

myform.submit();

}

</script>

<style type="text/css">

<!–

body {

background-color: #CFB59C;

}

.font_10 {

font-size: 10px;

}

.font_14 {

font-size: 14px;

}

.font_11 {

font-size: 11px;

}

.font_12 {

font-size: 12px;

}

table {

border: 1px solid #000000;

background-color: #CFB59C;

}

#shownote input {

background-color: #CFB59C;

font-size: 10px;

font-family: "Times New Roman", Times, serif;

margin: 0px;

border: 1px solid #FFFFFF;

padding: 0px;

height: 15px;

clear: left;

float: left;

}

#shownote textarea {

background-color: #CFB59C;

font-size: 14px;

font-family: "Times New Roman", Times, serif;

margin: 0px;

border: 1px solid #FFFFFF;

padding: 0px;

clear: left;

float: left;

}

#shownote select {

background-color: #CFB59C;

font-size: 14px;

font-family: "Times New Roman", Times, serif;

margin: 0px;

border: 0px none #FFFFFF;

padding: 0px;

height: 15px;

clear: left;

float: left;

}

–>

</style></head>

<script language="JavaScript" src="<?=SCRIPT_DIRECT_FOLDER?>functii.js"></script>

<?php

$promotie="";

$medietotal=0;

$nrani=0;

$specializare=0;

$inregani=array(1=>0,0,0,0,0);

if (isset($_GET['idstud'])) $idlucru = $_GET['idstud'];

$query_rst = "SELECT * FROM `studenti` WHERE `id`='".$idlucru."'";

$rst = mysql_query($query_rst) or die('Oups!<br>' . mysql_error());

$row_rst = mysql_fetch_assoc($rst);

$totalRows_rst = mysql_num_rows($rst);

$promotie=$row_rst['promotia'];

$specializare=$row_rst['specializare'];

$query_rst1 = "SELECT * FROM `confani` WHERE CONVERT(`promotie` USING utf8)='".$promotie."' AND `specializare`='".$specializare."'";

$rst1 = mysql_query($query_rst1) or die('Oups!<br>' . mysql_error());

$row_rst1 = mysql_fetch_assoc($rst1);

$totalRows_rst1 = mysql_num_rows($rst1);

if ($totalRows_rst1!=0)

do {

$inregani[$row_rst1['anstudiu']]=$inregani[$row_rst1['anstudiu']]+1;

} while ($row_rst1 = mysql_fetch_assoc($rst1));

//print_a($inregani);

$comanda="";

if (isset($_GET['cmd'])) $comanda = $_GET['cmd'];

switch($comanda) {

case "modmat":

{

if (isset($_GET['idmod']))

{

$idconfani=$_GET['idmod'];

$notaf=$_POST['notaf'.$idconfani];

$notaa=$_POST['notaa'.$idconfani];

$notac=$_POST['notac'.$idconfani];

$sql = "SELECT MAX(id) FROM note";

$result=mysql_query($sql);

$row = mysql_result($result,0);

$maxid=$row+1;

$sql = "INSERT INTO `note` (`id`,`idstud`, `idconfani`, `notaf`, `notaa`, `notac`, `iduser`, `timemod`, `datamod`) VALUES ( '".$maxid."', '".$idlucru."', '".$idconfani."', '".$notaf."', '".$notaa."', '".$notac."', '".$_SESSION['iduser']."',NOW(), NOW());";

mysql_query($sql) or die('Eroare, nu am putut efectua comanda dumneavoastra !');

}

$inregani=array(1=>0,0,0,0,0);

$query_rst1 = "SELECT * FROM `confani` WHERE CONVERT(`promotie` USING utf8)='".$promotie."' AND `specializare`='".$specializare."'";

$rst1 = mysql_query($query_rst1) or die('Oups!<br>' . mysql_error());

$row_rst1 = mysql_fetch_assoc($rst1);

$totalRows_rst1 = mysql_num_rows($rst1);

if ($totalRows_rst1!=0)

do {

$inregani[$row_rst1['anstudiu']]=$inregani[$row_rst1['anstudiu']]+1;

} while ($row_rst1 = mysql_fetch_assoc($rst1));

break;

}

default :

{

break;

}

}

//print_a($inregani);

?>

<body onload="putcoord(<?=$YPOS?>)">

<form id="shownote" name="shownote" method="post" action="">

<div align="center">

<?php

$arrayLength = count($inregani);

for ($i = 1; $i <= $arrayLength; $i++)

if ($inregani[$i]!=0)

{

?>

<table width="830" border="0">

<tr><a name="an<?=$i?>" id="an<?=$i?>"></a>

<td colspan="2"><div align="center"><strong>Anul :</strong> <?php echo $roman[$i]; ?> </div></td>

<td width="230">&nbsp;</td>

<td width="95">&nbsp;</td>

<td width="45">&nbsp;</td>

<td width="45">&nbsp;</td>

<td colspan="2"></td>

<td colspan="2"></td>

<td width="26">&nbsp;</td>

<td width="26">&nbsp;</td>

</tr>

<?php

if ($inregani[$i]>1)

{

?>

<tr>

<td width="28"><div align="center"><strong>Nr.<br />

Crt.</strong></div></td>

<td width="50"><div align="center"><strong>Cod<br />

mat.</strong></div></td>

<td><div align="center"><strong>Denumire materie </strong></div></td>

<td><div align="center"><strong>ultima<br />

modif.</strong></div></td>

<td><div align="center"><strong>Sem.</strong></div></td>

<td><div align="center"><strong>Nota F.</strong></div></td>

<td width="45"><div align="center"><strong>Ex.</strong></div></td>

<td width="45"><div align="center"><strong>Activ.</strong></div></td>

<td width="50"><div align="center"><strong>Credite</strong></div></td>

<td width="75"><div align="center"><strong>Tip<br />

mat.</strong></div></td>

<td><div align="center"></div></td>

<td><div align="center"></div></td>

</tr>

<?php

$query_rst1 = "SELECT * FROM `confani` WHERE CONVERT(`promotie` USING utf8)='".$promotie."' AND `specializare`='".$specializare."' AND `anstudiu`='".$i."' AND `idmaterie`!='0' ORDER BY `id` ASC ";

$rst1 = mysql_query($query_rst1) or die('Oups!<br>' . mysql_error());

$row_rst1 = mysql_fetch_assoc($rst1);

$nrcrt=0;

$notasem1=0;

$notasem2=0;

$creditesem1=0;

$creditesem2=0;

$nrmatsem1=1;

$nrmatsem2=1;

do {

$nrcrt=$nrcrt+1;

$query_rst2 = "SELECT * FROM `materie` WHERE `id`='".$row_rst1['idmaterie']."'";

$rst2 = mysql_query($query_rst2) or die('Oups!<br>' . mysql_error());

$row_rst2 = mysql_fetch_assoc($rst2);

?>

<tr>

<td><?=$nrcrt?></td>

<td><?=$row_rst2['cod_mat']?></td>

<td><div align="left"><?=$row_rst2['denum_mat']?></div></td>

<?php

$query_rst = "SELECT * FROM `note` WHERE `idstud`='".$idlucru."' AND `idconfani`='".$row_rst1['id']."' ORDER BY `datamod` DESC , `timemod` DESC";

$rst = mysql_query($query_rst) or die('Oups!<br>' . mysql_error());

$row_rst = mysql_fetch_assoc($rst);

$totalRows_rst = mysql_num_rows($rst);

?>

<td><div align="center">

<span class="font_10"><?=$row_rst['datamod']?>; <?=$row_rst['timemod']?>

<span></div></td>

<td><div align="center"><?=$roman[$row_rst1['semestru']]?> </div></td>

<td><div align="center">

<input type="text" name="notaf<?=$row_rst1['id']?>" id="notaf<?=$row_rst1['id']?>" size="4" maxlength="5" style="width:28px;height:14px;" value="<?=$row_rst['notaf']?>" onchange="return mediaf(this.form,this.form.notaf<?=$row_rst1['id']?>,this.form.notac<?=$row_rst1['id']?>,this.form.notaa<?=$row_rst1['id']?>)"/>

</div></td>

<td><div align="center">

<input type="text" name="notac<?=$row_rst1['id']?>" id="notac<?=$row_rst1['id']?>" size="3" maxlength="5" style="width:28px;height:14px;" value="<?=$row_rst['notac']?>" onchange="return mediac(this.form,this.form.notac<?=$row_rst1['id']?>)"/>

</div></td>

<td><div align="center">

<input type="text" name="notaa<?=$row_rst1['id']?>" id="notaa<?=$row_rst1['id']?>" size="3" maxlength="5" style="width:28px;height:14px;" value="<?=$row_rst['notaa']?>" onchange="return mediaa(this.form,this.form.notaa<?=$row_rst1['id']?>)"/>

</div></td>

<td><div align="center"><?=$row_rst1['credite']?> </div></td>

<?php if ($row_rst1['semestru']=="1")

{

$notasem1=$notasem1+$row_rst['notaf']*$row_rst1['credite'];

if ($row_rst['notaf']>=5) $creditesem1=$creditesem1+$row_rst1['credite'];

$nrmatsem1=$nrmatsem1+1;

}

else {

$notasem2=$notasem2+$row_rst['notaf']*$row_rst1['credite'];

if ($row_rst['notaf']>=5) $creditesem2=$creditesem2+$row_rst1['credite'];

$nrmatsem2=$nrmatsem2+1;

}

?>

<td>

<div align="center">

<?php

$max = count($tipmaterie);

for ($j = 1; $j <= $max; $j++)

if ($tipmaterie[$j]!="") { if ($j==$row_rst1['tipdisciplina']) echo $tipmaterie[$j];

else;

}

else $max=$max+1;

?>

</div></td>

<td></td>

<td><div align="center"><strong><a href="#" onclick="submitform('shownote','shownote.php?idstud=<?=$idlucru?>&cmd=modmat&idmod=<?=$row_rst1['id']?>&scroll='+getcoord(self))">Modifica</a></strong></div></td>

</tr>

<?php

} while ($row_rst1 = mysql_fetch_assoc($rst1));

?>

<tr>

<td>&nbsp;</td>

<td colspan="2"><strong>Media : </strong></td>

<td>&nbsp;</td>

<td>&nbsp;</td>

<td colspan="3"><div align="center">

<?php

$medie=($notasem1+$notasem2)/60;

printf( '%0.2f',$medie);

$medietotal=$medietotal+$medie;

$nrani=$nrani+1;

?>

</div></td>

<td><div align="center"><?=$creditesem1?>/<?=$creditesem2?></div></td>

<td>&nbsp;</td>

<td>&nbsp;</td>

<td>&nbsp;</td>

</tr>

<?php

};

?>

</table>

<?php

};

?>

<center> Media finala : <?php printf( '%0.2f',$medietotal/$nrani) ?></center>

</form>

<script>

text_Style('shownote','#CFB59C','#FFCC33');

</script>

<p>&nbsp;</p>

</body>

</html>

Codul modstudent.php

<?php

<?php

include '../config.php';

include '../dbopen.php';

include '../debuglib.php';

session_start();

// verificam daca cine acceseaza pagina este autorizat

if (!isset($_SESSION['db_is_logged_in']) || $_SESSION['db_is_logged_in'] !== true) {

// daca nu este autorizat afisam index.php

header('Location: index.php');

exit;

}

$_SESSION['help'] = 'modstudenti' ;

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<!– saved from url=(0014)about:internet –>

<html>

<head>

<title>studenti</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<!–Fireworks 8 Dreamweaver 8 target. Created Sun Mar 11 01:01:02 GMT+0200 2007–>

<script language="JavaScript">

<!–

function MM_findObj(n, d) { //v4.01

var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {

d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}

if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];

for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);

if(!x && d.getElementById) x=d.getElementById(n); return x;

}

function MM_swapImage() { //v3.0

var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)

if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}

}

function MM_swapImgRestore() { //v3.0

var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;

}

function MM_preloadImages() { //v3.0

var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();

var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)

if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}

}

//–>

//–>

function text_Style(formname, color1, color2) {

var formbj = document.getElementById(formname);

var inputArr = formbj.getElementsByTagName("INPUT");

for (i=0; i<inputArr.length; i++)

{

if (inputArr[i].type=="text" )

{

inputArr[i].onfocus = function()

{

this.style.backgroundColor = color2;

};

inputArr[i].onblur = function()

{

this.style.backgroundColor = color1;

};

}

}

var inputArr = formbj.getElementsByTagName("TEXTAREA");

for (i=0; i<inputArr.length; i++)

{

inputArr[i].onfocus = function()

{

this.style.backgroundColor = color2;

};

inputArr[i].onblur = function()

{

this.style.backgroundColor = color1;

};

}

}

function NewWindow(mypage,myname,w,h,scroll,pos)

{

var win=null;

if(pos=="random")

{

LeftPosition=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;

TopPosition=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;

}

if(pos=="center")

{

LeftPosition=(screen.width)?(screen.width-w)/2:100;

TopPosition=(screen.height)?(screen.height-h)/2:100;

}

else

if((pos!="center" && pos!="random") || pos==null)

{

LeftPosition=0;

TopPosition=20

}

settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no';

win=window.open(mypage,myname,settings);

}

function checkdate(dtform,dtfld) {

var err = 0

var dtstr = dtfld.value

var valid = "0123456789-"

var temp;

var mesaj='Data trebuie introdusa in urmatorul format zi/luna/an .\nData trebuie schimbata.';

for (var i=0; i< dtstr.length; i++)

{

temp = "" + dtstr.substring(i, i+1);

if (valid.indexOf(temp) == "-1") err = 1;

}

if (dtstr.length != 10) err=1;

var b = dtstr.substring(0, 2); // day

var c = dtstr.substring(2, 3);// '/'

var d = dtstr.substring(3, 5); // month

var e = dtstr.substring(5, 6);// '/'

var f = dtstr.substring(6, 10); // year

if (b<1 || b>31) {err = 1; mesaj='Eorare la zi !'}

if (c != '-') err = 1;

if (d<1 || d>12) {err = 1; mesaj='Eorare la luna !'}

if (e != '-') err = 1;

if (f<1900 || f>2099) {err = 1; mesaj='Anul trebuie introdus intre valorile 1900 si 2099 !';}

if (d==4 || d==6 || d==9 || d==11)

{

if (b==31) {err=1; mesaj='Ziua din luna introdusa nu e corecta !';}

}

if (d==2)

{

var g=parseInt(f/4)

if (isNaN(g))

{

err=1; mesaj='Ziua din luna introdusa nu e corecta !';

}

if (b>29) {err=1; mesaj='Ziua din luna introdusa nu e corecta !';}

if (b==29 && ((f/4)!=parseInt(f/4))) {err=1; mesaj='Ziua din luna introdusa nu e corecta !';}

}

var curdate=new Date();

var iDate = new Date(f,d-1,b);

if (err==1) {

alert(mesaj);

mesaj='Data trebuie introdusa in urmatorul format zi/luna/an .\nData trebuie schimbata !';

dtfld.focus();

dtfld.select();

return false;

} else if (iDate > curdate) {

alert('Data trebuie introdusa inainte de ziua curenta !');

dtfld.focus();

dtfld.select();

return false;

}else {

return true;

}

}

</script>

<script language="JavaScript" src="<?=SCRIPT_DIRECT_FOLDER?>functii.js"></script>

<style type="text/css">

<!–

body {

background-color: #CFB59C;

}

.font_10 {

font-size: 10px;

}

.font_09 {

font-size: 9px;

}

.font_11 {

font-size: 11px;

}

.font_12 {

font-size: 12px;

}

#frmstudenti input {

background-color: #CFB59C;

font-size: 14px;

font-family: "Times New Roman", Times, serif;

margin: 0px;

border: 1px solid #FFFFFF;

padding: 0px;

height: 15px;

}

#frmstudenti textarea {

background-color: #CFB59C;

font-size: 14px;

font-family: "Times New Roman", Times, serif;

margin: 0px;

border: 1px solid #FFFFFF;

padding: 0px;

clear: left;

float: left;

}

#frmstudenti select {

background-color: #CFB59C;

font-size: 14px;

font-family: "Times New Roman", Times, serif;

margin: 0px;

border: 0px none #FFFFFF;

padding: 0px;

height: 15px;

}

–>

</style>

</head>

<?php

$idlucru=0;

if (isset($_GET['id'])) {

$idlucru = $_GET['id'];

$query_rst = "SELECT *, DATE_FORMAT(datanastere, '%d-%m-%Y') AS corect FROM `studenti` WHERE `id`= ".$idlucru;

$rst = mysql_query($query_rst) or die('Oups!<br>' . mysql_error());

$row = mysql_fetch_assoc($rst);

$prefill=array("nume"=>$row['nume'],"prenume"=>$row['prenume'],"pren_tata"=>$row['prenume_tata'],"pren_mama"=>$row['prenume_mama'],"sexul"=>$row['sexul'],"nume_nastere"=>$row['nume_nastere'],"cetatenie"=>$row['cetatenie'],"nationalitate"=>$row['nationalitate'],"domiciliu"=>$row['domiciliu'],"localitatea"=>$row['localitatea'],"judetul"=>$row['judetul'],"cdpostal"=>$row['cdpostal'],"tara"=>$row['tara'],"tel_fix"=>$row['tel_fix'],"tel_mobil"=>$row['tel_mobil'],"actident"=>$row['actident'],"seria"=>$row['seria'],"numar"=>$row['numar'],"cnp"=>$row['cnp'],"data_nastere"=>$row['corect'],"locul_nastere"=>$row['loculnastere'],"stagiumilitar"=>$row['stagiumilitar'],"mediabac"=>$row['mediabac'],"mediamulti"=>$row['mediamulti'],"stud_fac"=>$row['stud_fac'],"stud_abs"=>$row['stud_abs'],"volumul"=>$row['volumul'],"informare"=>$row['informare'],"work"=>$row['work'],"nr_mat"=>$row['nr_mat'],"specializare"=>$row['specializare'],"forma"=>$row['forma'],"exportweb"=>$row['exportweb'],"promotia"=>$row['promotia'], "observatii"=>$row['observatii'],"poza"=>$row['poza']);

if (trim($prefill["poza"]," ")=="") $prefill["poza"]="pozalipsa.jpg";

} else

$action='';

if (isset($_GET['action'])) {

$action = $_GET['action'];

}

switch($action) {

case "clear":

{

$prefill=array("nume"=>"","prenume"=>"","pren_tata"=>"","pren_mama"=>"","sexul"=>"1","nume_nastere"=>"","cetatenie"=>"","nationalitate"=>"","domiciliu"=>"","localitatea"=>"","judetul"=>"","cdpostal"=>"","tara"=>"","tel_fix"=>"","tel_mobil"=>"","actident"=>"","seria"=>"","numar"=>"","cnp"=>"","data_nastere"=>"00-00-0000","locul_nastere"=>"","stagiumilitar"=>"","promotia"=>"","volumul"=>"","nr_mat"=>"","specializare"=>"0", "forma"=>"0","mediabac"=>"","mediamulti"=>"","exportweb"=>0,"informare"=>"","work"=>"","stud_abs"=>"","stud_fac"=>"", "observatii"=>"","poza"=>"pozalipsa.jpg");

break;

}

case "add":

{

$prefill=array("nume"=>$_POST['nume'],"prenume"=>$_POST['prenume'],"sexul"=>$_POST['sexul'],"pren_tata"=>$_POST['pren_tata'],"pren_mama"=>$_POST['pren_mama'],"nume_nastere"=>$_POST['nume_nastere'],"cetatenie"=>$_POST['cetatenie'],"nationalitate"=>$_POST['nationalitate'],"domiciliu"=>$_POST['domiciliu'],"localitatea"=>$_POST['localitatea'],"judetul"=>$_POST['judetul'],"cdpostal"=>$_POST['cdpostal'],"tara"=>$_POST['tara'],"tel_fix"=>$_POST['tel_fix'],"tel_mobil"=>$_POST['tel_mobil'],"actident"=>$_POST['actident'],"seria"=>$_POST['seria'],"numar"=>$_POST['numar'],"cnp"=>$_POST['cnp'],"data_nastere"=>$_POST['data_nastere'],"locul_nastere"=>$_POST['locul_nastere'],"stagiumilitar"=>$_POST['stagiumilitar'],"promotia"=>$_POST['promotia'],"volumul"=>$_POST['volumul'],"nr_mat"=>$_POST['nr_mat'],"specializare"=>$_POST['specializare'],"forma"=>$_POST['forma'],"mediabac"=>$_POST['mediabac'],"mediamulti"=>$_POST['mediamulti'],"exportweb"=>$_POST['exportweb'],"informare"=>$_POST['informare'],"work"=>$_POST['work'],"stud_abs"=>$_POST['stud_abs'],"stud_fac"=>$_POST['stud_fac'], "observatii"=>$_POST['observatii'],"poza"=>$_POST['poza']);

$sql = "SELECT MAX(id) FROM studenti";

$result=mysql_query($sql);

$row = mysql_result($result,0);

$maxid=$row+1;

$numefisier="";

if (isset($_POST['numepoza'])) {

$filename = $_POST['numepoza'];

if(file_exists($filename)) {

$ext = substr(strrchr($filename, "."), 1);

$numefisier = 'stud'.$maxid.'.'.$ext;

$ServerFile = PICTURE_FOLDER . $numefisier;

$handle = fopen($filename, "rb");

$h2 = fopen($ServerFile, "wb");

$contents = '';

while (!feof($handle)) {

$contents = fread($handle, 1024);

fwrite($h2,$contents);

}

fclose($handle);

fclose($h2);

}

} else

{

?> <script>

alert("Fara poza !");

</script><?php

}

$sql = "INSERT INTO `studenti` (`id`,`nume`, `prenume`, `sexul`, `prenume_tata`,`prenume_mama`, `nume_nastere`, `cetatenie`, `nationalitate`, `domiciliu`, `localitatea`, `judetul`, `cdpostal`, `tara`, `tel_fix`, `tel_mobil`, `actident`, `seria`, `numar`, `cnp`, `datanastere`, `loculnastere`, `stagiumilitar`, `mediabac`, `mediamulti`, `stud_fac`, `stud_abs`, `informare`, `work`, `nr_mat`, `volumul`, `specializare`, `forma`, `exportweb`, `promotia`, `observatii`, `poza`) VALUES ( '".$maxid."', '".$_POST['nume']."', '".$_POST['prenume']."', '".$_POST['sexul']."', '".$_POST['pren_tata']."', '".$_POST['pren_mama']."', '".$_POST['nume_nastere']."', '".$_POST['cetatenie']."', '".$_POST['nationalitate']."', '".$_POST['domiciliu']."', '".$_POST['localitatea']."', '".$_POST['judetul']."', '".$_POST['cdpostal']."', '".$_POST['tara']."', '".$_POST['tel_fix']."', '".$_POST['tel_mobil']."', '".$_POST['actident']."', '".$_POST['seria']."', '".$_POST['numar']."', '".$_POST['cnp']."', STR_TO_DATE('".$_POST['data_nastere']."', '%d-%m-%Y'),'".$_POST['locul_nastere']."','".$_POST['stagiumilitar']."', '".$_POST['mediabac']."', '".$_POST['mediamulti']."', '".$_POST['stud_fac']."', '".$_POST['stud_abs']."', '".$_POST['informare']."', '".$_POST['work']."', '".$_POST['nr_mat']."', '".$_POST['volumul']."', '".$_POST['specializare']."', '".$_POST['forma']."', '".$_POST['exportweb']."', '".$_POST['promotia']."', '".$_POST['observatii']."', '".$numefisier."' );";

mysql_query($sql) or die('Eroare, nu am adaugat persoana dorita !');

update_database($_SESSION['iduser'], 1, 'studenti', $sql);

$sql = "SELECT MAX(id) FROM dosarestudenti";

$result=mysql_query($sql);

$row = mysql_result($result,0);

$maxid2=$row+1;

$query_rst = "SELECT * FROM `dosarestudenti` WHERE `id`= 1";

$rst = mysql_query($query_rst) or die('Oups!<br>' . mysql_error());

$row = mysql_fetch_assoc($rst);

$row['id']=$maxid2;

$row['idstudent']=$maxid;

$sql ="INSERT INTO `dosarestudenti` (`id`,`idstudent`";

$sql2=") VALUES ( '".$maxid2."', '".$maxid;

reset($row);$k=count($row);

next($row);$k=$k-1;next($row);$k=$k-1;

while ($k>>0) {

$sql=$sql.", `".key($row)."`";

$sql2=$sql2."', '".$row[key($row)];

next($row);$k=$k-1;

}

$sql=$sql.$sql2."' );";

mysql_query($sql) or die('Eroare, nu am adaugat persoana dorita !');

$prefill=array("nume"=>"","prenume"=>"","pren_tata"=>"","pren_mama"=>"","sexul"=>"1","nume_nastere"=>"","cetatenie"=>"","nationalitate"=>"","domiciliu"=>"","localitatea"=>"","judetul"=>"","cdpostal"=>"","tara"=>"","tel_fix"=>"","tel_mobil"=>"","actident"=>"","seria"=>"","numar"=>"","cnp"=>"","data_nastere"=>"00-00-0000","locul_nastere"=>"","stagiumilitar"=>"","promotia"=>"","volumul"=>"","nr_mat"=>"","specializare"=>"0", "forma"=>"0","mediabac"=>"","mediamulti"=>"","exportweb"=>0,"informare"=>"","work"=>"","stud_abs"=>"","stud_fac"=>"", "observatii"=>"","poza"=>"pozalipsa.jpg");

update_database($_SESSION['iduser'], 1, 'dosarestudenti', $sql);

$sql = "UPDATE `dosarestudenti` SET idstudent='0'";

reset($row);$k=count($row);

next($row);$k=$k-1;next($row);$k=$k-1;

while ($k>>0) {

$sql=$sql.", ".key($row)."='0'";

next($row);$k=$k-1;

next($row);$k=$k-1;

}

$sql=$sql." WHERE id='1';";

mysql_query($sql) or die('Eroare, nu am adaugat persoana dorita !');

break;

}

case "modif":

{

if (isset($_GET['idmod'])) {

$idmod = $_GET['idmod'];}

else break;

if ($idmod == 0) break;

$prefill=array("nume"=>$_POST['nume'],"prenume"=>$_POST['prenume'],"sexul"=>$_POST['sexul'],"pren_tata"=>$_POST['pren_tata'],"pren_mama"=>$_POST['pren_mama'],"nume_nastere"=>$_POST['nume_nastere'],"cetatenie"=>$_POST['cetatenie'],"nationalitate"=>$_POST['nationalitate'],"domiciliu"=>$_POST['domiciliu'],"localitatea"=>$_POST['localitatea'],"judetul"=>$_POST['judetul'],"cdpostal"=>$_POST['cdpostal'],"tara"=>$_POST['tara'],"tel_fix"=>$_POST['tel_fix'],"tel_mobil"=>$_POST['tel_mobil'],"actident"=>$_POST['actident'],"seria"=>$_POST['seria'],"numar"=>$_POST['numar'],"cnp"=>$_POST['cnp'],"data_nastere"=>$_POST['data_nastere'],"locul_nastere"=>$_POST['locul_nastere'],"stagiumilitar"=>$_POST['stagiumilitar'],"promotia"=>$_POST['promotia'],"volumul"=>$_POST['volumul'],"nr_mat"=>$_POST['nr_mat'],"specializare"=>$_POST['specializare'],"forma"=>$_POST['forma'],"mediabac"=>$_POST['mediabac'],"mediamulti"=>$_POST['mediamulti'],"exportweb"=>$_POST['exportweb'],"informare"=>$_POST['informare'],"work"=>$_POST['work'],"stud_abs"=>$_POST['stud_abs'],"stud_fac"=>$_POST['stud_fac'], "observatii"=>$_POST['observatii'],"poza"=>$_POST['poza']);

$numefisier =$prefill['poza'];

if (isset($_POST['numepoza'])) {

$filename = $_POST['numepoza'];

if(file_exists($filename)) {

$ext = substr(strrchr($filename, "."), 1);

$numefisier = 'stud'.$idmod.'.'.$ext;

$ServerFile = PICTURE_FOLDER . $numefisier;

$handle = fopen($filename, "rb");

$h2 = fopen($ServerFile, "wb");

$contents = '';

while (!feof($handle)) {

$contents = fread($handle, 1024);

fwrite($h2,$contents);

}

fclose($handle);

fclose($h2);

}

} else

{

}

$sql = "UPDATE `studenti` SET nume='".$_POST['nume']."', prenume='".$_POST['prenume']."', sexul='".$_POST['sexul']."', prenume_tata='".$_POST['pren_tata']."', prenume_mama='".$_POST['pren_mama']."', nume_nastere='".$_POST['nume_nastere']."', cetatenie='".$_POST['cetatenie']."', nationalitate='".$_POST['nationalitate']."', domiciliu='".$_POST['domiciliu']."', localitatea='".$_POST['localitatea']."', Judetul='".$_POST['judetul']."', cdpostal='".$_POST['cdpostal']."', tara='".$_POST['tara']."', tel_fix='".$_POST['tel_fix']."', tel_mobil='".$_POST['tel_mobil']."', actident='".$_POST['actident']."', seria='".$_POST['seria']."', numar='".$_POST['numar']."', cnp='".$_POST['cnp']."', datanastere= STR_TO_DATE('".$_POST['data_nastere']."', '%d-%m-%Y'), loculnastere='".$_POST['locul_nastere']."', stagiumilitar='".$_POST['stagiumilitar']."', mediabac='".$_POST['mediabac']."', mediamulti='".$_POST['mediamulti']."', stud_fac='".$_POST['stud_fac']."', stud_abs='".$_POST['stud_abs']."', informare='".$_POST['informare']."', work='".$_POST['work']."', nr_mat='".$_POST['nr_mat']."', volumul='".$_POST['volumul']."', specializare='".$_POST['specializare']."', forma='".$_POST['forma']."', exportweb='".$_POST['exportweb']."', promotia='".$_POST['promotia']."', observatii='".$_POST['observatii']."', poza='".$numefisier."', iduser= '".$_SESSION['iduser']."', timemod= NOW(), datamod= NOW() WHERE id='".$idmod."'";

//echo $sql;

mysql_query($sql) or die('Eroare, nu am adaugat persoana dorita !');

$prefill=array("nume"=>"","prenume"=>"","pren_tata"=>"","pren_mama"=>"","sexul"=>"1","nume_nastere"=>"","cetatenie"=>"","nationalitate"=>"","domiciliu"=>"","localitatea"=>"","judetul"=>"","cdpostal"=>"","tara"=>"","tel_fix"=>"","tel_mobil"=>"","actident"=>"","seria"=>"","numar"=>"","cnp"=>"","data_nastere"=>"00-00-0000","locul_nastere"=>"","stagiumilitar"=>"","promotia"=>"","volumul"=>"","nr_mat"=>"","specializare"=>"0", "forma"=>"0","mediabac"=>"","mediamulti"=>"","exportweb"=>0,"informare"=>"","work"=>"","stud_abs"=>"","stud_fac"=>"", "observatii"=>"","poza"=>"pozalipsa.jpg");

update_database($_SESSION['iduser'], 2, 'studenti', $sql);

break;

}

case "delete":

{

if (isset($_GET['iddel'])) {

$iddel = $_GET['iddel'];}

else

if ($iddel == 0) {

$prefill=array("nume"=>"","prenume"=>"","pren_tata"=>"","pren_mama"=>"","sexul"=>"1","nume_nastere"=>"","cetatenie"=>"","nationalitate"=>"","domiciliu"=>"","localitatea"=>"","judetul"=>"","cdpostal"=>"","tara"=>"","tel_fix"=>"","tel_mobil"=>"","actident"=>"","seria"=>"","numar"=>"","cnp"=>"","data_nastere"=>"00-00-0000","locul_nastere"=>"","stagiumilitar"=>"","promotia"=>"","volumul"=>"","nr_mat"=>"","specializare"=>"0", "forma"=>"0","mediabac"=>"","mediamulti"=>"","exportweb"=>0,"informare"=>"","work"=>"","stud_abs"=>"","stud_fac"=>"", "observatii"=>"","poza"=>"pozalipsa.jpg");

break;

}

$sql = "DELETE FROM `studenti` WHERE `id`=".$iddel." LIMIT 1;";

mysql_query($sql) or die('Eroare, nu am sters persoana dorita !');

$prefill=array("nume"=>"","prenume"=>"","pren_tata"=>"","pren_mama"=>"","sexul"=>"1","nume_nastere"=>"","cetatenie"=>"","nationalitate"=>"","domiciliu"=>"","localitatea"=>"","judetul"=>"","cdpostal"=>"","tara"=>"","tel_fix"=>"","tel_mobil"=>"","actident"=>"","seria"=>"","numar"=>"","cnp"=>"","data_nastere"=>"00-00-0000","locul_nastere"=>"","stagiumilitar"=>"","promotia"=>"","volumul"=>"","nr_mat"=>"","specializare"=>"0", "forma"=>"0","mediabac"=>"","mediamulti"=>"","exportweb"=>0,"informare"=>"","work"=>"","stud_abs"=>"","stud_fac"=>"", "observatii"=>"","poza"=>"pozalipsa.jpg");

update_database($_SESSION['iduser'], 3, 'studenti', $sql);

break;

}

default :

{

//$prefill=array("nume"=>"","prenume"=>"","pren_tata"=>"","titlu"=>"","cetatenie"=>"","nationalitate"=>"","domiciliu"=>"","localitatea"=>"","judetul"=>"","cdpostal"=>"","tara"=>"","tel_fix"=>"","tel_mobil"=>"","actident"=>"","seria"=>"","numar"=>"","cnp"=>"","data_nastere"=>"","locul_nastere"=>"","angajat"=>"","functia"=>"","studii"=>"","observatii"=>"","poza"=>PICTURE_DIRECT_FOLDER."pozalipsa.jpg");

break;

}

};

//$sql = "INSERT INTO `punetabela` (`nume`, `prenume`, `pren_tata`, `titlu`, `cetatenie`, `nationalitate`, `domiciliu`, `localitatea`, `judetul`, `cdpostal`, `tara`, `tel_fix`, `tel_mobil`, `actident`, `seria`, `numar`, `cnp`, `data_nastere`, `locul_nastere`, `angajat`, `functia`, `studii`, `observatii`) VALUES ( '".$_POST['nume']." ', '".$_POST['prenume']." ', '".$_POST['pren_tata']." ', '".$_POST['titlu']." ', '".$_POST['cetatenie']." ', '".$_POST['nationalitate']." ', '".$_POST['domiciliu']." ', '".$_POST['localitatea']." ', '".$_POST['judetul']." ', '".$_POST['cdpostal']." ', '".$_POST['tara']." ', '".$_POST['tel_fix']." ', '".$_POST['tel_mobil']." ', '".$_POST['actident']." ', '".$_POST['seria']." ', '".$_POST['numar']." ', '".$_POST['cnp']." ', '".$_POST['data_nastere']." ', '".$_POST['locul_nastere']." ', '".$_POST['angajat']." ', '".$_POST['functia']." ', '".$_POST['studii']." ', '".$_POST['observatii']." ' );";

?>

<body bgcolor="#ffffff" onLoad="MM_preloadImages('<?php echo IMG_DIRECT_FOLDER ?>studenti_r21_c34_f2.gif','<?php echo IMG_DIRECT_FOLDER ?>studenti_r24_c8_f2.gif','<?php echo IMG_DIRECT_FOLDER ?>studenti_r24_c12_f2.gif','<?php echo IMG_DIRECT_FOLDER ?>studenti_r24_c21_f2.gif','<?php echo IMG_DIRECT_FOLDER ?>studenti_r24_c27_f2.gif');">

<?php //print_a($_GET);print_a($_POST);?>

<table border="0" cellpadding="0" cellspacing="0" width="901">

<!– fwtable fwsrc="studenti.png" fwbase="studenti.gif" fwstyle="Dreamweaver" fwdocid = "2101996241" fwnested="0" –>

<form name="frmstudenti" id="frmstudenti" method="post" action="" enctype="multipart/form-data">

<tr>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="27" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="92" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="12" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="5" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="8" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="27" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="18" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="87" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="37" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="3" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="20" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="33" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="16" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="21" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="7" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="11" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="29" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="8" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="13" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="20" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="30" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="5" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="22" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="17" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="15" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="14" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="43" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="24" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="8" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="31" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="27" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="9" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="4" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="14" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="6" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="9" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="67" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="4" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="26" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="11" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="20" height="1" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="1" border="0" alt=""></td>

</tr>

<tr>

<td colspan="42"><img name="studenti_r1_c1" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r1_c1.gif" width="901" height="57" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="57" border="0" alt=""></td>

</tr>

<tr>

<td rowspan="24" colspan="2"><img name="studenti_r2_c1" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r2_c1.gif" width="119" height="328" border="0" alt=""></td>

<td colspan="13"><input type="text" name="nume" id="nume" value="<?=$prefill['nume']?>" size="30"maxlength="30"></td>

<td rowspan="2" colspan="6"><img name="studenti_r2_c16" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r2_c16.gif" width="82" height="23" border="0" alt=""></td>

<td colspan="8"><input type="text" name="prenume" id="prenume" value="<?=$prefill['prenume']?>" size="20"maxlength="30"></td>

<td rowspan="2" colspan="7"><img name="studenti_r2_c30" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r2_c30.gif" width="99" height="23" border="0" alt=""></td>

<td colspan="5">

<input type="text" name="pren_tata" id="pren_tata" value="<?=$prefill['pren_tata']?>" size="3"maxlength="30">

<span class="font_12">,</span>

<input type="text" name="pren_mama" id="pren_mama" value="<?=$prefill['pren_mama']?>" size="3"maxlength="30"></td>

<td rowspan="26"><img name="studenti_r2_c42" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r2_c42.gif" width="20" height="477" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="19" border="0" alt=""></td>

</tr>

<tr>

<td colspan="13"><img name="studenti_r3_c3" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r3_c3.gif" width="294" height="4" border="0" alt=""></td>

<td colspan="8"><img name="studenti_r3_c22" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r3_c22.gif" width="170" height="4" border="0" alt=""></td>

<td colspan="5"><img name="studenti_r3_c37" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r3_c37.gif" width="117" height="4" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="4" border="0" alt=""></td>

</tr>

<tr>

<td colspan="16"><input type="text" name="nume_nastere" id="nume_nastere" value="<?=$prefill['nume_nastere']?>" size="30" maxlength="40">

<span class="font_12">Sex :</span>

<select name="sexul" id="sexul" style="width:40px;font-size:10px;">

<?php

$max = count($sexul);

for ($j = 1; $j <= $max; $j++)

if ($sexul[$j]!="") {

if ($prefill['sexul']==$j) echo '<option value="'.$j.'" selected>'.$sexul[$j].'</option>';

else echo '<option value="'.$j.'" >'.$sexul[$j].'</option>';

}

else $max=$max+1;

?>

</select>

</td>

<td rowspan="2" colspan="4"><img name="studenti_r4_c19" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r4_c19.gif" width="71" height="22" border="0" alt=""></td>

<td colspan="7"><input type="text" name="cetatenie" id="cetatenie" value="<?=$prefill['cetatenie']?>" size="15"maxlength="30"></td>

<td rowspan="2" colspan="6"><img name="studenti_r4_c30" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r4_c30.gif" width="93" height="22" border="0" alt=""></td>

<td colspan="6"><input type="text" name="nationalitate" id="nationalitate" value="<?=$prefill['nationalitate']?>" size="14"maxlength="30"></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="19" border="0" alt=""></td>

</tr>

<tr>

<td colspan="16"><img name="studenti_r5_c3" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r5_c3.gif" width="335" height="3" border="0" alt=""></td>

<td colspan="7"><img name="studenti_r5_c23" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r5_c23.gif" width="140" height="3" border="0" alt=""></td>

<td colspan="6"><img name="studenti_r5_c36" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r5_c36.gif" width="123" height="3" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="3" border="0" alt=""></td>

</tr>

<tr>

<td rowspan="9"><img name="studenti_r6_c3" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r6_c3.gif" width="12" height="84" border="0" alt=""></td>

<td colspan="10"><input type="text" name="domiciliu" id="domiciliu" value="<?=$prefill['domiciliu']?>" size="35"maxlength="40"></td>

<td rowspan="2" colspan="6"><img name="studenti_r6_c14" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r6_c14.gif" width="77" height="21" border="0" alt=""></td>

<td colspan="8"><input type="text" name="localitatea" id="localitatea" value="<?=$prefill['localitatea']?>" size="14"maxlength="30"></td>

<td rowspan="2"><img name="studenti_r6_c28" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r6_c28.gif" width="43" height="21" border="0" alt=""></td>

<td colspan="11"><input type="text" name="judetul" id="judetul" value="<?=$prefill['judetul']?>" size="20"maxlength="30"></td>

<td rowspan="2" colspan="2"><img name="studenti_r6_c40" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r6_c40.gif" width="37" height="21" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="19" border="0" alt=""></td>

</tr>

<tr>

<td colspan="10"><img name="studenti_r7_c4" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r7_c4.gif" width="254" height="2" border="0" alt=""></td>

<td colspan="8"><img name="studenti_r7_c20" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r7_c20.gif" width="136" height="2" border="0" alt=""></td>

<td colspan="11"><img name="studenti_r7_c29" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r7_c29.gif" width="203" height="2" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="2" border="0" alt=""></td>

</tr>

<tr>

<td rowspan="7"><img name="studenti_r8_c4" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r8_c4.gif" width="5" height="63" border="0" alt=""></td>

<td colspan="4"><input type="text" name="cdpostal" id="cdpostal" value="<?=$prefill['cdpostal']?>" size="15"maxlength="15"></td>

<td rowspan="7"><img name="studenti_r8_c9" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r8_c9.gif" width="37" height="63" border="0" alt=""></td>

<td colspan="8"><input type="text" name="tara" id="tara" value="<?=$prefill['tara']?>" size="17"maxlength="30"></td>

<td rowspan="2" colspan="6"><img name="studenti_r8_c18" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r8_c18.gif" width="77" height="21" border="0" alt=""></td>

<td colspan="7"><input type="text" name="tel_fix" id="tel_fix" value="<?=$prefill['tel_fix']?>" size="15"maxlength="20"></td>

<td rowspan="2" colspan="4"><img name="studenti_r8_c31" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r8_c31.gif" width="71" height="21" border="0" alt=""></td>

<td colspan="7"><input type="text" name="tel_mobil" id="tel_mobil" value="<?=$prefill['tel_mobil']?>" size="15"maxlength="20"></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="19" border="0" alt=""></td>

</tr>

<tr>

<td colspan="4"><img name="studenti_r9_c5" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r9_c5.gif" width="140" height="2" border="0" alt=""></td>

<td colspan="8"><img name="studenti_r9_c10" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r9_c10.gif" width="140" height="2" border="0" alt=""></td>

<td colspan="7"><img name="studenti_r9_c24" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r9_c24.gif" width="143" height="2" border="0" alt=""></td>

<td colspan="7"><img name="studenti_r9_c35" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r9_c35.gif" width="137" height="2" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="2" border="0" alt=""></td>

</tr>

<tr>

<td rowspan="5"><img name="studenti_r10_c5" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r10_c5.gif" width="8" height="42" border="0" alt=""></td>

<td colspan="3"><input type="text" name="actident" id="actident" value="<?=$prefill['actident']?>" size="15"maxlength="30"></td>

<td rowspan="5"><img name="studenti_r10_c10" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r10_c10.gif" width="3" height="42" border="0" alt=""></td>

<td colspan="3"><input type="text" name="seria" id="seria" value="<?=$prefill['seria']?>" size="5" maxlength="10"></td>

<td rowspan="2"><img name="studenti_r10_c14" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r10_c14.gif" width="21" height="21" border="0" alt=""></td>

<td colspan="8"><input type="text" name="numar" id="numar" value="<?=$prefill['numar']?>" size="10"maxlength="15"></td>

<td rowspan="2" colspan="3"><img name="studenti_r10_c23" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r10_c23.gif" width="44" height="21" border="0" alt=""></td>

<td colspan="14"><input type="text" name="cnp" id="cnp" value="<?=$prefill['cnp']?>" size="20"maxlength="20">

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><a href="javascript: NewWindow('dosar.php?id=<?=$idlucru?>','mywin','500','400','no','center');" >Situatie dosar</a></B>

</td>

<td rowspan="16" colspan="2"><img name="studenti_r10_c40" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r10_c40.gif" width="37" height="241" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="19" border="0" alt=""></td>

</tr>

<tr>

<td colspan="3"><img name="studenti_r11_c6" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r11_c6.gif" width="132" height="2" border="0" alt=""></td>

<td colspan="3"><img name="studenti_r11_c11" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r11_c11.gif" width="69" height="2" border="0" alt=""></td>

<td colspan="8"><img name="studenti_r11_c15" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r11_c15.gif" width="119" height="2" border="0" alt=""></td>

<td rowspan="2" colspan="14"><span class="font_12">Stagiu militar satisfacut&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><img name="studenti_r11_c26" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r11_c26.gif" width="121" height="13" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="2" border="0" alt=""></td>

</tr>

<tr>

<td rowspan="2" colspan="3"><input type="text" name="data_nastere" id="data_nastere" value="<?=$prefill['data_nastere']?>" size="10" maxlength="10" onchange="return checkdate(this.form,this.form.data_nastere)"></td>

<td rowspan="3" colspan="2"><img name="studenti_r12_c11" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r12_c11.gif" width="53" height="21" border="0" alt=""></td>

<td rowspan="2" colspan="13"><input type="text" name="locul_nastere" id="locul_nastere" value="<?=$prefill['locul_nastere']?>" size="20" maxlength="30">

&nbsp;&nbsp;&nbsp;&nbsp;<?php

if ($prefill['stagiumilitar']=="1" ) echo '<input type="checkbox" name="stagiumilitar" value="1" checked="checked" style="width:20px;font-size:12px;"/>';

else echo '<input type="checkbox" name="stagiumilitar" value="1" style="width:20px;font-size:12px;"/>';

?>

</td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="11" border="0" alt=""></td>

</tr>

<tr>

<td rowspan="2" colspan="7"><img name="studenti_r13_c26" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r13_c26.gif" width="162" height="10" border="0" alt=""></td>

<td rowspan="7" colspan="6"><a href ="<?php echo PICTURE_DIRECT_FOLDER.$prefill['poza'] ?>" target="_blank"> <img name="imgpoza" id="imgpoza" src="<?php echo PICTURE_DIRECT_FOLDER.$prefill['poza'] ?>" width="109" height="103" border="0" alt=""></a></td>

<td rowspan="13"><img name="studenti_r13_c39" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r13_c39.gif" width="4" height="209" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="8" border="0" alt=""></td>

</tr>

<tr>

<td colspan="3"><img name="studenti_r14_c6" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r14_c6.gif" width="132" height="2" border="0" alt=""></td>

<td colspan="13"><img name="studenti_r14_c13" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r14_c13.gif" width="200" height="2" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="2" border="0" alt=""></td>

</tr>

<tr>

<td colspan="13">

<input type="text" name="promotia" id="promotia" value="<?=$prefill['promotia']?>" style="width:50px;height:12px;font-size: 12px;">

<span class="font_12">, Volumul <input type="text" name="volumul" id="volumul" value="<?=$prefill['volumul']?>" maxlength="20" style="width:30px;height:14px;font-size: 12px;">

, Nr.Matricol : <input type="text" name="nr_mat" id="nr_mat" value="<?=$prefill['nr_mat']?>" maxlength="20" style="width:60px;height:14px;font-size: 12px;">

</span> </td>

<td rowspan="2" colspan="5"><img name="studenti_r15_c16" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r15_c16.gif" width="62" height="21" border="0" alt=""></td>

<td colspan="11">

<select name="specializare" id="specializare" style="width:150px;font-size:10px;">

<option value="0">Alege Specializarea</option>

<?php

$query_rst1 = "SELECT * FROM `specializari` ORDER BY 'id' ASC";

$rst1 = mysql_query($query_rst1) or die('Oups!<br>' . mysql_error());

$row_rst1 = mysql_fetch_assoc($rst1);

$nrcrtfac=0;

do {

$query_rst2 = "SELECT * FROM `facultati` WHERE `id`=".$row_rst1['idfacultate'];

$rst2 = mysql_query($query_rst2) or die('Oups!<br>' . mysql_error());

$row_rst2 = mysql_fetch_assoc($rst2);

$facultate=$row_rst2['nume'];

if ($prefill['specializare']==$row_rst1['id']) echo '<option value="'.$row_rst1['id'].'" selected>'.$facultate.'-'.$row_rst1['nume'].'</option>';

else echo '<option value="'.$row_rst1['id'].'" >'.$facultate.'-'.$row_rst1['nume'].'</option>';

$nrcrtfac=$nrcrtfac+1;

} while ($row_rst1 = mysql_fetch_assoc($rst1));

?>

</select>

<span class="font_12">

<select name="forma" id="forma" style="width:65px;font-size:10px;">

<?php

$max = count($formascolarizare);

for ($j = 1; $j <= $max; $j++)

if ($formascolarizare[$j]!="") {

if ($prefill['forma']==$j) echo '<option value="'.$j.'" selected>'.$formascolarizare[$j].'</option>';

else echo '<option value="'.$j.'" >'.$formascolarizare[$j].'</option>';

}

else $max=$max+1;

?>

</select>

</span>

</td>

<td rowspan="9"><img name="studenti_r15_c32" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r15_c32.gif" width="27" height="128" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="19" border="0" alt=""></td>

</tr>

<tr>

<td colspan="13"><img name="studenti_r16_c3" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r16_c3.gif" width="294" height="2" border="0" alt=""></td>

<td colspan="11"><img name="studenti_r16_c21" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r16_c21.gif" width="229" height="2" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="2" border="0" alt=""></td>

</tr>

<tr>

<td rowspan="2" colspan="29">

<span class="font_12">

Media bac.<input type="text" name="mediabac" id="mediabac" value="<?=$prefill['mediabac']?>" size="5"maxlength="10">

;&nbsp;&nbsp;Media multianuala.<input type="text" name="mediamulti" id="mediamulti" value="<?=$prefill['mediamulti']?>" size="5"maxlength="10">

;&nbsp;&nbsp;&nbsp;<?php

if ($prefill['exportweb']=="1" ) echo '<input type="checkbox" name="exportweb" id="exportweb" value="1" checked="checked" style="width:20px;font-size:12px;"/>';

else echo '<input type="checkbox" name="exportweb" id="exportweb" value="1" style="width:20px;font-size:12px;"/>';

?>

&nbsp;INTERNET

;&nbsp;&nbsp;&nbsp;&nbsp;Informare :<input type="text" name="informare" id="informare" value="<?=$prefill['informare']?>" size="15" maxlength="30">

</br>

Loc de munca :<input type="text" name="work" id="work" value="<?=$prefill['work']?>" size="15" maxlength="25">

;&nbsp;Absolvent fac.:<input type="text" name="stud_abs" id="stud_abs" value="<?=$prefill['stud_abs']?>" size="14" maxlength="30">

;&nbsp;Student fac.:<input type="text" name="stud_fac" id="stud_fac" value="<?=$prefill['stud_fac']?>" size="14" maxlength="30">

</span>

</td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="36" border="0" alt=""></td>

</tr>

<tr>

<td colspan="25"><img name="studenti_r18_c7" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r18_c7.gif" width="533" height="2" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="2" border="0" alt=""></td>

</tr>

<tr>

<td rowspan="7" colspan="2"><img name="studenti_r19_c3" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r19_c3.gif" width="17" height="140" border="0" alt=""></td>

<td rowspan="3" colspan="27"><textarea name="observatii" id="observatii" cols="90" rows="2"><?=$prefill['observatii']?></textarea></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="34" border="0" alt=""></td>

</tr>

<tr>

<td colspan="6"><img name="studenti_r20_c33" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r20_c33.gif" width="109" height="5" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="5" border="0" alt=""></td>

</tr>

<tr>

<td rowspan="3"><img name="studenti_r21_c33" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r21_c33.gif" width="9" height="30" border="0" alt=""></td>

<input type="hidden" name="MAX_FILE_SIZE" value="5000000">

<input type="hidden" name="poza" id="poza" value="<?=$prefill['poza']?>">

<input type="hidden" name="numepoza" id="numepoza" value="<?=$prefill['numepoza']?>">

<td rowspan="2" colspan="5">

<input type="file" name="poza_de" id="poza_de" size=1 style="display: none;">

<a href="#" onclick="poza_de.disabled=false; poza_de.click();imgpoza.src=poza_de.value;numepoza.value=poza_de.value;

poza_de.disabled=true;"

onMouseOut="MM_swapImgRestore();" onMouseOver="MM_swapImage('studenti_r21_c34','','<?php echo IMG_DIRECT_FOLDER ?>studenti_r21_c34_f2.gif',1);"><img name="studenti_r21_c34" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r21_c34.gif" width="100" height="26" border="0" alt=""></a></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="20" border="0" alt=""></td>

</tr>

<tr>

<td rowspan="2" colspan="27"><img name="studenti_r22_c5" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r22_c5.gif" width="568" height="10" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="6" border="0" alt=""></td>

</tr>

<tr>

<td colspan="5"><img name="studenti_r23_c34" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r23_c34.gif" width="100" height="4" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="4" border="0" alt=""></td>

</tr>

<tr>

<td rowspan="2" colspan="3"><img name="studenti_r24_c5" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r24_c5.gif" width="53" height="71" border="0" alt=""></td>

<td><a href="#" onClick= "submitf('frmstudenti','modstudenti.php?action=add','nume',nume.value,'prenume',prenume.value)" onMouseOut="MM_swapImgRestore();" onMouseOver="MM_swapImage('studenti_r24_c8','','<?php echo IMG_DIRECT_FOLDER ?>studenti_r24_c8_f2.gif',1);"><img name="studenti_r24_c8" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r24_c8.gif" width="87" height="24" border="0" alt=""></a></td>

<td rowspan="2" colspan="3"><img name="studenti_r24_c9" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r24_c9.gif" width="60" height="71" border="0" alt=""></td>

<td colspan="5"><a href="#" onClick= "submitf('frmstudenti','modstudenti.php?action=modif&idmod=<?=$idlucru?>','nume',nume.value,'prenume',prenume.value)" onMouseOut="MM_swapImgRestore();" onMouseOver="MM_swapImage('studenti_r24_c12','','<?php echo IMG_DIRECT_FOLDER ?>studenti_r24_c12_f2.gif',1);"><img name="studenti_r24_c12" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r24_c12.gif" width="88" height="24" border="0" alt=""></a></td>

<td rowspan="2" colspan="4"><img name="studenti_r24_c17" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r24_c17.gif" width="51" height="71" border="0" alt=""></td>

<td colspan="4"><a href="#" onClick= "submitf('frmstudenti','modstudenti.php?action=delete&iddel=<?=$idlucru?>')"onMouseOut="MM_swapImgRestore();" onMouseOver="MM_swapImage('studenti_r24_c21','','<?php echo IMG_DIRECT_FOLDER ?>studenti_r24_c21_f2.gif',1);"><img name="studenti_r24_c21" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r24_c21.gif" width="77" height="24" border="0" alt=""></a></td>

<td rowspan="2" colspan="2"><img name="studenti_r24_c25" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r24_c25.gif" width="32" height="71" border="0" alt=""></td>

<td colspan="11"><a href="#" onClick= "submitf('frmstudenti','modstudenti.php?action=clear')" onMouseOut="MM_swapImgRestore();" onMouseOver="MM_swapImage('studenti_r24_c27','','<?php echo IMG_DIRECT_FOLDER ?>studenti_r24_c27_f2.gif',1);"><img name="studenti_r24_c27" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r24_c27.gif" width="189" height="24" border="0" alt=""></a></td>

<td rowspan="2"><img name="studenti_r24_c38" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r24_c38.gif" width="67" height="71" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="24" border="0" alt=""></td>

</tr>

<tr>

<td><img name="studenti_r25_c8" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r25_c8.gif" width="87" height="47" border="0" alt=""></td>

<td colspan="5"><img name="studenti_r25_c12" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r25_c12.gif" width="88" height="47" border="0" alt=""></td>

<td colspan="4"><img name="studenti_r25_c21" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r25_c21.gif" width="77" height="47" border="0" alt=""></td>

<td colspan="11"><img name="studenti_r25_c27" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r25_c27.gif" width="189" height="47" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="47" border="0" alt=""></td>

</tr>

<tr>

<td rowspan="2"><img name="studenti_r26_c1" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r26_c1.gif" width="27" height="149" border="0" alt=""></td>

<td colspan="39">

<input type="hidden" name="Dy" value="<%=Day(aDate)%>">

<input type="hidden" name="Mn" value="<%=Month(aDate)%>">

<input type="hidden" name="Yr" value="<%=Year(aDate)%>">

</form>

<script> text_Style('frmstudenti','#CFB59C','#FFCC33'); </script>

<iframe width="830" height="120" name="showstudenti" MARGINWIDTH=0 MARGINHEIGHT=0 FRAMEBORDER=no NORESIZE SCROLLING=yes src="showstudenti.php"></iframe>

</td>

<td rowspan="2"><img name="studenti_r26_c41" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r26_c41.gif" width="11" height="149" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="139" border="0" alt=""></td>

</tr>

<tr>

<td colspan="39"><img name="studenti_r27_c2" src="<?php echo IMG_DIRECT_FOLDER ?>studenti_r27_c2.gif" width="843" height="10" border="0" alt=""></td>

<td><img src="<?php echo IMG_DIRECT_FOLDER ?>spacer.gif" width="1" height="10" border="0" alt=""></td>

</tr>

</table>

</body>

</html>

BIBLIOGRAFIE

DECLARAȚIE DE AUTENTICITATE

A

LUCRĂRII DE FINALIZARE A STUDIILOR

Titlul lucrării: INTERFATA WEB PENTRU VERIFICAREA SITUATIEI SCOLARE A STUDENTILOR DIN CADRUL UNIVERSITATII IOAN SLAVICI

Autorul lucrării: ALBUTIU CRISTIAN ADRIAN

Lucrarea de finalizare a studiilor este elaborată în vederea susținerii examenului de finalizare a studiilor organizat de către Facultatea de INGINERIE ELECTRICA SI TEHNOLOGIA INFORMATIEI din cadrul Universității din Oradea, sesiunea IULIE a anului universitar 2016.

Prin prezenta, subsemnatul ALBUTIU CRISTIAN ADRIAN [anonimizat], declar pe proprie răspundere că această lucrare a fost scrisă de către mine, fără nici un ajutor neautorizat și că nici o parte a lucrării nu conține aplicații sau studii de caz publicate de alți autori.

Declar, de asemenea, că în lucrare nu există idei, tabele, grafice, hărți sau alte surse folosite fără respectarea legii române și a convențiilor internaționale privind drepturile de autor.

Oradea,

Data Semnătura

Similar Posts