Php 如何在drupal 7中保存会话变量?

Php 如何在drupal 7中保存会话变量?,php,drupal,drupal-7,session-variables,Php,Drupal,Drupal 7,Session Variables,我想使用变量会话($\u会话),但它在Drupal7中不起作用。在Drupal 7中,保存变量会话的可能性有哪些。您可以试试这个 function lists_session($key, $value = NULL) { static $storage; if ($value) { $storage[$key] = $value ; $_SESSION['lists'][$key] = $value ; // I use 'lists' in case some ot

我想使用变量会话($\u会话),但它在Drupal7中不起作用。在Drupal 7中,保存变量会话的可能性有哪些。

您可以试试这个

function lists_session($key, $value = NULL) {
  static $storage;
  if ($value) {
    $storage[$key] = $value ;
    $_SESSION['lists'][$key] = $value ;   // I use 'lists' in case some other module uses 'type' in $_SESSION
  }
  else if (empty($storage[$key]) && isset($_SESSION['lists'][$key])) {
    $storage[$key] = $_SESSION['lists'][$key];
  }
  return $storage[$key];
}
因此,要在会话中保存变量:

lists_session("s_key", "value");
要检索该值,只需使用:

$myVar = lists_session("s_key");

在我自己的模块中使用$\u SESSION变量没有问题。请记住为数据创建唯一的子键

$_SESSION['mydata'] = array(of your data);

记住序列化数据,如数组、对象。。。在保存到会话之前。 $arr=array();
$_SESSION['mysession']=serialise($arr)

我希望能够访问php页面中的会话变量。此页面可在我的drupal网站上使用lightbox2模块。我需要使用会话变量在这些页面之间进行通信。因此,代码是:$_SESSION['background_menu']='yellow';在我的php页面中:echo$\u SESSION['background\u menu']?>我也有SESSION\u start,但它不工作。帮助:)Drupal引导将完成会话启动。那么php代码是如何运行的呢。它是drupal模块还是有独立的php脚本?$\u会话变量在drupal 7中工作。因此,您自己的代码中的某些内容不起作用。您是否在其他环境中测试了您的代码?我们是否还需要一个会话启动,或者drupal中已经存在一个会话启动?您可以使用。如果会话尚未启动,它将启动会话。您不需要调用
drupal\u session\u start()
。一旦将数据添加到
$\u会话
中,Drupal将在请求结束时保存该会话。如果您必须直接调用
drupal\u session\u start()
,则会出现问题。注意(),如果其他人怀疑:
static$storage
用于保存当前请求的数据,而
$\u session
用于保存数据以备将来请求。如果有人被困在使用$\u session中,请注意。如果@Muhammadda的回答没有帮助。请检查您的数据库是否有uid=0的用户[link],并记住配置>性能>清除缓存