所以我得到了这个表格:
<form action="welcome.php" method="post">
<input type="hidden" name="secret" value=<?php echo getMyValue() ?> />
Name: <input type="text" name="txt" value=<?php echo getMyValue() ?> />
<input type="submit" />
</form>
你看到文本输入元素?该值是getMyValue()
的结果。这样的结果是一行包含HTML标签,如<b> <i>
等...而且,显然,当文本包含此类标签时,我的文本输入会中断。如果文本没有这样的标签,一切都没问题。
修复此解析问题的任何想法? (不知道是否实际解析了问题......)
修改 这是函数的代码:
function getMyValue()
{
$con = mysql_connect("myConnectionDataStuff");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("myUsername", $con);
$result = mysql_query("SELECT * FROM DATA");
while($row = mysql_fetch_array($result))
{
return $row["TEXT"];
}
mysql_close($con);
答案 0 :(得分:3)
您可以使用htmlspecialchars()
Name: <input type="text" name="txt"
value="<?php echo htmlspecialchars(getMyValue(),ENT_QUOTES) ?>" />
请注意,如果getMyValue()函数返回单引号或双引号,则输入文本将被破坏。
答案 1 :(得分:3)
您的价值应该用引号括起来。如果将它括在引号中,它将正确输入所有内容,但不会解析标记;它们只是在文本字段中“按原样”。
请改用此代码:
<form action="welcome.php" method="post">
<input type="hidden" name="secret" value="<?php echo getMyValue() ?>" />
Name: <input type="text" name="txt" value="<?php echo getMyValue() ?>" />
<input type="submit" />
</form>