Ich habe einen Chat, der Ajax verwendet, um Nachrichten an den Server zu senden. Mein Problem ist, dass wenn der Benutzer versucht, ein Hashtag zu senden, alles nach dem Hashtag weggelassen wird. Ich sah eine ähnliche Frage, die besagt, dass Kodierung helfen würde. Ich habe versucht, es zu kodieren, aber es verursachte größere Probleme, als es zum php kam. Es fing an, das + -Zeichen als ein Leerzeichen zu zählen und machte die ersten zwei Zahlen, nachdem ein% -Zeichen verschwunden war. Gibt es eine Abhilfe in PHP, oder sollte ich etwas anderes als Codierung versuchen.Wie ein Hashtag in einer Ajax-Anfrage übergeben werden
hier ist das relevante Javascript mit der Kodierung.
ajax.open("GET", "/chatAdd.php?msg=" + encodeURIComponent(message.value) + "&user=" + encodeURIComponent(user) + "&id=" + encodeURIComponent(id));
Und das PHP ich verwendet, um es zu entschlüsseln.
$user = urldecode($_REQUEST["user"]);
$userID = urldecode($_REQUEST["id"]);
$msg = urldecode($_REQUEST["msg"]);
Mögliche Duplikat (http://stackoverflow.com/questions/1734250/Was-ist-das-Äquivalent-von-javascripts-encodeuricomponent-in-php) – Jacob
Ich glaube nicht, dass Sie diese Aufrufe von 'urldecode' brauchen, es sollte automatisch decodiert werden. –