所以这是交易。我有一个登录表单,我可以使用Jquery设置cookie,但我的雇主希望用PHP完成。所以我试图这样做。
这是我的表格
<?php if(!isset($_POST['commit'])){
echo "<a id='loginbtn' class='btn dropdown-toggle loginbtn' href='#' data-toggle='dropdown'>Sign in <strong class='caret'></strong></a>";
echo "<div id='loggedout' class='dropdown-menu' style='padding: 15px; padding-bottom: 0px;'>";
echo "<form name='LoginForm' id='LoginForm' action='' method='post' accept-charset='UTF-8'>";
echo "<input id='user_username' style='margin-bottom: 15px; height:25px;' type='text' name='username' size='30' value='Username' />";
echo "<input id='user_password' style='margin-bottom: 15px; height:25px;' type='password' name='password' size='30' value='********' />";
echo "<input class='btn btn-primary' id='login' style='clear: left; width: 100%; height: 32px; font-size: 13px;' type='submit' name='commit' value='Sign In' />";
echo "</form>";
echo "</div>";
}
?>
当我尝试设置cookie时,它看起来像这样:
<?php
if(isset($_POST['commit'])){
$username= $_POST["username"];
setcookie("TestCookie", $username, time()+3600, '/', 'mydomain.com');
}
?>
<!DOCTYPE html>
<html class='wf-franklingothicurwcond-n5-active wf-franklingothicurwcond-n7-active wf-active' lang='en'>
我,有一次,将$ username变量设为全局并将其输出到页面上,因此我知道这是有效的,但由于某种原因,cookie不会设置。
非常感谢任何帮助:)
编辑:
不知道它是否有任何区别,但我也在使用Bootstrap
答案 0 :(得分:0)
看起来好像是使用setcookie()
方法在PHP中正确设置它。我的第一个猜测是服务器和当地时间之间可能存在差异。
也许这个cookie一旦设置就会到期,因为你和服务器位于不同的时区?查看setting a timezone和list of supported timezones。
再次,从代码示例和解释,这只是一个猜测。它也可能是您的浏览器未设置为接受cookie等...
希望有所帮助。
答案 1 :(得分:0)
Cookie被设置为HTTP标头的一部分,如果首先向浏览器发送任何其他输出,则无法成功设置。那么你的cookie页面中的php标签上面是否有空格或其他文本/ html内容?如果是这样,请将其删除并重试。
我建议首先在其中添加一个单独的最小测试用例,然后一旦你确信你有这个工作,就添加你的帖子逻辑。