Your IP : 216.73.217.79


Current Path : /var/www/cesa.co.za/cceconvenors/
Upload File :
Current File : /var/www/cesa.co.za/cceconvenors/markexam.php

<?php
//ini_set('display_errors', 1);
//error_reporting(E_ALL);
session_start(); // Initialize Session data
ob_start(); // Turn on output buffering
$Questionnaire_ID = intval($_REQUEST["qid"]);

$sExamMarkingPassword = "convenorsRgr8";

if (isset($_POST["ExamSessionPwd"]) && ($_POST["ExamSessionPwd"] == $sExamMarkingPassword))
    $_SESSION["ExamSessionPwd"] = md5($sExamMarkingPassword);
?>
<?php include "ewcfg7.php" ?>
<?php include "ewmysql7.php" ?>
<?php include "phpfn7.php" ?>
<?php include "CCEAssignmentsinfo.php" ?>
<?php include "userfn7.php" ?>
<?php

if (!isset($_SESSION[EW_SESSION_STATUS]) || ($_SESSION[EW_SESSION_STATUS] != "login")) {
    header("Location: " . "http" . ($_SERVER["HTTPS"] == "on" ? "s" : "") . "://" . $_SERVER["HTTP_HOST"] . "/cceconvenors/login.php");
    die();
}

$StudentID = intval($_REQUEST["st"]);

$conni = mysqli_connect(EW_CONN_HOST, EW_CONN_USER, EW_CONN_PASS, EW_CONN_DB);

$sql = "SELECT CCEExams.*, CCEStudents.FirstName, CCEStudents.Surname, CCEExamTiming.CCEExamTimingID, 
    CCEExamTiming.TimeStarted, CCEExamTiming.NewEndTime
FROM CCEExams
INNER JOIN CCEExamTiming ON (CCEExams.Questionnaire_ID=CCEExamTiming.Questionnaire_ID)
INNER JOIN CCEStudents ON (CCEExamTiming.CCEStudentID=CCEStudents.CCEStudentID)
WHERE CCEExams.Questionnaire_ID='" . $Questionnaire_ID . "' AND CCEStudents.CCEStudentID=" . $StudentID . " "
        . "AND CCEExamTiming.CCEExamTimingID = " . $_REQUEST['CCEExamTimingID'];
$rec = mysqli_query($conni, $sql);
if ($row = mysqli_fetch_assoc($rec)) {
    extract($row);
    if (!empty($NewEndTime))
        $CloseDate = $NewEndTime;
} else {
    die();
}
mysqli_free_result($rec);

$bUserCanMark = CCEConvenorAuth::canMarkExam($MarkerUser, $Questionnaire_ID);

$bUserCanMark = true;

if (!$bUserCanMark) {
    
    ?>
    <script language="javascript">
        alert("You are not authorized to mark this exam.");

        window.location.href = "http" . ($_SERVER["HTTPS"] == "on" ? "s" : "") . "://" . $_SERVER["HTTP_HOST"] . "/cceconvenors/exams.php?qid=" . $Questionnaire_ID;
    </script>
    <?php

    // header("Location: " . "http" . ($_SERVER["HTTPS"] == "on" ? "s" : "") . "://" . $_SERVER["HTTP_HOST"] . "/cceconvenors/exams.php?qid=" . $Questionnaire_ID);
    // die();
}

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // Always modified
header("Cache-Control: private, no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0
?>
<?php include "header.php" ?>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.min.js" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<link rel="stylesheet" href="/autosuggest/css/autosuggest_inquisitor.css" type="text/css" media="screen" charset="utf-8" />
<script type="text/javascript" src="/autosuggest/js/bsn.AutoSuggest_c_2.0.js"></script>
<style>
    img {
        max-width: 98%;
        margin: auto;
    }
</style>
<div class="container">
    <div class="row">
        <div class="col-lg-12">
            <h1><?php echo htmlspecialchars($Questionnaire_Name); ?></h1>
        </div></div>
    <div class="row">
        <div class="col-lg-10">
            <h2><?php echo $FirstName . " " . $Surname; ?></h2>
        </div>
        <div class="col-lg-2"><a href="exams.php?qid=<?php echo $Questionnaire_ID; ?>"><b>&lt;&lt; Return to Exam List</b></a>
        </div>
    </div>
    <?php
    $sql = "SELECT CCEExamQuestions.* FROM CCEExamQuestions
        WHERE CCEExamQuestions.Questionnaire_ID='" . $Questionnaire_ID . "' AND InUse = 1 
        ORDER BY Section_ID, Display_Order, Question_ID";
    $recQ = mysqli_query($conni, $sql);

    if (isset($_POST["qid"]) && !isset($_POST["ExamSessionPwd"])) {
        while ($rowQ = mysqli_fetch_assoc($recQ)) {
            extract($rowQ);
            if (isset($_POST["Marks_" . $Question_ID]) && strlen($_POST["Marks_" . $Question_ID]) > 0 && floatval($_POST["Marks_" . $Question_ID]) > -1) {
                $sql = "REPLACE INTO CCEExamMarks (CCEStudentID, Questionnaire_ID, Question_ID, Question_Score, 
                        DateMarked, MarkedBy, Archived, ExamTimingID)
                    VALUES (" . $StudentID . ", " . $Questionnaire_ID . ", " . $Question_ID . ", 
                        " . floatval($_POST["Marks_" . $Question_ID]) . ", NOW(), 
                        '" . $_SESSION[EW_SESSION_USER_NAME] . "',0, " . $CCEExamTimingID . ")";
            } else {
                $sql = "DELETE FROM CCEExamMarks WHERE CCEStudentID=" . $StudentID . " 
                    AND Questionnaire_ID=" . $Questionnaire_ID . " AND Question_ID=" . $Question_ID . " 
                    AND Archived=0";
            }
            
            echo $sql . '<br />';
            
            mysqli_query($conni, $sql);
        } //while
        ?>
        <div class="alert alert-success">The marks have been allocated. You can <a href="exams.php?qid=<?php echo $Questionnaire_ID; ?>"><b><u>return to the exam list</u></b></a> now, or edit the marks below.</div>
        <?php
        mysqli_data_seek($recQ, 0);
    }

    $sql = "SELECT SUM(Question_Score) AS ExamScore FROM CCEExamMarks "
            . "WHERE CCEStudentID=" . $StudentID . " AND Questionnaire_ID=" . $Questionnaire_ID . " AND Archived=0 "
            . "AND ExamTimingID = " . $_REQUEST['CCEExamTimingID'];
