Maison > développement back-end > tutoriel php > php帮我看一下,receive这个文件里的16,17行哪里出错了,注册相同用户名他就报错

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2016-06-20 12:26:09
original
886 Les gens l'ont consulté

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}'";
Copier après la connexion

链接pdo   使用用原生

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

终于改好了!

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

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal