Я работаю над приложением, где пользователь может создавать шаблоны HTML и сохранять их в базе данных. Шаблоны состоят из разных компонентов, таких как текст, изображение и т. Д. Когда я пытаюсь сохранить текст с апострофом '
он дает мне mysql_error
(очевидно). Поэтому я попробовал mysqli_real_escape_strings
чтобы nulify it.It работал, но я хочу вернуть сохраненный контент для целей редактирования, и апострофа экранируется с помощью \
(slashes). Так что содержимое изменено внутри и больше не является корректным html для редактирования и браузер выдает синтаксическую ошибку.
Я также попытался найти другие функции для экранирования и наткнулся на json_encode
но это не принимается mysql.
Может ли кто-нибудь указать мне на любую функцию, которая будет делать это в php? Пожалуйста, предложите любую функцию, которая выполнила бы эту задачу для меня!
Обновить:
function saveContent(){ var $getContent = $('#mainWrap').clone(); $getContent.find('.textBox, .pictureBox').removeAttr('id'); var saveContent = $getContent.wrap('<div></div>').html(); console.log(saveContent); var getBodyStyle=$('body').attr('style'); console.log('this is body style'+getBodyStyle); var auto="auto"; $.ajax({ url:"auto_save.php", type:"POST", dataType:"text", //data:"txtComp="+saveContent+"&auto="+auto+"&pageId="+pageId+"&webId="+webId+"&userId="+userId+"&bodyStyle="+getBodyStyle, data: {txtComp: saveContent, auto: auto, pageId: pageId,webId:webId,userId:userId,bodyStyle:getBodyStyle} }); }
Я добавляю mysql_real_escape_string
в свой auto_save.php
. Теперь, когда я беру его обратно из БД, я должен передать его переменной javascript, как это.
var getSavedContent = <?php echo json_encode($IdLessContent); ?>;
Это может быть проблемой?
stripslashes()
удаляет косые черты из любой строки и полезна при выводе экранированных данных.
Я считаю, что вам нужно использовать это:
json_encode($IdLessContent, JSON_UNESCAPED_SLASHES);
с частью UNESCAPED_SLASHES, ваши данные должны быть возвращены правильно.