在文本输入 value = 语句中使用 PHP 变量
我从数据库中检索三项信息:一项整数、一项字符串和一项日期。
我回显它们以验证变量是否包含数据。
然后,当我使用变量填充页面上的三个输入框时,它们无法正确填充。
以下内容不起作用:
id: <input type="text" name="idtest" value=$idtest>
是的,变量必须位于 内使其可见。
因此:
id: <input type="text" name="idtest" value=<?php $idtest ?> />
该字段显示 /
。
当我转义引号时,
id: <input type="text" name="idtest" value=\"<?php $idtest ?>\" />
该字段将显示 \"\"
。
使用单引号时,
id: <input type="text" name="idtest" value='<?php $idtest ?>' />
该字段不显示任何内容或显示空白。
使用转义单引号后,
id: <input type="text" name="idtest" value=\'<?php $name ?>\' />
该字段将显示 \'\'
。
使用正斜杠(我知道这不正确,但为了将其从讨论中消除),
id: <input type="text" name="idtest" value=/"<?php $name ?>/" />
该字段显示 /"/"
。
双引号、转义双引号、仅在左侧转义双引号等不起作用。
我可以将输入框设置为字符串。我没有尝试使用会话变量,因为我更愿意避免这样做。
我在这里缺少什么?
I retrieve three pieces of information from the database, one integer, one string, and one date.
I echo them out to verify the variables contain the data.
When I then use the variables to populate three input boxes on the page, they do not populate correctly.
The following do not work:
id: <input type="text" name="idtest" value=$idtest>
Yes, the variable must be inside <?php var ?> for it to be visible.
So:
id: <input type="text" name="idtest" value=<?php $idtest ?> />
The field displays /
.
When I escape the quotes,
id: <input type="text" name="idtest" value=\"<?php $idtest ?>\" />
the field then displays \"\"
.
With single quotes
id: <input type="text" name="idtest" value='<?php $idtest ?>' />
the field displays nothing or blank.
With single quotes escaped,
id: <input type="text" name="idtest" value=\'<?php $name ?>\' />
the field displays \'\'
.
With a forward slash (I know that's not correct, but to eliminate it from the discussion),
id: <input type="text" name="idtest" value=/"<?php $name ?>/" />
the field displays /"/"
.
Double quotes, escape double quotes, escape double quotes on left side only, etc. do not work.
I can set an input box to a string. I have not tried using a session variable as I prefer to avoid do that.
What am I missing here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
尝试这样的操作:
也就是说,与 thirtydot 建议相同,除了防止 XSS 攻击之外。
您还可以使用
语法
(请参阅注释),尽管这可能不适用于所有服务器。 (它是通过配置选项启用的。)
Try something like this:
That is, the same as what thirtydot suggested, except preventing XSS attacks as well.
You could also use the
<?=
syntax (see the note), although that might not work on all servers. (It's enabled by a configuration option.)例如,您需要:
echo
函数是实际输出变量的值。You need, for example:
The
echo
function is what actually outputs the value of the variable.解决方案
您缺少回声。每次您想要将变量的值显示为 HTML 时,您都需要回显它。
注意:根据值的不同,您的 echo 是您用来转义它的函数,如 htmlspecialchars。
Solution
You are missing an echo. Each time that you want to show the value of a variable to HTML you need to echo it.
Note: Depending on the value, your echo is the function you use to escape it like htmlspecialchars.
从 HTML 的角度来看,一切都已经说过了,但要稍微纠正一下 PHP 端的方法,并考虑到 Thirddot 和 icktoofay 的建议:
From the HTML point of view everything's been said, but to correct the PHP-side approach a little and taking thirtydot's and icktoofay's advice into account:
如果您想读取任何创建的函数,我们可以这样做:
If you want to read any created function, this how we do it:
我一直在为我的项目做 PHP,我可以说以下代码对我有用。你应该尝试一下。
I have been doing PHP for my project, and I can say that the following code works for me. You should try it.