[英]How do I insert a PHP variable inside of an HTML <a> tag?
这是我的源代码:
<html>
<body>
<?php
$query = $_REQUEST["search"];
Print "<iframe src="http://www.en.wikipedia.org/wiki/$query"></iframe>';
?>
</body>
</html>
我想在用户输入术语时将其自动放置到查询的Wikipedia页面上。 我当然知道我在这里做错了,但我不知道该怎么办。 感谢您的帮助!
将您的声明更改为:
print "<iframe src=\"http://www.en.wikipedia.org/wiki/$query\"></iframe>";
您需要转义引号。
使用htmlspecialchars()
将变量输出到HTML文本内容或属性值的方法相同。 如果您并非每次将用户数据放入HTML时都这样做,那么您会遇到一个HTML注入漏洞,该漏洞会导致跨站点脚本(XSS)攻击。
在您的情况下,您要将变量插入URL组件,因此在进行HTML编码之前,您需要使用rawurlencode()
对URL进行编码。
好的...因此,如果您要进行URL编码,则实际上可以根据需要跳过HTML编码,因为HTML专用的所有字符也都可以通过URL编码转换为安全的%
序列。
PHP是一种模板语言。 使用它,不要打它。 每当您在PHP块中echo
或print
插值的字符串时,都可能使自己的生活变得不必要地艰难。
逐字包含文字内容,不必担心字符串文字中的反斜杠转义引号字符:
<?php
$query= $_REQUEST['search'];
?>
<iframe src="http://en.wikipedia.org/wiki/<?php echo rawurlencode($query); ?>">
</iframe>
尽量不要在print / echo语句中包含巨大的html字符串,这样可以很容易地引起引用错误,并且很难遵循代码的内容。
相反,您可以像许多模板语言一样,将变量作为标记包含在html中,但是要使用速记回显功能<?= $variable; ?>
<?= $variable; ?>
<html>
<body>
<iframe src="http://www.en.wikipedia.org/wiki/<?= $_REQUEST["search"]; ?>"></iframe>
</body>
</html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.