如何创建生成的OTP密码并将其发送到电子邮件

时间:2016-03-18 06:32:52

标签: php sql email one-time-password

我有以下代码。它在本地生成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");  

2 个答案:

答案 0 :(得分:0)

在表格中更新OTP后使用以下代码。

我正在使用邮件功能向用户发送邮件。

请使用$ _SESSION ['email']更新登录用户的电子邮件ID;

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

$to = $_SESSION['email'];

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

答案 1 :(得分:-1)

您需要一台SMTP服务器才能开始用PHP发送邮件。不幸的是,实施相同的(个人观点)太令人头疼。我建议使用gmail smtp,或者你可以使用像sendgrid这样的服务,让你通过http api发送邮件。