Sistemul Informational Baza de Date a Tezelor de Doctorat
TEZA DE LICENȚĂ
Sistemul Informațional „Baza de date a tezelor de doctorat”
CUPRINS
ADNOTARE
LISTA ABREVIERELOR
ÎNTRODUCERE
ANALIZA TEHNOLOGIILOR DE CREARE SISTEMUL INFORMAȚIONAL BAREI DE DATE A TEZELOR DE DOCTORAT
Analiza sistemului informațional baza de date a tezelor de doctorat existent
Selectarea sistemului de gestiune a bazei de date
Concluzii la capitolul 1
PROECTAREA ȘI CREAREA SISTEMULUI INFORMAȚIONAL
Structura sistemului informational
Funcțiile sistemului informational
Scopurule și obiectivele sistemului informational
Selectarea limbajului de programare a sistemului informațional
Tehnologii de creare a bazei de date a tezelor de doctorat
Descrierea sistemului informațional
Concluzii la capitolul 2
UTILIZAREA SISTEMULUI INFORMAȚIONAL nnnn
Ghidul programatorului g
Ghidul utilizatoruluih
Concluzii la capitolul
CONCLUZII GENERALE ȘI RECOMANDĂRI
BIBLIOGRAFIE
ANEXE
Anexa Conectarea MySQL și PHP
Anexa Pagina de start
Anexa Autentificare administrator
Anexa Autentificare utilizator simplu
Anexa Cautarea simplă
Anexa Cautarea avansată
Anexa Rezultatele căutarii
Anexa Adăugarea tezelor
Anexa Editarea tezei
Anexa Ștergerea tezei
Anexa Informații despre teză
Anexa Vizualizarea tezei
DECLARAȚIE PRIVIND ASUMAREA RĂSPUNDERII
CV-ul AUTORULUI
DATE PRIVIND CONTROL TEHNIC AL TEZEI
ПOДTBEPЖДEHИE
Gavgaș Evgehnii , инфopмациoнная cиcтeма pазвития " база данныx дoктopcкиx диccepтаций "Защитил диccepтацию на cтeпeнь в oблаcти кoмпьютepныx наyк , Кишинeв, 2014
Cтpyктypа диccepтации : Диccepтация была pазpабoтана в Meждyнаpoднoм Heзавиcимoм Унивepcитeтe Moлдoвы , напиcана на pyмынcкoм языкe и cocтoит из тpex глав , вывoды и peкoмeндаций пo иcпoльзoванию, cтpаниц ocнoвнoгo тeкcта 72, 31 библиoгpафичecкиx иcтoчникoв и 54 фигyp.
Ключeвыe cлoва: cиcтeма yпpавлeния данными диccepтацый, yпpавлeния данными oпepации , пpилoжeний c oткpытым кoдoм , интeгpации элeктpoннoй пoчты клиeнта, PDF Viewer , диффepeнциpoванныx автopизацыи .
Oблаcти иccлeдoвания : мeтoды для oбecпeчeния PDF дoкyмeнты для тoгo, чтoбы выпoлнять нeвoзмoжнocти пyти peализацииклиeнт элeктpoннoй пoчты PHP , PHP мoдyли для дocтижeния запpocы DML в базe данныx MySQL, мeтoды JavaScript для пepeдачи запpocoв к cepвepy , cпocoбы pаздeлeния на типы пoльзoватeлeй, cпocoбoв пpoвepки данныx, пepeдаваeмыx oт HTML фopм как на cepвepe и клиeнтey.
Цeли и задачи : пpeвpащeниe cyщecтвyющeю cиcтeмy база данныx дoктopcкиx диccepтаций, кoтopая иcпoльзyeт нeкoтopыe из cамыx иcпoльзyeмыx cвoбoдныx вeб-тexнoлoгий , дoбавив вoзмoжнocть: манипyлиpoвания данными (вcтавка, oбнoвлeниe, yдалeниe ), иcпoльзyя вeб-интepфeйc , диффepeнциpyющиe пoльзoватeли oтпpавка автopизацыи E-Mail , пpocмoтpeть инфopмацию o пoльзoватeляx бeзoпаcный диcплeй диccepтация . Tаким oбpазoм, цeли pабoты являютcя : ocyщecтвлeниe вeб-cтpаниц , кoтopыe пoзвoлят дocтижeниe цeлeй бyмагe , чтo дeлаeт базy данныx c чeткo oпpeдeлeннoй cтpyктypoй , интeгpиpyя cиcтeмныe библиoтeки для пpocмoтpа PDF и дocтижeния клиeнтoв пo элeктpoннoй пoчтe.
Значeниe диccepтации : нoвая cиcтeма пpoтив cтаpoй, pазpабoтанная cиcтeма иcпoльзyeт oбщиe вeб-тexнoлoгий , пoэтoмy oн являeтcя гибким oбъeкт пo импopтации c oднoгo cepвepа на дpyгoй. Пpoблeмы coвмecтимocти мoжнo найти тoлькo на cпeциализиpoванныx вeб-cepвepoв. Cиcтeмный интepфeйc интyитивнo пoнятeн .
ANNOTATION
Gavgaș Evgehnii , Development Information System " database of doctoral theses "
Thesis degree in computer science, Chisinau , 2014
Structure of the thesis : The thesis was developed at the International University of Moldova and it is written in Romanian and consists of three chapters , conclusions and recommendations use basic text pages 72, bibliography of 119 titles and 54 figures.
Keywords: data management system on theses , data manipulation operations , open source applications , integrating e- mail client , PDF viewer , differentiated authorization .
Areas of study: techniques for securing pdf documents in order to discharge impossibility ways of implementing an e-mail client php, php modules to achieve DML queries on a database MySql , JavaScript techniques for transmitting requests to the server, separation techniques to the types of users, ways of validating data sent from hTML forms on both the server and on the client.
Goals and objectives : transforming data management system existence of theses licensed doctor paid a system that uses some of the most used free web technologies , the latter adding the possibility that : manipulating data ( insert , update, delete ) using a web interface, differentiating users sending e- mail authorization , view information about users secure display the thesis . Thus the objectives of the paper are: implementation of web pages that will enable achievement of the purposes of the paper, making a database with a well-defined structure , integrating the system libraries for viewing pdf and achieve customer e- mail .
Value of the thesis : the new against the old system developed uses some very common web technologies , so it is flexible facility on migration from one server to another. The compatibility problems can be found only on specialized web servers . System interface is intuitive.
LISTA ABREVIERELOR
CNAA – Consiliului Național pentru Acreditare și Atestare.
CȘS – Consiliul științific specializat.
SQL – Structured Query Language este un limbaj de programare specific pentru manipularea datelor în sistemele de manipulare a bazelor de date relaționale.
MySQL – este un sistem de gestiune a bazelor de date relațional.
API – interfață de programare a aplicațiilor specifică modul în care unele componente software ar trebui să interacționeze unii cu alții este folosită pentru ușurarea muncii de programare.
PHP – Hypertext Preprocessor. Folosit inițial pentru a produce pagini web dinamice, este folosit pe scară largă în dezvoltarea paginilor și aplicațiilor web.
Tcl – Tool Command Language este unlimbaj de scripting.
SGBD – Sistemele de gestiune a bazelor de date(database management system) reprezintă totalitatea programelor utilizate pentru crearea, interogarea și întreținerea unei baze de date.
DDL – limbajul de definire a datelor, gestionează structura datelor și indexului.
DML – limbajul de manipulare a datelor, este un subset al SQL utilizat pentru a adăuga, actualiza sau șterge datele.
TPC – Transaction Processing Performance Council este o organizatie non-profit infiintata in 1988 pentru definirea procesarea tranzacțiilor și baze de date.
DTS – Data Transformation Services , un instrument de bază de date Microsoft.
HTTP – Hypertext Transfer Protocol este metoda cea mai des utilizată pentru accesarea informațiilor în Internet care sunt păstrate pe servere World Wide Web, este un protocol de tip text.
XML – Extensible Markup Language este un limbaj de marcare care definește un set de reguli de codificare a documentelor într-un format.
AVI – Audio Video Interleave , un format container multimedia și tipul de fișier asociat cu extensia nume de fișier. Avi.
CSS – Cascading Style Sheets este un limbaj pentru stiluri folosit pentru a descrie prezentarea (aspectul si formatarea) unui document scris într-un limbaj de marcare.
FTP – este un standard de protocol de rețea utilizat pentru a transfera fișiere de calculator de la ogazdă la o altă gazdă, este construit pe un client-server arhitectură și utilizează conexiuni de control și de date separate, între client și server.
DNS – Domain Name System este un sistem ierarhic de denumire distribuit pentru calculatoare, servicii, sau de orice resursă conectat la Internet sau o rețea privată.
RDBMS – un sistem de management al bazelor de date relaționale este o alegere predominantă pentru stocarea informației în baze de date folosite pentru înregistrările financiare, de fabricație și a informațiilor logistice, datele de personal.
SMTP – Simple Mail Transfer Protocol este internet standart care permite transmiterea poștei electronice (e-mail) .
POP3- Office Protocol post este un nivel de aplicație standard de Internet, protocol folosit de către clienții locali pentru a prelua un e-mail de la o distanță
UNIX- este un multi-utilizator de calculator, sisteme Unix sunt caracterizate de un design modular, care este uneori numit " filosofia Unix , "ceea ce înseamnă că sistemul de operare oferă un set de instrumente simple care fiecare realizează o funcție limitat, bine definit.
PDF -Portable Document Format este un format de fiș management system on theses , data manipulation operations , open source applications , integrating e- mail client , PDF viewer , differentiated authorization .
Areas of study: techniques for securing pdf documents in order to discharge impossibility ways of implementing an e-mail client php, php modules to achieve DML queries on a database MySql , JavaScript techniques for transmitting requests to the server, separation techniques to the types of users, ways of validating data sent from hTML forms on both the server and on the client.
Goals and objectives : transforming data management system existence of theses licensed doctor paid a system that uses some of the most used free web technologies , the latter adding the possibility that : manipulating data ( insert , update, delete ) using a web interface, differentiating users sending e- mail authorization , view information about users secure display the thesis . Thus the objectives of the paper are: implementation of web pages that will enable achievement of the purposes of the paper, making a database with a well-defined structure , integrating the system libraries for viewing pdf and achieve customer e- mail .
Value of the thesis : the new against the old system developed uses some very common web technologies , so it is flexible facility on migration from one server to another. The compatibility problems can be found only on specialized web servers . System interface is intuitive.
LISTA ABREVIERELOR
CNAA – Consiliului Național pentru Acreditare și Atestare.
CȘS – Consiliul științific specializat.
SQL – Structured Query Language este un limbaj de programare specific pentru manipularea datelor în sistemele de manipulare a bazelor de date relaționale.
MySQL – este un sistem de gestiune a bazelor de date relațional.
API – interfață de programare a aplicațiilor specifică modul în care unele componente software ar trebui să interacționeze unii cu alții este folosită pentru ușurarea muncii de programare.
PHP – Hypertext Preprocessor. Folosit inițial pentru a produce pagini web dinamice, este folosit pe scară largă în dezvoltarea paginilor și aplicațiilor web.
Tcl – Tool Command Language este unlimbaj de scripting.
SGBD – Sistemele de gestiune a bazelor de date(database management system) reprezintă totalitatea programelor utilizate pentru crearea, interogarea și întreținerea unei baze de date.
DDL – limbajul de definire a datelor, gestionează structura datelor și indexului.
DML – limbajul de manipulare a datelor, este un subset al SQL utilizat pentru a adăuga, actualiza sau șterge datele.
TPC – Transaction Processing Performance Council este o organizatie non-profit infiintata in 1988 pentru definirea procesarea tranzacțiilor și baze de date.
DTS – Data Transformation Services , un instrument de bază de date Microsoft.
HTTP – Hypertext Transfer Protocol este metoda cea mai des utilizată pentru accesarea informațiilor în Internet care sunt păstrate pe servere World Wide Web, este un protocol de tip text.
XML – Extensible Markup Language este un limbaj de marcare care definește un set de reguli de codificare a documentelor într-un format.
AVI – Audio Video Interleave , un format container multimedia și tipul de fișier asociat cu extensia nume de fișier. Avi.
CSS – Cascading Style Sheets este un limbaj pentru stiluri folosit pentru a descrie prezentarea (aspectul si formatarea) unui document scris într-un limbaj de marcare.
FTP – este un standard de protocol de rețea utilizat pentru a transfera fișiere de calculator de la ogazdă la o altă gazdă, este construit pe un client-server arhitectură și utilizează conexiuni de control și de date separate, între client și server.
DNS – Domain Name System este un sistem ierarhic de denumire distribuit pentru calculatoare, servicii, sau de orice resursă conectat la Internet sau o rețea privată.
RDBMS – un sistem de management al bazelor de date relaționale este o alegere predominantă pentru stocarea informației în baze de date folosite pentru înregistrările financiare, de fabricație și a informațiilor logistice, datele de personal.
SMTP – Simple Mail Transfer Protocol este internet standart care permite transmiterea poștei electronice (e-mail) .
POP3- Office Protocol post este un nivel de aplicație standard de Internet, protocol folosit de către clienții locali pentru a prelua un e-mail de la o distanță
UNIX- este un multi-utilizator de calculator, sisteme Unix sunt caracterizate de un design modular, care este uneori numit " filosofia Unix , "ceea ce înseamnă că sistemul de operare oferă un set de instrumente simple care fiecare realizează o funcție limitat, bine definit.
PDF -Portable Document Format este un format de fișier folosit pentru a prezenta documente într-un mod independent de software, aplicație , hardware și sisteme de operare.
ISO / IEC 26300-oferă în primul rând o introducere în formatul OpenDocument și explică structura de documente care sunt conforme cu caietul de sarcini OpenDocument.
LaTeX -este un sistem de pregătire a documentelor și a documentelor limbaj de marcare, ea are un rol important în pregătirea și publicarea de cărți și articole care conțin materiale multilingve complexe, cum ar ca sanscrită și arabă, inclusiv ediții critice.
ISP- un furnizor de servicii Internet, este o organizație care oferă servicii pentru accesarea, utilizarea, sau participarea la Internet .
SPAM- Electronic spamming. Spam-ul electronic este utilizarea de sisteme de mesagerie electronică pentru a trimite mesaje nesolicitate, mai ales de publicitate, fără discriminare.
ODBC- Open Database Connectivity este un de limbaj de programare pentru accesarea sistemelor de gestionare a bazelor de date.
IMAP- Internet Message Access Protocol este un protocol de e-mail de recuperare și stocare.
PHP-GTK- este un set de legături lingvistice pentru PHP, instrument pentru crearea interfeței grafice de către utilizator.
INTRODUCERE
Actualitatea și importanța problemei abordate. Tehnologiile web în ultimii ani prezintă o ascendență din punct de vedere a utilizării foarte mare, astfel multe aplicații încorporate în SO care pot fi înlocuite cu aplicații web își pierd din raiting. Creșterea numărului de cereri a tehnologiilor web e direct proporțională cu dezvoltarea tehnologiilor informaționale în această direcție, care în ultimii ani se manifestă printro diversitate foarte mare de limbaje, framework-uri etc. ,cât și de o multitudine de comunități de dezvoltare foarte puternice. De asemenea si sistemele de gestiune a bazelor de date ce nu oferă interfață pentru programarea web pierd din numărul de utilizatori.
Astfel majoritatea sistemelor vechi tind să migreze codul lor la cele mai noi și mai utilizate tehnologii, deoarece vechile tehnologii nu mai evoluează, nu țin pasul cu noile tehnologii prin faptul că nu dispun de facilitățile oferite de cele noi.
Scopul și obiectivele tezei. În contextul dezvoltării tehnologiilor web s-a propus migrarea sistemului vechi de gestiune a tezelor la un sistem mai nou, care ar oferi posibilități mai multe, o interfață mai sugestivă și interactivă, o flexibilitate mai mare la instalare și configurare. Pentru atingerea acestui scop s-au conturat următoarele obiective:
Analiza sistemului vechi de gestiune a tezelor, prin stabilirea punctelor slabe ale acestuia, care vor fi eliminate în sistemul nou.
Reproducerea schemei bazei de date într-un nou limbaj și și aducerea unor modificări structurii în privința optimizării bazei de date
Crearea unor pagini web de administrare a bazei de date ce ar permite introducerea, editarea (în 3 limbi) și ștergerea informațiilor despre teze cât și datele conexe acestora.
Adaugarea posibilității de diferențiere a utilizatorilor în acei ce au drepturi depline de utilizare administrare a tezelor și utilizatori ce pot doar vizualiza datele.
Implementarea unui modul de autorizarea a adminstratorilor prin e-mail.
Integrarea unei biblioteci de vizualizare sigură a documentelor pdf.
Valoarea aplicativă a lucrării. Noul sistem va permite o securizare mai bună a datelor prin restricționare accesării paginilor de administrator utilizatorilor neautorizați. Deoarece noul sistem folosește niște tehnologii web noi și gratuite el va rezolva probleme ca: portabilitate, compatibilitate, simplitate.
Sumarul compartimentelor tezei. Primul capitol – „ANALIZA TEHNOLOGIILIR DE CREARE A SISTEMULUI INFIRMAȚIONAL” prezintă o studierea și descrierea unor sistemele de gestiune a bazelor de date existente pe piață cât și a sistemului existent, prin compararea lor, stabilirea punctelor forte și slabe a respectivelor sisteme și într-un final motivarea alegerii unui SGBD din cele analizate.
În capitolul 2 – „PROIECTAREA ȘI ELABORAREA SISTEMULUI INFORMAȚIONAL” sunt specificate și descrise funcționalitățile ce trebuie să le îndeplinească sistemul. De asemenea aici sunt analizate și descrise tehnologiile folosite la nivel general, și mai apoi la nivel de module utilizate.
Capitolul 3 – „IMPLIMENTAREA ȘI UTILIZAREA SISTEMULUI INFORMAȚIONAL” e compus din 2 părți. Prima ne prezintă detalii tehnice a realizare a sistemului informaționale. Aici este reprezentată schema bazei de date și modulele php utilizate pentru interacțiunea cu baza de date. Sunt descrise semnificațiile informațiilor ce sunt stocate în tabele cât și relațiile dintre ele. Sunt prezentate porțiunile de cod de bază care duc la implementarea funcționalităților critice ale sistemului. A doua parte descrie paginile web din sistem și modul de utilizare a lor.
ANALIZA TEHNOLOGIILIR DE CREARE A SISTEMULUI INFORMAȚIONAL BAREI DE DATE A TEZELOR DE DOCTORAT
Sistemul de gestiune a bazelor de date (SGBD) este un sistem de programe care permite definirea, crearea și întreținerea bazelor de date precum și accesul controlat de acesta
Din punct de vedere conceptual, gestiunea bazelor de date este bazeaztă pe ideea separării structurii unei bazei de date de și conținutul acesteia. În sistemele de baze de date definirea datelor se separă de programele aplicație, astfel încât utilizatorii văd doar definiția externă a unui obiect fără a cunoașterea modului în care e definit și cum funcționează. În acest mod, definiția internă a obiectului poate fi modificată fără a fi afectați utilizatorii acestuia dacă nu se modifică definiția externă. De exemplu, dacă sunt adăugate noile structuri de date sau sunt modificate cele existente, atunci programele aplicație nu sunt afectate dacă nu depind direct de ceea ce se modifică. .[15]
Scopul sistemlui de gestiune al unei baze de date este de a oferi un mediu care să fie convenabil, dar și eficient pentru a putea fi folosit la:
extragerea informațiilor din baza de date;
înmagazinarea datelor în baza de date.
Bazele de date sunt folosite la gestionarea unei cantități de date, ceea ce presupune existența următoarelor caracteristici:
definirea structurii (modelarea datelor);
utilizarea mecanismelor de manipulare a datelor;
asigurarea securității datelor în baza de date;
asigurarea controlului concurenței în cazul utilizării sistemului de către mai mulți utilizatori.[8]
Analiza sistemului informațional baza de date a tezelor de doctorat existent
Sistemul informațional baza de date a tezelor de doctorat existet al Consiliului Național pentru Acreditare și Atestare este realizat și destinat special instituției.Sistemul informational este instalat pe calculatorul administratorului ce permite căutarea,editarea si adaugarea datelor dupa care modificarile sunt transferate direct pe serverul siteului cnaa.md. Acest sistem este scris în Perl, un limbaj care în zilele noastre e mai puțin folosit pentru realizarea paginilor web. Informații mai deteilate despre sisetmul dat nu mia fost oferită.
Analiza sistemului de gestiune a bazelor de date MySQL
Prezentare generală
Bazele de date sunt folosite pentru stocarea informațiilor in vederea furnizarii ulterioare în funcție de solicitarea primită.
MySQL este un sistem de baze de date funcțional independent.
MySQL este un server de baze de date SQL (Structured Query Language) foarte rapid. O baza de date reprezintă o colecție de date organizate dupa anumite criterii. Pentru a accesa, adăuga sau procesa date conținute în baza de date este nevoie de un sistem de administrare a bazelor de date precum MySQL.
MySQL este foarte rapid, dar și usor de învățat. În plus, este și gratuit; pachetul MySQL este disponibil pe situl ,,mama sub forma unei arhive zip care trebuie despachetata într-un folder, de regula partiția în care este instalat sistemul de operare. MySQL a fost dezvoltat pentru a lucra cu baze de date foarte complexe. Conectivitatea, viteza și securitatea il fac foarte potrivit pentru accesarea bazelor de date în Internet.
MySQL este componentă integrată a platformelor Lamp , Wamp si Xamp platform utilizata si in realizarea proiectului in cauza (Linux/Windows-Apache-MySQL-PHP/Perl/Python). Popularitatea sa ca aplicație web este strâns legată de cea a PHP-ului care este adesea combinat cu MySQL și denumit Duo-ul Dinamic. În multe cărți de specialitate este precizat faptul ca MySQL este mult mai ușor de invățat și folosit decât multe din aplicațiile de gestiune a bazelor de date, ca exemplu comanda de ieșire fiind una simplă și evidentă: „exit” sau „quit”.
Pentru a administra bazele de date MySQL se poate folosi modul linie de comandă sau, prin descărcare de pe internet, o interfață grafică: MySQL Administrator și MySQL Query Browser. Probabil cel mai util instrument de management al acestor baze de date este aplicația gratuită, scrisă în PHP, phpMyAdmin.[13]
Caracteristicile de bază ale MySQL
Popularitatea MySQL se datorează în primul rând multiplelor facilități oferite de acesta, dintre care vom aminti:
Câteva dintre caracteristicile de bază ale MySQL sunt:
viteza de execuție: programatorii susțin că MySQL este cel mai rapid sistem de gestiune a bazelor de date care se găsește la ora actuală pe piață.
ușurința în utilizare: Complet multi-threaded folosind thread-uri de kernel acest lucru înseamnă că MySQL este un sistem de gestiune a bazelor de date cu performanțe ridicate dar relativ simplu de utilizat și poate lucra cu ușuință pe mai multe procesoare dacă sunt disponibile, a cărui configurare și administrare sunt mult mai simple decât în cazul sistemelor mai mari.
accesul concurent la date de către un număr nelimitat de utilizatori: la server-ul MySQL se pot conecta mai mulți clienți simultan; clienții pot folosi mai multe baze de date simultan; se poate obține acces la MySQL în mod interactiv, folosind numeroase interfețe care permit introducerea de interogări și vizualizarea rezultatelor.
conectivitatea și securitatea: MySQL poate fi folosit integral în rețele, iar bazele de date sunt accesibile de oriunde din internet, oferind astfel posibilitatea partajării datelor cu oricine, oriunde; MySQL are controlul accesului astfel încât persoanele care nu au dreptul să citească datele nu vor avea această posibilitate.
distribuția liberă: MySQL este gratuit, fapt ce a atras extinderea fără precedent a folosirii acestui server de baze de date.
Dispune de API pentru C, C++, Eiffel, Java, Perl, PHP, Pyton, Ruby și Tcl.
Un sistem de alocare a memoriei foarte rapid și bazat pe thread-uri.
Serverul este disponibil ca program separat ce poate fi folosit într-un mediu de rețea de tip client/server. De asemenea, este disponibil și ca bibliotecă ce poate fi inclusă în aplicații de sine stătătoare.
Oferă motoare tranzacționale și non-tranzacționale de stocare a datelor.
Folosește tabele temporare stocate în memorie
Serverul este disponibil ca program separat ce poate fi folosit într-un mediu de rețea de tip client/server. De asemenea, este disponibil și ca bibliotecă ce poate fi inclusă în aplicații de sine stătătoare[5]
Tipuri de date utilizate de MySQL
Tipurile de date care apar în coloanele MySQL sunt diferite în funcție de tipul lor. MySQL alocă spațiu pe disc în funcție de tipul de date specificat de utilizator. Iată și tipurile de date, spațiul pe care îl ocupă precum și valorile minime și maxime pe care le pot avea:
Tipul de câmp TIMESTAMP oferă posibilitatea de a data automat operațiile de tip INSERT și UPDATE. El este compus implicit din 14 caractere pentru formatul 'YYYYMMDDhhmmss' dar putem să specificăm la crearea unui tabel că dorim să conțină mai puține caractere. Tipurile de string-uri în MySQL sunt BLOB, TEXT, CHAR, VARCHAR, ENUM și SET. În tabelul următor puteți vedea marimea maximă admisă pentru cele mai folosite dintre ele precum și spațiul alocat pe disc pentru fiecare:
Câmpul de tip BLOB poate conține o cantitate variabilă de informație, similar cu TEXT însa diferit printr-un singur aspect: căutarea într-un câmp BLOB este case sensitive (se face diferență între majuscule și minuscule), iar într-un câmp TEXT nu este. Tipul VARCHAR este similar tipului TEXT cu deosebirea ca într-o coloană de tip VARCHAR putem specifica numărul maxim de caractere admise.[4]
Administrarea bazelor de date MySQL din linia de comandă
În cazul unui sistem de operare Windows, conectarea pentru a lucra în mod interactiv cu cu serverul MySQL instalat pe același calculator realizează lansând în execuție monitorul MySQL numit mysql.exe din directorul mysql/bin.[14]
Comenzile SQL se pot scrie cu litere mari sau mici, având același efect. Comenzile SQL se termină, uzual, cu caracterul “ ; “. Dând comanda help; (sau \h sau ?) pe ecran apar o serie de comenzi MySQL importante.
Câteva comenzi din linia de comandă:
create database – crează o bază de date
use – se selectează o bază de date
create table – se crează tabele
alter – modificarea definiției unei tabele se realizează folosind comanda alter
insert – adăugare de înregistrări într-un tabel
update – permite modificarea valorilor unor câmpuri dintr-un tabel
drop – permite suprimarea unui tabel din baza de date
show – se folosește pentru listarea tabelelor care alcătuiesc baza de date
select – este cea mai complexă comandă din limbajul SQL și este destinată regăsirii unor anumite date
quit – determină întreruperea conexiunii cu serverul MySQL[17]
Analiza sistemuliu de gestiune a bazelor de date Oracle
Caracteristicele Oracle
Principalele caracteristici ale sistemului Oracle sunt:
Oracle este un SGBD relațional, portabil pe o mare varietate de platforme șifolosește un număr mare de utilitare care se pot folosi pe toate etapele modelării,de la specificarea cerințelor până la exploatarea aplicațiilor dezvoltate.
ORACLE dispune de un limbaj de definire (DDL), un limbaj de manipulare (DML) a datelor și un limbaj de control al datelor (LCD);
Manipularea datelor se facecu ajutorul limbajului SQL și PL/SQL (Procedural Language);
Oracle suportă proceduri, funcții și biblioteci (pachete) stocate la nivelul bazei dedate. Pachetele pot fi apelate prin programele utilizatorilor sau de către sistem caurmare a realizării unui anumit eveniment declașator (trigger).;
Oracle asigură: coerența datelor, confidențialitatea datelor, integritatea datelor,salvarea și restaurarea datelor, gestiunea acceselor concurente, portabilitateadatelor și a aplicațiilor dezvoltate
Componentele oracle
Componentele care formează arhitectura Oracle sunt structurate pe trei niveluri:
Nucleul
Intefețele
Instrumentele de întreținere.
Aceste componente sunt dispuse într-o configurație client/server. Componentele de client și de server sunt plasate pe calculatoare diferite într-o rețea în care:
serverul asigură memorarea și manipularea datelor, precum și administrarea bazei
de date;
clientul asigură interfața cu utilizatorul și lansează aplicația care accesează datele
din baza de date. [31]
Selectarea sistemului de gestiune a bazei de date
Comparație MySQL și Oracle
Pentru realizarea sistemului informațional am decis să fac o comparare dintre cele mai cunoscute sisteme de gestiune ale bazelor de date care se numesc Oracle și MySQL Server, detinuț de compania Microsoft. In continuare voi face diverse comparații intre cele doua sisteme, pentru ca in final să se poată eventual concluziona ce sistem trebuie ales pentru realizarea sistemului informationalt ce conține o parte importantă de baze de date.
MySQL egaleaza și chiar depașește Oracle în aceasta privință fiind una dintre cele mai rapide și scalabile sisteme de baze de date cu un set de caracteristici bune, dar una care nu dispune de toate figuranțiile precum Oracle, ața că dacă scrim un cod care este proiectat pentru a fi portabil este o alegere destul de bună. Admin / security sunt eficiente, dar de configurare a acestora și a altor caracteristici nu sunt prea complicate. Toate că toate, este o alegere destul de bună pentru majoritatea cerințelor simple. MySQL este caracterizat ca fiind un program gratuit de baze de date, rapid, fiabil, deschis bazelor de date relaționale. Acesta nu este sofisticat și are anumite facilități, dar are si o echipa de dezvoltare activă. La un moment dat va exista un compromis între viteză și capabilități, precum și echipa MySQL intenționează să păstrați motorul lor de baze de date rapide și de încredere.
MySQL este de obicei ales pentru aplicații de înalta performanță în timp ce Oracle se adapteaza mai bine celor de performanță medie. MySQL deține recordul de 1126 de tranzactii pe secunda conform Transaction Processing Performance Council (TPC) pe cînd Oracle a reușit sa se apropie de 1000. Oracle poate rula și gestiona mai multe tranzactii decat MySQL. Oracle ar fi mai bun dacă aveți de gând sa utilizati o mulțime de baze de date. Cu toate acestea, MySQL are resurse cu PHP, care a afectat încarcarea serverului. Oracle pe de altă parte, este mai bun cu pierderile de memorie și se ocupă de mai multe fire. Putem face Tranzacții cu SQL, proceduri stocate, DTS în Oracle care nu le poți face in versiunile anterioare MySQL. Oracle este mai scump, deși au ieșit cu editia Oracle Free pentru a atrage utilizatorii MySQL.Utilizatorii MySQL se bucura de această bază de date deoarece este disponibila la aproape toate companiile. Oracle se limitează doar la marile corporații din cauza costurilor de licențiere și nu toate companiile au Oracle (acestea ar putea fi SQL Server, dar nu și Oracle).Puteți face miliarde de date cu MySQL, dar va fi lent pe server. În plus, backup-ul bazei de date MySQL ia pentru totdeauna, comparativ cu instrumentele Oracle, care face baza de date de rezervă foarte usor. Dacă aveți de gând să folositi MySQL, apoi se adaugă o mulțime de memorie. În plus, se recomandă să se separe site-ul din baza de date. Cu alte cuvinte, au email-uri și site-ul pe un server separat și au doar un server MySQL specific numai pentru dazele de date MySQL.
Oracle suporta orice sistem de operare (Windows, AIX-Based Systems, Compaq Tru64 UNIX, HP 9000 Series HP-UX, Linux Intel, Sun Solaris) pe cînd Microsoft MySQL poate rula doar pe Windows. Acest lucru poate fi un dezavantaj pentru MySQL, insă dacă sistemul de operare e stabilit ca fiind Windows atunci MySQL este mai potrivit deoarece, fiind creat de Microsoft, se adapteaza foarte bine sistemului de operare.
La capitolul preț/performanță Oracle reușește în anumite privințe să depașeasca MySQL, dupa un studiu facut tot de TPC, însa acesta e practic al 11-lea care urmeaza dupa alte 10 în care MySQL a cîștigat. MySQL și de asemenea Oracle ofera suport inclusiv pentru sisteme evoluate de pana la 64-bit cu mai mult de 8tb memorie. Cea mai mare cantitate de date deținuta de o companie pe SQL Server a reușit sa ajungă la 100TB. MySQL este gratuit, e peste tot, acesta este întregul concept!
Concluzii la capitolul 1
Ambele sisteme permit instalarea de instante pasive pentru a mari performanta dar acest lucru nu implică costuri pentru MySQL Server, pe cînd la Oracle se platește pe instanță. Securitatea este un lucru esential pentru protejarea proprietații intelectuale.
Este un capitol la care MySQL Server se impunea in fata Oracle pana recent cînd, odata cu ultimele versiuni, Oracle a pus la punct majoritatea vulnerabilităților.
Nu incerc sa spun ca MySQL este mai bun decat Oracle, sau invers ambele sisteme oferă support pentru BI(cuprinde tehnologii , aplicatii si practici pentru colectarea , integrarea , analiza, și prezentarea de informații de afaceri) iar, dupa un studiu al Gartner Microsoft este compania cea mai bine cotata pentru performanțele in domeniul Business Intellingence.Solutia SQL Server nu implică costuri suplimentare.
PROIECTAREA ȘI CREAREA SISTEMULUI INFORMAȚIONAL
Baza de date și sistemul informational se concentrează pe două aspecte de cercetare-orientate spre aplicații și de bază în domenii de modelare și design algoritm de gestionare a datelor. Sistemul Informațional reprezintă o totalitate organizatoric-aranjată de resurse informaționale, tehnologii informaționale, echipament și mijloace de comunicare, care permite colectarea, păstrarea, procesarea și utilizarea informației. [15]
Sistemul Informațional constă din următoarele componente de bază:
software reprezintă totalitatea informației, datelor și programelor ce sunt procesate de sistemele computerizate;
asigurarea informațională reprezintă asigurarea cu date faptice ale structurilor de administrare, utilizarea datelor informaționale pentru sistemele automatizate de administrare, folosirea informației pentru asigurarea activității diferitor consumatori;
hardware reprezintă un complex de dispozitive electronice, electrice și mecanice ce fac parte din sistem sau rețea;
personalul de deservire.
Acest capitol are ca obiectiv analiza cerințelor funcționale și nefuncționale, a cerințelor față de interfețele externe ale sistemului informațional, față de hardware-ul, față de asigurarea securității informaționale, determinarea arhitecturii hardware-ului, proiectarea software-ului, identificarea obiectelor și ierarhia acestora.
Aici de asemenea sunt descrise funcționalitățile sistemului, este elaborat planul și sarcinile de implementare a sistemului informațional.
Structura sistemului informational
Sarcina principală este realizarea Sistemul Informational „Baza de date a tezelor de doctorat”
Care va permite:
Autentificarea pe site
Posibilitatea trimiterii cererilor de înregistrare
Utilizatori online(vizualizarea numarului de utilizatori)
Ieșirea din sistem
Și de a introduce:
denumirea temei tezei de doctorat,
Autorul (nume, prenume),Gradului (dr/dr.hab.)
Domeniul științific (se selectează din nomenclator)
Ramura științifică (se selectează din nomenclator)
Profilul științific (se selectează din nomenclator)
Specialitatea științifică (se selectează din nomenclator)
Conducătorul tezei de doctorat
Consultantul tezei de doctorat
Instituția unde teza a fost elaborată
Instituția unde teza a fost/va fi susținută
Referenții oficiali ai tezei de doctorat
Consiliul științific specializat (Hotărîrea nr., data; denumirea; instituția; data susținerii tezei de doctorat)
Componența CȘS (Consiliul științific specializat)
Limba în care este scrisă teza
Nr. Pagini a tezei de doctorat
Data susținerii tezei de doctorat
Ora susținetii tezei de doctorat
Statutul tezei (examinare/aprobată/respinsă/retrasă/echivalare)
Data conferirii gradului
Adtotările (ro/ru/en)
Cuvintele cheie (ro/ru/en)
Cuprinsul tezei de doctorat
Utilizatori online(vizualizarea numarului de utilizatori)
Funcțiile sistemului informational
transmitere a unei cerei de inregistrare dupa anumite criterii (nume, prenume, locul de muncă, specialitatea, date de contact, e-mail).
afișarea paginii de autentificare in caz in care nu e autentificat
afisarea informațiilor despre teza
adăugare a unei teze
editarea informațiilor despre teza
ștergerea tezei
afișarea informațiilor despre datele consiliilor
adăugare a unui consiliu
editarea informațiilor despre consiliu
ștergerea consiliului
afișarea informațiilor despre toate rolurile
adăugare a unui rol
editarea informațiilor despre roluri
ștergerea rolului
afișarea informațiilor despre toate persoanele
adăugare a unei persoane
editarea informațiilor despre persoane
ștergerea persoanei
afișarea informațiilor despre toate gradele știintifice
adăugare a unui grad știintific
editarea informațiilor despre gradul știintific
ștergerea gradului
afișarea informațiilor despre toate titlurile știintifice
adăugare a unui titlu știintific
editarea informațiilor despre titlu
ștergerea titlului
afișare lista instituțiilor
afișarea informațiilor despre instituție
adăugare a unei instituții
editarea informațiilor despre instituție
ștergerea instituțiiei
vizualizarea listelor domeniilor, ramurilor, profilelor si specialităților
adăugare a unei specialități
editarea informațiilor despre specialități
ștergerea specialității
adăugare a unur ramuri
editarea informațiilor despre ramură
ștergerea ramurei
adăugare a unui profil
editarea informațiilor despre profil
ștergerea profillului
adăugare a unei specialități
editarea informațiilor despre specialitatatea cu codul id_specialitate
ștergerea specialitataței
editarea si vizualizarea informațiilor despre utilizator
modificare a parolei utilizatorului
vizualizarea utilizatorilor și informatiilor despre ei
ștergere utilizatorului cu codul id_user
acceptarea cererii utilizatorului cu codul id_user
ieșire de pe site
Scopurile și obiectivele sistemului informațional
Scopul principal al Sistemului Informațional „Baza de date a tezelor de doctorat”ce urmează a fi proectat este realizarea unui sistem informațional ce va permite gestiunea datelor (adăugarea, vizualizarea, editare, ștergere, căutarea) tezelor de doctorat din tabele folosind o forma mai facila de gestiune, comparativ cu instrumentele implicite Mysql.
De asemenea o funcție de baza a sistemului este asigurarea securitații site-lui, care va putea fi accesat doar prin autentificare, înregistrarea va fi făcuta prin trimiterea unei cereri in baza de date, după care administratorul accesînd baza de date va putea vizualiza si autoriza sau șterge cererile. La o eventuala autorizarea parola va fi trimisă pe e-mail-ul indicat in cerere.
Functionalități cheie:
Înserarea datelor în toate tabelele
Modificarea datelor din tabele
Ștergerea datelor din tabele
Vizualizararea informațiilor din baza de date cît și documentele pdf fără a putea fi copiate.
Autentificarea pe site
Posibilitatea trimiterii cererilor de înregistrare
Vizualizarea numarului de utilizatori online
Ieșirea din sistem[30]
Operații de gestiune a datelor vor permite vizualizarea datelor conexe din celelalte tabele din care va fi posibila alegerea dupa denumire și nu dupa ID.
Toate editarile cît și inserarile în tabele sunt efectuate în 3 limbi: romana, engleza si rusa.
Aplicația Sistemul Informational „Baza de date a tezelor de doctorat”va realizată să fie utilizată de către funcționarii intreprinderii de stat CNAA adică are un acces nelimitat și de simpli utilizatori care vor avea un acces limitat vor pute numai vizualiza informația . Este concepută în așa fel încât să fie ușor de înțeles și de folosit. Funcționarii care vor folosi acest sistem nu necesită cunoștințe superioare în domeniul informaticii. Proiectul conține doar ferestre, butoane, câmpuri de introducere a datelor, și tabele, iar utilizarea acestora este foarte simplă. Adăugarea, ștergerea datelor, crearea, modificarea conturilor sunt doar câteva dintre operațiile care se pot face în interiorul aplicației.
Selectarea limbajului de programare a sistemului informațional
Selectarea corectă a limbajului de programare sau aplicatiei open source va reduce semnificativ timpul realizarii sistemului informational, va spori productivitatea muncii personalului și va reduce volumul de muncă necesar pentru realizarea proceselor concrete din contul spațiului informațional unic.
Limbajul PHP
PHP care provine din "PHP: Hypertext Preprocessor", este un limbaj de scripting utilizat pe scară largă, realizat și distribuit în sistem Open Source, care este special realizat pentru a dezvolta aplicații web, prin integrarea codului PHP în documente HTML. Sintaxa sa provine din C, Java și Perl și este ușor de învățat. Scopul principal al limbajului este acela de a scrie rapid pagini web dinamice, dar cu PHP se pot realiza mult mai multe.
PHP poate fi obținut gratuit, fiind un produs al miscarii open-source. PHP oferă suport pentru acces la aproape 20 de servere de baze de date diferite printre care: MySQL, Oracle, MS-SQL, Sybase, Informix.[21]
PHP este una dintre cele mai interesante tehnologii existente în prezent. Deoarece îmbină caracteristici dintre cele mai complexe cu simplitatea în utilizare, PHP a devenit rapid un instrument de frunte pentru dezvoltarea aplicațiilor în Web. Totuși, spre deosebire de alte instrumente populare pentru dezvoltarea aplicațiilor Web, cum este Perl, PHP este un limbaj de programare comod pentru începători, chiar și pentru cei care nu au mai desfășurat activități de programare în trecut.
Ca și alte limbaje de scripting pentru Web, PHP vă permite să furnizați un conținut Web dinamic, adică un conținut Web care se modifică automat de la o zi la alta sau chiar de la un minut la altul. Conținutul Web este un element important în susținerea traficului unui sit Web; de regulă, vizitatorii nu vor mai reveni la o pagină Web care conține aceleași informații ca și cele prezentate la ultima vizită. Pe de altă parte, siturile Web fregvent actualizate pot atrage cantități enorme de trafic.
PHP poate fi folosit pe aproape toate marile sisteme de operare, incluzând Linux, multe variante de Microsoft Windows, Mac OS X, RISC OS, probabil și altele. PHP are de asemenea suport pentru majoritatea serverelor de web din prezent. Acestea includ serverele Apache, Microsoft Internet Information Server, Personal Web Server, și multe atele. Deci, cu PHP, există libertatea de a alege un sistem de operare și un server de web.[1]
Una dintre cele mai puternice și importante facilități în PHP este suportul său pentru o gamă largă de baze de date. Scrierea une pagini de web ce interacționează cu o bază de date este incredibil de simplă. PHP suportă și ODBC, standardul Open Database Connection, deci se poate conecta la orice altă bază de date ce suporta acest standard mondial.
PHP are de asemenea suport pentru a conversa cu alte servicii folosind protocoale cum ar fi: IMAP, HTTP, COM (pe Windows) și multe altele. Se pot, de asemenea, deschide socket-uri de rețea și se poate interacționa între aproape toate limbajele de programare Web. PHP are suport pentru instanțierea obiectelor Java și utilizarea lor într-un mod transparent ca obiecte PHP.
Domenii principale unde sunt folosite scripturile PHP.
Scripturi ce rulează pe server. Acesta este cel mai tradițional și cel mai important pentru PHP. Este nevoie de trei lucrui pentru a face să meargă: interpretorul PHP (CGI sau modul de server), un server web și un browser web. E nevoie ca serverul de web să fie pornit, cu o conexiune PHP instalată. Se poate accesa rezultatul programelor PHP cu un browser prin intermediul serverului de web.
Scripting în linie de comandă. Se poate face ca PHP să ruleze fără a fi nevoie de server și de browser, ci doar de interpretorul PHP. Această metodă este ideală pentru script-urile ce se vor a fi executate de regulă folosind cron (task scheduler în Windows), sau sarcini simple de procesarea textelor.
Scrierea aplicațiilor ce rulează de partea clientului în mod grafic (GUI). Probabil că PHP nu este limbajul cel mai bun de a scrie aplicații cu ferestre pentru Windows sau alte sisteme de operare, dar dacă este bine cunocut și se dorește folosirea unor facilități avansate ale PHP în aplicațiile ce rulează de partea clientului, se poate totuși folosi PHP-GTK pentru a scrie astfel de programe. De asemenea, există posibilitatea scrierii aplicației ce rulează pe platforme diferite folosind metoda dată. PHP-GTK este o extensie a PHP-ului, nedisponibilă în distribuireia principală de PHP.[25]
Variabile predefinite
$GLOBALS = pot fi accesate toate variabilele globale care sunt accesibile script-ului PHP curent
$_SERVER = conține o serie de variabile ale căror valori sunt setate de server-ul web; majoritatea valorilor variabilelor din acest vector depind de mediul de execuție al script-ului curent.
$_GET și $_POST conțin variabile primite de script prin intermediul unor transferuri care folosesc metodele HTTP get, respectiv post. De exemplu, prin intermediul acestor vectori, pot fi accesate valorile campurilor dintr-un formular care a fost completat și transmis folosind una dintre cele doua metode.
$_COOKIE conține valorile variabilelor care cuprind informații referitoare la cookie-urile păstrate pe calculatorul utilizatorului ce accesează pagina web.
$_FILES conține variabile primite de script prin intermediul încărcărilor de fișiere prin metoda post.
$_ENV conține variabile disponibile prin intermediul mediului în care este executat.
$_REQUEST conține variabile disponibile prin intermediul oricărui tip de mecanism cu ajutorul căruia utilizatorul poate introduce date.
$_SESSION conține variabile care corespund sesiunii curente a script-ului[29]
Limbajul JavaScript
Cel mai cunoscut limbaj de scripting pe parte de client este JavaScript, care este suportat (mau mult sau mai puțin) de aproape orice browser existent. Folosind JavaScript se poate realiza: validarea formularelor, animarea textului și a imaginilor, crearea de meniuri drop-down și a controalelor de navigare, se pot efectua procesări de bază numerice sau asupra textelor și multe altele.
Limbajele script servesc în principal pentru a adăuga conținut dinamic a paginilor web. Conținutul dinamic este, în esența conținutului unei pagini web (grafice, texte s.a.m.d.) ce se pot schimba în timp, în concordanță cu iterațiile realizate de-a lungul execuției.
Intr-o pagina web HTML ce nu conține cod Script, conținutul nu se poate schimba în timp și din acest motiv conținutul se numeste “static”.
Javascript este un limbaj de programare Script creat de Netscape a cărui principala funcție o reprezintă includerea conținutului dinamic în cadrul paginilor web.
Scripting-ul permite programatorilor să detecteze și să proceseze evenimentele. De exemplu, o pagină care se încarcă, un formular trimis, mișcarea pointer-ului mouse-ului asupra unei imagini sunt toate evenimente, iar script-urile pot fi executate automat de browser atunci când aceste evenimente au loc.[26]
Script-urile pot fi incluse în codul HTML sau pot fi stocate în fișiere externe și legate în interiorul codului HTML.
Cu ajutorul JavaScript am implementat in interfața bazei de date plugin-ul PDFWiwer care permitea vizualizarea documentelor direct de pe pagina web și permite redarea formatu-lui pdf fara a putea fi downloadat.
Limbajul pentru stiluri CSS
CSS (Cascading Style Sheets) este un limbaj pentru stiluri folosit pentru a descrie prezentarea (aspectul si formatarea) unui document scris într-un limbaj de marcare. Aplicația sa cea mai cunoscuta este realizarea stilului paginilor web scrise în PHP,HTML și XHTML, dar limbajul poate fi aplicat oricarui tip de document XML, inclusiv SVG și XUL.
CSS prescurtarea de la Cascading Style Sheets este destinat în primul rînd să permită separarea conținutului documentului (scris în PHP, HTML sau un limbaj de marcare similar) de prezentarea documentului, inclusiv elemente precum culori, fonturi, și înpaginare. Aceasta separare poate îmbunatati accesibilitatea conținutului, poate oferi mai multa flexibilitate și control în specificarea caracteristicilor de prezentare, permite partajarea formatarii pentru multiple pagini, și reduce complexitatea și repetiția în conținutul structural (precum posibilitatea designului web făra tabele). CSS poate de asemenea să permita unei aceleiasi pagini de marcare să fie prezentată în diferite stiluri pentru diferite metode de transmitere, precum pe ecran, imprimare, voce (cînd se citește cu ajutorul unui browser pe baza de voce sau cu cititor de ecran) și dispozitive tactile. În timp ce autorul unui document leagă de obicei acel document de un șablon de stil CSS, cititorii pot folosi un sablon de stil diferit, posibil chiar pe propriul calculator, pentru a suprascrie pe cel specificat de autor.
CSS specifică o schema prioritară pentru a determina care reguli de stil se aplică două sau mai multe reguli, se suprapun pentru un element particular. În acest așa-numit cascade, prioritatile sau greutatea sunt determinate și atribuite regulilor, astfel încît rezultatele sunt predictibile.[12]
Beneficiile sintaxei CSS sunt:
Formatarea este întrodusa într-un singur loc pentru tot documentul, editarea rapida a etichetelor datorita întroducerii într-un singur loc a etichetelor se obține o micșorare a codului paginii, implicit încarcarea mai rapida a acesteia
Sintaxa CSS este structurata pe trei nivele:
nivelul 1 fiind proprietățile etichetelor din documentul PHP, HTML, tip inline
nivelul 2 este informația întrodusa în blocul HEAD, tip embedded
nivelul 3 este reprezentat de comenzile aflate în pagini separate, tip externe
Cea mai mare importanță (suprascrie orice alt parametru) o are sintaxa de nivelul 1 iar cea mai mica importanță o are cea de nivelul 3.
Folosirea unui fisier extern sau nivel 3 care să conțina comenzi CSS este foarte practic deoarece poate fi utilizat în mai multe situații (mai multe fișiere PHP, HTML pot folosi același fisier extern CSS) eliminand timpul necesar întroducerii codului corespunzator în fiecare pagina și totodata editarea lor într-un singur loc pentru mai multe fisiere.
Limbajul SQL
O bază de date SQL(Structured Query Language) este o colecție structurată de date. Conținutul bazei de date SQL poate fi orice, de la o galerie de imagini sau cantități mari de informații într-o rețea. Pentru a adăugarea, accesarea și prelucrarea datelelor stocate într-o bază de date din calculator, este nevoie de un sistem de management al bazelor de date. Pentru a adăuga viteză și flexibilitate, sisteme de management al bazelor de date relaționale (RDBMS), cum ar fi MySQL, stochează datele în tabele separate, mai degrabă decât a pune toate datele într-un depozit mare. Siteuri care folosesc baze de date au multe avantaje. Ele oferă conținut structurat, ușor accesibile și editabile, disponibil la mai multe utilizatori. De asemenea cele mai multe dintre informații sunt stocate în baza de date conținutul poate fi ușor transferat sau exportat într-o altă aplicație web, nou server web sau o versiune mai nouă a acestuia din urmă.[11]
Răspândirea siteurilor dinamice de pe World Wide Web-ul de azi este în mare parte este datorită posibilității de conținutul lor de a fi manipulate prin intermediul bazelor de date. Gestionarea bazei de date este un proces complicat, care a fost raționalizat în mod considerabil de limbajul de programare SQL. SQL este responsabil pentru interogarea și editarea informației stocate într-un anumit sistem de management al bazelor de date.
SQL este un limbaj proiectat pentru stocarea datelor, dar datele stocate într-o bază de date SQL nu sunt statice. Însa acesta poate fi modificat în orice moment, cu ajutorul utilizării a mai multor comenzi foarte simple. Sintaxa SQL este destul de mult explicativ de sine, ceea ce face mult mai ușor de citit și de înțeles.
De manipulare a datelor răspunde tabelele SQL, permite să modificrea un tabel creat deja cu noi informații, actualizarea valorilor deja existente sau a le șterge.
MySQLeste unul dintre cele mai cunoscute distributii SQL folosite de majoritatea scripturi de pe Internet, este inclusă în toate planurile de găzduire weboferite de Hosting NTC. Iar pentru cei care au nevoie de o soluție mult mai profesionist, fiecarui plan se execută upgraid cu PostgreSQL. Fiecare pachet de găzduire web vine cu unelte speciale de interfață grafică pentru gestionarea mese – phpMyAdmin și phpPgAdmin , pentru MySQL și PostgreSQL.[10]
Comparația limbajelor de programare PHP și JavaScript
Mai mult, spre deosebire de limbajele de scripting, precum JavaScript, PHP rulează pe serverul Web, nu în browserul Web. În consecință, PHP poate obține accesul la fișiere, baze de date și alte resurse inaccesibile programului JavaScript. Acestea constituie bogate surse de conținut dinamic, care atrag vizitatorii.
Diferența dintre PHP și altceva cum ar fi JavaScript, este acela că PHP este executat pe server pe când JavaScript este executat pe calculatorul clientului (de browserul Web). Pentru un script similar celui de mai jos sus pe un server, clientul ar primi doar rezultatele scriptului ce este rulat, fără a vedea în nici un fel codul din spatele acestuia. Se poate chiar configura serverul de web ca acesta să proceseze toate fișierele HTML cu PHP și astfel nu exită nici o metodă ca un utilizator să știe de fapt ce există în fișiere.
Cu PHP se poate face orice. PHP este în principal axat pe partea de scripting ce rulează pe server, deci poate face orice face și un program CGI, cum ar fi colectarea de date de la formulare, generarea de conținut dinamic sau trimitere și primire de cookie-uri. Dar PHP poate face mult mai multe.[29]
Java este un limbaj de uz general. Cu alte cuvinte, PHP este folosit doar ca un limbaj server-side unde Java este atît de de server-side și desktop limbaj de programare. Mai mult decît atît, Java este compilat și limbaj puternic tastat. Pe de altă parte, PHP este un limbaj dinamic tastat. Prin urmare, doar pentru programarea server-side, socot că comparația între Java și PHP are sens.
Url-uri
Formatul unei locații din Internet este numit URL ( Uniform Resource Locator – Descriptor Uniform de Resurse). Structura completă a unui URL este urmatoarea:
protocol://nume-calculator-gazda:port/cale-director/resursa
Protocolul sau serviciul este reprezentat de regulile care guvernează transferul datelor în rețea. În practică se utilizează urmatoarele protocoale:
file – specifică un URL local;
http – indică adresa Internet a unei pagini Web sau altă resursă ;
ftp – utilizat pentru adresarea în Internet a fișierelor prin intermediul protocolului de transfer de fișiere FTP;
gopher – indică adresa URL a unui director Gopher; reprezintă un sistem utilizat pentru localizarea și transferul informațiilor de indexare a numelor fișierelor în Interent;
telnet – permite conectarea în timp real la un alt calculator în Internet și utilizarea acestuia ca și cum ar fi un calculator local.
In sistemele Windows, în anumite situații protocolul poate lipsi pentru anumite adrese, tipul acestuia fiind determinat din numele gazdei.
Numele calculatorului gazdă identifică în mod unic un calculator în cadrul rețelei. Numele poate fi reprezentat atât printr-o adresa IP, cât și prin denumirea unui calculator local sau a unui calculator din Internet folosind specificațiile DNS.
Portul este reprezentat printr-un număr și este specific fiecărei aplicații. Majoritatea aplicațiilor de rețea utilizează porturi pentru comunicare. Pe un calculator pot exista mai multe aplicații de rețea, fiecare aplicație utilizând un port distinct.
Numele resursei este reprezentat de numele fișierului referit. Acesta poate fi o pagina Web, un fișier multimedia, un document, un fișier executabil.
O limitare o constituie faptul că un URL nu poate conține spații și alte caractere speciale, astfel că orice spațiu sau caracter special se va converti printr-un cod asociat acestora precedat de simbolul „%”.
Alte URL-uri folosite alături de cele prezentate sunt cele de:
e-mail, prin intermediul cărora se pot doar transmite mesaje de poștă electronică;
știri Usenet – în care trebuie să se identifice un server de știri care să ofere acces.[28]
Module MySQL
Sistemul informațional baza de date a tezelor de doctorat a fost folosite module care comunicau intre ele. Modulele au fost alese pentru a facilita dezvoltatrea sistemului informațional și pentru crearea productivității și îmbunatățirea clarității sistemului realizat
mongodb_user – adaugă sau elimină un utilizator dintr-o bază de date MongoDB.
mysql_db – adăugarea sau eliminarea baze de date MySQL dintr-o bază de date de ladistanță.
mysql_replication – gestionarea MySQL replicare
mysql_user – adaugă sau elimină un utilizator dintr-o bază de date MySQL. Dacă database_prefix = 0 în fișierul cpanel.config , apoi numele de utilizator contul cPanel va fi prefixate nu în mod automat la noul nume de utilizator MySQL .În cazul în care database_prefix = 1 sau valoarea lipsește , atunci numele utilizatorilor vor fi prefixate . (dacă introduceți numele de utilizator , atunci ar fi în cpuser_username . )
mysql_variables -permite gestionarea variabilelor globale MySQL
mysql_query – permite interogarea bazei de date MySQL
mysql_real_escape – permite stabilirea unei securizări în folosirea caracterelor escape ca date.
mysql_fetch_assoc – returează câte o înregistrarea asociativă a datelor din interogarea asupra bazei de date
mysql_num_rows – afișează numărul de înregistrări a interogării
mysql_number_of_dbs- preia numărul de utilizatori de baze de date din contul creat,indică numarul de utilizatori MySQL asociate contului curent
number_of_dbs – preia numărului de utilizatori de baze de date un contului creat
CHECKDB – numele bazei de date MySQL pentru verificare
deluser –ștege numele utilizatorului MySQL. Această valoare trebuie fixată cu numele utilizatorului cPanel ( de exemplu , cpuser_dbuser ) .
addhost – adresa IP sau numele care ar trebui să fie asigurat accesul .
updateprivs – forțează o actualizare de privilegii și parole MySQL .
repairdb – reface numele bazei de date MySQL.
deluserdb – . eliminarea permisiunelor utilizatorului.
deldb -numele bazei de date pentru a elimina de la MySQL . Această valoare trebuie să fie prefixat cu numele de utilizator cPanel ( de exemplu , cpuser_dbname ) .
adduserdb – Acordarea unui utilizator permisiunea de a accesa o bază de date într-un cont cPanel.
initcache – Reîmprospătarea cache-ul de informații MySQL . Aceasta include utilizatori , baze de date , rutine și alte informații conexe.
adddb – adaugă o bază de date nouă MySQL pentru un cont cPanel
listusersopt – generarea HTML pentru gestionarea utilizatorilor MySOL în cPanel .
delhost – elimină permisiunile de acces gazdă de la MySQL .
listdbs – generează HTML care listează bazele de date pentru anumite pagini .
rutine – lista de rutine MySQL create de către un utilizator .
gethost – preia gazda MySQL care este utilizată de către server.
listdbsopt – generează o listă de baze de date asociate cu un cont cPanel.
MysqlFE – generează HTML pentru gestionarea utilizatorilor MySQL .
Tehnologii de creare a bazei de date a tezelor de doctorat
Pentru crearea sistemului informational am nevoe de construcția World Wide Web este pe baza unui protocol numit Hypertext Transfer Protocol (HTTP). HTTP este un protocol mic și rapid care se potrivește foarte bine sistemelor informatice multimedia și distribuite în salturile între site-uri.
Web-ul constă în pagini cu informații de pe gazde care rulează software de tip server Web. Gazda este de multe ori identificată cu serverul Web, lucru care nu este corect.
Serverul Web este un software, nu calculatorul în sine.
Un Web server este un program care furnizează pagini Web la cerere. Când un utilizator de la o adresă IP specifică solicită un anumit fișier, serverul Web încearcă să obțină acel fișier și să-l trimită înapoi utilizatorului.
Fișierul solicitat poate fi codul sursă HTML al unei pagini Web, o imagine GIF, un fișier Flash, un document XML, sau un fișier AVI. Browserul Web este cel care determină ceea ce trebuie cerut, nu serverul Web.
Conexiunile la serverul Web stabilesc pe măsură ce sunt accesate, se solicită o cere a unei pagini de la un server Web, o conexiune IP este stabilită prin Internet între gazda solicitantă și gazda pe care rulează serverul Web. Pagina Web cerută este transmisă prin acea conexiune, iar aceasta este întreruptă îndată ce pagina este primită.
Pe un același host pot rula mai multe aplicații de Internet, de exemplu un server Web, un server FTP, un server DNS și un server de mail SMTP POP3 pot rula în același timp.
Fiecărui server îi este atribuit un port pentru a asigura ca fiecare server va răspunde numai cererilor din partea clienților corespunzători.
Majoritatea serverelor folosesc un set de porturi predefinite. Serverele Web folosesc de obicei portul 80, în caz ce avem erori acesta poate fi schimbat. Pot fi instalate pe porturi nestandard pentru a fi ascunse, și de asemenea, pot fi instalate mai multe servere Web pe un singur calculator asociindu-le porturi diferite.
Prin publicarea unui site local (upload), directorul, împreună cu conținutul său, este transferat la server-ul Web care conține Software-ul prin care site-ul este transmis navigatoarelor Web ale calculatoarelor conectate la Internet.[3] Odata publicat, site-ul se transformă din site local în site Web, iar interacțiunea utilizatorului cu el are loc similar modului descris in (figura 1)
Fig.1 Comunicarea dintre navigatorul Web și serverul Web
WampServer
Pentru elabroare sistemului informațional baze de date voi folosi wamp server. WampServer permite construirea un server web care conține Apache, MySQL, shell scripturi PHP, phpMyAdmin și alte aplicatii concepute pentru web-dezvoltare sub Ferestre .Are un sistem automat de instalare. Wamp se instalează automat pe serverul apache, configurează o bază de date MySQL și instalează aplicații de suport php de configurare și întreținere ușoară. Scopul principal al unui server wamp este de a rula aplicații de testare înainte de a fi încărcat pe serverul real. Testezi toate paginile de pe wamp înainte de a încărca pe server, acest lucru mă ajută foarte mult fiindcă vedem rezultatul final inainte de a incarca pe server.
Serverul web Apache
Reprezintă unul dintre cele mai utilizate servere de web Serverul Web Apache este un proiect al Apache Software Foundation și constă într-un efort colectiv cu scopul declarat de a dezvolta și întreține un server Web care oferă servicii HTTP pentru sistemele de operare moderne precum UNIX și Windows, caracterizat de calitățile: open-source, securizat, eficient și extensibil.[13]
Proiectul Apache este dezvoltat de o comunitate de dezvoltatori și utilizatori cunoscută sub denumirea de Apache Group, care în procesul de dezvoltare se bazează pe consens și colaborare. Apache depășește servere comerciale ale unor firme de prestigiu, prin:
opțiunile de configurare și design-ul modular: este foarte ușoară scrierea de module care să satisfacă o funcționalitate particulară, în cazul în care acestea nu sunt deja implementate în librăria proprie.
portabilitate: versiunea originală a serverului Apache a fost dezvoltată pentru UNIX, dar există acum și versiuni care rulează sub OS/2, Windows și alte platforme.
Câteva caracteristici ale serverului Apache sunt:
are foarte multe facilități: Apache are suport XML, incluziune de fișiere pe parte de server, rescrierea URL-urilor, găzduire virtuală, pentru a enumera doar câteva dintre ele;
este modular: dacă se dorește folosirea unei facilități care nu este implementată în nucleul Apache sunt foarte mari șanse să existe un modul care poate adăuga serverului acea facilitate;
este extensibil: după cum am menționat codul sursă fiind gratis, dacă nu se găsește un modul care să ofere funcțiile de care este nevoie la un moment dat, este posibilă crearea unuia nou, care să servească nevoilor personale.[22]
Aplicația web PHPMyAdmin
Serverul PHPMyAdmin este o web aplicație cu software-ul open source, scris în limbajul PHP si un web-based de administrare de baze de date MySQL .PHPMyAdmin permite uni browser pentru a administra serverul, MySQL,permite executarea comenzi SQL și permite vizualizarea conținutului din tabele și a bazei de date. Cererea este foarte populară printre dezvoltatorii web, deoarece permite să gestionezi SGBD-ul MySQL fără a efectezi intrarea directă a comenzilor SQL, oferindu-mi o interfață user-friendly.
La moment PHPMyAdmin este utilizat pe o scară largă. Acesta se datorează faptului că se efectuiază dezvoltarea rapidă a produsului, luând în considerare toate inovațiile SGBD-ului MySQL . Marea majoritate a furnizorilor utiliza această aplicație ca un panou de control, în scopul de a oferi clienților săi posibilitatea de a administra baze de date care îi sunt atribuite.
Caracteristicile oferite de program includ:
Interfață web
Suport pentru cele mai multe caracteristici MySQL:
naviga și fixați baze de date, tabele, vizualizări, câmpuri și indicii
crea, copia, picătură, redenumi și modifica baze de date, tabele, câmpuri și indicii
server de întreținere, baze de date și tabele, cu propuneri privind configurarea serverului
executa, edita și marcaj orice SQL -declarație, chiar și lot-interogări
gestionarea utilizatorilor MySQL și privilegii
gestiona procedurile și triggere stocate
Datele de import de la CSV și SQL
Datele de export în diferite formate:CSV , SQL , XML , PDF ISO / IEC 26300 – Text OpenDocument și foaie de calcul, Word, Excel, LaTeX și altele
Administrarea mai multor servere
Crearea de graficii PDF de aspectul bazei de date
Crearea de interogări complexe, folosind Query-de exemplu (QBE)
Căutare la nivel global într-o bază de date sau un subset
Transformarea datelor stocate în orice format, folosind un set de funcții predefinite, cum ar fi afișarea BLOB -date ca imagine sau descărca-link
Grafice pentru a monitoriza activitatea MySQL server ca conexiuni, procese, CPU / memorie de utilizare[27]
Google SMTP server
Am folosit o caracteristică puțin cunoscută despre Gmail și Google Apps e-mail, este serverul Google SMTP portabil. În loc de a avea, de a gestiona propriul server de mail de ieșire, pur și simplu am configurat setările Google server SMTP în scriptul PHP care efectuiaza trimiterea pe e-mail.[27]
Am avut nevoie sa creez un acont gratuit pe Gmail. Astfel voi avea toate e-mail într-un singur loc convenabil. De asemenea, deoarece serverul SMTP Google nu foloseste portul 25, voi reduce probabilitatea ca un ISP ar putea bloca e-mailul sau pavilionul ca SPAM.
Google limitează cantitatea de e-mail un utilizator poate trimite, prin serverul SMTP portabil. Această limită limitează numărul de mesaje trimise pe zi la 99 de e-mailuri; și restricția este eliminat în mod automat în 24 de ore după ce a fost atins limita.[26]
Descrierea sistemului informational
Omenirea se confruntă cu o explozie de informații . Volumul de informații disponibile la mass-media , este în continuă creștere . Prin urmare , pentru fiecare persoană care locuiește în societatea informațională , este un mijloc foarte important de a stăpâni soluția optimă a problemei de acumulare , prin care se dispune gestionarea informațiilor.
Performanța umană în procesarea informației a crescut dramatic cu utilizarea computerelor . Folosesc calculatoarele pentru rezolvarea problemelor de servicii. Această perioadă este caracterizată prin faptul că softwarele sunt proiectatate pentru a rezolva o anumită sarcină de procesare a datelor . În același timp, pentru alte sarcini care folosesc aceleași date , a fost necesar crearea noilor programe.
Pentru a rezolva problemele complexe ale software-ului, calculatorul operează cu aceleași date folosind un obiect model de informații comun. Omenirea a ajuns la organizarea informațiilor în sisteme informațonale .Sistemle informaționale sunt numite cantități mari de date cu software-ul și hardware-ul pentru procesare.
Scopul principal a sistemului informational baza de date a tezelor de doctorat esete de a fi multiutilizator adică un sistem baze de date client-server. Practic sisteme de baze de date client-server sunt servere care dispun de resurse pentru alte computere. Este atunci cînd partea de client face o cerere de serviciu de pe server, care completează cererea. Sistemul informational va permite inregistrarea a doua tipuri de utilizatori:în calitate de utilizator simplu care va efectua autentificarea si automat va accesa interfața bazei de date, utlizatorul simplu avea permisiunea de vizualizare a datelor,a tezelor de doctorat dar nu va avera acces de copiere a acestor și de a modifica datele persnale(parola,nume, prenume) și in calitate de administrator care efectuînd înregistrarea va avea acces la interfața bazei de date numai dupa ce va primi permisiunea. Administratorul va avea acces in totalitate la baza de date va putea efectua: editarea, adaugrea, ștergerea dateleor din baza de date, va avea acces și la cererile inregistrarilor și datele celor inregistrați.
Concluzii capitolul 2
In capitolul dat am efectuat planificarea și analiza sistemului informational baza de date a tezelor de doctorat aceasta este o parte foarte importantă în dezvoltarea sistemului dupa care urmaează aplicarea tehnologiilor și limbajelor de programare. Analizind cu precizi îmi va ușura munca și timpul realizarii sistemului informational.
IMPLIMENTAREA ȘI UTILIZAREA SISTEMULUI INFORMAȚIONAL
Scopul etapei este:
de a spori productivitatea muncii personalului;
de a reduce volumul de muncă necesar pentru realizarea proceselor concrete din contul spațiului informațional unic;
de a reduce erorile din contul creșterii posibilităților de analiză și verificare a informației în cadrul sistemului informational baza de date a tezelor de doctorat.
Etapa de implementare se începe cu următoarele:
obținerea permisiunii pentru instalarea sistemului informational la locurile de funcționare;
verificarea capacității de funcționare a sistemului informational în condiții reale de expluatare;
organizația instruirii personalului, lucrului cu sistemului informational și componentele acestuia.[19]
Sarcinile de implementare a sistemului informational baza de date a tezelor de doctorat sunt complexe deoarece soluționarea lor presupune realizarea unui șir de acțiuni care include:
elaborarea concepției de creare a sistemului informational unitar;
instruirea utilizatorilor;
instruirea administratorilor și specialiștilor de profil îngust;
adaptarea sistemului informational la specificul proceselor din organizație;
elaborarea bazei normative pentru activitatea în cadrul noilor tehnologii;
implementarea completă a sistemului informational în activitatea practică a Consiliului Național pentru Acreditare și Atestare
Pentru realizarea sarcinilor de implementare a sistemului informational este necesar de a elabora planul de implementare a sistemului informational.[20]
Planul standard de implementare a sistemului informational cuprinde următoarele etape:
planificarea implementării –asigurarea informării angajaților, recrutarea angajaților în grupul de implementare a sistemului informational;
instalarea sistemului – instalarea, testarea și verificarea corectitudinii setărilor sistemului informational;
lansarea proiectului pilot – instruirea utilizatorilor, transferul utilizatorilor la noul sistemului informational, colectarea opiniilor utilizatorilor și finisarea sistemului informational în caz de necesitate, desemnarea unui grup de persoane responsabile de suportul sistemului informational;
implementarea deplină a sistemului informational în activitatea organizației.[18]
Rezultatele etapei:
instruirea utilizatorilor.
Ghidul programatorului
Ghidul programatorului include prezentarea etapelor creării sistemului informațional (crearea bazei de date, crearea paginilor web și stabilirea relațiilor dintre acestea), aici este prezentată detaliat structura bazei de date prin descrierea tabelelor și a relațiilor dintre ele. De asemenea este reprezentată strucutra de adrese a site-ului, detalii de implementare a paginilor cât și modalitate de utilizare a lor.
Crearea sistemului informational
Am efectuat schematic structura bazei de date(figura 2.) orientindumă după structura oferită de Consiliului Național de Acreditare și Atestare voi implimenta datele în aplicația phpMyAdmin care permite browserul-ui pentru a administra serverul MySQL si imi va permite executarea comenzilor SQL și crearea sistemului insormațional.
Fig. 2.
Crearea sistemului informațional bazei de date în aplicația php MyAdmin folosind Wampserver
WampServer este o platforma de dezvoltare web pe Windows pentru aplicatii web dinamice folosind server Apache2, PHP limbaj de scripting și o bază de date MySQL[2]. Ea are, de asemenea, PHPMyAdmin pentru a gestiona cu ușurință bazele de date. Pentru deschiderea aplicației phpMyAdmin conectăm Wampserver tastînd butonul Start All Services (Fig.3.) și se tastăm în caseta de text pentru adrese a aplicației în orice browser adresa http://localhost/phpmyadmin/ (fig. 3.1.).
Fig.3. Conectarea Wampserver
Fig. 3.1. Conectarea la interfața SGBD-ului phpmyadmin
În fereastră este afișat tabelele bazei de date. (Fig 4.)
Fig. 4. Tabelele bazei de date
Operațiile aplicației phpMyAdmin asupra tabelelor dupa creare
Browse: permite vizualizarea datelor
Structure: vizualizeaza si modifica structura
SQL: permite introducere de comenzi SQL(Select-vizualizare a datelor, Insert-inserare a datelor, Update-modificare a datelor, Delete-stergere a datelor)
Export, Import: permite exportul sau importul de tabele
Operations: diferite operatii asupra structurii si proprietatilor tabelului
Empty: goleste de date tabelul
Drop: sterge efectiv tabelul[16]
Descrierea modulelor folosite
Sistemul informațional baza de date a tezelor de doctorat a fost folosite module care comunicau intre ele. Modulele au fost alese pentru a facilita dezvoltatrea sistemului informațional și pentru crearea productivității și îmbunatățirea clarității sistemului realizat
mongodb_user – adaugă sau elimină un utilizator dintr-o bază de date MongoDB.
mysql_db – adăugarea sau eliminarea baze de date MySQL dintr-o bază de date de ladistanță.
mysql_replication – gestionarea MySQL replicare
mysql_user – adaugă sau elimină un utilizator dintr-o bază de date MySQL. Dacă database_prefix = 0 în fișierul cpanel.config , apoi numele de utilizator contul cPanel va fi prefixate nu în mod automat la noul nume de utilizator MySQL .
în cazul în care database_prefix = 1 sau valoarea lipsește , atunci numele utilizatorilor vor fi prefixate . (dacă introduceți numele de utilizator , atunci ar fi în cpuser_username . )
mysql_variables -permite gestionarea variabilelor globale MySQL
mysql_query – permite interogarea bazei de date MySQL
mysql_real_escape – permite stabilirea unei securizări în folosirea caracterelor escape ca date.
mysql_fetch_assoc – returează câte o înregistrarea asociativă a datelor din interogarea asupra bazei de date
mysql_num_rows – afișează numărul de înregistrări a interogării
mysql_number_of_dbs- preia numărul de utilizatori de baze de date din contul creat,indică numarul de utilizatori MySQL asociate contului curent
number_of_dbs – preia numărului de utilizatori de baze de date un contului creat
CHECKDB – numele bazei de date MySQL pentru verificare
deluser –ștege numele utilizatorului MySQL. Această valoare trebuie fixată cu numele utilizatorului cPanel ( de exemplu , cpuser_dbuser ) .
addhost – adresa IP sau numele care ar trebui să fie asigurat accesul .
updateprivs – forțează o actualizare de privilegii și parole MySQL .
repairdb – reface numele bazei de date MySQL.
deluserdb – . eliminarea permisiunelor utilizatorului.
deldb -numele bazei de date pentru a elimina de la MySQL . Această valoare trebuie să fie prefixat cu numele de utilizator cPanel ( de exemplu , cpuser_dbname ) .
adduserdb – Acordarea unui utilizator permisiunea de a accesa o bază de date într-un cont cPanel.
initcache – Reîmprospătarea cache-ul de informații MySQL . Aceasta include utilizatori , baze de date , rutine și alte informații conexe.
adddb – adaugă o bază de date nouă MySQL pentru un cont cPanel
listusersopt – generarea HTML pentru gestionarea utilizatorilor MySOL în cPanel .
delhost – elimină permisiunile de acces gazdă de la MySQL .
listdbs – generează HTML care listează bazele de date pentru anumite pagini .
rutine – lista de rutine MySQL create de către un utilizator .
gethost – preia gazda MySQL care este utilizată de către server.
listdbsopt – generează o listă de baze de date asociate cu un cont cPanel.
MysqlFE – generează HTML pentru gestionarea utilizatorilor MySQL .
Tabelele sistemului informațional bazei de date
Remărci:
Toate cîmpurile din tabele a caror denumire e precedata de ID_ sunt chei străine sau chei primare.
Campul ID_Limba din toate tabelele semnifică codul limbii in care e redată informația din înregistrarea respectivă, de exemplu: pentru en, informația din înregistrare va fi in engleza.
Tabelul teze – e folosit pentru păstrarea datelor despre teze, ca : Grad, data sustinere, data aprobare, autor, cod institutie cod specialitate, conducător, consultant stiințific, numărul de pagini. ID_Teza e cheia primară. Câmpul statut poate fi:
S – în examinare la CȘS
C – în examinare la CNAA
A – aprobat.
X – respinsă
R – retrasă
Acest câmp se completează automat la inserarea unei noi teze folosindu-se condițiile:
$statut = 'S';
if($sustinere<$azi) $statut = 'C';
if($aprobare<$azi) $statut = 'A';
De asemenea acest câmp se actualizează prin modificarea la fiecare 12 ore statutului în C, în cazul în care data de azi a depășit data susținerii folosind evenimentele din mysql:
Fig. 5 Structura tabelului teze
Tabelul translateteza – în acest table sunt păstrate datele despre teze care necesită traducere în mai multe limbi, astfel informația completă despre o teza poate fi obținută prin joncțiunea acestor table cu tabelul tezei prin intermediul cîmpului ID_Teza și condiția ca ID_Limba=limba aleasa. Despre documente sunt salvate denumirile, adnotare, cuprins cuvinte cheie , iar fișierele sunt localizate intr-un directoriu de pe serverul local pentru fiecare limba:
\files\ro
\files\ru
\files\en
Fig.6 Structura tabelului translateteza
Tabelul persoane – păstreaza datele despre persoana, ca grad, titlu, data și nr abilitare, instituție, el e folosit pentru identificarea conducătorului unei teze și membrii consiliului tezei.
Fig.7 Structura tabelului persoane
Tabelul instituții – păstrează informații despre instituții, ca: denumire și abreviatură, ultima fiind folosită și ca cheie primară, acest tabel e folosit pentru identificarea instituției în care activează o persoană și a instituției în care va fi susținută teza.
Fig.8 Structura tabelului instituții
Tabelul consilii – determină consiliul de atestare a unei teze , ce conține informatii ca: cifrul consiliului, persoană din consiliu, rolul ei în consiliu și teza care a fost aprobată de consiliu. Printr-o joncțiune cu tabelul teze, prin cîmpul ID_Teza se poate determina întregul consiliu a unei teze cu ID-ul respectiv.
Fig.9 Structura tabelului consilii
Tabelul grade – păstrează denumirile gradului știintific al unei personae sau tezei in diverse limbi, ID_Grad e cheia primara si coincide cu abreviatura gradului
Fig.10 Structura tabelului Grade
Tabelul Titluri – pastrează denumirile titlurilor persoanelor în diverse limbi
Fig.11 Structura tabelului Titluri
Tabelul Roluri – pastrează denumirile rolurilor (membru, președinte, secretară etc.) persoanelor în consilii în mai multe limbi
Fig.12 Structura tabelului Roluri
Tabelele Specialitati, Profile, Ramuri, Domenii – aceste tabele formează o ierarhie de date domenii -> ramuri -> profile -> specialități sunt folosite pentru clasificarea specialităților.
Fig.13 Structura tabelelor Specialitati, Profile, Ramuri, Domenii
Tabelul users – păstreaza datele personale despre utilizatori, data și ora ultimei autentificări, cît și starea utilizatorilor, autorizati sau neautorizați, astfel doar un utilizator autorizat va putea accesa site-ul și gestiona datele din tabele de mai sus, cît și datele despre utilizatori de asemenea și autorizarea acestora. Un alt camp din acest tabele câmpul Type care determină tipul utilizatorului:
0 – utilizator simplu, care poate doar vizualiza datele
1 – administrator, care poate vizualiza, insera, edita, șterge datele din tabele.
Fig.14 Structura tabelului users
Tabelul pass_to_send – pastrează parolele în format clar ce vor fi trimise pe e-mail-ul utilizatorului ce a trimis o cerere de înregistrare , dupa care vor fi șterse.
Fig.15 Structura tabelului pass_to_send
Tabelul useronline – pastrează datele despre id-ul utilizatorului și timpul lui de accesare al site-ului.
Fig.16 Structura tabelului useronline
Ghidul utilizatorului
Ghidul utilizatorului este una dintre cele mai importante părți ale oricarui program.
În ghidul utilizatorului sunt prezentate link-urile sistemului, prezentarea realizării și implimentării a funcțiilor este prezentata pagina de inregistrare și interfața utilizatorilor simpli si a admistratorului .
Link-urile sistemului utilizate de către administrator
/inregistrare – pagina de inregistrare a unui utilizator simplu
/cerere – pagina de transmitere a unei cerei de inregistrare pentru administrator
/ – afișarea paginii de start in caz in care nu e autentificat, altfel lista tezelor
/authuser – pagină de autentificare pentru un utilizator simplu
/authadmin – pagină de autentificare administrator
/teze – afișarea lista tezelor
/teze/<id_teza>/ – afisarea informațiilor despre teza cu codul id_teza
/teze/insert – pagina de adăugare a unei teze
/teze/edit/<id_teza> – editarea informațiilor despre teza cu codul id_teza
/teze/delete/<id_teza> – ștergerea tezei cu codul id_teza
/consilii – afișarea informațiilor despre datele consiliilor
/consilii/insert – pagina de adăugare a unui consiliu
/consilii/edit/<id_consiliu> – editarea informațiilor despre consiliul cu codul id_consiliu
/consilii/delete/<id_consiliu> – ștergerea consiliului cu codul id_consiliu
/roluri – afișarea informațiilor despre toate rolurile
/roluri/insert – pagina de adăugare a unui rol
/roluri/edit/<id_rol> – editarea informațiilor despre rolurile cu codul id_rol
/roluri/delete/<id_rol> – ștergerea rolului cu codul id_rol
/persoane – afișarea informațiilor despre toate persoanele
/persoane/insert – pagina de adăugare a unei persoane
/persoane/edit/<id_persoana> – editarea informațiilor despre persoanele cu codul id_persoană
/persoane/delete/<id_persoana> – ștergerea persoanei cu codul id_persoană
/grade – afișarea informațiilor despre toate gradele știintifice
/grade/insert – pagina de adăugare a unui grad știintific
/grade/edit/<id_grad> – editarea informațiilor despre gradul cu codul id_grad
/grade/delete/<id_grad> – ștergerea gradului cu codul id_grad
/titluri – afișarea informațiilor despre toate titlurile știintifice
/titluri/insert – pagina de adăugare a unui titlu știintific
/titluri/edit/<id_titlu> – editarea informațiilor despre titlul cu codul id_titlu
/titluri/delete/<id_titlu> – ștergerea titlului cu codul id_titlu
/institutii – afișare lista instituțiilor
/institutii/<id_institutie>/ – afișarea informațiilor despre instituția cu codul id_instituție
/institutii/insert – pagina de adăugare a unei instituții
/institutii/edit/<id_institutia> – editarea informațiilor despre instituția cu codul id_instituția
/institutii/delete/<id_institutia> – ștergerea instituțiiei cu codul id_instituția
/nomenclator – vizualizarea listelor domeniilor, ramurilor, profilelor si specialităților
/domenii/insert – pagina de adăugare a unei specialități
/domenii/edit/<id_specialitate>- editarea informațiilor despre specialitatel cu codul id_specialitate
/domenii/delete/<id_specialitate> – ștergerea specialităței cu codul id_specialitate
/ramuri/insert – pagina de adăugare a unur ramuri
/ramuri/edit/<id_ramura> – editarea informațiilor despre ramura cu codul id_ramura
/ramuri/delete/<id_ramuri> – ștergerea ramurii cu codul id_ramura
/profile/insert – pagina de adăugare a unui profil
/profile/edit/<id_profil> – editarea informațiilor despre profillul cu codul id_profil
/profile/delete/<id_profil> – ștergerea profillului cu codul id_profil
/specialitati/insert – pagina de adăugare a unei specialități
/specialitati/edit/<id_specialitate> – editarea informațiilor despre specialitatatea cu codul id_specialitate
/specialitati/delete/<id_specialitate> – ștergerea specialitatații cu codul id_specialitate
/data/edit/<id_user> – editarea si vizualizarea informațiilor despre utilizatorul cu codul id_user
/data/pass/<id_user> – accesarea paginii de modificare a parolei utilizatorului cu codul id_user
/cereri – vizualizarea utilizatorilor și informatiilor despre ei
/cereri/delete/<id_user> – ștergere utilizatorului cu codul id_user
/cereri/accept/<id_user> – acceptarea cererii utilizatorului cu codul id_user
/search/?search_text=<text cautat> – cautarea unei teze ce conțin în denumire sau în cuvintele cheie text_cautat
/advanced – accesarea paginii de căutare avansată
/exit – ieșire de pe site
Realizarea și implimentarea funcțiilor
Fig.17 Pagina de start
Pe site sunt 2 tipuri de utilizatori: administrator și utilizatori simpli.
Diferențierea utilizatorilor în cod se face în urma verificării câmpului Type a tabelului users, apoi dacă utilizatorul este administrator, se setează o variabilă de sesiune: $_SESSION['logat'] = true; pentru utilizatori simpli: $_SESSION['guest'] = true;
Astfel pentru a nu permite drepturile de modificare a bazei de date pentru utilizatorii simpli, în fiecare script se verifică dacă e setată variabila $_SESSION['logat'], de exemplu:
Utilizatorilor simpli nu le este permisă vizualizarea listei de utilizatori și acceptarea cererilor de administrator, astfel acest meniu nu este accesbili pentru ei.
Pagini Administratori
Pentru accesarea site-ului administratorii trebuie sa se autentifice (vezi Fig. 14) folosind ca nickname email-ul cu care s-au inregistrat (vezi Fig. 17) și parola trimisă pe email sau care a modificat-o ulterior.
Fig. 18 Formularul de autentificare
Înregistrarea unui administrator pe site se efectuează prin trimiterea unei cereri administrației, care este completată cu datele personale indicate in tabelul users (vezi fig. 14), care apoi va fi confirmată de orice utilizator acceptat
Fig.19 Formularul de transmitere a cererii
Dupa autentificare utilizatorul este redirectionat la pagina principală a site-ului unde este afisată lista institutiilor,căutarea meniul si datele utilizatorului (vezi Fig.20).
Fig. 20 Pagina cu lista tezelor
Aici sunt afisate urmatoarele informații despre teze: Autor (nume-prenume), Gradul, Specialitatea, Nr.pagini, Instituție, Conducător, Denumirea, Domeniul, Data și ora susținerii, cît și acțiunile ce pot fi efectuate – editare (vezi Fig. 21), – ștergere. Această pagina e accesată și la alegerea meniului Teze.
Fig. 21 Editarea informației despre o teza
Pentru a adăuga o teza se va apăsa butonul Add teza pentru accesarea formularului de înserare a unei teze (vezi Fig.22)
Fig.22 Formularul de adăugare a unei teze
Pentru a vizualiza informațiile despre o teza accesam legătura către aceasta teza (vezi Fig. 23).
Fig.23 Pagina de vizualizare a informațiilor despre o teza
Pentru vizualizarea consiliilor tezelor accesam submeniul consilii, unde va fi afisată lista tezelor si componenta consiliului pentru fiecare teza (Vezi Fig.24) cît si acțiunile ce pot fi efectuate pentru un consiliu – editare (vezi Fig. 26), – ștergere. De asemenea în aceasta fereastră e posibilă adăugarea consiuliui pentru unele teze (vezi Fig. 25), pe această pagina sunt posibile funcționalităti ca: alegerea tezei pentru care trebuie adăugat consiliul, adăugarea unui membru (alegerea unei persoane din tabelul persoane, cît și a rolului persoanei respective in consiliu).
Fig. 24 Pagina de vizualizare a listei consiliilor pentru fiecare teza
FIg. 25 Formularul de înserare a unui consiliu
Fig. 26 Formularul de editare a unui consiliu
Vizualizarea rolurilor din consilii pot fi vizualizate accesand legătura Roluri din pagina de vizualizare a consiliilor (vezi Fig.27), în cadrul acestei pagini e posibilă adăugarea (vezi fig. 28), editarea( vezi fig. 29) și ștergerea unui rol
Fig. 27 Pagina de vizualizare a rolurilor
Fig.28 Formularul de adăugare a unui rol
Fig. 29 Formularul de editare a unui rol
Vizualizare listei nomenclatorului, adică ierarhia: domenii -> ramuri -> profile -> specialitați e posibilă accesand subdomeniul Nomenclator din meniul principal (vezi fig. 30), aici de asemenea e posibilă adăugarea (Fig. 31), editarea (Fig. 32) , ștergerea informațiilor din nomenclator
Fig. 30 Pagina de vizualizare a datelor din nomenclator
Fig. 31 Formularele de adăugare a domeniilor, ramurilor, profilelor, specialităților
Fig. 32 Formularele de editare a domeniilor, ramurilor, profilelor, specialitatilor
Pentru vizualizarea datelor despre persoanele înregistrate pe site accesăm meniul Persoane (Fig. 33), aici avem posibilitatea vizualizării datelor despre o persoana( vezi Fig. 34 ) adaugării unei personae (Vezi Fig. 35), ediarea datelor despre o persoana (vezi Fig. 36) cît și ștergerea datelor despre o persoană.
Fig. 33 Afișarea listei persoanelor
Fig. 34 Pagina de afișare a datelor despre o persoană
Fig. 35 Formularul de adăugare a datelor despre o persoană
Fig. 36 Formularul de editare a datelor despre o persoană
De aici e posibilă accesarea listelor gradelor științifice cît și titlurile persoanelor (vezi fig 37), unde putem adăuga (vezi Fig. 38), editează (vezi Fig 39) și șterge gradul sau titlul respectiv.
Fig. 37 Paginile cu listele gradelor și titlurilor știintifice
Fig. 38 Formularele de adăugare a gradelor și titlurilor științifice
Fig. 39 Formularele de editare a gradelor și titlurilor științifice
Pentru a vizualiza lista insituțiilor accesam submeniul Instituții din meniul principal (vezi Fig. 40) aici , avem posibilitate afișarii informațiilor despre o instituție (vezi Fig. 41) , editarea informațiilor despre o instituție (vezi Fig. 42) cît șistergera unei instituții.
Fig. 40 Pagina de afișare a listei instituțiilor
Fig.41 Formularul de adăugare a unei instituții
Fig. 42 Formularul de editare a unei instituții
Pentru a vizualiza si edita informațiile despre persoana autentificată accesăm meniul Date personale (Vezi Fig.43), aici de asemenea putem modifica parola utilizatorului curent (Vezi Fig. 44).
Fig. 43 Vizualizarea și editarea datelor despre persoana autentificată
Fig. 44 Formularul de modificare a parolei
Pentru a vizualiza lista utilizatorilor accesăm meniul Utilizatori (cereri : <nr_cerei>), unde nr_cereri este numărul de cereri noi, neacceptate (Vezi Fig. 42), Aici avem posibiliatatea da a accepta o cerere, la acceaptarea careia este transmisa pe email-ul persoanei respective din liste, aici de asemenea e posibilă ștergerea unui utilizator . Pe această pagină sunt 2 liste: utlizatorii simpli și lista de aministratori.
Fig. 45 Pagina de vizualizarea a listei de utilizatori
Procedura de autentificare a utilizatorilor simpli e echivalentă cu cea a adminstratorilor(Vezi Fig. 46)
Fig. 46
Însă înregistrarea acetstor utilizatori e mai simplă deoarece ei setează parola la înregistrare(Vezi Fig. 47)
Fig. 47
Însă odată înregistrat utilizatorul simplu va avea acces doar de vizualizare a datelor, iar itemul Cereri din meniu nu va fi accesibil
Teze (Vezi Fig. 48), in pagina dată sunt prezentate tezele care sunt in examinare la Consiliul Științific Specializat și in examinare la Consiliul Național pentru Acreditare și Atestare.
Fig. 48
Consilii (Vezi Fig. 49), in pagina dată sunt prezentate denumirile tezelor și a consiliului.
Fig. 49
Nomenclator (Vezi Fig. 50), în pagina dată sunt prezentate specialitățile științifice.
Fig. 50
Persoane (Vezi Fig. 51), în pagina dată sunt prezentate persoanele după nume-prenume,grad si titlul științific
Fig. 51
Instituții (Vezi Fig. 52), în pagina dată sunt prezentate denumile instituțiilor
Fig. 52
Modul de căutare
Modul de căutare are ca scop căutarea tezelor ce corespund unor condții, el este accesibil ambelor tipuri de utilizatori.
Sunt 2 tipuri de căutare:
Căutare simplă(Vezi Fig. 53), va căuta doar după cuvintele cheie și denumirea.
Fig. 53 Căutare simplă
Căutarea avansată(Vezi Fig. 54),va efectua căutarea dupa diferite criteria cum ar fi căutarea dupa:denumirea tezei, nume, prenume, instituție, specialitate.
Fig. 54 Căutare avnsată
Concluzii la capitolul 3
In capitolul dat am prezentat crearea și implimentarea funcțiilor sistemului informațional baza de date a tezelor de doctorat dupa sarcinile propuse de Consiliului Național de Acreditare și Atestare.Efectuînd baza de date am folosit Wampserver,este o platformă de dezvoltare web pe Windows pentru aplicații web dinamice foosind server Apache2, PHP limbaj de scripting și o bază de date MySQL, de asemenea, PHPMyAdmin pentru a gestiona cu ușurință bazele de date MySQL.
Baza de date efectuata are la bazădoua tipuri de utilizatori, logarea poate fi efectuata in calitate de administrator și în calitate de utilizator simplu. Administratorul are permisiunea de editare adaugare și ștergere a datelor și acceptarea cererilor de înregistrare iar utilizatorul simplu are permisiunea numai de a vizualiza datele.
CONCLUZII GENERALE ȘI RECOMBĂRI
Sistemul informațional „Baza de date a tezelor de doctorat” este un sistem intuitiv și facil în utilizare. Deoarece acest sistem e elaborat sub formă de site este posibil de accesat atât de pe calculatoare personale cât și de pe dispozitive mobile, care sunt foarte utilizate în zilele noastre. Avantajul de bază a sistemului nou față de cel vechi este faptul că tehnologiile utilizate în noul sistem sunt în pas cu noile dezvoltări în domeniul tehnologiilor web, care aduc multe implementări în eficiență, cât și în ușurarea muncii programatorului, de asemenea pentru acest gen de tehnologii există medii de dezvoltare și framework-uri foarte puernice.
Pentru o ulterioară dezvoltare a sistemului e posibilă realizarea lui în mai multe limbi, baza de date a fost concepută astfel încât să fie posibilă această modificare
Acest sistem facilitează introducerea și editarea datelor din tabelele conexe prin crearea unor liste cu datele din aceste tabele, din care e posibilă selectare elementului dorit.
Sistemul ne permite ducerea unei evidențe a ultimelor autentificări în sistem, ceea ce ne permite identificarea persoanei responsabile de o eventuală fraudare.
Acest sistem e recomandat spre utilizare tuturor persoanelor și doar cele autorizate vor avea dreptul de administrare a lui. Pentru buna funcționalitate a site-ului sunt recomandate activarea rulării codului JavaScript în browser, cât și adăugarea unei exceții în firewall pentru comunicarea în exterior. Pentru o bună funcționare a modului de căutare e recomandat utilizare doar a unor cuvinte cheie și nu a unor fraze. Utilizatorii ce doresc atuorizarea de adminstratori e necesar ca să insereze în formular o adresa de e-mail existent altfel nu va posibilă transmiterea parolei pe adresa respectivă.
BIBLIOGRAFIE
Aplicatii Web la cheie. Studii de caz implementate in PHP; Editura Polirom 2003
Connolly, T., Begg, C., Strachan, A. – Baze de date, Ed. Teora, 2000.
Connolly, T., Begg, C., Strachan, A. – Database Systems – A Practical Approach to Design, Implementation and Management, Addison Wesley Longman Limited 1995, 1998
Dezvoltarea aplicatiilor WEB cu PHP și MySQL; Editura Teora 2004.
Dezvoltarea aplicatiilor WEB folosind XHTML, PHP și MySQL; Editura Polirom 2005.
E.Macovei, O.Zaharie. Proiectarea sistemelor informatice, ASE București,1989.
Florescu, V. and co. – Databases. Practical and Teoretical Approach, Infomega, 2001
Gh.Lâsâi, I.Lungu ș.a. Sisteme informatice și baze de date, CEPASEBucurești, 1993.
Hernandez, M. J. – Database design for mere mortals : a hands-on guide to relational database design, 2nd ed., Addison Wesley, 2003
Henderson, K. – The Guru‘s Guide to SQL Server Stored Procedures, XML, and HTML Addison Weslwey, 2002
Henderson, K. – The Guru‘s Guide to Transact-SQL, Addison Wesley, 2000
HTML, XHTML, CSS și XML prin exemple – ghid practic; Editura Teora 2005.
ÎNVATĂ SINGUR PHP, MYSQL ȘI APACHE; Editura Corint 2005.
Laura Thomson; Dezvoltarea aplicatiilor WEB cu PHP și MySQL, Editia a II-a (+CD); Editura Teora 2005.
MIHĂESCU, L. Sisteme informaționale și aplicații informatice în administrarea afacerilor. Sibiu: Ed. Universității “Lucian Blaga”, 2009.
Moraru, S., Perniu, L. – Web-applications on databases in electrical domain, Ed. Lux Libris, 2004
MySQL, [<http://www.mysql.com/>] – pagină web
Popescu, I. – Database Design, Editura Tehnică, 2001
Sabău G., Avram V. – Computer Systems and Databases, Editura Oscar Print
Scheuerl, S, J.G. – Modelling Recovery in Database Systems, School of Mathematical and Computational Sciences University of St Andrews, 1997
The PHP , [<http://www.php.net/>] – pagină web
The Apache Software, [<http://httpd.apache.org/>] – pagină web
Velicanu M., Lungu, I., Bodea C. – Database Management Systems, Editura Petrion, 2000
Waymire, R.Sawtell, R. – Sams Teach Zourself Microsoft SQL Server 2000 in 21 Days, Sams Publishing, 2001
Wandschneider Marc, Core WEB APPLICATION DEVELOPMENT WITH PHP AND MYSQL, 2004
Yovits, M. C. – Advances in Computers, Vol. 38. (Ed.), Academic Press, 1994.
Toмcoн Л., Beллинг Л., PHP и Mysql, 2005
Шкpыль A. PHP – этo пpocтo, Cанкт-Пeт., «БXB- Пeтepбypг», 2006
Кyзнeцoв M, Cимдянoв И, PHP5, Cанкт-Пeт., «БXB- Пeтepбypг», 2006
TPOФИMOBA, B. B. Инфopмациoнныe cиcтeмы и тexнoлoгии в экoнoмикe и yпpавлeнии: yчeбнoe пocoбиe. 2-e изданиe. Mocква, 2007.
Cэм Флапати.Pyкoвoдcтвo Aдминиcтpатopа Базы Данныx Oracle Database11g.2009
ANEXE
Anexa Conectarea MySQL și PHP
<?php
$link = mysql_connect('hostname','dbuser','dbpassword');
if (!$link) {
die('Could not connect to MySQL: ' . mysql_error());
}
echo 'Connection OK'; mysql_close($link);
?>
Anexa Pagina de start
<div style = " text-align: center; margin-top: 200px;">
<a href=<?php echo '"'.$baseUrl.'"'?>><img src=<?php echo '"'.$baseUrl.'/img/logo.gif'.'"' ?>></img></a>
<h1 style="color: #004c99; text-align: center;">Sistemul informațional<br/>
Consiliul Național pentru Acreditare și Atestare</h1>
<a href=<?php echo "'".$baseUrl."/authuser'";?>>
<button class="myButton">Autentificare utilizator simplu</button> </a>
<br>
<a href=<?php echo "'".$baseUrl."/authadmin'";?>>
<button class="myButton"> Autentificare administrator</button> </a>
</div>
<?php
$path = $_SERVER['PHP_SELF'];
$tree = explode('/', $path);
$page = "";
$message = "";
$title = "";
if($tree[3]=='inregistrare')
{
$page = "guestme";
$message = "Inregistrare";
$title = "Formular inregistrare";
}
else
if($tree[3]=='cerere')
{
$page = "regme";
$message = "Trimite cerere";
$title = "Formular trimite cerere";
}
?>
<div style=" margin-left: auto; margin-right: auto; width: 25%; text-align: center; margin-top: 200px;">
<h1><?php echo $title;?></h1>
<form action=<?php echo "'".$baseUrl."/pages/".$page.".php'";?> method="post" enctype="multipart/form-data"
onsubmit="return sendPost(this)" id="content" class="form_insert modal">
<div id="form_profile" class="form_insert modal">
<p> <label>Nume: </label> <input id="id" type="text" name="nume" value=""/> </p>
<p> <label> Prenume : </label> <input id="prenume" type="text" name="prenume" value=""/></p>
<p> <label> Locul de munca : </label> <input id="munca" type="text" name="munca" value=""/></p>
<p> <label> Specialitatea : </label> <input id="spec" type="text" name="specialitate" value=""/></p>
<p> <label> Date de contact : </label> <input id="contact" type="text" name="contact" value=""/></p>
<p> <label> E-mail : </label> <input id="email" type="text" name="email" value=""/></p>
<?php
if($tree[3]=='inregistrare')
{
echo '<p> <label> Parola : </label> <input id="contact" type="password" name="pp1" value=""/></p>
<p> <label> Confirmare parola : </label> <input id="email" type="password" name="pp2" value=""/></p>';
}
?>
<p> <input class="myButton" type="submit" value=<?php echo '"'.$message.'"' ?>></p>
</div>
</form>
<div class="status_fine" id="status"></div>
<div class="status_error" id="status_err"></div>
</div>>Cereria de inregistrare
Anexa Autentificare administrator
<div style=" margin-left: auto; margin-right: auto; width: 25%; text-align: center; margin-top: 200px;">
<a href=<?php echo '"'.$baseUrl.'"'?>><img src=<?php echo '"'.$baseUrl.'/img/logo.gif'.'"' ?>></img></a>
<div id="form_profile" class="form_insert modal">
<form action=<?php echo "'".$baseUrl."/pages/auth.php'";?> method="post" enctype="multipart/form-data"
onsubmit="return sendAuth(this)" id="content" class="form_insert modal">
<p> <label> Email: </label> <input id="id" type="text" name="lll" value=""/> </p>
<p> <label> Parola : </label> <input id="pp" type="password" name="ppp"/></p>
<p> <input class="myButton" type="submit" value="Autentificare"/></p>
</form>
<a class="link" href=<?php echo "'".$baseUrl."/cerere'";?>> Trimite cerere de inregistrare adiminstrator </a>
</div>
<div class="status_fine" id="status"></div>
<div class="status_error" id="status_err"></div>
</div>
Anexa Autentificare utilizator simplu
<div style=" margin-left: auto; margin-right: auto; width: 25%; text-align: center; margin-top: 200px;">
<a href=<?php echo '"'.$baseUrl.'"'?>><img src=<?php echo '"'.$baseUrl.'/img/logo.gif'.'"' ?>></img></a>
<div id="form_profile" class="form_insert modal">
<form action=<?php echo "'".$baseUrl."/pages/auth.php'";?> method="post" enctype="multipart/form-data"
onsubmit="return sendAuth(this)" id="content" class="form_insert modal">
<p> <label> Email: </label> <input id="id" type="text" name="lll" value=""/> </p>
<p> <label> Parola : </label> <input id="pp" type="password" name="ppp"/></p>
<p> <input class="myButton" type="submit" value="Autentificare"/></p>
</form>
<a class="link" href=<?php echo "'".$baseUrl."/inregistrare'";?>> Inregistrare utilizator simplu </a>
</div>
<div class="status_fine" id="status"></div>
<div class="status_error" id="status_err"></div>
</div>
Anexa Cautarea simplă
<form class="search" action=<?php echo "'".$baseUrl."/search/'";?> method="get" enctype="multipart/form-data"
id="content">
<input id="rol_ro" style="width:300px;" type="text" name="search_text"/>
<input class="myButton" type="submit" value="Cauta" />
<p><a href=<?php echo "'".$baseUrl."/advanced/'";?>>Cautare avansata</a></p>
</form>
Anexa Cautarea avansată
<?php
include '/../config/constants.php';
include '/../config/DataBaseConector.php';
if(!isset($_SESSION['logat'])&&!isset($_SESSION['guest']))
die ('err Error !!! Need autentification!!');
?>
<?php
$teza = strtoupper(mysql_real_escape_string($_POST['DenTeza']));
$nume= strtoupper(mysql_real_escape_string(trim($_POST['num'])));
$prenume= strtoupper(mysql_real_escape_string(trim($_POST['pren'])));
$institutie= strtoupper(mysql_real_escape_string(trim($_POST['institutie'])));
$specialitate= strtoupper(mysql_real_escape_string(trim($_POST['specialitate'])));
$where_str = "";
if(!empty($teza))
{
$where_str.=" AND UPPER(DenTeza) LIKE '%$teza%'";
}
if(!empty($nume))
{
$where_str.=" AND UPPER(Autor) LIKE '%$nume%'";
}
if(!empty($prenume))
{
$where_str.=" AND UPPER(Autor) LIKE '%$prenume%'";
}
if(!empty($institutie))
{
$where_str.=" AND (UPPER(institutii.ID_Institutie) LIKE '%$institutie%'"
. " OR UPPER(DenInstitutie) LIKE '%$institutie%') ";
}
if(!empty($specialitate))
{
$where_str.=" AND DenSpecialitate LIKE '%$specialitate%'";
}
if( empty($where_str))
{
echo 'err <b>Nu ati completat nici o optiune pentru cautare</b>';
exit;
}
$where_str = substr($where_str, 4);
$sql='SELECT teze.ID_Teza,ID_Grad,DenTeza,DenDomeniu,DataSustinere FROM '
. 'teze LEFT JOIN translateteza on teze.ID_teza=translateteza.ID_teza '
. 'and translateteza.ID_Limba=\''.$lang.'\''
.' LEFT JOIN specialitati on teze.ID_Specialitate=specialitati.ID_Specialitate '
. 'and specialitati.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN institutii on teze.ID_Institutie=institutii.ID_Institutie '
. 'and institutii.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN profile on specialitati.ID_Profil=profile.ID_profil '
. 'and profile.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN ramuri on profile.ID_Ramura=ramuri.ID_Ramura '
. 'and ramuri.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN domenii ON ramuri.ID_Domeniu=domenii.ID_Domeniu '
. 'and domenii.ID_Limba=\''.$lang.'\''
.' WHERE '.$where_str;
$result = mysql_query($sql);
if(mysql_num_rows($result)==0)
{
echo 'err <h1>Nu a fost gasita nici o teza cu asa caracteristici!!</h1>';
exit;
}
if (!$result) {
echo "err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
echo '<h1>Rezultate cautare: </h1>';
?>
<div class="Table">
<div class="Title">
<p>Teze</p>
</div>
<div class="Heading">
<?php
$heads = $thesis_table_headers[$lang];
if(!isset($_SESSION['logat']))
{
array_pop($heads);
}
foreach ($heads as $value) {
echo ' <div class="Cell"> <p>'.$value.'</p> </div>';
}
?>
</div>
<?php
while($row= mysql_fetch_assoc($result))
{
echo "
<div class='Row'>
<div class='Cell'>
".$row['ID_Grad']."
</div>
<div class='Cell'>
<div class='den_teza'>
<span class='den_format'>
<a href=\"".$baseUrl."/teze/".$row['ID_Teza']."\">".
$row['DenTeza']."</a>
</span>
</div>
</div>
<div class='Cell'>
".$row['DenDomeniu']."
</div>
<div class='Cell'>
".date("d.m.Y", strtotime($row['DataSustinere']))."
</div>";
if(isset($_SESSION['logat']))
echo " <div class='Cell'>
<a href=\"".$baseUrl."/teze/edit/".$row['ID_Teza']."\">
<img src=\"".$baseUrl."/img/edit.png"."\"></a>
<a href=\"".$baseUrl."/teze/delete/".$row['ID_Teza']."\">
<img src=\"".$baseUrl."/img/delete.png"."\"></a>
</div> ";
echo "</div>";
}
mysql_close($link);
?>
</div>
Anexa Rezultatele căutarii
<?php
include '/../config/DataBaseConector.php';
if(!isset($_SESSION['logat'])&&!isset($_SESSION['guest']))
die ('Error !!! Need autentification!!');
?>
<?php
$get_data = $_SESSION['id'];
$search = substr($get_data, strpos($get_data, "=")+1);
if( empty($search))
{
echo '<b>Nu ati introdus nici un cuvint pentru cautare</b>';
exit;
}
$search = mysql_real_escape_string($search);
$search = str_replace("+", "%", $search);
$search = strtoupper($search);
$sql='SELECT teze.ID_Teza,ID_Grad,DenTeza,DenDomeniu,DataSustinere FROM '
. 'teze LEFT JOIN translateteza on teze.ID_teza=translateteza.ID_teza '
. 'and translateteza.ID_Limba=\''.$lang.'\''
.' LEFT JOIN specialitati on teze.ID_Specialitate=specialitati.ID_Specialitate '
. 'and specialitati.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN profile on specialitati.ID_Profil=profile.ID_profil '
. 'and profile.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN ramuri on profile.ID_Ramura=ramuri.ID_Ramura '
. 'and ramuri.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN domenii ON ramuri.ID_Domeniu=domenii.ID_Domeniu '
. 'and domenii.ID_Limba=\''.$lang.'\''
.' WHERE UPPER(DenTeza) LIKE \'%'.$search.'%\' or UPPER(CuvinteCheie) LIKE \'%'.$search.'%\''
. ' ORDER BY DataSustinere DESC';
$result = mysql_query($sql);
if(mysql_num_rows($result)==0)
{
echo '<h1>Nu a fost gasita nici o teza ce cu asa titlu sau cuvinte cheie!!</h1>';
exit;
}
if (!$result) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
echo '<h1>Rezultate cautare: '.$search.' </h1>';
?>
<div class="Table">
<div class="Title">
<p>Teze</p>
</div>
<div class="Heading">
<?php
$heads = $thesis_table_headers[$lang];
if(!isset($_SESSION['logat']))
{
array_pop($heads);
}
foreach ($heads as $value) {
echo ' <div class="Cell"> <p>'.$value.'</p> </div>';
}
?>
</div>
<?php
while($row= mysql_fetch_assoc($result))
{
echo "
<div class='Row'>
<div class='Cell'>
".$row['ID_Grad']."
</div>
<div class='Cell'>
<div class='den_teza'>
<span class='den_format'>
<a href=\"".$baseUrl."/teze/".$row['ID_Teza']."\">".
$row['DenTeza']."</a>
</span>
</div>
</div>
<div class='Cell'>
".$row['DenDomeniu']."
</div>
<div class='Cell'>
".date("d.m.Y", strtotime($row['DataSustinere']))."
</div>";
if(isset($_SESSION['logat']))
echo " <div class='Cell'>
<a href=\"".$baseUrl."/teze/edit/".$row['ID_Teza']."\">
<img src=\"".$baseUrl."/img/edit.png"."\"></a>
<a href=\"".$baseUrl."/teze/delete/".$row['ID_Teza']."\">
<img src=\"".$baseUrl."/img/delete.png"."\"></a>
</div> ";
echo "</div>";
}
mysql_close($link);
?>
</div>.
Anexa Adăugarea tezelor
<?php
if(!isset($_SESSION['logat']))
die ('Error !!! Need autentification!!');
?>
<form action=<?php echo "'".$baseUrl."/pages/send_teza.php'";?> method="post" enctype="multipart/form-data"
onsubmit="return sendPost(this)" id="content">
<div id="form_teza" class="form_insert modal" style="display:inline-block;">
<div style="float: left;">
<p> <label> Autor (num pren)</label> <input type="text" name="numpren" value=""/> </p>
<p> <label> Data si ora Sustinerii </label> <input id="datetimepicker_mask" type="text" name="sustinere" value=""/> </p>
<p> <label> Data Aprobare </label> <input id="datepicker2" type="text" name="aprobare" value=""/> </p>
<p> <label> Nr. Pagini </label> <input id="pagini" type="text" name="pagini" value=""/> </p>
<?php
$rows= array("Specialitate","Grad","Institutie");
$tables=array("specialitati","grade","institutii");
for($i=0;$i< count($rows);$i++)
{
echo'<p><label >'.$rows[$i].' </label></p>
<div id="ui-widget" class="ui-widget">
<select id="combobox'.$i.'">
<option value=""></option>';
include '/../config/DataBaseConector.php';
$sql="SELECT ID_".$rows[$i].",Den".$rows[$i]." from $tables[$i] where ". "ID_Limba='$lang'";
$result=mysql_query($sql);
while ($row = mysql_fetch_assoc($result))
{
echo '<option value='.$row['ID_'.$rows[$i]].'>'. $row['Den'.$rows[$i]].'</option>';
}
echo ' </select>
<input type="hidden" name="id_'.$rows[$i].'" id="hid_val'.$i.'" value=""/>
</div>
';
}
echo'<p><label > Conducator </label></p>
<div id="ui-widget" class="ui-widget">
<select id="combobox3">
<option value=""></option>';
$sql="SELECT ID_persoana,Nume,Prenume from persoane ";
$result=mysql_query($sql);
while ($row = mysql_fetch_assoc($result))
{
echo '<option value='.$row['ID_persoana'].'>'. $row['Nume'].' '.$row['Prenume'].'</option>';
}
echo ' </select>
<input type="hidden" name="id_Conducator" id="hid_val3" value=""/>
</div>
';
echo'<p><label > Consultant </label></p>
<div id="ui-widget" class="ui-widget">
<select id="combobox4">
<option value=""></option>';
$sql="SELECT ID_persoana,Nume,Prenume from persoane ";
$result=mysql_query($sql);
while ($row = mysql_fetch_assoc($result))
{
echo '<option value='.$row['ID_persoana'].'>'. $row['Nume'].' '.$row['Prenume'].'</option>';
}
echo ' </select>
<input type="hidden" name="id_Consultant" id="hid_val4" value=""/>
</div>
';
mysql_close($link);
?>
<p> <input class="myButton" type="submit" value="store" /></p>
</div>
<?php
$languages=array("ru"=>"rusa","en"=>"engleza","ro"=>"romana");
foreach ($languages as $abreviatura=>$limba)
{
echo ' <div style="float: right;margin-left: 20px;">';
echo '<p>'.$limba.':</p>';
echo
'
<p> <label> Denumire</label></p><p> <textarea cols="50" name="den_'.$abreviatura.'"/></textarea></p>
<p> <label> Fisier teza </label></p><p> <input type="file" style="max-width:300px" name="FileTeza_'.$abreviatura.'" /> </p>
<p> <label> Autoreferat </label></p><p> <input type="file" style="max-width:300px" name="Autoreferat_'.$abreviatura.'" /> </p>
<p> <label> Cuvinte chie</label></p><p> <textarea cols="50" name="chei_'.$abreviatura.'"/></textarea></p>
<p> <label> Adnotare</label></p><p> <textarea cols="50" name="adnotare_'.$abreviatura.'"/></textarea></p>
<p> <label> Cuprins</label></p><p> <textarea cols="50" name="cuprins_'.$abreviatura.'"/></textarea></p>
</div>';
}
?>
<!– <div style="clear:both"></div>
–>
</div> <!–div principal–>
</form>
<div class="status_fine" id="status"></div>
<div class="status_error" id="status_err"></div>
Anexa Editarea tezei
<?php
if(!isset($_SESSION['logat']))
die ('Error !!! Need autentification!!');
if(!isset($_SESSION['id']))
{
Redirect($errorPage);
}
$id=$_SESSION['id'];
if(!is_numeric($id)) Redirect($errorPage);
include '/../config/DataBaseConector.php';
$sql = "SELECT * From teze"
. " WHERE ID_Teza='$id'";
$query = mysql_query($sql);
if (!$query) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
if(mysql_num_rows($query)==0)
{
Redirect($errorPage);
}
$teze= mysql_fetch_assoc($query);
if(!$teze)
{
Redirect($errorPage);
}
?>
<form action=<?php echo "'".$baseUrl."/pages/upd_teza.php'";?> method="post" enctype="multipart/form-data"
onsubmit="return sendPost(this)" id="content">
<div id="form_teza" class="form_insert modal" style="display:inline-block;">
<div style="float: left;">
<p> <label> Autor (num pren)</label> <input type="text" name="numpren" value=
<?php echo ' "'.$teze['Autor'].'" '; ?>/> </p>
<p> <label> Data Sustinere </label> <input id="DTpicker" type="text" name="sustinere" value=
<?php echo ' "'.date('H:i d.m.Y', strtotime($teze['DataSustinere'])).'" '; ?>/> </p>
<p> <label> Data Aprobare </label> <input id="Dpicker" type="text" name="aprobare" value=
<?php echo ' "'.date('d.m.Y', strtotime($teze['DataAprobare'])).'" '; ?>/> </p>
<p> <label> Nr. pagini</label> <input type="text" name="pagini" value=
<?php echo ' "'.$teze['Pagini'].'" '; ?>/> </p>
<?php
$rows= array("Specialitate","Grad","Institutie");
$tables=array("specialitati","grade","institutii");
for($i=0;$i< count($rows);$i++)
{
echo'<p><label >'.$rows[$i].' </label></p>
<div id="ui-widget" class="ui-widget">
<select id="combobox'.$i.'">
<option value=""></option>';
include '/../config/DataBaseConector.php';
$sql="SELECT ID_".$rows[$i].",Den".$rows[$i]." from $tables[$i] where ". "ID_Limba='$lang'";
$result=mysql_query($sql);
while ($row = mysql_fetch_assoc($result))
{
if($row['ID_'.$rows[$i]]==$teze['ID_'.$rows[$i]])
{
$sel="selected";
}
else
{
$sel="";
}
echo '<option '.$sel.' value='.$row['ID_'.$rows[$i]].'>'. $row['Den'.$rows[$i]].'</option>';
}
echo ' </select>
<input type="hidden" name="id_'.$rows[$i].'" id="hid_val'.$i.'" value="'.$teze['ID_'.$rows[$i]].'"/>
</div>
';
}
echo'<p><label > Conducator </label></p>
<div id="ui-widget" class="ui-widget">
<select id="combobox3">
<option value=""></option>';
$sql="SELECT ID_persoana,Nume,Prenume from persoane ";
$result=mysql_query($sql);
while ($row = mysql_fetch_assoc($result))
{
if($row['ID_persoana']==$teze['ID_Conducator'])
{
$sel="selected";
}
else
{
$sel="";
}
echo '<option '.$sel.' value='.$row['ID_persoana'].'>'. $row['Nume'].' '.$row['Prenume'].'</option>';
}
echo ' </select>
<input type="hidden" name="id_Conducator" id="hid_val3" value="'.$teze['ID_Conducator'].'"/>
</div>
';
echo'<p><label > Consultant </label></p>
<div id="ui-widget" class="ui-widget">
<select id="combobox4">
<option value=""></option>';
$sql="SELECT ID_persoana,Nume,Prenume from persoane ";
$result=mysql_query($sql);
while ($row = mysql_fetch_assoc($result))
{
if($row['ID_persoana']==$teze['ID_Consultant'])
{
$sel="selected";
}
else
{
$sel="";
}
echo '<option '.$sel.' value='.$row['ID_persoana'].'>'. $row['Nume'].' '.$row['Prenume'].'</option>';
}
echo ' </select>
<input type="hidden" name="id_Consultant" id="hid_val4" value="'.$teze['ID_Consultant'].'"/>
</div>
';
?>
<input type="hidden" name="teza_id" id="old" value=
<?php echo '"'.$id.'" '; ?>/>
<p> <input class="myButton" type="submit" value="Save" name="upload"/>
<input type="reset" value="Reset" name="res"/></p>
</div>
<?php
$sql='SELECT * FROM translateteza WHERE ID_Teza=\''.$id.'\'';
$query = mysql_query($sql);
if (!$query) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
$transData=array();
while($res= mysql_fetch_assoc($query))
{
$transData[$res['ID_Limba']]=$res;
}
//var_dump($transData);
$languages=array("ru"=>"rusa","en"=>"engleza","ro"=>"romana");
foreach ($languages as $abreviatura=>$limba)
{
$doc=(empty($transData[$abreviatura]['DocTeza']))?"":"Incarcarea unui nou fisier va inlocui existentul";
$auto=(empty($transData[$abreviatura]['Autoreferat']))?"":"Incarcarea unui nou fisier va inlocui existentul";
echo ' <div style="float: right;margin-left: 20px;">';
echo '<p>'.$limba.':</p>';
echo
'
<p> <label> Denumire</label></p><p> <textarea cols="50" name="den_'.$abreviatura.'"/>'
.$transData[$abreviatura]['DenTeza'].'</textarea></p>
<p> <label> Fisier teza </label></p>'.$doc.'<p> <input type="file" style="max-width:300px" name="FileTeza_'.$abreviatura.'" /> </p>
<p> <label> Autoreferat </label></p>'.$auto.'<p> <input type="file" style="max-width:300px" name="Autoreferat_'.$abreviatura.'" /> </p>
<p> <label> Cuvinte chie</label></p><p> <textarea cols="50" name="chei_'.$abreviatura.'"/>'
.$transData[$abreviatura]['CuvinteCheie'].'</textarea></p>
<p> <label> Adnotare</label></p><p> <textarea cols="50" name="adnotare_'.$abreviatura.'"/>'
.$transData[$abreviatura]['Adnotare'].'</textarea></p>
<p> <label> Cuprins</label></p><p> <textarea cols="50" name="cuprins_'.$abreviatura.'"/>'
.$transData[$abreviatura]['Cuprins'].'</textarea></p>
</div>'
}
mysql_close($link);
?>
<!– <div style="clear:both"></div>
–>
</div> <!–div principal–>
</form>
<div class="status_fine" id="status"></div>
<div class="status_error" id="status_err"></div>
Anexa Ștergerea tezei
<?php
if(!isset($_SESSION['logat']))
die ('Error !!! Need autentification!!');
if(!isset($_SESSION['id']))
{
Redirect($errorPage);
}
$id_pers=$_SESSION['id'];
if(!is_numeric($id_pers)) Redirect($errorPage);
include '/../config/DataBaseConector.php';
$sql = "SELECT * From persoane"
. " WHERE ID_Persoana='$id_pers'";
$query = mysql_query($sql);
if (!$query) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
if(mysql_num_rows($query)==0)
{
Redirect($errorPage);
}
$sql = "DELETE FROM persoane where ID_Persoana='$id_pers'";
$query = mysql_query($sql);
if (!$query) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
$sql="DELETE FROM consilii where ID_Persoana='$id_pers'";
$query = mysql_query($sql);
if (!$query) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
$sql="UPDATE teze SET ID_Conducator=NULL WHERE ID_Conducator = '$id_pers'";
$query = mysql_query($sql);
if (!$query) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
mysql_close($link);
Redirect($_SERVER['HTTP_REFERER']);
?>
Anexa Informații despre teză
<?php
if(!isset($_SESSION['logat'])&&!isset($_SESSION['guest']))
die ('Error !!! Need autentification!!');
/*
* Vicu07
*
*
*/
if(!isset($_SESSION['id']))
{
Redirect($errorPage);;
}
$id=$_SESSION['id'];
include '/../config/DataBaseConector.php';
$sql = "SELECT * From teze LEFT JOIN translateteza "
. "ON teze.ID_Teza=translateteza.ID_Teza "
. "LEFT JOIN institutii "
. "ON teze.ID_Institutie=institutii.ID_institutie "
. "LEFT JOIN grade "
. "ON teze.ID_Grad=grade.ID_Grad "
. "LEFT JOIN persoane "
. "ON teze.ID_Conducator=persoane.ID_Persoana "
. "LEFT JOIN specialitati "
. "ON specialitati.ID_Specialitate=teze.ID_Specialitate "
. ' LEFT JOIN profile on specialitati.ID_Profil=profile.ID_profil'
. ' LEFT JOIN ramuri on profile.ID_Ramura=ramuri.ID_Ramura '
. ' LEFT JOIN domenii ON ramuri.ID_Domeniu=domenii.ID_Domeniu '
. "where teze.ID_Teza='$id' and translateteza.ID_Limba='$lang' "
. " and grade.ID_limba='$lang' and specialitati.ID_Limba='$lang' "
. " and domenii.ID_Limba='$lang' and institutii.ID_Limba='$lang'"
. "";
$query = mysql_query($sql);
if (!$query) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
if(mysql_num_rows($query)==0)
{
Redirect($errorPage);
}
$info_teza=mysql_fetch_assoc($query);
$id_teza=$info_teza['ID_Teza'];
$consultant = $info_teza ['ID_Consultant'];
$sql = "SELECT Nume,Prenume From teze JOIN persoane "
. "ON teze.ID_Consultant=persoane.ID_Persoana "
. "where ID_Consultant='$consultant'";
$query = mysql_query($sql);
if (!$query) {
echo 'err MySQL Error: ' . mysql_error();
exit;
}
$consultant = mysql_fetch_assoc($query);
$sql_doc = "SELECT ID,ID_Limba,DocTeza from translateteza where ID_teza='$id_teza' and DocTeza!=''";
$sql_autref = "SELECT ID,ID_Limba,Autoreferat from translateteza where ID_teza='$id_teza' and Autoreferat!=''";
?>
<div><p><span class="titlu"> <?php echo $info_teza['DenTeza'];?></span></p></div>
<div class="info">
<div style="float: left;width: 550px">
<h3><span class="field"> Autor: </span>
<?php echo $info_teza['Autor']; ?>
</h3>
<h3><span class="field"> Gradul: </span>
<?php echo $info_teza['DenGrad']." in ".$info_teza['DenDomeniu']; ?>
</h3>
<h3><span class="field"> Specialitate: </span>
<?php echo $info_teza['DenSpecialitate']; ?>
</h3>
<h3><span class="field"> Anul: </span>
<?php echo date('Y',strtotime($info_teza['DataSustinere'])); ?>
</h3>
<h3><span class="field"> Conducător științific: </span>
<?php echo "<a href='".$baseUrl."/persoane/".$info_teza['ID_Conducator']."'>".$info_teza['Nume']." ".$info_teza['Prenume']."</a>"; ?>
</h3>
<h3><span class="field"> Consultant științific: </span>
<?php echo "<a href='".$baseUrl."/persoane/".$info_teza['ID_Consultant']."'>".$consultant['Nume']." ".$consultant['Prenume']."</a>"; ?>
</h3>
<h3><span class="field"> Institutia: </span>
<?php echo "<a href='".$baseUrl."/institutii/".$info_teza['ID_Institutie']."'>".$info_teza['DenInstitutie']."</a>"; ?>
</h3>
</div>
<div style="float: right; margin-left: 30px; width: 300px">
<h3><span class="field"> Consiliu: </span></h3
<?php
$sql="SELECT consilii.ID_Persoana,Nume,Prenume,DenRol,DenGrad,DenTitlu,DenInstitutie"
. " from consilii LEFT JOIN roluri "
. " ON consilii.ID_Rol=roluri.ID_Rol "
. "LEFT JOIN persoane "
. " ON consilii.ID_Persoana=persoane.ID_persoana "
. "LEFT JOIN grade "
. "ON persoane.ID_Grad=grade.ID_Grad "
. "LEFT JOIN titluri "
. "ON persoane.ID_Titlu=titluri.ID_Titlu "
. "LEFT JOIN institutii "
. "ON persoane.ID_Institutie=institutii.ID_Institutie "
. "where ID_teza='$id_teza' and roluri.ID_Limba='$lang'"
. " and grade.ID_Limba='$lang' and titluri.ID_Limba='$lang'"
. " and institutii.ID_Limba='$lang'";
$query= mysql_query($sql);
if (!$query) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
echo '<ul>';
while ($cons= mysql_fetch_assoc($query))
{
echo '<li>';
echo "<a href='".$baseUrl."/persoane/".$cons['ID_Persoana']."'>".$cons['Nume'].' '.$cons['Prenume']."<a>"
. " , ".$cons['DenRol']."<br/>".$cons['DenGrad']." , "
. "".$cons['DenTitlu']." , ".$cons['DenInstitutie'];
echo '</li>';
}
echo '</ul>';
?>
</div>
<div style="float: right; margin-left: 30px;width: 400px">
<h3><span class="field"> Statut: </span>
<?php
$data_sustinere=$info_teza['DataSustinere'];
$aprobare = $info_teza['DataAproba
$azi = date('Y-m-d');
$statut = $info_teza['Statut'];
if($statut == 'C')
{
echo "Teza a fost susținută pe ".date('d.m.Y', strtotime($data_sustinere))." în CSS și se află în examinare la CNAA ";
}
else if ($statut == 'S')
{
"Susținerea tezei va avea loc pe ".date('d.m.Y', strtotime($data_sustinere));
}
else
if($statut == 'A')
{
echo "Teza a fost susținută pe ". date('d.m.Y', strtotime($data_sustinere))." în CSS ".
"și aprobată de CNAA pe ".date('d.m.Y', strtotime($aprobare));
}
?>
</h3>
<h3><span class="field"> Teza: </span>
</h3>
<?php
$query= mysql_query($sql_doc);
if (!$query) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
while($docs= mysql_fetch_assoc($query))
{
$file="./files/".$docs['ID_Limba']."/".$docs['DocTeza'];
if(file_exists($file))
{
echo '<span class="data">';
echo "<a href='".$baseUrl."/pdfview/".$docs['ID']."_doc'>".round(filesize($file)/1024/1024,2)." MB </a>/".$docs['ID_Limba'];
echo '</span><br/>';
}
}
?>
<h3><span class="field"> Autoreferat: </span>
</h3>
<?php
$query= mysql_query($sql_autref);
if (!$query) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
while($docs= mysql_fetch_assoc($query))
{
$file="./files/".$docs['ID_Limba']."/".$docs['Autoreferat'];
if(file_exists($file))
{
echo '<span class="data">';
echo "<a href='".$baseUrl."/pdfview/".$docs['ID']."_auto'>".round(filesize($file)/1024/1024,2)." MB </a>/".$docs['ID_Limba'];
echo '</span><br/>';
}
}
echo $info_teza['Pagini']." pagini";
?>
</div>
</div>
<div style="margin-top: 10px; min-width: 200px; "><h3><span class="field" > Cuvinte Cheie: </span></h3>
<span class="data">
<?php echo nl2br($info_teza['CuvinteCheie']); ?>
</span>
<h3><span class="field" > Adnotare: </span></h3>
<span class="data">
<?php echo nl2br($info_teza['Adnotare']); ?>
</span>
<h3><span class="field" > Cuprins: </span></h3>
<span class="data">
<?php echo nl2br($info_teza['Cuprins']); ?>
</span>
</div>
Anexa Vizualizarea tezei
<?php
if(!isset($_SESSION['logat'])&&!isset($_SESSION['guest']))
die ('Error !!! Need autentification!!');
?>
<?php
include '/../config/DataBaseConector.php';
if(isset($_SESSION['logat']))
{
echo '<div ><button class="myButton" onclick="window.location.href=\''.$baseUrl.'/teze/insert'.'\'">Add teza</button></div>';
}
?>
<div class="Table">
<div class="Title">
<p>În examinare la CȘS</p>
</div>
<div class="Heading">
<?php
$sql='SELECT teze.ID_Teza,ID_Grad,DenTeza,DenDomeniu,DataSustinere FROM '
. 'teze LEFT JOIN translateteza on teze.ID_teza=translateteza.ID_teza '
. 'and translateteza.ID_Limba=\''.$lang.'\''
.' LEFT JOIN specialitati on teze.ID_Specialitate=specialitati.ID_Specialitate '
. 'and specialitati.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN profile on specialitati.ID_Profil=profile.ID_profil '
. 'and profile.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN ramuri on profile.ID_Ramura=ramuri.ID_Ramura '
. 'and ramuri.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN domenii ON ramuri.ID_Domeniu=domenii.ID_Domeniu '
. 'and domenii.ID_Limba=\''.$lang.'\''
.' WHERE Statut = \'S\''
. ' ORDER BY DataSustinere DESC';
$result = mysql_query($sql);
if (!$result) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
$heads = $thesis_table_headers[$lang];
if(!isset($_SESSION['logat']))
{
array_pop($heads);
}
foreach ($heads as $value) {
echo ' <div class="Cell"> <p>'.$value.'</p> </div>';
}
?>
</div>
<?php
while($row= mysql_fetch_assoc($result))
{
echo "
<div class='Row'>
<div class='Cell'>
".$row['ID_Grad']."
</div>
<div class='Cell'>
<div class='den_teza'>
<span class='den_format'>
<a href=\"".$baseUrl."/teze/".$row['ID_Teza']."\">".
$row['DenTeza']."</a>
</span>
</div>
</div>
<div class='Cell'>
".$row['DenDomeniu']."
</div>
<div class='Cell'>
".date("d.m.Y", strtotime($row['DataSustinere']))."
</div>";
if(isset($_SESSION['logat'])) echo" <div class='Cell'>
<a href=\"".$baseUrl."/teze/edit/".$row['ID_Teza']."\">
<img src=\"".$baseUrl."/img/edit.png"."\"></a>
<a href=\"".$baseUrl."/teze/delete/".$row['ID_Teza']."\">
<img src=\"".$baseUrl."/img/delete.png"."\"></a>
</div> ";
echo "</div> ";
}
echo '</div>';
?>
<div class="Table">
<div class="Title">
<p>În examinare la CNAA</p>
</div>
<div class="Heading">
<?php
$sql='SELECT teze.ID_Teza,ID_Grad,DenTeza,DenDomeniu,DataSustinere FROM '
. 'teze LEFT JOIN translateteza on teze.ID_teza=translateteza.ID_teza '
. 'and translateteza.ID_Limba=\''.$lang.'\''
.' LEFT JOIN specialitati on teze.ID_Specialitate=specialitati.ID_Specialitate '
. 'and specialitati.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN profile on specialitati.ID_Profil=profile.ID_profil '
. 'and profile.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN ramuri on profile.ID_Ramura=ramuri.ID_Ramura '
. 'and ramuri.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN domenii ON ramuri.ID_Domeniu=domenii.ID_Domeniu '
. 'and domenii.ID_Limba=\''.$lang.'\''
.' WHERE Statut = \'C\'
. ' ORDER BY DataSustinere DESC'
$result = mysql_query($sql);
if (!$result) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
$heads = $thesis_table_headers[$lang];
if(!isset($_SESSION['logat']))
{
array_pop($heads);
}
foreach ($heads as $value) {
echo ' <div class="Cell"> <p>'.$value.'</p> </div>'
}
?>
</div>
<?php
while($row= mysql_fetch_assoc($result))
{
echo "
<div class='Row'>
<div class='Cell'>
".$row['ID_Grad']."
</div>
<div class='Cell'>
<div class='den_teza'>
<span class='den_format'>
<a href=\"".$baseUrl."/teze/".$row['ID_Teza']."\">".
$row['DenTeza']."</a>
</span>
</div>
</div>
<div class='Cell'>
".$row['DenDomeniu']."
</div>
<div class='Cell'>
".date("d.m.Y", strtotime($row['DataSustinere']))."
</div>";
if(isset($_SESSION['logat'])) echo" <div class='Cell'>
<a href=\"".$baseUrl."/teze/edit/".$row['ID_Teza']."\">
<img src=\"".$baseUrl."/img/edit.png"."\"></a>
<a href=\"".$baseUrl."/teze/delete/".$row['ID_Teza']."\">
<img src=\"".$baseUrl."/img/delete.png"."\"></a>
</div> ";
echo "</d:
}
echo '</div>';
mysql_close($link);
?>
BIBLIOGRAFIE
Aplicatii Web la cheie. Studii de caz implementate in PHP; Editura Polirom 2003
Connolly, T., Begg, C., Strachan, A. – Baze de date, Ed. Teora, 2000.
Connolly, T., Begg, C., Strachan, A. – Database Systems – A Practical Approach to Design, Implementation and Management, Addison Wesley Longman Limited 1995, 1998
Dezvoltarea aplicatiilor WEB cu PHP și MySQL; Editura Teora 2004.
Dezvoltarea aplicatiilor WEB folosind XHTML, PHP și MySQL; Editura Polirom 2005.
E.Macovei, O.Zaharie. Proiectarea sistemelor informatice, ASE București,1989.
Florescu, V. and co. – Databases. Practical and Teoretical Approach, Infomega, 2001
Gh.Lâsâi, I.Lungu ș.a. Sisteme informatice și baze de date, CEPASEBucurești, 1993.
Hernandez, M. J. – Database design for mere mortals : a hands-on guide to relational database design, 2nd ed., Addison Wesley, 2003
Henderson, K. – The Guru‘s Guide to SQL Server Stored Procedures, XML, and HTML Addison Weslwey, 2002
Henderson, K. – The Guru‘s Guide to Transact-SQL, Addison Wesley, 2000
HTML, XHTML, CSS și XML prin exemple – ghid practic; Editura Teora 2005.
ÎNVATĂ SINGUR PHP, MYSQL ȘI APACHE; Editura Corint 2005.
Laura Thomson; Dezvoltarea aplicatiilor WEB cu PHP și MySQL, Editia a II-a (+CD); Editura Teora 2005.
MIHĂESCU, L. Sisteme informaționale și aplicații informatice în administrarea afacerilor. Sibiu: Ed. Universității “Lucian Blaga”, 2009.
Moraru, S., Perniu, L. – Web-applications on databases in electrical domain, Ed. Lux Libris, 2004
MySQL, [<http://www.mysql.com/>] – pagină web
Popescu, I. – Database Design, Editura Tehnică, 2001
Sabău G., Avram V. – Computer Systems and Databases, Editura Oscar Print
Scheuerl, S, J.G. – Modelling Recovery in Database Systems, School of Mathematical and Computational Sciences University of St Andrews, 1997
The PHP , [<http://www.php.net/>] – pagină web
The Apache Software, [<http://httpd.apache.org/>] – pagină web
Velicanu M., Lungu, I., Bodea C. – Database Management Systems, Editura Petrion, 2000
Waymire, R.Sawtell, R. – Sams Teach Zourself Microsoft SQL Server 2000 in 21 Days, Sams Publishing, 2001
Wandschneider Marc, Core WEB APPLICATION DEVELOPMENT WITH PHP AND MYSQL, 2004
Yovits, M. C. – Advances in Computers, Vol. 38. (Ed.), Academic Press, 1994.
Toмcoн Л., Beллинг Л., PHP и Mysql, 2005
Шкpыль A. PHP – этo пpocтo, Cанкт-Пeт., «БXB- Пeтepбypг», 2006
Кyзнeцoв M, Cимдянoв И, PHP5, Cанкт-Пeт., «БXB- Пeтepбypг», 2006
TPOФИMOBA, B. B. Инфopмациoнныe cиcтeмы и тexнoлoгии в экoнoмикe и yпpавлeнии: yчeбнoe пocoбиe. 2-e изданиe. Mocква, 2007.
Cэм Флапати.Pyкoвoдcтвo Aдминиcтpатopа Базы Данныx Oracle Database11g.2009
CUPRINS
ADNOTARE
LISTA ABREVIERELOR
ÎNTRODUCERE
ANALIZA TEHNOLOGIILOR DE CREARE SISTEMUL INFORMAȚIONAL BAREI DE DATE A TEZELOR DE DOCTORAT
Analiza sistemului informațional baza de date a tezelor de doctorat existent
Selectarea sistemului de gestiune a bazei de date
Concluzii la capitolul 1
PROECTAREA ȘI CREAREA SISTEMULUI INFORMAȚIONAL
Structura sistemului informational
Funcțiile sistemului informational
Scopurule și obiectivele sistemului informational
Selectarea limbajului de programare a sistemului informațional
Tehnologii de creare a bazei de date a tezelor de doctorat
Descrierea sistemului informațional
Concluzii la capitolul 2
UTILIZAREA SISTEMULUI INFORMAȚIONAL nnnn
Ghidul programatorului g
Ghidul utilizatoruluih
Concluzii la capitolul
CONCLUZII GENERALE ȘI RECOMANDĂRI
BIBLIOGRAFIE
ANEXE
Anexa Conectarea MySQL și PHP
Anexa Pagina de start
Anexa Autentificare administrator
Anexa Autentificare utilizator simplu
Anexa Cautarea simplă
Anexa Cautarea avansată
Anexa Rezultatele căutarii
Anexa Adăugarea tezelor
Anexa Editarea tezei
Anexa Ștergerea tezei
Anexa Informații despre teză
Anexa Vizualizarea tezei
DECLARAȚIE PRIVIND ASUMAREA RĂSPUNDERII
CV-ul AUTORULUI
DATE PRIVIND CONTROL TEHNIC AL TEZEI
ANEXE
Anexa Conectarea MySQL și PHP
<?php
$link = mysql_connect('hostname','dbuser','dbpassword');
if (!$link) {
die('Could not connect to MySQL: ' . mysql_error());
}
echo 'Connection OK'; mysql_close($link);
?>
Anexa Pagina de start
<div style = " text-align: center; margin-top: 200px;">
<a href=<?php echo '"'.$baseUrl.'"'?>><img src=<?php echo '"'.$baseUrl.'/img/logo.gif'.'"' ?>></img></a>
<h1 style="color: #004c99; text-align: center;">Sistemul informațional<br/>
Consiliul Național pentru Acreditare și Atestare</h1>
<a href=<?php echo "'".$baseUrl."/authuser'";?>>
<button class="myButton">Autentificare utilizator simplu</button> </a>
<br>
<a href=<?php echo "'".$baseUrl."/authadmin'";?>>
<button class="myButton"> Autentificare administrator</button> </a>
</div>
<?php
$path = $_SERVER['PHP_SELF'];
$tree = explode('/', $path);
$page = "";
$message = "";
$title = "";
if($tree[3]=='inregistrare')
{
$page = "guestme";
$message = "Inregistrare";
$title = "Formular inregistrare";
}
else
if($tree[3]=='cerere')
{
$page = "regme";
$message = "Trimite cerere";
$title = "Formular trimite cerere";
}
?>
<div style=" margin-left: auto; margin-right: auto; width: 25%; text-align: center; margin-top: 200px;">
<h1><?php echo $title;?></h1>
<form action=<?php echo "'".$baseUrl."/pages/".$page.".php'";?> method="post" enctype="multipart/form-data"
onsubmit="return sendPost(this)" id="content" class="form_insert modal">
<div id="form_profile" class="form_insert modal">
<p> <label>Nume: </label> <input id="id" type="text" name="nume" value=""/> </p>
<p> <label> Prenume : </label> <input id="prenume" type="text" name="prenume" value=""/></p>
<p> <label> Locul de munca : </label> <input id="munca" type="text" name="munca" value=""/></p>
<p> <label> Specialitatea : </label> <input id="spec" type="text" name="specialitate" value=""/></p>
<p> <label> Date de contact : </label> <input id="contact" type="text" name="contact" value=""/></p>
<p> <label> E-mail : </label> <input id="email" type="text" name="email" value=""/></p>
<?php
if($tree[3]=='inregistrare')
{
echo '<p> <label> Parola : </label> <input id="contact" type="password" name="pp1" value=""/></p>
<p> <label> Confirmare parola : </label> <input id="email" type="password" name="pp2" value=""/></p>';
}
?>
<p> <input class="myButton" type="submit" value=<?php echo '"'.$message.'"' ?>></p>
</div>
</form>
<div class="status_fine" id="status"></div>
<div class="status_error" id="status_err"></div>
</div>>Cereria de inregistrare
Anexa Autentificare administrator
<div style=" margin-left: auto; margin-right: auto; width: 25%; text-align: center; margin-top: 200px;">
<a href=<?php echo '"'.$baseUrl.'"'?>><img src=<?php echo '"'.$baseUrl.'/img/logo.gif'.'"' ?>></img></a>
<div id="form_profile" class="form_insert modal">
<form action=<?php echo "'".$baseUrl."/pages/auth.php'";?> method="post" enctype="multipart/form-data"
onsubmit="return sendAuth(this)" id="content" class="form_insert modal">
<p> <label> Email: </label> <input id="id" type="text" name="lll" value=""/> </p>
<p> <label> Parola : </label> <input id="pp" type="password" name="ppp"/></p>
<p> <input class="myButton" type="submit" value="Autentificare"/></p>
</form>
<a class="link" href=<?php echo "'".$baseUrl."/cerere'";?>> Trimite cerere de inregistrare adiminstrator </a>
</div>
<div class="status_fine" id="status"></div>
<div class="status_error" id="status_err"></div>
</div>
Anexa Autentificare utilizator simplu
<div style=" margin-left: auto; margin-right: auto; width: 25%; text-align: center; margin-top: 200px;">
<a href=<?php echo '"'.$baseUrl.'"'?>><img src=<?php echo '"'.$baseUrl.'/img/logo.gif'.'"' ?>></img></a>
<div id="form_profile" class="form_insert modal">
<form action=<?php echo "'".$baseUrl."/pages/auth.php'";?> method="post" enctype="multipart/form-data"
onsubmit="return sendAuth(this)" id="content" class="form_insert modal">
<p> <label> Email: </label> <input id="id" type="text" name="lll" value=""/> </p>
<p> <label> Parola : </label> <input id="pp" type="password" name="ppp"/></p>
<p> <input class="myButton" type="submit" value="Autentificare"/></p>
</form>
<a class="link" href=<?php echo "'".$baseUrl."/inregistrare'";?>> Inregistrare utilizator simplu </a>
</div>
<div class="status_fine" id="status"></div>
<div class="status_error" id="status_err"></div>
</div>
Anexa Cautarea simplă
<form class="search" action=<?php echo "'".$baseUrl."/search/'";?> method="get" enctype="multipart/form-data"
id="content">
<input id="rol_ro" style="width:300px;" type="text" name="search_text"/>
<input class="myButton" type="submit" value="Cauta" />
<p><a href=<?php echo "'".$baseUrl."/advanced/'";?>>Cautare avansata</a></p>
</form>
Anexa Cautarea avansată
<?php
include '/../config/constants.php';
include '/../config/DataBaseConector.php';
if(!isset($_SESSION['logat'])&&!isset($_SESSION['guest']))
die ('err Error !!! Need autentification!!');
?>
<?php
$teza = strtoupper(mysql_real_escape_string($_POST['DenTeza']));
$nume= strtoupper(mysql_real_escape_string(trim($_POST['num'])));
$prenume= strtoupper(mysql_real_escape_string(trim($_POST['pren'])));
$institutie= strtoupper(mysql_real_escape_string(trim($_POST['institutie'])));
$specialitate= strtoupper(mysql_real_escape_string(trim($_POST['specialitate'])));
$where_str = "";
if(!empty($teza))
{
$where_str.=" AND UPPER(DenTeza) LIKE '%$teza%'";
}
if(!empty($nume))
{
$where_str.=" AND UPPER(Autor) LIKE '%$nume%'";
}
if(!empty($prenume))
{
$where_str.=" AND UPPER(Autor) LIKE '%$prenume%'";
}
if(!empty($institutie))
{
$where_str.=" AND (UPPER(institutii.ID_Institutie) LIKE '%$institutie%'"
. " OR UPPER(DenInstitutie) LIKE '%$institutie%') ";
}
if(!empty($specialitate))
{
$where_str.=" AND DenSpecialitate LIKE '%$specialitate%'";
}
if( empty($where_str))
{
echo 'err <b>Nu ati completat nici o optiune pentru cautare</b>';
exit;
}
$where_str = substr($where_str, 4);
$sql='SELECT teze.ID_Teza,ID_Grad,DenTeza,DenDomeniu,DataSustinere FROM '
. 'teze LEFT JOIN translateteza on teze.ID_teza=translateteza.ID_teza '
. 'and translateteza.ID_Limba=\''.$lang.'\''
.' LEFT JOIN specialitati on teze.ID_Specialitate=specialitati.ID_Specialitate '
. 'and specialitati.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN institutii on teze.ID_Institutie=institutii.ID_Institutie '
. 'and institutii.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN profile on specialitati.ID_Profil=profile.ID_profil '
. 'and profile.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN ramuri on profile.ID_Ramura=ramuri.ID_Ramura '
. 'and ramuri.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN domenii ON ramuri.ID_Domeniu=domenii.ID_Domeniu '
. 'and domenii.ID_Limba=\''.$lang.'\''
.' WHERE '.$where_str;
$result = mysql_query($sql);
if(mysql_num_rows($result)==0)
{
echo 'err <h1>Nu a fost gasita nici o teza cu asa caracteristici!!</h1>';
exit;
}
if (!$result) {
echo "err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
echo '<h1>Rezultate cautare: </h1>';
?>
<div class="Table">
<div class="Title">
<p>Teze</p>
</div>
<div class="Heading">
<?php
$heads = $thesis_table_headers[$lang];
if(!isset($_SESSION['logat']))
{
array_pop($heads);
}
foreach ($heads as $value) {
echo ' <div class="Cell"> <p>'.$value.'</p> </div>';
}
?>
</div>
<?php
while($row= mysql_fetch_assoc($result))
{
echo "
<div class='Row'>
<div class='Cell'>
".$row['ID_Grad']."
</div>
<div class='Cell'>
<div class='den_teza'>
<span class='den_format'>
<a href=\"".$baseUrl."/teze/".$row['ID_Teza']."\">".
$row['DenTeza']."</a>
</span>
</div>
</div>
<div class='Cell'>
".$row['DenDomeniu']."
</div>
<div class='Cell'>
".date("d.m.Y", strtotime($row['DataSustinere']))."
</div>";
if(isset($_SESSION['logat']))
echo " <div class='Cell'>
<a href=\"".$baseUrl."/teze/edit/".$row['ID_Teza']."\">
<img src=\"".$baseUrl."/img/edit.png"."\"></a>
<a href=\"".$baseUrl."/teze/delete/".$row['ID_Teza']."\">
<img src=\"".$baseUrl."/img/delete.png"."\"></a>
</div> ";
echo "</div>";
}
mysql_close($link);
?>
</div>
Anexa Rezultatele căutarii
<?php
include '/../config/DataBaseConector.php';
if(!isset($_SESSION['logat'])&&!isset($_SESSION['guest']))
die ('Error !!! Need autentification!!');
?>
<?php
$get_data = $_SESSION['id'];
$search = substr($get_data, strpos($get_data, "=")+1);
if( empty($search))
{
echo '<b>Nu ati introdus nici un cuvint pentru cautare</b>';
exit;
}
$search = mysql_real_escape_string($search);
$search = str_replace("+", "%", $search);
$search = strtoupper($search);
$sql='SELECT teze.ID_Teza,ID_Grad,DenTeza,DenDomeniu,DataSustinere FROM '
. 'teze LEFT JOIN translateteza on teze.ID_teza=translateteza.ID_teza '
. 'and translateteza.ID_Limba=\''.$lang.'\''
.' LEFT JOIN specialitati on teze.ID_Specialitate=specialitati.ID_Specialitate '
. 'and specialitati.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN profile on specialitati.ID_Profil=profile.ID_profil '
. 'and profile.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN ramuri on profile.ID_Ramura=ramuri.ID_Ramura '
. 'and ramuri.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN domenii ON ramuri.ID_Domeniu=domenii.ID_Domeniu '
. 'and domenii.ID_Limba=\''.$lang.'\''
.' WHERE UPPER(DenTeza) LIKE \'%'.$search.'%\' or UPPER(CuvinteCheie) LIKE \'%'.$search.'%\''
. ' ORDER BY DataSustinere DESC';
$result = mysql_query($sql);
if(mysql_num_rows($result)==0)
{
echo '<h1>Nu a fost gasita nici o teza ce cu asa titlu sau cuvinte cheie!!</h1>';
exit;
}
if (!$result) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
echo '<h1>Rezultate cautare: '.$search.' </h1>';
?>
<div class="Table">
<div class="Title">
<p>Teze</p>
</div>
<div class="Heading">
<?php
$heads = $thesis_table_headers[$lang];
if(!isset($_SESSION['logat']))
{
array_pop($heads);
}
foreach ($heads as $value) {
echo ' <div class="Cell"> <p>'.$value.'</p> </div>';
}
?>
</div>
<?php
while($row= mysql_fetch_assoc($result))
{
echo "
<div class='Row'>
<div class='Cell'>
".$row['ID_Grad']."
</div>
<div class='Cell'>
<div class='den_teza'>
<span class='den_format'>
<a href=\"".$baseUrl."/teze/".$row['ID_Teza']."\">".
$row['DenTeza']."</a>
</span>
</div>
</div>
<div class='Cell'>
".$row['DenDomeniu']."
</div>
<div class='Cell'>
".date("d.m.Y", strtotime($row['DataSustinere']))."
</div>";
if(isset($_SESSION['logat']))
echo " <div class='Cell'>
<a href=\"".$baseUrl."/teze/edit/".$row['ID_Teza']."\">
<img src=\"".$baseUrl."/img/edit.png"."\"></a>
<a href=\"".$baseUrl."/teze/delete/".$row['ID_Teza']."\">
<img src=\"".$baseUrl."/img/delete.png"."\"></a>
</div> ";
echo "</div>";
}
mysql_close($link);
?>
</div>.
Anexa Adăugarea tezelor
<?php
if(!isset($_SESSION['logat']))
die ('Error !!! Need autentification!!');
?>
<form action=<?php echo "'".$baseUrl."/pages/send_teza.php'";?> method="post" enctype="multipart/form-data"
onsubmit="return sendPost(this)" id="content">
<div id="form_teza" class="form_insert modal" style="display:inline-block;">
<div style="float: left;">
<p> <label> Autor (num pren)</label> <input type="text" name="numpren" value=""/> </p>
<p> <label> Data si ora Sustinerii </label> <input id="datetimepicker_mask" type="text" name="sustinere" value=""/> </p>
<p> <label> Data Aprobare </label> <input id="datepicker2" type="text" name="aprobare" value=""/> </p>
<p> <label> Nr. Pagini </label> <input id="pagini" type="text" name="pagini" value=""/> </p>
<?php
$rows= array("Specialitate","Grad","Institutie");
$tables=array("specialitati","grade","institutii");
for($i=0;$i< count($rows);$i++)
{
echo'<p><label >'.$rows[$i].' </label></p>
<div id="ui-widget" class="ui-widget">
<select id="combobox'.$i.'">
<option value=""></option>';
include '/../config/DataBaseConector.php';
$sql="SELECT ID_".$rows[$i].",Den".$rows[$i]." from $tables[$i] where ". "ID_Limba='$lang'";
$result=mysql_query($sql);
while ($row = mysql_fetch_assoc($result))
{
echo '<option value='.$row['ID_'.$rows[$i]].'>'. $row['Den'.$rows[$i]].'</option>';
}
echo ' </select>
<input type="hidden" name="id_'.$rows[$i].'" id="hid_val'.$i.'" value=""/>
</div>
';
}
echo'<p><label > Conducator </label></p>
<div id="ui-widget" class="ui-widget">
<select id="combobox3">
<option value=""></option>';
$sql="SELECT ID_persoana,Nume,Prenume from persoane ";
$result=mysql_query($sql);
while ($row = mysql_fetch_assoc($result))
{
echo '<option value='.$row['ID_persoana'].'>'. $row['Nume'].' '.$row['Prenume'].'</option>';
}
echo ' </select>
<input type="hidden" name="id_Conducator" id="hid_val3" value=""/>
</div>
';
echo'<p><label > Consultant </label></p>
<div id="ui-widget" class="ui-widget">
<select id="combobox4">
<option value=""></option>';
$sql="SELECT ID_persoana,Nume,Prenume from persoane ";
$result=mysql_query($sql);
while ($row = mysql_fetch_assoc($result))
{
echo '<option value='.$row['ID_persoana'].'>'. $row['Nume'].' '.$row['Prenume'].'</option>';
}
echo ' </select>
<input type="hidden" name="id_Consultant" id="hid_val4" value=""/>
</div>
';
mysql_close($link);
?>
<p> <input class="myButton" type="submit" value="store" /></p>
</div>
<?php
$languages=array("ru"=>"rusa","en"=>"engleza","ro"=>"romana");
foreach ($languages as $abreviatura=>$limba)
{
echo ' <div style="float: right;margin-left: 20px;">';
echo '<p>'.$limba.':</p>';
echo
'
<p> <label> Denumire</label></p><p> <textarea cols="50" name="den_'.$abreviatura.'"/></textarea></p>
<p> <label> Fisier teza </label></p><p> <input type="file" style="max-width:300px" name="FileTeza_'.$abreviatura.'" /> </p>
<p> <label> Autoreferat </label></p><p> <input type="file" style="max-width:300px" name="Autoreferat_'.$abreviatura.'" /> </p>
<p> <label> Cuvinte chie</label></p><p> <textarea cols="50" name="chei_'.$abreviatura.'"/></textarea></p>
<p> <label> Adnotare</label></p><p> <textarea cols="50" name="adnotare_'.$abreviatura.'"/></textarea></p>
<p> <label> Cuprins</label></p><p> <textarea cols="50" name="cuprins_'.$abreviatura.'"/></textarea></p>
</div>';
}
?>
<!– <div style="clear:both"></div>
–>
</div> <!–div principal–>
</form>
<div class="status_fine" id="status"></div>
<div class="status_error" id="status_err"></div>
Anexa Editarea tezei
<?php
if(!isset($_SESSION['logat']))
die ('Error !!! Need autentification!!');
if(!isset($_SESSION['id']))
{
Redirect($errorPage);
}
$id=$_SESSION['id'];
if(!is_numeric($id)) Redirect($errorPage);
include '/../config/DataBaseConector.php';
$sql = "SELECT * From teze"
. " WHERE ID_Teza='$id'";
$query = mysql_query($sql);
if (!$query) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
if(mysql_num_rows($query)==0)
{
Redirect($errorPage);
}
$teze= mysql_fetch_assoc($query);
if(!$teze)
{
Redirect($errorPage);
}
?>
<form action=<?php echo "'".$baseUrl."/pages/upd_teza.php'";?> method="post" enctype="multipart/form-data"
onsubmit="return sendPost(this)" id="content">
<div id="form_teza" class="form_insert modal" style="display:inline-block;">
<div style="float: left;">
<p> <label> Autor (num pren)</label> <input type="text" name="numpren" value=
<?php echo ' "'.$teze['Autor'].'" '; ?>/> </p>
<p> <label> Data Sustinere </label> <input id="DTpicker" type="text" name="sustinere" value=
<?php echo ' "'.date('H:i d.m.Y', strtotime($teze['DataSustinere'])).'" '; ?>/> </p>
<p> <label> Data Aprobare </label> <input id="Dpicker" type="text" name="aprobare" value=
<?php echo ' "'.date('d.m.Y', strtotime($teze['DataAprobare'])).'" '; ?>/> </p>
<p> <label> Nr. pagini</label> <input type="text" name="pagini" value=
<?php echo ' "'.$teze['Pagini'].'" '; ?>/> </p>
<?php
$rows= array("Specialitate","Grad","Institutie");
$tables=array("specialitati","grade","institutii");
for($i=0;$i< count($rows);$i++)
{
echo'<p><label >'.$rows[$i].' </label></p>
<div id="ui-widget" class="ui-widget">
<select id="combobox'.$i.'">
<option value=""></option>';
include '/../config/DataBaseConector.php';
$sql="SELECT ID_".$rows[$i].",Den".$rows[$i]." from $tables[$i] where ". "ID_Limba='$lang'";
$result=mysql_query($sql);
while ($row = mysql_fetch_assoc($result))
{
if($row['ID_'.$rows[$i]]==$teze['ID_'.$rows[$i]])
{
$sel="selected";
}
else
{
$sel="";
}
echo '<option '.$sel.' value='.$row['ID_'.$rows[$i]].'>'. $row['Den'.$rows[$i]].'</option>';
}
echo ' </select>
<input type="hidden" name="id_'.$rows[$i].'" id="hid_val'.$i.'" value="'.$teze['ID_'.$rows[$i]].'"/>
</div>
';
}
echo'<p><label > Conducator </label></p>
<div id="ui-widget" class="ui-widget">
<select id="combobox3">
<option value=""></option>';
$sql="SELECT ID_persoana,Nume,Prenume from persoane ";
$result=mysql_query($sql);
while ($row = mysql_fetch_assoc($result))
{
if($row['ID_persoana']==$teze['ID_Conducator'])
{
$sel="selected";
}
else
{
$sel="";
}
echo '<option '.$sel.' value='.$row['ID_persoana'].'>'. $row['Nume'].' '.$row['Prenume'].'</option>';
}
echo ' </select>
<input type="hidden" name="id_Conducator" id="hid_val3" value="'.$teze['ID_Conducator'].'"/>
</div>
';
echo'<p><label > Consultant </label></p>
<div id="ui-widget" class="ui-widget">
<select id="combobox4">
<option value=""></option>';
$sql="SELECT ID_persoana,Nume,Prenume from persoane ";
$result=mysql_query($sql);
while ($row = mysql_fetch_assoc($result))
{
if($row['ID_persoana']==$teze['ID_Consultant'])
{
$sel="selected";
}
else
{
$sel="";
}
echo '<option '.$sel.' value='.$row['ID_persoana'].'>'. $row['Nume'].' '.$row['Prenume'].'</option>';
}
echo ' </select>
<input type="hidden" name="id_Consultant" id="hid_val4" value="'.$teze['ID_Consultant'].'"/>
</div>
';
?>
<input type="hidden" name="teza_id" id="old" value=
<?php echo '"'.$id.'" '; ?>/>
<p> <input class="myButton" type="submit" value="Save" name="upload"/>
<input type="reset" value="Reset" name="res"/></p>
</div>
<?php
$sql='SELECT * FROM translateteza WHERE ID_Teza=\''.$id.'\'';
$query = mysql_query($sql);
if (!$query) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
$transData=array();
while($res= mysql_fetch_assoc($query))
{
$transData[$res['ID_Limba']]=$res;
}
//var_dump($transData);
$languages=array("ru"=>"rusa","en"=>"engleza","ro"=>"romana");
foreach ($languages as $abreviatura=>$limba)
{
$doc=(empty($transData[$abreviatura]['DocTeza']))?"":"Incarcarea unui nou fisier va inlocui existentul";
$auto=(empty($transData[$abreviatura]['Autoreferat']))?"":"Incarcarea unui nou fisier va inlocui existentul";
echo ' <div style="float: right;margin-left: 20px;">';
echo '<p>'.$limba.':</p>';
echo
'
<p> <label> Denumire</label></p><p> <textarea cols="50" name="den_'.$abreviatura.'"/>'
.$transData[$abreviatura]['DenTeza'].'</textarea></p>
<p> <label> Fisier teza </label></p>'.$doc.'<p> <input type="file" style="max-width:300px" name="FileTeza_'.$abreviatura.'" /> </p>
<p> <label> Autoreferat </label></p>'.$auto.'<p> <input type="file" style="max-width:300px" name="Autoreferat_'.$abreviatura.'" /> </p>
<p> <label> Cuvinte chie</label></p><p> <textarea cols="50" name="chei_'.$abreviatura.'"/>'
.$transData[$abreviatura]['CuvinteCheie'].'</textarea></p>
<p> <label> Adnotare</label></p><p> <textarea cols="50" name="adnotare_'.$abreviatura.'"/>'
.$transData[$abreviatura]['Adnotare'].'</textarea></p>
<p> <label> Cuprins</label></p><p> <textarea cols="50" name="cuprins_'.$abreviatura.'"/>'
.$transData[$abreviatura]['Cuprins'].'</textarea></p>
</div>'
}
mysql_close($link);
?>
<!– <div style="clear:both"></div>
–>
</div> <!–div principal–>
</form>
<div class="status_fine" id="status"></div>
<div class="status_error" id="status_err"></div>
Anexa Ștergerea tezei
<?php
if(!isset($_SESSION['logat']))
die ('Error !!! Need autentification!!');
if(!isset($_SESSION['id']))
{
Redirect($errorPage);
}
$id_pers=$_SESSION['id'];
if(!is_numeric($id_pers)) Redirect($errorPage);
include '/../config/DataBaseConector.php';
$sql = "SELECT * From persoane"
. " WHERE ID_Persoana='$id_pers'";
$query = mysql_query($sql);
if (!$query) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
if(mysql_num_rows($query)==0)
{
Redirect($errorPage);
}
$sql = "DELETE FROM persoane where ID_Persoana='$id_pers'";
$query = mysql_query($sql);
if (!$query) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
$sql="DELETE FROM consilii where ID_Persoana='$id_pers'";
$query = mysql_query($sql);
if (!$query) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
$sql="UPDATE teze SET ID_Conducator=NULL WHERE ID_Conducator = '$id_pers'";
$query = mysql_query($sql);
if (!$query) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
mysql_close($link);
Redirect($_SERVER['HTTP_REFERER']);
?>
Anexa Informații despre teză
<?php
if(!isset($_SESSION['logat'])&&!isset($_SESSION['guest']))
die ('Error !!! Need autentification!!');
/*
* Vicu07
*
*
*/
if(!isset($_SESSION['id']))
{
Redirect($errorPage);;
}
$id=$_SESSION['id'];
include '/../config/DataBaseConector.php';
$sql = "SELECT * From teze LEFT JOIN translateteza "
. "ON teze.ID_Teza=translateteza.ID_Teza "
. "LEFT JOIN institutii "
. "ON teze.ID_Institutie=institutii.ID_institutie "
. "LEFT JOIN grade "
. "ON teze.ID_Grad=grade.ID_Grad "
. "LEFT JOIN persoane "
. "ON teze.ID_Conducator=persoane.ID_Persoana "
. "LEFT JOIN specialitati "
. "ON specialitati.ID_Specialitate=teze.ID_Specialitate "
. ' LEFT JOIN profile on specialitati.ID_Profil=profile.ID_profil'
. ' LEFT JOIN ramuri on profile.ID_Ramura=ramuri.ID_Ramura '
. ' LEFT JOIN domenii ON ramuri.ID_Domeniu=domenii.ID_Domeniu '
. "where teze.ID_Teza='$id' and translateteza.ID_Limba='$lang' "
. " and grade.ID_limba='$lang' and specialitati.ID_Limba='$lang' "
. " and domenii.ID_Limba='$lang' and institutii.ID_Limba='$lang'"
. "";
$query = mysql_query($sql);
if (!$query) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
if(mysql_num_rows($query)==0)
{
Redirect($errorPage);
}
$info_teza=mysql_fetch_assoc($query);
$id_teza=$info_teza['ID_Teza'];
$consultant = $info_teza ['ID_Consultant'];
$sql = "SELECT Nume,Prenume From teze JOIN persoane "
. "ON teze.ID_Consultant=persoane.ID_Persoana "
. "where ID_Consultant='$consultant'";
$query = mysql_query($sql);
if (!$query) {
echo 'err MySQL Error: ' . mysql_error();
exit;
}
$consultant = mysql_fetch_assoc($query);
$sql_doc = "SELECT ID,ID_Limba,DocTeza from translateteza where ID_teza='$id_teza' and DocTeza!=''";
$sql_autref = "SELECT ID,ID_Limba,Autoreferat from translateteza where ID_teza='$id_teza' and Autoreferat!=''";
?>
<div><p><span class="titlu"> <?php echo $info_teza['DenTeza'];?></span></p></div>
<div class="info">
<div style="float: left;width: 550px">
<h3><span class="field"> Autor: </span>
<?php echo $info_teza['Autor']; ?>
</h3>
<h3><span class="field"> Gradul: </span>
<?php echo $info_teza['DenGrad']." in ".$info_teza['DenDomeniu']; ?>
</h3>
<h3><span class="field"> Specialitate: </span>
<?php echo $info_teza['DenSpecialitate']; ?>
</h3>
<h3><span class="field"> Anul: </span>
<?php echo date('Y',strtotime($info_teza['DataSustinere'])); ?>
</h3>
<h3><span class="field"> Conducător științific: </span>
<?php echo "<a href='".$baseUrl."/persoane/".$info_teza['ID_Conducator']."'>".$info_teza['Nume']." ".$info_teza['Prenume']."</a>"; ?>
</h3>
<h3><span class="field"> Consultant științific: </span>
<?php echo "<a href='".$baseUrl."/persoane/".$info_teza['ID_Consultant']."'>".$consultant['Nume']." ".$consultant['Prenume']."</a>"; ?>
</h3>
<h3><span class="field"> Institutia: </span>
<?php echo "<a href='".$baseUrl."/institutii/".$info_teza['ID_Institutie']."'>".$info_teza['DenInstitutie']."</a>"; ?>
</h3>
</div>
<div style="float: right; margin-left: 30px; width: 300px">
<h3><span class="field"> Consiliu: </span></h3
<?php
$sql="SELECT consilii.ID_Persoana,Nume,Prenume,DenRol,DenGrad,DenTitlu,DenInstitutie"
. " from consilii LEFT JOIN roluri "
. " ON consilii.ID_Rol=roluri.ID_Rol "
. "LEFT JOIN persoane "
. " ON consilii.ID_Persoana=persoane.ID_persoana "
. "LEFT JOIN grade "
. "ON persoane.ID_Grad=grade.ID_Grad "
. "LEFT JOIN titluri "
. "ON persoane.ID_Titlu=titluri.ID_Titlu "
. "LEFT JOIN institutii "
. "ON persoane.ID_Institutie=institutii.ID_Institutie "
. "where ID_teza='$id_teza' and roluri.ID_Limba='$lang'"
. " and grade.ID_Limba='$lang' and titluri.ID_Limba='$lang'"
. " and institutii.ID_Limba='$lang'";
$query= mysql_query($sql);
if (!$query) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
echo '<ul>';
while ($cons= mysql_fetch_assoc($query))
{
echo '<li>';
echo "<a href='".$baseUrl."/persoane/".$cons['ID_Persoana']."'>".$cons['Nume'].' '.$cons['Prenume']."<a>"
. " , ".$cons['DenRol']."<br/>".$cons['DenGrad']." , "
. "".$cons['DenTitlu']." , ".$cons['DenInstitutie'];
echo '</li>';
}
echo '</ul>';
?>
</div>
<div style="float: right; margin-left: 30px;width: 400px">
<h3><span class="field"> Statut: </span>
<?php
$data_sustinere=$info_teza['DataSustinere'];
$aprobare = $info_teza['DataAproba
$azi = date('Y-m-d');
$statut = $info_teza['Statut'];
if($statut == 'C')
{
echo "Teza a fost susținută pe ".date('d.m.Y', strtotime($data_sustinere))." în CSS și se află în examinare la CNAA ";
}
else if ($statut == 'S')
{
"Susținerea tezei va avea loc pe ".date('d.m.Y', strtotime($data_sustinere));
}
else
if($statut == 'A')
{
echo "Teza a fost susținută pe ". date('d.m.Y', strtotime($data_sustinere))." în CSS ".
"și aprobată de CNAA pe ".date('d.m.Y', strtotime($aprobare));
}
?>
</h3>
<h3><span class="field"> Teza: </span>
</h3>
<?php
$query= mysql_query($sql_doc);
if (!$query) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
while($docs= mysql_fetch_assoc($query))
{
$file="./files/".$docs['ID_Limba']."/".$docs['DocTeza'];
if(file_exists($file))
{
echo '<span class="data">';
echo "<a href='".$baseUrl."/pdfview/".$docs['ID']."_doc'>".round(filesize($file)/1024/1024,2)." MB </a>/".$docs['ID_Limba'];
echo '</span><br/>';
}
}
?>
<h3><span class="field"> Autoreferat: </span>
</h3>
<?php
$query= mysql_query($sql_autref);
if (!$query) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
while($docs= mysql_fetch_assoc($query))
{
$file="./files/".$docs['ID_Limba']."/".$docs['Autoreferat'];
if(file_exists($file))
{
echo '<span class="data">';
echo "<a href='".$baseUrl."/pdfview/".$docs['ID']."_auto'>".round(filesize($file)/1024/1024,2)." MB </a>/".$docs['ID_Limba'];
echo '</span><br/>';
}
}
echo $info_teza['Pagini']." pagini";
?>
</div>
</div>
<div style="margin-top: 10px; min-width: 200px; "><h3><span class="field" > Cuvinte Cheie: </span></h3>
<span class="data">
<?php echo nl2br($info_teza['CuvinteCheie']); ?>
</span>
<h3><span class="field" > Adnotare: </span></h3>
<span class="data">
<?php echo nl2br($info_teza['Adnotare']); ?>
</span>
<h3><span class="field" > Cuprins: </span></h3>
<span class="data">
<?php echo nl2br($info_teza['Cuprins']); ?>
</span>
</div>
Anexa Vizualizarea tezei
<?php
if(!isset($_SESSION['logat'])&&!isset($_SESSION['guest']))
die ('Error !!! Need autentification!!');
?>
<?php
include '/../config/DataBaseConector.php';
if(isset($_SESSION['logat']))
{
echo '<div ><button class="myButton" onclick="window.location.href=\''.$baseUrl.'/teze/insert'.'\'">Add teza</button></div>';
}
?>
<div class="Table">
<div class="Title">
<p>În examinare la CȘS</p>
</div>
<div class="Heading">
<?php
$sql='SELECT teze.ID_Teza,ID_Grad,DenTeza,DenDomeniu,DataSustinere FROM '
. 'teze LEFT JOIN translateteza on teze.ID_teza=translateteza.ID_teza '
. 'and translateteza.ID_Limba=\''.$lang.'\''
.' LEFT JOIN specialitati on teze.ID_Specialitate=specialitati.ID_Specialitate '
. 'and specialitati.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN profile on specialitati.ID_Profil=profile.ID_profil '
. 'and profile.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN ramuri on profile.ID_Ramura=ramuri.ID_Ramura '
. 'and ramuri.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN domenii ON ramuri.ID_Domeniu=domenii.ID_Domeniu '
. 'and domenii.ID_Limba=\''.$lang.'\''
.' WHERE Statut = \'S\''
. ' ORDER BY DataSustinere DESC';
$result = mysql_query($sql);
if (!$result) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
$heads = $thesis_table_headers[$lang];
if(!isset($_SESSION['logat']))
{
array_pop($heads);
}
foreach ($heads as $value) {
echo ' <div class="Cell"> <p>'.$value.'</p> </div>';
}
?>
</div>
<?php
while($row= mysql_fetch_assoc($result))
{
echo "
<div class='Row'>
<div class='Cell'>
".$row['ID_Grad']."
</div>
<div class='Cell'>
<div class='den_teza'>
<span class='den_format'>
<a href=\"".$baseUrl."/teze/".$row['ID_Teza']."\">".
$row['DenTeza']."</a>
</span>
</div>
</div>
<div class='Cell'>
".$row['DenDomeniu']."
</div>
<div class='Cell'>
".date("d.m.Y", strtotime($row['DataSustinere']))."
</div>";
if(isset($_SESSION['logat'])) echo" <div class='Cell'>
<a href=\"".$baseUrl."/teze/edit/".$row['ID_Teza']."\">
<img src=\"".$baseUrl."/img/edit.png"."\"></a>
<a href=\"".$baseUrl."/teze/delete/".$row['ID_Teza']."\">
<img src=\"".$baseUrl."/img/delete.png"."\"></a>
</div> ";
echo "</div> ";
}
echo '</div>';
?>
<div class="Table">
<div class="Title">
<p>În examinare la CNAA</p>
</div>
<div class="Heading">
<?php
$sql='SELECT teze.ID_Teza,ID_Grad,DenTeza,DenDomeniu,DataSustinere FROM '
. 'teze LEFT JOIN translateteza on teze.ID_teza=translateteza.ID_teza '
. 'and translateteza.ID_Limba=\''.$lang.'\''
.' LEFT JOIN specialitati on teze.ID_Specialitate=specialitati.ID_Specialitate '
. 'and specialitati.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN profile on specialitati.ID_Profil=profile.ID_profil '
. 'and profile.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN ramuri on profile.ID_Ramura=ramuri.ID_Ramura '
. 'and ramuri.ID_Limba=\''.$lang.'\''
. ' LEFT JOIN domenii ON ramuri.ID_Domeniu=domenii.ID_Domeniu '
. 'and domenii.ID_Limba=\''.$lang.'\''
.' WHERE Statut = \'C\'
. ' ORDER BY DataSustinere DESC'
$result = mysql_query($sql);
if (!$result) {
echo "Err \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
$heads = $thesis_table_headers[$lang];
if(!isset($_SESSION['logat']))
{
array_pop($heads);
}
foreach ($heads as $value) {
echo ' <div class="Cell"> <p>'.$value.'</p> </div>'
}
?>
</div>
<?php
while($row= mysql_fetch_assoc($result))
{
echo "
<div class='Row'>
<div class='Cell'>
".$row['ID_Grad']."
</div>
<div class='Cell'>
<div class='den_teza'>
<span class='den_format'>
<a href=\"".$baseUrl."/teze/".$row['ID_Teza']."\">".
$row['DenTeza']."</a>
</span>
</div>
</div>
<div class='Cell'>
".$row['DenDomeniu']."
</div>
<div class='Cell'>
".date("d.m.Y", strtotime($row['DataSustinere']))."
</div>";
if(isset($_SESSION['logat'])) echo" <div class='Cell'>
<a href=\"".$baseUrl."/teze/edit/".$row['ID_Teza']."\">
<img src=\"".$baseUrl."/img/edit.png"."\"></a>
<a href=\"".$baseUrl."/teze/delete/".$row['ID_Teza']."\">
<img src=\"".$baseUrl."/img/delete.png"."\"></a>
</div> ";
echo "</d:
}
echo '</div>';
mysql_close($link);
?>
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Sistemul Informational Baza de Date a Tezelor de Doctorat (ID: 150596)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
