J'ai le script PHP suivant qui fait une requête SELECT, lie les résultats aux variables, exécute la logique en fonction de la valeur des variables liées et fait une autre mise à jour de la table en fonction de la logique. Ce code s'exécute avec succès (je vois la colonne appropriée mise à jour avec la valeur correcte dans ma table) mais il faut environ 10 secondes pour obtenir la réponse du serveur et la réponse est la suivante:500 Erreur de serveur interne donnée même si le code aboutit
"Le serveur Vous avez rencontré une erreur interne ou une mauvaise configuration et n'a pas pu compléter votre demande Veuillez contacter l'administrateur du serveur à ['contact privé'] pour les informer du moment où cette erreur s'est produite et des actions que vous avez effectuées juste avant cette erreur. Plus d'informations sur cette erreur peuvent être disponibles dans l'erreur de serveur log
En outre, une erreur 500 erreur interne du serveur a été rencontrée tout en essayant d'utiliser un ErrorDocument pour gérer la demande. "
Voici mon script:
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();
Toute aide est appréciée comme je ne sais pas pourquoi sa prise si longtemps pour obtenir une réponse.
Merci!
Avez-vous une déclaration d'erreur est activée? Pourriez-vous vérifier vos fichiers journaux pour voir si cela dit quelque chose? –
En fait, il a été downvoted parce indentation est horrible et rend vraiment difficile de lire votre code afin de vous aider. Au cas où, ce n'était pas mon vote. – Alfabravo
@alfabravo .... OK, je vais garder cela à l'esprit. Merci pour la suggestion. En ce qui concerne le sujet réel de la question, le journal des erreurs montre que l'erreur interne 500 est provoquée par les règles de sécurité Mod pour les limites de réponse, indiquant que la réponse était trop grande pour la règle mod. Je suis en train d'examiner la question plus en profondeur. – rdimouro