From 392d1f40190bc01dd4bfd08931bcc5424555cdf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20Sajdl?= Date: Wed, 29 Nov 2017 15:16:09 +0100 Subject: [PATCH] Fix for not sending mail when user created & checking if email used when changing it. --- classes/user.php | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/classes/user.php b/classes/user.php index 9a9cae0..52efe26 100644 --- a/classes/user.php +++ b/classes/user.php @@ -117,9 +117,8 @@ class User $stmt = $mysqli->prepare("INSERT INTO users values (NULL, ?, ?, ?, ?, ?, ?, ?, 1)"); $stmt->bind_param("ssssssi", $email, $username, $name, $surname, $hash, $salt, $permission); $stmt->execute(); - $query = $stmt->get_result(); - if ($query->affected_rows>0) + if ($stmt->affected_rows>0) { $to = $email; $subject = 'User account created - '.NAME; @@ -410,11 +409,25 @@ class User public function email_link(){ global $mysqli; - $email = $_POST['email']; + $email = trim($_POST['email']); $time = strtotime('+1 day', time()); $salt = uniqid(mt_rand(), true); $id = $this->id; $token = hash('sha256', $id.$salt); + + $stmt = $mysqli->prepare("SELECT count(*) as count FROM users WHERE email=?"); + $stmt->bind_param("s", $email); + $stmt->execute(); + $query = $stmt->get_result(); + + $count = $query->fetch_assoc()['count']; + + if ($count) + { + $message = "This email is already used."; + return; + } + Token::new($id, 'email;$email', $time);