Parse_error- syntax_error,_unexpected_T_STRING

【wordpress】Parse error: syntax error, unexpected ‘DB_USER’ (T_STRING) inが出た時はどこを直すか

投稿日: カテゴリー: Web製作
Pocket

syntax errorとあるが設定と全く相違ない場合は囲み文字を疑いましょう。

サイトは正常に見えるのにいざ管理画面をみると白地にこんなメッセージが出てくることがあります。

Parse error: syntax error, unexpected 'DB_USER' (T_STRING) in php on line ○○

Parse error: syntax error, unexpected T_STRING inの時点で大体は「囲み文字」のエラーです。

自動生成のパスワードの先頭か末尾にシングルクォートがある場合もエラーの可能性があるので設定時には注意しましょう。

ただフォントやエディタによってはシングルクォート「’」(Shift+7)とバッククォート「`」(Shift+@)の識別はほとんど不可能だったりします。

そんな時は・・・

全くいじってなさそうなところから囲み文字をコピペしよう

以外とあれこれ迷うよりは囲み文字のコピペが一番早いです。

仕事では原因の究明より「結果」

原因は気になりますが、いち早く直すことを最優先しましょう

直した結果から原因を推論する方が大抵は容易です。

エラーで焦らない特効薬は「慣れ」です。

サーバ移設などでエラー画面は健康によくないですよね。

実際のWeb制作では細かな修正がきっかけで覚えのないバグが発生することもしばしばですが、

そんな時焦らない人は大抵教科書通り以外にもたくさん手を動かし、自力で解決してきた人です。

「運悪く」なかなかバグに遭遇しない場合は、自分の実力以下のことばかりトライしている可能性があるので学習一回につき一度は焦るような事態に陥ることをオススメします。

メンタルもテクニカルも鍛えられます。

とはいえ、よくあるバグはあらかじめ知っておくことは重要です。あまりによくあるバグで騒がれると経験や実力が疑われる可能性があります。

「画面が真っ白になってしまいました。」を例に修正の流れを確認しましょう。

よく聞くエラーです。function.phpなどコアなファイルをいじって更新した後などに発生する可能性があります。直前の行動を思い出しましょう。

重要ファイルの修正の前は必ず別名に保存してバックアップしましょう

そして修正後はバックアップファイルを削除しましょう。

※最近こういったバックアップファイルを狙うとみられる通信がよく観測されます。

最近ではdefine('WP_DEBUG', false);がデフォルト(初期設定)となっていてエラー自体表示しない設定となっているため、内部エラーが起きてテーマのカスタムエラーページが表示できない場合はただの真っ白ページになってしまうのである意味正常動作です。

define('WP_DEBUG', true);

 

Parse error: syntax error, unexpected …
構文エラー。つまりPHPとしての文法が誤っていて、PHPがただしく理解できないという意味です。例としては、ifやforeachの入れ子が、括弧の括り、クオートの括りが合っていないと言った場合です。

Fatal error: Cannot redeclare …定義済みの関数を再度定義しようとした場合に発生するエラーです。プラグイン同士が同じ関数名を利用しようとした場合などに発生します。

Error Establishing Database Connection…データベース接続確立エラーです。wp-config.phpのデータベース名、データベースのユーザー名、データベースのパスワード、データベースのホスト名あたりをチェックしてみましょう。

Fatal error: Call to undefined function …
未定義の関数が呼ばれたというエラーです。関数が記述されているべきファイルが読み込まれていなかったり、ファイルが破損していた場合に発生しがちです。
Warning: Cannot modify header information …
通常、Warning:で始まるエラーの場合は、そのまま処理が続行されますが、リダイレクトを行うような場合(管理画面へのログイン処理時など)には、すでにヘッダーの送信(htmlのheadとは違います)が行われてしまった後であるため、リダイレクトが行われずに真っ白になるケースがあります。

Allowed memory size exhausted…利用可能なメモリーサイズを越えたということです。

エラーの情報は攻撃者にとって良いヒントになってしまうので修正が完了したら

define('WP_DEBUG', false);

以上です。お役に立てれば幸いです。