Entwickler-Ecke
Off Topic - PHP - Anführungszeichen in einer Textarea
jakobwenzel - So 17.07.05 13:52
Titel: PHP - Anführungszeichen in einer Textarea
Wenn in einer HTML-Datei ein Formular mit einer Textarea ist, welches per POST verschickt wird, kommen Anführungszeichen als \" an. Wie kann ich aus \" wieder " machen?
Hier mal ein Beispielcode:
Senden.html
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| <html> <head> <title>Senden</title> </head> <body> <form action="Empfang.php" METHOD=POST name="formular"> <textarea name="text">"Test"</textarea> <input type="submit"> </form> </body> </html> |
Empfang.php
1: 2: 3: 4:
| <?php $zeile=$_POST["text"]; echo $zeile; ?> |
(Ausgabe: \"Test\")
Wieso macht er das? Und wie kann man das Abstellen?
P.S.: Ich benutze Apache 2.0.48 mit PHP 5.0.4
Moderiert von
Christian S.: code-Tags hinzugefügt.
DaRkFiRe - So 17.07.05 14:09
$zeile = strreplace("\\\"","\"",$zeile);
aus \\\" wird dann \"
und aus \" wird "
Das wird ersetzt - et voilà.
GTA-Place - So 17.07.05 14:17
Das wird vor allem aus Sicherheitsgründen gemacht.
Stell dir vor, dein Eintrag in die DB lautet:
Quelltext
1:
| mysql_query("INSERT INTO my_gb (name, text) VALUES ('". $name ."', '". $text ."')"); |
Das könnte dann so aussehen:
Quelltext
1:
| mysql_query("INSERT INTO my_gb (name, text) VALUES ('GTA-Place', 'Hallo')"); |
Aber auch so:
Quelltext
1: 2: 3: 4:
| mysql_query("INSERT INTO my_gb (name, text) VALUES ('Hacker', 'bla')"); $sql = mysql_query("SELECT * FROM forum_user"); while ($result = mysql_fetch_assoc($sql)) echo($result['user_name'] .' - '. $result['user_pw']); |
(was gehighlightet ist, ist der im GB (oder sonstwo) eingetragene Text)
Und was würde der Hacker bekommen? Alle User + Passwörter. Und das wollen wir ja nicht.
Deswegen werden ', ", etc. geparst.
StefanH - So 17.07.05 14:32
jakobwenzel hat folgendes geschrieben: |
Wenn in einer HTML-Datei ein Formular mit einer Textarea ist, welches per POST verschickt wird, kommen Anführungszeichen als " an. Wie kann ich aus " wieder " machen?
|
mit
stripslashes($_POST['text']) :)
jakobwenzel - So 17.07.05 14:36
Auf die Idee mit str_replace bin ich auch schon gekommen, sogar mit den gleichen Parametern, aber es hat irgendwie nicht funktioniert. Aber das mit Stripslashes geht! Danke!! :D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!