【问题标题】:Drupal won't output echo as anonymousDrupal 不会将 echo 输出为匿名
【发布时间】:2012-12-19 12:12:59
【问题描述】:

我在使用 Drupal 7 时遇到了一个奇怪的问题。

出于调试目的,我发现如果我没有登录,在开发我的模块时,我在我的 drupal 页面上看不到任何回声。

我无法使用 drupal_set_message(),或创建/读取 cookie。

知道这是为什么吗?

编辑: 包括匿名用户在内的所有用户都可以看到该节点。我正在开发一个显示在节点上的模块(它有一些表单元素等)。

我尝试设置一些默认文本,具体取决于是否设置了 cookie。只要您登录,它就可以完美运行,但是一旦您是匿名用户,它就不会读取/写入 cookie。

我尝试通过放入一些 echo 和 drupal_set_message() 来调试它,但它们仅在我登录时显示,并且不显示给匿名用户。我不明白这是为什么。

【问题讨论】:

  • 您的意思是您无权访问从您的模块创建的页面吗?如果是这种情况,您是否检查了匿名用户是否有权查看该页面?
  • 你能告诉我们你的代码吗?修复您可以看到的代码要容易得多。提供一个允许人们复制您的问题的示例,并且答案可能很多且有用。
  • 在主帖中添加了一个编辑以进行澄清。
  • 我同意@ghoti:显示你正在使用的代码,你会得到更好的答案。不同的是,您将获得可能有用或不太有用的通用答案。
  • 另外,对于像这样的 Drupal 配置问题,您可能会在drupal.stackexchange.com 找到更容易接受的受众。

标签: php drupal-7


【解决方案1】:

如果向未经身份验证的用户显示调试消息是安全的(例如:您的网站无法从 Internet 访问),您可以这样做:

  • 安装devel模块
  • 在权限表 (example.com/admin/people/permissions) 中启用“访问开发者信息”
  • 使用dpmother functions 打印您的日志。

但如果未经身份验证的用户由于对该内容的权限而无法访问该特定内容,则您必须启用显示该内容的权限。

【讨论】:

    【解决方案2】:

    确保在此处为匿名用户禁用缓存:admin/config/development/performance

    在开发系统上,最好也禁用所有带宽优化复选框。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-16
      • 2013-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多