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

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

WBOY
Freigeben: 2016-06-20 12:26:09
Original
856 Leute haben es durchsucht

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}'";
Nach dem Login kopieren

链接pdo   使用用原生

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

终于改好了!

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

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage