如何使用PHP和MySQL通过电子邮件将存储的密码以纯文本格式发送

时间:2019-05-15 20:35:47

标签: php mysql apache2

我正在为网站实施密码恢复选项,该密码是从我的用户数据库中获取的,并以纯文本形式发送到用户的电子邮件。我的用户数据库包含三列: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上运行它。

1 个答案:

答案 0 :(得分:-4)

您的代码中有错字。

$conn=mysqli_connect($servername,$username,$password,"$dbname");

像这样删除"$dbname"周围的引号

$conn=mysqli_connect($servername,$username,$password,$dbname);