У меня есть реализация TinyMCE на моем веб-сайте, которая прекрасно работает.Но если пользователь вводит специальный символ, такой как «<», запрос, отправленный в мою <strong>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"> 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> ');
}
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 и посмотреть, что происходит, или в других руках, что поступает в скрипт 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.
Предположим, я вставил в TinyMCE фразу " Привет, мир >>> Привет еще раз! ", вот что я вижу:
![enter image description here](https://i.stack.imgur.com/1CKNz.png)
Затем я нажимаю кнопку Сохранить, и я получаю предупреждение номер один: ![enter image description here](https://i.stack.imgur.com/2HcMF.png)
Я нажимаю ОК, и я получаю предупреждение номер два (ответ сервера, что получил php): ![enter image description here](https://i.stack.imgur.com/xQ6Pf.png)
ТАК, ПОЧЕМУ? !!!почему скрипт php (просто и эхо того, что он получает через POST) возвращает обрезанную фразу?Когда появится специальный символ?
Спасибо за любую помощь, которую вы можете мне предложить!