Immer wenn ich php/mysql/jquery verwende, um Daten hin und her zu übertragen, verwende ich am Ende die folgende Kombination von Codierungen/Escapezeichen, und es scheint für mich gut zu funktionieren.
1) Sie müssen hier nichts tun, es sei denn, Sie senden eine URL (ich denke, dies ist nur für GET-Anforderungen) - aber wenn Sie eine URL senden, müssen Sie encodeURIComponent (url) verwenden, die ordnungsgemäß maskiert wird die &'s und Sonderzeichen in der URL (mehr dazu hier ). ).
2) Verwenden Sie mysqli und gebundene Parameter, es erledigt das ganze Escape für Sie (lesen Sie darüber hier )
3) Ich verwende dies immer, wenn ich Daten in eine HTML-Datei echoe:
<?php
htmlspecialchars($string_to_escape, ENT_QUOTES, 'UTF-8', false);
?>
Dadurch werden alle Sonderzeichen richtig codiert (falsch steht für „keine doppelte Codierung“). Stellen Sie außerdem sicher, dass Sie die richtigen UTF-8-Meta-Tags oben auf Ihren HTML-Seiten haben.
4) Die Verwendung von json_encode sollte Ihre Daten immer richtig maskieren, aber ich würde den Code aus #3 verwenden, nur um sicherzugehen. Aber Sie werden es wahrscheinlich nur brauchen, wenn Sie Daten mit Sonderzeichen zurückgeben.