【问题标题】:pass random numbers generated from Rand() to other pages for verification将 Rand() 生成的随机数传递给其他页面进行验证
【发布时间】:2016-03-31 20:46:20
【问题描述】:

我正在尝试一种方法来验证我网站上用户的电话号码。为此,我正在集成一个 SMS 网关。这将像这样工作:-

第 1 步/第 1 页 - 用户单击按钮以验证其电话号码。它运行脚本,使用随机数向他们的电话号码发送短信并将用户重定向到第 2 页。请参见下面的代码:-

<?php
// Start the session
session_start();
?>
<html>
<head>
</head>
<body>
   <form id="sms2" name="sms2" method="POST" action="sms3.php">
     <table width= "400">

       <tr>
         <td align="right" valign="top">Verification Code:</td>
         <td align="left"><textarea name="Vefificationcode" cols="80" rows="20" id="Vefificationcode"></textarea></td>
       </tr>
       <tr>
         <td colspan="2" align="right"><input type="submit" name= "submit" value="submit"/>
         </td>
         <p>
           <?php
             $_SESSION['phverf'] = rand();//set the session variable
             $phverf= rand();//stores the value of rand function in phverf variable
             echo "$phverf" . "\n"; // echo this just to check...when users inputs the random number received on sms
            ?>
         </p>
         </tr>
      </table>
   </form>


  </body>
</html>

step2/ Page2 - 有一个输入框供用户输入他们在 SMS 中收到的相同验证码。并点击提交。他们转到第 3 页。请看下面的代码:-

<?php
    session_start();
?>

<html>
  <head>
  </head>
  <body>

    <?php
      echo $_SESSION['phverf'];
      if(isset($_POST['submit'])){

         $verificationcode= $_POST['Vefificationcode'];
         echo $verificationcode;

         if($_SESSION['phverf']==$verificationcode){echo"you have successfully verified your Phone Number";}
          else {echo "Please type in the code sent to your phone number correctly";}
       }
       ?>

   </body>
</html>

谢谢 普拉奈

【问题讨论】:

  • 我的问题是,在第 3 页第 3 步中,由 Rand() 生成的随机数被刷新,因此它永远不会与 SMS 上发送的内容匹配。如您所见,我已尝试使用会话变量,但似乎无法解决...请帮助!!

标签: php html forms random


【解决方案1】:

添加一列以设置已验证用户的标志。

EG:number_verified = 0 如果号码未验证 并设置为number_verified = 1 如果验证, 将默认设置为 0。

添加另一列来存储随机数。我建议存储在表格中,这使您可以轻松验证! 如果用户点击验证号,则重定向页面发送短信,同时将随机数存储在用户表中。 如果用户输入了验证码,则将其与您存储在表格中的随机数进行比较并设置number_verified = 1。希望对你有帮助!

【讨论】:

  • 我在我的数据库中添加了一个并再次尝试但得到一个错误“!)解析错误:语法错误,C:\ wamp \ www \ L \ sms2.php中的意外'VALUE'(T_STRING)在第 14 行" :- connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = INSERTINTO %_dbnamer (phoneverificationcode) VALUE($phverf); ?> ?>
猜你喜欢
  • 2015-11-04
  • 2016-09-04
  • 2021-06-12
  • 2014-08-25
  • 1970-01-01
  • 2012-12-29
  • 1970-01-01
  • 1970-01-01
  • 2018-12-11
相关资源
最近更新 更多