abgeschlossen Ich habe folgende PHP-Skript, das eine SELECT-Abfrage der Fall ist, Variablen bindet Ergebnisse, Logik läuft basierend auf dem Wert der gebundenen Variablen und das andere tut UPDATE in der Tabelle auf die je Logik. Dieser Code wird erfolgreich ausgeführt (ich kann die entsprechende Spalte mit dem korrekten Wert in meiner Tabelle anzeigen), aber es dauert etwa 10 Sekunden, bis die Antwort vom Server zurückkommt und folgende Antwort lautet:500 Internal Server Error Bei obwohl Code erfolgreich
"Der Server hat einen internen Fehler oder eine Fehlkonfiguration festgestellt und konnte Ihre Anfrage nicht abschließen Bitte wenden Sie sich an den Server Administrator an ['private contact'], um sie über den Zeitpunkt dieses Fehlers und die Aktionen, die Sie kurz vor diesem Fehler ausgeführt haben, zu informieren Weitere Informationen zu diesem Fehler können in den Server-Fehlern Protokolle zur Verfügung.
Darüber hinaus wurde ein 500 Internal Server Error Fehler bei dem Versuch, ein ErrorDocument zu verwenden, um die Anforderung zu verarbeiten, gefunden. "
Das folgende ist mein Skript:
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();
All Hilfe, da ich nicht sicher zu schätzen wissen bin, warum die so lange dauern würde, eine Antwort zu bekommen.
Vielen Dank!
Haben Sie aktiviert die Fehlerberichterstattung? Könnten Sie Ihre Protokolldateien überprüfen, um zu sehen, ob dort etwas steht? –
Eigentlich wurde es downvoted, weil Einrücken ist schrecklich und macht es wirklich schwer, Ihren Code zu lesen, um zu helfen. Nur für den Fall, es war nicht meine Stimme. – Alfabravo
@alfabravo .... okay, ich werde das im Hinterkopf behalten. Danke für den Vorschlag. Was das eigentliche Thema der Frage anbelangt, zeigt das Fehlerprotokoll, dass der 500 interne Fehler durch Mod-Sicherheitsregeln für Response-Limits verursacht wird und dass die Antwort für die Mod-Regel zu groß war. Ich untersuche derzeit das Thema weiter. – rdimouro