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");
?>
想知道为什么注册账号时,验证码输入正确错误都会把信息写入数据库,而不是先判断正确后再写入数据库。 展开
问题: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");
?>
想知道为什么注册账号时,验证码输入正确错误都会把信息写入数据库,而不是先判断正确后再写入数据库。 展开
7个回答
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;
来终止程序代码的继续运行!
展开全部
你用if嵌套的方式写,不要分开!把数据库操作的代码放在判断验证码的循环内试试嘛!因为你那有写,貌似对错它都会执行的!希望能帮到你!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-03-11
展开全部
验证码生成后用session传值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先把验证码写到数据库或者写到session中就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
只能提供思路:
1.当访问注册页面时出现验证码,这时通过程序把当前的验证码记录到session中。
2.当提交注册时通过$_POST获取用户输入的验证码和session对比
3.事例:
if($_POST['code'] != $_SESSION['code']){
//验证失败处理
}
1.当访问注册页面时出现验证码,这时通过程序把当前的验证码记录到session中。
2.当提交注册时通过$_POST获取用户输入的验证码和session对比
3.事例:
if($_POST['code'] != $_SESSION['code']){
//验证失败处理
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询