こんにちは、仲間のプログラマーとコーダー。zubragによるすでに優れたログインスクリプトに基づいて、拡張ログインスクリプトを開発しています。
私が達成しようとしていること:ユーザーが管理者の場合、彼はログインします。ユーザーが通常のユーザーの場合、彼はログインしません。
何が起こるか:ユーザーは、管理者でなくてもログインします。
コードの抜粋は次のとおりです。
// user provided password
if (isset($_POST['access_password'])) {
$login = isset($_POST['access_login']) ? $_POST['access_login'] : '';
$pass = $_POST['access_password'];
if (!USE_USERNAME && !in_array($pass, $users)
|| (USE_USERNAME && ( !array_key_exists($login, $users) || $users[$login] != $pass ) )
) {
showLoginPasswordProtect("Incorrect username or password.");
}
私が問題を抱えている部分:
elseif (array_key_exists($login, $admins)) {
showLoginPasswordProtect("User not an admin.");
}
残りのコード:
else {
// set cookie if password was validated
setcookie("verify", md5($login.'%'.$pass), $timeout, '/');
setcookie("user", $login, 0, '/');
// Some programs (like Form1 Bilder) check $_POST array to see if parameters passed
// So need to clear password protector variables
unset($_POST['access_login']);
unset($_POST['access_password']);
unset($_POST['Submit']);
}
}
ユーザー名とパスワードの配列:
$users = array(
'username' => 'password',
'administrator' => 'administrator-password'
);
管理アレイ:
$admins = array(
'administrator'
);
それをすべて一緒に想像してみてください。問題は何でしょうか。(おそらく本当に簡単です。私はプロのコーダーではありません。)