0

所以这是交易。我有一个登录表单,我可以用 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

4

2 回答 2

0

看起来好像您使用该setcookie()方法在 PHP 中正确设置了它。我的第一个猜测是服务器和本地时间之间可能存在的差异。

可能因为您和服务器位于不同的时区,此 cookie 一经设置就会过期?查看设置时区支持的时区列表

同样,从代码示例和解释来看,这只是一个猜测。也可能是您的浏览器未设置为接受 cookie 等...

希望有帮助。

于 2012-08-09T21:59:26.823 回答
0

Cookie 设置为 HTTP 标头的一部分,如果有任何其他输出先发送到浏览器,则无法成功设置。那么您的 cookie 页面中的 php 标签上方是否有任何空格或其他文本/html 内容?如果是这样,请将其删除并重试。

我建议首先制作一个单独的最小测试用例,其中只包含 cookie 内容,然后一旦你确信你可以正常工作,添加你的帖子逻辑。

于 2012-08-09T22:11:27.473 回答