4
if(isset($_POST['checkSelectedQuiz']) || isset($_POST['displayQuizAnswerDetails'])){
9
quizCourseName VARCHAR(200),
10
correctAnswer VARCHAR(255),
12
PRIMARY KEY(qVarNr, quizNr, quizCourseName),
18
quizCourseName VARCHAR(200),
19
courseOccasion VARCHAR(25),
20
answerHash VARCHAR(255),
24
answeredDateTime TIMESTAMP,
25
userAgent VARCHAR(1024),
27
PRIMARY KEY(ssn, qVarNr, quizNr, quizCourseName, courseOccasion),
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);
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";
51
$errorMsg.="Error: Hash NOT cleared";
53
$updateStmt->closeCursor();
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";
62
$hashCompareMsg="Hash check FAILED";
66
if(isset($_POST['saveGrade'])){
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'];
88
$errorMsg.="ERROR: Failed to save new grade";
89
$gradeSavedMsg="Error: Not saved";
91
$updateStmt->closeCursor();
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";
115
$errorMsg.="ERROR: Failed to save new grade comment";
116
$gradeCommentSavedMsg="Error: Not saved";
118
$updateStmt->closeCursor();
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
130
AND AssignedQuizzes.quizCourseName=:CNAME
131
AND AssignedQuizzes.quizNr=:QNR
132
AND AssignedQuizzes.qVarNr=:QVNR
133
AND AssignedQuizzes.courseOccasion=:COCCASION
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']);
143
$quizAnswerData=$stmt->fetch(PDO::FETCH_ASSOC);
144
$content="quizChecking/quizAnswerDetails.html.php";
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
161
$stmt = $pdo->prepare($queryString);
162
$stmt->bindParam(':CNAME', $_POST['courseName']);
163
$stmt->bindParam(':QNR', $_POST['quizNr']);
164
$stmt->bindParam(':COCCASION', $_POST['courseOccasion']);
166
$quizAssignmentsList=$stmt->fetchAll(PDO::FETCH_ASSOC);
168
$content="quizChecking/listQuizAnswers.html.php";
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
174
WHERE Quiz.courseName=:CNAME;";
175
$stmt = $pdo->prepare($queryString);
176
$stmt->bindParam(':CNAME', $_POST['courseName']);
178
$quizList=$stmt->fetchAll(PDO::FETCH_ASSOC);
180
$content="quizChecking/selectQuiz.html.php";
181
}else{ //Display list of courses
183
//Fetch all courses from Course-table to populate course list
184
$queryString = "SELECT * FROM Course";
185
$stmt = $pdo->prepare($queryString);
187
$courseList=$stmt->fetchAll(PDO::FETCH_ASSOC);
189
$content="quizChecking/selectCourse.html.php";
b'\\ No newline at end of file'