用户名重复

时间:2018-04-05 08:27:00

标签: php mysql

我的代码中存在关于重复用户名检查的问题。

使用我当前的代码,它仍然会将数据放入我的数据库中。

目前,这就是我所拥有的:

if(isset($_POST['submit'])){
    $username = $_POST['login'];
    $mysql_get_users = mysql_query("SELECT * FROM gebruikers WHERE username ='$username'");
    if(mysql_num_rows($mysql_get_users) > 0){
        echo "username already exists";
        die();
    }else{
        $salt = substr( md5( uniqid ( rand(), true ) ), 0, 64 );
        $password = hash( 'ripemd160', $salt . $_POST[ 'password' ] );    
        $statement = $dal->prepare( 'INSERT INTO gebruikers ' .
        '( `aanhef`, `naam`, `straat`, `huisnummer`, `toevoeging`, `postcode`, `plaats`, `telefoon`, `email`, `username`, `salt`, `password`, `voorletters`, `adsl_betaling` ) ' .
        'VALUES ( :aanhef, :naam, :straat, :huisnummer, :toevoeging, :postcode, :plaats, :telefoon, :email, :username, :salt, :password, :voorletters, :adsl_betaling )' );
        $statement->bindParam( ':aanhef', $_POST[ 'aanhef' ], PDO::PARAM_STR );
        $statement->bindParam( ':naam', $_POST[ 'naam' ], PDO::PARAM_STR );
        $statement->bindParam( ':straat', $_POST[ 'adres' ], PDO::PARAM_STR );
        $statement->bindParam( ':huisnummer', $_POST[ 'huisnummer' ], PDO::PARAM_STR );
        $statement->bindParam( ':toevoeging', $_POST[ 'toevoeging' ], PDO::PARAM_STR );
        $statement->bindParam( ':postcode', $_POST[ 'postcode' ], PDO::PARAM_STR );
        $statement->bindParam( ':plaats', $_POST[ 'plaats' ], PDO::PARAM_STR );
        $statement->bindParam( ':telefoon', $_POST[ 'telefoon' ], PDO::PARAM_STR );
        $statement->bindParam( ':email', $_POST[ 'email' ], PDO::PARAM_STR );
        $statement->bindParam( ':username', $_POST[ 'login' ], PDO::PARAM_STR );
        $statement->bindParam( ':salt', $salt, PDO::PARAM_STR );
        $statement->bindParam( ':password', $password, PDO::PARAM_STR );
        $statement->bindParam( ':voorletters', $_POST[ 'voorletters' ] );
        $statement->bindParam( ':adsl_betaling', $_POST[ 'adsl_betaling' ] );
        $dal->execute( $statement );
}

我真的需要帮助!

之前是否应该告诉它,但这是一种注册形式。

echo $ _POST [' login']向我显示表单中用户名的输入,并正确显示。

错误报告显示:

不推荐使用:mysql_query():不推荐使用mysql扩展,将来会删除它:在/home/demoserver/domains/nidaros-demoserver.com/public_html/build/web_player/signup.php中使用mysqli或PDO在第350行
警告:mysql_query():拒绝访问用户'' localhost' (使用密码:否)在第350行的/home/demoserver/domains/nidaros-demoserver.com/public_html/build/web_player/signup.php中
警告:mysql_query():无法在第350行的/home/demoserver/domains/nidaros-demoserver.com/public_html/build/web_player/signup.php中建立指向服务器的链接
警告:mysql_num_rows()要求参数1为资源,布尔值在第351行的/home/demoserver/domains/nidaros-demoserver.com/public_html/build/web_player/signup.php中给出

可能是我做了一些愚蠢的事情,但请告诉我这是不是这样。

0 个答案:

没有答案