Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session 如何从外部PHP页面查看drupal 7会话?_Session_Drupal_Drupal 7_Drupal Modules_Session Variables - Fatal编程技术网

Session 如何从外部PHP页面查看drupal 7会话?

Session 如何从外部PHP页面查看drupal 7会话?,session,drupal,drupal-7,drupal-modules,session-variables,Session,Drupal,Drupal 7,Drupal Modules,Session Variables,我安装了Drupal7,需要在用户配置文件页面中包含一块PHP代码 我创建了一个新块,并将以下代码放入其中: "include (http://mysite/sites/all/themes/campi_aggiuntivi.php)" 在“campi_aggiuntivi.php”中,我输入了以下代码: session_start (); print_r ($ _SESSION); 但它返回一个空数组 如何在此外部页面中与drupal会话交互 非常感谢您的支持 谢谢大家的回答。 我正在尝

我安装了Drupal7,需要在用户配置文件页面中包含一块PHP代码

我创建了一个新块,并将以下代码放入其中:

"include (http://mysite/sites/all/themes/campi_aggiuntivi.php)"
在“campi_aggiuntivi.php”中,我输入了以下代码:

session_start ();
print_r ($ _SESSION);
但它返回一个空数组

如何在此外部页面中与drupal会话交互

非常感谢您的支持


谢谢大家的回答。 我正在尝试安装一个模块,并按照我的建议将其插入块avege中

我创建了test.info文件

name = Test Block
description = description Test Block
package = package Test Block
core = 7.x
dependencies[] = block

; Information added by drupal.org packaging script on 2013-02-01
version = "7.x-1.x-dev"
core = "7.x"
project = "Test Block"
datestamp = "1359680350"
但我无法确定我在文件test.module中放入了哪个函数来插入测试模块管理屏幕块

你能帮我吗?
再次感谢大家

我认为您需要包括Drupal引导和一些其他必要的过程。这可能会有所帮助。

我想建议的第一件事是不要包括这样的内容:

"include (http://mysite/sites/all/themes/campi_aggiuntivi.php)"
改为使用本地路径:
“包括(sites/all/themes/campi_aggiuntivi.php)”

但这取决于调用的位置,如果两个文件位于同一位置(调用用户配置文件tpl文件),那么这可能会起作用:
“include(campi_aggiuntivi.php)”


我假设您需要会话详细信息来确定用户id,该信息可以从$profile变量或arg(1)中检索。

我没有测试您的代码,但您尝试的方式不是扩展Drupal功能的常规方式

我也希望打印($\u SESSION);实际上是打印($\u会话);在代码中,即没有空格

如果您想在用户配置文件页面中添加块,我建议使用drupal方法

Drupal已经有了一个以编程方式创建块的优秀示例

看一看里面的block_示例模块。它将为您提供可用于创建块的相关示例代码

该示例还包含有关如何在默认情况下使块显示在某些页面中的信息

创建块后,将它们放置在您想要的区域中,如左侧边栏、用户配置文件页面上启用的相关主题的内容等

在自定义模块中,您可以访问$\u会话变量

从这里开始,您可以将campi_aggiuntivi.php中的代码包含在模块本身中

或者使用以下简单的方法加载文件。当你从一个主题中调用它时,这甚至会起作用

假设您想使用自定义模块中的custom_module_name.campi_aggiuntivi.inc,从一个主题开始,然后您可以使用

比如说,

 module_load_include('inc', 'custom_module_name', 'custom_module_name.campi_aggiuntivi');

上述调用将从自定义模块名称模块文件夹加载自定义模块名称.campi\u aggiuntivi.inc。这样,您就不必硬编码访问文件所需的路径。

基于您的更新。。听起来您现在正试图以编程方式创建块。您可以在Drupal.org上下载以下内容。该下载中有一个块模块。

我添加了包含项,但它返回以下错误:警告:包含():无法打开流:HTTP请求失败!eval()中的HTTP/1.0 500内部服务器错误(第2行/home/.sites/28/site1/web/drupal/modules/php/php.module(80):eval()代码)。警告:include():在eval()中打开“”以包含(include_path='。:/usr/share/pear:/usr/share/php')(第2行/home/.sites/28/site1/web/drupal/modules/php/php.module(80):eval()'d代码)失败。请尝试单独打开该php文件。看起来php文件没有正确打开。我的代码块是-->包含(');我的自定义页面的密码-->