0

ログイン/登録システムを作成しようとしていますが、ログインを押すと、存在すると表示されます...

<?php
include 'core/init.php';


function user_exists($username){
$username = sanitize($uusername);
$query = mysql_query("SELECT COUNT (`user_id`) FROM `users` WHERE `username` = '$username'");

$result = mysql_query($query) or die(mysql_error());  // Check if query was successful
$row = mysql_fetch_array($result); // fetch the first row
return ($row[0] > 1);  // If there is one or more users with this name, return true.




}

ページに「Exists」と表示させるコードは次のとおりです。

<?php
include 'core/init.php';

if(user_exists('Zuzima') === true) {
echo 'exists';
}
die();

if (empty($_POST) === false) {
$username = $_POST['username'];
$password = $_POST['password'];

if(empty($username) === true || empty($password) === true){
    $errors[] = 'You need to a username and password.';
} else if (user_exists($username) === false) {
    $errors[] = 'We can\'t find that username. Have you registered?';
}
}
?>

少なくとも6か月間これに取り組んでいる私を助けてください。

4

3 に答える 3

2

この名前のユーザーが 1 人以上いる場合は、true を返します。

だからreturn ($row[0] > 1);だけではないはずですreturn ($row[0] >= 1);

于 2013-05-22T01:32:30.137 に答える
0

配列で使用する集計には別名を付ける必要があります。

SELECT COUNT (`user_id`)  AS userIdCount ...

単一の列を返し、行数を使用してユーザーのレコードがあるかどうかを判断する方が簡単です。

さらに、mysql_関数は廃止されました。PDOまたはmysqli_準備済みステートメントを使用する必要があります。

于 2013-05-22T01:32:09.363 に答える
0

$queryからリソース ハンドルを割り当てられ、mysql_queryそのリソース ハンドルを文字列として に渡します。mysql_query

$query = mysql_query("SELECT COUNT (`user_id`) FROM `users` WHERE `username` = '$username'");

$result = mysql_query($query) or die(mysql_error());

する必要があります

$result = mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username'") or die(mysql_error())
于 2013-05-22T01:32:40.693 に答える