как создать сгенерированный пароль OTP и отправить по электронной почте

У меня есть следующий код. это генерирует 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");

0

Решение

Используйте следующий код после обновления OTP в вашей таблице.

Я использую функцию почты для отправки почты пользователю.

Пожалуйста, обновите зарегистрированный идентификатор электронной почты пользователя с помощью $ _SESSION [’email’];

$msg = "The OTP is '.$rand.';

$to = $_SESSION['email'];

// send email
mail($to,"Your OTP is",$msg);
0

Другие решения

Вам понадобится SMTP-сервер, чтобы начать отправлять почту на PHP. К сожалению, это слишком большая головная боль, чтобы реализовать то же самое (личное мнение). Я бы порекомендовал либо использовать Gmail SMTP для того же или вы можете пойти с сервисом, как Sendgrid, который позволяет отправлять почту через HTTP API там.

-1

По вопросам рекламы [email protected]