我的代码看起来有点像这样:
<?php
include 'payTable.php';
session_start();
...
if ($_SESSION['fieldTen'] > 30)
{
$payTable = 'payTable';
$payTable::run();
}
?>
我的权限设置为0644,所以我不认为这是问题,但我在服务器上遇到奇怪的行为,我没有使用XAMP进入本地目录。
每次我尝试使用此代码加载页面时,都会出现“内部服务器错误:500”错误。
有谁能告诉我这里有什么明显的错误吗?我缺少的东西。
我尝试从这个文件中删除PHP,这会导致它的HTML部分出现没问题。
答案 0 :(得分:2)
这不是PHP上的合法语法&lt; 5.3.0,所以你得到一个语法错误:
$payTable = 'payTable';
$payTable::run();
PHP(&lt; 5.3.0)认为$payTable
是一个字符串,因此您无法在其上使用::run()
。
解决方案就是完全抛弃变量并直接调用它:
payTable::run();
在相关说明中,启用错误报告。这将允许您轻松发现并修复错误,而不是留在一般错误的黑暗中。您可以通过编辑php.ini(首选)来完成此操作,或将其添加到脚本的顶部:
error_reporting(E_ALL);
ini_set("display_errors","On");
答案 1 :(得分:1)
看起来你试图调用'payTable'的函数,但payTable不是具有任何函数的类。
此外,您可能尝试在输出某些数据后设置会话...可能来自包含的文件?这会引发错误,但可能不会像500那样严重。
答案 2 :(得分:0)
500只意味着服务器遇到问题而无法继续。您需要检查Web服务器的错误日志(可能是apache?)以查看实际问题是什么。查看代码,关闭袖口猜测的情况可能是包含的文件名与实际文件名不匹配。