我正在研究一个简单的blogengine,我发现了一个巨大的bug。该用法可以创建一个siple blogpost并使用创建短iframe代码的javascript。这是一个例子:
<iframe width="640" height="510" src="http://www.youtube.com/embed/OMvFPp8dncU"
frameborder="0" allowfullscreen></iframe>
它将整个文本(post text和youtubecode)发送到mysql服务器,它插入的字段是varchar(255)。 但是当它显示视频时,它会显示代码。我已经搜索并阅读了很多次代码以找出错误但我找不到它。
以下是显示帖子的“显示代码”:
<?php
include_once('scripts/MySQL.php');
$sqlCommand = "SELECT id, title, text, date, publisher FROM news WHERE published='1' ORDER BY id
ASC";
$query = mysqli_query($myConnection, $sqlCommand) or die (mysqli_error());
$menuDisplay = '';
while ($row = mysqli_fetch_array($query)) {
$title = $row["title"];
$text = $row["text"];
$date = $row["date"];
$publisher = $row["publisher"];
$news .= '<table width="760" align="center">
<tr>
<td align="left"><h1>' . $title . '</h1></td>
</tr>
<tr>
<td align="left">
<p>
' . $text . '
</p>
</td>
</tr>
<tr>
<td align="left"><h6><b>Published: ' . $date . ' by ' . $publisher . '</b></h6><br /><hr></td>
</tr>
</table>';
}
mysqli_free_result($query);
?>
有人可以帮我找错,并解释为什么它会显示代码而不是视频,请c:
以下是屏幕截图的链接: screenshot 1
答案 0 :(得分:1)
这看起来像是通过将数据插入mysql数据库而创建的问题。您可以尝试使用htmlspecialchars_decode设置$ text以获取原始的html代码:
$text = htmlspecialchars_decode($row["text"]);
答案 1 :(得分:0)
好的,我明白了。
变化:
' . $text . '
要
echo $text;
出于某种原因,它会产生影响。