我对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类型的帖子,我已经完成了这一点,而这根本不是我想要的。
**这也只是基本代码,我不需要提出如何触摸它的建议,这也只是由于我的睡眠剥夺,代码确实有效。
答案 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)
除了使用MYSQL数据库存储评论外,您还可以向管理员发送有关新评论的电子邮件。