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


Setting cookie in PHP, then redirecting to new URL and access the set cookie?

我试图设置一个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内。我没有针对iframe在wufoo结束的控制,所以周围的工作将是重定向到我的服务器上的另一个页面(在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/redirect代码)

cookie通常只能在指定的域中访问。

来自PHP文档:

domain: cookie可用的域。要使cookie在example.com的所有子域(包括example.com本身)上可用,则将其设置为"。example.com"。虽然有些浏览器会接受没有初始的.的cookie,但是RFC 2109要求包含它。将域名设置为'www.example.com'或'.www.example.com'将使cookie仅在www子域名中可用。

检查您的浏览器设置,看看您是否启用了第三方cookie。在某些浏览器中,如果它们被禁用,则iframe内的页面将无法接收cookie,即使它们属于同一域。

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