3

重複の可能性:
クラス内のPHP呼び出しクラスがエラーを返す:500

私はこのようなコードを持っています:

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

...

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

?>

私の権限は0644に設定されているので、それは問題ではないと思いますが、XAMPを使用してローカルディレクトリに取得していないサーバーで奇妙な動作が発生しています。

このコードを含むページを読み込もうとすると、「内部サーバーエラー:500」エラーが発生します。

ここに明らかに何か問題があるかどうか誰かに教えてもらえますか?私が欠けているもの。

このファイルからPHPを削除してみたところ、HTML部分が問題なく表示されました。

4

3 に答える 3

2

これはPHP<5.3.0では正当な構文ではないため、構文エラーが発生します。

$payTable = 'payTable';
$payTable::run();

PHP(<5.3.0)$payTableは文字列と見なすため、使用できません::run()

解決策は、変数を完全に破棄して直接呼び出すことです。

payTable::run();

関連するメモで、エラー報告をオンにします。これにより、一般的なエラーで暗闇に置かれるのではなく、エラーを簡単に見つけて修正できます。これを行うには、php.ini(推奨)を編集するか、スクリプトの先頭にこれを追加します。

error_reporting(E_ALL);
ini_set("display_errors","On");
于 2012-10-12T21:39:14.847 に答える
1

'payTable'の関数を呼び出そうとしているようですが、payTableは関数を含むクラスではありません。

さらに、いくつかのデータが出力された後にセッションを設定しようとしている可能性があります...おそらく含まれているファイルからですか?これはエラーをスローしますが、500ほど深刻ではない可能性があります。

于 2012-10-12T21:10:49.383 に答える
0

500は、サーバーが問題に遭遇し、続行できなかったことを意味します。Webサーバー(おそらくApache?)のエラーログをチェックして、実際の問題が何であったかを確認する必要があります。コードを見ると、含まれているファイル名が実際のファイル名と一致しない場合が考えられます。

于 2012-10-12T21:11:02.697 に答える