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

Php 如何设置HTML值属性(带空格),php,html,forms,Php,Html,Forms,当我使用PHP设置HTML表单输入元素的值时,只要数据中没有空格,它就可以正常工作 <input type="text" name="username" <?php echo (isset($_POST['username'])) ? "value = ".$_POST["username"] : "value = \"\""; ?> /> 引用它。否则,空间将只是一个属性分隔符,空间之后的所有内容都将被视为元素属性。右键单击webbrowser中的页面并查看源。它不应

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

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

引用它。否则,空间将只是一个属性分隔符,空间之后的所有内容都将被视为元素属性。右键单击webbrowser中的页面并查看源。它不应该是这样的(另请参见语法高亮显示颜色):


正如您所看到的,这根本不是PHP5甚至不是PHP问题。
对于想要成为PHP用户的人来说,必须具备基本的HTML知识

通过使用模板,它看起来更加整洁:

获取数据部件代码:

$username = "";
if isset($_POST['username'])) $username = htmlspecialchars($_POST["username"]);
和模板代码:

<input type="text" name="username" value="<?=$username?>">

只需确保将冒号放在字段后面,例如:

  <option value="'.$row['name'].'">


给你的名字加上一个引号,你会遇到同样的问题:)给你的名字加上一个引号,你会遇到同样的问题:)@Col Shrapnel-这是一个非常琐碎的问题,我已经习惯了做这项工作,所以不想麻烦告诉你,但是,当然……为什么不带一个你最喜欢的框架使用的例子呢?因为这超出了这个简单问题的范围,只会使事情变得过于复杂。他的问题是他没有用双引号括住一个有空格的字符串(正确地编码一个在HTML中有值的属性),解决方案是在它周围加上双引号,使其成为有效的HTML,从而回答了他的问题。你对一些不太重要的事情过于挑剔。感谢您的否决。XSS与此无关。标准要求的编码。即使您在“管理”区域中完全编辑allower HTML,也必须对值进行HTML编码,包括textarea内容。@Col:我在哪里说过XSS与特定问题有关?:)啊,是的,我忽略了。专注于关键词,你知道:)使用短开放标签不是一个好的做法,因为服务器可以禁用它们,但是我建议不要向OP推荐它。@meder-well打开它。没什么大不了的。这就是配置设置的用途。你为什么要这样做?首先使用它是一种不好的做法。如果我管理服务器,我就不会使用PHP了。@meder谁说这是“不好的做法”@meder不,它们在PHP6中没有被淘汰,这只是空话。由这些“最有经验的PHP开发人员”推广。不过我在那里没看到。如果您喜欢fat权威作为证明,ZF将在其模板系统中使用短标记。
<input value="Big Ted">
<input value="<?php echo (isset($_POST['username']) ? htmlspecialchars($_POST['username']) : ''); ?>">
$username = "";
if isset($_POST['username'])) $username = htmlspecialchars($_POST["username"]);
<input type="text" name="username" value="<?=$username?>">
  <option value="'.$row['name'].'">