Hello,
gute Anregung, meinen String nicht auf gut Glück zu versenden, auch wenn ich einigermaßen sicher bin, keine Sonderzeichen zu versenden.
Aber was bei diesem Projekt stimmt, kann beim nächsten schon anders sein.Sven - was ist mit Zeichen wie
&
oder=
? Machen die auch Probleme? Welche Java-Lib verwendest Du zum senden? Erzeugst Du den POST-Body für den Request an PHP selbst oder macht das die Lib für Dich?Wenn
&
oder=
problematisch sind und du den Body selbst erzeugst, dann sieh zu, dass Du in Java ein Gegenstück zur JavaScript-Methode encodeURIComponent findest.Was hältst/haltet Du/Ihr davon, JSON zu verwenden?
Java:
// Create a HashMap to store the key-value pairs Map<String, String> data = new HashMap<>(); data.put("name", "Sven"); data.put("age", "30"); data.put("city", "Berlin"); // Convert the HashMap to a JSON string String jsonString = new Gson().toJson(data); // Now send the JSON string to the PHP file
Wird dieser JSON-String passend zum Transfer encoded?
PHP:
// Get the JSON string from the request body or query parameter $jsonString = $_POST['jsonString']; // Decode the JSON string into an array $data = json_decode($jsonString, true); // Access the data by key $name = $data['name']; $age = $data['age']; $city = $data['city'];
// Check, if a JSON string has been posted
if (isset($_POST['jsonString']))
{
// Decode the JSON string into an array
$data = json_decode($_POST['jsonString'], true);
## hier exception einbauen:
if(false === $data)
{
exit('error');
}
else if(isset($data['name'], $data['age'], $data['city']))
{
// Continue with $data array elements
## bitte nicht umkopieren, sondern mit den Array-Elementen
## in Sdata weiterarbeiten!
}
}
Und warum nicht sofort ein passend codiertes Array an PHP posten?
Und für die Eintragung per SQL in eine Datenbank muss dann wieder das passende Escaping pro Element beachtet werden. Dann sollte es auch mit den Steuerzeichen, Anführungsstrichen, Backslashes, usw. klappen oder man benutzt gleich ein blockpuffer-orientierte Methode dafür, wie PDO (also nicht die Textschnittstelle!).
Glück Auf
Tom vom Berg