htmlspecialchars()
对于数组?我正在开发一个小应用程序,用于向数据库添加表,通过html打印它们,并允许通过隐藏的表单按钮删除这些表。
?addjoke
的错误。错误位于HTML文件的第19行。我在上面和下面用注释标记标记了第19行。
我还在PHP代码块下面附加了PHP Controller以供参考。
之下$jokes
数组位于“// *****显示DB ***** //。”
我刚刚更改了只选择一个表到两个表,我不得不将mysqli_fetch_array
代码更改为仅调用joketext
表(仅用于打印行)到joketext
AND { {1}}(id
用于删除id
- 导致此问题出现的功能。)
所以这段代码:
joketext
迫使我改变:
while ($row = mysqli_fetch_array($result))
{
$jokes[] = array('id' => $row['id'], 'text' => $row['joketext']); // Changed from just $row['joketext'] to now both tables.
}
以
<p><li><?php echo htmlspecialchars($joke, ENT_QUOTES, 'UTF-8'); ?> -
我理解的其实是一个数组,因为如果没有它,没有其他方法可以调用它们吗?我是新手,所以我不明白为什么<p><li><?php echo htmlspecialchars($joke['text'], ENT_QUOTES, 'UTF-8'); ?> -
只能用于字符串...我错过了什么?
htmlspecialchars()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>List of Jokes</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Slabo+27px">
</head>
<body>
<div id="mainContainer">
<div id="contentContainer">
<div class="headerItem">Here are all the jokes in the database:</div>
<div id="addJoke">+ <a href="?addjoke">Add Joke</a></div>
<ol>
<?php foreach ($jokes as $joke): ?>
// ***** LINE***** 19 //
<form action="?deletejoke" method="post">
// ***** LINE***** 19 //
<p><li><?php echo htmlspecialchars($joke['text'], ENT_QUOTES, 'UTF-8'); ?> -
<input type="hidden" name="id" value="<?php echo $joke['id']; ?>">
<input type="submit" value="Delete"></li></p>
</form>
<?php endforeach; ?>
</ol>
</div>
<div id="footer">
<p><a href="/php/day%207%20code/before/addjoke/">IDJB Home</a> - <a href="?addjoke">Add Joke to IDJB</a> - <a href="#">Sitemap</a></p>
<p>© <?php echo date("Y") ?> Internet Joke Database</p>
</div>
</div>
</body>
</html>
我意识到我的一些代码是旧的或折旧的。我开始从一本较旧的书中学习,我想在完成更高级的OOP编程之前,我将完成旧版应用程序的上下文。
感谢您帮助我学习。
答案 0 :(得分:0)
我是新手,所以我不明白为什么htmlspecialchars()只能用于字符串...我错过了什么?
你必须遍历数组并转义其中的字符串:
foreach($arr as &$v)
$v = htmlspecialchars($v);
现在,您已将数组中的每个值转义为。