PHP脚本在一台服务器上运行,在另一台服务器上给我一个内部服务器错误500

时间:2012-10-12 21:08:16

标签: php

  

可能重复:
  PHP call class in class returns error:500

我的代码看起来有点像这样:

<?php
include 'payTable.php';
session_start(); 

...

if ($_SESSION['fieldTen'] > 30)
{
    $payTable = 'payTable';
    $payTable::run();
}

?>

我的权限设置为0644,所以我不认为这是问题,但我在服务器上遇到奇怪的行为,我没有使用XAMP进入本地目录。

每次我尝试使用此代码加载页面时,都会出现“内部服务器错误:500”错误。

有谁能告诉我这里有什么明显的错误吗?我缺少的东西。

我尝试从这个文件中删除PHP,这会导致它的HTML部分出现没问题。

3 个答案:

答案 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?)以查看实际问题是什么。查看代码,关闭袖口猜测的情况可能是包含的文件名与实际文件名不匹配。