长话短说,我有一个主站点和移动版本。我试图创建一个“查看完整站点”按钮,单击它时,它执行2个功能。他们是
的 1。设置一个cookie,以便主页可以跟踪是否点击了“查看完整网站”按钮。
的 2。点击后导航到主要的父(而非移动)网站。
我尝试了很多东西,所以我不会堵塞页面(我的大脑到处都是)。无论如何 我努力工作的最后一种方式是我通过 Loooooong 方式打破了这一切
的 -1。创建按钮
的 -2。点击,导航到处理器页面,使用php设置cookie,然后重定向到主站点
的 -3。主站点有php检查“查看完整站点是否已被点击”
并且它仍然无效。
下面是对我尝试做什么以及我正在做什么的一个很好的描述:
- jQuery Mobile(网站在此内构建)
- PHP移动检测(http://code.google.com/p/php-mobile-detect/)
- jQuery Cookie(https://github.com/carhartl/jquery-cookie)
注意:就设置cookie和测试它们的存在而言,它单独起作用。
在主站点的索引上,在开头HTML标记上方的标题中,我有这个 PHP:
if(!isset($_COOKIE['dontDoMob'])){
//its not set so check for device type.
include("Mobile_Detect.php");
$detect = new Mobile_Detect();
if ($detect->isMobile() ) {
//"its some kind of mobile device so redirect to mobile";
header("Location:http://myforecyte.com/m/");
exit();
}
}
在移动网站的索引上,我有一个按钮(“查看完整网站”),点击该按钮应该通过jQuery设置cookie(单独工作),然后重定向到主页,这将是刚刚保留从那时起加载主站点,然后就会设置cookie。
因为所有这些都不起作用(它甚至不会重定向),(不确定它是否因为jQuery Mobile),并且假设它然后我将所有内容分开,
我做的是这个(下面)
我在jQuery mobile中设置了 视图完整网站 链接,以转到像这样的单独处理器页面(等)。那个处理器页面有这个
PHP:
setcookie('dontDoMob', 'yes');
header("Location:http://www.myforecyte.com");
现在当我用这样的基本内容检查cookie时(确保设置了cookie) PHP:
if(isset($_COOKIE['dontDoMob'])){
echo "its set yo";
} else {
echo "its not set";
}
它有效,告诉我“它的设置哟”哈哈(我不得不笑)。当我删除所有cookie并用firebug重新测试时,它总是相应的。
所以我删除了所有废话并简单地离开了 PHP:
setcookie('dontDoMob', 'yes');
header("Location:http://www.myforecyte.com");
之后会发生什么......好吧......它总是回到移动设备上。我看到主要网站的URL瞬间,然后再次重定向到移动设备。就像饼干没有设置一样。
PS / HINT - 我认为这与在全球范围内设置cookie或类似的东西有关...不确定如何去做。贝恩是混乱的。我迷失了!
任何帮助,逻辑调整....任何我能让我谦虚的欣赏。
先谢谢。
答案 0 :(得分:1)
我一直在努力做同样的事情,我终于让它发挥作用了。我使用了和你一样的方法,所以我不确定你为什么不工作......
在我的移动网站上,我有一个按钮可以查看完整的网站。此按钮链接到www.fullsite.com/setmobile.php
setmobile.php是一个简单的php文件,如下所示:
<?php
setcookie("mobile", "full", time()+3600);
header("Location:http://www.fullsite.com");
?>
设置cookie并转到主站点。主站点有以下php代码:
<?php
if (!isset($_COOKIE["mobile"])){
(...detect mobile script)
}
?>
它适用于我,但它看起来与您使用的方法相同,所以我不确定为什么你的工作不起作用......
您现在可能已找到解决方案,但如果没有,我希望这可以帮助您:)
祝你好运, 安德鲁答案 1 :(得分:0)
Cookie具有“域名”限制,
e.g。默认情况下,http://mobile.example.com
的Cookie 不可供http://www.example.com
使用。
但是, 可用于创建cookie的域的所有子域。例如。 http://a.mobile.example.com
和http://b.mobile.example.com
。
您可以指定在设置Cookie时应为哪个域创建Cookie。在这里阅读PHP手册:
http://php.net/manual/en/function.setcookie.php
不确定这是否是您问题的完整答案,但由于您提到多个域名,这可能是问题的部分。
希望这有帮助