【发布时间】:2017-06-28 17:59:27
【问题描述】:
我正在创建一个包含“问题”内容的小型在线网站。这是我收集的代码:
<?php
$issue_sql = "SELECT * FROM issues WHERE id = '$id'"; // From URL
$issue_res = mysqli_query($con, $issue_sql);
while($issue = mysqli_fetch_assoc($issue_res)){
$issue_id = $issue["id"];
$issue_added = $issue["added"];
$issue_content = $issue["content"];
$issue_endorsed = $issue["endorsed"];
$issue_year = date("Y", strtotime($issue_added));
$issue_date = date("l jS F, Y", strtotime($issue_added));
}
?>
而且我想display 仅当背书存在时(在这种情况下它确实存在)。所以我的代码是:
<?php
if($issue_endorsed === 1){
$endorsed_sql = "SELECT article FROM issue_endorsed WHERE id = '$issue_id'";
$endorsed_res = mysqli_query($con, $endorsed_sql);
while($endorsed = mysqli_fetch_assoc($endorsed_res)){
$endorsed_article = $endorsed["article"];
$display_endorsed = "
<div class=\"section\">
<div class=\"sectionText\">
<b>We Recommend ...</b>
<br>
... $endorsed_article
</div>
</div>
<div class=\"contentDivideSecondary\"></div>
";
}
}else{
$display_endorsed = "Not Here";
};
?>
问题是,当我稍后在 html 代码中 <?php echo display_endorsed; ?> 时,我看到的是 Not Here 而不是实际内容。谁能看出我哪里出错了?
【问题讨论】:
-
您容易受到 SQL 注入的攻击。在 mysqli 或 PDO 中使用准备好的语句
-
你在使用寄存器全局变量吗?
-
你的
$issue_endorsed变量是整数还是字符串? -
但是作为整数还是字符串?用
===很重要,用var_dump告诉 -
@AdamForbis 好吧,我将它从
===更改为==现在工作正常,所以我想那里有问题。谢谢
标签: php