【问题标题】:Setting cookie in PHP, then redirecting to new URL and access the set cookie?在 PHP 中设置 cookie,然后重定向到新 URL 并访问设置的 cookie?
【发布时间】:2011-07-21 20:54:29
【问题描述】:

我试图设置一个 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/重定向代码)

【问题讨论】:

    标签: php facebook cookies redirect wufoo


    【解决方案1】:

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

    来自 PHP 文档:

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

    【讨论】:

    • 这驻留在 iframe Facebook 应用程序中,因此我拉入的内容来自设置 cookie 的域。
    • PHP 代码实际上是从 Facebook 服务器加载/执行的吗?还是您在其他地方托管该脚本? Facebook.com 可能会发布 iframe,但如果内容来自您的服务器,则您的服务器将被视为 cookie 的源点,并且无法用于 facebook 托管的页面。
    • 一切都在 iframe 中进行,全部托管在我的服务器上。
    • 如何将它们全部托管在您的服务器上?您正在重定向到 Facebook 的域。
    • iframe 中的所有内容都托管在我的服务器/域上。所有 Facebook 的标签应用程序现在都是 iframe 驱动的。
    【解决方案2】:

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

    【讨论】:

    • 回答一年前已经回答的问题有什么意义?
    • 一年前?!我认为你读错了日期。虽然已经一个月了,但尚未以解决 OP 问题的方式回答。
    • 他的问题与浏览器无关
    【解决方案3】:

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

    【讨论】:

    • 是的,这是在其他一些线程中建议的。我试过这个,但没有运气。
    猜你喜欢
    • 1970-01-01
    • 2010-10-11
    • 1970-01-01
    • 1970-01-01
    • 2016-11-14
    • 2015-11-20
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    相关资源
    最近更新 更多