Мой код работает нормально, но проблема заключается в том, что пароль, полученный из базы данных MySQL после нажатия кнопки отправки, аналогичен тому, который хранится в базе данных в формате MD5, например e10adc3949ba59abbe56e057f20f883e
, и хорошо доставлен во входящие. Но бесполезно из-за хэш-формата.Как получить фактический пароль через забыли пароль в php?
Вот мой рабочий код; могу ли я расшифровать его перед отправкой его пользователям? Я храню пароль в формате MD5 в базе данных MySQL. Я получил электронную почту как «Ваш пароль: e10adc3949ba59abbe56e057f20f883e»
Html код:
<body>
<h1>Forgot Password<h1>
<form action='#' method='post'>
<table cellspacing='5' align='center'>
<tr><td>Email id:</td><td><input type='text' name='email'/></td></tr>
<tr><td></td><td><input type='submit' name='submit' value='Submit'/></td></tr>
</table>
</form>
Php код:
<?php
if(isset($_POST['submit']))
{
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "testdb";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn)
{
die("Connection failed: " . mysqli_connect_error());
}
$email=$_POST['email'];
$sql = "select * from users where email='".$email."' ";
$q = mysqli_query($conn, $sql);
$p=mysqli_affected_rows();
if($p!=0)
{
$res=mysqli_fetch_array($q);
$to=$res['email'];
$subject='Remind password';
$message='Your password : '.$res['password'];
$headers='From:[email protected]';
$m=mail($to,$subject,$message,$headers);
if($m)
{
echo'Check your inbox in email';
}
else
{
echo'email is not send';
}
}
else
{
echo'You entered email id is not present';
}
}
?>
</body>
Вместо отправки старого пароля отправьте ссылку сброса пароля для установки нового пароля. –
Не напоминайте пользователю свой старый пароль. Просто создайте новый пароль для пользователя и дайте ему ссылку для сброса пароля с помощью одного пароля. –
Хорошо, можете ли вы представить себе, как это реализовать? – John120