标头的auto_prepend_file导致phpmyadmin和其他错误


auto_prepend_file for header is causing phpmyadmin and other errors

根据这里的一些建议,我将auto_prepend_file用于我的头/身份验证页面。然而,我遇到了以下问题,所有这些都是基于我的主页被附加到了我实际上不希望它附加的页面。例如:-Ajax页面在其文本中返回标题页-Phpmyadmin无法加载

我想知道auto_prepend_file是否是正确的设计选择(我希望是这样,这样新添加的页面就不会错误地允许用户在未登录的情况下访问)。此外,对于Ajax页面,我在页眉中添加了跳过这些页面的逻辑,但我无法找到phpMyAdmin的解决方案,它似乎不喜欢include,即使页眉什么都不返回。phpMyadmin的错误是:

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

任何帮助都将不胜感激!

auto_prepend_file是一种用于紧急情况或非常特殊情况的工具。它不应该是应用程序设计的选择。它降低了应用程序的可移植性,增加了分析和调试的难度。重做应用程序以使用require或require_one来包含必要的代码。

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

更多信息:

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

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

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

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

注意:这个问题比较老。我的答案是为像我这样通过谷歌来到这里的人提供的。