首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Wordpress中未检测到Cookie

Wordpress中未检测到Cookie
EN

Stack Overflow用户
提问于 2012-06-25 21:52:53
回答 3查看 633关注 0票数 1

我正在使用此页的技术设置一个简单的移动/桌面重定向。我还在移动站点上设置了一个cookie,这样如果用户想要链接回桌面站点,就会读取该cookie,并且重定向将发生而不是。我正在处理Wordpress站点,尽管重定向可以执行工作,但cookie是而不是正常工作。下面是正在发生的事情:

  • 移动重定向工作吗
  • Cookie 成功地设置了(通过WP外部的测试页面确认)
  • 当用户单击回桌面站点时,cookie不是而不是,用户将再次被转储回移动站点。

我使用两个外部静态页面测试了我的代码,并且一切都是100%工作的。只是当我在Wordpress中使用相同的代码时就不行了。下面是我在每个站点上的header.php文件中的代码:

桌面站点

代码语言:javascript
运行
复制
<?php
    include('Mobile_Detect.php');
    $detect = new Mobile_Detect();
    if ( $detect->isMobile() && isset($_COOKIE["mobile"]) ) {
         $detect = "false";
    }
    else if ( $detect->isMobile() ) {
         header("Location:http://m.example.com");
    }
?>

移动站点

代码语言:javascript
运行
复制
<?php setcookie('mobile','m', time()+3600, '/','.example.com'); ?>

PHP代码是文件中的第一个,在任何之前,并且在它之前或之后没有错误的空格。我已经通过回显一些文本来测试这段代码,脚本在那里是,并做它应该做的事情。它只是一个问题,曲奇没有被看到,并停止重定向移动网站,它应该。

很多小时后,我需要一些帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-26 14:12:26

问题解决了!

运行Drupal的桌面站点就是问题所在。这是一个缓存问题或什么的,因为如果我运行cron,整个检测方案都能很好地工作。第二次,它不起作用。它在运行cron之后只工作了一次。我得找我们的Drupal专家来解决这个问题。

尽管如此,还是谢谢你的帮助!

票数 0
EN

Stack Overflow用户

发布于 2012-06-25 22:06:28

如果要在同一页上设置cookie,请将cookie值分配给变量。ie:

代码语言:javascript
运行
复制
$cookievalue = "m";
setcookie("mobile",$cookievalue);

然后,在后面的页面中,您可以:

代码语言:javascript
运行
复制
if ( $detect->isMobile() && $cookievalue == "m" ) {
      $detect = "false";
}
else if ( $detect->isMobile() ) {
     header("Location:http://m.example.com");
}
票数 1
EN

Stack Overflow用户

发布于 2012-06-25 22:06:38

您的代码看起来很好--除非您的Mobile_Detect中有任何问题,但我看不出如何像您所说的那样设置cookie。

我会冒险猜测,您可能正在查看移动浏览器上的某个问题,或者可能是隐私设置。而不是仅仅设置一个标准的cookie,尝试使用一个会话-这几乎可以做所有的曲奇工作为您反正。

只需使用(在代码开始时,不使用html等,就像使用标准cookie一样);

代码语言:javascript
运行
复制
Session_start();
if ( isset($_SESSION["mobile"]) ) {

您实际上不需要在这段代码上运行检测--如果cookie/session数组还没有被选中,它就不会保存一个“移动”索引。

所以,而不是;

代码语言:javascript
运行
复制
<?php setcookie('mobile','m', time()+3600, '/','.example.com'); ?>

使用;

代码语言:javascript
运行
复制
<?php
Session_start();
$_SESSION['mobile'] = (bool) true;
$_SESSION['m'] = (bool) true;
$_SESSION['time'] = (int) time()+3600;

等等等等。(请记住,Session_start();需要在使用此cookie的每个页面的开头!)

通常情况下,通过浏览器会话绑定cookie是很好的做法,我认为这将有助于解决任何可能出现的浏览器安全问题。

试试看,如果对你有用,请告诉我。

祝你好运,

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

https://stackoverflow.com/questions/11197893

复制
相关文章

相似问题

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