ユーザーを Web サイトにログインさせるために、いくつかの関数を使用しています。最初に次のような login() を作成しました。
function login($username, $password){
$id = user_id_from_username($username);
$username = sanitize($username);
$password = md5($password);
return (mysql_result(mysql_query("SELECT COUNT(`id`) FROM `users` WHERE `username` = '$username' AND `password` = '$password'"), 0) == 1) ? $id : false;
}
関数の 2 行目でわかるように、別の関数 user_id_from_username を呼び出しています。それは次のようになります。
function user_id_from_username($username) {
$username = sanitize($username);
return mysql_result(mysql_query("SELECT `id` FROM `users` WHERE `username` == '$username'"), 0, `id`);
}
ログイン機能を使用すると、次のような警告が表示されます。
警告: mysql_result(): 指定された引数は、62 行目の .../users.php の有効な MySQL 結果リソースではありません
user_id_from_username の return ステートメントで mysql_result を参照しています。ログインが正しく機能しなくなります。
この警告を解決できません。皆さんはそれで何か問題があると思いますか?
どうもありがとう!