【问题标题】:PHP sessions aren't available on multiple websitePHP 会话在多个网站上不可用
【发布时间】:2019-03-19 12:34:10
【问题描述】:

在我的网站上,我需要与基于相同 VPS 的其他网站共享 vars $_SESSION

我已经对其进行了测试,但变量 $_SESSION 没有传递到其他网站。 但是$_SESSION位置的配置是一样的。

我应该检查什么?

对不起我的英语,我是法国人:)

马蒂斯

【问题讨论】:

  • 你访问的是同一个域名的其他网站吗?也就是说,您的网站是example.com/mysite 和其他网站example.com/othersite 吗?如果没有,你的设置是什么
  • stackoverflow.com/questions/9153716/… 可能对同一个域有帮助。
  • 我的网站没有相同的域或子域。

标签: php session


【解决方案1】:

重要的是,您必须有一个共享资源来在不同主机之间共享会话——无论是 SQL 数据库、memcached、NoSQL 数据库等,所有服务器都可以访问。然后使用 session_set_save_handler 访问共享资源。

【讨论】:

  • 在许多服务器配置中,会话文件都有一个共享的/tmp 位置。问题(更好地称为“安全功能”)是 cookie 的同源策略。
【解决方案2】:

您的 $_SESSION 变量仅在您正在处理的服务器内可用。在您项目的任何 .php 页面上尝试此操作

session_start();
echo "<pre>";
print_r($_SESSION);
echo "</pre>"; 

更好地了解$_SESSION vars 的工作原理;

【讨论】:

  • 在网站上会话正常工作。但是当我访问托管在同一个 VPS 上的其他网站时,会话会有所不同。
  • 您必须求助于另一种替代方法,例如 SQL,例如上面建议的 Quasimodo 的克隆;如果可以按照您的意愿进行操作,那么 $ _SESSION 变量将无法安全使用;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多