Thema: Daten via PHP an XML weitergeben...

Also gleich mal im Voraus, ich hab so gut wie null Ahnung von PHP muss aber mit einem PHP Script einige Daten an eine XML Datei weitergeben, also immer  Einträge zu den Alten ergänzen.

Die XML Datei selber soll sowas für jeden Eintrag enthalten:

<nachrichten>
<news datum="xx.xx.xx" titel="irgendein Titel" autor="Irgendwer">
<details bild="bilder/bildname.jpg" email="irgendwer@irgendwo.de" kategorie="Irgendwas" link="http://www.irgendeinlink.de">
<![CDATA[ Irgendein Text ]]>
</details>
</news>

Also man braucht eine PHP Datei, in der man folgende Variablen ausfüllen muss, die dann in die XML Datei wie oben eingetragen werden:

-datum
-titel
-autor
-bildname(z.b. xx.jpg)
-email
-kategorie
-link
-text


Wie bewerkstelligt man sowas?


Thx im Voraus!

Re: Daten via PHP an XML weitergeben...

Hallo und herzlich willkommen auf devshare.de!

Das sieht mir eher nach einer PHP-Frage, als nach einer XML-Frage aus, aber egal...

Also: Es gibt von PHP XML-Funktionen: http://de.php.net/xml - ich habe aber noch nie mit diesen arbeiten (müssen), sodass ich dir diesbezüglich keine Hilfe geben kann. Du musst auf alle Fälle die XML-Datei irgendwie einlesen, am Besten in ein mehrdimensionales Array, welches so aufgebaut ist:

$nachrichten = array(
  0 => array(
    'bild'      => 'bilder/bildname.jpg',
    'email      => 'irgendwer@irgendwo.de',
    'kategorie' => 'Irgendwas',
    'link'      => 'http://www.irgendeinlink.de',
    'data'      => 'Irgendein Text'
    ),
  1 => array(
    'bild'      => 'bilder/bildname.jpg',
    'email      => 'irgendwer@irgendwo.de',
    'kategorie' => 'Irgendwas',
    'link'      => 'http://www.irgendeinlink.de',
    'data'      => 'Irgendein Text'
    ),
  2 => array(
    'bild'      => 'bilder/bildname.jpg',
    'email      => 'irgendwer@irgendwo.de',
    'kategorie' => 'Irgendwas',
    'link'      => 'http://www.irgendeinlink.de',
    'data'      => 'Irgendein Text'
    )
  );

Diese Struktur musst du dann noch in der HTML-Seite mit Formularen nachbauen und die Formulare entsprechend füllen, oder du verwendest eine Datenbank zur temporären Speicherung oder in einer Text-Datei (die includiert wird und PHP-Code mit dem Array enthält) oder oder oder...

Über ein Formular kannst du die Daten dann bearbeiten, bis dein Array fertig ist. Wenn das soweit ist, musst du "nur" noch aus dem Array wieder die XML-Datei machen - dafür brauchst du die Funktionen des Dateisystems: http://de.php.net/filesystem - ganz gut erklärt unter www.schattenbaum.net/php/

Ich hoffe, ich konnte dir soweit helfen - Fragen? Gerne! wink

Mamphil

The laws of physics are the canvas God laid down on which to paint his masterpiece. “Leonardo Vetra” in Dan Brown’s “Angels & Demons”

Re: Daten via PHP an XML weitergeben...

Fragen? Gerne! wink

Den Satz wirst du glaub ich gleich bereuen wink Naja, ansatzweise hab ich mal verstanden was ich machen muss, aber halt nur theoretisch, praktisch gesehen hab ich trotzdem kein Plan sad

4

Re: Daten via PHP an XML weitergeben...

Hi.

Wie soll den das Ganze aussehen, wenn es fertig ist? Ich meine, willst du immer nur einen solchen Datensatz hinzufügen, oder willst du jeden beliebigen Datensatz bearbeiten können? Wieviele werden das sein? Willst du 'alte' Datensätze löschen oder automatisch löschen (oder archivieren lassen)? Kommen die Daten über ein Webformular rein und muss dieses mit Passwort geschützt werden etc.pp.

Liebe Grüße,
Basti

Re: Daten via PHP an XML weitergeben...

Hi Basti,



es sollen immer neue dazukommen, so dass die neuen Beiträge immer über die alten gesetzt werden, also der oben genannte Teil stellt nur einen Beitrag dar.


Es soll in etwa so aussehen: Über ein passwortgeschütztes PHP Interface werden die Daten angegeben und abgeschickt und dann in die XML Datei dazugeschrieben ohne die alten zu überschreiben.

Wieviele das sein werden kann ich nicht sagen, je nachdem wieviel "geposted" wird, aber sicher nicht allzuviel.



mfg,

Blablubb

6

Re: Daten via PHP an XML weitergeben...

Gut, dann mal los:

Ein Skript kann das alles bewerkstelligen. Es gibt das HTML-Formular aus bzw. verarbeitet es. Das Formular enthält die Felder für die einzelnen Datensatz-Attribute, ein, zwei felder für Passwort und ggf. Benutzername, sowei ein verstecktes Feld (type='HIDDEN'), anhand dessen du auslesen kannst, ob das Formular abgeschickt wurde oder ob nicht.

- Wenn das Formular abgeschickt wurde:
-- $error = array();
-- Prüfe Passwort/Benutzername; Wenn Falsch, dann $error[] = 'Zugriff verweigert';
-- Prüfe die einzelnen Felder; Je falschem Feld $error[] = 'Feld x darf nur Ziffern enthalten' oder so
-- Wenn kein Fehler (if (empty($error))):
--- Warte, bis dein Datenfile (data.xml) nicht mehr gelockt ist
--- Sperre (lock) data.xml
--- Schreibe die neuen Daten in eine Temporäre Datei (mit $_POST['name_des_feldes']) greifst du auf die Daten zu.
--- Lese data.xml ein und häge die Daten an die temporäre Datei an.
--- Kopiere die temp. datei nach data.xml und entferne ggf. wieder den lock (kann sein, dass der schon weg ist, wenn die Datei überschrieben wird, keine Ahnung)
--- Gib Erfolgsmeldung aus
- Wenn Formular noch nicht abgeschickt wurde, dann gib es aus und pflanze ggf. die Fehler aus $error an die entsprechenden Stellen ein

Meinst du sowas? Melde dich, wenn du zu den einzelnen Punkten Fragen hast.

Basti