【发布时间】:2015-12-28 08:12:53
【问题描述】:
我正在尝试在我的网站上设置电话号码验证系统。我使用的逻辑是:-
1) 用户单击一个按钮,上面写着完成电话号码验证。(运行一个脚本,该脚本发送一条带有随机数的 SMS,该随机数是使用 Rand () 生成的。这个数字也存储在数据库中的该用户行中。
<html>
<head>
</head>
<body>
<form id="sms2" name="sms2" method="POST" action="index.php?option=com_content&view=article&id=83">
<table width= "400">
<tr>
<td align="right" valign="top">Verification Code:</td>
<td align="left"><textarea name="veficationcode" cols="82" rows="5" id="veficationcode"></textarea></td>
</tr>
<tr>
<td colspan="4" align="right"><input type="submit" name= "submit" value="submit"/>
</td>
</tr>
</table>
</form>
</body>
</html>
<?php
Global $_CB_framework;
$myId = $_CB_framework->myId();
$cbUser =& CBuser::getInstance( $myId );
if ( ! $cbUser ) {
$cbUser =& CBuser::getInstance( null );
}
$user =& $cbUser->getUserData();
echo$myId;
$servername = "";
$username = "";
$password = "";
$dbname = "";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "UPDATE tablename SET phoneverificationcode ='$phverf'
WHERE id = $myId";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
2) 用户将被重定向到一个页面,在该页面中输入他通过短信收到的验证码,然后点击提交。脚本运行并从数据库中该用户行中获取数据,并将其与他输入的内容相匹配。如果匹配,他会收到一条成功消息,否则他会收到一条错误消息。
<?php
Global $_CB_framework;
$myId = $_CB_framework->myId();
$cbUser =& CBuser::getInstance( $myId );
if ( ! $cbUser ) {
$cbUser =& CBuser::getInstance( null );
}
$user =& $cbUser->getUserData();
echo$myId;
if(isset($_POST['submit'])){
$verificationcode = $_POST["veficationcode"];
echo "verificationcode".$verificationcode;
$servername = "";
$username = "";
$password = "";
$dbname = "";
// Create connection
$connect = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$connect) {
die("Connection failed: " . mysqli_connect_error());
}
//select the data from the database for the users own row based on his unique id
$query = "SELECT phoneverificationcode FROM tablename WHERE id=$myId";
$result = mysqli_query($connect,$query);
while($row = mysqli_fetch_array($result));
echo $row[0];
if($verificationcode == $row){echo "SUCCESS!!!";}
else{
echo "verification code mismatch". "Please try again.";
}
$connect->close();
}
?>
我面临的问题是它总是说不匹配。不确定我在这里缺少什么?
【问题讨论】:
-
我面临的问题是它总是说不匹配。需要帮助...不确定我在这里缺少什么?
-
编辑您的问题以包含实际问题,不要将其添加到 cmets。 - 你在哪里设置
$myId? -
匹配
$row[0]不仅是$row$verificationcode == $row -
看起来 $phverf/$myId 似乎未定义...如果您检查您的数据库,您的数据是否真的被存储了?请使用更多代码编辑您的帖子,您也可以更新您的代码格式。