TinyMCE + JQuery + PHP + AJAX Специальный выпуск символов

У меня есть реализация TinyMCE на моем веб-сайте, которая отлично работает. Но если пользователь вводит специальный символ, например «<», запрос, отправляемый в мою базу данных MySQL, обрезается только тогда, когда появляется специальный символ . Позвольте мне показать вам, что происходит:

Вот как я называю TinyMCE:

tinyMCE.init({ mode : "exact", elements : "e_text", theme : "simple", oninit : "setPlainText", plugins : "paste" }); function setPlainText() { var ed = tinyMCE.get('e_text'); ed.pasteAsPlainText = true; if (tinymce.isOpera || /Firefox\/2/.test(navigator.userAgent)) { ed.onKeyDown.add(function (ed, e) { if (((tinymce.isMac ? e.metaKey : e.ctrlKey) && e.keyCode == 86) || (e.shiftKey && e.keyCode == 45)) ed.pasteAsPlainText = true; }); } else { ed.onPaste.addToTop(function (ed, e) { ed.pasteAsPlainText = true; }); } } 

Не беспокойтесь о том, чтобы найти там ошибку, этот код отображает TinyMCE без ошибок. Тогда у меня есть функция jquery, которая содержит процесс ajax:

  $("#save-btn").click(function() { tinyMCE.triggerSave(); alert($('#e_text').val()); $("#status").html('<img src="css/img/ajax-loader.gif" align="absmiddle">&nbsp;Saving...'); $.ajax({type: "POST", url: "handler.php", data: "e_text="+ $('#e_text').val() + "&e_title="+ $('#extra_title').val(), success: function(server_response){ $("#status").ajaxComplete(function(event, request){ alert(server_response); if(server_response.substring(0,4) == 'Last') { $("#status").html('<img src="css/img/available.png" align="absmiddle"> <font color="#06699e"> '+ server_response +' </font>&nbsp; '); } else { $("#status").html('<img src="css/img/not_available.png" align="absmiddle"> <font color="red">Not saved, please try again later. '+server_response+'</font>'); } }); } }); }); 

Этот вызов handler.php обрабатывает вызов ajax, а затем возвращает результат. Для этой конкретной проблемы я изменяю скрипт php только для того, чтобы распечатать POST var и посмотреть, что происходит, или в других руках, что происходит с PHP-скриптом:

 } elseif(isset($_POST['e_text'])) { $fgmembersite->DBLogin(); echo($_POST['e_text']); mysql_query("INSERT INTO ".table_extra." (id,id_user,title,content) VALUES (NULL,'".$_SESSION['id_of_user']."','".mysql_real_escape_string($_POST['e_title'])."','".mysql_real_escape_string($_POST['e_text'])."') ON DUPLICATE KEY UPDATE title='".mysql_real_escape_string($_POST['e_title'])."', content='".mysql_real_escape_string($_POST['e_text'])."';"); mysql_query("UPDATE ".$fgmembersite->tablename." SET last_update_cv = NOW();"); $result = mysql_fetch_array(mysql_query("SELECT NOW();")); //echo 'Last saved ' . $result['NOW()']; } 

Игнорируйте все, кроме инструкции эха . Возвращаясь к моему коду jquery, вы помните две функции предупреждения? Хорошо, один из них показывает мне данные, возвращаемые TinyMCE, прежде чем отправлять их в php-скрипт, а второй показывает данные, возвращенные данными скриптом php.

Предположим, что я вставляю фразу « Hello world >>> Hello again! » В TinyMCE, вот что я вижу:

введите описание изображения здесь

Затем я нажал Сохранить, и я получил предупреждение номер один: введите описание изображения здесь

Я нахожусь в порядке, и я получаю предупреждение номер два (ответ сервера, какой php получил): введите описание изображения здесь

ТАК, ПОЧЕМУ? !!! почему скрипт php (просто и эхо того, что он получает через POST) возвращает фразу? Когда появляется специальный символ?

Спасибо за любую помощь, которую вы можете мне предложить!

Solutions Collecting From Web of "TinyMCE + JQuery + PHP + AJAX Специальный выпуск символов"