-1

関数にバインドされ、ユーザーレベルのタグを生成するために使用される小さなコードがあります。たとえば、特定のユーザーのデータベース権限が 9 に設定されている場合、そのユーザーは管理者であり、0 がメンバーである場合などです。

ここに関数があります

function user_level($user_level) {
                 if($user_level == 10) {
                     $level = "<span style='color:#fff;text-shadow:0px 1px 0px #000;font-size:14px;background:#065286;padding:2px 5px;border-radius:3px;'>System Root</span>";
                 } elseif($user_level == 9) {
                     $level = "<span style='color:#fff;text-shadow:0px 1px 0px #000;font-size:14px;background:#df4d28;padding:2px 5px;border-radius:3px;'>Admin</span>";
                 } else {
                     $level = "<span style='color:#fff;text-shadow:0px 1px 0px #000;font-size:14px;background:#008CD7;padding:2px 5px;border-radius:3px;'>Member</span>";
                 }
                 return $level;
            }

            $level = user_level($user_level);

現在、この関数はカスタム フォーラム スクリプト内で使用されているため、最初の投稿が行われると、返信があると仮定できます。

悲しいことに、返信は表示されませんが、代わりに私が与えられます

Fatal error: Cannot redeclare user_level() (previously declared in /home/u688392685/public_html/comet/viewtopic.php:156) in /home/u688392685/public_html/comet/viewtopic.php on line 156

以前はうまく機能していたので、何が起こっているのかわかりません。ホストがバージョンの更新などの PHP の変更を行ったことを思い出しますが、それだけです。この問題を修正して元に戻す方法はありますか?

相対の場合: Apache/2.2.14、PHP 5.2.x

4

2 に答える 2

2

関数を含む php ファイルは、スクリプトに 2 回含まれている可能性があります。

この問題は、 または の出現箇所をそれぞれ または に置き換えることでinclude(file.php);解決require(file.php);できinclude_once(file.php); ますrequire_once(file.php);

于 2013-03-30T00:15:26.407 に答える
0

助けてくれてありがとう。

@Mario の提案に基づいて、関数をディレクトリに移動し、

include_once

関数をviewtopic.phpに挿入しました

于 2013-03-30T00:17:23.540 に答える