Так что на нашем сайте у нас в настоящее время есть текстовая область для комментирования определенных элементов. Сайт использует AJAX, поэтому пользователь может нажать кнопку и увидеть, как исчезает его сообщение (представьте комментарий в стиле Facebook.)
JQuery / AJAX:
$(function() {
$("input#comment_submit").click(function() {
var comment = $("#comment_box").val();
var dataString = 'comment=' + comment;
$.ajax({
type: "POST",
url: "app.php?id=<?php echo $id; ?>",
data: dataString,
success: function() {
$("textarea#comment_box").attr("disabled", "disabled")
$("input#comment_submit").attr("disabled", "disabled").val("Comment Submitted!");
$("#comments").prepend("<div class=\"comment new\"></div>");
$(".new").prepend("<a href=\"profile.php?username=<?php echo $_SESSION['username']; ?>\" class=\"commentname\"><?php echo $_SESSION['username']; ?></a><p class=\"commentdate\"><?php echo date("M. d, Y", time()) ?> - <?php echo date("g:i A", time()); ?></p><p class=\"commentpost\">" + comment + "</p>").hide().fadeIn(1000);
}
});
return false;
});
});
PHP:
if (isset($_POST['comment']))
{
$username = $_SESSION['username'];
mysql_query("INSERT INTO appcomments (app_id, username, comment, date) VALUES ('" . $id . "', '" . $username . "', '" . $comment . "', NOW() )");
}
Кроме того, я не занимаюсь дезинфекцией, потому что это локальная копия, и я пытаюсь устранить эту ошибку.
Теперь у меня серьезная проблема с этим. Скажем, пользователь просто отправляет этот комментарий:
Мне понравилось
Он появляется пустым, когда страница его получает. Я проверил базу данных, и комментарий остался совершенно пустым.
Так что это странное явление. Однако, если я добавлю косую черту к комментарию $ при входе в базу данных ...
if (isset($_POST['comment']))
{
$username = $_SESSION['username'];
$comment = addslashes($_POST['comment']);
mysql_query("INSERT INTO appcomments (app_id, username, comment, date) VALUES ('" . $id . "', '" . $username . "', '" . $comment . "', NOW() )");
}
Предыдущий комментарий сохраняется в базе данных.
Теперь это вызывает еще больше проблем. Я пытаюсь добавить разрыв строки следующим образом:
Мне понравилось
Надеюсь, таких игр больше
Что работает, но когда я иду и пробую это:
Мне понравилось
Надеюсь, таких игр больше
Ох, и ты рок
Это отправляет пробел в базу данных.
Наконец, добавление амперсанда в любой комментарий приводит к появлению пробела.
Так что на данный момент я понятия не имею, что делать с моим комментарием, чтобы исправить это. Любая помощь будет принята и будет высоко оценена!