Files
2026-06-17 15:46:26 +02:00

63 lines
1.6 KiB
PHP

<?php
require('../../../inc/connect.php');
//Decode code
$code = urldecode($_GET['code']);
$temp = str_rot13($code) or die(error("login", "An error occured"));
$spl = explode("~", $temp);
$email = $spl[0];
$device = $spl[1];
//Validate
if(strlen($device) != 6 || !filter_var($email, FILTER_VALIDATE_EMAIL))
{
error("login", "An error occured");
}
//Check if device id already bound -> delete account
$sql = "SELECT `id` FROM device WHERE `dev_id`='$device' AND `user`=0";
$query = ExecQuery($mysqli, $sql);
if($query->num_rows < 1)
{
//Check if email already verified
$sql = "SELECT `id` FROM user WHERE `email`='$email' AND `verified`=1";
$query = ExecQuery($mysqli, $sql);
$str = "";
if($query->num_rows < 1)
{
$sql = "DELETE FROM user WHERE `email`='$email' AND `code`='$code'";
ExecQuery($mysqli, $sql);
$str = ", account registration has been cancelled";
}
error("login", "This device has already been bound to an account" . $str);
}
//Check if email matches code to verify integrity
$sql = "SELECT `id` FROM user WHERE `email`='$email' AND `code`='$code'";
$query = ExecQuery($mysqli, $sql);
if($query->num_rows < 1)
{
error("login", "Verification failed");
}
$uid = $query->fetch_assoc()['id'];
//Account has passed all the checks, verify
$sql = "UPDATE user SET `verified`=1, `code`='' WHERE `id`=$uid";
ExecQuery($mysqli, $sql);
$sql = "UPDATE device SET `user`=$uid WHERE `dev_id`='$device'";
ExecQuery($mysqli, $sql);
success("login", "The verification has succeeded");
?>