PHP问题如何写注册账号写入数据库并判断验证码的代码

注册页面:register.php写入数据库:reg_write.php验证码:code.php另外写了一个判断验证码是否正确的check.php.问题:register... 注册页面:register.php 写入数据库:reg_write.php 验证码:code.php 另外写了一个判断验证码是否正确的check.php.
问题:register.php 提交后ACTION:reg_write.php.把验证码输入写在同一个form中。如果把判断验证码输入是否正确放在reg_write.php中的话。点击按钮就直接把注册信息写入数据库中,都不判断验证码输入对错。如果单用check.php,action=“”时测试验证码输入就会有判断提示。

reg_write.php 代码。
<?php
include "conn/conn.php";
?>
<?php //此处判断验证码与check.php中是一样的。
error_reporting(0);
$code =$_POST['yzm'];
if($code){
if(strtolower($_SESSION["rand"]) == strtolower($code)){
echo "<script>alert('验证码正确!');</script>";
}
else {
echo "<script>alert('验证码不正确!');history.back();</script>";
}
}
?>
<?php
$user = $_POST["user"];
$paw = $_POST["password"];
$paw = md5($paw);
$power = $_POST['power'];
$insert_sql = "insert into member (user,password,power) values('$user','$paw','$power')";
mysql_query($insert_sql,$conn) or die ("连接数据失败:".mysql_error());
mysql_close($conn);
header("Location:index.php");
?>

想知道为什么注册账号时,验证码输入正确错误都会把信息写入数据库,而不是先判断正确后再写入数据库。
展开
 我来答
匿名用户
2014-03-10
展开全部
<?php                                      //此处判断验证码与check.php中是一样的。
 error_reporting(0);
   $code =$_POST['yzm'];
 if($code){
   if(strtolower($_SESSION["rand"]) == strtolower($code)){
         echo "<script>alert('验证码正确!');</script>";   
   }
   else {
           echo "<script>alert('验证码不正确!');history.back();</script>";
   }
 }
?>

你这里,判断验证码不正确的时候,没有及时的终止php代码的运行

似乎很多人会发生这种误区

php是服务器端脚本,而js的客户端脚本

网页文件的代码执行顺序是先服务器,后客户端

也就是说,当你在浏览器中看到弹出框的时候,你的php代码早就执行完成了!

你看到的,只是php运行后发送给浏览器的所有信息而已!

哪怕你用php输出js代码是在网页的最开头,只要你没有终止代码的运行,等你看到这个js的时候,你php代码的所有代码都已经运行完成,那怕你的代码有几万行!

所以,你这里应该这样改一下:

echo "<script>alert('验证码正确!');</script>";  

die;

或者

exit;

来终止程序代码的继续运行!

百杜驿站
2014-03-10
知道答主
回答量:41
采纳率:0%
帮助的人:4.9万
展开全部
你用if嵌套的方式写,不要分开!把数据库操作的代码放在判断验证码的循环内试试嘛!因为你那有写,貌似对错它都会执行的!希望能帮到你!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-11
展开全部
验证码生成后用session传值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
抄钩子
2015-11-27
知道答主
回答量:28
采纳率:0%
帮助的人:13.4万
展开全部
先把验证码写到数据库或者写到session中就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一刀就O了
2015-12-07
知道答主
回答量:20
采纳率:0%
帮助的人:14.8万
展开全部
只能提供思路:
1.当访问注册页面时出现验证码,这时通过程序把当前的验证码记录到session中。
2.当提交注册时通过$_POST获取用户输入的验证码和session对比
3.事例:
if($_POST['code'] != $_SESSION['code']){
//验证失败处理

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式