首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查是否存在post

问检查是否存在post
EN

Stack Overflow用户
提问于 2013-12-19 13:47:54
回答 4查看 413关注 0票数 1

因此,我想检查数据库中是否存在post,但是在重定向方面有一些问题。这是我迄今为止的工作:

代码语言:javascript
复制
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>';

这是“显示评论”按钮,它将指向您看到帖子注释的部分。

代码语言:javascript
复制
<?php
require_once ('checkp.php');

我只需要检查一次后置脚本。

代码语言:javascript
复制
<?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.“))是有意义的。

EN

回答 4

Stack Overflow用户

发布于 2013-12-19 13:53:15

您将重定向的引号混合在一起:

代码语言:javascript
复制
"location: comments.php?post_id='. $pid.'"

应该是

代码语言:javascript
复制
"location: comments.php?post_id=". $pid

php中的点用于连接字符串。在那里,您正在用“并关闭它”打开字符串。

编辑:正如其他人已经注意到的那样,您使用的是查询而不是query1。此外,我想,而不是:

代码语言:javascript
复制
if (mysql_num_rows($sql) > 0) {

 echo "that post does not exist!";

你还想要别的东西

代码语言:javascript
复制
if (mysql_num_rows($sql) == 0) {

 echo "that post does not exist!";
票数 1
EN

Stack Overflow用户

发布于 2013-12-19 13:52:04

你可能不想要post_id的单引号.

代码语言:javascript
复制
header ("location: comments.php?post_id=$pid");
票数 0
EN

Stack Overflow用户

发布于 2013-12-19 13:57:20

代码语言:javascript
复制
$query1="SELECT * FROM posts_b WHERE id='$pid'";
$sql=mysql_query($query);

您使用的是$query而不是$query1。这可能就是问题所在(以及其他用户指出的连接问题)。

还有一些其他的事情,就像我认为您在这里混淆了if/ you语句一样:

代码语言:javascript
复制
if (mysql_num_rows($sql) > 0) {

 echo "that post does not exist!";

 } else {

 header ("location: comments.php?post_id='. $pid.'");

 }

也许你想倒序?

此外,您应该考虑避免SQL注入!使用$GET变量发送查询非常危险,因为用户可以操作该URL并发送恶意查询。

代码语言:javascript
复制
$pid=$_GET['post_id'];

准备好的陈述是理想的,但就目前而言,您可以在$GET变量周围使用字符串。它阻止人们发送你真的不想做的查询。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20683399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档