T201704040053
This commit is contained in:
31
answer.php
31
answer.php
@@ -9,18 +9,35 @@
|
||||
require_once('includes.inc.php');
|
||||
$data = '';
|
||||
$error = 0;
|
||||
$user = isset($_GET['uid']) ? $_GET['uid'] : '';
|
||||
$uid = isset($_GET['uid']) ? $_GET['uid'] : '';
|
||||
$time = isset($_GET['time']) ? $_GET['time'] : '';
|
||||
$time = (($time === '0') || ($time && gettype(+$time) == 'integer')) ? +$_GET['time'] : 0;
|
||||
$answer = isset($_GET['answer']) ? $_GET['answer'] : '';
|
||||
$answer = (($answer === '0') || ($answer && gettype(+$answer) == 'integer')) ? +$_GET['answer'] : -1;
|
||||
$db = new Database();
|
||||
$chosen_answer = isset($_GET['answer']) ? $_GET['answer'] : '';
|
||||
$chosen_answer = (($chosen_answer === '0') || ($chosen_answer && gettype(+$chosen_answer) == 'integer')) ? +$_GET['answer'] : -1;
|
||||
|
||||
function calculate_points($time) {
|
||||
|
||||
$points = $time < 2000 ? 100 : 141.1421 - 0.02842916 * $time + 0.000004132312 * pow($time, 2)
|
||||
- 3.432331e-10 * pow($time, 3) + 1.391508e-14 * pow($time, 4) - 2.166078e-19 * pow($time, 5);
|
||||
$points = $points < 10 ? 10 : intval($points);
|
||||
return $points;
|
||||
}
|
||||
|
||||
//if user is ''...
|
||||
//if time is 0...
|
||||
//if answer is -1...
|
||||
if($uid == '') {
|
||||
$error = 13101;
|
||||
} else if($time == 0) {
|
||||
$error = 13102;
|
||||
} else if($chosen_answer == -1) {
|
||||
$error = 13103;
|
||||
} else {
|
||||
$correct_answer = $db->query('SELECT "current_right_answer" FROM "Games" WHERE "ID" = $1', array($uid))
|
||||
['data'][0]['current_right_answer'];
|
||||
$correct = $correct_answer == $chosen_answer ? true : false;
|
||||
$score = $correct_answer == $chosen_answer ? calculate_points($time) : 0;
|
||||
}
|
||||
|
||||
$results = array('correct' => $correct, 'score', $score);
|
||||
$next_question = Question::get_next_question($db, $uid);
|
||||
$data = array('results' => $results, 'next' => $next_question);
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user