我目前正在网上工作,现在我正在忙着重置密码功能。人们输入他们的电子邮件,sql查询检查电子邮件是否存在。如果存在,则创建随机字符串并将其插入数据库中。现在的问题是随机字符串的查询是成功的,但数据没有被更新。希望有人可以帮助我。 我正在使用的代码:
//Import database connection in variable $conn
require("dbh.inc.php");
//Load composer's autoloader
require 'vendor/autoload.php';
//Load variable with password
require 'credentials.php';
//Escape bullshit
$email = $conn->real_escape_string($_POST['email']);
//Make all data in $email lowercase
$email = strtolower($email);
//Put SQL query in var $sql
$sql = "SELECT user_Id FROM customers WHERE user_Email='$email'";
//Execute query and put results in var $data
$data = $conn->query($sql);
//If the email exists
if ($data->num_rows > 0) {
//Random characters
$str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
//Shuffle all data in var $str
$str = str_shuffle($str);
//Select only the data after 40th position
$str = substr($str,40);
//The url that will be send to the user
$url = "http://example.com/users/resetPassword.php?token=$str&email=$email";
//Execute SQL query
$query = $conn->query("INSERT customers SET user_ResetToken='$srt' WHERE user_Email='$email'");
答案 0 :(得分:0)
您需要在插入数据时更新数据插入内容:
$query = $conn->query("INSERT customers SET user_ResetToken='".$str."' WHERE user_Email='".$email."';");
将INSERT替换为UPDATE,就像这样。
$query = $conn->query("UPDATE customers SET user_ResetToken='".$str."' WHERE user_Email='".$email."';");
<强>更新强>
同样改变:
$url = "http://example.com/users/resetPassword.php?token=$str&email=$email";
到
$url = "http://example.com/users/resetPassword.php?token=".$str."&email=".$email;