0

假设我有一个名为comments.php. 在其中我有这样的一行:

$post_id = $_GET['id']; 
$result = mysqli_query($con,"SELECT * FROM comments WHERE post_id = $post_id"); 

$post_id是实际条目的 id。

如果我回$post_id显它会显示条目的编号,那没有问题。

还有一个文件叫comment_send.php.

我想在其中发送评论以及实际条目的 id,以便评论知道它们属于哪里。

$post_id = $_GET['id'];
$result = mysqli_query($con,"SELECT * FROM comments WHERE post_id = $post_id"); 
$sql="INSERT INTO comments (comment, post_id) VALUES ('$_GET[comment]','$post_id')";

但是,当我点击提交按钮时,我得到了这个:Notice: Undefined index: id

我不明白这个问题,因为comments.php一切正常,但如果我将相同的部分移动到另一个文件中,它会失败。有谁知道我的问题可能是什么?

是的,评论到达数据库,编号为 0,而不是条目编号。

4

2 回答 2

0

您使用表单将数据从客户端提交到服务器,对吗?检查您在表单上的操作。它是 POST(如果您正在更新数据库,它应该是)?如果是,请更改$post_id = $_GET['id'];$post_id = $_POST['id'];

作为故障排除工具,我通常会echo('<pre>'.print_r($_REQUEST,1).'</pre>');在页面顶部添加类似的内容。然后,您可以找出要发送到服务器的数据类型。然后,当您执行 SQL 语句时,请务必回显查询以查看它是什么。

此外,当您对 SQL 注入开放时,请清理您的数据。

于 2013-04-10T20:27:51.970 回答
0

您似乎没有将“id”传递给您的comment_send.php 页面。将它与您的评论一起传递,或者将其保存为上一页上的 $_SESSION 变量。

于 2013-04-10T20:28:21.997 回答