在输入html内部引用(使用PHP)

时间:2016-04-01 00:41:30

标签: php html input quote

我有类似的东西(代码简化):

<?php
    $var = 'Read "The Book"';
?>

<input type="text" value="<?php echo $var; ?>" />

问题在于输入看起来好像是打印read,当你查看源代码时,你看到它有<input type="text" value="Read "The Book"" />而且它不起作用。

我无法简单地将value="<?php echo $var; ?>"替换为value='<?php echo $var; ?>',因为$var可能有任何价值,如果我这样做,其值为D'Artagnan则为<input type="text" value='D'Artagnan' />试图打印{{1}}。

=(

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

您应该通过将具有特殊含义的字符转义到各自的HTML实体来清理所有输出。您可以使用htmlspecialchars在html上下文中执行此操作。

<input type="text" value="<?php echo htmlspecialchars($var); ?>" />

因此,可以避免XSS攻击。