Ankündigung

Einklappen
Keine Ankündigung bisher.

$_POST bleibt ohne Ergebnis

Einklappen

Neue Werbung 2019

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

  • $_POST bleibt ohne Ergebnis

    Hallo,

    als Neuling möchte ich mich gleich mal als eher "Anfänger" bezeichnen. Ich habe zwar schon programmiert, aber da es nur für eigene Zwecke ist, bleibt der Kenntnisstand eher überschaubar.

    Aktuell habe ich eine Seite, in der lese ich eine XML-Datei ein. Die Daten werden komplett richtig eingelesen. Den Inhalt der XML-Datei stelle ich in einem Formular dar:


    PHP-Code:
    <form action="<?php echo $_SERVER["php_self"]; ?>" method="post">
    und das entsprechende Anzeigefeld:
    PHP-Code:
    <textarea class="getraenkName" name="<?php echo 'GetraenkD' $ZeilenGenerieren ?>" cols="55" rows="1" ><?php echo ${'GetraenkD'.$ZeilenGenerieren?></textarea>
    Mit $_POST bekomme ich aber keinen Inhalt. Das Feld wird dargestellt mit dem richtigen Inhalt

    Bildschirm-html-Ansicht.png

    Dazu die Fehlermeldung

    Bildschirm-html-Ansicht-Fehlermeldung.png

    Wenn ich den Seitenquelltext anzeigen lasse, steht da eigentlich alles richtig drin

    Bildschirm-Browser-Seitenquelltext.png

    Die Abfrage, die zum Fehler führt bzw. eben nicht funktioniert ist

    PHP-Code:
    $XMLFertigeDaten .= $_POST['GetraenkD'.$LfdEintragsNummer]; 
    Hat mir jemand einen Tipp was da falsch ist oder sein könnte? Oder wie ich weitere Informationen bekomme um die Ursache zu finden?

  • #2
    Ich hab dir keinen Tipp aber ich kann dir einen Tipp geben.

    Du verwendest durchnummerierte Variablen, wo ein Array hingehört.

    Lass zudem das action Attribut weg, wenn du wieder au der gleichen Seite landen willst.
    $_SERVER["php_self"] ist da eher ein Sicherheitsrisiko.

    Kommentar


    • #3
      Hallo protestix,

      warum soll ich ein array nehmen? Was ändert sich damit an meinem Problem dass der Inhalt des Feldes nicht "vorhanden" ist?

      Ich bleibe auf der Seite. Der ganze Code ist auf einer Seite. Das Formular stellt den Inhalt der XML dar und wird nach ggf. Änderungen wieder als XML gespeichert.

      Gruß Christian

      Kommentar


      • #4
        Du lieferst halt etwas wenig um das Problem wirklich eingrenzen zu können.

        Wenn du herausfinden willst, was per $_POST tatsächlich reinkommt mach ein:
        PHP-Code:
        var_dump($_POST); 
        im Teil der Formularverarbeitung.

        Kommentar


        • #5
          Hallo Jonas3344,

          meine Angaben sind ja nicht aus Faulheit oder Geheimniskrämerei so. Wenn ich genau wüsste was man zur Problemlösung braucht, hätte ich's wahrscheinlich schon gelöst Naja, oder auch nicht. Fakt ist, ich habe das gepostet was ich denke was relevant ist. Forum ist php-Einsteiger. Also ein Einsteiger denkt über relevante Daten und Info nach - das kann nicht wirklich gut gehen! )

          Ich habe dein Code eingegeben und das Ergebnis ist "array(0) { }" - also nichts. Welche Angaben helfen denn das Problem zu lokalisieren?

          Gruß Christian

          Kommentar


          • #6
            Dann ist irgendwas an Deinem Formular faul. Liegen denn die Inputs (also <textarea>) innerhalb des <form>-Tags. Zeig uns doch mal Dein gesamtes Formular.

            Ansonsten möcht ich noch Kollege protestix unterstützen, beschäftige Dich mit Arrays, sieht so aus als würde das Dein Script massiv vereinfachen.

            Kommentar


            • #7
              Hallo jonas3344,

              das Formular sieht so aus

              PHP-Code:
                      ?>
                      <form action="<?php echo $_SERVER["php_self"]; ?>" method="post">
                      <?php

                      
              // loop durch alle Weine....

                      
              $ZeilenZuErzeugen $lfdWeinNummer;

                      for (
              $ZeilenGenerieren $ZeilenGenerieren $ZeilenZuErzeugen $ZeilenGenerieren++) {

                          if (${
              'TitelD'.$ZeilenGenerieren} !== "MuRkS") {
                              
              ?>
                              <textarea name="<?php echo "TitelD" $ZeilenGenerieren ?>" cols="300" rows="1" class="getraenkTitel" ><?php echo ${'TitelD'.$ZeilenGenerieren?></textarea>
                              <input type="hidden" name="<?php echo "SubTitelD" $ZeilenGenerieren ?>" value="<?php echo ${'SubTitelD'.$ZeilenGenerieren?>">
                              <input type="hidden" name="<?php echo "GetraenkD" $ZeilenGenerieren ?>" value="<?php echo ${'GetraenkD'.$ZeilenGenerieren?>">
                              <input type="hidden" name="<?php echo "Rechnungstext" $ZeilenGenerieren ?>" value="<?php echo ${'Rechnungstext'.$ZeilenGenerieren?>">
                              <input type="hidden" name="<?php echo "Jahrgang" $ZeilenGenerieren ?>" value="<?php echo ${'Jahrgang'.$ZeilenGenerieren?>">
                              <input type="hidden" name="<?php echo "Preis75" $ZeilenGenerieren ?>" value="<?php echo ${'Preis75'.$ZeilenGenerieren?>">
                              <input type="hidden" name="<?php echo "EKPreis75" $ZeilenGenerieren ?>" value="<?php echo ${'EKPreis75'.$ZeilenGenerieren?>">
                              <input type="hidden" name="<?php echo "Lager75" $ZeilenGenerieren ?>" value="<?php echo ${'Lager75'.$ZeilenGenerieren?>" >
                              <input type="hidden" name="<?php echo "Preis50" $ZeilenGenerieren ?>" value="<?php echo ${'Preis50'.$ZeilenGenerieren?>">
                              <input type="hidden" name="<?php echo "EKPreis50" $ZeilenGenerieren ?>" value="<?php echo ${'EKPreis50'.$ZeilenGenerieren?>">
                              <input type="hidden" name="<?php echo "Lager50" $ZeilenGenerieren ?>" value="<?php echo ${'Lager50'.$ZeilenGenerieren?>" >
                              <input type="hidden" name="<?php echo "Preis37" $ZeilenGenerieren ?>" value="<?php echo ${'Preis37'.$ZeilenGenerieren?>">
                              <input type="hidden" name="<?php echo "EKPreis37" $ZeilenGenerieren ?>" value="<?php echo ${'EKPreis37'.$ZeilenGenerieren?>">
                              <input type="hidden" name="<?php echo "Lager37" $ZeilenGenerieren ?>" value="<?php echo ${'Lager37'.$ZeilenGenerieren?>" >
                              <input type="hidden" name="<?php echo "Info" $ZeilenGenerieren ?>" value="<?php echo ${'Info'.$ZeilenGenerieren?>">
                              <?php
                              
              }

                          if (${
              'SubTitelD'.$ZeilenGenerieren} !== "MuRkS") {
                              
              ?>
                              <input type="hidden" name="<?php echo "TitelD" $ZeilenGenerieren ?>" value="<?php echo ${'TitelD'.$ZeilenGenerieren?>">
                              <textarea class="getraenkSubtitel" name="<?php echo "SubTitelD" $ZeilenGenerieren ?>" cols="300" rows="1" ><?php echo ${'SubTitelD'.$ZeilenGenerieren?></textarea>
                              <input type="hidden" name="<?php echo "GetraenkD" $ZeilenGenerieren ?>" value="<?php echo ${'GetraenkD'.$ZeilenGenerieren?>">
                              <input type="hidden" name="<?php echo "Rechnungstext" $ZeilenGenerieren ?>" value="<?php echo ${'Rechnungstext'.$ZeilenGenerieren?>">
                              <input type="hidden" name="<?php echo "Jahrgang" $ZeilenGenerieren ?>" value="<?php echo ${'Jahrgang'.$ZeilenGenerieren?>">
                              <input type="hidden" name="<?php echo "Preis75" $ZeilenGenerieren ?>" value="<?php echo ${'Preis75'.$ZeilenGenerieren?>">
                              <input type="hidden" name="<?php echo "EKPreis75" $ZeilenGenerieren ?>" value="<?php echo ${'EKPreis75'.$ZeilenGenerieren?>">
                              <input type="hidden" name="<?php echo "Lager75" $ZeilenGenerieren ?>" value="<?php echo ${'Lager75'.$ZeilenGenerieren?>" >
                              <input type="hidden" name="<?php echo "Preis50" $ZeilenGenerieren ?>" value="<?php echo ${'Preis50'.$ZeilenGenerieren?>">
                              <input type="hidden" name="<?php echo "EKPreis50" $ZeilenGenerieren ?>" value="<?php echo ${'EKPreis50'.$ZeilenGenerieren?>">
                              <input type="hidden" name="<?php echo "Lager50" $ZeilenGenerieren ?>" value="<?php echo ${'Lager50'.$ZeilenGenerieren?>" >
                              <input type="hidden" name="<?php echo "Preis37" $ZeilenGenerieren ?>" value="<?php echo ${'Preis37'.$ZeilenGenerieren?>">
                              <input type="hidden" name="<?php echo "EKPreis37" $ZeilenGenerieren ?>" value="<?php echo ${'EKPreis37'.$ZeilenGenerieren?>">
                              <input type="hidden" name="<?php echo "Lager37" $ZeilenGenerieren ?>" value="<?php echo ${'Lager37'.$ZeilenGenerieren?>" >
                              <input type="hidden" name="<?php echo "Info" $ZeilenGenerieren ?>" value="<?php echo ${'Info'.$ZeilenGenerieren?>">
                              <?php
                              
              }

                          if (${
              'GetraenkD'.$ZeilenGenerieren} !== "MuRkS") {

              //                ${'GetraenkD'.$ZeilenGenerieren} = str_replace("MuRkS","",${'GetraenkD'.$ZeilenGenerieren});
              //                ${'Rechnungstext'.$ZeilenGenerieren} = str_replace("MuRkS","",${'Rechnungstext'.$ZeilenGenerieren});
              //                ${'Jahrgang'.$ZeilenGenerieren} = str_replace("MuRkS","",${'Jahrgang'.$ZeilenGenerieren});
              //                ${'Preis75'.$ZeilenGenerieren} = str_replace("MuRkS","",${'Preis75'.$ZeilenGenerieren});
              //                ${'EKPreis75'.$ZeilenGenerieren} = str_replace("MuRkS","",${'EKPreis75'.$ZeilenGenerieren});
              //                ${'Lager75'.$ZeilenGenerieren} = str_replace("MuRkS","",${'Lager75'.$ZeilenGenerieren});
              //                ${'Preis50'.$ZeilenGenerieren} = str_replace("MuRkS","",${'Preis50'.$ZeilenGenerieren});
              //                ${'EKPreis50'.$ZeilenGenerieren} = str_replace("MuRkS","",${'EKPreis50'.$ZeilenGenerieren});
              //                ${'Lager50'.$ZeilenGenerieren} = str_replace("MuRkS","",${'Lager50'.$ZeilenGenerieren});
              //                ${'Preis37'.$ZeilenGenerieren} = str_replace("MuRkS","",${'Preis37'.$ZeilenGenerieren});
              //                ${'EKPreis37'.$ZeilenGenerieren} = str_replace("MuRkS","",${'EKPreis37'.$ZeilenGenerieren});
              //                ${'Lager37'.$ZeilenGenerieren} = str_replace("MuRkS","",${'Lager37'.$ZeilenGenerieren});
              //                ${'Info'.$ZeilenGenerieren} = str_replace("MuRkS","",${'Info'.$ZeilenGenerieren});

                              
              ?>
                              <input type="hidden" name="<?php echo "TitelD" $ZeilenGenerieren ?>" value="<?php echo ${'TitelD'.$ZeilenGenerieren?>">
                              <input type="hidden" name="<?php echo "SubTitelD" $ZeilenGenerieren ?>" value="<?php echo ${'SubTitelD'.$ZeilenGenerieren?>">
                              <textarea class="getraenkName" name="<?php echo 'GetraenkD' $ZeilenGenerieren ?>" cols="55" rows="1" ><?php echo ${'GetraenkD'.$ZeilenGenerieren?></textarea>
                              <textarea class="getraenkStandard" placeholder="Rechnungstext" name="<?php echo 'Rechnungstext' $ZeilenGenerieren ?>" cols="55" rows="1" ><?php echo ${'Rechnungstext'.$ZeilenGenerieren?></textarea>
                              <textarea class="getraenkKlein" placeholder="Jahrgang" name="<?php echo "Jahrgang" $ZeilenGenerieren ?>" cols="15" rows="1" ><?php echo ${'Jahrgang'.$ZeilenGenerieren?></textarea>
                              <textarea class="getraenk75a" placeholder="Preis 75" name="<?php echo "Preis75" $ZeilenGenerieren ?>" cols="10" rows="1" ><?php echo ${'Preis75'.$ZeilenGenerieren?></textarea>
                              <textarea class="getraenk75b" placeholder="EK 75" name="<?php echo "EKPreis75" $ZeilenGenerieren ?>" cols="10" rows="1" ><?php echo ${'EKPreis75'.$ZeilenGenerieren?></textarea>
                              <textarea class="getraenk75c" placeholder="Lager 75" name="<?php echo "Lager75" $ZeilenGenerieren ?>" cols="10" rows="1" ><?php echo ${'Lager75'.$ZeilenGenerieren?></textarea>
                              <textarea class="getraenk50a" placeholder="Preis 50" name="<?php echo "Preis50" $ZeilenGenerieren ?>" cols="10" rows="1" ><?php echo ${'Preis50'.$ZeilenGenerieren?></textarea>
                              <textarea class="getraenk50b" placeholder="EK 50" name="<?php echo "EKPreis50" $ZeilenGenerieren ?>" cols="10" rows="1" ><?php echo ${'EKPreis50'.$ZeilenGenerieren?></textarea>
                              <textarea class="getraenk50c" placeholder="Lager 50" name="<?php echo "Lager50" $ZeilenGenerieren ?>" cols="10" rows="1" ><?php echo ${'Lager50'.$ZeilenGenerieren?></textarea>
                              <textarea class="getraenk37a" placeholder="Preis 37" name="<?php echo "Preis37" $ZeilenGenerieren ?>" cols="10" rows="1" ><?php echo ${'Preis37'.$ZeilenGenerieren?></textarea>
                              <textarea class="getraenk37b" placeholder="EK 37" name="<?php echo "EKPreis37" $ZeilenGenerieren ?>" cols="10" rows="1" ><?php echo ${'EKPreis37'.$ZeilenGenerieren?></textarea>
                              <textarea class="getraenk37c" placeholder="Lager 37" name="<?php echo "Lager37" $ZeilenGenerieren ?>" cols="10" rows="1" ><?php echo ${'Lager37'.$ZeilenGenerieren?></textarea>
                              <textarea class="infoklein" placeholder="Info" name="<?php echo "Info" $ZeilenGenerieren ?>" cols="15" rows="1" ><?php echo ${'Info'.$ZeilenGenerieren?></textarea>
                              <?php
                              
              }

                          } 
              // ($ZeilenGenerieren = 1 ; $ZeilenGenerieren < $ZeilenZuErzeugen ; $ZeilenGenerieren++)

                          
              ?>
                          <br /><br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;    
                          <input type="submit" value="Intern speichern" name="XMLIntern" class="schalter">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp
                          <input type="submit" value="Vorab speichern" name="XMLVorab" class="schalter">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp
                          <input type="submit" value="Öffentlich speichern" name="XMLOeffentlich" class="schalter">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp
                          <input type="submit" value="Download" name="XMLLokal" class="schalter">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp
                          <input type="submit" value="zurück zum Hauptmenü" name="zurueck" class="schalter">

                          <?php
                          var_dump
              ($_POST);
                          
              ?>

                          </form>
              Die "Entfernung der an sich doofen "MuRkS" habe ich mal als Kommentar markiert - hatte aber keinen Einfluß. Auch nicht wenn ich den Teil ganz lösche. Das "MuRkS" habe ich rein, damit ich sehe ob die Felder da sind. Das Ich habe keine Lust bei 200 Einträgen mit jeweils 28 Tags immer was sinnvolles da rein zu schreiben damit ich was sehe.

              Gruß Christian

              Kommentar


              • #8
                Den var_dump() musst du natürlich schon dort platzieren wo du das Formular verarbeitest. So wie du das jetzt hast bekommst du logischerweise beim ersten Aufruf der Seite einen leeren Array.

                Kommentar


                • #9
                  Ups. Habe ich verbessert - Ergebnis gleich.

                  Die Verarbeitung findet direkt im Anschluß statt:

                  PHP-Code:
                   <?php           


                   
                  // XML-Datei intern erzeugen mit allen Tags         

                          
                  $LfdEintragsNummer 1;
                          
                  $ErstellungsDatum date('d.m.Y');

                          
                  $XMLFertigeDaten "<?xml version='1.0' encoding='UTF-8'?>\n<Wein>\n";

                          for (
                  $i 0$i $Klassen$i++) {

                              
                  $kat "Kat$i";

                              
                  $XMLFertigeDaten .= "<Gruppe>\n";

                              
                  $anzahlInhalte count($XMLMatrix[0] [$i] [$kat]);

                            for (
                  $j=0$j $anzahlInhalte$j++) {

                                
                  $XMLFertigeDaten .= "<";
                                
                  $XMLFertigeDaten .= $kat;
                                
                  $XMLFertigeDaten .= ">\n";
                                
                  $XMLFertigeDaten .= "<nix<MuRkS</nix>\n";
                                
                  $XMLFertigeDaten .= "<TitelD>${'TitelD'.$LfdEintragsNummer}</TitelD>\n";
                                
                  $XMLFertigeDaten .= "<TitelF>${'TitelF'.$LfdEintragsNummer}</TitelF>\n";
                                
                  $XMLFertigeDaten .= "<TitelE>${'TitelE'.$LfdEintragsNummer}</TitelE>\n";
                                
                  $XMLFertigeDaten .= "<SubtitelD>${'SubTitelD'.$LfdEintragsNummer}</SubtitelD>\n";
                                
                  $XMLFertigeDaten .= "<SubtitelF>${'SubTitelF'.$LfdEintragsNummer}</SubtitelF>\n";
                                
                  $XMLFertigeDaten .= "<SubtitelE>${'SubTitelE'.$LfdEintragsNummer}</SubtitelE>\n";
                                
                  $XMLFertigeDaten .= "<BeschreibungD>";
                                
                  $XMLFertigeDaten .= $_POST['GetraenkD'.$LfdEintragsNummer];

                                
                  var_dump($_POST);

                                
                  $XMLFertigeDaten .= "</BeschreibungD>\n";
                                
                  $XMLFertigeDaten .= "<BeschreibungF>${'GetraenkF'.$LfdEintragsNummer}</BeschreibungF>\n";
                                
                  $XMLFertigeDaten .= "<BeschreibungE>${'GetraenkE'.$LfdEintragsNummer}</BeschreibungE>\n";
                                
                  $XMLFertigeDaten .= "<Jahrgang>";
                                if (
                  $_POST['Jahrgang'.$LfdEintragsNummer] == "") {$XMLFertigeDaten .= "MuRkS";} else {$XMLFertigeDaten .= $_POST['Jahrgang'.$LfdEintragsNummer];}
                                
                  $XMLFertigeDaten .= "</Jahrgang>\n";
                                
                  $XMLFertigeDaten .= "<Preis75>";
                                if (
                  $_POST['Preis75'.$LfdEintragsNummer] == "") {$XMLFertigeDaten .= "MuRkS";} else {$XMLFertigeDaten .= $_POST['Preis75'.$LfdEintragsNummer];}
                                ...
                  Die XML, die benutzt wird und nach der Bearbeitung im Formular benutzt wird, sieht so aus (nur mal ein paar Zeilen kopiert)

                  Code:
                  <Wein>
                    <Gruppe>
                      <Kat0>
                        <nix>MuRkS</nix>
                        <TitelD>BORDEAUX ROUGE</TitelD>
                        <TitelF>BORDEAUX ROUGE</TitelF>
                        <TitelE>BORDEAUX ROUGE</TitelE>
                        <SubtitelD>MuRkS</SubtitelD>
                        <SubtitelF>MuRkS</SubtitelF>
                        <SubtitelE>MuRkS</SubtitelE>
                        <BeschreibungD>MuRkS</BeschreibungD>
                        <BeschreibungF>MuRkS</BeschreibungF>
                        <BeschreibungE>MuRkS</BeschreibungE>
                        <Jahrgang>MuRkS</Jahrgang>
                        <Preis75>MuRkS</Preis75>
                        <EKPreis75>MuRkS</EKPreis75>
                        <Lager75>MuRkS</Lager75>
                        <Preis50>MuRkS</Preis50>
                        <EKPreis50>MuRkS</EKPreis50>
                        <Lager50>MuRkS</Lager50>
                        <Preis37>MuRkS</Preis37>
                        <EKPreis37>MuRkS</EKPreis37>
                        <Lager37>MuRkS</Lager37>
                        <Preistext>MuRkS</Preistext>
                        <Rechnungstext>MuRkS</Rechnungstext>
                        <Grafik>MuRkS</Grafik>
                        <Preis>MuRkS</Preis>
                        <EKPreis>MuRkS</EKPreis>
                        <ZBV>MuRkS</ZBV>
                        <Info>MuRkS</Info>
                        <Datum>04.02.2019</Datum>
                      </Kat0>
                      <Kat0>
                        <nix>MuRkS</nix>
                        <TitelD>MuRkS</TitelD>
                        <TitelF>MuRkS</TitelF>
                        <TitelE>MuRkS</TitelE>
                        <SubtitelD>MÉDOC</SubtitelD>
                        <SubtitelF>MÉDOC</SubtitelF>
                        <SubtitelE>MÉDOC</SubtitelE>
                        <BeschreibungD>MuRkS</BeschreibungD>
                        <BeschreibungF>MuRkS</BeschreibungF>
                        <BeschreibungE>MuRkS</BeschreibungE>
                        <Jahrgang>MuRkS</Jahrgang>
                        <Preis75>MuRkS</Preis75>
                        <EKPreis75>MuRkS</EKPreis75>
                        <Lager75>MuRkS</Lager75>
                        <Preis50>MuRkS</Preis50>
                        <EKPreis50>MuRkS</EKPreis50>
                        <Lager50>MuRkS</Lager50>
                        <Preis37>MuRkS</Preis37>
                        <EKPreis37>MuRkS</EKPreis37>
                        <Lager37>MuRkS</Lager37>
                        <Preistext>MuRkS</Preistext>
                        <Rechnungstext>MuRkS</Rechnungstext>
                        <Grafik>MuRkS</Grafik>
                        <Preis>MuRkS</Preis>
                        <EKPreis>MuRkS</EKPreis>
                        <ZBV>MuRkS</ZBV>
                        <Info>MuRkS</Info>
                        <Datum>04.02.2019</Datum>
                      </Kat0>
                      <Kat0>
                        <nix>MuRkS</nix>
                        <TitelD>MuRkS</TitelD>
                        <TitelF>MuRkS</TitelF>
                        <TitelE>MuRkS</TitelE>
                        <SubtitelD>MuRkS</SubtitelD>
                        <SubtitelF>MuRkS</SubtitelF>
                        <SubtitelE>MuRkS</SubtitelE>
                        <BeschreibungD>Le Médoc de Cos</BeschreibungD>
                        <BeschreibungF>Le Médoc de Cos</BeschreibungF>
                        <BeschreibungE>Le Médoc de Cos</BeschreibungE>
                        <Jahrgang>2011</Jahrgang>
                        <Preis75>40 €</Preis75>
                        <EKPreis75>MuRkS</EKPreis75>
                        <Lager75>C 4</Lager75>
                        <Preis50>MuRkS</Preis50>
                        <EKPreis50>MuRkS</EKPreis50>
                        <Lager50>MuRkS</Lager50>
                        <Preis37>MuRkS</Preis37>
                        <EKPreis37>MuRkS</EKPreis37>
                        <Lager37>MuRkS</Lager37>
                        <Preistext>MuRkS</Preistext>
                        <Rechnungstext>MuRkS</Rechnungstext>
                        <Grafik>MuRkS</Grafik>
                        <Preis>MuRkS</Preis>
                        <EKPreis>MuRkS</EKPreis>
                        <ZBV>MuRkS</ZBV>
                        <Info>MuRkS</Info>
                        <Datum>04.02.2019</Datum>
                      </Kat0>
                      <Kat0>
                        <nix>MuRkS</nix>
                        <TitelD>MuRkS</TitelD>
                        <TitelF>MuRkS</TitelF>
                        <TitelE>MuRkS</TitelE>
                        <SubtitelD>MuRkS</SubtitelD>
                        <SubtitelF>MuRkS</SubtitelF>
                        <SubtitelE>MuRkS</SubtitelE>
                        <BeschreibungD>Château La Tour de By</BeschreibungD>
                        <BeschreibungF>Château La Tour de By</BeschreibungF>
                        <BeschreibungE>Château La Tour de By</BeschreibungE>
                        <Jahrgang>2012</Jahrgang>
                        <Preis75>36 €</Preis75>
                        <EKPreis75>12,25</EKPreis75>
                        <Lager75>B 7</Lager75>
                        <Preis50>MuRkS</Preis50>
                        <EKPreis50>MuRkS</EKPreis50>
                        <Lager50>MuRkS</Lager50>
                        <Preis37>19 €</Preis37>
                        <EKPreis37>6,43</EKPreis37>
                        <Lager37>C 6</Lager37>
                        <Preistext>MuRkS</Preistext>
                        <Rechnungstext>MuRkS</Rechnungstext>
                        <Grafik>MuRkS</Grafik>
                        <Preis>MuRkS</Preis>
                        <EKPreis>MuRkS</EKPreis>
                        <ZBV>MuRkS</ZBV>
                        <Info>MuRkS</Info>
                        <Datum>04.02.2019</Datum>
                      </Kat0>
                    </Gruppe>
                    <Gruppe>
                      <Kat1>
                        <nix>MuRkS</nix>
                        <TitelD>BORDEAUX WEIß</TitelD>
                        <TitelF>BORDEAUX ROUGE</TitelF>
                        <TitelE>BORDEAUX ROUGE</TitelE>
                        <SubtitelD>MuRkS</SubtitelD>
                        <SubtitelF>MuRkS</SubtitelF>
                        <SubtitelE>MuRkS</SubtitelE>
                        <BeschreibungD>MuRkS</BeschreibungD>
                        <BeschreibungF>MuRkS</BeschreibungF>
                        <BeschreibungE>MuRkS</BeschreibungE>
                        <Jahrgang>MuRkS</Jahrgang>
                        <Preis75>MuRkS</Preis75>
                        <EKPreis75>MuRkS</EKPreis75>
                        <Lager75>MuRkS</Lager75>
                        <Preis50>MuRkS</Preis50>
                        <EKPreis50>MuRkS</EKPreis50>
                        <Lager50>MuRkS</Lager50>
                        <Preis37>MuRkS</Preis37>
                        <EKPreis37>MuRkS</EKPreis37>
                        <Lager37>MuRkS</Lager37>
                        <Preistext>MuRkS</Preistext>
                        <Rechnungstext>MuRkS</Rechnungstext>
                        <Grafik>MuRkS</Grafik>
                        <Preis>MuRkS</Preis>
                        <EKPreis>MuRkS</EKPreis>
                        <ZBV>MuRkS</ZBV>
                        <Info>MuRkS</Info>
                        <Datum>04.02.2019</Datum>
                      </Kat1>
                      <Kat1>
                        <nix>MuRkS</nix>
                        <TitelD>MuRkS</TitelD>
                        <TitelF>MuRkS</TitelF>
                        <TitelE>MuRkS</TitelE>
                        <SubtitelD>MÉDOC</SubtitelD>
                        <SubtitelF>MÉDOC</SubtitelF>
                        <SubtitelE>MÉDOC</SubtitelE>
                        <BeschreibungD>MuRkS</BeschreibungD>
                        <BeschreibungF>MuRkS</BeschreibungF>
                        <BeschreibungE>MuRkS</BeschreibungE>
                        <Jahrgang>MuRkS</Jahrgang>
                        <Preis75>MuRkS</Preis75>
                        <EKPreis75>MuRkS</EKPreis75>
                        <Lager75>MuRkS</Lager75>
                        <Preis50>MuRkS</Preis50>
                        <EKPreis50>MuRkS</EKPreis50>
                        <Lager50>MuRkS</Lager50>
                        <Preis37>MuRkS</Preis37>
                        <EKPreis37>MuRkS</EKPreis37>
                        <Lager37>MuRkS</Lager37>
                        <Preistext>MuRkS</Preistext>
                        <Rechnungstext>MuRkS</Rechnungstext>
                        <Grafik>MuRkS</Grafik>
                        <Preis>MuRkS</Preis>
                        <EKPreis>MuRkS</EKPreis>
                        <ZBV>MuRkS</ZBV>
                        <Info>MuRkS</Info>
                        <Datum>04.02.2019</Datum>
                      </Kat1>
                      <Kat1>
                        <nix>MuRkS</nix>
                        <TitelD>MuRkS</TitelD>
                        <TitelF>MuRkS</TitelF>
                        <TitelE>MuRkS</TitelE>
                        <SubtitelD>MuRkS</SubtitelD>
                        <SubtitelF>MuRkS</SubtitelF>
                        <SubtitelE>MuRkS</SubtitelE>
                        <BeschreibungD>Le Médoc de Cos</BeschreibungD>
                        <BeschreibungF>Le Médoc de Cos</BeschreibungF>
                        <BeschreibungE>Le Médoc de Cos</BeschreibungE>
                        <Jahrgang>2011</Jahrgang>
                        <Preis75>40 €</Preis75>
                        <EKPreis75>MuRkS</EKPreis75>
                        <Lager75>C 4</Lager75>
                        <Preis50>MuRkS</Preis50>
                        <EKPreis50>MuRkS</EKPreis50>
                        <Lager50>MuRkS</Lager50>
                        <Preis37>MuRkS</Preis37>
                        <EKPreis37>MuRkS</EKPreis37>
                        <Lager37>MuRkS</Lager37>
                        <Preistext>MuRkS</Preistext>
                        <Rechnungstext>MuRkS</Rechnungstext>
                        <Grafik>MuRkS</Grafik>
                        <Preis>MuRkS</Preis>
                        <EKPreis>MuRkS</EKPreis>
                        <ZBV>MuRkS</ZBV>
                        <Info>MuRkS</Info>
                        <Datum>04.02.2019</Datum>
                      </Kat1>
                      <Kat1>
                        <nix>MuRkS</nix>
                        <TitelD>MuRkS</TitelD>
                        <TitelF>MuRkS</TitelF>
                        <TitelE>MuRkS</TitelE>
                        <SubtitelD>MuRkS</SubtitelD>
                        <SubtitelF>MuRkS</SubtitelF>
                        <SubtitelE>MuRkS</SubtitelE>
                        <BeschreibungD>Château La Tour de By</BeschreibungD>
                        <BeschreibungF>Château La Tour de By</BeschreibungF>
                        <BeschreibungE>Château La Tour de By</BeschreibungE>
                        <Jahrgang>2012</Jahrgang>
                        <Preis75>36 €</Preis75>
                        <EKPreis75>12,25</EKPreis75>
                        <Lager75>B 7</Lager75>
                        <Preis50>MuRkS</Preis50>
                        <EKPreis50>MuRkS</EKPreis50>
                        <Lager50>MuRkS</Lager50>
                        <Preis37>19 €</Preis37>
                        <EKPreis37>6,43</EKPreis37>
                        <Lager37>C 6</Lager37>
                        <Preistext>MuRkS</Preistext>
                        <Rechnungstext>MuRkS</Rechnungstext>
                        <Grafik>MuRkS</Grafik>
                        <Preis>MuRkS</Preis>
                        <EKPreis>MuRkS</EKPreis>
                        <ZBV>MuRkS</ZBV>
                        <Info>MuRkS</Info>
                        <Datum>04.02.2019</Datum>
                      </Kat1>

                  Kommentar


                  • #10
                    Direkt im Anschluss?

                    Kommentar


                    • #11
                      Ich hab jetzt nicht alles durchgelesen im Detail.
                      ChristianPons : Du solltest zuerst mal den Kontextwechsel nach HTML beachten und das in Ordnung bringen. Das ein textarea kein Kontextwechsel braucht ist ein weit verbreiteter Irrtum.

                      Was passieren kann wenn der Kontextwechsel nicht beachtet wird:
                      PHP-Code:
                      $string "ist hier b<a oder nicht c>a?";
                      echo 
                      $string
                      Ausgabe im Browser:
                      ist hier ba?

                      Kommentar


                      • #12
                        Warum wird hier XML-Code zu Fuß zusammen gebaut? Und das auch noch falsch? Ist ja nicht so, als hätte PHP nicht zahlreiche eingebaute Klassen und Funktionen um XML-Daten zu erstellen.

                        Desweiteren gibt es $_SERVER["php_self"] nicht. Eigentlich müsste es hier eine Fehlermeldung geben. Das weckt den Anschein, als würden Fehlermeldungen einfach von dir ignoriert werden. Fehlermeldungen zu ignorieren oder zu verheimlichen ist bei der Fehlersuche nicht gerade hilfreich.

                        Kommentar


                        • #13
                          PHP-Code:
                           <form action="<?php echo $_SERVER["php_self"]; ?>" method="post">
                          Fehlerquelle, XSS Lücke und so weiter.
                          Abgesehen davon, dass es das in der Form, wie oben schon erwähnt, nicht gibt, lass action einfach weg (HTML5) und in älteren Versionen einfach leer lassen. Einfach und sicherer.

                          Wenn du Fehlerausgabe aktivieren würdest, oder ins FehlerLog schauen, würde dir das PHP übrigens auch alles "sagen", daher:

                          1. Fehlerausgabe aktivieren und überraschen lassen, und die Meldungen natürlich auch fixen: https://php-de.github.io/jumpto/faq/#debugging

                          2. Schau dir mal simplexml, DOMDocument, etc.. an, das sind XML Klassen die PHP an Board hat mit denen man einfach sauberes, valides XML erstellen kann.
                          Übesicht mit Beispiel etc.. zB auch hier: https://stackoverflow.com/questions/...ally-using-php
                          The string "()()" is not palindrom but the String "())(" is.

                          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                          PHP.de Wissenssammlung | Kein Support per PN

                          Kommentar


                          • #14
                            Guten Morgen und danke für die teils hilfreichen Antworten.

                            @jonas3344
                            ja alles in einer Seite. Zweck ist es, die XML als Formular anzuzeigen, ggf. Änderungen zu machen und dann wieder als XML zu speichern.

                            @jspit:
                            Danke für den link - habe kurz reingeguckt und werde mir das gleich genau angucken.

                            @heilbringer:
                            zu Teil 1: entschuldige, dass ich als Mensch und nicht als Informatik-Gott auf die Welt kam. Auch hat mir keiner php in den Kopf geschiss... ! Nach wie vor denke ich, dass "php-einsteiger" eine klare Aussage des fachlichen Niveaus darstellt. Das sollte gerade ein Moderator verstehen!

                            zu Teil 2: das ist recht unverschämt und sehr herablassend. Ich habe um die Fehlermeldungen zu bekommen
                            PHP-Code:
                            error_reporting(E_ALL); 
                            am Anfang der Datei eingebaut. Sonst hätte ich ja auch kein Bildschimausdruck mit der Meldung machen können, oder? Sind hier nur Photoshop-Genies die solche Bilder faken um mir so was gleich mal zu unterstellen? Den gesamten Bildschirm mal zur Ansicht: (ich habe die XML auf 20 Einträge gekürzt)


                            [MOD: Fehlermeldungs-Bilder entfernt]


                            Die Bilder sind mit jeweils einer Zeile Überlappung. Ich sehe da nichts, was auf einen Fehler bezüglich $_SERVER["php_self"] schließen lässt. Eigentlich bin ich mir keiner deiner böswilligen Unterstellungen bewußt bzw. habe hier etwas verschwiegen. Vielleicht solltest du das Forum wechseln und eine Karriere im Forum für die "Suche nach Kleinkriminellen" machen. Eigentlich passender deinem Antwortstil zu folge...

                            @hausi:
                            wie gesagt, die mir als Anfänger bekannte Möglichkeit, Fehler ausgeben zu lassen habe ich gemacht. Ich werde deine Links genau ansehen. Danke.


                            Übrigens haben wir ja nicht nur Wein, sonder auch eine Karte, ein Wochenmenü, ein BIB-Menü, ein Kindermenü, Aperitif, Cognac, Öffnungszeiten, News, Kochkurse und Zimmerprese. Alle diese XMLs werden so wie der Wein gemacht bzw. bearbeitet. Die funktionieren... vielleicht wissen die nicht dass sie es nicht sollen. ) Oder ich habe halt einfach Glück des Anfängers gehabt. Wie dem auch sei - ich bin mir meiner Schwächen bewußt und will daran arbeiten. Danke an die, die mir einen Weg aufzeigen statt mir Dummfug zu unterstellen

                            Kommentar


                            • #15
                              Warum postest du Text als Bild?
                              PHP-Code:
                              <?php echo $_SERVER['php_self'];
                              Code:
                              Notice: Undefined index: php_self in C:\xampp\htdocs\test.php on line 1
                              Desweiteren solltest du dir Fehlermeldungn nicht (nur) im Browser anschauen, sondern beim Programmieren immer nebenbei das PHP-Error-Log offen haben.

                              Kommentar

                              Lädt...
                              X