我正在为网站实施密码恢复选项,该密码是从我的用户数据库中获取的,并以纯文本形式发送到用户的电子邮件。我的用户数据库包含三列:ID,电子邮件和密码。这是我的database.php:
<?php
$servername='1.1.1.1';
$username='user';
$password='pass';
$dbname = "users";
$conn=mysqli_connect($servername,$username,$password,"$dbname");
if(!$conn){
die('Could not Connect My Sql:' .mysql_error());
}
?>
此外,这是恢复页:
<?php
session_start();
include_once 'database.php';
if(isset($_POST['submit']))
{
$email = $_POST['email'];
$result = mysqli_query($conn,"SELECT * FROM users where email='" . $_POST['email'] . "'");
$row = mysqli_fetch_assoc($result);
$fetch_user_id=$row['email'];
$email_id=$row['email'];
$password=$row['password'];
if($email==$fetch_id) {
$to = $email;
$subject = "Password";
$txt = "Your password is : $password.";
$headers = "From: company" . "\r\n" .
"CC: email@gmail.com";
mail($to,$subject,$txt,$headers);
}
else{
echo 'invalid userid';
}
}
?>
<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
<center><p>Forgot Password</p></center>
<form action='' method='post'>
<table cellspacing='5' align='center'>
<tr><td>email:</td><td><input type='text' name='user_id'/></td></tr>
<tr><td></td><td><input type='submit' name='submit' value='Submit'/></td></tr>
</table>
</form>
</body>
</html>
我对php和Web开发还很陌生,但是我相对容易地实现了登录/注册。话虽如此,我对电子邮件恢复完全迷失了。我正在寻找能够提交电子邮件的客户,如果它与用户数据库中的条目匹配,则密码将发送到提交的电子邮件中。我了解不发送过期令牌的安全风险,但是,对于网站的当前需求,此方法已足够。如果有人能帮助我朝正确的方向发展,将不胜感激。另外,不确定这是否是相关事件,但我正在Apache上运行它。
答案 0 :(得分:-4)
您的代码中有错字。
$conn=mysqli_connect($servername,$username,$password,"$dbname");
像这样删除"$dbname"
周围的引号
$conn=mysqli_connect($servername,$username,$password,$dbname);