2011-03-13 71 views
0

我有一個Flash遊戲網站,我希望我的用戶能夠在沒有刷新頁面的情況下發布評論。 有人能給我一個例子嗎?AJAX Jquery的評論

function addcomment($uid, $gid, $text){ 
    connect(); 
    $date = date("Y-m-d H:i:s"); 
    mysql_query("INSERT INTO `comments` (`uid`, `gid`, `text`, `date`) VALUES ($uid, $gid, '$text', '$date'"); 
} 

回答

1

首先,你不應該把SQL代碼放到你的視圖頁中。

嘗試使用this plugin來管理ajax表單提交。

+0

你是什麼意思「你不應該把SQL代碼放入你的視圖頁面」? – Alice 2011-03-13 00:06:25

+1

@David - 如果您要將SQL代碼放入您的視圖頁面(或者,在這種情況下是您的JavaScript),則會造成巨大的安全漏洞。任何有權訪問您的網站的人都可以輕鬆地檢索JavaScript,並且他們可以重寫SQL以執行他們想要的任何操作。 (想想,DROP ALL類型的語句。)從安全角度來看,這非常糟糕。 – JasCav 2011-03-13 00:11:04

+0

所以基本上,我不能有一個窗體,運行一個SQL查詢,而不會中斷頁面​​上的遊戲? 就像我說的使用方法get ajax和addslashes然後運行查詢... – Alice 2011-03-13 00:13:19

1

提交通過jQuery形式往往是越簡單

<input type=submit value="submit" 
onClick="$.post('save_comment.php', $('form#example').serialize())"> 

這會觸發一個普通的POST請求,並在save_comment.php腳本,你只需要添加:

<?php 
    addcomment($_SESSION["uid"], $_POST["gid"], $_POST["comment_field"]); 

請注意,您需要mysql_real_escape_query()圍繞這裏的變量 - 或者在您的addcomment()函數中(它所屬的地方)。

如果您的評論保存腳本返回您想要注入html頁面的內容(例如格式化的註釋或錯誤消息字符串),請添加jQuery success:回調。