简体   繁体   English

是否可以在不同的 PHP 版本之间共享会话?

[英]Is it possible to share session between different PHP versions?

I am starting an old app refactoring, I will rebuild some functionality from spaghetti code to MVC (Symfony).我正在开始一个旧的应用程序重构,我将重建一些从意大利面条代码到 MVC (Symfony) 的功能。 Plan was I will set up new IIS app, using subdomain.计划是我将使用子域设置新的 IIS 应用程序。 Now, old app is running PHP 5.3 which can't be upgraded.现在,旧的应用程序正在运行无法升级的 PHP 5.3。 New app will be running on PHP 5.6.新应用程序将在 PHP 5.6 上运行。 Only thing I need to carry is authentication.我唯一需要携带的就是身份验证。 I can have login script either on old or new app.我可以在旧应用程序或新应用程序上使用登录脚本。 I tried setting session cookie params but I can't get it working.我尝试设置会话 cookie 参数,但无法正常工作。

Is it possible at all or do I have to use database?完全有可能还是我必须使用数据库? If it is not possible, can that be achieved in Apache?如果不可能,可以在Apache中实现吗?

Edit:编辑:

What I'm to do is:我要做的是:

session.cookie_domain = ".dev" 

In both php.ini.在 php.ini 中。 Then I start the session in one, set a session variable.然后我开始一个会话,设置一个会话变量。

session_start();
$_SESSION['test'] = 123;

Then in the second app (php 5.6) I'm trying to read it:然后在第二个应用程序(php 5.6)中,我试图阅读它:

session_start();
var_dump($_SESSION);

But it's empty.但它是空的。

Apparently setting session cookie domains does not work for top level domains (TLD), like .dev显然,设置会话 cookie 域不适用于顶级域 (TLD),例如 .dev

Changed my code to:将我的代码更改为:

ini_set('session.cookie_domain', '.local.dev');

and now I am able to set session variables on .local.dev website and read them in new.local.dev现在我可以在 .local.dev 网站上设置会话变量并在 new.local.dev 中读取它们

Both apps are physically in separate folders, operate from two IIS entries and using different PHP versions.这两个应用程序实际上位于不同的文件夹中,从两个 IIS 条目运​​行并使用不同的 PHP 版本。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM