0

我试图设置一个 cookie,然后重定向到一个新的 URL 并访问(或检查是否设置了 cookie)设置的 cookie,但它似乎在新 URL 中不可用。

<?php
header("Location: http://www.facebook.com/pages/tabappURL");
setcookie('coupon', true, time() + 120); //hold for 2 min, time in seconds
?>

有任何想法吗?

另外,让我解释一下是什么,或者我为什么要这样做。我有一个 Facebook 选项卡应用程序,它是一个 iframe……用户喜欢该页面,然后会看到一个竞赛报名表(由 Wufoo 提供支持)。用户提交表单后,wufoo 会重定向到感谢页面……但是,它会刷新并让您远离 Facebook。这不是理想的情况,因为我们希望感谢页面驻留在 iframe 中。我无法控制在 wufoos 端定位 iframe,因此解决方法是重定向到我服务器上的另一个页面(在 iframe 中托管内容的同一服务器)设置 cookie,然后重定向回 FB 应用程序页面。然后 FB 应用程序检查是否设置了 cookie,然后显示感谢消息。

从技术上讲,这是两页:

index.php(有)

<div class="not-liked">please like us</div>
<div class="liked">enter contest</div>
<div class="thanks">thank you</div> <!-- hidden until page refresh and cookie set -->

redirect.php(上面有 cookie/重定向代码)

4

3 回答 3

2

Cookie 通常只能在指定域内访问。

来自 PHP 文档:

domain : cookie 可用的域。要使 cookie 在 example.com 的所有子域(包括 example.com 本身)上可用,您需要将其设置为“.example.com”。虽然有些浏览器会接受不带首字母 . 的 cookie,但 » RFC 2109 要求包含它。将域设置为“www.example.com”或“.www.example.com”将使 cookie 仅在 www 子域中可用。

于 2011-07-21T20:56:12.077 回答
0

检查您的浏览器设置以查看您是否启用了第三方 cookie。在某些浏览器中,如果禁用了 iframe 内的页面,即使它们属于同一个域,它们也不会收到 cookie。

于 2011-09-09T18:38:43.593 回答
-1

你调用 session_start() 了吗?这将使 PHP 检查会话 cookie 的请求标头。

于 2011-07-21T21:16:00.473 回答