bzr branch
http://gegoxaren.bato24.eu/bzr/lenasys/0.1
|
1
by Henrik G.
First seed of Lenasys ... Needs to be Organized Further |
1 |
<?php
|
2 |
//Quiz checking
|
|
3 |
||
4 |
if(isset($_POST['checkSelectedQuiz']) || isset($_POST['displayQuizAnswerDetails'])){ |
|
5 |
/*
|
|
6 |
QuizVariant(
|
|
7 |
qVarNr INTEGER,
|
|
8 |
quizNr INTEGER,
|
|
9 |
quizCourseName VARCHAR(200),
|
|
10 |
correctAnswer VARCHAR(255),
|
|
11 |
quizObjectIDs TEXT,
|
|
12 |
PRIMARY KEY(qVarNr, quizNr, quizCourseName),
|
|
13 |
|
|
14 |
AssignedQuizzes(
|
|
15 |
ssn CHAR(11),
|
|
16 |
quizNr INTEGER,
|
|
17 |
qVarNr INTEGER,
|
|
18 |
quizCourseName VARCHAR(200),
|
|
19 |
courseOccasion VARCHAR(25),
|
|
20 |
answerHash VARCHAR(255),
|
|
21 |
answer TEXT,
|
|
22 |
grade VARCHAR(10),
|
|
23 |
gradeComment TEXT,
|
|
24 |
answeredDateTime TIMESTAMP,
|
|
25 |
userAgent VARCHAR(1024),
|
|
26 |
userIP VARCHAR(20),
|
|
27 |
PRIMARY KEY(ssn, qVarNr, quizNr, quizCourseName, courseOccasion),
|
|
28 |
*/
|
|
29 |
||
30 |
if(isset($_POST['clearAnswerHash'])){ |
|
31 |
//Clear the answer hash (allows resubmitting of the quiz)
|
|
32 |
$updateString = "UPDATE AssignedQuizzes |
|
33 |
SET AssignedQuizzes.answerHash=:AHASH
|
|
34 |
WHERE AssignedQuizzes.qVarNr=:QVNR
|
|
35 |
AND AssignedQuizzes.quizNr=:QNR
|
|
36 |
AND AssignedQuizzes.quizCourseName=:CNAME
|
|
37 |
AND AssignedQuizzes.courseOccasion=:COCCASION
|
|
38 |
AND AssignedQuizzes.ssn=:SSN;"; |
|
39 |
$updateStmt = $pdo->prepare($updateString); |
|
40 |
$hash=null; |
|
41 |
$updateStmt->bindParam(':AHASH', $hash); |
|
42 |
$updateStmt->bindParam(':QNR', $_POST['quizNr']); |
|
43 |
$updateStmt->bindParam(':QVNR', $_POST['qVarNr']); |
|
44 |
$updateStmt->bindParam(':CNAME', $_POST['courseName']); |
|
45 |
$updateStmt->bindParam(':COCCASION', $_POST['courseOccasion']); |
|
46 |
$updateStmt->bindParam(':SSN', $_POST['ssn']); |
|
47 |
$updateStmt->execute(); |
|
48 |
if($updateStmt->execute()){ |
|
49 |
$userMsg.="Hash cleared"; |
|
50 |
} else { |
|
51 |
$errorMsg.="Error: Hash NOT cleared"; |
|
52 |
}
|
|
53 |
$updateStmt->closeCursor(); |
|
54 |
}
|
|
55 |
||
56 |
if(isset($_POST['checkAnswerHash'])){ |
|
57 |
//Check if the answer hash matches login+answer md5-hash
|
|
58 |
$generatedHash=md5($_POST['loginName'].$_POST['answer']); |
|
59 |
if(strcmp($generatedHash,$_POST['answerHash'])==0){ |
|
60 |
$hashCompareMsg="Hash check OK"; |
|
61 |
} else { |
|
62 |
$hashCompareMsg="Hash check FAILED"; |
|
63 |
}
|
|
64 |
}
|
|
65 |
||
66 |
if(isset($_POST['saveGrade'])){ |
|
67 |
//Store new grade
|
|
68 |
$updateString = "UPDATE AssignedQuizzes |
|
69 |
SET AssignedQuizzes.grade=:GRADE
|
|
70 |
WHERE AssignedQuizzes.qVarNr=:QVNR
|
|
71 |
AND AssignedQuizzes.quizNr=:QNR
|
|
72 |
AND AssignedQuizzes.quizCourseName=:CNAME
|
|
73 |
AND AssignedQuizzes.courseOccasion=:COCCASION
|
|
74 |
AND AssignedQuizzes.ssn=:SSN;"; |
|
75 |
$updateStmt = $pdo->prepare($updateString); |
|
76 |
$updateStmt->bindParam(':GRADE', $_POST['grade']); |
|
77 |
$updateStmt->bindParam(':QNR', $_POST['quizNr']); |
|
78 |
$updateStmt->bindParam(':QVNR', $_POST['qVarNr']); |
|
79 |
$updateStmt->bindParam(':CNAME', $_POST['courseName']); |
|
80 |
$updateStmt->bindParam(':COCCASION', $_POST['courseOccasion']); |
|
81 |
$updateStmt->bindParam(':SSN', $_POST['ssn']); |
|
82 |
$updateStmt->execute(); |
|
83 |
if($updateStmt->execute()){ |
|
84 |
$userMsg.="Grade saved"; |
|
85 |
$gradeSavedMsg="Saved"; |
|
86 |
$gradeSavedForSSN=$_POST['ssn']; |
|
87 |
} else { |
|
88 |
$errorMsg.="ERROR: Failed to save new grade"; |
|
89 |
$gradeSavedMsg="Error: Not saved"; |
|
90 |
}
|
|
91 |
$updateStmt->closeCursor(); |
|
92 |
}
|
|
93 |
||
94 |
if(isset($_POST['saveGradeComment'])){ |
|
95 |
//Store new grade comment
|
|
96 |
$updateString = "UPDATE AssignedQuizzes |
|
97 |
SET AssignedQuizzes.gradeComment=:GRADECOMMENT
|
|
98 |
WHERE AssignedQuizzes.qVarNr=:QVNR
|
|
99 |
AND AssignedQuizzes.quizNr=:QNR
|
|
100 |
AND AssignedQuizzes.quizCourseName=:CNAME
|
|
101 |
AND AssignedQuizzes.courseOccasion=:COCCASION
|
|
102 |
AND AssignedQuizzes.ssn=:SSN;"; |
|
103 |
$updateStmt = $pdo->prepare($updateString); |
|
104 |
$updateStmt->bindParam(':GRADECOMMENT', $_POST['gradeComment']); |
|
105 |
$updateStmt->bindParam(':QNR', $_POST['quizNr']); |
|
106 |
$updateStmt->bindParam(':QVNR', $_POST['qVarNr']); |
|
107 |
$updateStmt->bindParam(':CNAME', $_POST['courseName']); |
|
108 |
$updateStmt->bindParam(':COCCASION', $_POST['courseOccasion']); |
|
109 |
$updateStmt->bindParam(':SSN', $_POST['ssn']); |
|
110 |
$updateStmt->execute(); |
|
111 |
if($updateStmt->execute()){ |
|
112 |
$userMsg.="Grade comment saved"; |
|
113 |
$gradeCommentSavedMsg="Saved"; |
|
114 |
} else { |
|
115 |
$errorMsg.="ERROR: Failed to save new grade comment"; |
|
116 |
$gradeCommentSavedMsg="Error: Not saved"; |
|
117 |
}
|
|
118 |
$updateStmt->closeCursor(); |
|
119 |
}
|
|
120 |
||
121 |
if(isset($_POST['displayQuizAnswerDetails'])){ |
|
122 |
//Fetch data for specific quiz answer
|
|
123 |
$queryString = "SELECT Student.ssn, Student.loginName, Student.name, QuizVariant.correctAnswer, AssignedQuizzes.* |
|
124 |
FROM QuizVariant, AssignedQuizzes, Student
|
|
125 |
WHERE AssignedQuizzes.quizCourseName=QuizVariant.quizCourseName
|
|
126 |
AND AssignedQuizzes.qVarNr=QuizVariant.qVarNr
|
|
127 |
AND AssignedQuizzes.quizNr=QuizVariant.quizNr
|
|
128 |
AND AssignedQuizzes.ssn=Student.ssn
|
|
129 |
AND Student.ssn=:SSN
|
|
130 |
AND AssignedQuizzes.quizCourseName=:CNAME
|
|
131 |
AND AssignedQuizzes.quizNr=:QNR
|
|
132 |
AND AssignedQuizzes.qVarNr=:QVNR
|
|
133 |
AND AssignedQuizzes.courseOccasion=:COCCASION
|
|
134 |
;"; |
|
135 |
||
136 |
$stmt = $pdo->prepare($queryString); |
|
137 |
$stmt->bindParam(':SSN', $_POST['ssn']); |
|
138 |
$stmt->bindParam(':CNAME', $_POST['courseName']); |
|
139 |
$stmt->bindParam(':QNR', $_POST['quizNr']); |
|
140 |
$stmt->bindParam(':QVNR', $_POST['qVarNr']); |
|
141 |
$stmt->bindParam(':COCCASION', $_POST['courseOccasion']); |
|
142 |
$stmt->execute(); |
|
143 |
$quizAnswerData=$stmt->fetch(PDO::FETCH_ASSOC); |
|
144 |
$content="quizChecking/quizAnswerDetails.html.php"; |
|
145 |
} else { |
|
146 |
||
147 |
//Fetch all quiz assignments for selected quiz
|
|
148 |
$queryString = "SELECT Student.ssn, Student.loginName, Student.name, AssignedQuizzes.quizNr, AssignedQuizzes.qVarNr, QuizVariant.correctAnswer, AssignedQuizzes.answer, AssignedQuizzes.answerHash, AssignedQuizzes.grade, AssignedQuizzes.gradeComment, AssignedQuizzes.answeredDateTime, Quiz.quizURI |
|
149 |
FROM QuizVariant, AssignedQuizzes, Student, Quiz
|
|
150 |
WHERE AssignedQuizzes.quizCourseName=QuizVariant.quizCourseName
|
|
151 |
AND AssignedQuizzes.qVarNr=QuizVariant.qVarNr
|
|
152 |
AND AssignedQuizzes.quizNr=QuizVariant.quizNr
|
|
153 |
AND AssignedQuizzes.ssn=Student.ssn
|
|
154 |
AND AssignedQuizzes.quizCourseName=:CNAME
|
|
155 |
AND AssignedQuizzes.quizNr=:QNR
|
|
156 |
AND AssignedQuizzes.courseOccasion=:COCCASION
|
|
157 |
AND AssignedQuizzes.quizNr=Quiz.nr
|
|
158 |
ORDER BY Student.name COLLATE utf8_swedish_ci ASC
|
|
159 |
;"; |
|
160 |
||
161 |
$stmt = $pdo->prepare($queryString); |
|
162 |
$stmt->bindParam(':CNAME', $_POST['courseName']); |
|
163 |
$stmt->bindParam(':QNR', $_POST['quizNr']); |
|
164 |
$stmt->bindParam(':COCCASION', $_POST['courseOccasion']); |
|
165 |
$stmt->execute(); |
|
166 |
$quizAssignmentsList=$stmt->fetchAll(PDO::FETCH_ASSOC); |
|
167 |
||
168 |
$content="quizChecking/listQuizAnswers.html.php"; |
|
169 |
}
|
|
170 |
} else if(isset($_POST['listQuizzesForCourseOccasionSubmit'])){ //Course and course occasion selected |
|
171 |
//Fetch all quizzes for selected course
|
|
172 |
$queryString = "SELECT Quiz.nr, Quiz.courseName, Quiz.opening, Quiz.closing, Quiz.autoCorrected |
|
173 |
FROM Quiz
|
|
174 |
WHERE Quiz.courseName=:CNAME;"; |
|
175 |
$stmt = $pdo->prepare($queryString); |
|
176 |
$stmt->bindParam(':CNAME', $_POST['courseName']); |
|
177 |
$stmt->execute(); |
|
178 |
$quizList=$stmt->fetchAll(PDO::FETCH_ASSOC); |
|
179 |
||
180 |
$content="quizChecking/selectQuiz.html.php"; |
|
181 |
}else{ //Display list of courses |
|
182 |
||
183 |
//Fetch all courses from Course-table to populate course list
|
|
184 |
$queryString = "SELECT * FROM Course"; |
|
185 |
$stmt = $pdo->prepare($queryString); |
|
186 |
$stmt->execute(); |
|
187 |
$courseList=$stmt->fetchAll(PDO::FETCH_ASSOC); |
|
188 |
||
189 |
$content="quizChecking/selectCourse.html.php"; |
|
190 |
||
191 |
}
|
|
192 |
?>
|