Soft Pentru Elaborarea Testelor DE Bacalaureat
SOFT PENTRU ELABORAREA TESTELOR
DE BACALAUREAT
Cuprins
Cuprins
Introducere
Capitolul 1. Descrierea limbajelor folosite pentru crearea Softului
1.1. Limbajul HTML
1.2. Limbajul CSS
1.2.1. CSS Intern
1.2.2. În antetul (header-ul) fișierului
1.2.1. Fișier CSS Intern
1.3. Java Script
1.3.1 Convenții de sintaxă
1.3.2. Variabile și tipuri de date
1.3.4. Durata de viață a unei variabile
1.3.5.Operatori
1.3.5. Operatori aritmetici
1.3.6. Operatori de comparare
1.3.7. Operatori logici (booleeni
1.3.8. Operatori pentru structuri de date (obiecte
1.3.9. Operatorul conditional "?"
1.3.10. Ordinea operatorilor
1.3.11. Funcții
1.3.12. Crearea (definirea) funcțiilor
1.3.13. Instrucțiunea return
1.3.14. Apelarea funcțiilor
1.3.15. Fereastra Alert
1.3.16. Fereastra Prompt
1.3.17. Fereastra Confirm
1.4. Limbajul PHP
1.4.1. Scrierea programelor PHP
1.4.2. Funcționarea codului php
1.4.3. Prezentarea limbajului PHP
1.4.4. Limitari și reguli ale variabilelor
1.4.5.Tipuri de date în PHP
1.5. Bazei de Date MySQL
1.4.3.Cost zero
1.4.4.Suport pentru limbaje de interogare
1.4.5.La server se pot conecta mai mulți clienți simultan
1.4.6.Conectivitate și securitate
1.4.7.Portabilitate
1.4.8.Distribuție liberă
1.4.9.Conectarea la serverul MySQL
1.4.10.Protecții la adăugarea datelor într-o bază de date
Capitolul 2 Crearea softului
2.1. Proiectarea și crearea Bazei de Date
2.1.1. Determinarea scopului bazei de date
2.1.2. Stabilirea tabelelor din baza de date
2.1.3. Legăturile dintre tabele
2.2. Proiectarea Softului
2.3. Crearea Softului
Concluzie
Anexe
Bibliografie
Introducere
Tema tezei de licență tratează problema exzamenării elevilor atît la nivelul liceal cît și cel gimnazial. Această problemă în zilele noastre este foarte mult discutată atît de către autorități căt și chiar de către însuși elevi și deci este o luptă continuă între a nu se copia și metodile de copier.
Pentru o solutiona o astfel de problemă s-au întreprins un șir de măsuri însă de fiecare data elevii încearcă să le ocolească și să continuie să căpie. O metodă de soluționare a acestei problem ar fi un soft care să genereze teste de în mod aleator pentru fiecare elev. Deci în acest mod ar fi mult mai greu de colabora atît între elevi cît și cu mediul exterior deoarece fiecare elev o să primească test individual și diferit de colegi.
În primul capitol se vor descrie limbajele folosite pentru crearea softului. Se va începe cu limbajul HTML care este principal în crearea unei pagini web. Se vor reda principalele instrucțiuni care sunt numite ”tag”, cele mai importante sunt <HTML> </HTML> pentru a începe și a sfîrși codul unei pagini web, la fel de importante sunt <HEAD> </HEAD> pentru antetul paginii și <BODY> </BODY> pentru însuși conținutul unei pagini. Limbajul HTML răspunde doar de designul paginii. La fel ca și HTML de design mai poartă răspundere și limbajul CSS însă este mai eficient deoarece ne permite ca să facem o singură modificare în codul sursă pentru a modifice designul pe mai multe pagini concomitent. Atît limbajul HTML cît și CSS sunt limbaje de marcare utilizate pentru crearea paginilor web însă de eficienta unui site se ocupă Java Script și PHP. JavaScript este un limbaj de programare orientată pe obiect bazat pe conceptul prototipurilor. Este folosit mai ales pentru introducerea unor funcționalități în paginile web, codul Javascript din aceste pagini fiind rulat de către un browser. PHP se folosește atît pentru conectarea cu baza de date cît și pentru efectuarea unor operații pe o anumită pagină. Cu ajutorul libajului PHP se pot crea pagini dinaice ce sunt mai eficiente și micșorează ca volum codul sursă dar și dă o eficiență mai mare întregului site. O importanță majoră are și baza de date pentru un site deoarece toate datele atît despre utilizatorii siteului cît și alte date trebuiesc păstrate și prelucrate. Cel mai des întîlnită este baza de date MySQL care păstrează datele sub formă de tabele.
În capitolul al doilea se descrie softul pe pași cum a fost creat însă se va începe cu baza de date apoi se va trece nemijlocit la saitul nostru care va efectua logarea pentru profesori și pentru elevi apoi elevii vor avea pagina pentru a scrie testul de examen iar profesorii pentru a verifica testele scrise de elevi. La fel se va permite accesul de a introduce teste noi în baza de date.
Capitolul 1. Descrierea limbajelor folosite pentru crearea Softului
În acest capitol se vor reda limbajele folosite pontru a crea un astfel de soft. Deci s-au foloit următoare limbaje: HTML; CSS; Java Script; PHP. În continuare vom analiza cîte puțin fiecare din aceste limbaje:
1.1. Limbajul HTML
HTML este prescurtarea de la HyperText Markup Language și reprezintă un limbaj pentru crearea unui document astfel încât să poată fi publicat pe World Wide Web și vizualizat cu ajutorul unui browser (Internet Explorer, Netscape Navigator, Mozila Firefox, Opera, etc.).
Hypertext-ul trebuie interpretat ca un text care semnalează o legătură la o altă informație web, de obicei un alt document web, și este identificat prin subliniere sau culoare, pentru a-l deosebi de textul simplu. [1]
HTML nu este un limbaj de programare și asta din cauza că în HTML lipsește atributul principal propriu oricărui limbaj de programare și anume comenzile. În HTML nu poate fi creată o succesiune de acțiuni, ci doar poate fi descris modul în care browserul trebuie să afișeze la ecran documentul respective.
Astfel HTML este doar un limbaj de descriere, conținând elemente ce
permit construirea paginilor web.
Documentele HTML sunt exclusiv de tip text (ASCII) prin urmare pot fi create cu orice editor de texte. Au fost însă dezvoltate editoare specializate care permit editarea într-un fel de WYSIWYG – Wat You See Is Wat You Get.[1]
Editoarele specializate HTML (ex. MS FrontPage sau Macromedia DreamWeaver) permit crearea documentelor web într-un mod rapid și ușor, și, prin urmare, foarte eficient, doar prin apăsarea câtorva butoane sau prin apelarea câtorva funcții predefinite. Acest tip de editoare
reprezintă unelte excelente pentru dezvoltatorii web cu experiență
În general aceste editoare pot fi folosite și de utilizatori care nu cunosc limbajul HTML, cu toate că ele atribuie coduri în exces
documentului și de obicei se intervine „manual” la redactarea lor. Un alt neajuns ar fi faptul că în majoritatea cazurilor documentul este prezentat de browser nu întocmai așa cum este prezentat în editor și atunci iarăși este necesar de a interveni pentru efectuarea modificărilor respective.
Astfel chiar și în cazul folosirii unui editor specializat cunoașterea limbajului HTML este oportună .[2]
HTML utilizează pentru descrierea documentelor web – tag-uri, numite și etichete, specifice pentru fiecare element descris. Tag-urile stabilesc atât structura documentului, cât și aspectul acestuia. U-n tag este un identificator care furnizează browser-ului instrucțiuni de formatare a documentului. Petru a fi delimitate, tag-urile HTML sunt încadrate între paranteze unghiulare (< >).[2]
Orice pagină web (document HTML) are în structură trei elemente obligatorii: un element numit HTML, care cuprinde întregul document, și două sub-elemente ale cestuia: HEAD (antet, cap) și BODY (corp).
· Tag-ul <html> este primul tag care trebuie să apară intr-un fișier
HTML. El incadrează alături de tag-ul său corespunzător de inchidere
</html> intreaga pagină web.
· Tag-ul <head> marchează partea de antet a documentului. Este un
tag par cu tag-ul de inchidere </head>.
· Tag-ul par <body> incadrează conținutul paginii web.
In antet este recomandat să se precizeze titlul documentului, care va fi
afișat in bara de titlu a browser-ului. Pentru a preciza titlul documentului,
care nu poate depăși 64 de caractere, se utilizează in secțiunea antet tagurile
pereche <title> și </title>, intre care se scrie titlul documentului.
Iată un model de structură a unui document HTML:
<html>
<head>
<title >Titlul documentului</title>
</head>
<body>
Continutul documentului
</body>
</html>
Una din metodele creării unui document HTML este scrierea codului
acestuia în editorul de texte Notepad. De exemplu codul:
<html>
<head>
<title> pagina web nr. 1</title>
</head>
<body>
Va aflati pe prima pagina
</body>
</html>
După scrierea codului și salvarea fișierului (de exemplu sub numele index) se schimbă extensia fișierului obținut din .txt în .html. La deschiderea ultimului se obține următorul document:
Astfel pentru a crea u-n document html este suficient de a scrie codul
acestu-ia într-un editor de texte după care de a schimba extensia acestuia în *.html.[1]
Pentru crearea unei pagini vem mai comolexă se folosesc felurite tag-uri ca de exemplu:
Formatarea textului;
Așezarea în pagină;
Crearea tabelelor;
Inserarea imaginilor;
Inserarea casetelor de editare;
Inserarea Butoanelor.
Desigur că acestea nu sunt toate exemplele , însa sunt cele mai des întălnite.
1.2. Limbajul CSS
O problemă importantă cînd avem un site cu multe pagini este atunci cînd dorim să facem anumite schimbări în elementele pagini: fondul, grafica sau fontul textelor din pagini.
Prin utilizarea CSS (Cascading Style Sheets),în traducere "foi de stil în cascada", acest lucru nu mai este o problema, realîzandu-se relativ ușor, prin schimbarea sau adăugarea unor elemente în codul CSS, nefiind nevoiți să lucrăm la fiecare pagină sau la fiecare element din pagină. [3]
CSS se ocupă în general cu aspectul și controlul grafic al elementelor din pagină, cum ar fi: textul, imaginile, fondul, culorile și așezarea acestora în cadrul ferestrei paginii.
CSS folosește stiluri, acestea înglobeaza, sub un anumit nume, atribute de formatare care se aplică asupra unui element individual din pagină, asupra unui grup de elemente sau la nivelul întregului document.
CSS functionează cu HTML, însă nu este HTML. El extinde funcționalitățile HTML, permițînd redefinirea etichetelor HTML existente.
Prin utilizarea CSS aspectul documentului pe ansamblu, sau a unui element individual din interiorul sau, poate fi controlat mult mai ușor. Stilurile pot fi aplicate asupra unui element, a unui document sau chiar asupra unui întreg site web.
Un dezavantaj ar fi că unele navigatoare nu sunt compatibile CSS, astfel că documentele HTML sunt afișate ca și cum CSS n-ar exista, dar cele mai cunoscute și utilizate browsere, cum ar fi: Mozilla Firefox, Internet Explorer, Opera, si altele, sunt compatibile CSS.[4]
Codurile CSS pot fi scrise în interiorul paginii sau într-un fisier extern cu extensia".css".
Codul CSS, ca formă generală, este alcătuit din: obiectul care va fi formatat. Proprietățile acestuia și atributele fiecarei proprietați.
Există trei tipuri principale de obiecte CSS: selector, clasă și identificator.
– Selectorul HTML se folosește pentru a redefini modul de afișare a conținutului etichetei HTML. Un selector HTML reprezintă partea etichetei HTML care indică navigatorului tipul de etichetă .[3]
Iată un exemplu:
h1 { font -family:"Arial"; font-size:15px; }
Aici selectorul este "h1".
Definirea unui selector HTML folosind CSS are ca rezultat redefinirea etichetei HTML. Selectorul și eticheta de și par identice, totuși nu sunt.
Clasa este un obiect care poate fi aplicat oricărei etichete HTML. O clasă trebue creată în interiorul etichetei HTML înainte de a fi definităîintr-un cod CSS. Crearea clasei în interiorul etichetei se face simplu, prin specificarea cuvantului class și numele clasei, ca în exemplu de mai jos:
<h1 class="nume_clasă"> Text </h1>
"nume_clasă" poate fi orice nume dorim. În interiorul codului CSS, clasa este definită prin adăugarea unui caracter punct (.) înaintea numelui clasei, ca în exemplu urmator:
nume_clasa { font-family:"Arial"; font-size:15px; }
Numele aceleași clase poate fi atribuit mai multor etichete HTML din aceeași pagină.
– Obiectele de tip identificator (ID) sunt asemănătoare cu clasele. Pot cum ar fi: Mozilla Firefox, Internet Explorer, Opera, si altele, sunt compatibile CSS.[4]
Codurile CSS pot fi scrise în interiorul paginii sau într-un fisier extern cu extensia".css".
Codul CSS, ca formă generală, este alcătuit din: obiectul care va fi formatat. Proprietățile acestuia și atributele fiecarei proprietați.
Există trei tipuri principale de obiecte CSS: selector, clasă și identificator.
– Selectorul HTML se folosește pentru a redefini modul de afișare a conținutului etichetei HTML. Un selector HTML reprezintă partea etichetei HTML care indică navigatorului tipul de etichetă .[3]
Iată un exemplu:
h1 { font -family:"Arial"; font-size:15px; }
Aici selectorul este "h1".
Definirea unui selector HTML folosind CSS are ca rezultat redefinirea etichetei HTML. Selectorul și eticheta de și par identice, totuși nu sunt.
Clasa este un obiect care poate fi aplicat oricărei etichete HTML. O clasă trebue creată în interiorul etichetei HTML înainte de a fi definităîintr-un cod CSS. Crearea clasei în interiorul etichetei se face simplu, prin specificarea cuvantului class și numele clasei, ca în exemplu de mai jos:
<h1 class="nume_clasă"> Text </h1>
"nume_clasă" poate fi orice nume dorim. În interiorul codului CSS, clasa este definită prin adăugarea unui caracter punct (.) înaintea numelui clasei, ca în exemplu urmator:
nume_clasa { font-family:"Arial"; font-size:15px; }
Numele aceleași clase poate fi atribuit mai multor etichete HTML din aceeași pagină.
– Obiectele de tip identificator (ID) sunt asemănătoare cu clasele. Pot fi aplicate oricărei etichete HTML, dar spre deosebire de clase, numele unui identificator trebue atribuit numai unei singure etichete HTML dintr-o pagină. Ca și clasa, identificatoru trebuie întîi creat în interiorul etichetei HTML. Modul de creare este simplu, prin specificarea cuvîntului id și numele clasei, ca în exemplu de mai jos:
<h1 id="nume_id"> Text </h1>
"nume_id", poate fi orice nume dorim. În interiorul codului CSS, identificatorul este definit prin adăugarea unui caracter diez (#) înaintea numelui, ca în exemplu următor:
#nume_id { font-family:"Arial"; font-size:15px; }
Obiectele CSS, indiferent de tipul lor, au în componență urmatoarele elemente:
Selectorii – identifică un obiect; pot fi selectori de etichete HTML, clase sau identificatori. [5]
Proprietățile – identifică o proprietate a obiectului; se referă în special la aspect.
Valorile – sunt atributele unei proprietăți; pot fi cuvinte cheie, valori numerice sau procentuale, tipul valorii depinzînd de proprietate.
Sintaxa generală a unei reguli CSS este următoarea:
selector {proprietate: valoare; }
Proprietățile și valorile constituie definiția regulii (obiectului) CSS. Acestea se regăsesc sub forma de perechi,despărțite de caracterul două puncte ”:”, fiecare pereche se termina cu un caracter punct și virgula ”;”.
Etichetele HTML nu sunt sensibile la diferența între majuscule și litere mici. Dar odată cu apariția limbajului XHTML, acesta face distincție dintre majuscule și minuscule, astfel că toate etichetele și toți selectorii trebuie scriși cu litere mici.
Valoarea ! important adaugată unei definiții atribuie maximum de prioritate în determinarea ordinii unei cascade.
Valoarea ! important trebuie plasată înaintea caracterului ’;’, ca în exempul următor:
selector { proprietate1: valoare1; proprietate2: valoare2 !important; … }
Există mai multe moduri de a aplica stilurile, astfel că ne putem afla în situația în care unei etichete să-i fie aplicate mai multe stiluri. Foile de stil din două sau mai multe surse, folosite simultan, pot cauza contradicții. De aceea există cîteva reguli care determină ordinea cascadei, acestea sunt: [3]
1. Regulile CSS scrise în interiorul paginii HTML, în cadrul etichetei "style" în secțiunea "head" au o prioritate mai mare decat cele scrise într-un fisier extern, iar regulile scrise în ținteriorul etichetelor au o prioritate mai mare decît cele din cadrul etichetei "style" din secțiunea "head".
2. Existența atributului !important – conferă prioritate maximă la afișare definiției în care este utilizat.
3. Sursa regulilor – există numeroase navigatoare care permit utilizatorului să-și definească propriile foi de stil. Totuși, foile de stil ale autorului le anulează pe cele ale vizitatorului dacă acestea din urmă nu au valoarea "!important".
4. Specificitate – cu cît o regulă dispune de mai mulți selectori HTML, de clasă și de identificator, cu atît prioritatea ei crește. Selectorii ID au valoarea 100, clasele au valoarea 10, iar selectorii HTML au valoarea 1.
5. Momentul apariției – cu cît un stil apare mai tîrziu, cu atît importanța lui este mai mare. Astfel, definițiile în linie au prioritatea cea mai mare și anulează toate stilurile precedente cu care intră în conflict.
Modelele de stiluri pot fi aplicate în mai multe moduri:
1.2.1. CSS Intern:- direct în eticheta HTML:
– Pentru adăugarea unui STYLE intern la un element se foloseste atributul style urmat de proprietăți și valori, folosind următoarea sintaxă:
<element style="proprietate:valoare; proprietate:valoare;"></element>
– Exemplu:
<h4 style="color:#ff1111;">Exemplu h4</h4>
În pagină va apărea:
Exemplu h4
1.2.2. În antetul (header-ul) fișierului:
– În acest caz se adaugă în secțiunea HEAD a documentului HTML următoarea sintaxă
<style type="text/css"> … </style>
Aceasta transmite informația browser-ului că sunt adăugate elemente de stil CSS.
– Această metodă este utilă cand se dorește folosirea acelorași stiluri pentru mai multe elemente din pagină astfel sunt scrise o singură dată și nu la fiecare element.
– Proprietățile și valorile de stil CSS se introduc în acest element STYLE, după cum putem vedea în exemplul următor:
<html>
<head>
<title>titlu
</title>
<style type="text/css">
<!– h2 {color:blue; text-decoration:underline;}–>
</style>
</head>
<body>
</body>
</html>
Conform acestui cod, toate textele "h2" din pagina vor avea culoarea albastra și vor fi subliniate.
Se folosește (opțional) "<!– … –>" pentru browserele care nu recunosc elementul "<style>" și astfel il ignoră.
1.2.3. Fișier CSS Extern:
– În extern proprietățile și valorile pentru diverse stiluri sunt specificate într-un fișier extern special, de obicei cu extensia "css" (pe care îl putem construi cu un editor simplu de texte gen Notepad).
– Folosirea fișierilor externe CSS au un avantaj major deoarece aceleași coduri de stil pot fi folosite de mai multe pagini din site, chiar tot site-ul, fiind scrise o singură dată. În plus ajută la micșorarea ca mărime (în bytes) a documentului HTML care astfel permite accesul mai rapid.
– În fișierul extern CSS se scriu direct elementele cu proprietățile și valorile dorite, NU se mai adauga eticheta "style".
Pentru a adăuga stilul CSS într-o pagină web, se adăugă în secțiunea HEAD a documentului HTML care va folosi acel fișier cu stiluri, (între <head> … </head>) următoarea comandă:
<link href="fisier.css" rel="stylesheet" type="text/css">
– unde la "href" se scrie calea și numele fișierului css folosit.
Configurarea blocurilor de text și crearea structurii paginii web folosind css cu ajutorul tag-urile <div></div> și <span></span> nu au efecte importante daca sunt folosite separate.
Tag-ul DIV crează secțiuni de blocuri în pagină, al căror formă și grafică pot fi manipulate pentru fiecare separat. Are doar un singur atribut HTML, align (pt. aliniere pe orizontală) care poate avea următoarele valori: left (stînga), right (dreapta), center (centru), justify (distanța textului față de margini egală).
– Tag-ul SPAN crează posibilitatea modificării separate a unei porțiunii dintr-un context, avînd posibilitatea de al folosi ca o "clasă" cu CSS. Singur nu are nici un efect vizual poropriu și nu folosește nici un atribut HTML special.
1.3. Java Script:
Pentru a însera JavaScript într-un document HTML deja existent, este necesară introducerea în fisier a etichetei <script> și </script>. Această etichetă necesită atributul "type", sau atributul "language" (acesta din urmă nu este acceptat în standardul XHTML) care va specifica browser-ului limbajul folosit pentru interpretarea codului inclus. [6]
În interiorul etichetei <script> … </script> se va înscrie codul JavaScript.
Pentru scrierea și executarea scripturilor JavaScript avem nevoie de un editor textual și un browser.
Atributul language (care însă nu este folosit în XHTML, ci doar în paginile web standard HTML) – va avea următoarea sintaxă:
language="JavaScript",
aceasta indică browser-ului ce limbaj este folosit. Atributul type – înlocuitorul lui "language" – va avea următoarea sintaxă:
type="text/javascript",
aceasta spune browser-ului ca scriptul este scris în format plaintext și limbajul JavaScript.
Putem, de asemenea, să introducem instrucțiunile JavaScript într-un alt fișier, extern, care va avea extensia .js, pentru editarea acestui fișier este nevoie la fel de un editor textual. Avantajul principal este posibilitatea utilizării aceluiași cod în mai multe pagini HTML și în cazul necesității unei modificări în codul JavaScript, modificăm doar datele dintr-un singur fișier (cel cu extensia ".js").[6]
În cazul în care codul JavaScript se află într-un fișier extern, eticheta <script> din pagina HTML va trebui sa conțină atributul "src" a cărui valoare determină locația fișierului în care se află codul JavaScript.
În fișierul extern cu extensia "js" nu trebuie să scriem eticheta "<script>", aici se scriu doar comenzile JavaScript.
Iată un exemplu de script JavaScript scris in interiorul unei pagini web (XHTML):
<html>
<head>
<title>
Cod JavaScript
</title>
</head>
<body>
<script type="text/javascript">
document.write("Textul care va fi afisat pe ecran");
</script>
</body>
</html>
Comanda document.write este folosită pentru a tipări ceva în pagină.
Pentru a încărca scriptul dintr-un fișier extern (de exemplu "script.js"), se va utiliza construcția:
<html>
<head>
<title>
Cod JavaScrip
t</title>
</head>
<body>
<script src="cod.js" type="text/javascript">
</script>
</body>
</html> [7]
Iar fișierul "cod.js" va conține : document.write("Textul care va fi afisat pe ecran").
Rezultatul afișat în pagină va fi același ca în exemplul anterior.
Unele browsere nu recunosc scripturile și le afișează în pagina web ca text. Pentru a evita acest lucru putem folosi eticheta HTML pentru comentarii <!– … //–> delimitînd cu aceasta instrucțiunile JavaScript, astfel evităm apariția codului scriptului în pagina web:
<script type="text/javascript">
<!–
Codul scriptului
//–>
</script>
1.3.1 Convenții de sintaxă [8]
Case-sensitive – se face diferența între literele mari și mici, astfel cuvinte precum "exemple, Exemple" vor fi tratate diferit;
Punct și virgulă (;) – Toate declarațiile trebuie să se termine cu un caracter "punct și virgulă" (;) (Exemplu" var1 = 3; var2 = 8;);
Spațiile libere – JavaScript ignoră spațiile libere, tab-urile și liniile libere care apar în instrucțiuni, acestea sunt utile pentru a face codul mai bine structurat și ușor de citit. Recunoaște doar spațiile care apar în șirurile de caractere. Exemplu: "var1 = 2 ;" este echivalent cu "var1=2;".
Ghilimelele – Ghilimelele simple ('') și duble ("") sunt folosite pentru a delimita șirurile de caractere (string). (Exemplu: "JavaScript" sau 'JavaScript').
Caractere speciale – cînd scriem scripturi, apare necesitatea de a folosi în cod sau în datele de ieșire, un caracter special sau o apăsare de tastă , cum ar fi tasta TAB , sau o linie nouă. Pentru aceasta folosim caracterul backslash "\" în fața unuia din codurile Escape, astfel :
\b – backspace;
\f – indică o pagină nouă;
\n – indică o linie noua;
\r – indică un retur de car;
\t – indică o apăsare a tastei TAB;
\\ – indică un caracter backslash;
\' – indică un apostrof (ghilimele simple);
\" – indică ghilimele duble.
Comentariile în interiorul codului sunt necesare cînd dorim să specificăm rolul anumitor funcții și variabile, pentru a înțelege ulterioar scriptul respectiv. Adăugarea unui comentariu, pe o singură linie, în interiorul codului putem începem scrierea acestuia cu succesiunea //:
// Comentariu
Dacă dorim să scriem comentarii pe mai multe rînduri, se folosește /* la începutul comentariului și */ la sfîrșitul acestuia ca în exemplul următor:
/* Comentarii rînd 1
…
comentariu pe mai multe rînduri
…
Ultimul rînd de comentarii */
Numele dat variabilelor și funcțiilor trebuie sa respecte următoarele reguli:
primul caracter trebuie să fie o literă, un caracter de subliniere (_) sau semnul $;
primul caracter nu poate fi un număr;
numele nu trebuie să conțină spații libere;
nu se folosesc cuvinte rezervate, care fac parte din limbajul JavaScript (cum sunt "array", "status", "alert", etc), deoarece interpretorul programului nu va face diferența între aceste nume și comenzile JavaScript cu aceleași nume.
1.3.2. Variabile și tipuri de date [6]
În JavaScript, se poate crea o variabilă și să-i atribuim o valoare prin doua metode:
Cu declarația var:
var name = valoare
Fără declarația var:
name = valoare
Unde 'name' este numele variabilei iar 'valoare' este valoarea pe care i-o atribuim.
Tipuri de variabile – spre deosebire de alte limbaje (cum sunt Pascal sau C), JavaScript nu are tipuri fixe de date, adică permite schimbarea tipului unei variabile în cadrul scriptului, acesta poate recunoaște singur cînd datele sunt de tip "șir", numerice sau alt tip.
De exemplu:
var x = "xyz";
x = 8;
Folosind codul de mai sus observăm că valorile de tip 'șir' (formate din litere) se scriu între ghilimele " ", iar cele 'numerice' pot fi scrise și fără ghilimele.
1.3.3. Durata de viață a unei variabile
O variabilă scrisă în cadrul unei funcții este una locală, valoarea ei fiind recunoscută numai în cadrul acelei funcții, cînd se iese din funcție variabila este distrusă. Astfel, o altă funcție poate declara și folosi o variabilă cu același nume, JS (Java Script) tratează cele două variabile ca fiind diferite.
Se pot declara variabile, în afara oricărei funcții, care să fie folosite de toate funcțiile, acestea se numesc globale și sunt valabile de la încărcarea paginii web pînă la închidere, în orice script JS.
1.3.4.Operatori [6]
Pentru a lucra cu datele introduse într-un script și a manipula valorile variabilelor se folosesc operatori.
Operatorii sunt simboluri și identificatori care determină felul în care sunt modificate datele și modul în care este evaluată o combinație de expresii și variabile.
În JavaScript există operatori:
operatori binari – care necesită existența a doi operanzi
în expresie;
operatori unari – care au nevoie doar de un operand. Operatori sunt de mai multe tipuri:
Operatori aritmetici;
Operatori de atribuire;
Operatori de comparare;
Operatori logici sau booleeni;
Operatori pentru șiruri;
Operatori typeof;
Operator condițional „?”;
Operatori pentru funcții;
Operatori pentru structuri de date.
1.3.5. Operatori aritmetici [6]
Putem spune că operatorii aritmetici sunt principalii operatori folosiți cu numere, aceștia efectuează operațiile aritmetice cunoscute: adunare (+), scadere (-), înmulțire (*), impărțire (/).
Pe lîngă acești patru operatori, în JavaScript sunt folosiți încă trei operatori aritmetici:
Modulul (%) – acesta determină restul împărțirii a două numere Exemplu: 8%3 =2 10%2=0 .
Incrementare (++) – acest operator crește valoarea cu o unitate.
De exemplu, dacă avem variabila 'i', putem folosi operatorul de incrementare astfel: i++ care este echivalent cu i=i+1. Exemplu: x = 7; x++; rezultatul va fi x = 8.
Decrementare (–) – acest operator scade valoarea cu o unitate.
Cei doi operatori de incrementare (++) respectiv decrementare (- -) pot fi folosiți atît ca prefix (în fața variabilei) ++i respectiv –i cît și ca sufix (după numele variabilei) i++ respectiv i–. Valoarea obținută este aceeași, însă ordinea operației și rezultatul atribuirii valorii sunt diferite.
Folosirea operatorului ca prefix determină în primul rînd modificarea valorii și apoi are loc atribuirea acesteia. În cazul folosirii operatorului ca sufix, întîi este atribuită valoarea variabilei și apoi variabila este incrementată (sau decrementată).
1.3.6. Operatori de comparare [8]
Expresiile care folosesc acești operatori pun o întrebare care compară două valori. Răspunsul poate fi TRUE sau FALSE. Un operator de comparație des folosit este operatorul de identitate (egalitate), reprezentat prin două semne egal "==". Este diferit desimplul "=", operatorul '==' compară două valori determinînd dacă acestea sunt identice, adică egale atît ca valoare cît și ca tip. Operatori de comparație sunt prezentați în tabelul următor:
1.3.7. Operatori logici (booleeni) [7]
Similar cu operatori de comparație, operatorii logici compară două expresii și returnează valorile TRUE sau FALSE. Acești operatori sunt:
&& – și (and) – compară două expresii și returnează TRUE dacă ambele sunt adevărate, în caz contrar returnează FALSE.
Exemplu:
x = 5
y = 8
x<7 && y>3 (returnează TRUE)
|| – sau (or) – compara doua expresii și returnează TRUE dacă cel puțin una din ele este adevărată, în caz contrar returnează FALSE.
Exemplu:
x = 5
y = 8
x>7 || y<3 (returnează FALSE)
! – not – este operator unar, folosește o singură expresie și returnează TRUE daca expresia este falsă, iar daca expresia este adevărată returnează FALSE.
Exemplu:
x = 5
y = 8
!(x==y) (returneaza TRUE deoarece 'x' nu este egal cu'y')
1.3.8. Operatori pentru structuri de date (obiecte) [6]
Acești operatori sunt necesari pentru lucru cu structuri de date, sau obiecte. În JavaScript obiectele sunt folosite la gruparea informațiilor pentru a servi unui scop specific.
1. Un operator care trebuie cunoscut bine este punctul "." , numit operator membrul unei structuri. Acesta permite să ne referim la un membru (variabilă ,funcție sau obiect) care aparține obiectului specificat.
Sintaxa este următoarea:
numeObiect.nume_Variabila
numeObiect.nume_Functie()
numeObiect.alt_Obiect
Această modalitate de referire la o informație, numită notație cu punct, returnează valoarea variabilei, funcției sau obiectului aflat cel mai în dreapta.
2. Operatorul pentru element din matrice, numit și operator indice al tabloului, se folosește pentru a accesa o dată specifică, o cheie, dintr-un tablou de date. Acesta este simbolizat printr-o pereche de paranteze pătrate [ ] , și permite să referirea la orice membru al unui tablou. Tablourile sunt obiecte JavaScript. Sintaxa de folosire a operatorului pentru tablou este :
nume_tablou[cheie]
1.3.9. Operatorul conditional "?"
JavaScript conține și un operator condițional ” ? : ” care atribuie o valoare unei variabile pe baza unei condiții.
Sintaxa de folosire a acestui operator este următoarea:
variabila = (conditie)?val1:val2
Modul de operare este următorul – se evaluează condiția, dacă este adevărata atunci variabila ia valoarea 'val1', altfel ia valoarea 'val2'.
Exemplu:
<script type="text/javascript">
vizitator= "barbat"
mesaj = (vizitator=="barbat")?"Domnule":"Doamna"
document.write(mesaj);
</script>
Dacă variabila "vizitator" este egală cu 'barbat', variabila "mesaj" primește valoarea 'Domnule", altfel variabila mesaj primește valoarea "Doamnă".
1.3.10. Ordinea operatorilor [6]
Cînd în expresii se folosesc mai mulți operatori, JavaScript ține cont de ordinea (importanța) predefinită a fiecărui operator. Precum în aritmetică, într-o ecuație cu adunare și înmulțire ( 2+3)*4 , dacă nu sunt paranteze, se execută întîi înmulțirea, aceasta avînd prioritate față de adunare. La fel e și cu operatorii în programare. Dacă apar mai mulți operatori cu aceeași prioritate, JavaScript îi va evalua de la stînga spre dreapta.
1.3.11. Funcții [8]
Funcțiile se utilizează pentru divizarea mai multor sarcini pe care trebuie să le execute un script. O funcție poate conține mai multe instrucțiuni și comenzi care ulterior pot fi utilizate ușor și repetat prin apelarea funcției care le conține.
Dacă un script are un volum mare, utilizînd funcțiile codul poate fi divizat în părți mai mici pe care le putem utiliza separat acolo unde este nevoie.
În JavaScript există două tipuri de funcții:
predefinite – cum sunt de exemplu: "parseInt(string)", "parseFloat(string)", …
și funcții utilizator:
– care returnează o valoare
– care nu returnează o valoare
1.3.12. Crearea (definirea) funcțiilor:
Pentru crearea unei funcții se folosește cuvîntul cheie function urmat de numele funcției și paranteze rotunde () în care putem adăuga parametrii funcției (separați prin virgulă dacă sunt mai mulți) și între paranteze figurate {} corpul funcției care conține codul care trebuie executat.
Forma generală a unei funcții este următoarea:
function nume_functie(argument1, argument, …)
{
codul care va fi executat
}
Argumentele sunt variabile folosite de funcție, valoarea cărora este preluată la apelarea funcției. Atributele nu sunt obligatorii, o funcție poate fi definită și fără argumente, dar se păstrează parantezele rotunde, astfel sintaxa unei funcții fără argumente este următoarea:
function nume_functie()
{
codul care va fi executat
}
1.3.13. Instrucțiunea return [8]
O funcție care returnează un rezultat folosește pentru aceasta instrucțiunea return. Aceasta specifică valoarea pe care o returnează funcția cînd este apelată. Iată un exemplu în care se înțelege modul de aplicare a instrucțiunii return:
function suma(x, y)
{
z = x+y; return z;
}
"suma" reprezintă numele funcției (regulile de generare a numelui sunt aceleași ca și la variabile), "x, y" reprezintă argumentele funcției a căror valoare este dată cînd funcția este apelată. Între acolade avem codul care trebuie executat și care, prin instrucțiunea return va returna valoarea lui "z" care reprezintă suma lui "x" și "y". Astfel valoarea returnată de funcția "suma()" va fi valoarea pe care o are "z".
1.3.14. Apelarea funcțiilor [6]
După ce am creat o funcție, pentru a fi folosită, aceasta trebuie apelată. O funcție care conține argumente se apelează în felul următor:
nume_functie(argument1, argument, …)
O funcție fără argumente se apelează în felul următor:
nume_functie()
Observați că la apelul funcției nu se mai folosește cuvîntul function și nici acoladele. În locul în care am apelat astfel o funcție va fi executat corpul acesteia.
1.3.14. Fereastra Alert [7]
Crearea ferestrelor alert se face prin apelarea codului:
window.alert("mesaj")
unde "mesaj" este textul care va apare în fereastra alert. Următorul exemplu deschide o fereastra cu mesajul "Bine ai venit".
<script type="text/javascript">
<!—
window.alert("Bine ai venit");
//–>
</script>
În browser va apărea o fereastră ca în figura următoare:
1.3.15. Fereastra Prompt. [7]
Fereastra Prompt se creează prin executarea codului:
window.prompt("mesaj", "default")
unde "mesaj" este un text care va apărea în fereastră, deasupra unei căsuțe de text input; iar "default" este textul care va apare în căsuța input.
Următorul exemplu deschide o fereastră "Prompt".
<script type="text/javascript">
<!—
window.prompt("Cum va numiti?", "Nume");
//–>
</script>
În browser va apărea o fereastră ca în imaginea următoare:
Textul pe care utilizatorul îl adaugă în cîmpul de editare a fereastrei prompt poate fi preluat într-o variabilă și folosit apoi în script. Iată un exemplu în care atribuim deschiderea ferestrei Prompt variabilei "nume", care va prelua șirul adăugat în caseta de text, apoi valoarea acestei variabile o introducem în mesajul unei ferestre Alert:
<script type="text/javascript">
<!—
var nume = window.prompt("Scrieti numele", "Nume");
alert("Salut "+nume+"\n Bine ai venit.");
//–>
</script>
După ce utilizatorul scrie numele în fereastra Prompt și apasă OK se va deschide o fereastră Alert care conține în mesaj numele adăugat de utilizator.
Am folosit "\n" pentru a adăuga o linie nouă, după "nume", în textul care apare în fereastra Alert.
1.3.15. Fereastra Confirm. [7]
Fereastra de confirmare se creează prin executarea codului:
window.confirm("intrebare")
În fereastra de confirmare va apărea textul "intrebare" și două butoane "OK" și "Cancel".
Aceasta fereastră este folosită pentru a fi executată o comandă cînd este apăsat butonul "OK" (returnează TRUE) și altă comandă cînd este apăsat butonul "Cancel" (returnează FALSE).
Următorul exemplu deschide o fereastră "Confirm" în care apare întrebarea "Rezultatul lui 1+1 este 2?". Dacă este apăsat butonul "OK" apare o fereastră Alert cu mesajul "Corect", iar dacă este apăsat butonul "Cancel" apare o fereastră Alert cu mesajul "Incorect":
<script type="text/javascript">
<!—
intrebare = window.confirm("Rezultatul lui 1+1 este 2?");
if (intrebare) alert("Corect");
else alert("Incorect");
//–>
</script>
În browser va apărea o fereastră ca în imaginea următoare:
1.4. Limbajul PHP.
Limbajul PHP a fost creat în anul 1994 de către Rasmus Lerdorf, care încerca sa-și personalizeze propria pagina Web; din acest motiv limbajul a fost numit inițial PHP adică: Personal Home Page (pagina de bază personală). Ulterior limbajul a fost perfecționat, utilitatea și caracteristicile sale s-au dezvoltat treptat, ajungînd să aibă semnificația Hypertext Preprocesor (PHP). Preprocesarea constă în aceea că datele sunt interpretate (preprocesate) de către serverul Web înainte ca acesta să genereze cod HTML.
PHP este una dintre cele mai interesante tehnologii pentru site-uri și programare web, îmbină caracteristici dintre cele mai complexe cu simplitatea în utilizare. PHP a devenit un instrument de frunte pentru dezvoltarea aplicațiilor Web. Spre deosebire de alte instrumente pentru aplicații 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.
Ca și alte limbaje de scripting pentru Web, PHP vă permite să furnizati 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 site Web; de regulă, vizitatorii nu vor mai reven la o pagină Web care conține aceleași informații ca și cele prezentate la ultima vizită. Pe de altă parte, siturile Web frecvent actualizate pot atrage cantități enorme de trafic.
Spre deosebire de limbajele de scripting, precum JavaScript, PHP rulează pe serverul Web, nu în navigatorulul 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. În plus, putem folosi limbajul PHP pentru a generera cod Java Script.
Secvențele de cod PHP pot fi incluse într-un fisier HTML; ulterior serverul Web va identifica această secvență de cod , o va procesa cod HTML iar la final va înlocui secvența de cod PHP cu codul HTML.
Printre caracteristicile cele mai importante ale limbajului enumerăm:
– simplicitate : acest limbaj este simplu de folosit, fiind accesibil și ne-programatorilor. Datorită acestui fapt el a devenit cel mai popular limbaj de script pentru generarea de pagini HTML dinamice.
– ușor de folosit : limbajul are o sintaxă asemănătoare limbajului C, care este foarte popular în rîndul programatorilor. De aceea programatorii care au cunosștințe de C sau Perl vor face foarte rapid trecerea spre PHP. Pe de altă parte anumite aspecte cum ar fi: declararea si folosirea variabilelor este mult simplificată în PHP, spre deosebire de C++ sau alte limbaje de nivel înalt.
– eficiența : specificațiile limbajului includ folosirea tehnicilor de POO (Programare orientata pe obiecte), iar acest lucru contribuie la mărirea productivității: un programator PHP poate folosi module scrise de un alt programator fără să fie nevoit să cunoască detalii specifice de implementare a codului.
– cross-platform : există implementări ale limbajului pe mai multe sisteme de operare, cele mai populare fiind cele de pe sistemele Linux și Windows. În acest caz dacă scriem cod PHP care rulează pe un sistem Linux, ulterior vom putea folosi acest cod pe un server care rulează Windows și viceversa.
– gratis : PHP reprezintă un program Open Source, oricine poate folosi acest limbaj fără a fi nevoit să plătească ceva. De asemenea utilizatorii au acces la sursele PHP (scrise în limbajul C).[9]
1.4.1. Scrierea programelor PHP.
Programele PHP sunt o mixtură de trei elemente : text, cod HTML și script PHP.
Pentru ca paginile ce conțin script PHP să poată fi procesate de modulul PHP implementat în Apache sau alt server de pagini Web este necesar ca paginile sa aibă acea extensie pe care ați specificat-o la încarcarea modulului în serverul de web (standard, extensia implicită este .php).
Fiecare program PHP include doua linii speciale, care indică serverului PHP ca textul cuprins între cele două linii este alcătuit din instrucțiuni PHP. Practic, aceste linii pot fi asimilate copertelor unei cărti, care păstrează unitatea programului PHP. Între aceste două linii vor fi scrise instrucțiunile PHP. Pentru a începe a scrie un program PHP, se deschide editorul de texte ți introduce următoarele doua linii :
<?php
?>
Apoi, se salvează scriptul elementar sub formă de fișier text, cu un nume care respectă urmatoarele reguli:
Este recomandat ca numele fișierului să fie alcătuit numai din caractere minuscule, cifre ți liniuțe. Utilizarea de spatii, majuscule și alte caractere ar putea crea probleme pe sisteme de operare diferite. Extensia numelui fișierelor trebuie să fie .php.
1.4.2. Funcționarea codului php
Fișierul test.php este trimis modulului de php încarcat în serverul de web. Modulul prelucrează NUMAI ce se află între tagurile <?php și ?> restul fiind trimis către serverul web fără a fi prelucrat sau interpretat. Rezultatul prelucrării este și el trimis serverului de web care trimite mai departe către client (browser).
Comanda echo este folosită pentru trimiterea către serverul de web a textului înscris între cele două ghilimele.
Fiecare linie de cod PHP (dupa terminare) trebuie închisă de semnul punct- și-virgulă (;). [10]
1.4.3. Prezentarea limbajului PHP.
Variabila reprezintă un identificator la o locație de memorie și se folosește pentru stocarea, prelucrarea și ștergerea datelor.
Variabilele în PHP sunt apelate folosind prefixul ‘$’.
Dupa ce s-a inițializat o variabilă atribuindu-i o valoare o putem folosi.
Ex: print $nume;
Rezultatul afisat va fi:” Gutu Veceslav”
1.4.4. Limitari și reguli ale variabilelor
În multe limbaje de programare există o limitare a numărului de caractere din numele variabilei (între 255-1000 caractere). În PHP nu există o astfel de limitari. O regulă a variabilelor este că ele trebuie să înceapă cu o literă sau cu un underscore (dupa prefixul ‘$’).
O altă regulă este ca în corpul numelui variabilei sunt acceptate litere, numere și underscore, simboluri precum +,-,* și & nefiind admise.
Variabilele în PHP sunt case-sensitive, adică $student este diferit de $Student. [9]
1.4.5.Tipuri de date în PHP
PHP cuprinde mai multe tipuri de variabile, cele mai importante fiind valorile de tip text și numeric.
string (text)
integer (numeric)
double (numeric)
array
object
Tipurile de date nu sunt stabilite de programator; PHP decide asupra lor atunci când interpretează codul.
Tipul de data string – tot ce este cuprins între ghilimele la inițializare se consideră string (chiar și numerele).
Ex:$nume=”Vasile”;
$nr=”15”;
Date de tip numeric – în PHP există 2 tipuri de date numerice : integer și double.
Integer sunt numere fără virgulă
double reprezintă numere cu zecimale.
Array – tipul de date array reprezintă matricele
Object – reprezintă datele de tip obiect
Constante – o variabilă își poate modifica conținutul de mai multe ori pe parcursul unui program. Dacă dorim ca o locație de memorie să nu poată fi schimbată pe parcursul unui program putem folosi instrucțiunea define.
Ex: define(“PI”,”3.1416”);
Constantele sunt scrise prin convenție cu MAJUSCULE, iar la afișare trebuie să nu se folosească semnul $. [5]
1.4. Bazei de Date MySQL.
Există mai multe opțiuni de a alege sisteme gratuite sau necostisitoare de gestiune a bazelor de date: MySQL, mSQL, Postgres, unul din motoarele gratuite (dar fără suport) furnizate de producătorii comerciali și așa mai departe. Pentru compararea MySQL cu alte sisteme de baze de date, se are evidențiază ceea ce este cel mai important pentru scopul final : performanță, suport, caracteristici, condiții și restricții de licențiere, preț. Date fiind aceste considerații, MySQL are de oferit numeroase caracteristici atractive: [12]
1.4.1. Viteză. Programatorii pretind că MySQL este cel mai rapid sistem de baze de date pe care îl puteți găsi. Puteți verifica această afirmație vizitând http://www.mysql.com/benchmark.html , o pagină de comparație a performanțelor.
1.4.2. Ușurință în utilizare. MySQL este un sistem de baze de date cu performanțe ridicate, dar relativ simplu, a cărui configurare și administrare sunt mult mai simple decît în cazul sistemelor mai mari. [12]
1.4.3.Cost zero. MySQL este gratuit pentru majoritatea utilizărilor interne. MySQL nu este un produs Open Source, dar, în general, poate fi folosit gratuit. Trebuie să consultați manualul de referință MySQL pentru detalii privind licența, dar principiile de bază sunt următoarele:
Programele client și biblioteca de programare a clienților sunt gratuite, pe toate platformele.
Pentru UNIX și alte platforme non-Windows, serverul MySQL poate fi folosit gratuit, cu excepția situațiilor când doriți să vindeți serverul sau alte programe sau servicii care impun utilizarea acestuia, în această situație, trebuie să obțineți licență pentru server. În cazul că obțineți un profit din MySQL, este normal ca dezvoltatorii sistemului să primească o parte din acesta.
Versiunea Windows a serverului MySQL impune obținerea unei licențe.
Versiunile mai vechi de MySQL sunt disponibile în condițiile licenței publice GNU (GPL) și pot fi folosite în orice scopuri, fără nici o plată. MySQL 3.20.32a este disponibil în condițiile GPL. [13]
1.4.4.Suport pentru limbaje de interogare. MySQL înțelege SQL (Structured Query Language – limbaj de interogare structurat), limbajul preferat al tuturor sistemelor moderne de baze de date. De asemenea, puteți avea acces la MySQL folosind aplicații care acceptă ODBC (Open Database Connectivity), un protocol de comunicație cu bazele de date creat de Microsoft. [12]
1.4.5.La server se pot conecta mai mulți clienți simultan. Clienții pot folosi mai multe baze de date simultan. Puteți obține acces la MySQL în mod interactiv, folosind numeroase interfețe care vă permit să introduceți interogări și să vizualizați rezultate: clienți în linie de comandă, browsere Web sau clienți X Window System. De asemenea, este disponibilă o varietate de interfețe de programare pentru limbaje precum C, Perl, Java, PHP și Python. Există o opțiunea de a folosi programe client preambalate sau de a vă scrie propriile programe client pentru aplicații personalizate. [13]
1.4.6.Conectivitate și securitate. MySQL poate fi folosit integral în rețele, iar bazele de date sunt accesibile de oriunde din Internet, deci vă puteți partaja datele cu oricine și oriunde. Dar MySQL are controlul accesului, astfel încât persoanele care nu au dreptul să vă citească datele nu vor avea această posibilitate.
1.4.7.Portabilitate. MySQL rulează pe numeroase varietăți de UNIX, precum și pe alte sisteme non-UNIX, ca Windows și OS/2. MySQL rulează pe echipamente de la calculatoare de birou la servere cu performanțe ridicate.
1.4.8.Distribuție liberă. MySQL este ușor de obținut; pentru aceasta, folosim browserul Web. Dacă nu înțelegeți funcționarea unei componente sau sunteți curios cu privire la un algoritm, vă puteți procura codul sursă si îl puteți examina. Dacă nu vă place modul de funcționare a unei componente, îl puteți modifica.
Aplicația software care găzduiește o bază de date se numește "sistem de gestiune a bazelor de date" (SGBD). Există multe sisteme de gestiune a bazelor de date, printre cele mai populare asemenea sisteme se enumeră: DB2 , Interbase , MySQL , Oracle , Postgresql , SQL Server , Sybase .
MySQL este cel mai popular sistem de gestiune a bazelor de date destinat utilizării cu PHP, în mare măsură deoarece este gratuit. Totuși, prin intermediul PHP este posibil accesul la aproape orice SGBD modern.
Bazele de date relaționale înțeleg SQL (Structured Query Language), un limbaj relativ simplu, folosit pentru solicitarea datelor. În ciuda simplității sale, SQL este un limbaj foarte puternic, care poate obține accesul la date stocate în mai multe tabele, poate filtra datele dorite și poate sorta, rezuma și afisa rezultatele. [12]
În general, bazele de date relaționale își stochează datele într-un singur fisier sau catalog. Această caracteristică de organizare facilitează administrarea datelor, deoarece executarea copiei de siguranță, respectiv restaurarea unui singur fișier sau catalog se realizează mai ușor. Sistemele de gestiune a bazelor de date relaționale necesită mai multe cicluri de procesor pentru a satisface o cerere de date decît cele necesare pentru accesul la un fisier normal, dar oferă protecție sporită a datelor, iar pentru accesul la distanța ușurează traficul deoarece majoritatea operatiilor sunt efectuate de programul SQL, astfel singurele date transmise în retea ar fi rezultatul cerut. Cînd creați un tabel într-o baza de date, este important să țineți cont de "cheia primară" și să vă bazați pe aceasta. Coloanele dintr-un tabel trebuie să se bazeze pe cheia primară în totalitatea sa.
O altă operație importantă este specificarea unui tip de date pentru fiecare coloană. Majoritatea bazelor de date relaționale acceptă urmatoarele tipuri de date generale:
Caracter;
Întreg;
Zecimal;
Data si ora;
Binar.
La început, o bază de date nu conține tabele. Pentru a crea o bază de date și apoi un table folosim un sub-limbaj SQL special, cunoscut sub numele de Data Definition Language (DDL). Putem emite comenzi DDL și alte comenzi SQL prin intermediul unui interpretor SQL sau prin intermediul PHP. Pentru început va fi prezentat modul de emitere a comenzilor SQL folosind un interpretor SQL.Ca regulă, după scrierea comenzilor, la sfîrșit trebue să fie caracterul "punct si virgula" (;) .
Pentru a crea o bază de date, folosim următoarea comandă:
CREATE DATABASE nume_db;
Unde "nume_db" este numele bazei de date care va fi creată. Înainte de a crea un tabel sau a lucra cu alte comenzi într-o bază de date, trebuie să întram în baza de date existentă, acest lucru se face folosind comanda:
USE nume_db;
Unde "nume_db" este numele bazei de date. Cu aceeași comandă "USE nume_db" se schimbă și baza de date în care vrem să lucrăm. Pentru a crea un tabel într-o bază de date, emitem comanda "CREATE TABLE", care are urmatoarea formă:
CREATE TABLE tabel (coloana tip, coloana tip, …);
Unde "tabel" este numele tabelului, "coloana" este numele unei coloane, "tip" este tipul datelor incluse în coloană, se poate specifica un număr nedefinit de coloane. De exemplu, comanda urmatoare creează un tabel numit "carte", care conține coloanele "carteid", "titlu" și "pret": CREATE
TABLE carte (carteid CHAR(10), titlu VARCHAR(255), pret decimal(5,2));
În afara tipului de date, între paranteze, se specifica și alte atribute opționale ale unei coloane:
NOT NULL – Fiecare rînd trebuie să conțina o valoare a coloanei asociate; valorile nule nu sunt permise.
DEFAULT valoare – Daca nu este data o valoare a coloanei asociate, se va presupune valoarea specificata.
AUTO INCREMENT – MySQL va repartiza în mod automat un număr de serie ca valoare a coloanei asociate.
PRIMARY KEY – Coloana asociată este cheia primară a tabelului care o conține;
Ștergerea unui tabel sau a unei coloane este un act irevocabil, datele fiind definitiv șterse.
Pentru a șterge un tabel, scrieți următoarea comandă:
DROP TABLE tabel;
Unde "tabel" este numele tabelului care va fi șters. După crearea unui tabel, îl putem modifica prin emiterea unei comenzi "ALTER TABLE", care are mai multe forme. Următoarea formă a comenzii vă permite să stergeți o coloană din tabel:
ALTER TABLE tabel DROP coloana;
Unde "tabel" este numele tabelului care va fi modificat, iar "coloana" este numele coloanei care va fi ștearsă. O altă formă a comenzii vă permite să adaugați o noua coloană în tabel:
ALTER TABLE tabel ADD coloana tip [optiuni];
Unde "tabel" este numele tabelului care va fi modificat, "coloana" este numele coloanei care va fi adaugată, "tip" este tipul noii coloane, iar "[optiuni]" constituie toate opțiunile dorite, precum PRIMARY KEY. De exemplu, pentru a adăuga coloana "pretnou" la tabelul "carte", scrieți comanda:
ALTER TABLE carte ADD pretnou DECIMAL(5,2) DEFAULT 50.00;
Pentru a vedea toate bazele de date create în MySQL, folosiți următoarea comandă:
SHOW DATABASES;
Pentru a vedea toate tabelele dintr-o bază de date din MySQL, folosiți următoarea comandă:
SHOW TABLES;
Cea mai simpla interogare raporteaza toate coloanele din toate rîndurile unui tabel. Interogarea are urmatoarea forma:
SELECT * FROM tabel;
Unde "tabel" este numele tabelului la care se va obține accesul.
Această comandă va afișa un tabel cu fiecare rînd pe o linie separată. Datele de ieșire includ numele coloanelor și linii care separă coloanele.
Daca doriti sa selectati numai anumite coloane sau sa raportati coloanele într-o anumita ordine, puteti folosi urmatoarea forma a comenzii "SELECT":
SELECT coloana1, coloana2 FROM tabel;
Unde "tabel" este numele tabelului, iar "coloana1" si "coloana2" sunt coloanele la care se va obtine accesul și al căror conținut va fi afișat.
Putem specifica mai multe coloane, separate prin virgulă. Dacă dorim să fie selectate numai acele rînduri care satisfac un anumit criteriu, clauza "WHERE" permite să specificarea condiției; rîndurile care nu satisfac condiția nu sunt raportate.
De exemplu: interogare care raporteaza un singur rînd:
SELECT titlu, pret FROM carte WHERE carteid=1;
Forma condițiilor folosite în sub-limbajul DML al limbajului SQL este similară cu aceea a condițiilor PHP. Putem folosi oricare din următorii operatori relaționali:
= Egalitate;
<> Inegalitate;
!= Inegalitate, diferit de;
< Mai mic decat;
> Mai mare decat;
<= Mai mic sau egal cu;
=> Mai mare sau egal cu.
Cînd unei coloane nu i-a fost repartizată nici o valoare, SQL îi atribuie valoarea speciala NULL. De asemenea, programatorii pot atribui în mod explicit valoarea NULL unei coloane.
Comparațiile obișnuite cu valori NULL, care folosesc operatorii de (in) egalitate, vor returna un rezultat fals. Totuși, putem folosi operatorul special "<=>" care le compară ținînd cont de valoarea NULL. Dacă folosim acest operator pentru a compara doua valori NULL, se obține un rezultat adevărat.
Sub-limbajul SQL, Data Manipulation Language, include comenzi care vă permite să inserați rînduri noi într-un tabel, să actualizați una sau mai multe coloane ale rîndurilor existente, respectiv să ștergeți rînduri dintr-un tabel. Pentru a insera un nou rînd într-un tabel, folosim comanda "INSERT", care are următoarea formă:
INSERT INTO table VALUES (value1, value2);
Unde "table" este numele tabelului la care se va adăuga rîndul. "value1" este valoarea pentru prima coloană din tabel, iar "value2" este valoarea celei de-a doua coloane din tabel. Se pot folosi mai mult sau mai putin de două valori; numărul acestora ar trebui să fie egal cu acela al coloanelor din tabel.
O coloană poate primi și valoarea "NULL", cu excepția situațiilor cînd definiția coloanei nu permite. O formă mai bună (și recomandată) a comenzii INSERT specifică numele coloanelor cărora le sunt atribuite valorile:
INSERT INTO tabel (column1, column2) VALUES (value1, value2);
Unde coloana denumită "column1" primește valoarea "value1", iar coloana denumită "column2" primește valoarea "value2". Pot fi specificate mai mult sau mai putin de două coloane și valori. Numărul coloanelor specificate trebuie să fie egal cu numărul valorilor specificate.
Coloanele care nu sunt denumite în comanda "INSERT" și care nu au o valoare prestabilită (DEFAULT) primesc valoarea NULL, cu excepția situațiilor cînd valoarea respectivă nu este permisă (în acest caz, comanda INSERT eșuează).
Pentru a adăuga mai multe rînduri într-un tabel, într-o singură inserare, putem folosi următoarea formă a comenzii INSERT:
INSERT INTO tabel (coloana1, coloana2) VALUES (valoare1, valoare2), (valoare3, valoare4), (valoare5, valoare6);
Pentru a modifica valoarea unui rînd sau mai multor rînduri existente într-un tabel, folosiți o comandă "UPDATE", care are următoarea formă:
UPDATE table SET column1=value1, column2=value2 WHERE conditie;
Unde "table" este numele tabelului ale cărui rînduri urmează să fie modificate, "column1" este numele primei coloane care urmează a fi modificată, "value1" este valoarea care va fi repartizată în "column1", "column2" este numele celei de-a doua coloane care urmează a fi modificată, "valoare2" este valoarea care va fi repartizată în "column2", iar "conditie" identifică rîndul sau rîndurile care urmează a fi actualizate, după o anumită condiție. Poate fi actualizat un numar mai mare sau mai mic de coloane. Daca se doreste ca toate randurile coloanei sa fie actualizate clauza "WHERE" poate fi omisa, pentru a șterge un rînd dintr-un tabel folosim comanda "DELETE", care are urmatoarea formă:
DELETE FROM tabel WHERE conditie;
Daca se vrea a fi sterse toate rîndurile tabelului, clauza WHERE poate fi omisa. [14]
1.4.9.Conectarea la serverul MySQL.
Pentru a utiliza o bază de date MySQL, avem nevoie de o conexiune la serverul de baze de date. Această conexiune va fi utilizată ca punct de access pentru comenzi mysql.
Pentru a vă conecta la un server MySQL, utilizați funcția mysql_connect(), a cărei sintaxă este următoarea: mysql_connect(nume_gazda, nume_utilizator, parola).
Unde "nume_gazda" este numele gazdei, serverul pe care rulează serviciul MySQL, "nume_utilizator" este numele utilizatorului care se conectează la serverul MySQL, iar "parola" este parola MySQL asociată utilizatorului.În cazul în care serverul MySQL rulează pe calculatorul personal, parametrul "nume gazda" este în general "localhost". În alte cazuri va trebui specificată adresa computerului pe care rulează serverul MySQL. În caz de eșec funcția returnează “FALSE” , în caz contrar returneaza o valoare denumita identificator de legătură, care servește ca instrument de pentru a manipula accesul la serverul MySQL. Pentru terminara unei conexiuni la serverul MySQL se folosește instrucțiunea:
mysql_close();.
Această funcție închide conexiunea curentă. În caz de reușită funcția returnează “TRUE”; în caz contrar returnează “FALSE”. [16]
Invocarea functiei mysql_close() nu este necesară deoarece PHP închide automat conexiunile deschise cu bazele de date atunci cînd un script își încheie execuția.
1.4.10.Protecții la adăugarea datelor într-o bază de date.
Cînd adăugăm date într-un tabel MySQL (cu INSERT sau UPDATE) care sunt preluate dintr-un formular HTML sau prin adresa URL, pe care le preluăm prin "$_POST" sau "$_GET", înainte de a le adăuga în baza de date este indicat să le "prelucrăm", să ne asigurăm că nu vor fi introduse date care pot fi folosite pentru atacuri gen "SQL injection". Pentru aceasta putem folosi unele din următoarele filtre care sigură datele înainte de a ajunge la MySQL:
magic_quotes_gcp() – (poate fi setat ON din "php.ini") adaugă caracterul "\" înaintea ghilimelelor simple sau duble.
addslashes() – o funcție PHP care adaugă caracterul "\" înaintea ghilimelelor simple sau duble .
mysql_real_escape_string() – adaugă caracterul "\" înaintea caracterelor speciale: NULL, \n, \r, \, ', ", \x00 si \x1a.
htmlentities() – transformă caractere HTML în entități ale acestora (de ex.: > devine > , ghilimelele duble " devin ") [15]
Capitolul II
În capitolul de mai jos vom încerca să descriem proiectarea și elaborearea softului. Vom începe cu proiectarea bazei de date dupa care vom trece la elaborarea bazei de date. În baza de date se păstrează informațile despre fiecare elev și profesor inclusiv și întrebările cu răspunsuri care vor fi extrase aleator de catre soft pentru a forma conținutul testului.Proiectarea softului presupune înpărțirea site-ului în două categorii. Site-ul pentru elevi unde vor susține examenul ce va fi generat de către soft în mod aleator din baza de date, iar răspunsurile se vor salva în baza de date. Site-ul pentru profesor presupune verificarea testelor și modificarea sau adaugarea itemilor în baza de date.În momentul verificării testelor profesorul compară raspunsurile elevilor cu cele introduse în baza de date odata cu itemii.
2.1. Proiectarea și crearea Bazei de Date.
Proiectarea bazei de date are o importanță majoră deoarece datele introduse în baza de date trebuie să fie cît mai accesibile și să aiba un nivel scăzut de redundanță. Prioectare bazei de date se împarte în cîteva nivele și anume:
2.1.1. Determinarea scopului baze de date presupune consultarea persoanelor ce vor utiliza aceasta baza de date. Împreuna cu utilizatorii se identifică sarcinile căror v-a fi supusă baza de date respectivă și anume să genereze aliator exercitii pentru formarea testului și păstrarea răspunsurilor ce for fi introduse de către elevi in timpul examenului.
2.1.2. Stabilirea tabelelor din baza de date. Aceasta bază de date va contine următoarele tabele:
Tabelul ”Elevi” ce va conține datele personale ale fiecărui elev și anume: Numele de tip varchar, Prenumele de tip varchar, IDNP de tip intreg, parola pentru logare de tip varchar și nota ce o va obtine în urma scrierii examenului te tip integer;
Tabelul ”Profesori” va conține datele personale despre fiecare profesor și anume: Numele de tip varchar, Prenumele de tip varchar, IDNP de tip intreg și parola pentru logare de tip varchar;
Tabelul ”Itemi” va conține o mulțime de itemii și răspunsurile fiecărui item de tipul varchar;
Tabelul ”Răspunsuri” va conține răspunsurile elevilor în urma rezolvării testelor ce vor fi generate te soft. În cîmpurile 2 și 3 vor fi indicate id-urile fiecărui elev ce trece testul și respectiv id-urile testelor pe care le rezolvă.
2.1.3. Legăturile dintre tabele. Tabelul principal în această bază de date este acel cu răspunsuri, deoarece trebuie să păstreze răspunsurile fiecărui elev și totodată să fie posibilă identificarea elevului și testul care a fost generat de către soft. Deci legaturile respective fa fie ca în următoarea imagine:
Un alt pas important este introducerea datelor în baza de date. Aceasta se poate efecua în două moduri:
Introducerea datelore direct în baza de date. Aceasta se efectuiaza ca în exemplu de mai jos:
Al doilea mod de introducerea a datelor se efectiază prin intermediul unui soft. Se creează softul care permite deschiderea și modificarea datelor din bază. Un astfel de exemplu folosim pentru introducerea itemilor în baza de date desigur și pentru introducerea răspunsurilor date de elevi. Acesta se descries mai detaliat în momenul creării softului.
2.2. Proiectarea Softului
Crearea unui soft presupune proiectarea sa, însă pentru aceasta este nevoie de a defini un scop bine întocmit. Scopul softului generează testele pentru examen și totodată oferirea posibilității de al rezolva în mod online. Rezultatele acestutora vor fi salvate în baza de date.
Crearea softului începe în primul rînd cu descrierea conținutlui din fiecare pagina a ei. Începînd cu pagina autentică care va conține formular pentru elevi și pentru profesori după care softul se va desparte în două compartimente și anume pentru profesori unde vor avea posibilitatea de a modifica, adăuga sau șterge itimi din baza de date la fel și verificarea testelor care vor fi generat și rezolvate de către elevi. A doua parte a softului este cea mai importantă pentru generarea testelor și rezolvarealor de către elevi unde se afișează 12 întrebări și imediat după fiecare întrebare va fi o casetă de editare unde este posibil de introdus răspunsul pentru item. Pentru a crea acest soft fom folosi urmatoarele limbaje:
HTML paginile web;
PHP efectuază legătura cu baza de date;
JavaScript ajută la verificarea datele în formular pentru autentificare.
2.3. Crearea Softului.
Vom începe crearea softului cu pagina de logare care va conține 2 formulare: una pentru profesori și una pentru elevi desigur ca pe această pagină va fi indicat și richizitele care sunt permise în sala de examenare. Această pagină arată în felul următor:
Pagina respectivă a fost creată cu ajutorul tabelelor în limbajul HTML și cu ajutorul limbajului de programare PHP și Java Scipt. Limbajul PHP face legatura cu baza de date și verifică da ca Loginul și Parola coincid pentru logore. Cu ajutorul la Java Script verificăm dacă sunt introduse date în casetele de editare și dacă nu sunt introduse date apare un mesajde averizare ca și în imaginile următoare:
Din acest moment softul se împarte în două direcții: pentru elevi unde rezolvă testul și pentru profesori unde verifică testele și modifică itemii.
Pagina pentru elevi reprezintă un test care este ales în mod aleator din baza de date și anume acest lucru se execută cu ajutorul limbajului PHP. Pentru extragerea datelor din table se folosește funcția mysql_query("SELECT * from itemi "). Fiecare item va fi urmat de o casetă de editare în care se oferă posibilitatea de a scri răspunsul. Răspusurile for fi colectate în baza de date cu ajutorul funcției:
mysql_query("INSERT INTO 'raspunsuri' Rsp1='$Rsp1' , Rsp2='$Rsp2' , Rsp3='$Rsp3' , Rsp4='$Rsp4' , Rsp5='$Rsp5' , Rsp6='$Rsp6' , Rsp7='$Rsp7' , Rsp8='$Rsp8' , Rsp9='$Rsp9' , Rsp10='$Rsp10' , Rsp11='$Rsp11' , Rsp12='$Rsp12' WHERE id='$getid'")
Această funcție introduce fiecare răspuns din fiecare casetă de editare în entitatea ce îi corespunde. Această pagina arată în felul următor
Aceasta a fost partea pentru elevi, în continuare ne vom ocupa de partea profilului pentru profesori care este compusă din cîtiva pagini și anume prima pagină care apare imediat după logare este pagina pentru a alege scopul vizitării acestui site si anume: verificarea testelor sau modificarea datelor din baza de date. Dacă selectează verificarea testulor atunci apare la ecran itemii care au fost selectați aleator pentru test la fel imediat sub fiecare item apare răspunsul corect și răspunsul dat de elev acest lucru fiid selectate din tabelul Itemi și tabelul Raspunsuri respectiv din baza de date ca și în imaginile următoare:
O altă pagină a acestui soft este modificarea itemilor. Acest lucru se face cu ajutorul funcției:
mysql_query("UPDATE itemi SET Item1='$Item1' , Item2='$Item2' , Item3='$Item3' , Item4='$Item4' , Item5='$Item5' , Item6='$Item6' , Item7='$Item7' , Item8='$Item8' , Item9='$Item9' , Item10='$Item10' , Item11='$Item11' , Item12='$Item12' Rs1='$Rs1' , Rs2='$Rs2' , Rs3='$Rs3' , Rs4='$Rs4' , Rs5='$Rs5' , Rs6='$Rs6' , Rs7='$Rs7' , Rs8='$Rs8' , Rs9='$Rs9' , Rs10='$Rs10' , Rs11='$Rs11' , Rs12='$Rs12' WHERE id='$getid'");
Modificarea itimilor și a răspusurilor din baza de date în cazul cînd este o eroare. Pentru a verifica itemii și răspusurile avem pagina ,,Modificarea sau adăugarea itemilor,, unde se afișează toți itemii și răspunsurile pentru fiecare item totodata se oferă posibilitatea de a șterge, adăuga sau modifica itemii. Adăugarea itemilor se face cu ajutorul funcției:
mysql_query("INSERT INTO `itemi` (`Id`, 'Item1', 'Item2', 'Item3', 'Item4', 'Item5', 'Item6', 'Item7', 'Item8', 'Item9', 'Item10', 'Item11', 'Item12', 'Rs1' , 'Rs2' , 'Rs3' , 'Rs4' , 'Rs5' , 'Rs6' , 'Rs7' , 'Rs8' , 'Rs9' , 'Rs10' , 'Rs11' , 'Rs12') VALUES (NULL, '$Item1', '$Item2', '$Item3', '$Item4', '$Item5', '$Item6', '$Item7', '$Item8', '$Item9', '$Item10', '$Item11', '$Item12' , '$Rs1' , '$Rs2' , '$Rs3' , '$Rs4' , '$Rs5' , '$Rs6' , '$Rs7' , '$Rs8' , '$Rs9' , '$Rs10' , '$Rs11' , '$Rs12');");
Funcția aranjează casetele de editare ca în imaginea următoare:
Butonul ”Salveaza” trimite datele în tabelul ”itemi”. Pentru ștergerea datelor selectăm linia care dorim să o ștergem și apăsăm butonul Șterge și linia respective din baza de date se șterge. Pentru modificarea itemilor la fel alegem linia în care dorim să facem modificări apăsînd butonul ”Modifică Datele”. se deschide o pagină nouă cu casete de editare în care sunt introduse itemii și răspunsurile care dorim să le modificăm ca în exemplu din imaginea următoare:
Concluzie:
Cercetînd softul pentru elaborarea testelor la clasele liceale este nevoie de o programă mai specială ca să fie asigurata accesibilitatea mai rapidă și sigură din punct de vedere a plagierii. Este o metodă foarte bună de combatere a plagieri prin folosirea tehnicilor moderne care permit monitorizarea fiecării acțiuni efectuată de către elev. La crearea un soft ce generează testele pentru fiecare utilizator în parte diferit acest lucru micșorează posibilitatea de a putea copia unu de la celalt. Chiar daca și o să dorești să ajuti prietenul de alături nu o să fie posibil din cauza că itemii vor fi diferiti și o să trebuiasca sa pierzi timp pentru al rezolva. Softul respective mai are un avantaj foarte mare pentru prefosori lucrările sunt scrise în formă electronic și nu necesită verificarea în formă scrisă lucrărilor de mînă. La fel și siguranța ptivind confidențialitatea elevului ce a rezolvat testul care urmează a fi verificat.
Acest soft poate fi îmbunătățit pe viitor prin aceea că se poate de adăugat cronometru și după scurgerea timpului softul să fie închis în mod automat și datele să fie salvate în baza de date la fel se poate de introdus formule ajutătoare pentru a exclude riscul ca elevii sa incerce folosirea internetului pentru a rezolva testul și răspunsurile să fie verificate în mod automat. Mia plăcut foarte mult să cercetez acest domeniu și plănuiesc o cercetare mai aprofundată în perioada masteratului. Recomand această lucrarecomisiei de organizare a examenilor de bacaloriat, profesorii grupelor liceale, elevilor.
Dedic acestă Teză de licență profesorilor în special Șefului de catedră Andrei Corlat, părinților mei ca mulțumire pentru susținere și respect.
Anexa:
Codul sursă a softului:
Anexa1. Pagina principală, pentru logare
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>
Bacalaureat
</title>
<script type="text/javascript">
<!–
function verifica(form) {
if (form.log.value == "") {
//alert("Va rog introduceti numele dvs.");
document.getElementById("nm").innerHTML="<b>Va rugam introduceti numele dvs.</b>";
return false;
}
else if (form.pas.value == "" ) {
//alert("Scrieti corect adresa de e-mail !");
document.getElementById("nm").innerHTML="";
document.getElementById("em").innerHTML="<B>Va rugam introduceti parola dvs.</b>";
return false;
}
document.getElementById("em").innerHTML="";
return true;
}
// –>
</script>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table align="center" width=80% height=90% border="0">
<tr>
<td height=15% colspan="2">
<h2 align="center">Bine at venit la examenul de Bacalaureat!</h2></td>
<tr><td align="center" >Va rugam sa treceti logare!<br></td>
<td rowspan="3">
<h1 align="center"></h1>
<br>
<h3 align="center">
Rechezitele necesare:<ul>
<li><img src="images/1.jpg"width=159 height=72></li>
<li><img src="images/2.jpg"width=159 height=72 ></li>
<li><img src="images/3.jpg"width=159 height=72 ></li>
<li><img src="images/5.jpg"width=159 height=72 ></li>
</ul>
</h3></td> </tr>
<tr><td align="center">
<form method="post" action="admin/login1.php">
<table align="center" width="40%" border="1">
<tr><td colspan="2" align="center">Logare profesor</td></tr>
<tr>
<td>Login</td>
<td> <input type="text" name="log" maxlength="12" size="13"></td>
<div id="nm" align="center" style="color:#FF0000;"></div><br>
</tr>
<tr>
<td>Parola</td>
<td><input type="password" name="pas" maxlength="12" size="13"></td>
<div id="em" align="center" style="color:#FF0000;"></div><br>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="logare" onClick="return verifica(this.form)"></td>
</tr>
</table>
</form>
<form method="post" action="elev/login.php">
<table align="center" width="40%" border="1">
<tr><td colspan="2" align="center">Logare elev</td></tr>
<tr>
<td>Login</td>
<td> <input type="text" name="log2" maxlength="12" size="13"></td>
<div id="nm" align="center" style="color:#FF0000;"></div><br>
</tr>
<tr>
<td>Parola</td>
<td><input type="password" name="pas2" maxlength="12" size="13"></td>
<div id="em" align="center" style="color:#FF0000;"></div><br>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="logare" onClick="return verifica(this.form)"></td>
</tr>
</table>
</form>
</td></tr> <tr>
<td wight=100% height=15% colspan="2">
<h2 align="center">
<br>
Va uram mult secces!!!</h2></td>
</tr>
</table>
</body>
</html>
Anexa 2. Conectarea la baza de date
<?php
$c=mysql_connect("localhost","root","") or die("nu este conectare");
mysql_select_db("bac",$c) or die ("nu este selectata bd");
?>
Anexa 3. Logarea
<?php session_start();?>
<?php $c=mysql_connect("localhost","root","") or die ("nu este conectat serverul");
mysql_select_db("bac",$c) or die ("nu este conectare cu db");
function verif_str($str,$error)
{
if(empty($str)) die($error);
$str = str_replace("'","`",$str);
$str = htmlspecialchars($str);
$str = stripslashes($str);
$str = trim($str);
if (strlen($str)===0) die($error);
return($str);
}
if (isset($_POST['log'])){
$_POST['log'] = verif_str($_POST['log'], "Eroare");
$_POST['pas'] = verif_str($_POST['pas'], "Eroare");
$query = "SELECT name, pass FROM profesor WHERE
name='".$_POST['log']."' AND pass='".($_POST['pas'])."'";//md5
$result = mysql_query($query);
if (!$result) die("Eroare");
if (mysql_num_rows($result)==1){
$_SESSION['admin'] = $_POST['log'];
$_SESSION['password'] = ($_POST['pas']);
echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=profesor.php'>";
}else {die("Nu exista asa login sau parola");}
}else{die("Nu au fost transmise login-ul si parola");}
?>
Anexa 4. Delogarea
<?
session_start();
if (isset($_SESSION['admin'])){
session_unregister('admin');
session_unregister('password');
echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=../index.php'>";
}
?>
Anexa 5. Pagina pentru elevi
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Elev </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<p>
<?php //session_start();?>
<div align="center"><a href="logout.php"> <h3>Deconectare</h3></a></div>
<? //$_SESSION['log'];?>
</a></p>
<h2 align="center">Test</h2>
<div align="center">
<table border="0">
<tr><td>
<?php
include_once ('connect.php');
$citire = mysql_query("SELECT * FROM itemi ")or die (mysql_error());
while ($rand= mysql_fetch_assoc($citire))
{
$Rsp1 = $_POST['Rsp1'];
$Rsp2 = $_POST['Rsp2'];
$Rsp3 = $_POST['Rsp3'];
$Rsp4 = $_POST['Rsp4'];
$Rsp5 = $_POST['Rsp5'];
$Rsp6 = $_POST['Rsp6'];
$Rsp7 = $_POST['Rsp7'];
$Rsp8 = $_POST['Rsp8'];
$Rsp9 = $_POST['Rsp9'];
$Rsp10 = $_POST['Rsp10'];
$Rsp11 = $_POST['Rsp11'];
$Rsp12 = $_POST['Rsp12'];
$id = $rand['Id'];
echo "Item 1. ".$rand['Item1']."<br>"."<input type='text' size='100' name='Rsp1' value=''><br><br>";
echo "Item 2. ".$rand['Item2']."<br>"."<input type='text' size='100' name='Rsp1' value=''><br><br>";
echo "Item 3. ".$rand['Item3']."<br>"."<input type='text' size='100' name='Rsp1' value=''><br><br>";
echo "Item 4. ".$rand['Item4']."<br>"."<input type='text' size='100' name='Rsp1' value=''><br><br>";
echo "Item 5. ".$rand['Item5']."<br>"."<input type='text' size='100' name='Rsp1' value=''><br><br>";
echo "Item 6. ".$rand['Item6']."<br>"."<input type='text' size='100' name='Rsp1' value=''><br><br>";
echo "Item 7. ".$rand['Item7']."<br>"."<input type='text' size='100' name='Rsp1' value=''><br><br>";
echo "Item 8. ".$rand['Item8']."<br>"."<input type='text' size='100' name='Rsp1' value=''><br><br>";
echo "Item 9. ".$rand['Item9']."<br>"."<input type='text'size='100' name='Rsp1' value=''><br><br>";
echo "Item 10. ".$rand['Item10']."<br>"."<input type='text' size='100' name='Rsp1' value=''><br><br>";
echo "Item 11. ".$rand['Item11']."<br>"."<input type='text' size='100' name='Rsp1' value=''><br><br>";
echo "Item 12. ".$rand['Item12']."<br>"."<input type='text'size='100' name='Rsp1' value=''><br><br>";
} echo "<input type='submit' name='submit' value='Salvati'>";
$scriere = mysql_query("INSERT INTO 'raspunsuri' Rsp1='$Rsp1' , Rsp2='$Rsp2' , Rsp3='$Rsp3' , Rsp4='$Rsp4' , Rsp5='$Rsp5' , Rsp6='$Rsp6' , Rsp7='$Rsp7' , Rsp8='$Rsp8' , Rsp9='$Rsp9' , Rsp10='$Rsp10' , Rsp11='$Rsp11' , Rsp12='$Rsp12' WHERE id='$getid'");
?>
<?php echo $dbItem1; ?>
</td></tr>
</table>
</div>
</body>
</html>
Anexa 6. Pagina pentru verificarea testului
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Verificare test </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php //session_start();?>
<div align="center">
<a href="logout.php"> Deconectare </a></div>
<? //$_SESSION['log'];?>
<?php
include_once ('connect.php');
$citire = mysql_query("SELECT * FROM itemi,raspunsuri ")or die (mysql_error());
while ($rand= mysql_fetch_assoc($citire))
{
$id = $rand['Id'];
echo "<br><br>";
echo "Item1: ".$rand['Item1']."<br>Raspuns corect<br>".$rand['Rs1']."<br>Raspunsul elevului<br>".$rand['Rsp1']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "Item2: ".$rand['Item2']."<br>Raspuns corect<br>".$rand['Rs2']."<br>Raspunsul elevului<br>".$rand['Rsp2']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "Item3: ".$rand['Item3']."<br>Raspuns corect<br>".$rand['Rs3']."<br>Raspunsul elevului<br>".$rand['Rsp3']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "Item4: ".$rand['Item4']."<br>Raspuns corect<br>".$rand['Rs4']."<br>Raspunsul elevului<br>".$rand['Rsp4']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "Item5: ".$rand['Item5']."<br>Raspuns corect<br>".$rand['Rs5']."<br>Raspunsul elevului<br>".$rand['Rsp5']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "Item6: ".$rand['Item6']."<br>Raspuns corect<br>".$rand['Rs6']."<br>Raspunsul elevului<br>".$rand['Rsp6']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "Item7: ".$rand['Item7']."<br>Raspuns corect<br>".$rand['Rs7']."<br>Raspunsul elevului<br>".$rand['Rsp7']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "Item8: ".$rand['Item8']."<br>Raspuns corect<br>".$rand['Rs8']."<br>Raspunsul elevului<br>".$rand['Rsp8']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "Item9: ".$rand['Item9']."<br>Raspuns corect<br>".$rand['Rs9']."<br>Raspunsul elevului<br>".$rand['Rsp9']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "Item10: ".$rand['Item10']."<br>Raspuns corect<br>".$rand['Rs10']."<br>Raspunsul elevului<br>".$rand['Rsp10']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "Item11: ".$rand['Item11']."<br>Raspuns corect<br>".$rand['Rs11']."<br>Raspunsul elevului<br>".$rand['Rsp11']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "Item12 :".$rand['Item12']."<br>Raspuns corect<br>".$rand['Rs12']."<br>Raspunsul elevului<br>".$rand['Rsp12']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "<input type='submit' name='submit' value='Salvati'>";
}
?>
</body>
</html>
Anexa 7. Pagina pentru modificare a datelor
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Modificare itemi</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php //session_start();?>
<div align="center">
<a href="logout.php"> Deconectare
<? //$_SESSION['log'];?>
</a></div>
<div align="center">
<table width='400px' border='1' >
<?php
echo "<tr align='center'><td colspan='13'>";
echo"<a href='?p=i'>Adauga date</a> </td></tr><tr align='center'><td>Item1</td><td>Item2</td><td>Item3</td><td>Item4</td><td>Item5</td><td>Item6</td><td>Item7</td><td>Item8</td><td>Item9</td><td>Item10</td><td>Item11</td><td>Item12</td><td>Modifica</td></tr>";
include_once ('connect.php');
$citire = mysql_query("SELECT * FROM itemi ")or die (mysql_error());
while ($rand= mysql_fetch_assoc($citire))
{
echo "<tr align='center'><td>";
$id = $rand['Id'];
echo $rand['Item1']."<br><br>".$rand['Rs1']."</td>";
echo "<td>".$rand['Item2']."<br><br>".$rand['Rs2']."</td>";
echo "<td>".$rand['Item3']."<br><br>".$rand['Rs3']."</td>";
echo "<td>".$rand['Item4']."<br><br>".$rand['Rs4']."</td>";
echo "<td>".$rand['Item5']."<br><br>".$rand['Rs5']."</td>";
echo "<td>".$rand['Item6']."<br><br>".$rand['Rs6']."</td>";
echo "<td>".$rand['Item7']."<br><br>".$rand['Rs7']."</td>";
echo "<td>".$rand['Item8']."<br><br>".$rand['Rs8']."</td>";
echo "<td>".$rand['Item9']."<br><br>".$rand['Rs9']."</td>";
echo "<td>".$rand['Item10']."<br><br>".$rand['Rs10']."</td>";
echo "<td>".$rand['Item11']."<br><br>".$rand['Rs11']."</td>";
echo "<td>".$rand['Item12']."<br><br>".$rand['Rs12']."</td>";
echo "<td><a href='delete.php?id=$id'>Sterge</a>";
echo " ";
echo "<a href='update.php?id=$id'>Schimba Datele</a></td></tr>";
}?></table> </div>
<br></br>
<?php if(isset($_GET['p'])){
switch ($_GET['p']) {
case "i":include("insert.php"); break;
case "u":include("update.php"); break;
default : include("../user/home.php");
}}
?>
</body>
</html>
Anexa 7. Pagina pentru adăugarea itemilor în baza de date
Introduceti datele
<br></br>
<form action="" method="post">
<table>
<tr><td></td><td>Item </td><td>Raspuns</td></tr>
<tr><td height="26">Item1:</td>
<td><input tupe="text" name="Item1" value="<?php echo $dbItem1; ?>"></td><td><input tupe="text" name="Rs1" value="<?php echo $dbRs1; ?>"></td></tr>
<tr><td>Item2:</td><td><input tupe="text" name="Item2" value="<?php echo $dbItem2; ?>"></td><td><input tupe="text" name="Rs2" value="<?php echo $dbRs2; ?>"></td></tr>
<tr><td>Item3:</td><td><input tupe="text" name="Item3" value="<?php echo $dbItem3; ?>"></td><td><input tupe="text" name="Rs3" value="<?php echo $dbRs3; ?>"></td></tr>
<tr><td>Item4:</td><td><input tupe="text" name="Item4" value="<?php echo $dbItem4; ?>"></td><td><input tupe="text" name="Rs4" value="<?php echo $dbRs4; ?>"></td></tr>
<tr><td>Item5:</td><td><input tupe="text" name="Item5" value="<?php echo $dbItem5; ?>"></td><td><input tupe="text" name="Rs5" value="<?php echo $dbRs5; ?>"></td></tr>
<tr><td>Item6:</td><td><input tupe="text" name="Item6" value="<?php echo $dbItem6; ?>"></td><td><input tupe="text" name="Rs6" value="<?php echo $dbRs6; ?>"></td></tr>
<tr><td>Item7:</td><td><input tupe="text" name="Item7" value="<?php echo $dbItem7; ?>"></td><td><input tupe="text" name="Rs7" value="<?php echo $dbRs7; ?>"></td></tr>
<tr><td>Item8:</td><td><input tupe="text" name="Item8" value="<?php echo $dbItem8; ?>"></td><td><input tupe="text" name="Rs8" value="<?php echo $dbRs8; ?>"></td></tr>
<tr><td>Item9:</td><td><input tupe="text" name="Item9" value="<?php echo $dbItem9; ?>"></td><td><input tupe="text" name="Rs9" value="<?php echo $dbRs9; ?>"></td></tr>
<tr><td>Item10:</td><td><input tupe="text" name="Item10" value="<?php echo $dbItem10; ?>"></td><td><input tupe="text" name="Rs10" value="<?php echo $dbRs10; ?>"></td></tr>
<tr><td>Item11:</td><td><input tupe="text" name="Item11" value="<?php echo $dbItem11; ?>"></td><td><input tupe="text" name="Rs11" value="<?php echo $dbRs11; ?>"></td></tr>
<tr><td>Item12:</td><td><input tupe="text" name="Item12" value="<?php echo $dbItem12; ?>"></td><td><input tupe="text" name="Rs12" value="<?php echo $dbRs12; ?>"></td></tr>
<tr><td align="center" colspan="3"><input type="submit" name="submit" value=" Salveaza "></td></tr>
</table>
</form>
<?php
$Item1 = $_POST['Item1'];
$Item2 = $_POST['Item2'];
$Item3 = $_POST['Item3'];
$Item4 = $_POST['Item4'];
$Item5 = $_POST['Item5'];
$Item6 = $_POST['Item6'];
$Item7 = $_POST['Item7'];
$Item8 = $_POST['Item8'];
$Item9 = $_POST['Item9'];
$Item10 = $_POST['Item10'];
$Item11 = $_POST['Item11'];
$Item12 = $_POST['Item12'];
$dbRs1 = $rand['Rs1'];
$dbRs2 = $rand['Rs2'];
$dbRs3 = $rand['Rs3'];
$dbRs4 = $rand['Rs4'];
$dbRs5 = $rand['Rs5'];
$dbRs6 = $rand['Rs6'];
$dbRs7 = $rand['Rs7'];
$dbRs8 = $rand['Rs8'];
$dbRs9 = $rand['Rs9'];
$dbRs10 = $rand['Rs10'];
$dbRs11 = $rand['Rs11'];
$dbRs12 = $rand['Rs12'];
$submit = $_POST['submit'];
if (isset ($_POST['Item1']))
{
if ($Item1&&$Item2)
{
include_once ('connect.php');
$scriere = mysql_query("INSERT INTO `itemi` (`Id`, 'Item1', 'Item2', 'Item3', 'Item4', 'Item5', 'Item6', 'Item7', 'Item8', 'Item9', 'Item10', 'Item11', 'Item12', 'Rs1' , 'Rs2' , 'Rs3' , 'Rs4' , 'Rs5' , 'Rs6' , 'Rs7' , 'Rs8' , 'Rs9' , 'Rs10' , 'Rs11' , 'Rs12') VALUES (NULL, '$Item1', '$Item2', '$Item3', '$Item4', '$Item5', '$Item6', '$Item7', '$Item8', '$Item9', '$Item10', '$Item11', '$Item12' , '$Rs1' , '$Rs2' , '$Rs3' , '$Rs4' , '$Rs5' , '$Rs6' , '$Rs7' , '$Rs8' , '$Rs9' , '$Rs10' , '$Rs11' , '$Rs12');");
echo "Datele au fost Schimbate";
echo "Datele au fost introduse";
//header("location:index.php");
echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=modificare-date.php'>";
}
else {
echo "Completati ambele campuri.";
}
}
?>
Anexa 8. Pagina pentru modificareaitemilor din datelor din baza
<html>
<head>
<title>Modificare date</title>
</head>
<body>
<h1>Modificati Datele</h1>
<?php
// Variabila globala get
$getid = $_GET['id'];
// conectare Mysql
include_once ('connect.php');
//Afisare date doar unde variabila getid = id
$citire = mysql_query("SELECT * FROM itemi WHERE id='$getid' ")or die (mysql_error());
while ($rand= mysql_fetch_assoc($citire))
{
$id = $rand['id'];
$dbRs1 = $rand['Rs1'];
$dbRs2 = $rand['Rs2'];
$dbRs3 = $rand['Rs3'];
$dbRs4 = $rand['Rs4'];
$dbRs5 = $rand['Rs5'];
$dbRs6 = $rand['Rs6'];
$dbRs7 = $rand['Rs7'];
$dbRs8 = $rand['Rs8'];
$dbRs9 = $rand['Rs9'];
$dbRs10 = $rand['Rs10'];
$dbRs11 = $rand['Rs11'];
$dbRs12 = $rand['Rs12'];
$dbItem1 = $rand['Item1'];
$dbItem2 = $rand['Item2'];
$dbItem3 = $rand['Item3'];
$dbItem4 = $rand['Item4'];
$dbItem5 = $rand['Item5'];
$dbItem6 = $rand['Item6'];
$dbItem7 = $rand['Item7'];
$dbItem8 = $rand['Item8'];
$dbItem9 = $rand['Item9'];
$dbItem10 = $rand['Item10'];
$dbItem11 = $rand['Item11'];
$dbItem12 = $rand['Item12'];
}
// formularu care in afisam ceia ce avem in baza de date
?> <form action="" method="post">
<table border="1">
<tr><td></td><td>Itimii</td><td>Raspunsuri</td></tr>
<tr><td><h3>Item1:</h3></td><td><input tupe="text" name="Item1" value="<?php echo $dbItem1; ?>"></td><td><input tupe="text" name="Rs1" value="<?php echo $dbRs1; ?>"></td></tr>
<tr><td><h3>Item2:</h3></td><td><input tupe="text" name="Item2" value="<?php echo $dbItem2; ?>"></td><td><input tupe="text" name="Rs2" value="<?php echo $dbRs2; ?>"></td></tr>
<tr><td><h3>Item3:</h3></td><td><input tupe="text" name="Item3" value="<?php echo $dbItem3; ?>"></td><td><input tupe="text" name="Rs3" value="<?php echo $dbRs3; ?>"></td></tr>
<tr><td><h3>Item4:</h3></td><td><input tupe="text" name="Item4" value="<?php echo $dbItem4; ?>"></td><td><input tupe="text" name="Rs4" value="<?php echo $dbRs4; ?>"></td></tr>
<tr><td><h3>Item5:</h3></td><td><input tupe="text" name="Item5" value="<?php echo $dbItem5; ?>"></td><td><input tupe="text" name="Rs5" value="<?php echo $dbRs5; ?>"></td></tr>
<tr><td><h3>Item6:</h3></td><td><input tupe="text" name="Item6" value="<?php echo $dbItem6; ?>"></td><td><input tupe="text" name="Rs6" value="<?php echo $dbRs6; ?>"></td></tr>
<tr><td><h3>Item7:</h3></td><td><input tupe="text" name="Item7" value="<?php echo $dbItem7; ?>"></td><td><input tupe="text" name="Rs7" value="<?php echo $dbRs7; ?>"></td></tr>
<tr><td><h3>Item8:</h3></td><td><input tupe="text" name="Item8" value="<?php echo $dbItem8; ?>"></td><td><input tupe="text" name="Rs8" value="<?php echo $dbRs8; ?>"></td></tr>
<tr><td><h3>Item9:</h3></td><td><input tupe="text" name="Item9" value="<?php echo $dbItem9; ?>"></td><td><input tupe="text" name="Rs9" value="<?php echo $dbRs9; ?>"></td></tr>
<tr><td><h3>Item10:</h3></td><td><input tupe="text" name="Item10" value="<?php echo $dbItem10; ?>"></td><td><input tupe="text" name="Rs10" value="<?php echo $dbRs10; ?>"></td></tr>
<tr><td><h3>Item11:</h3></td><td><input tupe="text" name="Item11" value="<?php echo $dbItem11; ?>"></td><td><input tupe="text" name="Rs11" value="<?php echo $dbRs11; ?>"></td></tr>
<tr><td><h3>Item12:</h3></td><td><input tupe="text" name="Item12" value="<?php echo $dbItem12; ?>"></td><td><input tupe="text" name="Rs12" value="<?php echo $dbRs12; ?>"></td></tr>
<tr><td align="center" colspan="3"><input type="submit" name="submit" value="Salvati"></td></tr>
</table>
</form>
<?php
$Rs1 = $_POST['Rs1'];
$Rs2 = $_POST['Rs2'];
$Rs3 = $_POST['Rs3'];
$Rs4 = $_POST['Rs4'];
$Rs5 = $_POST['Rs5'];
$Rs6 = $_POST['Rs6'];
$Rs7 = $_POST['Rs7'];
$Rs8 = $_POST['Rs8'];
$Rs9 = $_POST['Rs9'];
$Rs10 = $_POST['Rs10'];
$Rs11 = $_POST['Rs11'];
$Rs12 = $_POST['Rs12'];
$Item1 = $_POST['Item1'];
$Item2 = $_POST['Item2'];
$Item3 = $_POST['Item3'];
$Item4 = $_POST['Item4'];
$Item5 = $_POST['Item5'];
$Item6 = $_POST['Item6'];
$Item7 = $_POST['Item7'];
$Item8 = $_POST['Item8'];
$Item9 = $_POST['Item9'];
$Item10 = $_POST['Item10'];
$Item11 = $_POST['Item11'];
$Item12 = $_POST['Item12'];
$submit = $_POST['submit'];
if (isset ($_POST['Item1']))
{
if ($Item1&&$Item2&&$Item3&&$Item4&&$Item5&&$Item6&&$Item7&&$Item8&&$Item9&&$Item10&&$Item11&&$Item2)
{ // mysql Functia Update
$scriere = mysql_query("UPDATE itemi SET Item1='$Item1' , Item2='$Item2' , Item3='$Item3' , Item4='$Item4' , Item5='$Item5' , Item6='$Item6' , Item7='$Item7' , Item8='$Item8' , Item9='$Item9' , Item10='$Item10' , Item11='$Item11' , Item12='$Item12' Rs1='$Rs1' , Rs2='$Rs2' , Rs3='$Rs3' , Rs4='$Rs4' , Rs5='$Rs5' , Rs6='$Rs6' , Rs7='$Rs7' , Rs8='$Rs8' , Rs9='$Rs9' , Rs10='$Rs10' , Rs11='$Rs11' , Rs12='$Rs12' WHERE id='$getid'");
echo "Datele au fost Schimbate";
//header("location:index.php");
echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=modificare-date.php'>";
}
else {
echo "Completati toate campuri.";
}
}
?>
</body>
</html>
Bibliografie:
[1] Limbajul HTML, Olga Chicu, Chișinău, Evrica – 2011
(http://www.aticmd.md/wp-content/uploads/2011/05/Chicu_Limbajul_HTML.pdf )
[2]http://profs.info.uaic.ro/~val/htmlearn.html
[3] Note de curs 1. CSS. Sintaxa. Clasificarea CSS. Utilizare CSS pentru configurarea fondului, textului, listei, link-urilor. Proprietăți și valori.
[4]http://www.ghid-html.info/142-prioritate-in-cascada.html
[5]http://marianpc.eu/2011/01/20/ghidul-de-la-a-la-z-in-css/
[6] Note de curs LIMBAJUL CLIENT JAVASCRIPT
[7]http://vechi.upg-ploiesti.ro/col/ldumitrascu/pdf/JAVASCRIPT/JAVASCRIPT.pdf
[8]Burns, Joe; Growney, Andree S. JavaScript Goodies, Pearson Education,(2001).
[9]Holzner S. – Inițiere in PHP 5 – Editura Teora, București 2006.
[10]Ulman L. – PHP pentru World Wide Web, în imagini, Editura Teora, București 2006.
[11] NewRiders – PHP Programming For Windows, 2004.
[12]Administrarea bazelor de date web, Conf. dr. ing. Dan Pescaru, 2010
[13] Note de curs 1. MySQL. Lucrul cu baze de date. Conexiunea la baze de date. Citirea, inserarea și ștergerea datelor
[14]http://www.agricolfalticeni.ro/curs.pdf
[15]MySQL- PHP Database Aplication, 2005
[16] Meloni J. – PHP, MySQL și Apache, Editura Teora, Bucuresti 2006.
Bibliografie:
[1] Limbajul HTML, Olga Chicu, Chișinău, Evrica – 2011
(http://www.aticmd.md/wp-content/uploads/2011/05/Chicu_Limbajul_HTML.pdf )
[2]http://profs.info.uaic.ro/~val/htmlearn.html
[3] Note de curs 1. CSS. Sintaxa. Clasificarea CSS. Utilizare CSS pentru configurarea fondului, textului, listei, link-urilor. Proprietăți și valori.
[4]http://www.ghid-html.info/142-prioritate-in-cascada.html
[5]http://marianpc.eu/2011/01/20/ghidul-de-la-a-la-z-in-css/
[6] Note de curs LIMBAJUL CLIENT JAVASCRIPT
[7]http://vechi.upg-ploiesti.ro/col/ldumitrascu/pdf/JAVASCRIPT/JAVASCRIPT.pdf
[8]Burns, Joe; Growney, Andree S. JavaScript Goodies, Pearson Education,(2001).
[9]Holzner S. – Inițiere in PHP 5 – Editura Teora, București 2006.
[10]Ulman L. – PHP pentru World Wide Web, în imagini, Editura Teora, București 2006.
[11] NewRiders – PHP Programming For Windows, 2004.
[12]Administrarea bazelor de date web, Conf. dr. ing. Dan Pescaru, 2010
[13] Note de curs 1. MySQL. Lucrul cu baze de date. Conexiunea la baze de date. Citirea, inserarea și ștergerea datelor
[14]http://www.agricolfalticeni.ro/curs.pdf
[15]MySQL- PHP Database Aplication, 2005
[16] Meloni J. – PHP, MySQL și Apache, Editura Teora, Bucuresti 2006.
Anexa:
Codul sursă a softului:
Anexa1. Pagina principală, pentru logare
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>
Bacalaureat
</title>
<script type="text/javascript">
<!–
function verifica(form) {
if (form.log.value == "") {
//alert("Va rog introduceti numele dvs.");
document.getElementById("nm").innerHTML="<b>Va rugam introduceti numele dvs.</b>";
return false;
}
else if (form.pas.value == "" ) {
//alert("Scrieti corect adresa de e-mail !");
document.getElementById("nm").innerHTML="";
document.getElementById("em").innerHTML="<B>Va rugam introduceti parola dvs.</b>";
return false;
}
document.getElementById("em").innerHTML="";
return true;
}
// –>
</script>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table align="center" width=80% height=90% border="0">
<tr>
<td height=15% colspan="2">
<h2 align="center">Bine at venit la examenul de Bacalaureat!</h2></td>
<tr><td align="center" >Va rugam sa treceti logare!<br></td>
<td rowspan="3">
<h1 align="center"></h1>
<br>
<h3 align="center">
Rechezitele necesare:<ul>
<li><img src="images/1.jpg"width=159 height=72></li>
<li><img src="images/2.jpg"width=159 height=72 ></li>
<li><img src="images/3.jpg"width=159 height=72 ></li>
<li><img src="images/5.jpg"width=159 height=72 ></li>
</ul>
</h3></td> </tr>
<tr><td align="center">
<form method="post" action="admin/login1.php">
<table align="center" width="40%" border="1">
<tr><td colspan="2" align="center">Logare profesor</td></tr>
<tr>
<td>Login</td>
<td> <input type="text" name="log" maxlength="12" size="13"></td>
<div id="nm" align="center" style="color:#FF0000;"></div><br>
</tr>
<tr>
<td>Parola</td>
<td><input type="password" name="pas" maxlength="12" size="13"></td>
<div id="em" align="center" style="color:#FF0000;"></div><br>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="logare" onClick="return verifica(this.form)"></td>
</tr>
</table>
</form>
<form method="post" action="elev/login.php">
<table align="center" width="40%" border="1">
<tr><td colspan="2" align="center">Logare elev</td></tr>
<tr>
<td>Login</td>
<td> <input type="text" name="log2" maxlength="12" size="13"></td>
<div id="nm" align="center" style="color:#FF0000;"></div><br>
</tr>
<tr>
<td>Parola</td>
<td><input type="password" name="pas2" maxlength="12" size="13"></td>
<div id="em" align="center" style="color:#FF0000;"></div><br>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="logare" onClick="return verifica(this.form)"></td>
</tr>
</table>
</form>
</td></tr> <tr>
<td wight=100% height=15% colspan="2">
<h2 align="center">
<br>
Va uram mult secces!!!</h2></td>
</tr>
</table>
</body>
</html>
Anexa 2. Conectarea la baza de date
<?php
$c=mysql_connect("localhost","root","") or die("nu este conectare");
mysql_select_db("bac",$c) or die ("nu este selectata bd");
?>
Anexa 3. Logarea
<?php session_start();?>
<?php $c=mysql_connect("localhost","root","") or die ("nu este conectat serverul");
mysql_select_db("bac",$c) or die ("nu este conectare cu db");
function verif_str($str,$error)
{
if(empty($str)) die($error);
$str = str_replace("'","`",$str);
$str = htmlspecialchars($str);
$str = stripslashes($str);
$str = trim($str);
if (strlen($str)===0) die($error);
return($str);
}
if (isset($_POST['log'])){
$_POST['log'] = verif_str($_POST['log'], "Eroare");
$_POST['pas'] = verif_str($_POST['pas'], "Eroare");
$query = "SELECT name, pass FROM profesor WHERE
name='".$_POST['log']."' AND pass='".($_POST['pas'])."'";//md5
$result = mysql_query($query);
if (!$result) die("Eroare");
if (mysql_num_rows($result)==1){
$_SESSION['admin'] = $_POST['log'];
$_SESSION['password'] = ($_POST['pas']);
echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=profesor.php'>";
}else {die("Nu exista asa login sau parola");}
}else{die("Nu au fost transmise login-ul si parola");}
?>
Anexa 4. Delogarea
<?
session_start();
if (isset($_SESSION['admin'])){
session_unregister('admin');
session_unregister('password');
echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=../index.php'>";
}
?>
Anexa 5. Pagina pentru elevi
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Elev </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<p>
<?php //session_start();?>
<div align="center"><a href="logout.php"> <h3>Deconectare</h3></a></div>
<? //$_SESSION['log'];?>
</a></p>
<h2 align="center">Test</h2>
<div align="center">
<table border="0">
<tr><td>
<?php
include_once ('connect.php');
$citire = mysql_query("SELECT * FROM itemi ")or die (mysql_error());
while ($rand= mysql_fetch_assoc($citire))
{
$Rsp1 = $_POST['Rsp1'];
$Rsp2 = $_POST['Rsp2'];
$Rsp3 = $_POST['Rsp3'];
$Rsp4 = $_POST['Rsp4'];
$Rsp5 = $_POST['Rsp5'];
$Rsp6 = $_POST['Rsp6'];
$Rsp7 = $_POST['Rsp7'];
$Rsp8 = $_POST['Rsp8'];
$Rsp9 = $_POST['Rsp9'];
$Rsp10 = $_POST['Rsp10'];
$Rsp11 = $_POST['Rsp11'];
$Rsp12 = $_POST['Rsp12'];
$id = $rand['Id'];
echo "Item 1. ".$rand['Item1']."<br>"."<input type='text' size='100' name='Rsp1' value=''><br><br>";
echo "Item 2. ".$rand['Item2']."<br>"."<input type='text' size='100' name='Rsp1' value=''><br><br>";
echo "Item 3. ".$rand['Item3']."<br>"."<input type='text' size='100' name='Rsp1' value=''><br><br>";
echo "Item 4. ".$rand['Item4']."<br>"."<input type='text' size='100' name='Rsp1' value=''><br><br>";
echo "Item 5. ".$rand['Item5']."<br>"."<input type='text' size='100' name='Rsp1' value=''><br><br>";
echo "Item 6. ".$rand['Item6']."<br>"."<input type='text' size='100' name='Rsp1' value=''><br><br>";
echo "Item 7. ".$rand['Item7']."<br>"."<input type='text' size='100' name='Rsp1' value=''><br><br>";
echo "Item 8. ".$rand['Item8']."<br>"."<input type='text' size='100' name='Rsp1' value=''><br><br>";
echo "Item 9. ".$rand['Item9']."<br>"."<input type='text'size='100' name='Rsp1' value=''><br><br>";
echo "Item 10. ".$rand['Item10']."<br>"."<input type='text' size='100' name='Rsp1' value=''><br><br>";
echo "Item 11. ".$rand['Item11']."<br>"."<input type='text' size='100' name='Rsp1' value=''><br><br>";
echo "Item 12. ".$rand['Item12']."<br>"."<input type='text'size='100' name='Rsp1' value=''><br><br>";
} echo "<input type='submit' name='submit' value='Salvati'>";
$scriere = mysql_query("INSERT INTO 'raspunsuri' Rsp1='$Rsp1' , Rsp2='$Rsp2' , Rsp3='$Rsp3' , Rsp4='$Rsp4' , Rsp5='$Rsp5' , Rsp6='$Rsp6' , Rsp7='$Rsp7' , Rsp8='$Rsp8' , Rsp9='$Rsp9' , Rsp10='$Rsp10' , Rsp11='$Rsp11' , Rsp12='$Rsp12' WHERE id='$getid'");
?>
<?php echo $dbItem1; ?>
</td></tr>
</table>
</div>
</body>
</html>
Anexa 6. Pagina pentru verificarea testului
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Verificare test </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php //session_start();?>
<div align="center">
<a href="logout.php"> Deconectare </a></div>
<? //$_SESSION['log'];?>
<?php
include_once ('connect.php');
$citire = mysql_query("SELECT * FROM itemi,raspunsuri ")or die (mysql_error());
while ($rand= mysql_fetch_assoc($citire))
{
$id = $rand['Id'];
echo "<br><br>";
echo "Item1: ".$rand['Item1']."<br>Raspuns corect<br>".$rand['Rs1']."<br>Raspunsul elevului<br>".$rand['Rsp1']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "Item2: ".$rand['Item2']."<br>Raspuns corect<br>".$rand['Rs2']."<br>Raspunsul elevului<br>".$rand['Rsp2']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "Item3: ".$rand['Item3']."<br>Raspuns corect<br>".$rand['Rs3']."<br>Raspunsul elevului<br>".$rand['Rsp3']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "Item4: ".$rand['Item4']."<br>Raspuns corect<br>".$rand['Rs4']."<br>Raspunsul elevului<br>".$rand['Rsp4']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "Item5: ".$rand['Item5']."<br>Raspuns corect<br>".$rand['Rs5']."<br>Raspunsul elevului<br>".$rand['Rsp5']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "Item6: ".$rand['Item6']."<br>Raspuns corect<br>".$rand['Rs6']."<br>Raspunsul elevului<br>".$rand['Rsp6']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "Item7: ".$rand['Item7']."<br>Raspuns corect<br>".$rand['Rs7']."<br>Raspunsul elevului<br>".$rand['Rsp7']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "Item8: ".$rand['Item8']."<br>Raspuns corect<br>".$rand['Rs8']."<br>Raspunsul elevului<br>".$rand['Rsp8']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "Item9: ".$rand['Item9']."<br>Raspuns corect<br>".$rand['Rs9']."<br>Raspunsul elevului<br>".$rand['Rsp9']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "Item10: ".$rand['Item10']."<br>Raspuns corect<br>".$rand['Rs10']."<br>Raspunsul elevului<br>".$rand['Rsp10']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "Item11: ".$rand['Item11']."<br>Raspuns corect<br>".$rand['Rs11']."<br>Raspunsul elevului<br>".$rand['Rsp11']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "Item12 :".$rand['Item12']."<br>Raspuns corect<br>".$rand['Rs12']."<br>Raspunsul elevului<br>".$rand['Rsp12']."<br><br>";
echo "<input type='radio' name='nota'> 0 <input type='radio' name='nota'>1<input type='radio' name='nota'>2"."<br><br>";
echo "<input type='submit' name='submit' value='Salvati'>";
}
?>
</body>
</html>
Anexa 7. Pagina pentru modificare a datelor
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Modificare itemi</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php //session_start();?>
<div align="center">
<a href="logout.php"> Deconectare
<? //$_SESSION['log'];?>
</a></div>
<div align="center">
<table width='400px' border='1' >
<?php
echo "<tr align='center'><td colspan='13'>";
echo"<a href='?p=i'>Adauga date</a> </td></tr><tr align='center'><td>Item1</td><td>Item2</td><td>Item3</td><td>Item4</td><td>Item5</td><td>Item6</td><td>Item7</td><td>Item8</td><td>Item9</td><td>Item10</td><td>Item11</td><td>Item12</td><td>Modifica</td></tr>";
include_once ('connect.php');
$citire = mysql_query("SELECT * FROM itemi ")or die (mysql_error());
while ($rand= mysql_fetch_assoc($citire))
{
echo "<tr align='center'><td>";
$id = $rand['Id'];
echo $rand['Item1']."<br><br>".$rand['Rs1']."</td>";
echo "<td>".$rand['Item2']."<br><br>".$rand['Rs2']."</td>";
echo "<td>".$rand['Item3']."<br><br>".$rand['Rs3']."</td>";
echo "<td>".$rand['Item4']."<br><br>".$rand['Rs4']."</td>";
echo "<td>".$rand['Item5']."<br><br>".$rand['Rs5']."</td>";
echo "<td>".$rand['Item6']."<br><br>".$rand['Rs6']."</td>";
echo "<td>".$rand['Item7']."<br><br>".$rand['Rs7']."</td>";
echo "<td>".$rand['Item8']."<br><br>".$rand['Rs8']."</td>";
echo "<td>".$rand['Item9']."<br><br>".$rand['Rs9']."</td>";
echo "<td>".$rand['Item10']."<br><br>".$rand['Rs10']."</td>";
echo "<td>".$rand['Item11']."<br><br>".$rand['Rs11']."</td>";
echo "<td>".$rand['Item12']."<br><br>".$rand['Rs12']."</td>";
echo "<td><a href='delete.php?id=$id'>Sterge</a>";
echo " ";
echo "<a href='update.php?id=$id'>Schimba Datele</a></td></tr>";
}?></table> </div>
<br></br>
<?php if(isset($_GET['p'])){
switch ($_GET['p']) {
case "i":include("insert.php"); break;
case "u":include("update.php"); break;
default : include("../user/home.php");
}}
?>
</body>
</html>
Anexa 7. Pagina pentru adăugarea itemilor în baza de date
Introduceti datele
<br></br>
<form action="" method="post">
<table>
<tr><td></td><td>Item </td><td>Raspuns</td></tr>
<tr><td height="26">Item1:</td>
<td><input tupe="text" name="Item1" value="<?php echo $dbItem1; ?>"></td><td><input tupe="text" name="Rs1" value="<?php echo $dbRs1; ?>"></td></tr>
<tr><td>Item2:</td><td><input tupe="text" name="Item2" value="<?php echo $dbItem2; ?>"></td><td><input tupe="text" name="Rs2" value="<?php echo $dbRs2; ?>"></td></tr>
<tr><td>Item3:</td><td><input tupe="text" name="Item3" value="<?php echo $dbItem3; ?>"></td><td><input tupe="text" name="Rs3" value="<?php echo $dbRs3; ?>"></td></tr>
<tr><td>Item4:</td><td><input tupe="text" name="Item4" value="<?php echo $dbItem4; ?>"></td><td><input tupe="text" name="Rs4" value="<?php echo $dbRs4; ?>"></td></tr>
<tr><td>Item5:</td><td><input tupe="text" name="Item5" value="<?php echo $dbItem5; ?>"></td><td><input tupe="text" name="Rs5" value="<?php echo $dbRs5; ?>"></td></tr>
<tr><td>Item6:</td><td><input tupe="text" name="Item6" value="<?php echo $dbItem6; ?>"></td><td><input tupe="text" name="Rs6" value="<?php echo $dbRs6; ?>"></td></tr>
<tr><td>Item7:</td><td><input tupe="text" name="Item7" value="<?php echo $dbItem7; ?>"></td><td><input tupe="text" name="Rs7" value="<?php echo $dbRs7; ?>"></td></tr>
<tr><td>Item8:</td><td><input tupe="text" name="Item8" value="<?php echo $dbItem8; ?>"></td><td><input tupe="text" name="Rs8" value="<?php echo $dbRs8; ?>"></td></tr>
<tr><td>Item9:</td><td><input tupe="text" name="Item9" value="<?php echo $dbItem9; ?>"></td><td><input tupe="text" name="Rs9" value="<?php echo $dbRs9; ?>"></td></tr>
<tr><td>Item10:</td><td><input tupe="text" name="Item10" value="<?php echo $dbItem10; ?>"></td><td><input tupe="text" name="Rs10" value="<?php echo $dbRs10; ?>"></td></tr>
<tr><td>Item11:</td><td><input tupe="text" name="Item11" value="<?php echo $dbItem11; ?>"></td><td><input tupe="text" name="Rs11" value="<?php echo $dbRs11; ?>"></td></tr>
<tr><td>Item12:</td><td><input tupe="text" name="Item12" value="<?php echo $dbItem12; ?>"></td><td><input tupe="text" name="Rs12" value="<?php echo $dbRs12; ?>"></td></tr>
<tr><td align="center" colspan="3"><input type="submit" name="submit" value=" Salveaza "></td></tr>
</table>
</form>
<?php
$Item1 = $_POST['Item1'];
$Item2 = $_POST['Item2'];
$Item3 = $_POST['Item3'];
$Item4 = $_POST['Item4'];
$Item5 = $_POST['Item5'];
$Item6 = $_POST['Item6'];
$Item7 = $_POST['Item7'];
$Item8 = $_POST['Item8'];
$Item9 = $_POST['Item9'];
$Item10 = $_POST['Item10'];
$Item11 = $_POST['Item11'];
$Item12 = $_POST['Item12'];
$dbRs1 = $rand['Rs1'];
$dbRs2 = $rand['Rs2'];
$dbRs3 = $rand['Rs3'];
$dbRs4 = $rand['Rs4'];
$dbRs5 = $rand['Rs5'];
$dbRs6 = $rand['Rs6'];
$dbRs7 = $rand['Rs7'];
$dbRs8 = $rand['Rs8'];
$dbRs9 = $rand['Rs9'];
$dbRs10 = $rand['Rs10'];
$dbRs11 = $rand['Rs11'];
$dbRs12 = $rand['Rs12'];
$submit = $_POST['submit'];
if (isset ($_POST['Item1']))
{
if ($Item1&&$Item2)
{
include_once ('connect.php');
$scriere = mysql_query("INSERT INTO `itemi` (`Id`, 'Item1', 'Item2', 'Item3', 'Item4', 'Item5', 'Item6', 'Item7', 'Item8', 'Item9', 'Item10', 'Item11', 'Item12', 'Rs1' , 'Rs2' , 'Rs3' , 'Rs4' , 'Rs5' , 'Rs6' , 'Rs7' , 'Rs8' , 'Rs9' , 'Rs10' , 'Rs11' , 'Rs12') VALUES (NULL, '$Item1', '$Item2', '$Item3', '$Item4', '$Item5', '$Item6', '$Item7', '$Item8', '$Item9', '$Item10', '$Item11', '$Item12' , '$Rs1' , '$Rs2' , '$Rs3' , '$Rs4' , '$Rs5' , '$Rs6' , '$Rs7' , '$Rs8' , '$Rs9' , '$Rs10' , '$Rs11' , '$Rs12');");
echo "Datele au fost Schimbate";
echo "Datele au fost introduse";
//header("location:index.php");
echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=modificare-date.php'>";
}
else {
echo "Completati ambele campuri.";
}
}
?>
Anexa 8. Pagina pentru modificareaitemilor din datelor din baza
<html>
<head>
<title>Modificare date</title>
</head>
<body>
<h1>Modificati Datele</h1>
<?php
// Variabila globala get
$getid = $_GET['id'];
// conectare Mysql
include_once ('connect.php');
//Afisare date doar unde variabila getid = id
$citire = mysql_query("SELECT * FROM itemi WHERE id='$getid' ")or die (mysql_error());
while ($rand= mysql_fetch_assoc($citire))
{
$id = $rand['id'];
$dbRs1 = $rand['Rs1'];
$dbRs2 = $rand['Rs2'];
$dbRs3 = $rand['Rs3'];
$dbRs4 = $rand['Rs4'];
$dbRs5 = $rand['Rs5'];
$dbRs6 = $rand['Rs6'];
$dbRs7 = $rand['Rs7'];
$dbRs8 = $rand['Rs8'];
$dbRs9 = $rand['Rs9'];
$dbRs10 = $rand['Rs10'];
$dbRs11 = $rand['Rs11'];
$dbRs12 = $rand['Rs12'];
$dbItem1 = $rand['Item1'];
$dbItem2 = $rand['Item2'];
$dbItem3 = $rand['Item3'];
$dbItem4 = $rand['Item4'];
$dbItem5 = $rand['Item5'];
$dbItem6 = $rand['Item6'];
$dbItem7 = $rand['Item7'];
$dbItem8 = $rand['Item8'];
$dbItem9 = $rand['Item9'];
$dbItem10 = $rand['Item10'];
$dbItem11 = $rand['Item11'];
$dbItem12 = $rand['Item12'];
}
// formularu care in afisam ceia ce avem in baza de date
?> <form action="" method="post">
<table border="1">
<tr><td></td><td>Itimii</td><td>Raspunsuri</td></tr>
<tr><td><h3>Item1:</h3></td><td><input tupe="text" name="Item1" value="<?php echo $dbItem1; ?>"></td><td><input tupe="text" name="Rs1" value="<?php echo $dbRs1; ?>"></td></tr>
<tr><td><h3>Item2:</h3></td><td><input tupe="text" name="Item2" value="<?php echo $dbItem2; ?>"></td><td><input tupe="text" name="Rs2" value="<?php echo $dbRs2; ?>"></td></tr>
<tr><td><h3>Item3:</h3></td><td><input tupe="text" name="Item3" value="<?php echo $dbItem3; ?>"></td><td><input tupe="text" name="Rs3" value="<?php echo $dbRs3; ?>"></td></tr>
<tr><td><h3>Item4:</h3></td><td><input tupe="text" name="Item4" value="<?php echo $dbItem4; ?>"></td><td><input tupe="text" name="Rs4" value="<?php echo $dbRs4; ?>"></td></tr>
<tr><td><h3>Item5:</h3></td><td><input tupe="text" name="Item5" value="<?php echo $dbItem5; ?>"></td><td><input tupe="text" name="Rs5" value="<?php echo $dbRs5; ?>"></td></tr>
<tr><td><h3>Item6:</h3></td><td><input tupe="text" name="Item6" value="<?php echo $dbItem6; ?>"></td><td><input tupe="text" name="Rs6" value="<?php echo $dbRs6; ?>"></td></tr>
<tr><td><h3>Item7:</h3></td><td><input tupe="text" name="Item7" value="<?php echo $dbItem7; ?>"></td><td><input tupe="text" name="Rs7" value="<?php echo $dbRs7; ?>"></td></tr>
<tr><td><h3>Item8:</h3></td><td><input tupe="text" name="Item8" value="<?php echo $dbItem8; ?>"></td><td><input tupe="text" name="Rs8" value="<?php echo $dbRs8; ?>"></td></tr>
<tr><td><h3>Item9:</h3></td><td><input tupe="text" name="Item9" value="<?php echo $dbItem9; ?>"></td><td><input tupe="text" name="Rs9" value="<?php echo $dbRs9; ?>"></td></tr>
<tr><td><h3>Item10:</h3></td><td><input tupe="text" name="Item10" value="<?php echo $dbItem10; ?>"></td><td><input tupe="text" name="Rs10" value="<?php echo $dbRs10; ?>"></td></tr>
<tr><td><h3>Item11:</h3></td><td><input tupe="text" name="Item11" value="<?php echo $dbItem11; ?>"></td><td><input tupe="text" name="Rs11" value="<?php echo $dbRs11; ?>"></td></tr>
<tr><td><h3>Item12:</h3></td><td><input tupe="text" name="Item12" value="<?php echo $dbItem12; ?>"></td><td><input tupe="text" name="Rs12" value="<?php echo $dbRs12; ?>"></td></tr>
<tr><td align="center" colspan="3"><input type="submit" name="submit" value="Salvati"></td></tr>
</table>
</form>
<?php
$Rs1 = $_POST['Rs1'];
$Rs2 = $_POST['Rs2'];
$Rs3 = $_POST['Rs3'];
$Rs4 = $_POST['Rs4'];
$Rs5 = $_POST['Rs5'];
$Rs6 = $_POST['Rs6'];
$Rs7 = $_POST['Rs7'];
$Rs8 = $_POST['Rs8'];
$Rs9 = $_POST['Rs9'];
$Rs10 = $_POST['Rs10'];
$Rs11 = $_POST['Rs11'];
$Rs12 = $_POST['Rs12'];
$Item1 = $_POST['Item1'];
$Item2 = $_POST['Item2'];
$Item3 = $_POST['Item3'];
$Item4 = $_POST['Item4'];
$Item5 = $_POST['Item5'];
$Item6 = $_POST['Item6'];
$Item7 = $_POST['Item7'];
$Item8 = $_POST['Item8'];
$Item9 = $_POST['Item9'];
$Item10 = $_POST['Item10'];
$Item11 = $_POST['Item11'];
$Item12 = $_POST['Item12'];
$submit = $_POST['submit'];
if (isset ($_POST['Item1']))
{
if ($Item1&&$Item2&&$Item3&&$Item4&&$Item5&&$Item6&&$Item7&&$Item8&&$Item9&&$Item10&&$Item11&&$Item2)
{ // mysql Functia Update
$scriere = mysql_query("UPDATE itemi SET Item1='$Item1' , Item2='$Item2' , Item3='$Item3' , Item4='$Item4' , Item5='$Item5' , Item6='$Item6' , Item7='$Item7' , Item8='$Item8' , Item9='$Item9' , Item10='$Item10' , Item11='$Item11' , Item12='$Item12' Rs1='$Rs1' , Rs2='$Rs2' , Rs3='$Rs3' , Rs4='$Rs4' , Rs5='$Rs5' , Rs6='$Rs6' , Rs7='$Rs7' , Rs8='$Rs8' , Rs9='$Rs9' , Rs10='$Rs10' , Rs11='$Rs11' , Rs12='$Rs12' WHERE id='$getid'");
echo "Datele au fost Schimbate";
//header("location:index.php");
echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=modificare-date.php'>";
}
else {
echo "Completati toate campuri.";
}
}
?>
</body>
</html>
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: Soft Pentru Elaborarea Testelor DE Bacalaureat (ID: 150622)
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.
