2011-03-13 69 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:回调。