63 lines
1.6 KiB
PHP
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");
|
|
?>
|