У меня есть следующий код. это генерирует OTP password
локально и отображает его на экране. Я хотел бы, чтобы пароль был отправлен на адрес электронной почты пользователя, который вошел в систему.
Код выглядит следующим образом
$query = mysql_query('SELECT username, password FROM user WHERE username = "'.$_POST['username'].'" AND password = "'.$_POST['password'].'" LIMIT 1', $connection);
if (mysql_num_rows($query) > 0)
{
$rand= rand(00000000,99999999);
mysql_query('UPDATE user SET otp="'.$rand.'" WHERE username = "'.$_POST['username'].'" LIMIT 1', $connection);
print '<script type="text/javascript">';
print 'alert("The OTP is '.$rand.' . Please remember otp for second level of authentication.")';
print '</script>';
}
else
{
mysql_query('UPDATE user SET loginfails= loginfails + 1 WHERE username = "'.$_POST['username'].'" LIMIT 1', $connection);
// header("Location: loginerror.php");
Используйте следующий код после обновления OTP в вашей таблице.
Я использую функцию почты для отправки почты пользователю.
Пожалуйста, обновите зарегистрированный идентификатор электронной почты пользователя с помощью $ _SESSION [’email’];
$msg = "The OTP is '.$rand.';
$to = $_SESSION['email'];
// send email
mail($to,"Your OTP is",$msg);
Вам понадобится SMTP-сервер, чтобы начать отправлять почту на PHP. К сожалению, это слишком большая головная боль, чтобы реализовать то же самое (личное мнение). Я бы порекомендовал либо использовать Gmail SMTP для того же или вы можете пойти с сервисом, как Sendgrid, который позволяет отправлять почту через HTTP API там.