update_article.php aktualisiert

This commit is contained in:
M_Viper 2024-02-27 20:57:26 +00:00
parent c6033f2ba5
commit 9673b2efdb
1 changed files with 74 additions and 56 deletions

View File

@ -1,56 +1,74 @@
<?php <?php
// update_article.php // update_article.php
// Datenbankverbindung herstellen // Datenbankverbindung herstellen
include_once 'config/config.php'; include_once 'config/config.php';
// Überprüfen, ob die Anfrage per AJAX erfolgt ist // Funktion zum Protokollieren von Ereignissen
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { function logEvent($action, $item_name, $manufacturer, $soll, $ist, $mhd, $ean) {
$log_file = 'log.txt';
// Überprüfen, ob POST-Daten erhalten wurden $timestamp = date('Y-m-d H:i:s');
if(isset($_POST['id'])) { $log_entry = "$timestamp - Artikel geändert: \"$item_name\", Hersteller: \"$manufacturer\", Soll: \"$soll\", Ist: \"$ist\", MDH: \"$mhd\", EAN: \"$ean\"" . PHP_EOL;
// Formulardaten abrufen
$id = $_POST['id']; // Überprüfen, ob die Logdatei existiert, andernfalls erstellen
$name = $_POST['name']; if (!file_exists($log_file)) {
$manufacturer = $_POST['manufacturer']; $new_file = fopen($log_file, 'w') or die("Kann die Logdatei nicht erstellen");
$location = $_POST['location']; fclose($new_file);
$amount_should = $_POST['amount_should']; }
$amount_is = $_POST['amount_is'];
$expiration_date = $_POST['expiration_date']; // Daten in die Logdatei schreiben
$barcode = $_POST['barcode']; file_put_contents($log_file, $log_entry, FILE_APPEND | LOCK_EX);
}
// Verbindung zur Datenbank herstellen
$conn = new mysqli($host, $username, $password, $database); // Überprüfen, ob die Anfrage per AJAX erfolgt ist
if ($conn->connect_error) { if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
die("Verbindung zur Datenbank fehlgeschlagen: " . $conn->connect_error);
} // Überprüfen, ob POST-Daten erhalten wurden
if(isset($_POST['id'])) {
// SQL-Update-Statement vorbereiten // Formulardaten abrufen
$sql = "UPDATE materials SET item_name=?, manufacturer=?, location=?, amount_should=?, amount_is=?, expiration_date=?, barcode=? WHERE id=?"; $id = $_POST['id'];
$name = $_POST['name'];
// SQL-Statement vorbereiten und ausführen $manufacturer = $_POST['manufacturer'];
$stmt = $conn->prepare($sql); $location = $_POST['location'];
$amount_should = $_POST['amount_should'];
// Binden der Parameter $amount_is = $_POST['amount_is'];
$stmt->bind_param("sssssssi", $name, $manufacturer, $location, $amount_should, $amount_is, $expiration_date, $barcode, $id); $expiration_date = $_POST['expiration_date'];
$barcode = $_POST['barcode'];
// Überprüfen, ob das Statement erfolgreich ausgeführt wurde
if ($stmt->execute()) { // Verbindung zur Datenbank herstellen
echo "Artikel erfolgreich aktualisiert."; $conn = new mysqli($host, $username, $password, $database);
} else { if ($conn->connect_error) {
echo "Fehler beim Aktualisieren des Artikels: " . $stmt->error; die("Verbindung zur Datenbank fehlgeschlagen: " . $conn->connect_error);
} }
// Statement schließen // SQL-Update-Statement vorbereiten
$stmt->close(); $sql = "UPDATE materials SET item_name=?, manufacturer=?, location=?, amount_should=?, amount_is=?, expiration_date=?, barcode=? WHERE id=?";
// Datenbankverbindung schließen // SQL-Statement vorbereiten und ausführen
$conn->close(); $stmt = $conn->prepare($sql);
} else {
echo "Keine POST-Daten erhalten."; // Binden der Parameter
} $stmt->bind_param("sssssssi", $name, $manufacturer, $location, $amount_should, $amount_is, $expiration_date, $barcode, $id);
} else {
// Falls die Anfrage nicht per AJAX erfolgt ist, eine Fehlermeldung ausgeben // Überprüfen, ob das Statement erfolgreich ausgeführt wurde
echo "Ungültige Anfrage."; if ($stmt->execute()) {
} // Artikel erfolgreich aktualisiert, Protokollierung des Ereignisses
?> logEvent('UPDATE', $name, $manufacturer, $amount_should, $amount_is, $expiration_date, $barcode);
echo "Artikel erfolgreich aktualisiert.";
} else {
echo "Fehler beim Aktualisieren des Artikels: " . $stmt->error;
}
// Statement schließen
$stmt->close();
// Datenbankverbindung schließen
$conn->close();
} else {
echo "Keine POST-Daten erhalten.";
}
} else {
// Falls die Anfrage nicht per AJAX erfolgt ist, eine Fehlermeldung ausgeben
echo "Ungültige Anfrage.";
}
?>