使用会话变量检查有效的OTP

时间:2015-08-03 03:51:12

标签: php forms session session-variables

我正在尝试发送SMS OTP并从用户检索它以验证用户。 我的SMS脚本工作正常,但我无法存储会话变量并检查它是否是该特定用户的有效OTP。

的index.php

<?php
$otp1 = '';
for($i=4;$i>0;$i--)
{
    $otp1 = $otp1.chr(rand(48,57));
}    

// SMS script here (working fine)

?>

<form action="process.php" method="post">
Enter OTP: <br>
<input type="number" name="otp2" >
<br>
<? php
session_start();
$_SESSION['otpnuser'] = 1;
$_SESSION['secretpassword'] = $otp1;
$_SESSION["otp2"] = $otp1;


?>
<input type="submit">
</form>

process.php

<?php
session_start();
if($_POST["otp2"] == $_SESSION["otp2"])
{
    $_SESSION['otpuser'] = 1;
    header("Refresh: 2; URL=success.php");
}
else
{
    $_SESSION['otpuser'] = 0;
    header("Refresh: 2; URL=fail.php");  
}
?>

即使OTP正确,也始终将我重定向到 fail.php 页面。

1 个答案:

答案 0 :(得分:0)

if($ _ POST [&#34; otp2&#34;] == $ _SESSION [&#34; otp2&#34;])总是假的,因为你还没有声明/分配任何值otp2 在你的index.php上 在session_start(); $ _SESSION [&#39; otpnuser&#39;] = 1; $ _SESSION [&#39; secretpassword&#39;] = $ otp1; $ _SESSION [&#34; otp2&#34;] =&#34;有些值&#34 ;; `