Tanja G.: Formular bearbeiten, Unicode

Hallo,

ich habe eine Texteingabe mit einem '<textarea name="info">'.
Mit einem submit-Button wir der Inhalt auf die nächste übergeben.
Dort wir der Inhalt mit 'echo $info;' angezeigt.
Mit einem weitern submit-Button kommt man wieder auf die erste Seite zurück. Der Text wird mit '<input name="info" type="hidden" value="<?=$info?>">' der ersten Seite übergeben. Auf der ersten Seite wird der Inhalt mit '<textarea name="info" cols="106" rows="20"><?=nl2br($info)?></textarea>' zum korregieren angezeigt.

Leider werden die Umlaute z.B. ä oder ü beim zurückspringen auf die Seite eins wie folgt dargestellt:
ä oder ü.

Dies möchte ich aber verhindern. HTML-Code und Umlaute sollen erhalten bleiben, nach der Korrektur.

Wie muss ich genau vorgehen.

Gruß
PHP-Anfänger!

  1. Hi,

    ich habe eine Texteingabe mit einem '<textarea name="info">'.
    Mit einem submit-Button wir der Inhalt auf die nächste übergeben.
    Dort wir der Inhalt mit 'echo $info;' angezeigt.

    Du hast selbstverständlich diese Variable zuvor mit

    $info = $_GET['info'];
    bzw.
    $info = $_POST['info'];

    deklariert, oder? Andernfalls hast Du ein Sicherheitsproblem, siehe Archiv.

    Dies möchte ich aber verhindern. HTML-Code und Umlaute sollen erhalten bleiben, nach der Korrektur.

    Schau mal in den Quellcode der Seite: sie stehen da. Was Du vergessen hast ist, dass HTML diese Entitäten interpretiert. Du musst sie also maskieren, d.h. das Escape-Zeichen "&" escapen, sprich: durch die zugehörige Entität ersetzen.

    Cheatah

    --
    X-Will-Answer-Email: No
    1. Hi Cheatah,

      komme leider nicht ganz mit.
      Kannst du mir bitte deine Lösung etwas genauer beschreiben.

      DANKE

      Gruß
      Tanja

      1. Hi,

        komme leider nicht ganz mit.

        wo genau hast Du denn Probleme?

        Kannst du mir bitte deine Lösung etwas genauer beschreiben.

        Tipp: Vergiss Unicode, damit hat das beschriebene Phänomen nichts zu tun. Schau Dir den Quellcode an, den Dein Browser erhält.

        Cheatah

        --
        X-Will-Answer-Email: No
        1. Hi,

          wenn ich auf der ersten Seite 'ä' eingebe, wird auf der zweiten Seite ä angezeigt. Dies ist so gewollt und richtig. Im input-hidden-Feld (für zurück) steht noch 'ä'. Immer noch richtig und gewollt. Nur auf der ersten Seiten wieder angekommen, steht jetzt das ä, hier sollte das 'ä' wieder stehen.

          Wie geht das mit dem 'Escapen'?

          Gruß

          1. Hi,

            wenn ich auf der ersten Seite 'ä' eingebe, wird auf der zweiten Seite ä angezeigt. Dies ist so gewollt und richtig. Im input-hidden-Feld (für zurück) steht noch 'ä'. Immer noch richtig und gewollt.

            tatsächlich? Wenn ich Dich richtig verstehe, soll hier wieder 'ä' übertragen werden. Überlege Dir, was Du statt dessen bekommst, und warum dem so sein _muss_.

            Wie geht das mit dem 'Escapen'?

            "Ersetze das Zeichen durch seine Kodierung". In einem String (bei handelsüblichen Programmiersprachen) musst Du z.B. ein \ durch \ ersetzen, in einer URL das % durch %25, und in HTML das & durch - ja, durch was? All diese Zeichen haben eine besondere Bedeutung, welche ihnen genommen wird, indem man sie durch ein Zeichen/einen Code escapet.

            Cheatah

            --
            X-Will-Answer-Email: No
            1. Hi,

              wenn ich auf der ersten Seite 'ä' eingebe, wird auf der zweiten Seite ä angezeigt. Dies ist so gewollt und richtig. Im input-hidden-Feld (für zurück) steht noch 'ä'. Immer noch richtig und gewollt.

              tatsächlich? Wenn ich Dich richtig verstehe, soll hier wieder 'ä' übertragen werden.

              so soll es sein

              Überlege Dir, was Du statt dessen bekommst, und warum dem so sein _muss_.

              Wenn ich die Antwort wüßte, war ich nicht hier im Forum!
              Weis die Lösung leider nicht.
              Da ich am Anfang meiner PHP Kunst bin, wäre etwas PHP-Quellcode
              nicht schlecht :)

              1. Hi,

                tatsächlich? Wenn ich Dich richtig verstehe, soll hier wieder 'ä' übertragen werden.

                so soll es sein

                Überlege Dir, was Du statt dessen bekommst, und warum dem so sein _muss_.

                Wenn ich die Antwort wüßte, war ich nicht hier im Forum!

                deswegen schrieb ich ja, Du sollst es Dir überlegen ;-)

                Wenn innerhalb von HTML-Code "&irgendwas;" notiert wird, ersetzt dies der Browser durch den zugehörigen Wert. Immer. Steht dort also "ä", ist dies ausschließlich im Quellcode relevant - jede Funktion, jede Aktion, jede Übertragung erhält nur noch "ä". Aus exakt diesem Grund ist es beispielsweise bei URLs *absolut unerlässlich*, jedes einzelne "&" durch "&" zu ersetzen.

                Da ich am Anfang meiner PHP Kunst bin, wäre etwas PHP-Quellcode
                nicht schlecht :)

                Mit PHP hat das nichts zu tun, auch wenn Du dort die Lösung ansetzen musst. Das Problem basiert auf dem Grundverständnis von HTML. Abgesehen davon: In diesem Forum wird Dir kein Quellcode geliefert, sondern nur Tipps und Hilfen, damit Du ihn _selbst_ finden kannst ;-)

                Cheatah

                --
                X-Will-Answer-Email: No
                1. Wenn innerhalb von HTML-Code "&irgendwas;" notiert wird, ersetzt dies der Browser durch den zugehörigen Wert. Immer. Steht dort also "ä", ist dies ausschließlich im Quellcode relevant - jede Funktion, jede Aktion, jede Übertragung erhält nur noch "ä". Aus exakt diesem Grund ist es beispielsweise bei URLs *absolut unerlässlich*, jedes einzelne "&" durch "&" zu ersetzen.

                  Wenn ich dich richtig verstanden habe, muß ich eine Funktion schreiben, die ein '&' in ein '&' umwandelt.
                  Oder gibt es schon eine solche PHP-Funktion?

                  1. Hallo Tanja,

                    Wenn ich dich richtig verstanden habe, muß ich eine Funktion schreiben, die ein '&' in ein '&' umwandelt.

                    Nein, musst Du nicht, weil es ja

                    Oder gibt es schon eine solche PHP-Funktion?

                    schon gibt, htmlspecialchars()
                    http://www.php.net/manual/de/function.htmlspecialchars.php

                    Das Manual ist sowieso grundsätzlich zu empfehlen :-)
                    Du kannst Dir auch die Offline-Version davon besorgen.

                    Gruss,

                    Vinzenz

                    1. Hi,

                      habe schon einiges probiert, es funktioniert nicht!!!
                      Vielleicht hat mir jemand bitte eine Lösung.

                      Ich gebe es auf.........

                      1. Hi,

                        habe schon einiges probiert, es funktioniert nicht!!!

                        "funktioniert nicht" funktioniert nicht. Fehlerbeschreibung, bitte. Nach Deiner korrekten Schlussfolgerung hast Du eigentlich schon mehr Informationen erhalten, als Du zur Problemlösung brauchst...

                        Cheatah

                        --
                        X-Will-Answer-Email: No
                        1. auf deine dummen Ko. kann man verz.

                          bye

                          1. Hi,

                            auf deine dummen Ko. kann man verz.

                            meinst Du, mit diesem Verhalten kriegst Du hier weniger "dumme" Kommentare von anderen? Hier wird Denken verlangt, Mädchen.

                            Cheatah

                            --
                            X-Will-Answer-Email: No
                            1. Hi Cheatah!

                              Wieder mal ein typischer Dialog. Ich lach mich jedesmal kaputt und irgendwie wußte ich, daß es mit so einem Spruch von dem Mädel endet.
                              Echt geil! Deine Art und Weise zu helfen scheint insbesondere bei Frauen auf Ablehnung zu stoßen. Da Du hier öfter mal was auf´s Dach bekommst wollte ich nur mal sagen: Weiter so!

                              Bis denne...
                              MarkX.

                              1. Hi,

                                Wieder mal ein typischer Dialog.

                                wie Recht Du hast... :-)

                                Ich lach mich jedesmal kaputt und irgendwie wußte ich, daß es mit so einem Spruch von dem Mädel endet.

                                Hm, ich muss ganz ehrlich sagen, dass ich geringfügig überrascht war. Mir schien nur das berühmte "Klick" zu fehlen, welches mit ein wenig Geduld immer kommt. Die Gewissheit, dass sie diese Geduld nicht hat, kam für mich ein wenig plötzlich.

                                Echt geil! Deine Art und Weise zu helfen scheint insbesondere bei Frauen auf Ablehnung zu stoßen.

                                Naja, ob man das nun gerade als "geil" bezeichnen kann... *g*

                                Da Du hier öfter mal was auf´s Dach bekommst wollte ich nur mal sagen: Weiter so!

                                Danke! Ich bin aber schon zu lange mit meiner Art "im Geschäft", als dass ich mich so ganz nebenbei ändern ließe ;-)

                                Cheatah

                                --
                                X-Will-Answer-Email: No