session_start();
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$name=$_SESSION["username"];
$safe_name = SQLite3::escapeString("$name");
$email=$_POST["email"];
$safe_email=SQLite3::escapeString("$email");
$db = new SQLite3("../database/sqlite.db");
$invite_db = $db->query("SELECT invites FROM user WHERE name='$safe_name';");
$invite_ar = $invite_db->fetchArray(SQLITE3_NUM);
$invite = $invite_ar[0];
if($invite > 0){
/*Generates the invite key => [-_0-9a-zA-Z]{11}*/
$key_array = array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "_", "-", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" );
$length = count($key_array);
$key = "";
for ($i=0;$i<11;$i++){
$index = mt_rand(0,$length-1);
$key = "$key".$key_array[$index];
}
$id_db = $db->query("SELECT id FROM USER WHERE name='$safe_name';");
$id_ar = $id_db->fetchArray(SQLITE3_NUM);
$id = $id_ar[0];
/*Generates the new user and decrease the invites*/
$invite = $invite - 1;
echo "ID: '$id', KEY: '$key', SAFE_EMAIL: '$safe_email'";
if($db->exec("
BEGIN TRANSACTION;
INSERT INTO user (id, name, senpai, key, status, email) VALUES (NULL, NULL, '$id', '$key', 0, '$safe_email');
UPDATE user SET invites='$invite' WHERE id='$id';
COMMIT;")
){
header("Refresh: 0; /invite?reason=success");
} else {
header("Refresh: 0; /invite?reason=database");
}
} else {
header("Refresh: 0; /invite?reason=invites");
}
} else {
/*Prints the formular if requested with GET*/
foreach ($_GET as $name => $value) {
echo 'Name: ' . $name . ' Value: ' . $value . '
';
}
echo "Hallo $name