【问题标题】:php Sessions not work well without www没有 www,php 会话无法正常工作
【发布时间】:2017-07-08 01:46:11
【问题描述】:

我的会话仅适用于子域,例如www.,并且没有该子域就无法工作。

例如,当用户登录时。

如果地址不在子域上。打字没有登录。

我设置了会话 cookie_domain 但它不起作用。

//我不想通过htaccess重定向,因为子域都有同样的问题

【问题讨论】:

    标签: php session


    【解决方案1】:

    如果您希望 php 会话在您的所有子域中工作,您必须更改 cookie_domain 选项。在脚本顶部输入:

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

    【讨论】:

    • 您是否在脚本的顶部键入了此内容?
    • 是的; ini_set('session.cookie_domain', '.sooran.com' ); session_start();
    • 清除所有 cookie 子域和非 www 版本。然后再次测试它。它必须在技术上工作。
    • 我添加此文件以清除所有会话但不起作用; sooran.com/clear.php
    • 我用这个命令(sooran.com/clear.php,sooran.com/add.php,www.sooran.com/show.php)测试它,它显示了带有值的会话变量。它有效。
    【解决方案2】:

    www.domain.comdomain.com 不是同一个网站。它们是彼此的镜像

    因此,domain.com 上设置的 cookie 将不会在 www.domain.com 上使用,反之亦然,因为假设它们是相同的东西是不安全的。

    您可以通过将 php.ini 设置 session.cookie_domain 设置为 .domain.com 来允许会话 cookie 在所有子域以及主域上工作,从而在一定程度上覆盖此行为

    【讨论】:

      【解决方案3】:

      我用这个代码解决了这个问题

      session_name("name");
      ini_set ("session.cookie_domain", '.domain.com') ;
      session_set_cookie_params(0, '/', '.domain.com');
      session_start();
      

      【讨论】:

        猜你喜欢
        • 2015-01-15
        • 2015-05-10
        • 2018-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-22
        相关资源
        最近更新 更多