【问题标题】:How to view drupal 7 sessions from an external PHP page?如何从外部 PHP 页面查看 drupal 7 会话?
【发布时间】:2013-02-28 01:45:49
【问题描述】:

我安装了 drupal 7,我需要在用户个人资料页面中包含一段 PHP 代码。

我创建了一个新块并将这段代码放入其中:

"include (http://mysite/sites/all/themes/campi_aggiuntivi.php)"

在“campi_aggiuntivi.php”中我输入了以下代码:

session_start ();
print_r ($ _SESSION);

但它返回一个空数组。

如何在这个外部页面中与 drupal 会话进行交互?

非常感谢您的回答。


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

我创建了文件 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 中放置了哪个函数,以插入测试模块管理屏幕块

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

【问题讨论】:

    标签: session drupal drupal-7 drupal-modules session-variables


    【解决方案1】:

    我认为您需要包括 Drupal Bootstrap 和一些其他必要的程序。这是a link to an issue on d.o,可能会有所帮助。

    【讨论】:

    【解决方案2】:

    我要建议的第一件事是不要像这样包含:

    "include (http://mysite/sites/all/themes/campi_aggiuntivi.php)"
    

    改用本地路径:"include (sites/all/themes/campi_aggiuntivi.php)"

    但这取决于您从哪里调用,如果两个文件位于同一位置(在用户配置文件 tpl 文件中调用),那么这可能有效:"include (campi_aggiuntivi.php)"

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

    【讨论】:

      【解决方案3】:

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

      我也希望 print_r ($ _SESSION);实际上是 print_r ($_SESSION);在您的代码中,即没有空格。

      如果您想在用户个人资料页面中添加一个块,我建议您使用 drupal 方式。

      Drupal 已经有一个很好的以编程方式创建块的示例。 Here is the link.

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

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

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

      在您的自定义模块中,您可以访问 $_SESSION 变量。

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

      或者使用以下万无一失的方法来加载文件。当您从主题中调用它时,这甚至会起作用。

      假设您想使用位于自定义模块中的 custom_module_name.campi_aggiuntvi.inc,那么您可以从主题中使用module_load_include

      例如,

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

      上述调用将从 custom_module_name 模块文件夹加载 custom_module_name.campi_aggiuntivi.inc。这样您就不必对访问文件所需的路径进行硬编码。

      【讨论】:

        【解决方案4】:

        根据您的更新.. 听起来您现在正在尝试以编程方式创建一个块。您可以在 Drupal.org 上下载 example modules。该下载中有一个块模块。

        【讨论】:

          猜你喜欢
          • 2020-01-04
          • 2020-02-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-17
          • 1970-01-01
          • 2014-09-02
          • 1970-01-01
          相关资源
          最近更新 更多