如何设置HTML值属性(带空格)

当我使用PHP设置HTML表单输入元素的值时,只要数据中没有空格,它就可以正常工作。

<input type="text" name="username"

<?php echo (isset($_POST['username'])) ? "value = ".$_POST["username"] : "value = \"\""; ?> />

如果我输入“ Jonathan”作为用户名,则按预期将其返回给我。但是,如果输入“ Big Ted”,则在提交表单时只会重复返回“ Big”。

注意该$_POST["Username"]变量是正确的。当我使用PHP回显它时,它设置为“ Big Ted”。

回答:

引用它。否则,空格将变成属性分隔符,空格之后的所有内容都将被视为元素属性。右键单击Web浏览器中的页面并查看源代码。它不应看起来像这样(另请参见语法突出显示颜色):

<input value=Big Ted>

而是这个

<input value="Big Ted">

更不用说当有人用引号引起来时,这仍然会中断(因此您的代码对XSS 攻击很敏感)。使用htmlspecialchars()

Kickoff example:

<input value="<?php echo (isset($_POST['username']) ? htmlspecialchars($_POST['username']) : ''); ?>">

以上是 如何设置HTML值属性(带空格) 的全部内容, 来源链接: utcz.com/qa/427639.html

回到顶部