Hallo,
ich überarbeite momentan ein online Schulungsprogram eines Energieversorgers für ein Seminar. Das Original ist von 2007 und dementsprechend veraltet.
Details zum neuen Server: Apache Version 2.4.6, PHP Version 7.0.19, MySQL (MariaDB) 5.5.52
Ich habe an einer Stelle große Schiwerigkeiten, die eingegebene Daten in der Datenbank speichern zu lassen: in einer Maske werden Zahlenwerte in textfields eingetragen, die anschließend in die Datenbank, zum späteren Vergleich, gespeichert werden sollen. Dieses Speichern funktioniert nicht. Die eigetragenen Werte sollen gespeichert werden, sobald man auf den weiter Button am Ende der Seite klickt.
Ich habe zwei Funktionen ausfindig gemacht, die zusammen das Speichern übernehmen sollen:
PHP-Code:
function storeModuleValues( $moduleid, $userid, $values, $table=TBL_MODULE_VALUES) {
$q = "DELETE FROM " . $table . " WHERE userid='".addslashes( $userid )."' AND moduleid='".addslashes( $moduleid )."';";
mysqli_query($this->connection, $q);
foreach( $values as $key=>$element ) {
$q = "INSERT INTO " . $table . "(moduleid,userid,modulekey,modulevalue) VALUES('".addslashes( $moduleid )."','".addslashes( $userid )."','".addslashes( $key )."','".addslashes( $values[$key] )."');";
$erg = mysqli_query($this->connection, $q);
}
return true;
}
PHP-Code:
case "storeVerbraucher":
//only append/replace the new values
$values = $database->getModuleValues( MODULE_VERBRAUCHER, $session->username );
$userid = null;
foreach( $_POST as $key=>$element ) {
if( $key=="user" ) {
$userid = $element;
continue;
}
$values[$key] = $element;
}
Die erste Funktion storeModuleValues ist in einer Datei (database.php) enthalten, die alle Funktionen in Zusammenhang mit der Datenbank enthält. Diese ist verlinkt mit der Datei (ajaxhandler.php), die die zweite gezeigte Funktion enthält und weiter mit der Datei (_verbraucher.php) die die grafische Oberfläche erstellt, in der die Daten eigetragen werden.
Die Verbindung zur Datenbank ist richtig hergestellt, das habe ich mehrfach getestet. Außerdem funktioniert es, gespeicherte Daten auszulesen und anzeigen zu lassen.
Ich wäre über Tipps oder Anregungen dankbar, die helfen, dass die eingegebene Daten endlich in meiner Datenbank gespeichert werden. Gegebenenfalls kann ich die kompletten Datein, in anonymisierter Form, zur Verfügung stellen, jedoch nicht die URL (nur firmenintern erreichbar).
Besten Dank im Voraus!