Übergabe von Anführungszeichen in einem Formular
Katy M.
- php
0 Thomas Luethi0 Andreas0 Tom0 Thomas Luethi0 Katy M.
0 wahsaga
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
Hallo,
Die Formularseiten funktionieren mit Text wunderbar.
Leider nicht mit Anführungszeichen.
Ideen/Stichworte:
* Codiere die " als "
* htmlentities()
* stripslashes()
Gruesse,
Thomas
Hi,
versuch' mal die " durch " zu ersetzen - das sollte helfen.
Ciao
Andreas
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
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
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
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
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!
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
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";
Hallo,
Aber die \ bleiben immer noch sichtbar!?
Ich sagte doch schon: stripslashes()
http://www.php.net/manual/de/function.stripslashes.php
Gruesse,
Thomas
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
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
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
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
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
wie wird der text von der textarea ins hidden field "transportiert"?
methode: POST
meinst du dies?
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
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
Bitteschööön.