在PHP中设置cookie,然后重定向到新的URL并访问设置的cookie?

时间:2011-07-21 20:54:30

标签: php facebook cookies redirect wufoo

我试图设置一个cookie,然后重定向到一个新的URL并访问(或检查cookie是否已设置)set 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 /重定向代码)

3 个答案:

答案 0 :(得分:2)

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

从PHP文档:

  

:Cookie可用的域。要在example.com的所有子域(包括example.com本身)上提供cookie,您可以将其设置为“.example.com”。虽然有些浏览器会接受没有初始化的cookie。»RFC 2109要求包含它。将域设置为“www.example.com”或“.www.example.com”将使cookie仅在www子域中可用。

答案 1 :(得分:0)

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

答案 2 :(得分:-1)

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