ホームページ  >  記事  >  バックエンド開発  >  PHPCMS バックグラウンドでロールの権限を設定すると、突然 500 エラーが発生します。これを解決するにはどうすればよいですか?

PHPCMS バックグラウンドでロールの権限を設定すると、突然 500 エラーが発生します。これを解決するにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-06-20 12:46:091372ブラウズ


PHPcms バックグラウンドでロールの権限を設定する場合、上記のようにデフォルトのサイトをクリックすると 500 エラーが発生します。
通常の状況では、下の図のようになります。正常に動作していましたが、何らかの理由で突然動作しなくなりました。アドバイスをいただけますか。 ?どうしたの?


ディスカッションへの返信 (解決策)

そのリクエストには重大な構文エラーがあります。ブレークポイントを設定して

を確認してください。このリクエストによって呼び出されるファイルはローカルのものと同じです。構文エラーがある場合、なぜローカルにあるのですか。 1つは正常で、サーバー上の1つは異常ですか?

エラーを参照してください。

foreach までプログラムが実行されてもエラーは報告されません。
foreach ($result as $n=>$t) {
$result[$n]['cname'] = L ($t[ 'name'],'',$modules);
$result[$n]['checked'] = ($this->op->is_checked($t,$_GET[' roleid'], $siteid, $priv_data))? ' チェック済み' : ''; $result[$n]['level'] = $this->op->get_level($t['id) '],$ result);
$result[$n]['parentid_node'] = ($t['parentid']) ' class="child-of-node-'.$t['parentid' ].'" ' : '';
}
foreach の後にプログラムが実行されると 500 エラーが報告される

つまり、foreach にはエラーがありますが、実際にはエラーは報告されませんforeach ループが 500 エラーを引き起こす仕組みを理解してください。

500 はサーバーが応答を拒否したことを意味し、通常は php プログラムでエラーが発生します。

エラーメッセージを出さなければ、神も助けてはくれない

ローカル側は正常だがサーバー側が異常である場合、それはプログラムに文法的な欠陥があるということだけを意味しますエラーはありますが、論理エラーがないことを意味するわけではありません
たとえば、0 による除算、不正な変数値、フィールドが見つかりません。 。 。 。
これは PHP のバージョンと構成にも関係します

PHP プログラムで、ini_set("display_errors", "On"); を使用してエラー プロンプトをオンにします。はエラーメッセージではありません。このときステータスコードは200に変わりましたが、やはり右側に目的の内容は表示されませんでした。 phpcms は正常に動作しますが、クリックすると動作しなくなります。少し混乱しています。


設定と php のバージョンに問題がある場合は、その理由を教えてください。以前は問題なかったのですが、今では不可解な問題が発生していますか?プログラムの問題なのか、サーバーの問題なのか、権限の問題なのかわかりません

フォルダーの読み取りおよび書き込み権限、パス、PHP のバージョン、PHP 環境設定、サーバー ソフトウェアの違いなどがエラーの原因となる可能性があります

現在、PHPCMS の基礎となるコードを使用していますが、その権限管理部分に非常に低レベルのエラーがあります。

/modules/admin/classes/role_op.class.php
最後のメソッドは、現在のボタンを移動するときにその前のレベルを見つける必要があります。見つからない場合は、現在のメソッドを再度呼び出します。したがって、メニューが増えると直接死ぬ可能性があります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。