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

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-06-20 12:26:09
asal
905 orang telah melayarinya

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}'";
Salin selepas log masuk

链接pdo   使用用原生

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

终于改好了!

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

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan