Sonderzeichen mittels GET an Server schicken - MySQL
Übersicht

![]() |
Der EisvogelBetreff: Sonderzeichen mittels GET an Server schicken - MySQL |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo
Ich möchte eine Zeichenkette bestehend aus Sonderzeichen an einen Server über das HTTP-Protokoll mittels einer GET Abfrage schicken. Die Zeichenkette sieht wie folgt aus: Zitat: ~B¹ Ò .•ЦÞ=v¤Û<s7ª>o ^€ À —ªÊÿ/`
Nur leider will das ganze mal wieder nicht wie ich. Die Zeichenkett kommt nicht an, heißt sie wird nicht richtig in $_GET übertragen. Ich hab das auch schon über den Browser direkt versucht, der die Zeichen ja sogar richtig umwandelt, aber selbst da klappt es nicht. Was muss ich tun, damit ich eine Zeichenkette dieser Art mittels HTTP zum Server bekomme? MfG Der Eisvogel |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
- Zuletzt bearbeitet von Der Eisvogel am Sa, Okt 08, 2011 12:23, insgesamt einmal bearbeitet
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo
Für Binärdaten empfiehlt es sich base64 oder ähnliche Codierungsverfahren zu verwenden, und das muss dann vermutlich nochmal URL-codiert werden. Der oben genannte String entspricht in base64 "fkK5fyDSIC4i0KbeDD12pNsOPHM3qh4+byBerCCQwCAUqsr/L2A=". In einer URL müsste dass dann etwa so aussehen: http://www.url.de?xyz=fkK5fyDS...qsr/L2A%3D Praktische Seite zum codieren/decodieren: http://ostermiller.org/calc/encode.html Der PHP-Code zum decodieren des Wertes: Code: [AUSKLAPPEN] <?php
$wert = base64_decode($_GET['xyz']); ?> |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
OK, Danke dir. Dann werd ich mich da mal ran machen, das anders zu codieren.
EDIT: So, jetzt hat der Server den korrekten String, aber jetzt steh ich schon vor dem nächsten Problem. MySQL spielt nicht mit. Egal, ob ich die Zeichenkette roh, oder escaped in die Abfrage schreibe, keines von beidem funktioniert. Wenn ich aber genau den selben Query den ich in meinem PHP-Skript aufrufe in phpMyAdmin ausführe, komme ich zu einem Ergebnis. Also muss ich mal wieder was falsch machen, aber ich hab keine Ahnung was. Um die Verbindung zur Datenbank aufzubauen benutzt ich mysqli. Die Zeichenkette ist in der Datenbank in einem varchar(255) abgespeichert und hat die Codierung utf8_bin. |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie hast du die Daten für das MySQL-Query in PHP codiert? Mit der Funktion mysqli::real_escape_string()? Damit sollte es laut MySQL- und PHP-Dokumentation auch bei binären Daten ohne Probleme funktionieren.
Beispiele: http://ch2.php.net/manual/en/m...string.php http://stackoverflow.com/quest...into-mysql Ansonsten könnte es evtl. mit der Funktion mysqli::prepare und mysqli::bind_param funktionieren: Code: [AUSKLAPPEN] <?php
/* create a prepared statement */ if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) { /* bind parameters for markers */ $stmt->bind_param("s", $city); /* execute query */ $stmt->execute(); /* bind result variables */ $stmt->bind_result($district); /* fetch value */ $stmt->fetch(); printf("%s is in district %s\n", $city, $district); /* close statement */ $stmt->close(); } ?> |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hatte den String sowohl mir mysqli_real_escape_string, als auch ohne codiert gehabt und beides hatte nicht funtioniert. Inzwischen hab ich mich dazu entschlossen den String einfach in einem anderen Format ab zu speichern der nur aus Punkten und Zahlen besteht. Der ist zwar 4 mal so lang, aber um Speicher geht es mir ja nicht.
Danke dir trotzdem. |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
hamZtaAdministrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wieso speicherst du es nicht einfach wie Jolinah schon vorgeschlagen hat base64 kodiert in der Datenbank? | ||
Blog. |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Weil ich die Funktion dann erst in BMax schreiben müsste, und es ja eigentlich egal ist, wie man es abspeichert. Ich habe jetzt einfach jedes Zeichen durch einen Punkt (.) und dem ASCII-Code als Dezimal Zahl ersetzt. Das ist einfach und reicht für die Zwecke. | ||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group