Seite 1 von 1

Problem mit Variablenübergabe (Formulare)

Verfasst: 02.02.2010, 00:06
von Hobby_SEO79
Hallo,

nutze TinyMCE.

Habe zwei Dokumente. In DOK1 existiert ein Formular, indem der User per textarea mittels TinyMCE einen Text eingeben darf. Dieser wird dann an DOK2 übermittelt in Form eines gewöhnlichen HTML-Codes.

Bsp:

Code: Alles auswählen

<p><strong>Das</strong> ist <span style="text-decoration&#58; underline;">ein</span> kleiner <a href="http&#58;//www.example.de">Text</a> zum <span style="color&#58; #ff0000;">testen</span>.</p>
Im DOK2 werden alle Eingaben geprüft. Tritt ein Fehler auf, sendet es die Variablen per input = "hidden" an DOK1 zurück und wird innerhalb des Öffnzngs-und Schließ-Tags von textarea mittels php sichtbar gemacht.

Code: Alles auswählen

<textarea><?php print $variable; ?></textarea>
Problem:
Im Dok2 befindet sich im value-Attribut die per PHP eingeschriebene Variable.

Sieht dann so aus:

Code: Alles auswählen

<input type="hidden" value="<p><strong>Das</strong> ist <span style="text-decoration&#58; underline;">ein</span> kleiner <a href="http&#58;//www.example.de">Text</a> zum <span style="color&#58; #ff0000;">testen</span>.</p>">
Nun kommt aber der HTML-Interpreter durcheinander und scheitert an den speziellen HTML zeichen. Er nimmt es nicht als Variable wahr, sondern als Html-Code im HTML-Code. Er schneidet somit ab einer bestimmten Stelle die Variable ab und interpretiert es als zum Dokument gehörigen Code.

Frage:
Wie kann ich die Variable so codieren/ dekodieren, dass es nicht als HMTL Code erkannt wird. Geht sicher mit so Befehlen wie addslashes oder so? Hab mich damit noch nie beschäftigt mit der Codierung. Weiß jemand Rat?

THX

Verfasst:
von

Verfasst: 02.02.2010, 01:43
von sibastian
Bin mir jetzt nicht ganz sicher, aber ich würde versuchen, die Gänsefüßchen mit \ zu escapen.

Verfasst: 02.02.2010, 02:17
von Kassandra70
Du mußt <, > und die " ersetzen:
https://es2.php.net/htmlentities

Hier gab es mal ein ähnliches Problem, bei Dir kämen halt noch die " hinzu:

https://www.abakus-internet-marketing.d ... t=textarea

Verfasst: 02.02.2010, 10:20
von Mork vom Ork
Kassandra70 hat geschrieben:Du mußt <, > und die " ersetzen:
Und das Und (&) bitte auch. HTML-Grundkenntnisse.
htmlentities
Ich täte lieber htmlspecialchars() einsetzen, diese Funktion beschränkt sich auf die oben genannten HTML-kritischen Zeichen. PHP hat (wie viele Sprachen) üble Probleme mit Zeichenketten, htmlentities() macht unter Umständen mehr kaputt als das es hilft.

Verfasst: 02.02.2010, 12:34
von Kassandra70
da war kein & in seiner Abfrage. Biskin selber denken kann der außerdem auch.

Aber danke für deine Bemerkung über meine HTML-Grundkenntnisse.

Verfasst: 02.02.2010, 13:12
von Hobby_SEO79
Kassandra70 hat geschrieben:Biskin selber denken kann der außerdem auch.
Danke :)

Endlich mal jemand hier, der einen nicht immer als Volldepp betrachtet, wenn man mal was postet was man nicht gleich weiss. Mir reicht ja schon ne Richtung und ein Weg. Den Rest krieg ich schon raus.

Verfasst: 02.02.2010, 22:48
von Mork vom Ork
Kassandra70 hat geschrieben:Biskin selber denken kann der außerdem auch.
Jo, mit Biskin flutscht's besser.
Aber danke für deine Bemerkung über meine HTML-Grundkenntnisse.
Bitte, bitte. Du scheinst von deinen Kenntnissen nicht sonderlich überzeugt zu sein, wenn du meine Bemerkung über seinen Fehler auf dich beziehst. Aber sei's drum, jeder fängt mal klein an :>