matthiasschnueriger
Erfahrenes Mitglied
Hallo PHPler
Ich möchte die Daten aus einem HTML Formular (ausgewählter Radio-Button sowie ausgewählte Checkboxen) in ein XML-File übergeben.
Ich habe es soweit hingekriegt, dass das XML beschrieben wird, sobald das HTML-Formular abgeschickt wird. Das Problem ist allerdings, dass ab dem 2. und folgenden Abschicken kein weiterer Datensatz hinzugefügt wird, sondern der 1. überschrieben wird.
Was muss ich anpassen, damit mein XML bei jedem Formular-Versenden erweitert und nicht einfach ersetzt wird?
Hier mein zusammengeflickter Code:
Ich möchte die Daten aus einem HTML Formular (ausgewählter Radio-Button sowie ausgewählte Checkboxen) in ein XML-File übergeben.
Ich habe es soweit hingekriegt, dass das XML beschrieben wird, sobald das HTML-Formular abgeschickt wird. Das Problem ist allerdings, dass ab dem 2. und folgenden Abschicken kein weiterer Datensatz hinzugefügt wird, sondern der 1. überschrieben wird.
Was muss ich anpassen, damit mein XML bei jedem Formular-Versenden erweitert und nicht einfach ersetzt wird?
Hier mein zusammengeflickter Code:
PHP:
<?php
// Prüfen des Arrays $_FILES
if (isset($_FILES["datei"])) {
// Upload-Status
if ($_FILES["datei"]["error"] == UPLOAD_ERR_OK) {
// Muster zur Überprüfung der im Dateinamen
// enthaltenen Zeichen (Optional)
$regExp = "/^[a-z_]([a-z0-9_-]*\.?[a-z0-9_-])*\.[a-z]{3,4}$/i";
// Dateiname und Dateigröße
if (preg_match($regExp,$_FILES["datei"]["name"]) && $_FILES["datei"]["size"] > 0 && $_FILES["datei"]["size"] < 100000) {
// Temporäre Datei in das Zielverzeichnis
// des Servers verschieben.
move_uploaded_file($_FILES["datei"]["tmp_name"],"rezepte/".$_FILES["datei"]["name"]);
// Redirect zur Erfolgsmeldung
}
else {
echo "Fehler: Im Dateinamen oder Dateigrössen Limit!";
}
}
else {
echo "Fehler: Während der Übertragung aufgetreten!";
}
}
else {
echo "Fehler: Dateiupload fehlgeschlagen!";
}
//////////////////////////// XML Speichern ///////////////////////////
$rezept = $_POST;
$doc = new DOMDocument();
$doc->formatOutput = true;
$r = $doc->createElement( "rezeptdaten" );
$doc->appendChild( $r );
$b = $doc->createElement( "rezept" );
$hauptkomponente = $doc->createElement( "hauptkomponente" );
$hauptkomponente->appendChild(
$doc->createTextNode( $rezept['hauptkomponente'] )
);
$b->appendChild( $hauptkomponente );
$i = 1;
foreach ($rezept['nebenkomponente'] as $nebenkomponente => $value){
$n = $doc->createElement("nebenkomponente".$i++);
$n->appendChild(
$doc->createTextNode($nebenkomponente)
);
$b->appendChild( $n );
}
$r->appendChild( $b );
$doc->save("rezeptdaten.xml");
?>