2011-04-27 59 views
0

所以我得到这个形式:Textfield解析其值时出现问题?

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

回答

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> 
+0

如果该值是HELLO WORLD我的文本字段只显示HELLO ... – Voldemort 2011-04-27 05:07:46

+0

你检查,看看到底是什么getMyValue()将返回?或者发布该函数的源代码,或发布它的* exact *输出,HTML标签和全部。 – BraedenP 2011-04-27 05:09:29

+0

好的,我发布了代码。 – Voldemort 2011-04-27 05:12:09

3

你可以使用htmlspecialchars()

Name: <input type="text" name="txt" 
value="<?php echo htmlspecialchars(getMyValue(),ENT_QUOTES) ?>" /> 

注意如果getMyValue()函数返回单引号或双引号,则输入文本将被破坏。

相关问题