因此,我想检查数据库中是否存在post,但是在重定向方面有一些问题。这是我迄今为止的工作:
echo '<br>';//the $row part tells the DB what post his looking on
echo '<a href="comments.php?post_id='. $row['id'].'">View comments</a>';这是“显示评论”按钮,它将指向您看到帖子注释的部分。
<?php
require_once ('checkp.php');我只需要检查一次后置脚本。
<?php
include ('variables.php');
//connects to DB
$dbc=mysql_connect($host,$user,$pass);
if ($dbc) {
} else {
echo ('Failed to connect to MySql; '. mysql_error());
}
//selects db from MySQl
$sqldb=mysql_select_db('a2318052_blog');
$pid=$_GET['post_id'];
$query1="SELECT * FROM posts_b WHERE id='$pid'";
$sql=mysql_query($query);
if ($sql) {
} else {
echo "cant run query";
}
if (mysql_num_rows($sql) > 0) {
echo "that post does not exist!";
} else {
header ("location: comments.php?post_id='. $pid.'");
}
?>这是一个脚本,它检查一个空结果,然后重定向回来。我相信这里的重定向(头("location: Comms.php?post_id=‘.$pid.“))是有意义的。
发布于 2013-12-19 13:53:15
您将重定向的引号混合在一起:
"location: comments.php?post_id='. $pid.'"应该是
"location: comments.php?post_id=". $pidphp中的点用于连接字符串。在那里,您正在用“并关闭它”打开字符串。
编辑:正如其他人已经注意到的那样,您使用的是查询而不是query1。此外,我想,而不是:
if (mysql_num_rows($sql) > 0) {
echo "that post does not exist!";你还想要别的东西
if (mysql_num_rows($sql) == 0) {
echo "that post does not exist!";发布于 2013-12-19 13:52:04
你可能不想要post_id的单引号.
header ("location: comments.php?post_id=$pid");发布于 2013-12-19 13:57:20
$query1="SELECT * FROM posts_b WHERE id='$pid'";
$sql=mysql_query($query);您使用的是$query而不是$query1。这可能就是问题所在(以及其他用户指出的连接问题)。
还有一些其他的事情,就像我认为您在这里混淆了if/ you语句一样:
if (mysql_num_rows($sql) > 0) {
echo "that post does not exist!";
} else {
header ("location: comments.php?post_id='. $pid.'");
}也许你想倒序?
此外,您应该考虑避免SQL注入!使用$GET变量发送查询非常危险,因为用户可以操作该URL并发送恶意查询。
$pid=$_GET['post_id'];准备好的陈述是理想的,但就目前而言,您可以在$GET变量周围使用字符串。它阻止人们发送你真的不想做的查询。
https://stackoverflow.com/questions/20683399
复制相似问题