所以在我們的網站上,我們目前有一個textarea對某些項目進行評論。該網站使用AJAX,這樣用戶可以按下按鈕,看到他們的信息淡入jQuery AJAX POST新行
jQuery的/ AJAX(想象一個Facebook風格的註釋。):
$(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())");
}
此外,我不消毒,因爲它是一個本地副本,我試圖讓這個錯誤的方式。
現在,我遇到了一個嚴重的問題。假設一個用戶只需提交本評論:
我喜歡這個
它出現空當頁面獲取它。我檢查了數據庫,評論留下完全空白。
所以這是一種奇怪的現象。但是,如果我和addslashes到$評論時,它進入數據庫...
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())");
}
前面的註釋保存到數據庫中。
現在這帶來了更多的問題。我嘗試添加像這樣一個換行符,
我喜歡這個
我希望有更多這樣的比賽
其中一期工程,但是當我去試試這個:
我喜歡這個
我希望有更多這樣的比賽
哦,你搖滾
用於提交空白到數據庫中。
最後,在任何評論中添加一個Ampersand提交一個空白。
所以在這一點上,我不知道如何處理我的評論代碼來解決這個問題。任何幫助將被接受,將不勝感激!
這解決了我的主要問題,謝謝!有關如何讓「Ampersand」工作的任何想法? &符後的任何內容被刪除。 – NessDan 2010-01-29 04:08:08
在url中?在Javascript中調用encodeURI並將其發佈到服務器之前 – psychotik 2010-01-29 05:13:24