/lenasys/0.1

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/lenasys/0.1

« back to all changes in this revision

Viewing changes to trunk/DuggaSys/quizSystem/quizChecking/index.php

  • Committer: Henrik G.
  • Date: 2013-03-26 23:22:55 UTC
  • Revision ID: henrik.gustavsson@his.se-20130326232255-ik6snyatlbkf3zs1
First seed of Lenasys ... Needs to be Organized Further

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
?>
 
 
b'\\ No newline at end of file'