在文本输入值=语句中使用PHP变量

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建议的相同.

您也可以使用<?=语法(请参阅注释),尽管这可能不适用于所有服务器.(它由配置选项启用.)


thi*_*dot 6

你需要,例如:

<input type="text" name="idtest" value="<?php echo $idtest; ?>" />
Run Code Online (Sandbox Code Playgroud)

echo函数实际上是输出变量的值.

  • 从技术上讲,"回声"是一种陈述,而不是一种功能. (2认同)
  • 你当然是正确的,但对这个问题进行区分似乎并不重要. (2认同)