クラス用の簡単なログイン/登録サイトを構築しています。(つまり、md5、sha などはありません) パラメーターの 1 つは、登録時に新しく登録されたパスワードが以前の 3 つと等しくならないようにすることです。この場合、true を返す関数を作成する必要がありました。これを行う方法がわかりません。データベースの主キーは user_id (自動インクリメント) です。ユーザー名が既に存在する場合に true を返す関数を次に示します。
function user_exists ($username) {
return (mysql_result(mysql_query("SELECT COUNT(`user_id`)
FROM `users` WHERE `username` = '$username'"), 0) == 1) ? true : false;}
私はこれから始めて、前の 3 つのユーザー名だけを振り返るコードを追加しようと考えました。
function returns true if password exists database
function password_exists ($password) {
$password = sanitize($password);
return (mysql_result(mysql_query("SELECT COUNT(`user_id`) `FROM `users`
WHERE `password` = '$password' AND `user_id <'$user_id' ORDER BY user_id DESC, LIMIT 3"), 0) == 1) ? true : false ;
1 つの関数でやりすぎていませんか? つまり、最初に最後の 3 つのレコードを 1 つの関数で分離してから、そのセットを検索する必要がありますか? エントリに順番に番号を付ける列を追加する必要がありますか? つまり、1、2、3、4、5 の 5 つのレコードがあり、「2」が削除された場合、列は 1、2、3、4 となります。この方法で検索する方が簡単だと思います。どんな助けでも大歓迎です!ありがとう
}