好的,我有一个简单的文本字段来输入用户/通过一个记住用户复选框,但不知何故我不确定我做错了什么,当我选中复选框时,不会重新创建cookie,如果没有创建cookie,当我重新访问该站点时,用户名show....this不会是我所拥有的
function loginForm($userValue,$checkBox)
{
echo "<form action='index.php' method='get'>";
echo "<p>Username: <input type='text' name='user' value='$userValue' /></p>";
echo "<p>Password: <input type='password' name='pass' /></p>";
echo "<p>Remember my username next time I visit this site <input type='checkbox' name='remember'" . $checkBox . "/></p>";
echo "<input type='submit' value='Log In' />";
echo "</form>";
}
if((!(isset($_GET["user"]))) && (!(isset($_COOKIE["username"]))))
{
    loginForm('','');
}
if(isset($_GET["remember"]))
{
    setcookie("username",$_GET["user"], time() + 60);
    loginForm($_COOKIE["username"],"checked");
}发布于 2013-04-07 13:35:51
看起来你有一些逻辑错误。首先,您只需检查是否可以在设置了$_GET"remember“时使用cookie填写表单,这可能意味着表单刚刚提交。这里有一个修改过的版本,这可能是一个很好的开始:
function loginForm($userValue,$checkBox)
{
echo "<form action='test.php' method='get'>";
echo "<p>Username: <input type='text' name='user' value='$userValue' /></p>";
echo "<p>Password: <input type='password' name='pass' /></p>";
echo "<p>Remember my username next time I visit this site <input type='checkbox' name='remember'" . $checkBox . "/></p>";
echo "<input type='submit' value='Log In' />";
echo "</form>";
}
if (!isset($_GET["user"]) && !isset($_COOKIE["username"]))
{
    loginForm('','');
}
else if (isset ($_COOKIE["username"]))
{
    loginform ($_COOKIE["username"], '');
}
if (isset($_GET["remember"]))
{
    setcookie("username",$_GET["user"], time() + 60);
}然而,最大的问题是,只有在表单刚刚提交的情况下,您才允许cookie工作。我刚刚发布的代码对我有效,并且记住了我的用户名。
发布于 2013-04-07 13:18:40
您正在将cookie的过期日期设置为从当前时间起60秒。所以当你重新访问这个网站时,它可能已经过期了。
https://stackoverflow.com/questions/15859120
复制相似问题