【发布时间】:2009-12-20 19:38:09
【问题描述】:
我已经开发了一个脚本,但是每当我打开管理面板时它只显示一个空白页面,但是相同的脚本在我的另一台服务器上运行良好。我尝试更改文件和文件夹 644、755、775 和 777 的 chmod,但它仍然输出空白页。
主脚本工作正常,但它唯一的管理面板不起作用。我检查了两台服务器上的 .htaccess 也相同。
知道有什么问题吗?
谢谢。
【问题讨论】:
我已经开发了一个脚本,但是每当我打开管理面板时它只显示一个空白页面,但是相同的脚本在我的另一台服务器上运行良好。我尝试更改文件和文件夹 644、755、775 和 777 的 chmod,但它仍然输出空白页。
主脚本工作正常,但它唯一的管理面板不起作用。我检查了两台服务器上的 .htaccess 也相同。
知道有什么问题吗?
谢谢。
【问题讨论】:
检查您的 HTTP 服务器(例如 Apache)的错误日志。在 99% 的空白页面情况下,PHP 都会遇到致命错误并在生成任何输出之前退出。
如果此脚本可以在另一台服务器上运行,我会检查该脚本是否可以在include 或require 中找到它需要的所有内容。将脚本从一个环境移动到另一个环境时,找不到文件是常见的致命错误。例如,如果您在未正确配置 include_path 的情况下将文件部署到新服务器。
关于您收到的通知的评论:
注意:未定义索引:在 /var/www/admin/index.php 第 8 行提交
第 8 行的函数是 if($_POST['submit'] == 'Login')
这意味着您的 $_POST 数组不包含字段 'submit'。在 PHP 中引用不存在的数组索引是 E_NOTICE。您可以通过以下方式解决此问题:
if (array_key_exists('submit', $_POST) && $_POST['submit'] == 'Login')
【讨论】:
把它放在管理页面的顶部
ini_set('display_errors',1);
error_reporting(E_ALL);
服务器可能安装了不同的东西,导致您可以看到错误。
【讨论】:
Notice: Undefined index: submit in /var/www/admin/index.php on line 8
if($_POST['submit'] == 'Login')
这听起来可能很愚蠢,但是正如您所说的那样,它“输出空白页”,您确定根本没有输出吗?您是否检查了页面来源,以防万一?请记住,如果您的页面以错误的 HTML 标记或类似内容开头,则会有输出,但这并不意味着实际上在浏览器中呈现了任何内容。
还要确保没有打开输出缓冲...我不记得这是否会在尝试调试时导致问题,但谁知道呢?
【讨论】:
<html><head/><body/></html> 但是当我在 Galen 的评论中提到的错误第 8 行之前回显时,我得到回显输出。