首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GET方法的SetCookie

GET方法的SetCookie
EN

Stack Overflow用户
提问于 2014-09-10 21:02:22
回答 2查看 804关注 0票数 1

我为在我的Wordpress站点中设置setcookie()的正确位置而苦苦挣扎,最后我将它放在我的header.php的第一行中,从而使它工作起来。但是我需要它用从特定页面的url中得到的值来构建cookie,而不是主页。所以,我的header.php的第一行是:

<?php setcookie( 'mycookie', $_GET["var1"]."/".$_GET["var2"]."/".$_GET["var3"], strtotime( '+5 years' ), COOKIEPATH, COOKIE_DOMAIN, false, false);?>

我原以为当我进入http://www.example.com/?var1=01&var2=02&var3=03时,cookie将被设置为值"01/02/03“,但它只接收到与任何其他页面"//”相同的值,就像它没有看到$_GET[]获得的变量一样。

知道我该怎么做吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-12 00:38:05

在对您的代码进行了一些测试之后,我对它做了一些更改,以便更容易地调试它。

我注意到您写下了"COOKIEPATH,COOKIE_DOMAIN“作为参数,我不知道您是否真的在使用它,但是尝试用"/”和".example.com“替换它们,以便使cookie对整个域可用,或者在必要时进行限制。

这使得它能够在运行PHP5.3.x的服务器上工作。

注意,cookie是在第一次运行页面时创建的,但只有在第二次加载页面时才可用。

当您第一次加载页面时,您应该会看到如下内容:

曲奇被保存

1

01

02

03

曲奇饼干不存在..。现在还没有

第二次应该是:

曲奇被保存

1

01

02

03

01/02/03

希望我能帮上忙。

代码语言:javascript
复制
<?php
$cookieName = "mycookie";
$cookieIsSaved = setcookie( $cookieName,
        $_GET["var1"]."/".$_GET["var2"]."/".$_GET["var3"],
        strtotime( "+5 years" ),
        "/",
        ".example.com",
        false,
        false);

if ($cookieIsSaved) {
  echo "Cookie was Saved<br/>";
}
else
{
  echo "Cookie was not Saved<br/>";
}

echo $cookieIsSaved."<br/>";
echo($_GET["var1"]."<br/>");
echo($_GET["var2"]."<br/>");
echo($_GET["var3"]."<br/>");

if (isset($_COOKIE[$cookieName])) {
  print_r($_COOKIE[$cookieName])."<br/>";
}
else
{
  echo "Cookie $cookieName does not exist... yet";
}
?>
票数 2
EN

Stack Overflow用户

发布于 2014-09-10 21:11:37

我想您应该使用query_vars[]对象的$wp_query子数组:

代码语言:javascript
复制
global $wp_query;
if (isset($wp_query->query_vars['var1'])) {
    // modify the where/join/groupby similar to above examples
}

或者简单地使用get_query_var()函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25775046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档