私はphpでログインシステムを作っています。正しい情報を提出すると、cookieが設定されます。フォームアクションは同じページに送信されますが、その上にはイムネットのCookieの確認がありますが、設定後にCookieが更新される必要があるため、別のページを更新してCookieがあることがわかります。php:クッキーを設定して取得していますか?
どうすればよいですか?ここに私のコードです(私は、システムの作業を取得する際のユーザ名とパスワードだけのプレースホルダとして「admin」です。私は、データベースから値を引き出します。)
<?php
if(isset($_COOKIE['user']))
{
echo "Hello, administrator.<br />";
echo "<a href=?logout=yes>logout</a>";
if(isset($_GET['logout']))
{
setcookie("user", $_POST['username'], time() - 3600);
}
}
else
{
if (isset($_POST['submit']))
{
if (($_POST['username']=="admin")&&($_POST['password']=="admin"))
{
setcookie("user", $_POST['username'], time() + 3600);
}
else
{
echo "empty field or wrong user/pass.";
}
}
else
{
echo "nothing submitted. show form.";
}
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table border="0">
<tr><td colspan=2><h1>Login</h1></td></tr>
<tr><td>Username:</td><td>
<input type="text" name="username" maxlength="40">
</td></tr>
<tr><td>Password:</td><td>
<input type="password" name="password" maxlength="50">
</td></tr>
<tr><td colspan="2" align="right">
<input type="submit" name="submit" value="Login">
</td></tr>
</table>
</form>
誰もがこのアプローチの潜在的な管理者であることを認識していますか?誰でも自分のクライアントに 'user'という名前のクッキーを設定することができます。 –
Ferhad、どのような方法をお勧めしますか?気になります。 – David
セッションIDまたはハッシュを保存するために、すべてのユーザーデータとCookieにセッションを使用します。 –