//    echo $sql;
    $rec = mysqli_query($conni, $sql);
    if ($row = mysqli_fetch_assoc($rec)) {
        if (is_numeric($row["ExamScore"])) {
            ?>
            <div class="alert alert-info">Current score: <?php echo $row["ExamScore"]; ?> / <?php echo $Score; ?> = <?php echo round($row["ExamScore"] / $Score * 100); ?>%</div>
            <?php
        }
    }

    if (!isset($_SESSION["ExamSessionPwd"]) || ($_SESSION["ExamSessionPwd"] != md5($sExamMarkingPassword))) {
        ?>
        <p>Your marking session has timed out, please enter the <?php echo date("Y"); ?> exam marking password below:</p>
        <form method="post" action="markexam.php">
            <input type="hidden" name="qid" value="<?php echo $Questionnaire_ID; ?>">
            <input type="hidden" name="st" value="<?php echo $StudentID; ?>">
            <input type="hidden" name="CCEExamTimingID" value="<?php echo $_REQUEST['CCEExamTimingID']; ?>">
            <input type="password" name="ExamSessionPwd">
            <input type="submit" value="Start Marking">
        </form>
        <?php
    } else {
        ?>
        <form name="form1" method="post" action="markexam.php" enctype="multipart/form-data" id="SaveForm">
            <input type="hidden" name="qid" value="<?php echo $Questionnaire_ID; ?>">
            <input type="hidden" name="st" value="<?php echo $StudentID; ?>">
            <input type="hidden" name="CCEExamTimingID" value="<?php echo $_REQUEST['CCEExamTimingID']; ?>">
            <?php
            $countMarks = 0;
            while ($rowQ = mysqli_fetch_assoc($recQ)) {
                extract($rowQ);
                $QuestionTitle = "Question " . $QuestionTitle . " (" . $NumMarks . " mark" . ($NumMarks > 1 ? "s" : "") . ") ID: "
                        . $Question_ID;
                $IsOptional = true;
                ?>
                <div class="card">
                    <div class="card-header"><?php echo $QuestionTitle; ?>
                        <?php
                        if ($Answer_Type == "a" || $Answer_Type == "s" || $Answer_Type == "m") {
                            ?>
                            <div class="float-right"><a href="#" data-toggle="modal" data-target="#Model<?php echo $Question_ID; ?>">Model Answer</a></div>
                            <div class="modal" tabindex="-1" role="dialog" id="Model<?php echo $Question_ID; ?>">
                                <div class="modal-dialog" role="document">
                                    <div class="modal-content">
                                        <div class="modal-body">
                                            <p><?php echo nl2br($Model_Answer); ?></p>
                                        </div>
                                        <div class="modal-footer">
                                            <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <?php
                        }
                        ?>
                    </div>
                    <div class="card-body">
                        <div class="row">
                            <div class="col-lg-4"><p><?php echo nl2br($Question); ?></p>
                            </div>
                            <div class="col-lg-6" id="Question_<?php echo $Question_ID; ?>_cell">
                                <?php
                                $iMarks = 0;
                                $sQuestion_Score = "";
                                $sql = "SELECT CCEExamAnswers.*, CCEExamStudentAnswers.Answer_Text AS StudentAnswer,
                                        CCEExamMarks.Question_Score, CCEExamStudentAnswers.Respondee_ID, cea2.Answer AS MultipleChoiceStudentAnswer
                                    FROM CCEExamAnswers 
                                    LEFT JOIN CCEExamStudentAnswers ON
                                        (CCEExamAnswers.Question_ID=CCEExamStudentAnswers.Question_ID
                                            AND CCEExamAnswers.Answer_ID=CCEExamStudentAnswers.Answer_ID
                                            AND CCEExamStudentAnswers.Respondee_ID=" . $StudentID . "
                                            AND CCEExamStudentAnswers.ExamTimingID = " . $_REQUEST['CCEExamTimingID'] . ")
                                    LEFT JOIN CCEExamMarks ON
                                        (CCEExamAnswers.Question_ID=CCEExamMarks.Question_ID
                                            AND CCEExamMarks.CCEStudentID=" . $StudentID . "
                                            AND CCEExamMarks.Archived=0
                                            AND CCEExamMarks.ExamTimingID = " . $_REQUEST['CCEExamTimingID'] . ")
                                    LEFT OUTER JOIN CCEExamAnswers cea2 ON CCEExamStudentAnswers.Answer_text = cea2.Answer_ID
                                    WHERE CCEExamAnswers.Question_ID='" . $Question_ID . "' "
                                        . " AND (CCEExamStudentAnswers.ExamTimingID = " . $_REQUEST['CCEExamTimingID'] . " OR CCEExamMarks.Question_ID IS NOT NULL)"
                                        . " ORDER BY CCEExamStudentAnswers.Respondee_ID DESC LIMIT 0,1";
                                
                                // echo 'Please ignore debug info: ' . $sql . '<br />';
                        
                                $recA = mysqli_query($conni, $sql);

                                if ($rowA = mysqli_fetch_assoc($recA)) {
                                    
                                    extract($rowA);

                                    // var_dump($rowA);
                                    // echo '<br />';

                                    if ($Answer_Type == "m") {
                                        $StudentAnswer = $rowA["MultipleChoiceStudentAnswer"];
                                    } else {
                                        $StudentAnswer = $rowA["StudentAnswer"];
                                    } 

                                    if (empty($rowA["Respondee_ID"])) {
                                        echo "<i>No answer given</i>";
                                        $iMarks = 0;
                                        $sQuestion_Score = "0";
                                    } elseif (empty($rowA["Answer"])) {
                                        if (strlen($StudentAnswer) == 0) {
                                            echo "<i>No answer given</i>";
                                            $iMarks = 0;
                                            $sQuestion_Score == $rowA["Question_Score"];
                                        } else {
                                            echo nl2br($StudentAnswer);
                                            $iMarks = floatval($rowA["Answer_Score"] + 0);
                                            $sQuestion_Score = floatval($rowA["Question_Score"] + 0);
                                        }
                                    } else {
                                        echo nl2br($StudentAnswer);
                                        $iMarks = floatval($rowA["Answer_Score"] + 0);
                                        $sQuestion_Score = floatval($rowA["Question_Score"] + 0);
                                    }
                                } else {
                                   $iMarks = 0;
                                   $sQuestion_Score = "0";
                                   echo "<i>No answer given</i>";
                                }
                                mysqli_free_result($recA);
                                ?>
                            </div>
                            <div class="col-lg-2">
                                <?php
                                if ($Answer_Type != "m" && $Answer_Type != "s") {
                                    ?>
                                    <input type="number" step="0.5" name="Marks_<?php echo $Question_ID; ?>" value="<?php echo $sQuestion_Score; ?>" min="0" max="<?php echo $NumMarks; ?>" lang="en">
                                    <?php
                                } else {
                                    ?>
                                    <input type="hidden" name="Marks_<?php echo $Question_ID; ?>" value="<?php echo $iMarks; ?>">
                                    <?php
                                    echo ($iMarks + 0);
                                }
                                $countMarks += (int) $sQuestion_Score;
//                                echo '<br />Counting: ' . $countMarks . '<br />';
                                ?>
                            </div>
                        </div>
                    </div>
                </div>
                <?php
            } //while questions
            mysqli_free_result($recQ);
            ?>
            <div class="row">
                <div class="col-12 d-flex justify-content-center">
                    <input name="button" type="submit" class="btn btn-success btn-lg" id="buttonSubmit" value="Save Marks">
                </div></div>
        </form>
        <?php
    }
    ?>
</div>
<?php include "footer.php" ?>