63 lines
1.7 KiB
PHP
Executable File
63 lines
1.7 KiB
PHP
Executable File
<?php
|
|
require "../../main.php";
|
|
|
|
ini_set("display_errors", 1);
|
|
ini_set("display_startup_errors", 1);
|
|
error_reporting(E_ALL);
|
|
|
|
$admin_user = $_POST["admin_user"];
|
|
$admin_mail = $_POST["admin_mail"];
|
|
$admin_passwd_1 = $_POST["admin_passwd_1"];
|
|
$admin_passwd_2 = $_POST["admin_passwd_2"];
|
|
|
|
if (!isset($admin_user) || !isset($admin_mail) || !isset($admin_passwd_1) || !isset($admin_passwd_2)) {
|
|
die('{"status":500, "error":"Missing fields"}');
|
|
}
|
|
|
|
if ($admin_passwd_2 !== $admin_passwd_1) {
|
|
die('{"status":500, "error":"Passwords do not match"}');
|
|
}
|
|
|
|
$admin_passwd = hash("sha256", $admin_passwd_2);
|
|
|
|
$mcServ = new mcServ();
|
|
$config = $mcServ->getConf();
|
|
|
|
$db = new PDO("sqlite:" . $config["DB_PATH"]);
|
|
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
|
|
|
$sql = "
|
|
CREATE TABLE IF NOT EXISTS users (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
username VARCHAR(30) UNIQUE NOT NULL,
|
|
mail VARCHAR(50),
|
|
passwd VARCHAR(100)
|
|
)
|
|
";
|
|
|
|
$db->exec($sql);
|
|
|
|
$sql = "
|
|
INSERT INTO users (username, mail, passwd) VALUES (:user, :mail, :passwd)
|
|
";
|
|
|
|
$stmt = $db->prepare($sql);
|
|
$stmt->execute([':user' => $admin_user, ':mail' => $admin_mail, ':passwd' => $admin_passwd]);
|
|
|
|
$session["session_id"] = $mcServ->generateSessionID();
|
|
$device_id = rand(1, 999);
|
|
|
|
$json[$device_id] = json_encode($session);
|
|
$json["array"] = true;
|
|
|
|
mkdir($config["PATH"] . "/tmp/user_sessions", 0700, true);
|
|
|
|
file_put_contents($config["PATH"] . "/tmp/user_sessions/" . $admin_user . ".json", json_encode($json));
|
|
|
|
setcookie("session_id", $session["session_id"], time() + 3600, "/");
|
|
setcookie("device_id", $device_id, time() + 3600, "/");
|
|
setcookie("username", $admin_user, time() + 3600, "/");
|
|
|
|
header("Location: /");
|
|
exit;
|
|
?>
|