T201704041219

This commit is contained in:
Leander
2017-04-04 12:19:55 +02:00
parent 136c26b9e6
commit 1938283583
5 changed files with 143 additions and 128 deletions

View File

@@ -6,37 +6,37 @@
* Time: 14:00 * Time: 14:00
*/ */
require_once('includes.inc.php'); require_once('includes.inc.php');
$data = ''; $data = '';
$error = 0; $error = 0;
$uid = isset($_GET['uid']) ? $_GET['uid'] : ''; $uid = isset($_GET['uid']) ? $_GET['uid'] : '';
$time = isset($_GET['time']) ? $_GET['time'] : ''; $time = isset($_GET['time']) ? $_GET['time'] : '';
$time = (($time === '0') || ($time && gettype(+$time) == 'integer')) ? +$_GET['time'] : 0; $time = (($time === '0') || ($time && gettype(+$time) == 'integer')) ? +$_GET['time'] : 0;
$db = new Database(); $db = new Database();
$chosen_answer = isset($_GET['answer']) ? $_GET['answer'] : ''; $chosen_answer = isset($_GET['answer']) ? $_GET['answer'] : '';
$chosen_answer = (($chosen_answer === '0') || ($chosen_answer && gettype(+$chosen_answer) == 'integer')) ? +$_GET['answer'] : -1; $chosen_answer = (($chosen_answer === '0') || ($chosen_answer && gettype(+$chosen_answer) == 'integer')) ? +$_GET['answer'] : -1;
function calculate_points($time) { function calculate_points($time) {
$points = $time < 2000 ? 100 : 141.1421 - 0.02842916 * $time + 0.000004132312 * pow($time, 2) $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); - 3.432331e-10 * pow($time, 3) + 1.391508e-14 * pow($time, 4) - 2.166078e-19 * pow($time, 5);
$points = $points < 10 ? 10 : intval($points); $points = $points < 10 ? 10 : intval($points);
return $points; return $points;
} }
$correct_answer = $db->query('SELECT "current_right_answer" FROM "Games" WHERE "ID" = $1', array($uid)) $correct_answer = $db->query('SELECT "current_right_answer" FROM "Games" WHERE "ID" = $1', array($uid))
['data'][0]['current_right_answer']; ['data'][0]['current_right_answer'];
$correct = $correct_answer == $chosen_answer ? true : false; $correct = $correct_answer == $chosen_answer ? true : false;
$score = $correct_answer == $chosen_answer ? calculate_points($time) : 0; $score = $correct_answer == $chosen_answer ? calculate_points($time) : 0;
if($uid == '') { if($uid == '') {
$error = 13101; $error = 13101;
} else if($time == 0) { } else if($time == 0) {
$error = 13102; $error = 13102;
} else if($chosen_answer == -1) { } else if($chosen_answer == -1) {
$error = 13103; $error = 13103;
} else if($db->query('SELECT EXISTS (SELECT 1 FROM "Games" WHERE "ID" = $1)', array($uid)) } else if($db->query('SELECT EXISTS (SELECT 1 FROM "Games" WHERE "ID" = $1)', array($uid))
['data'][0]['exists'] == 'f') { ['data'][0]['exists'] == 'f') {
$error = 13104; $error = 13104;
} else { } else {
$old_points = $db->query('SELECT "current_score" FROM "Games" WHERE "ID" = $1', array($uid)) $old_points = $db->query('SELECT "current_score" FROM "Games" WHERE "ID" = $1', array($uid))
['data'][0]['current_score']; ['data'][0]['current_score'];
$new_points = $old_points + $score; $new_points = $old_points + $score;
@@ -55,9 +55,9 @@
$data = array('results' => $results, 'end' => $end); $data = array('results' => $results, 'end' => $end);
$db->query('DELETE FROM "Games" WHERE "ID" = $1', array($uid)); $db->query('DELETE FROM "Games" WHERE "ID" = $1', array($uid));
} }
} }
$response = Database::create_response($data, $error); $response = Database::create_response($data, $error);
print_r($response); print_r($response);
?> ?>

15
categories.php Normal file
View File

@@ -0,0 +1,15 @@
<?php
/**
* Created by PhpStorm.
* User: leanderschmedemann
* Date: 04/04/2017
* Time: 12:14
*/
require_once('includes.inc.php');
$db = new Database();
$categories = $db->query('SELECT "ID", "name" FROM "Categories"')['data'];
print_r($categories);
?>

View File

@@ -6,17 +6,17 @@
* Time: 10:23 * Time: 10:23
*/ */
require_once('includes.inc.php'); require_once('includes.inc.php');
define('PATTERN', '/^[a-zA-Z0-9 ]{6,20}$/'); define('PATTERN', '/^[a-zA-Z0-9 ]{6,20}$/');
$data = ''; $data = '';
$error = 0; $error = 0;
$name = isset($_GET['name']) ? $_GET['name'] : ''; $name = isset($_GET['name']) ? $_GET['name'] : '';
$uid = md5(uniqid(rand(), true)); $uid = md5(uniqid(rand(), true));
$db = new Database(); $db = new Database();
if(preg_match(PATTERN, $name) != 1) { if(preg_match(PATTERN, $name) != 1) {
$error = 11101; $error = 11101;
} else { } else {
// Create user. // Create user.
$db->query('INSERT INTO "Users" ("ID", "name") VALUES ($1, $2)', array($uid, $name)); $db->query('INSERT INTO "Users" ("ID", "name") VALUES ($1, $2)', array($uid, $name));
// Create error if user to create already exists. // Create error if user to create already exists.
@@ -25,8 +25,8 @@
} else { } else {
$data = array('uid' => $uid, 'name' => $name); $data = array('uid' => $uid, 'name' => $name);
} }
} }
$response = Database::create_response($data, $error); $response = Database::create_response($data, $error);
print $response; print $response;
?> ?>

