2010-01-29 54 views
1

所以在我們的網站上,我們目前有一個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提交一個空白。

所以在這一點上,我不知道如何處理我的評論代碼來解決這個問題。任何幫助將被接受,將不勝感激!

回答

1

嘗試將其推入DB

+0

這解決了我的主要問題,謝謝!有關如何讓「Ampersand」工作的任何想法? &符後的任何內容被刪除。 – NessDan 2010-01-29 04:08:08

+0

在url中?在Javascript中調用encodeURI並將其發佈到服務器之前 – psychotik 2010-01-29 05:13:24

1

相反

數據前使用mysql_real_escape_string:dataString,

數據:{評論:評論},

如果您想繼續按照現在的方式進行操作,請參閱encodeURIComponent()

+0

謝謝!看着它,這只是治療:D! – NessDan 2010-01-29 04:22:27