我是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()
为什么?
答案 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!
谢谢!