带有Drupal 7内容模块的PHP $ _SESSION

时间:2014-10-23 04:19:06

标签: php session drupal drupal-7

我是Drupal的新手,需要了解它的会话管理工作,我的目标是通过不同的页面发送变量。

第一段代码从首页获取一个值,然后重定向到下一页。

<?php
session_start();
$_SESSION['beer'] = $_GET['g'];
header("Location: http://127.0.0.1/drupal/Page2.php");
exit();
?>

下一页就是这个

<?php
session_start();
echo $_SESSION['beer'];
?>

Page2.php回应$ _SESSION [&#39; beer&#39;]的价值。

现在,我将此相同的代码复制为Drupal 7内容模块中的页面。

更改php文件中的标题位置

<?php
session_start();
$_SESSION['beer'] = $_GET['g'];
header("Location: http://127.0.0.1/drupal/node/1");
exit();
?>

将代码添加到Drupal页面

<?php
/*session_start();*/ / Already initialised in drupal
echo $_SESSION['beer'];
?>

但是$ _SESSION [&#39;啤酒&#39;]的结果又回归了。

Notice: Undefined index: beer in eval()

为什么?

2 个答案:

答案 0 :(得分:1)

您使用variable_get()variable_set()。它在DrupalAnswers上covered结束。

答案 1 :(得分:0)

我终于发现了我做错了什么。作为新手,我没有将引导程序包含在我的页面Page2.php

现在这是新代码。

Page2.php:

<?php
define('DRUPAL_ROOT', getcwd());
require_once
DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
variable_set('beer', $_GET['g']);
header("Location:/drupal/node/1");
exit();
 ?>

内容页面

<?php
echo variable_get('beer');
?>

正如nathanlctnstn所建议的,我使用variable_set代替$ _SESSION来存储数据。

现在的结果是:

Nuts!

谢谢!