aircraft-dev-registry/www/signup.php
fly ff3d23195a Initial Commit
Signed-off-by: fly <merspieler@airmail.cc>
2021-06-03 22:24:25 +02:00

69 lines
2 KiB
PHP

<html>
<head>
<title>Sign Up</title>
</head>
<body>
<?php
include("common.php");
// We expect name to be empty cause it's hidden -> only bots will fill it out
if (isset($_POST["aircraft-id"]) && $_POST["aircraft-id"] != "" && isset($_POST["email"]) && $_POST["email"] != "")
{
$con = new mysqli(getenv("SQL_HOST"), getenv("SQL_USER"), getenv("SQL_PASSWORD"), getenv("SQL_DATABASE"), getenv("SQL_PORT"));
if ($con->connect_error)
{
echo("An error occured, please try later</body></html>");
exit();
}
$stmt = $con->prepare("SELECT id FROM `aircraft-devs` WHERE acid = ? AND user = ?");
$stmt->bind_param("ss", $_POST["aircraft-id"], $_POST["email"]);
$stmt->execute();
$result = $stmt->get_result();
$res = $result->fetch_assoc();
$stmt->close();
if ($res != Null)
{
echo("You've already signed up to receive emails for " . $_POST["aircraft-id"]);
}
else
{
$hash_unique = false;
while (!$hash_unique)
{
$hash = bin2hex(random_bytes(16));
$sql = "SELECT id FROM `confirmation-pending` WHERE id = '" . $hash . "';";
$result = $con->query($sql);
$res = $result->fetch_assoc();
if ($res == Null)
{
$hash_unique = true;
}
}
$action = new stdClass;
$action->action = "signup";
$action->acid = $_POST["aircraft-id"];
$action->email = $_POST["email"];
$stmt = $con->prepare("INSERT INTO `confirmation-pending` (id, action, ts) VALUES (?, ?, NOW())");
$stmt->bind_param("ss", $hash, json_encode($action));
$stmt->execute();
$stmt->close();
$msg = "You've received this email cause someone requested to sign this
email up for the Aircraft Developer Registry at
" . getenv("BASE_URL") . "
If you have requested this please use the following link to confirm
" . getenv("BASE_URL") . "/confirm.php?id=" . $hash . "
If you haven't requested to be signed up, please ignore this email.";
send_mail($_POST["email"], "Sign Up " . $_POST["aircraft-id"], $msg);
echo("We've sent you an email. Please confirm your sign up with the link");
}
$con->close();
}
else
{
echo("Invalid request.");
}
?>
</body>
</html>