2014-07-08 20:14:37 +02:00
< ? php
//============================================================================
// Name : student_questionnaire.php
2017-01-25 18:24:31 +01:00
// Author : Patrick Reipschläger, Lucas Woltmann
// Version : 2.0
// Date : 01-2017
2014-07-08 20:14:37 +02:00
// Description : The form that students have to fill in
// for the ESE evaluation.
//============================================================================
include_once 'libs/formLib.php' ;
include_once 'libs/questionnaireLib.php' ;
include_once 'libs/keyLib.php' ;
2017-01-25 18:24:31 +01:00
include_once 'libs/dbLib.php' ;
2014-07-08 20:14:37 +02:00
// indicates if an error occurred and what error
$error = 0 ;
// Determines if a message box is shown, and what type of message box is shown
$keyState = " " ;
2014-07-21 15:48:40 +02:00
// load the questionnaire and patrons data
2014-07-08 20:14:37 +02:00
$questionnaire = ReadQuestionnaireFile ( STUDENT_QUESTIONNAIRE );
2016-10-13 21:35:26 +02:00
$patrons = array_keys ( ReadPatronsFile ( PATRONS ));
2014-07-08 20:14:37 +02:00
// if the variable is set, the form has been posted to itself and can be validated
if ( isset ( $_POST [ " submit " ]))
{
2017-01-25 18:24:31 +01:00
// read the key state
$keyState = GetKeyState ( KEYFILE , $_POST [ " code " ]);
2014-07-08 20:14:37 +02:00
if ( $keyState == KEYSTATE_ISSUED )
{
// variables for the log data
2017-01-25 18:24:31 +01:00
$questionData = array ();
$tutorData = array ();
2014-07-08 20:14:37 +02:00
$commentData ;
2017-01-25 18:24:31 +01:00
// add the data of the form to the legacy data structure
2014-07-08 20:14:37 +02:00
AddQuestionData ( $_POST , $questionData , $questionnaire );
AddTutorData ( $_POST , $tutorData );
AddCommentData ( $_POST , $commentData );
2017-01-25 18:24:31 +01:00
2016-10-13 18:43:55 +02:00
// quick ~~fix~~ hack
2017-01-25 18:24:31 +01:00
// mail("eseeva@ifsr.de", "ESEEVA2016POST", serialize($_POST));
2016-10-13 18:43:55 +02:00
2017-01-25 18:24:31 +01:00
// write the new data back to the database, only change the state of the key,
2014-07-08 20:14:37 +02:00
// if that action was successful
2017-01-25 18:24:31 +01:00
// Uses $student=1 to imply that a student answered the questionnaire.
if ( WriteLogDatabase ( LOGDB , 1 , $questionData , $tutorData , $commentData , $_POST [ " code " ]))
2014-07-08 20:14:37 +02:00
{
2017-01-25 18:24:31 +01:00
if ( ! SetKeyState ( KEYFILE , $_POST [ " code " ], KEYSTATE_ACTIVATED ))
2015-11-07 16:15:29 +01:00
{
$error = 1 ;
}
2014-07-08 20:14:37 +02:00
}
// otherwise set the error flag
else
$error = 1 ;
}
}
?>
<! DOCTYPE html >
< html >
< head >
< meta charset = " utf-8 " >
< title > ESE Evaluation für Studenten </ title >
< link rel = " stylesheet " type = " text/css " href = " css/bootstrap.css " >
< link rel = " stylesheet " type = " text/css " href = " css/style.css " >
</ head >
< body >
< div class = " container " >
< form action = " " method = " post " >
< ? php
CreateQuestionnaireElement ( " headline " , $questionnaire , $_POST );
if ( $error )
2016-10-11 10:54:29 +02:00
CreateMessageBox ( MSG_DANGER , " Achtung: " , " Deine Evaluation konnte aufgrund eines internen Fehlers leider nicht erfolgreich bearbeitet werden.<br/>Bitte versuch es später noch einmal oder wende dich an einen der Verantwortlichen. " );
2014-07-08 20:14:37 +02:00
else
CreateKeyMessageBox ( $keyState );
CreateQuestionnaireElement ( " code " , $questionnaire , $_POST );
2016-10-13 21:35:26 +02:00
CreateQuestionnaireElement ( " tutorName " , $questionnaire , $patrons );
2014-07-08 20:14:37 +02:00
CreateQuestionnaireElement ( " legend " , $questionnaire , $_POST );
CreateAllQuestionElements ( $questionnaire , $_POST );
CreateQuestionnaireElement ( " comment " , $questionnaire , $_POST );
?>
< div class = " row " >
2016-08-01 15:08:21 +02:00
< input class = " form-control btn-success " type = " submit " name = " submit " value = " Absenden " />
2014-07-08 20:14:37 +02:00
</ div >
</ form >
</ div >
2014-10-09 17:15:49 +02:00
< p ></ p >
2014-07-08 20:14:37 +02:00
</ body >
</ html >
< ? php
function CreateKeyMessageBox ( $keyState )
{
switch ( $keyState )
{
case KEYSTATE_NONEXISTENT : CreateMessageBox ( MSG_DANGER , " Achtung! " , " Der angegebene Code konnte nicht verifiziert werden. Bitte überprüfe deine Eingabe. " ); break ;
case KEYSTATE_UNISSUED : CreateMessageBox ( MSG_DANGER , " Achtung! " , " Der angegebene Code ist ungültig. " ); break ;
2016-10-11 15:41:39 +02:00
case KEYSTATE_ISSUED : CreateMessageBox ( MSG_SUCCESS , " Danke! " , " Der eingebene Code ist korrekt. Dein Fragebogen wurde erfolgreich übermittelt und du bist nun zum Empfang einer ESE-Tasse berechtigt. " ); break ;
2016-10-11 10:54:29 +02:00
case KEYSTATE_ACTIVATED : CreateMessageBox ( MSG_DANGER , " Achtung! " , " Der angegebene Code ist wurde bereits zum Ausfüllen eines Fragebogens verwendet. Es darf pro Student nur ein Fragebogen ausgefüllt werden. " ); break ;
2014-07-08 20:14:37 +02:00
case KEYSTATE_USED : CreateMessageBox ( MSG_DANGER , " Achtung! " , " Der angegebene Code ist wurde bereits eingelöst. Es darf pro Student nur eine ESE-Tasse ausgegeben werden. " ); break ;
}
}
2015-11-07 16:15:29 +01:00
?>