帮我看一下,着么输都是验证码错误!

php中文网
发布: 2016-06-23 13:02:54
原创
1440人浏览过


nbsp;html>


    
    
    

    <script> <br /> function check(){ <br /> var psw1=document.getelementbyid("psw1"); <br /> var psw2=document.getelementbyid("psw2"); <br /> if(psw1.value!=psw2.value) <br /> psw2.setcustomvalidity("两次密码不一致"); <br /> return false; <br /> } <br /> </script>


登录|注册

欢迎注册



    
用户名&nbsp&nbsp:


        密&nbsp&nbsp码&nbsp&nbsp:


        确认密码:


        邮&nbsp&nbsp箱&nbsp&nbsp:                                      placeholder="请输入正确的邮箱格式" name="email">
        


        
  验证码&nbsp&nbsp:

    

    


          
                                require('03.php');
                ?>
            

    


    
我已阅读并同意该协议
        《book》条款



    
 





002.php
if(isset($_POST['submit'])) {
    session_start();
    $checkstr = $_SESSION['yzm'];    //使用$_SESSION变量获取03.php页面上的验证码
    $str = $_POST['check'];            //用户输入的字符串
    if (strcasecmp($str, $checkstr) != 0)    //不区分大小写进行比较
        echo "<script>alert('验证码错误!');</script>";
    else {
        $conn = mysql_connect("localhost", "root", "123456");
        mysql_query("set names 'utf8'");
        mysql_select_db("book", $conn);
        $username = $_POST["username"];
        $password = $_POST["psw1"];
        $email = $_POST["email"];
        $sql = "insert into register(username,password,email) VALUES ('$username','$password','$email')";
        $result = mysql_query($sql);
        if ($result) {
            session_start();
            $_SESSION['username'] = $username;
            print("
        <script> <br /> alert('注册成功'); <br /> location.href='login.php'; <br /> </script>
                ");
        }
    }
}
else echo"非法访问";
?>



03.php
function a($type, $length ,$clear){
    $nums=range(0,9);
    $xxzm=range('a','z');
    $dxzm=range('A','Z');
    $igorne=array('0','o','1','l');
    $chars=array();
    if($type==1)
        $chars=$nums;
    if($type==2)
        $chars=array_merge($nums,$xxzm);
    if($type==3)
        $chars=array_merge($nums,$xxzm,$dxzm);
    if($clear==true)
        $chars=array_diff($chars,$igorne);
    $keys=array_rand($chars,$length);
    $code="";
    foreach($keys as $key)
        $code=$code.$chars[$key];
    return $code;
}
$yzm=a(3,5,true);
$_SESSION['yzm']=$yzm;
echo $yzm;
?>


回复讨论(解决方案)

if(psw1.value!=psw2.value)
                psw2.setCustomValidity("两次密码不一致");
            return false;
没有{ }?好久没用JS不太记得了。

js的代码是没错的,问题是出在验证码的验证上!

03.php 中没有 session_start();

虽然验证是对了,但是出来了个警告Notice:A session had already been started -ignoring session_star( ) in 002.php
这又是什么原因呢

警告是说session_start的时候session已经start了,所以第二次跳过了
也就是说一次流程执行到了两次session_start
原因就是脚本2里有两个session_start,把第二个删掉就行了

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号