【问题标题】:Can cookie values be set after html has loaded on a page?可以在页面上加载 html 后设置 cookie 值吗?
【发布时间】:2012-12-11 15:39:58
【问题描述】:

我了解到可以在 HTML 内容从 PHP 脚本发送到 Web 服务器后设置 cookie 值。

但是,在处理这个问题时,我无法像我希望的那样设置 cookie。有人可以纠正我的差异吗?

【问题讨论】:

  • @Mr.Alien 如果你能解决这个问题,我真的对 php 的含义更加好奇。显示内容后不能设置cookie吗?
  • 页面加载后,如果不发出另一个页面请求,就无法在 PHP 中设置 cookie。 Javascript 可以。
  • @ZAX 如果您的源代码输出 php,您在页脚上再次在输出 html 之间设置一个 cookie,cookie 被设置,1ce 页面呈现,您不能使用 php 设置,改用 JS,确定你没有任何有用的功能取决于cookies,如果用户浏览器JS被关闭,你可能会遇到麻烦

标签: php html cookies


【解决方案1】:

PHP 只能在发送页面标题时设置 cookie(即在发送内容 - HTML 之前)。 HTTP protocol works regarding cookies就是这样,服务器可以向浏览器发送请求来存储cookies。

如果您希望在页面加载后添加 cookie,您可以通过 JavaScript 来完成。

【讨论】:

    【解决方案2】:

    您可以设置一个 javascript cookie(使用 jQuery plugin 有点简单),或者通过 AJAX 向 php 脚本发送一个值,然后让它设置 cookie。或者最好的选择,您可以在 PHP 级别使用会话而不是 cookie。取决于您的应用程序。

    【讨论】:

      【解决方案3】:

      我猜你没有RTM,因为如果你有,你会看到这个:

      setcookie() 定义了一个 cookie 与其余的一起发送 HTTP 标头。与其他标头一样,cookie 必须在任何 脚本的输出(这是协议限制)。这 要求您在任何输出之前调用此函数, 包括和标签以及任何空格。

      但在你的情况下更重要的是:

      注意:

      您可以在调用 this 之前使用输出缓冲发送输出 函数,所有输出到浏览器的开销是 缓存在服务器中,直到您发送它。你可以通过调用来做到这一点 脚本中的 ob_start() 和 ob_end_flush()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-01
        • 2019-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-21
        相关资源
        最近更新 更多