ajax リクエストを介してページから mysql に html5 データを保存し、それを ajax で取り戻そうとすると問題が発生します。次のようないくつかの JavaScript をトリガーする HTML 属性
<onload>
またはデータベースに<iframe>
そのまま保存されるため、ロード時にページが台無しになります。<on<x>load>
<if<x>rame>
私が達成しようとしていることの簡単な説明は次のとおりです。登録ユーザーが自分のサイトのテキストを強調表示し、ページを更新したり再ログインしたりした後に強調表示されたテキストを取得できるようにしたい.
これまでに行ったこと: ユーザーがテキストを強調表示できるようにする JavaScript ハイライト ライブラリをサーバーに実装しました。それはうまくいきます。
ボタンをクリックすると、これらのデータは jquery ajax post を介して mysql に保存されます。ここで特定のコードを参照してください:
Javascript
$(document).ready(function() {
//saves highlighted data in var "highlighted"
$('#savehighlights').click(function() {
var highlighted = $('.tabcontent.content1').html();
//send data to server
$.ajax({
url: 'highlight.php',
type: 'POST',
data: {highlighted: highlighted},
dataType: 'html',
success: function(result) {
console.log(result);
}
});
});
mysql へのデータの保存は一般的に機能しますが、プロセスを通じて特定のコマンドが無効になっているように見えます (たとえば、 5onload
になりますon<x>load
)。データは longtext および utf8_bin としてデータベースに保存されます。私もブロブを試しましたが、問題は残っています。また、「テキスト」や「スクリプト」など、Ajax でさまざまなデータ型を試しました。「テキスト」でも同じ問題が発生し、「スクリプトはまったく機能しません。ajax .serialize 関数も試しましたが、うまくいきませんでした。
私はそれについて何をすべきか本当にわかりません.Ajaxまたはmysqlの何が問題を引き起こしているのかわかりません. stackoverflow の多くの記事 (通常は常に答えが得られます) を含め、Web で答えを探していましたが、今回は行き詰まりました。正しい質問を探すのに十分な知識がないか、今回は運が悪かっただけです。ですから、どんな助けでも大歓迎です。
もう少し情報を追加するように要求されました。ここにあります:
私は実際に XAMP を使用してローカル サーバー (localhost) でこれを行っているので、セキュリティの問題は問題になりませんよね? 少しでもお役に立てれば、私は Tiki Wiki CMS でこれを行っています。ajax (highlight.php) を介して呼び出される php スクリプトは次のとおりです。
require_once ('tiki-setup.php');
include_once ('lib/highlights/highlightslib.php');
$highlighted = $_POST['highlighted'];
$highlightslib->save_highlights($user, $highlighted);
Highlightslib ライブラリは次の場所にあります。
if (strpos($_SERVER["SCRIPT_NAME"], basename(__FILE__)) !== false) {
header("location: index.php");
exit;
}
class HighlightsLib extends TikiLib
{
function save_highlights($user, $highlighted) {
$saveHighlights = $this->table('tiki_user_highlights');
$saveHighlights->insert
(array(
'user' =>$user,
'highlightId' =>'',
'data' =>$highlighted,
'created' =>$this->now,
)
);
return true;
}
};
$highlightslib = new HighlightsLib;