View File

@@ -6,17 +6,17 @@
* Time: 12:07 * Time: 12:07
*/ */
require_once('includes.inc.php'); require_once('includes.inc.php');
define('PATTERN', '/^[a-zA-Z0-9 ]{6,20}$/'); define('PATTERN', '/^[a-zA-Z0-9 ]{6,20}$/');
$data = ''; $data = '';
$error = 0; $error = 0;
$name = isset($_GET['name']) ? $_GET['name'] : ''; $name = isset($_GET['name']) ? $_GET['name'] : '';
$uid = md5(uniqid(rand(), true)); $uid = md5(uniqid(rand(), true));
$db = new Database(); $db = new Database();
if(preg_match(PATTERN, $name) != 1) { if(preg_match(PATTERN, $name) != 1) {
$error = 14101; $error = 14101;
} else { } else {
// Create user. // Create user.
$db->query('UPDATE "Users" SET "name" = $1 WHERE "ID" = $2', array($name, $uid)); $db->query('UPDATE "Users" SET "name" = $1 WHERE "ID" = $2', array($name, $uid));
// Create error if user to create already exists. // Create error if user to create already exists.
@@ -25,8 +25,8 @@
} else { } else {
$data = array('uid' => $uid, 'name' => $name); $data = array('uid' => $uid, 'name' => $name);
} }
} }
$response = Database::create_response($data, $error); $response = Database::create_response($data, $error);
print $response; print $response;
?> ?>

View File

@@ -6,31 +6,31 @@
* Time: 14:07 * Time: 14:07
*/ */
require_once('includes.inc.php'); require_once('includes.inc.php');
$data = ''; $data = '';
$error = 0; $error = 0;
$values = null; $values = null;
$uid = isset($_GET['uid']) ? $_GET['uid'] : ''; $uid = isset($_GET['uid']) ? $_GET['uid'] : '';
$length = isset($_GET['length']) ? $_GET['length'] : ''; $length = isset($_GET['length']) ? $_GET['length'] : '';
$length = (($length === '0') || ($length && gettype(+$length) == 'integer')) ? +$_GET['length'] : 10; $length = (($length === '0') || ($length && gettype(+$length) == 'integer')) ? +$_GET['length'] : 10;
$db = new Database(); $db = new Database();
$questions_count = $db->query('SELECT COUNT(*) FROM "Questions"')['data'][0]['count']; $questions_count = $db->query('SELECT COUNT(*) FROM "Questions"')['data'][0]['count'];
// Return $count random, non repeating numbers in range from $min to $max. // Return $count random, non repeating numbers in range from $min to $max.
function random_numbers($min, $max, $count){ function random_numbers($min, $max, $count){
$numbers = range($min, $max); $numbers = range($min, $max);
shuffle($numbers); shuffle($numbers);
return array_slice($numbers, 0, $count-1); return array_slice($numbers, 0, $count-1);
} }
if($uid == '') { if($uid == '') {
$error = 12101; $error = 12101;
} else if($length == 0) { } else if($length == 0) {
$error = 12102; $error = 12102;
} else if($length > $questions_count) { } else if($length > $questions_count) {
$error = 12103; $error = 12103;
$values = array($questions_count); $values = array($questions_count);
} else { } else {
// Delete existing game for user. // Delete existing game for user.
if($db->query('SELECT EXISTS (SELECT 1 FROM "Games" WHERE "ID" = $1)', array($uid))['data'][0]['exists'] == 't') { if($db->query('SELECT EXISTS (SELECT 1 FROM "Games" WHERE "ID" = $1)', array($uid))['data'][0]['exists'] == 't') {
$db->query('DELETE FROM "Games" WHERE "ID" = $1', array($uid)); $db->query('DELETE FROM "Games" WHERE "ID" = $1', array($uid));
@@ -46,11 +46,11 @@
$q = $db->query('SELECT "ID" FROM "Questions" OFFSET $1 LIMIT 1', array($question))['data'][0]['ID']; $q = $db->query('SELECT "ID" FROM "Questions" OFFSET $1 LIMIT 1', array($question))['data'][0]['ID'];
$db->query('INSERT INTO "GamesQuestions" ("Games_ID", "Questions_ID") VALUES ($1, $2)', array($uid, $q)); $db->query('INSERT INTO "GamesQuestions" ("Games_ID", "Questions_ID") VALUES ($1, $2)', array($uid, $q));
} }
} }
$next_question = Question::get_next_question($db, $uid); $next_question = Question::get_next_question($db, $uid);
$data = array('next' => $next_question); $data = array('next' => $next_question);
$response = Database::create_response($data, $error, $values); $response = Database::create_response($data, $error, $values);
print_r($response); print_r($response);
?> ?>