【问题标题】:auto_prepend_file for header is causing phpmyadmin and other errors标头的 auto_prepend_file 导致 phpmyadmin 和其他错误
【发布时间】:2012-02-11 20:00:23
【问题描述】:

根据此处的一些建议,我将 auto_prepend_file 用于我的标题/身份验证页面。但是,我遇到了以下问题,所有这些问题都是基于我的页眉附加到我实际上不想要的页面上。例如: - Ajax 页面在其文本中返回标题页 - Phpmyadmin 加载失败

我想知道 auto_prepend_file 是否是正确的设计选择(我希望它是这样的,以便新添加的页面错误地不允许用户在不登录的情况下访问)。此外,对于 Ajax 页面,我在标题中添加逻辑以跳过这些页面,但我无法找到 phpMyAdmin 的解决方案,即使标题没有返回任何内容,它似乎也不喜欢包含。来自 phpMyadmin 的错误是:

致命错误:main() [function.main]:脚本试图执行方法或访问不完整对象的属性。请确保您尝试操作的对象的类定义“PMA_Theme_Manager”已加载 unserialize() 被调用或提供 __autoload() 函数以在 C:\Program 中加载类定义Files\Ampps\phpMyAdmin\libraries\common.inc.php 在第 661 行

任何帮助将不胜感激!

【问题讨论】:

    标签: php error-handling


    【解决方案1】:

    auto_prepend_file 是在紧急情况或非常特殊的情况下使用的工具。它永远不应该是应用程序设计的选择。它使应用程序的可移植性降低,并且更难以分析和调试。重做您的应用程序以使用 requirerequire_once 以包含必要的代码。

    【讨论】:

      【解决方案2】:

      不确定,但我想您可以从 .htaccess 设置 auto_prepend_file 并在必要时添加条件。或者向 proxy.php 发送请求,其中将包括你 header.php,然后是请求的文件。

      更多信息:

      http://php.net/manual/en/configuration.changes.php

      http://davidwalsh.name/php-values-htaccess

      【讨论】:

        【解决方案3】:

        @webbiedave 的建议很好。
        我只在本地环境中使用 auto_prepend_file 进行调试,但即便如此,我也必须将其所有声明包含在:

        if( false === strpos( $_SERVER['REQUEST_URI'], 'phpmyadmin' )) {
        

        注意:这个问题相当老了。我的答案是针对像我这样通过谷歌来到这里的人。

        【讨论】:

          猜你喜欢
          • 2014-09-10
          • 2016-02-20
          • 2021-05-10
          • 2018-07-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-03-31
          • 1970-01-01
          相关资源
          最近更新 更多