Ungewollte Umwandlung
Alex
- html
0 suit0 Der Martin0 Alex
0 dedlfix
Grüße!
Evtl. weiß hier jemand Rat.
Ich habe eine Textarea, dessen Inhalt mittels AJAX ausgelesen wird und an eine andere Seite weitergegeben wird. Die neue Seite macht dann eine SQL Abfrage aus dem Inhalt der Textarea und postet mir den Inhalt in ein DIV. Funzt auch soweit prima.
Ist allerdings in der Eingabe z.B. ein %06 oder sonst was mit % vorhanden, was ja bei SQL nicht so unüblich ist, erhalte ich seltsame Kästchen und andere Zeichen, die mir natürlich meine Abfrage versauen...
Hab schon htmlentities, utf8_decode (encode) oder sonstige Funktionen probiert... Wie kann ich meiner Seite sagen, sie soll gar nix umwandeln?
Danke & Gruß
Alex
Hab schon htmlentities, utf8_decode (encode) oder sonstige Funktionen probiert... Wie kann ich meiner Seite sagen, sie soll gar nix umwandeln?
Hallo,
Ich habe eine Textarea, dessen Inhalt mittels AJAX ausgelesen wird und an eine andere Seite weitergegeben wird. Die neue Seite macht dann eine SQL Abfrage aus dem Inhalt der Textarea und postet mir den Inhalt in ein DIV. Funzt auch soweit prima.
die Beschreibung war mit Sicherheit umständlicher als nötig. ;-)
Ist allerdings in der Eingabe z.B. ein %06 oder sonst was mit % vorhanden, was ja bei SQL nicht so unüblich ist, erhalte ich seltsame Kästchen und andere Zeichen, die mir natürlich meine Abfrage versauen...
Selbstverständlich, wenn du das '%' nicht korrekt codierst.
Hab schon htmlentities, utf8_decode (encode) oder sonstige Funktionen probiert...
2 Stunden ausprobieren können Ihnen 10 Minuten Handbuchlesen sparen.
Lies: Du sollst nicht probieren, sondern nachdenken und nachlesen: Du überträgst Daten im Kontext einer URL (als GET- oder POST-Request). Was haben HTML-Entities oder UTF-8 mit dem Problem zu tun?
Wie kann ich meiner Seite sagen, sie soll gar nix umwandeln?
Soll sie ja, muss sie sogar: Zeichen, die in URLs eine Sonderbedeutung haben (insbesondere ':', '/' und '/'), sowie Zeichen, die in URLs nicht erlaubt sind (z.B. Steuerzeichen), müssen diesem Kontext entsprechend maskiert werden.
Der Server geht beim Empfang davon aus, dass die Daten korrekt URL-codiert sind. Wenn er die Zeichenfolge '%06' vorfindet, decodiert er das korrekt zu Ctrl-F. Das ist vermutlich nicht das, was du gemeint hast.
Und wenn er '%26' findet, macht er selbstverständlich wieder ein Prozentzeichen daraus.
So long,
Martin
Und wenn er '%26' findet, macht er selbstverständlich wieder ein Prozentzeichen daraus.
Danke für die Infos (an alle).
Ich habs so gelöst:
statement = statement.replace(/\%/g,'%25');
funzt, danke
Hi!
Ist allerdings in der Eingabe z.B. ein %06 oder sonst was mit % vorhanden, was ja bei SQL nicht so unüblich ist, erhalte ich seltsame Kästchen und andere Zeichen, die mir natürlich meine Abfrage versauen...
Beschreibe doch bitte genau, in welcher Reihenfolge du mit den Daten welche Verarbeitungsschritte vornimmst und vor allem, wie die Daten vor jedem Verarbeitungsschritt aussehen. Mit der jetzigen Formulierung kann man nur antworten, dass du etwas falsch machst und dir generelle Literatur empfehlen, was suit schon getan hat.
Welcher Zusammenhang besteht deiner Meinung nach zwischen der Eingabe von Zeichen und dem einige Schritte später stattfindenden SQL und was hat das mit dem % oder %xx zu tun?
Wie kann ich meiner Seite sagen, sie soll gar nix umwandeln?
Indem du stets die Strings gemäß den Syntaxregeln des Systems notierst, in die du sie übergibst. Das betrifft vor allem die Werte, die du nicht direkt siehst, weil sie sich in einer Variable verstecken. Du musst die Daten sozusagen kontextgerecht selbst umwandeln, damit sie dir das System nicht falsch interpretierend irgendwie umwandelt.
Lo!