Home > Backend Development > PHP Tutorial > php帮我看一下,receive这个文件里的16,17行哪里出错了,注册相同用户名他就报错

php帮我看一下,receive这个文件里的16,17行哪里出错了,注册相同用户名他就报错

WBOY
Release: 2016-06-20 12:26:09
Original
856 people have browsed it

register.php
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>


登录|注册

欢迎注册



    
用户名  :


        密  码  :


        确认密码:


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


      
  验证码  :

    


    
                    require('yzm.php');
          ?>
        

      


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



    
 





receive.php

if(isset($_POST['submit'])) {
    session_start();
    $checkstr = $_SESSION['yzm'];    //使用$_SESSION变量获取03.php页面上的验证码
    $str = $_POST['check'];            //用户输入的字符串
    if (strcasecmp($str, $checkstr) != 0)    //不区分大小写进行比较
        echo "<script>alert('验证码错误!'); <br />location.href='register.php';</script>";
    else {
        $username = $_POST["username"];
        $password = $_POST["psw1"];
        $email = $_POST["email"];
        $dsn="mysql:host=localhost;dbname=book";
        $db=new PDO($dsn,'root','123456');
        $db->query('set names utf8');
      16行 :  $chkusername = mysql_query("select username from register where username=".$username."");
       17行: $numrow = mysql_num_rows($chkusername);
        if( $numrow != 0 ) {
            print("
                <script> <br /> alert('该用户已经注册,请选择其他用户名'); <br /> location.href='register.php'; <br /> </script>
                ");
        }
        else {
        $sql = "insert into register(username,password,email) VALUES (?,?,?)";
        $stmt=$db->prepare($sql);
        $stmt->bindParam(1,$username);
        $stmt->bindParam(2,$password);
        $stmt->bindParam(3,$email);
        $stmt->execute();
            $_SESSION['username'] = $username;
            print("
        <script> <br /> alert('注册成功'); <br /> location.href='login.php'; <br /> </script>
                ");
    }
}
}
else echo"非法访问";
?>


回复讨论(解决方案)

你是这样连接数据库的
       $dsn="mysql:host=localhost;dbname=book";
        $db=new PDO($dsn,'root','123456');
        $db->query('set names utf8');
然后却这样进行操作
      16行 :  $chkusername = mysql_query("select username from register where username=".$username."");
       17行: $numrow = mysql_num_rows($chkusername);
你认为这样做合适吗?

SQL语句也要改,除非你的username是数字,不然需要加上单引号

$sql = "select username from register where username = '{$username}'";
Copy after login

链接pdo   使用用原生

17行要怎么改呢,谁能给出个改过的16行,17行出来给我看下

终于改好了!

你是用pdo连接  用原生方法执行sql   必然会出错的

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template