Documente Academic
Documente Profesional
Documente Cultură
Avantajele aplicaţiei:
- site-ul poate fi foarte uşor personalizat
- poate fi folosit atat pe Internet, cat si pe reţeaua locală a unei
companii
- datorită tehnologiilor folosite (PHP, mySQL) este independent
de platformă, in sensul că poate fi upload-at atât pe servere cu
Linux, cat şi pe cele cu Windows.
2
Aplicaţie Web. Examen Grilă Online
3
Aplicaţie Web. Examen Grilă Online
1.2 . Intranet
4
Aplicaţie Web. Examen Grilă Online
Lansat relativ recent (1989), prin WEB s-a vrut în principal definirea
unui mod de reprezentare a documentelor complexe conţinand pe lângă
text, şi imagini, animaţie, sunete astfel încât acestea să poata fi
vehiculate economic pe reţeaua Internet deja aparută din anii ’60.
Iniţiatorul acestui proiect a fost Tim Berners-Le, cercetător in cadrul
Consiliului European pentru Cercetarea Nucleară (CERN), Laboratorul
European pentru Fizica Particulelor de la Geneva. Obiectivul principal al
proiectului a constat in definirea unui sitem hipertext de comunicare
între computere pentru schimbul de documente în vederea utilizării în
5
Aplicaţie Web. Examen Grilă Online
6
Aplicaţie Web. Examen Grilă Online
7
Aplicaţie Web. Examen Grilă Online
8
Aplicaţie Web. Examen Grilă Online
9
Aplicaţie Web. Examen Grilă Online
10
Aplicaţie Web. Examen Grilă Online
Iată câteva din cele mai importante atuuri ale acestui server Web:
- Este un web server puternic, flexibil, care respectă
standardele HTTP/1.1
11
Aplicaţie Web. Examen Grilă Online
12
Aplicaţie Web. Examen Grilă Online
13
Aplicaţie Web. Examen Grilă Online
2.3. PHP
14
Aplicaţie Web. Examen Grilă Online
15
Aplicaţie Web. Examen Grilă Online
De ce PHP4 ?
PHP este mai puţin evoluat ca HTML, dar probabil mai simplu decât
JavaScript sau ASP şi cu siguranţă mai puţin complex din punct de vedere
conceptual decât JSP. Este un adevărat limbaj de programare. Spre
deosebire de PHP, ColdFusion este o aglomeraţie de etichete predefinite,
precum HTML. În PHP, putem defini funcţii după placul inimii doar scriind
un nume şi o definiţie. În ColdFusion ar trebui să folosim etichete
dezvoltate de alte persoane sau procesul de dezvoltare a etichetelor
extensii personalizate (Custom Tag Extension).
16
Aplicaţie Web. Examen Grilă Online
17
Aplicaţie Web. Examen Grilă Online
18
Aplicaţie Web. Examen Grilă Online
2.4. Javascript
19
Aplicaţie Web. Examen Grilă Online
2.5. CSS
20
Aplicaţie Web. Examen Grilă Online
Tabela setări este nu este legată de nici o altă tabelă şi aici sunt
memorate datele specifice fiecărui examen cum ar fi: procentajele din
examen , numărul de întrebări , timpul alocat fiecarei probe . Poate fi
modificată numai de utilizatorii care au un level mare de acces la nivelul
aplicaţiei .
21
Aplicaţie Web. Examen Grilă Online
Baza de date
Tabelul „utilizatori”
22
Aplicaţie Web. Examen Grilă Online
Tabelul „studsecr”
Tabelul „studenti”
23
Aplicaţie Web. Examen Grilă Online
Tabelul „email”
Câmpuri:
− id_user – păstrează id-ul utilizatorului;
− email – email-ul utilizatorului;
− datejoined – data la care s-a inscris pe site.
Tabelul „setari”
24
Aplicaţie Web. Examen Grilă Online
Câmpuri:
− id – cheie primară;
− pexamen –procentul alocat examenului din media finală;
− plab – procentul alocat laboratorului din media finală;
− nrintrebari – numărul de întrebari pe care le v-a conţine
examenul;
− nrminute – numărul de minute alocate examinării;
− autoapprove – (0/1)- 0 daca utilizatorul nu are acces imediat
după înscriere, accesul rămâne astfel la decizia
admimistratorului şi 1 in caz contrar.
Tabelul „ipexam”
25
Aplicaţie Web. Examen Grilă Online
− id – cheie primară;
− ip – pastrează ip-urile de la care un student are acces la
examen;
− id_user – în cazul în care un student a intrat de la un ip
din lista, id_user pastrează id-ul utilizatorului;
Tabelul „grupuri”
Câmpuri:
− teamname– cheie primară;
− teamlead – organizatorul grupului;
− status – se poate seta statusul pentru toti utilizatorii
grupului.
Tabelul „grila”
26
Aplicaţie Web. Examen Grilă Online
27
Aplicaţie Web. Examen Grilă Online
28
Aplicaţie Web. Examen Grilă Online
− Descrierea aplicaţiei
− Structura bazei de date
− Implementarea secţiunii utilizatorilor
− Modalităţi de trimitere a SMS-urilor
− Implementarea secţiunii de administrare
29
Aplicaţie Web. Examen Grilă Online
Titlul site-ului
Continutul, prezentarea
Meniul informatiei
30
Aplicaţie Web. Examen Grilă Online
31
Aplicaţie Web. Examen Grilă Online
32
Aplicaţie Web. Examen Grilă Online
33
Aplicaţie Web. Examen Grilă Online
34
Aplicaţie Web. Examen Grilă Online
Pagina
Principala
Inscriere Autentificare
Validare
Validare
date
NU DA date NU
DA
Verfica tipul
Utilizatorului
setari
Vizualizare
Securizare Date Verifica
utilizatori utilizatori Personale accesul
DA NU
Studenti
Acces
Examen
Interzis
Introducere
grile
grupuri
35
Aplicaţie Web. Examen Grilă Online
4.3.1 Înregistrarea
36
Aplicaţie Web. Examen Grilă Online
4.3.2 Logarea
În cazul în care un utilizator (ce are deja un cont) îşi uită parola,
este ajutat prin punerea la dispoziţie a paginii de reamintire a parolei.
37
Aplicaţie Web. Examen Grilă Online
38
Aplicaţie Web. Examen Grilă Online
39
Aplicaţie Web. Examen Grilă Online
40
Aplicaţie Web. Examen Grilă Online
Pagina Principală
Adaugare Vizualizează
utilizator utilizatori
Selectează
utilizator
Validare
date
NU DA
Adaugă
utilizator
Şterge
utilizator
41
Aplicaţie Web. Examen Grilă Online
Pagina Principală
Vizualizează Listare
studenţii Rezultate studenţi
Selectează
utilizator
Afişează datele
utilizatorului
Modifică
Note şi data de examen
Validează
NU
DA date
Mesaj Eroare
42
Aplicaţie Web. Examen Grilă Online
43
Aplicaţie Web. Examen Grilă Online
Pagina Principală
Securizare
Adauga un acces
grup Vizualizează
grupurile
Pagina de introducere
Selectează grup a ip-rilor
Afişează datele
Afişează datele studentilor din
grupului grupul respectiv
Selectează
Modifică Şterge Start Stop date student
date grup grup Examen Examen
Pagina de
administrare
studenti
Modificare
date student
44
Aplicaţie Web. Examen Grilă Online
45
Aplicaţie Web. Examen Grilă Online
Pagina Principală
Verifică dacă
administratorul a
dat acces la
examen
studenţilor DA
NU
Mesaj: Examenul nu
a inceput
Verifică dacă
ca ip-ul sa fie
autorizat
NU DA
Mesaj:
Ip-ul nu este
autorizat
Verifică sa nu
mai existe o
alta conexiune
de la acelasi
cont.
DA NU
46
Aplicaţie Web. Examen Grilă Online
47
Aplicaţie Web. Examen Grilă Online
48
Aplicaţie Web. Examen Grilă Online
Start Examen
Grila examen
Verifică dacă
ca ip-ul sa fie
autorizat
NU DA
Mesaj:
Mesaj:
Examenul nu Ia id-ul intrebarii Creare grila
Ip-ul nu este
a inceput
autorizat temporala
Baza de date
Grila
49
Aplicaţie Web. Examen Grilă Online
Verifică
NrIntrebari !=Max
Max
Se alege un
Baza de date a număr aleator
fost creeata
Verifică
Dacă nu a fost
deja introdus
DA
Introduce in baza
temporală creeată
id-ul intrebării
50
Aplicaţie Web. Examen Grilă Online
Utilizator
Raspuns corect
Baza de date
Grila
Se compara
raspunsurile
daca coincid daca nu coincid
Se incrementeaza Se incrementeaza
raspunsul corect raspunsul incorect
Formula nota
51
Aplicaţie Web. Examen Grilă Online
Cerinţe hardware
Cerinţe software
La nivel de student
La nivel de administrator:
Capitolul 5. Anexă
Index.htm
<html>
<head>
<title>Structuri de Date si Algoritmi</title>
52
Aplicaţie Web. Examen Grilă Online
</head>
<frameset rows="62,*" cols="*" framespacing="3" frameborder="yes" border="3"
bordercolor="#336699" >
<frame src="titlu.htm " name="titlu" frameborder="no" scrolling="no" noresize marginwidth="0"
marginheight="0">
init.php
<?
function back_link()
{
?>
<script>
parent.Meniu.location.href='/a/butoane2.php';
function backlink()
{
parent.Meniu.location.href='/a/butoane.htm';
}
</script>
<?
}
// Setarile Bazei de date
$dbhost = "localhost"; // DB nume host
$dbusername = "root"; // DB Utilizator
$dbpass = ""; // DB Parola
$dbname = "fonseca"; // DB Nume
$dbpassword = "";
$domain="http://172.18.19.144/a/";
$domain2=$domain."Grile/";
$domain3=$domain."admin/";
$resultpage = "autentificare.php";
$admin = "admin/index.php";
$studenti = "members/index.php";
$link_secretariat= "secretariat/index.php";
$failure = "congresita.php";
$changepassword = $domain."chgpwd.php";
$changepassworda = $domain3."chgpwdadmin.php";
$utilizatori=$domain3."utilizatori.php";
$login = $domain."login.php";
$logout = $domain."logout.php";
$submit = $domain."submit.php";
$info = $domain2."info.php";
$grila_ex = $domain2."grila_ex.php";
$titlu = $domain."titlu.htm";
53
Aplicaţie Web. Examen Grilă Online
$link1 = $domain."butoane.htm";
$link2 = $domain."butoane2.php";
$link3 = $domain."butoane3.htm";
$dbport = "3306"; // default is 3306;
$RelLogin = "login.php";
$confirm = $domain."confirm.php";
$adminemail = "fonseca@hal.cs.tuiasi.ro";
$level_admin=1;
$level_secretariat=2;
$level_examen=3;
$nr_level=4;
$levelu[1]="1"; // level admin
$levelu[2]="2"; // level student
$levelu[3]="3"; //level examen
$levelu[4]="999"; //level student
//date examen
$nr_date_ex=5;
$data_examen[1]="18.06.2004";
$data_examen[2]="19.06.2004";
$data_examen[3]="20.06.2004";
$data_examen[4]="21.06.2004";
$data_examen[5]="22.06.2004";
$nr_grupe=15;
$grupa_std[1]="1201";
$grupa_std[2]="1202";
$grupa_std[3]="1203";
$grupa_std[4]="1204";
$grupa_std[5]="1205";
$grupa_std[6]="1206";
$grupa_std[7]="1207";
$grupa_std[8]="1208";
$grupa_std[9]="1209";
$grupa_std[10]="1210";
$grupa_std[11]="1211";
$grupa_std[12]="1212";
$grupa_std[13]="1213";
$grupa_std[14]="1214";
$grupa_std[15]="1215";
?>
install.php
<?php
include_once('init.php');
//Se creeaza daza de date
function cr_DB()
{
global $dbhost,$dbusername,$dbpass,$dbname,$nr_date_ex,$level_secretariat;
echo "Se initializeaza conectarea la baza de date MYSQL.<BR><BR>";
echo "dbhost.user.pass".$dbhost.$dbusername.$dbpass;
$link=mysql_connect($dbhost,$dbusername,$dbpass)
or die("Nu se poate conecta la baza de date.<BR>");
mysql_drop_db($dbname);
mysql_create_db($dbname);
$echo1="Database ".$dbname." a fost creeata .<BR><BR>";
54
Aplicaţie Web. Examen Grilă Online
echo $echo1;
mysql_select_db($dbname);
mysql_query("CREATE TABLE studenti (id int(4) NOT NULL auto_increment,id_user
int(4) NOT NULL default '',data_ex varchar(10),id_secr int(4),nota_ex float,nota_lab float,media
float,PRIMARY KEY (id))");
echo "Table Studenti a fost creeata .<BR>";
mysql_query("CREATE TABLE ipexam (id int(4) NOT NULL auto_increment,ip
varchar(15) NOT NULL default '',id_user int(4),PRIMARY KEY (id))");
echo "Table Ipexam a fost creeata .<BR>";
mysql_query("CREATE TABLE studsecr (id int(4) NOT NULL
auto_increment,fname varchar(30) NOT NULL default '',lname varchar(20) NOT NULL default
'',grupa int(5),nrmatricol int(4),cnp varchar(13),user_creat int(1),PRIMARY KEY (id))");
echo "Table Secretariat a fost creeata .<BR>";
mysql_query("CREATE TABLE utilizatori (id int(4) NOT NULL auto_increment,uname
varchar(25) NOT NULL default '',passwd varchar(32) NOT NULL default '',team varchar(25) NOT
NULL default '',level int(4) NOT NULL default '0',status varchar(10) NOT NULL default
'',lastlogin datetime default NULL,logincount int(11) default NULL,PRIMARY KEY (id))");
$pass=md5("a");
mysql_query("INSERT INTO utilizatori VALUES ( '1', 'admin', '$pass', 'Admin', '1', 'active', '',
0)");
mysql_query("INSERT INTO utilizatori VALUES ( '2', 'secretariat', '$pass', 'Secretariat',
'$level_secretariat', 'active', '0', 0)");
echo "Table Utilizatori a fost creeata .<BR>";
mysql_query("CREATE TABLE grupuri (teamname varchar(25) NOT NULL,teamlead
varchar(25) NOT NULL,status varchar(10) NOT NULL, PRIMARY KEY teamname");
mysql_query("INSERT INTO grupuri VALUES ( '1', 'Ungrouped', 'admin', 'active')");
mysql_query("INSERT INTO grupuri VALUES ( '2', 'Admin', 'admin', 'active')");
mysql_query("INSERT INTO grupuri VALUES ( '3', 'Secretariat', 'admin', 'active')");
global $data_examen;
for($i=1;$i<=$nr_date_ex;$i++)
{
mysql_query("INSERT INTO grupuri VALUES ( '(3+$i)', '".$data_examen[$i]."', 'admin',
'active')");
echo "Am creat grupul ".$data_examen[$i]." <br> "; }
echo "Table Grupuri a fost creeata .<BR>";
mysql_query("CREATE TABLE email (id_user int(4) NOT NULL default '',email varchar(45)
NOT NULL default '',datejoined datetime NOT NULL default '0000-00-00 00:00:00')" );
echo "Table Email a fost creeata .<BR>";
mysql_query("CREATE TABLE setari (id int(4) NOT NULL auto_increment,pexamen int(2),plab
int(2),nrintrebari int(2),autoapprove tinyint(4) NOT NULL default '0',autosendadmin tinyint(4)
NOT NULL default '0',nrminute int(4) default '20',PRIMARY KEY (id),UNIQUE KEY id (id))");
echo "<BR>Tabelul Grila a fost creat .<BR>";
mysql_close($link);
echo "<BR>Conexiunea cu serverul MYSQL a fost inchisa .<BR>";
}
echo "<BR><BR><BR><center><b>Initzializare pagina</b></center><BR><BR><BR>";
cr_DB();
?>
autentificare.php
<?
// deschide o sesiune
// se vor stoca in cookie variabilele username and password chiar daca nu sunt corecte.
pentru asta // //trebuie verificata fiecare pagina pentru ca ea sa fie securizata..
$password=md5($password);
setcookie ("USERNAME", $username, time()+7200);
setcookie ("PASSWORD", $password, time()+7200);
include ("auth.php");
include_once("init/init.php");
55
Aplicaţie Web. Examen Grilă Online
auth.php
<?php
include_once("init/init.php");
class auth{
var $DBHOST ; // DB DBHOST
var $USERNAME ; // Utilizator
var $PASSWORD ; // PASSWORD utilizator
var $DBNAME ; // DB NAME
var $DBUSERNAME;
var $DBPASSWORD;
function auth($username1, $password1,$host1,$dbusername1,$dbpassword,$dbname1) {
$this->DBHOST=$host1;
$this->USERNAME=$username1;
56
Aplicaţie Web. Examen Grilă Online
$this->PASSWORD=$password1;
$this->DBNAME=$dbname1;
$this->DBUSERNAME=$dbusername1;
$this->DBPASSWORD=$dbpassword;
}
// Autentificarea
function autentificare($username1, $password1)
{
$query = "SELECT * FROM utilizatori WHERE uname='$username1' AND
passwd='$password1' AND status='active'";
$UpdateRecords = "UPDATE utilizatori SET lastlogin = NOW(), logincount =
logincount + 1 WHERE uname='$username1'";
$connection = mysql_connect($this->DBHOST, $this->DBUSERNAME, $this-
>DBPASSWORD);
$SelectedDB = mysql_select_db($this->DBNAME);
$result = mysql_query($query);
$numrows = mysql_num_rows($result);
$row = mysql_fetch_array($result);
// Daca numarul de campuri cautate este 0, inseamna ca nu s-a potrivit numele
userului cu parola.
if ($numrows == 0) {
return false;
}
elseif ($row["level"]==1) { // LOGARE ADMIN
$Update = mysql_query($UpdateRecords);
return 1;
}elseif ($row["level"]==2) { // LOGARE secretariat
$Update = mysql_query($UpdateRecords);
return 2;
}
else {
$Update = mysql_query($UpdateRecords);
return $row;
}
}
// Aceasta functie e folosita pt fiecare pagina care se doreshte a fi securizata
57
Aplicaţie Web. Examen Grilă Online
if ($username1 == "sa") {
return "Utilizatorul nu poate fi sters.";
}
elseif ($username1 == "admin") {
return "Utilizatorul admin nu poate fi sters.";
}
$connection = mysql_connect($this->DBHOST, $this->DBUSERNAME, $this-
>DBPASSWORD);
$SelectedDB = mysql_select_db($this->DBNAME);
$IdUtil = "SELECT id FROM utilizatori WHERE uname='$username1'";
$result1=mysql_query($IdUtil);
$row1=mysql_fetch_array($result1);
$temp1=$row1['id'];
$IdStud = "SELECT id_secr FROM studenti WHERE id_user='$temp1'";
$result2=mysql_query($IdStud);
$row2=mysql_fetch_array($result2);
$temp2=$row2['id_secr'];
mysql_query("UPDATE studsecr SET user_creat = '0' WHERE id='$temp2'");
$result3 = mysql_query("DELETE FROM studenti WHERE id_user='$temp1'");
$result = mysql_query($qDelete);
return mysql_error();
}
// Adauga Utilizator
function add_user($username1, $password1, $team, $level, $status) {
$qUserExists = "SELECT * FROM utilizatori WHERE uname='$username1'";
$qInsertUser = "INSERT INTO utilizatori(uname, passwd, team, level, status,
lastlogin, logincount)
VALUES ('$username1', '".md5($password1)."', '$team', '$level', '$status', '', 0)";
$connection = mysql_connect($this->DBHOST, $this->DBUSERNAME, $this-
>DBPASSWORD);
// Verifica daca campurile au fost completate
if (trim($username1) == "") {
return "camp gol";
}
elseif (trim($level) == "") {
return "level gol";
}
// Verifica daca user-ul exista
$SelectedDB = mysql_select_db($this->DBNAME);
$user_exists = mysql_query($qUserExists);
if (mysql_num_rows($user_exists) > 0) {
return "exista utilizator";
58
Aplicaţie Web. Examen Grilă Online
}
else {
// Adauga Utilizatorul in baza de date
$SelectedDB = mysql_select_db($this->DBNAME);
$result = mysql_query($qInsertUser);
return mysql_affected_rows();
}
}
// Adauga o grupa
function add_team($teamname, $teamlead, $status="active") {
$qGroupExists = "SELECT * FROM grupuri WHERE teamname='$teamname'";
$qInsertGroup = "INSERT INTO grupuri(teamname, teamlead, status)
VALUES ('$teamname', '$teamlead', '$status')";
$connection = mysql_connect($this->DBHOST, $this->DBUSERNAME, $this-
>DBPASSWORD);
// Verifica daca campurile au fost completate
if (trim($teamname) == "") {
return "campul grup gol";
}
// Verifica daca grupul exista
$SelectedDB = mysql_select_db($this->DBNAME);
$group_exists = mysql_query($qGroupExists);
if (mysql_num_rows($group_exists) > 0) {
return "grupa exista";
}
else {
// Adauga Utilizatorul in baza de date
$SelectedDB = mysql_select_db($this->DBNAME);
$result = mysql_query($qInsertGroup);
return mysql_affected_rows();
}
}
// Modifica grupul
function modify_team($teamname, $teamlead, $status) {
$qUpdate = "UPDATE grupuri SET teamlead='$teamlead', status='$status'
WHERE teamname='$teamname'";
$qUserStatus = "UPDATE utilizatori SET status='$status' WHERE
team='$teamname'";
if ($teamname == "Admin" AND $status=="inactive") {
return "Grupul Admin nu poate fi inactivat.";
}
elseif ($teamname == "Secretariat" AND $status=="inactive") {
return "Grupul Secretariat nu poate fi inactivat.";
}
elseif ($teamname == "Ungrouped" AND $status=="inactive") {
return "Ungrouped nu poate fi inactivat.";
}
else {
$connection = mysql_connect($this->DBHOST, $this->DBUSERNAME,
$this->DBPASSWORD);
// Face Update la status , daca el era Inactiv
$SelectedDB = mysql_select_db($this->DBNAME);
$userresult = mysql_query($qUserStatus);
$result = mysql_query($qUpdate);
return 1;
}
59
Aplicaţie Web. Examen Grilă Online
}
// Sterge Grupa
function delete_team($teamname) {
$qDelete = "DELETE FROM grupuri WHERE teamname='$teamname'";
$qUpdateUser = "UPDATE utilizatori SET team='Ungrouped' WHERE
team='$teamname'";
if ($teamname == "Admin") {
return "Grupul Admin nu poate fi sters.";
}
elseif ($teamname == "Ungrouped") {
return "Ungrouped nu poate fi sters.";
}
elseif ($teamname == "Secretariat") {
return "Grupul Secretariat nu poate fi sters.";
}
$connection = mysql_connect($this->DBHOST, $this->DBUSERNAME, $this-
>DBPASSWORD);
$SelectedDB = mysql_select_db($this->DBNAME);
$result = mysql_query($qUpdateUser);
$result = mysql_query($qDelete);
return mysql_error();
}
}
?>
process.php
<?
include_once("init/init.php");
$fname=strtolower($fname);
$lname=strtolower($lname);
?>
<html>
<head>
<title>Procesare date</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="./style/tabel.css" rel="stylesheet" type="text/css">
</head>
<?
include ("auth.php");
$connection = mysql_connect($dbhost, $dbusername, $dbpassword);
$db = mysql_select_db($dbname);
// Setarile pt login
$qSetup = mysql_query("SELECT * FROM setari");
$SetupRow = mysql_fetch_array($qSetup);
$AutoApprove = $SetupRow["autoapprove"];
$AutoSendAdmin = $SetupRow["autosendadmin"];
60
Aplicaţie Web. Examen Grilă Online
if (trim($ValidEmailDomains)=="")
{
$EmailArray = "";
}
else
{ $EmailArray = split (" ", $ValidEmailDomains);
}
61
Aplicaţie Web. Examen Grilă Online
<br><br><br>
<div align="center"><font size="4"><b>Campul Nume nu poate sa ramana necompletat!
<br><input type=button value="Reveniti" onClick="history.go(-1)"></b></font></div>
<?
exit;
}
if (!trim($lname))
{
?>
<br><br><br>
<div align="center"><font size="4"><b>Campul Utilizator nu poate sa ramana necompletat!
<br><input type=button value="Reveniti" onClick="history.go(-1)"></b></font></div>
<?
exit;
}
if (!trim($email))
{ ?>
<br><br><br>
<div align="center"><font size="4"><b>Campul E-mail nu poate sa ramana necompletat!
<br><input type=button value="Reveniti" onClick="history.go(-1)"></b></font></div>
<? exit;
}
if (!trim($nr_matr_signup))
{ ?>
<br><br><br>
<div align="center"><font size="4"><b>Numarul matricol trebuie introdus corect!
<br><input type=button value="Reveniti" onClick="history.go(-1)"></b></font></div>
<?
exit;
}
if (!trim($cnp_signup))
{ ?>
<br><br><br>
<div align="center"><font size="4"><b>Codul numeric personal trebuie introdus corect!
<br><input type=button value="Reveniti" onClick="history.go(-1)"></b></font></div>
<?
exit;
}
if(!$NameExist)
{
?>
<br><br><br>
if(!$NrmatrExist)
{ ?>
<div align="center"><font size="4"><b><? print "<font size=\"3\" face=\"Verdana, Arial\"
color=\"#FF0000\"><b>".ucwords($fname)." ".ucwords($lname)."</b></font>";?> cu numarul
matricol <font color="Blue"> <?echo $nr_matr_signup;?> </font> nu apare in baza de date ca fiind
inscris la curs<br><input type=button value="Reveniti" onClick="history.go(-
1)"></b></font></div>
<?
exit;
}
62
Aplicaţie Web. Examen Grilă Online
if(!$CNPExist)
{?>
<div align="center"><font size="4"><b><? print "<font size=\"3\" face=\"Verdana, Arial\"
color=\"#FF0000\"><b>".ucwords($fname)." ".ucwords($lname)."</b></font>";?> cu numarul
matricol <?echo $nr_matr_signup;?> si cu CNP <font color="Blue"><? echo $cnp_signup; ?
></font> nu apare in baza de date ca fiind inscris la curs!<br><input type=button value="Reveniti"
onClick="history.go(-1)"></b></font></div>
<?
exit;
}
if(!$GrupaExist)
{ ?>
<div align="center"><font size="4"><b><? print "<font size=\"3\" face=\"Verdana, Arial\"
color=\"#FF0000\"><b>".ucwords($fname)." ".ucwords($lname)."</b></font>";?> cu numarul
matricol <?echo $nr_matr_signup;?> si cu CNP <? echo $cnp_signup; ?> si grupa <font
color="Blue"><?echo $grupa_student;?></font> nu apare in baza de date ca fiind inscris la curs!
<br><input type=button value="Reveniti" onClick="history.go(-1)"></b></font></div>
<? exit;
}
<? exit;
}
$found=false;
if ($EmailArray!="")
{
for ($ct=0;$ct<=sizeof($EmailArray)-1;$ct++)
{
if (eregi($EmailArray[$ct], $email))
{
$ct=sizeof($EmailArray);
$found=true;
}
else
{
$found=false;
}
}
}
else
{
$found = true;
}
if (!$found)
{?>
63
Aplicaţie Web. Examen Grilă Online
//Daca in tabela studsecr campul cont_creat==1 atunci nu se mai poate crea alt cont(cu alt
username/pass) pentru
//respectivul student.
$UsercreatQuery = mysql_query("SELECT * FROM studsecr WHERE cnp='$cnp_signup'
and user_creat='0'");
$UsercreatExist = mysql_num_rows($UsercreatQuery);
if(!$UsercreatExist)
{ ?>
<div align="center"><font size="4"><b><? print "<font size=\"3\" face=\"Verdana, Arial\"
color=\"#FF0000\"><b>".ucwords($fname)." ".ucwords($lname)."</b></font>";?> cu numarul
matricol <?echo $nr_matr_signup;?> si cu CNP <? echo $cnp_signup; ?> din grupa <?echo
$grupa_student;?>mai este odata inregistrat pe site!<br><input type=button value="Reveniti"
onClick="history.go(-1)"></b></font></div>
<? exit;
}
//$enc_passwd = md5($password);
$AddToAuth = new auth($USERNAME, $PASSWORD,$dbhost,$dbusername,
$dbpass,$dbname);
for($i=1;$i<=$nr_date_ex;$i++)
if($data_examen[$i]==$data_ex) $team_temp=$data_ex;
64
Aplicaţie Web. Examen Grilă Online
$add = $AddToAuth->add_user($username,$password,$team_temp,"999",
$MemberStatus,'', 0);
if ($add)
{
$IdsecrQuerry=mysql_query("SELECT id FROM studsecr WHERE
cnp='$cnp_signup'");
$IdsecrRow = mysql_fetch_array($IdsecrQuerry);
$temp=$IdsecrRow['id'];
if ($AutoSendAdmin == 1)
{
if ($add==1)
{
$AdminSubject = "O noua inscriere!";
$AdminMessage = "Suntetzi informat ca" . $username . " s-a inscris la
examen in data de ";//".$data_ex .";
$sent = @mail($adminemail, $AdminSubject, $AdminMessage, "From:
$adminemail\r\nReply-to:$email");
}
}
?>
<SCRIPT language="JavaScript1.1">
<!--
location.replace("<? echo $RelLogin; ?>");
//-->
</SCRIPT>
</body>
</html>
check.php
<?
include_once("init/init.php");
$CheckSecurity = new auth($USERNAME, $PASSWORD,$dbhost,$dbusername,$dbpass,
$dbname);
$check = $CheckSecurity->page_check($USERNAME, $PASSWORD);
if ($check == false)
{
65
Aplicaţie Web. Examen Grilă Online
stud.php
<?
include_once("/init/init.php");
function start_ex($dbhost,$dbusername,$dbpassword,$dbname,$team)
{
global $data_examen,$nr_date_ex,$level_examen;
$connection = mysql_connect($dbhost,$dbusername,$dbpassword)
or die("Nu se poate conecta la baza de date.<BR>");
$SelectedDB = mysql_select_db($dbname);
$today = date("d.m.Y");
if(strcmp($team,$today)==0)
{
//$temp_grup="ZiuaEx".substr($team,6,1);
$querry1= "UPDATE utilizatori SET level='$level_examen' WHERE team='$team'";
mysql_query($querry1);
return $temp_grup;
}
else return "data cur dif de data ex pt grup";
}
function stop_ex($dbhost,$dbusername,$dbpassword,$dbname,$team)
{
global $data_examen,$nr_date_ex,$level_examen;
$connection = mysql_connect($dbhost,$dbusername,$dbpassword)
or die("Nu se poate conecta la baza de date.<BR>");
$SelectedDB = mysql_select_db($dbname);
$today = date("d.m.Y");
$querry1= "UPDATE utilizatori SET level='999' WHERE team='$team'";
mysql_query($querry1);
return $team;
}
function modify_stud($dbhost,$dbusername,$dbpassword,$dbname,$data_ex,$nota_ex,$nota_lab,
$media,$cnpS)
{
global $data_examen,$nr_date_ex;
if($nota_lab=='')
return "nota_lab vid";
if($nota_ex<0 || $nota_ex>=11)
return "nota_ex incorecta";
if($nota_lab<0 || $nota_lab>=11)
return "nota_lab incorecta";
$connection = mysql_connect($dbhost,$dbusername,$dbpassword)
or die("Nu se poate conecta la baza de date.<BR>");
$SelectedDB = mysql_select_db($dbname);
$querry="SELECT id FROM studsecr WHERE cnp='$cnpS'";
66
Aplicaţie Web. Examen Grilă Online
$result=mysql_query($querry);
$row=mysql_fetch_array($result);
$temp=$row['id'];
$querry1= "UPDATE studenti SET nota_ex='$nota_ex', nota_lab='$nota_lab',
media='$media',data_ex='$data_ex' WHERE id_secr='$temp'";
$result0 = mysql_query("SELECT id_user FROM studenti WHERE id_secr='$temp' ");
$row0 = mysql_fetch_array($result0);
$id_user= $row0["id_user"];
$temp_team=$data_ex;
$querry01= "UPDATE utilizatori SET team='$temp_team' WHERE id='$id_user'";
$result01=mysql_query($querry01);
$result1=mysql_query($querry1);
return mysql_affected_rows();
}
?>
secr.php
<?
function add_secr_stud($dbhost,$dbusername,$dbpassword,$dbname,$numeS,$prenumeS,$grupaS,
$nrmatricolS,$cnpS){
$numeS=strtolower($numeS);
$prenumeS=strtolower($prenumeS);
if($numeS=='')
return "Nume_vid";
if($prenumeS=='')
return "Prenume vid";
if($grupaS=='')
return "Grupa vida";
if($nrmatricolS=='')
return "Nrmatricol vid";
if($cnpS=='')
return "CNP vid";
for($i=0;$i<=strlen($numeS)-1;$i++)
if(!((ord($numeS[$i])>=ord("a") && ord($numeS[$i])<=ord("z") ) ||
(ord($numeS[$i])>=ord("A") &&ord($numeS[$i])<=ord("Z"))))
{
return "Nume incorect";
}
for($i=0;$i<=strlen($prenumeS)-1;$i++)
if(!((ord($prenumeS[$i])>=ord("a") && ord($prenumeS[$i])<=ord("z") ) ||
(ord($prenumeS[$i])>=ord("A") &&ord($prenumeS[$i])<=ord("Z"))))
{
return "Prenume incorect";
}
for($i=0;$i<=strlen($nrmatricolS)-1;$i++)
if(!(ord($nrmatricolS[$i])>=ord("0") && ord($nrmatricolS[$i])<=ord("9")) )
{
return "nrmatricol incorect";
}
for($i=0;$i<=strlen($cnpS)-1;$i++)
if(!(ord($cnpS[$i])>=ord("0") && ord($cnpS[$i])<=ord("9")) )
{
return "cnp incorect";
}
if(strlen($nrmatricolS)!=4) return "nrmatricol!=4";
if(strlen($cnpS)!=13) return "cnp!=13";
$qInsertStud= "INSERT INTO studsecr (fname,lname,grupa,nrmatricol,cnp,user_creat) VALUES
('$numeS','$prenumeS','$grupaS','$nrmatricolS','$cnpS','0') ";
$CNPQuerry="SELECT * FROM studsecr WHERE cnp='$cnpS'";
$nrMatricolQuerry="SELECT * FROM studsecr WHERE nrmatricol='$nrmatricolS'";
$connection = mysql_connect($dbhost,$dbusername,$dbpassword)
67
Aplicaţie Web. Examen Grilă Online
function delete_secr_stud($dbhost,$dbusername,$dbpassword,$dbname,$cnpS) {
$qDelete = "DELETE FROM studsecr WHERE cnp='$cnpS'";
$connection = mysql_connect($dbhost,$dbusername,$dbpassword);
$SelectedDB = mysql_select_db($dbname);
$qSelectStudSecr=mysql_query("SELECT id FROM studsecr WHERE
cnp='$cnpS'");
$row_stud_secr=mysql_fetch_array($qSelectStudSecr);
$id_secr_temp=$row_stud_secr['id'];
$qDelete1 = "DELETE FROM studenti WHERE id_secr='$id_secr_temp'";
$result1 = mysql_query($qDelete1);
$result = mysql_query($qDelete);
return mysql_error();
}
function modify_secr_stud($dbhost,$dbusername,$dbpassword,$dbname,$numeS,$prenumeS,
$grupaS,$nrmatricolS,$cnpS){
$numeS=strtolower($numeS);
$prenumeS=strtolower($prenumeS);
if($numeS=='')
return "Nume vid";
if($prenumeS=='')
return "Prenume vid";
if($grupaS=='')
return "Grupa vida";
if($nrmatricolS=='')
return "Nrmatricol vid";
if($cnpS=='')
return "CNP vid";
for($i=0;$i<=strlen($numeS)-1;$i++)
if(!((ord($numeS[$i])>=ord("a") && ord($numeS[$i])<=ord("z") ) ||
(ord($numeS[$i])>=ord("A") &&ord($numeS[$i])<=ord("Z"))))
{
return "Nume incorect";
}
68
Aplicaţie Web. Examen Grilă Online
for($i=0;$i<=strlen($prenumeS)-1;$i++)
if(!((ord($prenumeS[$i])>=ord("a") && ord($prenumeS[$i])<=ord("z") ) ||
(ord($prenumeS[$i])>=ord("A") &&ord($prenumeS[$i])<=ord("Z"))))
{
return "Prenume incorect";
}
for($i=0;$i<=strlen($nrmatricolS)-1;$i++)
if(!(ord($nrmatricolS[$i])>=ord("0") && ord($nrmatricolS[$i])<=ord("9")) )
{
return "nrmatricol incorect";
}
for($i=0;$i<=strlen($cnpS)-1;$i++)
if(!(ord($cnpS[$i])>=ord("0") && ord($cnpS[$i])<=ord("9")) )
{
return "cnp incorect";
}
$connection = mysql_connect($dbhost,$dbusername,$dbpassword)
or die("Nu se poate conecta la baza de date.<BR>");
$SelectedDB = mysql_select_db($dbname);
logout.php
<?
// Distruge sesiunea
setcookie ("USERNAME", "", time() - 3600);
setcookie ("PASSWORD", "", time() - 3600);
include_once("init/init.php");
?>
<html>
<head>
<title>Delogare</title>
69
Aplicaţie Web. Examen Grilă Online
changepasswd.php
$user = new auth($USERNAME, $PASSWORD,$dbhost,$dbusername,$dbpass,$dbname);
$connection = mysql_connect($dbhost, $dbusername, $dbpass);
$SelectedDB = mysql_select_db($dbname);
$userdata = mysql_query("SELECT * FROM utilizatori WHERE uname='$USERNAME' and
passwd='$PASSWORD'");
if ($submit)
{
// Verifica daca a fost completata vechea parola
if (trim($oldpasswd) == "")
{
print "<p align=\"center\">";
print " <font face=\"Arial\" color=\"#FF0000\">";
print " <b>Trebuie introdusa parola veche!</b>";
print " </font>";
print "</p>";
exit;
}
// Verifica daca vechea parola este corecta
if ((md5($oldpasswd) != $PASSWORD)&&($oldpasswd!=''))
{
print "<p align=\"center\">";
print " <font face=\"Arial\" color=\"#FF0000\">";
print " <b>Parola veche este greshita!</b>";
print " </font>";
print "</p>";
exit;
}
70
Aplicaţie Web. Examen Grilă Online
}
?>
AdminIp.php
<?
// functia de verificare a ip-ului.
function verif_ip($ip)
{
if($ip=='') return "ip vid";
for($i=0;$i<strlen($ip);$i++)
if(!($ip[$i]>='0' && $ip[$i]<='9') && $ip[$i]!='.')
return "ip incorect";
if (eregi("^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$", $ip)) {
for ($i = 1; $i <= 3; $i++) {
if (!(substr($ip, 0, strpos($ip, ".")) >= "0" && substr($ip, 0, strpos($ip, ".")) <= "255"))
{
return "ip format";
}
$ip = substr($ip, strpos($ip, ".") + 1);
}
global $dbhost,$dbusername,$dbpass,$dbname;
$link=mysql_connect($dbhost,$dbusername,$dbpass) or die("Nu se poate conecta la baza de date.<BR>");
mysql_select_db($dbname);
$SelectezDB = mysql_select_db($this->DBNAME);
if ($check["level"] != $level_admin)
71
Aplicaţie Web. Examen Grilă Online
{
print "<font face=\"Arial, Helvetica, sans-serif\" size=\"5\" color=\"#FF0000\">";
print "<b>Acces Nepermis</b>";
print "</font><br>";
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\" color=\"#000000\">";
print "<b>Nu ai permisiunea sa vizualizezi aceasta pagina.</b></font>";
exit;
}?>
<?
$get_id=$_GET["id"];
$mesaje="<center>".$_GET["mesaje"]."</center>";
if ($_GET["action"]=='Sterg')
{
$query="delete from ipexam where id=".$_GET["id"];
mysql_query($query);
}
$Ip=$_GET["ip"];
if ( $Ip!='')
{
$gExistaIp="SELECT ip FROM ipexam where ip='$Ip'";
$query="INSERT INTO ipexam VALUES ('','$Ip','')";
if ($_GET["action"]=="Edit")
{ $situation=verif_ip($Ip);
if($situation=="ip vid")
{ $mesaje="<center><font color='red'>Campul Ip este vid!</font></center>";
$situation='';
}elseif($situation=="ip incorect")
{$mesaje="<center><font color='red'>Campul Ip trebuie sa contina cifre sau caracterul '.' !
</font></center>";
$situation='';
}
elseif($situation=="ip format")
{
$mesaje="<center><font color='red'>Format ip gresit!</font></center>";
$situation='';
}
else
{$query="Update ipexam SET id='$get_id',ip='$Ip' where id='$get_id'" ;
mysql_query($query);
$mesaje="<center>Modificati ip-ul: $Ip</center>";
$situation='';
}
} else
{
$exista_ip = mysql_query($gExistaIp);
$temp=mysql_num_rows($exista_ip);
if ( $temp > 0)
{
$mesaje="<center>Ip-ul pe care doritzi sa-l introducetzi mai exista in baza de date .</center>";
}
else
{
$situation=verif_ip($Ip);
if($situation=="ip vid")
{
$mesaje="<center><font color='red'>Campul Ip este vid!</font></center>";
$situation='';
72
Aplicaţie Web. Examen Grilă Online
}
elseif($situation=="ip incorect")
{
$mesaje="<center><font color='red'>Campul Ip trebuie sa contina cifre sau caracterul '.' !
</font></center>";
$situation='';
}
elseif($situation=="ip format")
{
$mesaje="<center><font color='red'>Format ip gresit!</font></center>";
$situation='';
}
else
{
mysql_query($query);
$mesaje="<center>Ip-ul $Ip a fost introdus in baza de date.</center>";
$situation='';
}
}
}
}
?>
Startexamen.php
<?
include_once ("../init/init.php");
if (!class_exists(auth))
{
include ("../auth.php");
}
include ("../check.php");
if ($check["level"] != $level_examen)
{
print "<font face=\"Arial, Helvetica, sans-serif\" size=\"5\" color=\"#FF0000\">";
print "<b>Acces Nepermis</b>";
print "</font><br>";
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\" color=\"#000000\">";
print "<b>Examenul inca nu a inceput.</b></font>"; exit;
}
$id_user=$check["id"];
$connection = mysql_connect($dbhost, $dbusername, $dbpass);
$SelectedDB = mysql_select_db($dbname);
$ip_local=$_SERVER['REMOTE_ADDR'];
73
Aplicaţie Web. Examen Grilă Online
if($num)
{
$row = mysql_fetch_array($result);
print "<font face=\"Arial, Helvetica, sans-serif\" size=\"5\" color=\"#FF0000\">";
print "<b>Acces Nepermis. </b>";
print "</font><br>";
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\" color=\"#000000\">";
print "<b>Acest cont mai este conectat odata la examen de la ip-ul".
$row['ip']."</b></font>";
exit;
}
$querry="select * from setari";
$result=mysql_query($querry);
$x=mysql_fetch_array($result);
$nrintreb=$x["nrintrebari"];
$timp=$x["nrminute"];
mysql_close();
?>
Grila _ex.php
<html>
<head>
</script>
<link href="../style/tabel.css" rel="stylesheet" type="text/css">
<title>Grila Examen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="no-cache">
<meta http-equiv="Expires" content="0">
<!--<meta http-equiv="refresh" content="5"> -->
<meta http-equiv="Cache-Control" content="no-cache"><meta http-equiv="Pragma" content="no-cache">
</head>
<body>
<?
include_once('./../init/init.php');
function nr_chk($chk)
{
if ($chk=='on')
return 1;
else return 0;
}
global $dbhost,$dbusername,$dbpass,$dbname,$NumarDeIntrebari;
if (!class_exists(auth))
{
include_once ("../auth.php");
}
include_once ("../check.php");
mysql_connect($dbhost,$dbusername,$dbpass);
mysql_select_db($dbname);
$ip_local=$_SERVER['REMOTE_ADDR'];
74
Aplicaţie Web. Examen Grilă Online
$num_ip_valid=mysql_num_rows($result);
if(!$num_ip_valid)
{
//echo "level:".$check["level"];
print "<font face=\"Arial, Helvetica, sans-serif\" size=\"5\" color=\"#FF0000\">";
print "<b>Acces Nepermis.De pe ip-ul $ip_local nu se poate da examenul.</b>";
print "</font><br>";
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\" color=\"#000000\">";
print "<b>Nu ai permisiunea sa vizualizezi aceasta pagina.</b></font>";
exit;
}
$id_stud=$check["id"];
mysql_query("update ipexam set id_user='$id_stud' where ip='$ip_local'");
if ($nota_ta==0)
{
$query1="select * from ".$dbname.".Grila_".$id_stud." order by Id_Intrebare";
$result1=mysql_query($query1);
$num=mysql_num_rows($result1);
$i=0;
while ($i < $num) {
$id_intrebare=mysql_result($result1,$i,"Id_Intrebare");
$nr_grila[$i]=$id_intrebare;
$i++;
}
$link=mysql_connect($dbhost,$dbusername,$dbpass)
or die("Nu se poate conecta la baza de date.<BR>");
mysql_select_db($dbname);
$i=0;
?>
<form name=formularul method=GET action="rezultate.php">
<div id="Layer1" style="position:Absolute; left:5px; top:50px; width:450px; height:226px; z-index:1">
<?
echo "<table width='400px' cellspacing=0 style=\"border:solid 1px; bgcolor:#cccccc;\">";
while ($i < $NumarDeIntrebari) {
$j=0;
$j1=0;
$query="select * from Grila where id=".$nr_grila[$i]." order by id";
$result=mysql_query($query);
$num=mysql_num_rows($result);
$id=mysql_result($result,0,"id");
$Intrebare=mysql_result($result,0,"Intrebare");
$NR=mysql_result($result,0,"NrRaspunsuri");
$R[$j++]=mysql_result($result,0,"Raspuns1");
$R[$j++]=mysql_result($result,0,"Raspuns2");
$R[$j++]=mysql_result($result,0,"Raspuns3");
$R[$j++]=mysql_result($result,0,"Raspuns4");
75
Aplicaţie Web. Examen Grilă Online
$R[$j++]=mysql_result($result,0,"Raspuns5");
if ($i==round($NumarDeIntrebari/2))
{
?></table>
</div>
<div id="Layer2" style="position:Absolute; left:455px; top:50px; width:450px; height:226px; z-index:1">
<?
echo "<table width='400px' cellspacing=0 style=\"border:solid 1px; bgcolor:#cccccc;\" >";
}
?>
<input type="hidden" name="id_<?echo $i+1;?>" value="<?echo $nr_grila[$i];?>">
<tr bordercolor="#000000" bgcolor="#00CCFF">
<td class="th"></td>
<td class="th" align="center">Intrebarea nr. <?echo $i+1;?></td>
</tr>
<tr>
<td class="row3"></td>
<td class="row3"><?echo $Intrebare;?></td>
</tr>
<tr>
<td colspan=2 class="th"> </td>
</tr>
<?
for ($nri=0;$nri<$NR;$nri++)
{
?>
<tr >
<td width="15px" class="th"><input type="checkbox" name="chk<?$js=$i+1;$nrj=$nri+1; echo $js."_".
$nrj;?>"> </td>
<td class="rowpic"><?echo $R[$nri];?> </td>
</tr>
<?}
if ($NR<5)
for ($nri=$NR;$nri<5;$nri++)
{ echo "<tr><td> ";}
?>
<tr>
<td colspan=2> </td>
</tr>
<?
$i++;
}
mysql_close($link);
?></table>
</div>
<div style="position:Absolute; left:405px; top:0px; width:450px; height:226px; z-index:5">
</div>
</form>
<?}
else
{
?>
<script>
parent.Meniu.location.href='<? echo $link3 ?>';
parent.titlu.location.href='<? echo $titlu ?>';
</script>
<br><br>
76
Aplicaţie Web. Examen Grilă Online
creare_grila.php
<?
if (!class_exists(auth))
{
include ("../auth.php");
}
include_once ("../check.php");
include_once('../init/init.php');
include_once('nr_grile.php');
$id_stud=$check["id"];
global $dbhost,$dbusername,$dbpass,$dbname;
mysql_connect($dbhost,$dbusername,$dbpass);
mysql_select_db($dbname);
if ($num==0)
{
include_once('../init/init.php');
global $dbhost,$dbusername,$dbpass,$dbname;
$link=mysql_connect($dbhost,$dbusername,$dbpass)
or die("Nu se poate conecta la baza de date.<BR>");
mysql_select_db($dbname);
$query="select * from Grila ";
$result=mysql_query($query);
$num=mysql_num_rows($result);
mysql_close($link);
$Intrebare=$_GET["Intrebare"];
for ($i=0;$i<$NumarDeIntrebari;$i++)
{
$test=rand(0,$num-1);
if ($i>0)
{
$j=0;
while ($j<$i)
{
if ($nr_grila[$j]!=$test)
$nr_grila[$i]=$test;
77
Aplicaţie Web. Examen Grilă Online
else
{$test=rand(0,$num-1);
$j=-1;
}
$j++;
}
}
else
$nr_grila[$i]=$test;
}
$i=0;
while ($i < $NumarDeIntrebari) {
$j=0;
$j1=0;
$id=mysql_result($result,$nr_grila[$i],"id");
mysql_connect($dbhost,$dbusername,$dbpass);
mysql_select_db($dbname);
$query="insert into ".$dbname.".Grila_".$id_stud." values ('$id')";
mysql_query($query);
mysql_close();
$i++;
}
}
?>
rezultate.php
<html>
<head>
<title>Rezultate</title>
<body>
<?
include_once('../init/init.php');
include_once ("nr_grile.php");
if (!class_exists(auth))
{
include ("../auth.php");
}
include ("../check.php");
global $dbhost,$dbusername,$dbpass,$dbname,$NumarDeIntrebari;
$link=mysql_connect($dbhost,$dbusername,$dbpass)
or die("Nu se poate conecta la baza de date.<BR>");
mysql_select_db($dbname);
if ($check["level"] != $level_examen)
{
$query="drop table Grila_".$id_stud;
mysql_query($query);
mysql_close($link);
print "<font face=\"Arial, Helvetica, sans-serif\" size=\"5\" color=\"#FF0000\">";
print "<b>Examenul s-a </b>";
print "</font><br>";
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\" color=\"#000000\">";
print "<b>Nu ai permisiunea sa vizualizezi aceasta pagina.</b></font>";
exit;
}
78
Aplicaţie Web. Examen Grilă Online
$id_stud=$check["id"];
{
$nota=0;
$nr_casute=0;
?>
<table width="60%" align="center" border="1" cellpadding="0" cellspacing="0" bordercolor="#000000">
<tr>
<td width="15%" class="th" align="center">Intrebarea NR. </td>
<td width="15%" class="th" align="center">NR. Raspunsuri </td>
<td width="15%" class="th" align="center">Raspunsuri Corecte </td>
<td width="15%" class="th" align="center">Punctajul Raspunsului </td>
<?
for ($i=1;$i<=$NumarDeIntrebari;$i++)
{
$nr_grila[$i]=$_GET["id_$i"];
$query="select * from Grila where id=".$nr_grila[$i];
$result=mysql_query($query);
$num=mysql_num_rows($result);
$id=mysql_result($result,0,"id");
$Intrebare=mysql_result($result,0,"Intrebare");
$NR=mysql_result($result,0,"NrRaspunsuri");
?>
<tr>
<td width="15%" class="rowpic" align="center"><? echo $i ?></td>
<?
$corecte=0;
$incorecte=0;
for ($nri=1;$nri<=$NR;$nri++)
{
$R[$nri]=mysql_result($result,0,"Raspuns".$nri);
$c[$nri]=mysql_result($result,0,"chk".$nri);
$c1[$nri]=0;
if($_GET["chk".$i."_".$nri]=='on')
$c1[$nri]=1;
if ($c[$nri]==$c1[$nri])
$corecte++;
else
$incorecte++;
}
$nota1=($corecte-0.5*$incorecte)/$NR;
if($nota1<0)
{
$nota1=0;
}
$nota1= round($nota1*100)/100;
$nota+=$nota1;
?>
<td width="15%" class="rowpic" align="center"><? echo $NR ?></td>
79
Aplicaţie Web. Examen Grilă Online
$num=mysql_num_rows($result);
$pex=mysql_result($result,0,"pexamen");
$plab=100-$pex;
$media=$pex/100*$nota+$plab/100*$nota_lab;
$query="Update studenti SET media='$media' where id_user=".$id_stud;
mysql_query($query);
mysql_close($link);
?>
</body><html>
<?
}
else
{ ?>
<br><br>
<table width="30%" align="center" border="0" cellpadding="0" cellspacing="0" bordercolor="#000000">
<tr>
<td width="30%" align="center"><font size="3"><b>Aveti dat o data examenul cu nota</b></font></td>
</tr>
<tr>
<td align="center"><font size="3" color="red"><b><? echo $nota_ta;?></b></font></td>
</tr>
</table>
<? } ?>
80