Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] XML schreiben mit simplexml

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] XML schreiben mit simplexml

    Hallo Forum.

    Ich bin gerade dabei selbstständig PHP zu erlernen.
    Dazu mache ich eine Homepage mit diversen Scripts.

    Nun bin ich bei einem Problem angelangt, wo ich den Fehler nicht finde.

    Ich möchte in eine bestehende XML Datei Daten rein schreiben, die dann von einem anderen Script wieder gelesen wird.
    Verwendungszweck ist eine Art Gästebuch ohne Datenbank.

    Zuerst einmal Mein XML:
    Code:
    <?xml version="1.0" encoding="utf-8" ?>  
    <references>  
       <customer>  
          <name>Webadmin</name> 
          <email>meinemail@mail.ch</email>  
          <comment>Hier der Kommentar</comment>
          <date>28.07.2014</date>
          <promotion>Nein</promotion>
       </customer>
       </references>
    Und hier der Script:
    Code:
    <?php
    
    $references = simplexml_load_file('../data/references.xml');
    
    $beurteilung = $references->addChild("customer");
    $beurteilung->addChild("name", "$_POST['vorname'] $_POST['nachname']");
    $beurteilung->addChild("email", "$_POST['mm']");
    $beurteilung->addChild("comment", "$_POST['nachricht']");
    $beurteilung->addChild("date", date("d.m.Y",time()));
    
    if(IsChecked("$_POST['werbung']",'Ja'))
    {
    	$beurteilung->addChild("promotion", "Ja");
    }
    else
    {
    	$beurteilung->addChild("promotion", "Nein");
    }
    
    
    $handle = fopen("../data/references.xml", "wb"); 
    fwrite($handle, $references->asXML());
    fclose($handle);
     
     echo '<meta http-equiv="refresh" content="0; URL=../content/danke.html">';
    
    ?>
    Die Postdaten werden durch ein HTML Forumular per Post an den PHP Script übergeben.

    Ausschnitt Formular:
    Code:
    <form name="Referenz" action="../scripts/add_references.php" method="post" onsubmit="return checkeAngaben()">
      <table class="tableCenter">
      <tr><td colspan="2" class="center"><h2>Beurteilung erfassen</h2></td></tr>
      <tr><td colspan="2" class="center"><span class="hinweise">Die mit (*) markierten Felder müssen ausgefüllt werden!</span></td></tr>
        <tr>
          <td class="row">Vorname:(*)</td>
          <td><input name="vorname" id="vorname" type="text" size="30" maxlength="30"></td>
        </tr>
    ...
    ...
    Nachdem Absenden des Formular wird ein Javascript zum Validieren aufgerufen, das funktioniert noch.
    Nachher jedoch wechselt es auf den Script, aber macht nichts.
    Man Sieht nur eine Weisse Seite.

    Daten werden dabei auch keine neuen geschrieben.

    Das Script welches die Daten liest, ist ähnlich aufgebaut und dieser Funktioniert einwand frei.

    Könnt ihr mir bitte Helfen?

    Bessten Dank und Gruss

    Osti

  • #2
    Nachher jedoch wechselt es auf den Script, aber macht nichts.
    Man Sieht nur eine Weisse Seite.
    consultier bitte deinen error-log.
    isChecked() ist denke ich kein php, wenn du es nicht irgendwo deffiniert hast;
    es erinnert an:
    http://msdn.microsoft.com/en-us/libr...vs.110%29.aspx
    speichern geht mE. auch mit: http://php.net/manual/de/simplexmlelement.asxml.php

    Kommentar


    • #3
      Hallo Moma, danke für deine Rasche Antwort.

      Das mit dem ischecked hab ich irgendwo im Internet gefunden, und hattest recht. Gibts nicht xD

      Nachdem ich dies entfernt habe, ist es aber immernoch gleich.
      PHP Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/vhosts/4/102101/webspace/httpdocs/scripts/add_reference.php on line 7
      Diese Meldung kommt bei Line 6 und 7. Aber was is dan dort Falsch?

      Danke dir

      Kommentar


      • #4
        unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
        PHP-Code:
        $beurteilung->addChild("name""$_POST['vorname'] $_POST['nachname']"); 
        siehste nicht selbst, musste finden lernen.den punkt.

        Kommentar


        • #5
          Ach Mensch bin ich Blind.
          Habe nicht gesehen, dass ich die Variablen in Anführungszeichen drin hatte.

          Habe diese gelöscht, jetzt funktioniert es.

          Danke dir für deine Hilfe

          Kommentar

          Lädt...
          X