【问题标题】:Session cookie and www会话 cookie 和 www
【发布时间】:2011-07-15 19:02:47
【问题描述】:

我希望在使用 www 时在我的网站上进行会话。并且在不使用它的时候。 我读过这个线程: PHP cookie problem - www or without www

这会起作用,但我在这里创建的不是 cookie,而是会话。我将如何解决这个问题?另请注意,我不知道我的脚本将在哪个域上运行,因此不能对域进行硬编码。

有没有办法做到这一点?

谢谢

编辑: 我强制会话 ID 应该存储在 cookie 中,所以只有这个适用。

【问题讨论】:

    标签: php session


    【解决方案1】:

    您可以为此反映php.ini。在 php.ini 中添加这个,这样你的会话 cookie 就会被保存在无论有没有 www 都可以访问的地方

    session.cookie_domain = .example.com 
    

    你也可以试试其他方法

    ini_set("session.cookie_domain", ".example.com"); 
    

    您可以使用$_SERVER['HTTP_HOST'] 变量获取主机名。

    【讨论】:

      【解决方案2】:

      我的 cookie 遇到了这个问题,您帖子中的链接很好地解决了这个问题。

      到目前为止,我在使用 Sessions 时从未遇到过困难。它独立于域或子域,它们存储在服务器端。

      您可以在配置文件中设置常量参数 DOMAIN_NAME,或在数据库中为您的 cookie 预先设置,然后只修改一次。

      【讨论】:

        【解决方案3】:

        在调用 session_start 之前使用 session_set_cookie_params 函数,它允许你设置会话域和其他东西,将域设置为你的域,前缀为 .使会话也可用于子域。

        【讨论】:

          【解决方案4】:

          在所有请求中使用正确的主机名对于会话很重要。但是,如果您要跨多个子域访问 cookie,那么您可以指定带有前置句点的域参数。即,

          .example.com

          【讨论】:

            【解决方案5】:

            PHP 使用 cookie 作为会话 ID,所以这确实是同样的问题(和解决方案)。查看会话配置。

            http://php.net/manual/en/session.configuration.php

            【讨论】:

              猜你喜欢
              • 2011-02-23
              • 1970-01-01
              • 1970-01-01
              • 2014-07-18
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多