共通のPHPエラー

このチュートリアルでは、我々は行くのを見ていくつかの共通のPHPのエラーが発生するとどのように解決してください。

パースエラー

形式で、パースエラーが発生したときに、お客様のPHPコードが間違っています。 たとえば、次のコード:

  < ? PHPには、 ( $私= 1 ; $私< 10 ; $私+ + ) ( $出力= "現在のイタレーション: " 。  $私です。  " <br> "エコー$出力; ) "を出力* 

は、以下のようなエラーを返す:

パースエラー:パースエラーは、予期せぬt_echoでc : \ウェブサーバー\ test2.phpをライン4

  

このエラーメッセージが表示さセミコロン逃すことがあるため、年末には、前の例の3行目です。 というメッセージがある場合には、 PHPではないと期待してコマンドラインのエコー4 。 これがあると予想されるので、 3行目の終わりにセミコロンです。 ほとんどの時間を得るときに、このエラーは、その理由は、前の行に問題があるように、前の例のようにセミコロン行方不明です。

このエラーが発生してもかっこ、 ( ) 、たとえば、次のコード:

  < ? PHPには、 ( $私= 1 ; $私< 10 ; $私+ + ) ( $出力= "現在のイタレーション: " 。  $私です。  " <br> " ;もし( $出力== 5 ) ( echo "これは、 5番目のイタレーション" ; ) ) ) "を出力* 

戻り、エラーメッセージが表示される

パースエラー:パースエラーは、予期しない' ) 'でc : \ウェブサーバー\ test2.php上8行

これが原因で余分な閉じブレース、 ) 、上行8 。 Although it's simple to see the problem in the preceding short block of code, it can be much harder with complicated code containing many nested loops or if statements, and it's hard to match the opening braces to the closing braces.

この問題をすばやく見つけることができます矯正器具を使用してバランスのMX Dreamweaverのコマンドでは、 [編集 ]メニューです。 You can place the cursor at a line of code, select the Balance Braces command, and it will highlight all the lines of code for that block from the opening brace to the closing brace. あなたのコードをチェックして、 バランスのレイヤーの矯正器具のコマンドを、すばやく見つけることができます。そこは、行方不明や余分なブレースです。

インデックス未定義または変数

このセクションで何をすべきかを説明するメッセージを受信した場合、お客様のウェブページのように、次のいずれか:

警告

未定義のインデックス:アクションで\ホーム\ www \ login.php上行25

警告

未定義の変数:メッセージがホーム\ www \ login.php上行52

これらのメッセージが頻繁に混同する人々は、彼らのようにエラーメッセージとコードが発生することがあっても完璧に動作しています。 実際のエラーメッセージではないものではなく、分類としての"注意事項"を通知を受信するにはどこそこではない状況で、実際には、コードエラーが発生してから作業を停止します。 あなたはどのようなメッセージを伝えるのは、具体的に定義されていない変数に言及するPHPのvarステートメントを使用しています。

例として、以下の2つのブロックを見るのコード:

  < ? PHPのユーザー名$ var ;する$ username = $ HTTP_SESSION_VARSを[ 'ユーザー名' ] ; "を出力*と: < ? PHPのする$ username = $ HTTP_SESSION_VARSを[ 'ユーザー名' ] ; "を出力* 

検索結果の両方が同一のコードブロックが、 2番目のコードブロックの中に持ち出すのようなメッセージが表示さ以前のものは、具体的に定義されていないので、変数$ usernameのです。 PHPの変数を定義して最初の作品で、つまり、警告を発することができますスペルミスをした場合、コード中の変数は、変数として定義される以前に新しいとしない。

この問題を解決するには2つの解決策です。 最初はお客様のコードを介して戻っていることを確認し、すべての変数は、具体的に定義されます。 2番目のオプションが表示されているの通知を停止する、と彼らはしばしばトラブルよりも彼らはもっと価値がある。 これには、次のコードを追加することにより、各ページの上部には、エラー:

  < ? PHPの設定error_reporting ( E_ALL & 〜 E_NOTICEを) ; "を出力* 

これをPHPに指示と警告が表示され、すべてのエラーメッセージを表示しないように注意します。 そのためには永続的には、 error_reportingの設定を変更するには、 php.iniファイルには、前の設定です。

ヘッダは既に送信エラー

これは別のエラーメッセージが頻繁に発生して、特にクッキーやセッションを使用している場合、それは似ていると、次のメッセージ:

ヘッダー情報を変更することはできません-ヘッダーは既に送信された(出力開始時刻/ホーム/ウェブ/ n ewtest.php: 3 )で/ホーム/ウェブ名/ t est.php上の5行目

によって引き起こされる問題は、ブランクスペースを前に、ヘッダー機能です。 The PHP header function is used to redirect the user to another page, which it does by sending commands in the page header to the browser, telling it to go to the new page. しかし、一度に送信され、ブラウザのヘッダーは、関数を使用することができますが、もはやそのヘッダへのアクセスなど、ヘッダーの関数です。 もしもの事がブラウザに送信されることはない特別なヘッダ関数は、他のすべてのヘッダーでは、閉鎖されたと仮定されるとは、ウェブページのHTMLです。 では、なぜこの出来事では、上記のコードですか?

この問題が発生するため、空白行がある( 2行目)には、ブラウザに送信される。 これにより、ヘッダーに閉鎖されるので、ヘッダーの関数が失敗した場合、それはもはやとしてのヘッダーを書く。 しかし、空白行を削除している場合でも2行では、自分が同じエラーメッセージが表示されます。 これは、年末には、 2つのスペース"を出力*タグを1行目です。 これらの必要もあります削除しても、彼らが再び送信されると、ブラウザを閉じるには、ヘッダーです。 これらの行の末尾にスペースが際立たないため、彼らは目に見えない!

メソッドを使用することができますが、ただし、それらを簡単に見つける。 お客様のカーソルを置く場合は、各ラインの最後に移動すると、マウスの左ボタンをクリックして右には、任意の行の末尾にスペースがハイライト表示さに示すように、前のスクリーンショット。 このスペースを削除することができます。

もしテストコードは今再び、それは正しく動作します。

このエラーが発生することもある場合はPHPタグで囲まれていない出力で、ページの任意のファイルを含める。 だから似合っている場合はメインページのコードを入手するとあなたには、まだエラーは、確認のため、次のステップは、ページの使用を通じて任意のファイルを含める。 多くの場合は、エラーが原因で、新しいラインの後の最終的なPHPタグは、ファイルに含まれ、これが存在する場合に削除する必要があります。

これは、記事に追加された層雲huo泉
免責事項:弊社のウェブサイト上ではない情報の責任を負うこの記事に含まれる。 この記事ではありません意見を反映して、ご意見、思想や信条のスタッフは、記事のディレクトリです。

翻訳注意:この記事の"共通のPHPエラー"は、翻訳する自動翻訳サービスを使用しています。 我々の翻訳を深くお詫び申し上げます。いかなるエラーが発生しています。 理解をいただきありがとうございます。

Online: 481 users browsing the articles directory