PHP如果url包含xx add to vairable

时间:2017-03-27 19:47:58

标签: php

所以基本上我试图做的是如果网址内容看起来像这样:

www.some.com/dir/?variable=VAR&variable2=VAR2

然后服务器会选择它,我可以将它添加到变量,如:

$var = [variable];
echo '<tag>'.$var.'</tag>';

那会产生;

<tag>VAR</tag>

很抱歉由于缺少代码,我不知道如何使用PHP进行此操作,我的搜索结果显示为空白。

3 个答案:

答案 0 :(得分:3)

您要做的是遍历您的$ _GET变量并将其打印出来。 $ key是可变的,$ value是VAR。打印键值组合使用此。要打印正值,请删除&#39; $键是&#39;一部分。

<?php

foreach($_GET as $key=>$value)
{
echo "<tag>$key is $value</tag>";
}

答案 1 :(得分:2)

这些变量称为query parameters,在PHP中,可以使用$_GET superglobal访问它们。

要使用您的示例,网址www.some.com/dir/?variable=VAR&variable2=VAR2$_GET['variable']填充'VAR'$_GET['variable2']填充'VAR2'

您可以像代码中的任何位置一样访问$_GET,因此将其内容放在HTML代码中应该很简单:

<tag><?php echo $_GET['variable'] ?></tag>
<tag><?php echo $_GET['variable2'] ?></tag>

请记住,这会显示HTML injection vulnerability。例如,用户可以访问URL www.some.com/dir/?variable=<script>doUnfortunateThings()</script>,您的脚本将尽职尽责地呈现

<tag><script>doUnfortunateThings()</script></tag>

页面加载时浏览器将执行哪些操作。这可能没问题,因为只有用户搞乱URL才能看到它,但是根据页面的其余部分,它可能会带来安全风险,甚至可能被页面上或服务器上运行的其他脚本永久化。它还可以绕过您的网站运行的任何content security policy设置,具体取决于配置方式(如果有的话)。

最好在任何用户输入上使用内置的PHP函数htmlspecialchars,然后再在页面上显示它,以防止浏览器实际呈现任何html标记。

<tag><?php echo htmlspecialchars($_GET['variable']) ?></tag>
<tag><?php echo htmlspecialchars($_GET['variable2']) ?></tag>

答案 2 :(得分:1)

如果你已经知道url中的变量名,那么你可以将它用作数组索引:

$variable = $_GET["var_name"];

在你的情况下:

$variable = $_GET["variable"];
$variable2 = $_GET["variable2"];