我的代码中存在关于重复用户名检查的问题。
使用我当前的代码,它仍然会将数据放入我的数据库中。
目前,这就是我所拥有的:
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中给出
可能是我做了一些愚蠢的事情,但请告诉我这是不是这样。