如何在常规PHP脚本中继续CakePHP 3会话?

My situation is the following. I have a cakephp project and a seperated plain php script running on the same server. When I use my client browser to connect to the cakephp project, it builds up a session as it should.

Now I want to continue the session data with my plain php script. Again I use the same client browser to access the plain php script (so the request meta data should be the same and the session should be recognized) and I set cakephp session option to PHP.

'Session' => [
  'defaults' => 'php',
 ],

However, I cant find out how to continue the session on the plain php script. I would have assumed the following two lines of my plain php script would do the magic:

session_start(); 
echo json_encode($_SESSION);

Kind regards, Marius

CakePHPs PHP session defaults (like all built-in defaults) do change the name of the cookie / the name of the session (session.name INI setting) to CAKEPHP:

https://github.com/cakephp/cakephp/blob/3.5.3/src/Network/Session.php#L133-L138

So you either have to change that to match the defaults used by your vanilla PHP app (which is most probably PHPSESSID, ie the PHP default):

'Session' => [
    'defaults' => 'php',
    'cookie' => session_name(), // would use the PHP default
],
// ...

or change the latter app to use the name configured for your CakePHP application:

session_name('CAKEPHP');
session_start();
// ...

Also make sure that the session.cookie_path and session.cookie_domain configuration covers both of your applications locations.

See also