m_jimmy: Anführungszeichen automatisch auskommentieren

Ich habe folgendes Problem:

Beim Auslesen einer Tabellensplate muss ich mit Text arbeiten der "- Anführungszeichen enthält.
Wenn ich nun den Text (wwspos) aufspalte

$alleposten = explode("\n", $wwspos);

und als

foreach ($alleposten as $posten)
          {
          echo '<tr><td bgcolor=white>';
  echo '<input type="radio" name="posten" value="'.$posten.'" /> '.$posten.' ';
  echo '</td></tr>';
  }
 wiedergebe, werden alle posten gelöscht, in denen ein " enthalten ist.

Wie kann ich das vorher auskommentieren, damit mir die Posten nicht gelöscht werden.

Beispiel: 234567 Dies ist Posten eins ---> Funktioniert
          12345  Dies "ist Posten zwei ---> Funktioniert nicht ...

  1. Wie kann ich das vorher auskommentieren, damit mir die Posten nicht gelöscht werden.

    Für 'ne Frage fehlt jetzt noch das Fragezeichen ...

    Wenn du dir die Dokumentation durchgelesen hättest, wärst du direkt als 2. Eintrag auf addslashes gestoßen.

    Gruß, Volker

  2. hi,

    foreach ($alleposten as $posten)
              {
              echo '<tr><td bgcolor=white>';
      echo '<input type="radio" name="posten" value="'.$posten.'" /> '.$posten.' ';
      echo '</td></tr>';
      }
    wiedergebe, werden alle posten gelöscht, in denen ein " enthalten ist.

    Wie kommst du zu der unsinnigen Aussage, sie würden "gelöscht"?

    Beispiel: 234567 Dies ist Posten eins ---> Funktioniert
              12345  Dies "ist Posten zwei ---> Funktioniert nicht ...

    Hast du mal in den erzeugten HTML-Quellcode geschaut, was da an diesen Stellen steht?
    Du erzeugst schlicht und einfach fehlerhaftes bzw. blödsinniges HTML.

    Wie kann ich das vorher auskommentieren, damit mir die Posten nicht gelöscht werden.

    Du darfst htmlspecialchars() benutzen - aber bitte erst, nachdem du auch kapiert hast, _wo_ das Problem eigentlich liegt.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  3. Danke für den Hinweis,

    das Problem habe ich aber immer noch.
    Dieser Hinweis auf Addslashes hat mir zwar weitergeholfen, jedoch nicht zur Problemlösung geführt, dann komischerweise werden mir die Posten im IE NICHT angezeigt, in Opera hingegen doch.

    Also scheint es mit den Browsern etwas auf sich zu haben ...
    Weiss jemand dazu eine Lösung?

    500193 TFT Monitor 19 " SyncMaster
    --> dieser Posten wird im IE nicht angezeigt

    500193 TFT Monitor 19 SyncMaster
    --> dieser Posten hingegen schon

    500193 TFT Monitor 19 " SyncMaster
    -- dieser hier auch nicht ...

    1. Hello out there!

      Danke für den Hinweis,

      Welchen meinst du? Bitte antworte auf das Posting, auf das du dich beziehst, nicht auf dein eigenes. (Das überlass mal mir™. ;-))

      wahsagas kannst du eigentlich nicht meinen, da du nichts von dem Gesagten berücksichtigt hast.

      See ya up the road,
      Gunnar

      --
      „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
  4. Also, wahsaga bezieht sich auf mein HTMl - damit habe ich keine Probleme.

    Mein opera-browser schmeisst mir auch alle Zeilen richtig raus.

    Der IE aber löscht die Zeilen in denen ein " vorkommt auch wenn ich das " mit addslahes um einen \ ergänze ...

    1. hi,

      bitte antworte doch auf das Posting, auf das du dich beziehst - und nicht jedes mal erneut auf dein eigenes Eigangsposting.

      Also, wahsaga bezieht sich auf mein HTMl - damit habe ich keine Probleme.

      Mag sein, dass du keine Probleme damit hast, einen korrekten und hilfreichen Hinweis zu ignorieren - die Ignoranz der Newbees hier ist hinreichend bekannt - aber mit deinem HTML-Code _hast_ du ein Problem.

      Und auf die bisherigen Rückfragen bist du auch überhaupt nicht eingegangen.

      Der IE aber löscht die Zeilen in denen ein " vorkommt auch wenn ich das " mit addslahes um einen \ ergänze ...

      Das ist ja auch vollkommen sinnfrei.

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. Also mein Problem war, dass ich deiner Argumentation nicht folgen kann, wahsaga.
        Du schreibst, dass mein HTML sinnlos sei - was daran ist denn sinnlos?
        Wenn ich das verstanden hätte, was du mir damit sagen willst - bzw. wenn ich damit etwas anfangen hätte können, dann wäre ich zufrieden gewesen, ich kam mir eigentlich nur blöd vor.

        Wie schon geschrieben, funktioniert auch meine Ausgabe soweit ganz gut - nur seltsamerweise gibts da ein Problem mit dem IE - das beim Opera nicht auftaucht - und da meine Kollegen den IE nutzen, werde ich mich darum kümmern müssen.

        hi,

        bitte antworte doch auf das Posting, auf das du dich beziehst - und nicht jedes mal erneut auf dein eigenes Eigangsposting.

        Also, wahsaga bezieht sich auf mein HTMl - damit habe ich keine Probleme.

        Mag sein, dass du keine Probleme damit hast, einen korrekten und hilfreichen Hinweis zu ignorieren - die Ignoranz der Newbees hier ist hinreichend bekannt - aber mit deinem HTML-Code _hast_ du ein Problem.

        Und auf die bisherigen Rückfragen bist du auch überhaupt nicht eingegangen.

        Der IE aber löscht die Zeilen in denen ein " vorkommt auch wenn ich das " mit addslahes um einen \ ergänze ...

        Das ist ja auch vollkommen sinnfrei.

        gruß,
        wahsaga

        1. Hello out there!

          Du schreibst, dass mein HTML sinnlos sei - was daran ist denn sinnlos?

          Was genau, das kann niemand hier wissen, da du den generierten HTML-Code bisher verheimlichst.

          Aber daran muss etwas falsch sein.

          See ya up the road,
          Gunnar

          PS: Bitte kein TOFU!

          --
          „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
          1. Hello in there:
            <?
                 if ($do == 'transfer1')
             {
              $sql = "select nummer, datum, ersatz8
                FROM wwspro.dbo.formular_$wwsstatus
                WHERE nummer='$wwsnum'
                ORDER BY '$datum' DESC";
              $res= mssql_query( $sql ) or die( mssql_error() );
              if (mssql_num_rows($res))
             {
             list($wwsnum, $wwsdat, $wwspos) = mssql_fetch_row($res);

            $alleposten = explode("\n", $wwspos);

            foreach ($alleposten as $posten)

            {
                      echo '<tr><td bgcolor=white>';
              echo '<input type="radio" name="posten" value="'.$posten.'" /> '.$posten.' ';
              echo '</td></tr>';
              }

            ?>

            So, das ist der Teil ohne mysql-connect. Problem wie gesagt, im IE fehlen mit hier die posten wo ein " enthalten ist - die zeigt mir der IE im Gegensatz zum Opera nicht an.

            1. Sorry, hatte die tables vergessen ...

            2. Hello out there!

              <?

              [schnipp]

              ?>

              War davon die Rede, PHP-Code zu posten? Nein.

              Nochmal: Wie lautet der durch PHP generierte HTML-Code?

              See ya up the road,
              Gunnar

              --
              „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
              1. <table>

                <tr><td>
                *hier der Text aus den Posten*
                </td></tr>

                <table>

                War das das was du wissen wolltest?

                1. hi,

                  War das das was du wissen wolltest?

                  Sag mal, stellst du dich absichtlich derart !%$§ an?

                  <table>

                  <tr><td>
                  *hier der Text aus den Posten*

                  Du hast doch wohl in erster Linie ein Problem mit der Wertweitergabe in Input-Feldern.
                  Sehen wir in diesem "Beispielcode" irgendwas von Inputfeldern?
                  Nein?
                  Aha.
                  Dann weisst du ja jetzt hoffentlich, wie die Frage, ob wir das wissen wollten, zu beantworten ist.

                  gruß,
                  wahsaga

                  --
                  /voodoo.css:
                  #GeorgeWBush { position:absolute; bottom:-6ft; }
  5. Tach.

    echo '<input type="radio" name="posten" value="'.$posten.'" /> '.$posten.' ';

    Das HTML sieht also z. B. so aus:

      
    <input type="radio" name="posten" value="Dies ist Posten eins" />  
    
    

    Wenn du nun Anführungszeichen in deinem $posten hast, wird daraus:

      
    <input type="radio" name="posten" value="Dies "ist Posten zwei" />  
    
    ~~~                                              ^  
                                                Hier wird für die meisten (?) Browser der Wert von value beendet -- sieht man auch sehr schön am Syntaxhighlighting hier im Forum. Danach folgt irgendwelcher Murks. Deswegen empfahl die [wahsaga](https://forum.selfhtml.org/?t=153956&m=1002129) die Verwendung von `htmlspecialchars()`{:.language-php} für deine `$posten`{:.language-php} vor. Diese Funktion wandelt nämlich Zeichen, die in HTML eine besondere Bezeichnung haben, in eine unverfängliche Notation um.  
    
    -- 
    Once is a mistake, twice is jazz.