【问题标题】:Issue setting cookies问题设置 cookie
【发布时间】:2017-06-14 19:11:44
【问题描述】:

我第一次尝试设置 cookie。我一直在关注 W3 学校的文档,但它似乎对我不起作用。

这是我的代码(本示例省略了一些命名):

$namenospace = 'thisnameexample';

function someSetup($somename){
    $nameofcookie = $somename . '_some_value';

    if(!isset($_COOKIE[$nameofcookie])) {
        $someValue = rand(1, getrandmax());
        $cookielastsfor = time() + (86400 * 30);
        setcookie($nameofcookie, $someValue, $cookielastsfor, "/");
    }
    else {
        $someValue = $_COOKIE[$nameofcookie];
    };

    return $someValue;
};

$setSomeValue = someSetup($namenospace);

如您所见,我正在尝试检查是否设置了 cookie,如果是,则获取值并使用它,否则,设置 cookie,然后返回值。

由于某种原因,这个 setcookie() 函数不起作用。有人对此有任何见解吗?

如果相关的话,可能值得注意的是这是一个 wordpress 网站?

谢谢!

编辑:已根据 cmets 中突出显示的范围问题进行了更新,但仍无法按预期工作。

再次编辑:绝对不是重复的。我和我的团队发现了这个问题,并希望将此未标记为重复,以便可以给出答案!

【问题讨论】:

  • 1.你不要打电话给someSetup()
  • @RiggsFolly - 现在已经更新,我忘了更新那里的函数名称,我已经更改了问题的代码
  • 2.变量 SCOPE, Scope, scope........ $namenospacesomeSetup() 函数中是不可见的。如果您想在函数中使用它,请将其作为参数传递
  • $namenospace 超出了someSetup 的范围。你需要使用function someSetup() use ($namenospace) {
  • @RiggsFolly 我不认为这是重复的,虽然范围是一个问题,但它不会停止 cookie 的创建,名称应该是 _some_value。请考虑重新打开它。

标签: php wordpress cookies


【解决方案1】:

确保您在输出前设置了 cookie。你在哪里调用你的函数?

作为替代方案,您可以使用 JS 在客户端设置 cookie。

【讨论】:

  • 我会对此下注。再次重复stackoverflow.com/questions/8028957/…
  • @RiggsFolly 在办公室安静的一天?
  • @James :) 有点。
  • @jock.perkins 如果您一直在监控您的 php 错误日志,或者在打开错误报告的情况下仍然运行更好,那么错误日志中将会有一个 wopping 很好的提示您可以在搜索中使用的错误消息会告诉您这一点
  • 嗨@jock.perkins
猜你喜欢
  • 2015-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多