Katy M.: Übergabe von Anführungszeichen in einem Formular

Hallo,

ich habe ein fünfseitiges Formular.
Auf jeder Seite ist ein <textarea>
Mit den Buttons "weiter >" und "< zurück" kann der Benutzer
von Seite zu Seite navigieren. Die Eingabetext gehen dabei nicht
verloren. Diese werden per <input type="hidden"> weitergereicht.
Die Formularseiten funktionieren mit Text wunderbar.
Leider nicht mit Anführungszeichen.

Wird in ein <textarea> folgender Text eingegeben:
abc "test" xyz
So wird dieser per
<input type="hidden" name="frage1" value="abc "test" xyz">
weitergereicht.
Auf der nächsten Seite steht dann aber
<input type="hidden" name="frage1" value="abc \">

Quelltext:
//###### Funktion Übergabe der Antworten ######
function uebergabe($frage1,$frage2,$frage3,$frage4,$frage5)
 {
 $box = array($frage1,$frage2,$frage3,$frage4,$frage5);

for ($m=1; $m<=5; $m++)
  {
  echo "<input type="hidden" name="frage".$m."" value="".$box[($m-1)]."">\n";
  }
 }

Die Funktion wird mit
uebergabe($frage1,$frage2,$frage3,$frage4,$frage5);
augerufen.

Was mach ich falsch???
Bitte um Hilfe.

