使用php获取存储在具有另一个会话名称的上一页的会话中的值


Fetching value stored in session on previous page with another session name using php

这是我的场景。我有两个不同的页面与php

1) 。index.php页面的会话名称声明为"session_one"

 $some_session = session_name("session_one");
 session_set_cookie_params(0, '/', '.domain.net');
 session_start();

2) 。order.php页面的会话名称被声明为"sesson_rrandom"(由于实现的性质,这需要另一个会话名称

 $some_session = session_name("sesson_random");
 session_set_cookie_params(0, '/', '.domain.net');
 session_start();

现在我面临的问题是,我在会话中在index.php上存储了一些值,我想在order.php上检索这些值。我尝试了很多方法,但都无法通过。

请注意,我不能在url的查询字符串中传递这些值。

请帮助

您应该能够从另一个会话中读取数据,方法是在打开新会话之前恢复数据。您所要做的就是使用session_id函数。我在这里用以下代码测试了它:(index.php)

<?php
  session_name("session_one");
  session_start();
  $_SESSION["test"] = array("this is just a test");
  print_r($_SESSION);
?>

现在,您所要做的就是首先加载另一个会话,并将值保存到一个数组中:(order.php)

<?php
  if(isset($_COOKIE["session_one"])){
    session_id($_COOKIE["session_one"]);
    session_name("session_one");
  }else{
    session_name("session_one");
  }
  session_start();
  $session = $_SESSION;
  session_write_close();
  print_r($session);
  if(isset($_COOKIE["session_random"])){
    session_id($_COOKIE["session_random"]);
    session_name("session_random");
  }else{
    session_name("session_random");
  }
  session_start();
  $_SESSION["other"] = array("this is another test");
  print_r($_SESSION);
?>

两次会议合并在一起。如果你不为此烦恼,你应该很乐意去。从这里得到了一些灵感:在一个PHP脚本中可以使用多个独立的$_SESSION吗?