Textfield在解析其值时遇到问题?

时间:2011-04-27 04:58:33

标签: php html

所以我得到了这个表格:

<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);

2 个答案:

答案 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>