php + mysql评论系统

时间:2011-11-15 15:28:07

标签: php mysql html sql

我对php很新,对于那个问题,服务器脚本一般(所以对我来说很容易)
但无论如何,我设法创建了这个,评论系统的前半部分:

<html>
<body>
<form name="Comment" action="InsertComment.php" method="POST">
Name: <input type="text" name="name" /><br>
Comment: <br><textarea style="height: 100px; width: 600px;" name="comment"></textarea><br>
<input id="Special_ID" name="id" value="<?php $unixtime = time(); echo $unixtime; ?>">
<!--^Gathers a unique id^-->
<input type="submit" />
</form>
</body>
</html>

提交后 - >

<?php
$con = mysql_connect("Blaa", "Blaa", "Blaa");
if(!$con) {
die('Could not connect ' . mysql_error());
}
sql_select_db("Comments", $con);
$sql = "INSERT INTO Posts (Name, Comment, ID)
VALUES('$_POST[name]', '$_POST[comment]', '$_POST[id]')";
?>

这正是我想要的,用户输入他们的名字,评论和生成唯一的帖子ID(时间戳),然后全部发送到mysql。
但是现在我发现我怎么能把它发布到另一页... 我假设的是:

if(ID == [the id of that post]) {
//$_GET the mysql stuff
//Post inside a specially made div or something
}

按照这种方式,但我不知道如何将其付诸实践:/ 有任何想法吗? 哦,不建议使用echo类型的帖子,我已经完成了这一点,而这根本不是我想要的。

**这也只是基本代码,我不需要提出如何触摸它的建议,这也只是由于我的睡眠剥夺,代码确实有效。

3 个答案:

答案 0 :(得分:2)

正如@Marc B所说,您首先要使用SQL injection修复mysql_real_escape_string个漏洞。将insert语句更改为

$sql = "INSERT INTO Posts (Name, Comment, ID)
        VALUES('" . mysql_real_escape_string($_POST['name']) . "', '" . mysql_real_escape_string($_POST['comment']) . "', '" . mysql_real_escape_string($_POST['id']) . "')";

要显示评论,请尝试此

$sql = "SELECT Name, Comment, ID
        FROM Posts
        WHERE ID = '" . mysql_real_escape_string($_GET['PostID']) . "'";
$query = mysql_query($sql);

echo "<div id=\"comments_container\">";
while ($row = mysql_fetch_assoc($query))
{
    echo "<div class=\"comment\">";
    echo "<div class=\"name\">" . $row['Name'] . "</div>";
    echo "<div class=\"comment_body\">" . $row['Comment'] . "</div>";
    echo "</div>"
}
echo "</div>";

然后CSS style您的DIV使用IDs and classes

答案 1 :(得分:0)

使用mysql_fetch_object

的示例

在插入MySQL之前请清理你的$ _GET数据,这是一个巨大的注入安全漏洞。

$sql = "SELECT * FROM Posts WHERE id={$id}"
$result = mysql_query($sql);
$obj = mysql_fetch_object($result)
if(is_object($obj))
{
 echo "Welcome " . $obj->Name;
}

答案 2 :(得分:0)

这里给出了一个完整的例子: http://manzur-ashraf.com/code/auto_commenting_system/Automatic_Commenting_System_and_Email_notification_using_PHP_and_MYSQL.htm

除了使用MYSQL数据库存储评论外,您还可以向管理员发送有关新评论的电子邮件。