mal*_*nte 7 html php variables input
我从数据库中检索三条信息,一个整数,一个字符串和一个日期.
我回应它们来验证变量是否包含数据.
然后当我使用变量填充页面上的三个输入框时,它们不能正确填充.
以下不起作用:
id: <input type="text" name="idtest" value=$idtest>
Run Code Online (Sandbox Code Playgroud)
是的,变量必须在<?php var?>内,才能看到它.
所以:
id: <input type="text" name="idtest" value=<?php $idtest ?> />
Run Code Online (Sandbox Code Playgroud)
该字段显示/.
当我逃脱报价时,
id: <input type="text" name="idtest" value=\"<?php $idtest ?>\" />
Run Code Online (Sandbox Code Playgroud)
然后显示该字段\"\".
单引号
id: <input type="text" name="idtest" value='<?php $idtest ?>' />
Run Code Online (Sandbox Code Playgroud)
该字段不显示任何内容或空白.
单引号转义,
id: <input type="text" name="idtest" value=\'<?php $name ?>\' />
Run Code Online (Sandbox Code Playgroud)
该字段显示\'\'.
使用正斜杠(我知道这不正确,但要从讨论中消除它),
id: <input type="text" name="idtest" value=/"<?php $name ?>/" />
Run Code Online (Sandbox Code Playgroud)
该字段显示/"/".
双引号,转义双引号,仅在左侧转义双引号等不起作用.
我可以将输入框设置为字符串.我没有尝试使用会话变量,因为我宁愿避免这样做.
我在这里错过了什么?
ick*_*fay 36
尝试这样的事情:
<input type="text" name="idtest" value="<?php echo htmlspecialchars($name); ?>" />
Run Code Online (Sandbox Code Playgroud)
也就是说,除了防止XSS攻击之外,与thirtydot建议的相同.
您也可以使用<?=语法(请参阅注释),尽管这可能不适用于所有服务器.(它由配置选项启用.)
你需要,例如:
<input type="text" name="idtest" value="<?php echo $idtest; ?>" />
Run Code Online (Sandbox Code Playgroud)
该echo函数实际上是输出变量的值.