次のPHPスクリプトでSELECTクエリを実行し、結果を変数にバインドし、バインドされた変数の値に基づいてロジックを実行し、論理。このコードは正常に実行されます(テーブルの正しい値で適切な値が更新されたことがわかります)が、サーバーからの応答を返すのに約10秒かかり、応答は次のようになります。500コードが正常に完了したにもかかわらず、内部サーバーエラーが発生しました
"サーバー内部エラーまたは誤設定が発生しました あなたのリクエストを完了できませんでした。 エラーが発生した時刻とこのエラーの直前に実行した操作を通知するには、['private contact']サーバ 管理者に連絡してください。 このエラーの詳細については、サーバーエラー ログに記載されています。
さらに、要求を処理するためにErrorDocumentを使用しようとしているうちに、内部サーバーエラー500が発生しました 。すべてのヘルプは、その応答を得るためにそう長く取って、なぜ私はわからないとして高く評価され
include("../../include/session.php"); include('inc.php'); if ((isset($_POST['lotnumberinput'])) AND (isset($_POST['sgref']))) { $sgref = $_POST['sgref']; $lotnumber = $_POST['lotnumberinput']; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_errno) { echo "There was a problem connecting to MySQL: (" . $conn->connect_errno . ") " . $conn->connect_error; } if (!($sqlget = $conn->prepare("SELECT lotnumber, lotnumber2, lotnumber3 FROM invoicesJan2016 WHERE id = ?"))) { echo "Prepare failed: (" . $conn->errno . ") " . $conn->error; } if (!$sqlget->bind_param("s", $sgref)) { echo "Binding parameters failed: (" . $sqlget->errno . ") " . $sqlget->error; } if (!$sqlget->execute()) { echo "Execute failed: (" . $sqlget->errno . ") " . $sqlget->error; } $sqlget->bind_result($lotnumber1, $lotnumber2, $lotnumber3); $res = $sqlget->fetch(); $sqlget->free_result(); if ($res) { while ($res) { if ($lotnumber1 == "") { if (!($sql = $conn->prepare("UPDATE invoicesJan2016 SET lotnumber = ? WHERE id = ?"))) { echo "Prepare failed: (" . $conn->errno . ") " . $conn->error; } if (!$sql->bind_param("ss", $lotnumber, $sgref)) { echo "Binding parameters failed: (" . $sql->errno . ") " . $sql->error; } if (!$sql->execute()) { echo "Execute failed: (" . $sql->errno . ") " . $sql->error; } else { echo "SG Successfully Added!"; } } else if (($lotnumber1 !== "") AND ($lotnumber2 == "")) { if (!($sql = $conn->prepare("UPDATE invoicesJan2016 SET lotnumber2 = ? WHERE id = ?"))) { echo "Prepare failed: (" . $conn->errno . ") " . $conn->error; } if (!$sql->bind_param("ss", $lotnumber, $sgref)) { echo "Binding parameters failed: (" . $sql->errno . ") " . $sql->error; } if (!$sql->execute()) { echo "Execute failed: (" . $sql->errno . ") " . $sql->error; } else { echo "SG Successfully Added!"; } } else if (($lotnumber1 !== "") AND ($lotnumber2 !== "") AND ($lotnumber3 == "")) { if (!($sql = $conn->prepare("UPDATE invoicesJan2016 SET lotnumber3 = ? WHERE id = ?"))) { echo "Prepare failed: (" . $conn->errno . ") " . $conn->error; } if (!$sql->bind_param("ss", $lotnumber, $sgref)) { echo "Binding parameters failed: (" . $sql->errno . ") " . $sql->error; } if (!$sql->execute()) { echo "Execute failed: (" . $sql->errno . ") " . $sql->error; } else { echo "SG Successfully Added!"; } } else { echo "There are too many lot numbers associated with this SG. Please call IT to request additional space."; } } // End While. }//end if } else { echo "SG Number did not save. Please try again."; } $sqlget->close(); $sql->close(); $conn->close();
:
次
は私のスクリプトです。ありがとうございました!あなたのコードを読み取ろうとした後
エラー報告が有効になっていますか?ログファイルをチェックして、そこに何かがあるかどうか確認できますか? –
実際には、インデントがひどいので、あなたのコードを読むのが難しいため、実際には下書きされました。ちょうどその場合、私の投票ではありませんでした。 – Alfabravo
@alfabravo ....大丈夫、私はそれを念頭に置いておきます。提案していただきありがとうございます。質問の実際の話題については、エラーログには、レスポンス制限のMod Securityルールによって引き起こされた500内部エラーが示されています。これは、レスポンスがmodルールに対して大きすぎると述べています。私は現在、問題をさらに検討しています。 – rdimouro