ユーザーがサインインしてパスワードが確認されたら、彼のユーザー名をクッキーに保存する必要があります。 if ($password_match == $user_login_password) {...
のようなセクションでパスワードが正常に確認された場合は、単にsetcookie()
を追加しようとしましたが、何らかの理由で正常に動作していないようです。ユーザーが正しいパスワード/ユーザー名で正常にログインすると、Cookieを設定できません。関数の中からsetcookiesを設定できない何らかの理由がありますか?PHP setcookieの問題
public function write($p) {
if ($_POST['user_login_username'])
$user_login_username = mysql_real_escape_string($_POST['user_login_username']);
if ($_POST['user_login_password'])
$password = mysql_real_escape_string($_POST['user_login_password']);
$password .= 'some_Salt';
$user_login_password = hash('sha256', $password);
} elseif ($user_login_username && $user_login_password) {
$q = "SELECT * FROM users WHERE username = '$user_login_username'";
$r = mysql_query($q);
if ($r !== false && mysql_num_rows($r) > 0) {
while ($a = mysql_fetch_assoc($r)) {
$password_match = stripslashes($a['password']);
}
if ($password_match == $user_login_password) {
echo $this ->display_login('Correct!');
setcookie('user','some_username');
} else {
echo $this ->display_login('Wrong Password!');
}
} else {
echo $this ->display_login('That username does not exist.');
}
return;
} else {
return false;
}
}
正確には機能していないと判断していますか? – deceze
クッキーのパスを '/'に設定してみてください。 – animuson
それは非常に危険に見えます。ユーザーが管理者のユーザー名を知っている場合はどうなりますか?ユーザーは単にクッキーを変更し、彼は管理者としてログインしています。 – kijin