Hiho,
Hi,
$antwort = addslashes(htmlentities(rawurldecode($_REQUEST['antwort'])));
warum dekodierst Du einen dekodierten Wert?Weil ich keine %E4 haben will, sondern ä.
Du hast kein %E4, es sei denn, dies war der ursprüngliche, _un_kodierte Wert. Wenn jemand in ein Formularfeld "%E4" eingibt, was hat das dann mit "ä" zu tun?
Stimmt. Aber wenn jemand "%E4" in das Formular eingibt, dann bekommt er das auch wieder. Und kein "ä". Was ich will ist ja nur ein "ä" in "ä" unwandeln. Aber über mehrer Schritte.
1. Eingabe vom User: "ä"
2. Kodieren mit URIencode -> "%E4"
3. Verschicken
4. Decodieren von "%E4" in "ä"
5. Codieren von "ä" in "ä"
6. Eintrag in die DB
Wenn ich das Skript jetzt aber "händisch" aufrufe, also per
test.php?antwort=L%E4ufer%20und%20K%E4se%20k%F6nnenAlso nicht
test.php?antwort=L%25E4ufer%2520und%2520K%25E4se%2520k%25F6nnenWie lautet das Ergebnis Deines o.g. PHP-Codes?
"Läufer und Käse können"Das glaube ich nicht, denn dann wäre htmlentities() kaputt.
Stimmt. Die Ausgabe ist schon "Läufer und Käse können". Aber mein Browser schreibt halt "Läufer und Käse können"
Ich hab jetzt aber schon eine Lösung gefunden. Die ist sicher nicht schön; aber sie tut: [...]
Geht zurück auf die Methode "wildes rumprobieren".Ja, das ist alles andere als planvoll. Du hast einen Wert, der genau einmal kodiert wurde, dreimal dekodiert. Ich kenne nur eine Kodierung[1], bei der das zum gewünschten Ergebnis führt: ROT13.
ROT13 kenn ich nicht :) Ich weiß durchaus, dass das nicht planvoll ist. Aber jetzt tut es. Mit planvoll kam ich ja nicht weiter. Codieren und Decodieren alleine hat ja nicht funktioniert.
Cheatah
Gruß
Fabian