Wie kann ich das "&" (kaufmännisches und-Zeichen) Zeichen über AJAX?
Will ich senden ein paar Variablen und einen string mit POST-Methode von JavaScript. Ich bekomme den string aus der Datenbank und senden Sie es dann an eine PHP-Seite. Ich bin mit XMLHttpRequest-Objekt.
Das problem ist, dass der string enthält die Zeichen "&" einige Male, und $_POST-array in PHP sieht es wie mehrere Schlüssel.
Ich habe versucht, anstelle des "&" durch "\&" ersetzen() Funktion, aber scheint nicht, etwas zu tun.
Kann mir jemand helfen?
Den javascript-code und der string sieht wie folgt aus:
var wysiwyg = dijit.byId("wysiwyg").get("value");
var wysiwyg_clean = wysiwyg.replace('&','\&');
var poststr = "act=save";
poststr+="&titlu="+frm.value.titlu;
poststr+="§iune="+frm.value.sectiune;
poststr+="&wysiwyg="+wysiwyg_clean;
poststr+="&id_text="+frm.value.id_text;
xmlhttp.open("POST","lista_ajax.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(poststr);
String ist:
<span class="style2">"Busola"</span>
InformationsquelleAutor candino | 2012-07-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie alsterrunde().
Wird er Flucht alle Zeichen, die nicht auftreten, wörtlich in URLs:
In diesem Beispiel, das kaufmännische und-Zeichen
&
wird ersetzt durch die escape-Sequenz%26
gültige URLs.Ist das genug, um sicher zu entkommen, die Daten oder ist "einfach" genug, um zu vermeiden, das kaufmännische und-Zeichen-Problem?
es ist genug, um richtig zu Kodieren aller Daten. Was meinst du mit "sicher" in diesem Zusammenhang?
Nie bekommt alt. Vielen Dank für diese.
Noch ist nicht alt! Danke!
InformationsquelleAutor Frédéric Hamidi
Möchten Sie vielleicht die Verwendung alsterrunde().
InformationsquelleAutor Wolfram
Müssen Sie die url-escape kaufmännisches und-Zeichen. Verwendung:
Als Wolfram weist darauf hin, das ist schön verarbeitet (zusammen mit allen anderen Sonderzeichen) durch alsterrunde.
InformationsquelleAutor Ned Batchelder
Ramil Amr Antwort funktioniert nur für die & Charakter. Wenn Sie einige andere Sonderzeichen verwenden, sollten Sie das PHP -
htmlspecialchars()
und JS istencodeURIComponent()
.Können Sie schreiben:
- Und auf der server-Seite:
Dadurch wird sichergestellt, dass AJAX übergeben Sie die Daten als erwartet, und dass PHP (in Fall your ' E insreting die Daten in einer Datenbank) stellen Sie sicher, dass die Daten wie erwartet funktioniert.
InformationsquelleAutor Nadav S.
Der bevorzugte Weg ist die Verwendung einer JavaScript-Bibliothek wie jQuery und stellen Sie Ihre Daten als ein Objekt, dann lassen Sie jQuery tun, die Codierung, wie diese:
Wenn Sie nicht verwenden können jQuery (das ist so ziemlich der standard in diesen Tagen), Nutzung alsterrunde.
InformationsquelleAutor Christopher Tokar
Könnte man die Kodierung des string mittels Base64-Kodierung der JavaScript-Seite und dann die Decodierung auf der server-Seite mit PHP (?).
JavaScript (Doku)
PHP (Doku):
InformationsquelleAutor Sirko
Diese schneidet Sonderzeichen.
InformationsquelleAutor user10164982
Können Sie übergeben Sie Ihre Argumente mit Hilfe dieser alsterrunde-Funktion, so dass Sie nicht haben, um sorgen über die übergabe von Sonderzeichen.
ODER
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
InformationsquelleAutor nikhilmeth