繁体   English   中英

如何在HTML <a>标签</a>内插入PHP变量<a>?</a>

[英]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>";

您需要转义引号。

  1. 使用htmlspecialchars()将变量输出到HTML文本内容或属性值的方法相同。 如果您并非每次将用户数据放入HTML时都这样做,那么您会遇到一个HTML注入漏洞,该漏洞会导致跨站点脚本(XSS)攻击。

  2. 在您的情况下,您要将变量插入URL组件,因此在进行HTML编码之前,您需要使用rawurlencode()对URL进行编码。

  3. 好的...因此,如果您要进行URL编码,则实际上可以根据需要跳过HTML编码,因为HTML专用的所有字符也都可以通过URL编码转换为安全的%序列。

  4. PHP是一种模板语言。 使用它,不要打它。 每当您在PHP块中echoprint插值的字符串时,都可能使自己的生活变得不必要地艰难。

逐字包含文字内容,不必担心字符串文字中的反斜杠转义引号字符:

<?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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM