我遇到的问题是,我让用户在textarea中输入信息,并将该信息存储在mysql数据库中。允许用户将HTML插入到textarea中,例如:
<ul>
<li>Test</li>
</ul>
但是,我无法理解为什么从数据库中检索的数据显示用户输入的数据,并未显示用户请求的正确HTML格式。
这就是我所拥有的: 显示信息:
<?php
function display ($result) {
if (mysql_num_rows($result) > 0) {
echo "<form action='scripts/submit.php' method='post'>";
echo "<input type='submit' name='post' value='Post'/>";
echo " | ";
echo "<label for='searchDate'>Search Archives By Date:</label>";
echo "<input type='text' name='searchDate'>";
echo "<input type='submit' name='submitDate' value='Search'/>";
echo " | ";
echo "<label for='searchTicket'>Search Archives By Ticket:</label>";
echo "<input type='text' name='searchTicket'/>";
echo "<input type='submit' name='submitTicket' value='Search'/>";
echo "<hr/>";
echo "</form>";
echo "<table border='1' id='resultTable'>";
while($row = mysql_fetch_assoc($result)) {
$replace = str_replace ("\n","<br/>",$row['content']);
echo "<tr>";
echo "<td><span id='boldText'>Entry By:</span> ".$row['user']." | <span id='boldText'>Description:</span> ".$row['description']." | <span id='boldText'>Entry Date:</span> ".$row['date']."</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo "<p>".$replace."</p>";
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo "<form action='scripts/submit.php' method='post'>";
echo "<input type='hidden' name='count' value='$row[count]'/>";
echo "<input type='submit' name='edit' value='Edit'/>";
echo "<input type='submit' name='delete' value='Delete'/>";
echo "</form>";
echo "</td>";
echo "</tr>";
}
echo "</table>";
}
else {
echo "<h3 id='noResults'>Nothing has been posted yet. Click 'Post' to add something to the whiteboard.</h3>";
echo "<form action='scripts/submit.php' method='post'>";
echo "<input type='submit' name='post' value='Post'/>";
echo "</form>";
}
}
?>
添加后置逻辑:
if(isset($_POST['add_post'])) {
$content = mysql_real_escape_string($_POST['content']);
$description = mysql_real_escape_string($_POST['desc']);
$query = "INSERT INTO $table_name (user, description, content)
VALUES ('$_SESSION[logged_in]','$description', '$content')";
$result = mysql_query($query);
session_write_close();
header('Location: ../whiteboard.php');
}
出于某种原因,上面的例子不起作用,但这将是:
<p style="font-weight: 900;">Test</p>
答案 0 :(得分:1)
在使用htmlentities()或nl2br()插入数据库之前尝试解析,并在取回时进行相反的操作。
答案 1 :(得分:0)
如果您正在浏览器中查看数据库条目,您将看到格式化HTML的结果,而不是实际的标记 - 如果您正在使用htmlentities($ result),则会使用htmlentities($ result)。
查看页面来源以查看正在检索的内容,并查看它与您希望看到的内容有何不同。