DANKE

  1. Hallo,

    Die Formularseiten funktionieren mit Text wunderbar.
    Leider nicht mit Anführungszeichen.

    Ideen/Stichworte:
    * Codiere die " als "
    * htmlentities()
    * stripslashes()

    Gruesse,

    Thomas

  2. Hi,

    versuch' mal die " durch " zu ersetzen - das sollte helfen.

    Ciao
    Andreas

  3. Hello,

    Anführungszeichen gehören zu den in HTML unzulässigen Zeichen.
    Nimm die Funktion htmlentities(), bevor Du die Daten an die textarea ausgibst.

    Grüße

    Tom

    1. Hallo,

      Anführungszeichen gehören zu den in HTML unzulässigen Zeichen.

      Wer sagt denn sowas?

      Mal von den Attributen abgesehen:
      Was soll an unmaskierten Anfuehrungszeichen schlecht sein?

      Gruesse,

      Thomas

      1. Hello,

        Anführungszeichen gehören zu den in HTML unzulässigen Zeichen.

        Wer sagt denn sowas?

        Mal von den Attributen abgesehen:
        Was soll an unmaskierten Anfuehrungszeichen schlecht sein?

        Du sollst mich doch nicht immer veralbern, du Böser!

        http://selfhtml.teamone.de/html/referenz/zeichen.htm#benannte_html

        Grüße

        Tom

        1. Hallo,

          Was soll an unmaskierten Anfuehrungszeichen schlecht sein?
          Du sollst mich doch nicht immer veralbern, du Böser!

          Ich will Dich nicht veralbern.

          http://selfhtml.teamone.de/html/referenz/zeichen.htm#benannte_html

          Dass es fuer ein Zeichen eine Entity gibt, bedeutet noch
          lange nicht, dass man es immer und ueberall codieren _muss_.

          Ich moechte ernsthaft wissen, was z.B. an
          <p>Die Zeitschrift "Focus" berichtet...</p>
          aus technischer Sicht (HTML) nicht korrekt sein soll.
          Hast Du mir einen Ausschnitt aus der HTML-Specification,
          der _vorschreibt_ oder auch nur empfiehlt, dass man
          <p>Die Zeitschrift "Focus" berichtet...</p>
          schreiben soll?

          Und ja, ich weiss, dass Typographie-Puristen wie
          http://webdesign.crissov.de/Typografie/Zitieren
          die 100% zuverlaessigen doppelten und einfachen
          Anfuehrungszeichen schnoede als "Falsche Freunde"
          bezeichnen und stattdessen irgendwelche Entities
          propagieren, die in diversen Browsern nicht oder
          grob fehlerhaft angezeigt werden...

          Gruesse,

          Thomas

    2. Hello,

      Anführungszeichen gehören zu den in HTML unzulässigen Zeichen.
      Nimm die Funktion htmlentities(), bevor Du die Daten an die textarea ausgibst.

      Hallo Tom,

      was interessiert dies den User, ob Anführungszeichen unzulässig sind???
      Der User füllt das Formular aus, wie es Ihm gefällt!

      1. Hello,

        was interessiert dies den User, ob Anführungszeichen unzulässig sind???
        Der User füllt das Formular aus, wie es Ihm gefällt!

        Na und?
        Kann er doch auch.
        Aber Dich sollte es interessieren, was Du als Datenwerte (auch plain-Texte) in HTML ausgibst. Der User gibt ja nicht in HTML ein, sondern im Klartext in irgendwelchen Inputs - oder?

        Grüße

        Tom

        1. Aber Dich sollte es interessieren, was Du als Datenwerte (auch plain-Texte) in HTML ausgibst. Der User gibt ja nicht in HTML ein, sondern im Klartext in irgendwelchen Inputs - oder?

          Schon klar.
          Wenn ich htmlentities() verwende,
          werden die Anführungszeichen umgewandet.
          Aber die \ bleiben immer noch sichtbar!?

          echo "<input type="hidden" name="frage".$m."" value="".htmlentities($box[($m-1)])."">\n";

          1. Hallo,

            Aber die \ bleiben immer noch sichtbar!?

            Ich sagte doch schon: stripslashes()
            http://www.php.net/manual/de/function.stripslashes.php

            Gruesse,

            Thomas

          2. Hello,

            Schon klar.
            Wenn ich htmlentities() verwende,
            werden die Anführungszeichen umgewandet.
            Aber die \ bleiben immer noch sichtbar!?

            echo "<input type="hidden" name="frage".$m."" value="".htmlentities($box[($m-1)])."">\n";

            Die Slashes werden von PHP vor der Übergabe der Daten an das Script hinzugefügt (siehe magic_quotes_gpc = 1), wenn der Schalte auf "ON" oder "1" steht. Das ist bei den meisten PHP-Installationen so.

            Man kann sie nun durch stripslashes() wieder entfernen oder aber den Schalter in der INI-Datei von PHP rausnehmen.

            Ich habe mir hierfür eine Funktion  strip() gebaut, die nachschaut, ob magic_quotes_gpc eingeschaltet ist und nur dann stripslashes() durchführt.

            Für weitere Erläuterungen lies Dir mal die Beschreibungen zu den Funktionen und Schaltern durch.

            Viel Erfolg

            Tom

      2. hi,

        was interessiert dies den User, ob Anführungszeichen unzulässig sind???
        Der User füllt das Formular aus, wie es Ihm gefällt!

        den user interessiert vermutlich nur, dass _dein_ script nicht mehr funktioniert, wenn er anführungszeichen benutzt.

        warum du Tom deshalb jetzt so anblaffst, ist mir unklar.

        gruss,
        wahsaga

      3. Hi,

        ich verstehe gar nicht, warum dieser Thread so gewachsen ist. Ich habe es eben mit " probiert und das klappt... Oder kann etwa niemand mein Posting sehen? Bin ich unsichtbar...?

        Ciao
        Andreas

        1. Hello,

          mal in Anführungszeichen gesprochen:

          Wir haben gerade nix Besseres zu tun und hier im Forum ist's immer so nett ;-)))

          Grüße

          Tom

  4. hi,

    Wird in ein <textarea> folgender Text eingegeben:
    abc "test" xyz
    So wird dieser per
    <input type="hidden" name="frage1" value="abc "test" xyz">
    weitergereicht.

    wie wird der text von der textarea ins hidden field "transportiert"?

    gruss,
    wahsaga

    1. wie wird der text von der textarea ins hidden field "transportiert"?

      methode: POST
      meinst du dies?

      1. hi,

        wie wird der text von der textarea ins hidden field "transportiert"?

        methode: POST
        meinst du dies?

        nein.

        ich hatte dich so verstanden, dass bereits auf der seite, wo der user die textbox ausfüllt, die daten zuvor per JS in ein hidden field übertragen werden, bevor das formular abgeschickt wird.

        gruss,
        wahsaga

        1. ich hatte dich so verstanden, dass bereits auf der seite, wo der user die textbox ausfüllt, die daten zuvor per JS in ein hidden field übertragen werden, bevor das formular abgeschickt wird.

          Hallo Foks,

          DANKE an alle,

          mitIdeen/Stichworte:
          * Codiere die " als "
          * htmlentities()
          * stripslashes()

          hat es funktioniert.

          1.
          ich habe die Variable mit $_POST abgeholt.
          2.
          mit htmlentities() die Anführungszeichen umgewandelt
          3.
          mit stripslashes() die \ entfernt

          DANKE nochmals an alle

          1. Bitteschööön.