从GET参数创建链接

时间:2012-09-25 21:18:45

标签: php

我试图创建一些链接,具体取决于当前设置的GET参数。

我的网址如下:

http://mysite.com/index.php?bar=test&page=page

在我的代码中,我执行以下操作:

$bar = $_REQUEST['bar'];
<a href="index.php?bar=<?php echo $bar?>&page=anotherpage"

但是每次点击链接时,它都会再次将整个字符串添加到URL中。

首次点击会给我这个网址:

http://mysite.com/index.php?bar=test&page=anotherpagepage=anotherpage

然后点击下次创建:

http://mysite.com/index.php?bar=test&page=anotherpagepage=anotherpagepage=anotherpage

等等。

有没有办法只获取一次请求,以便URL始终如下所示:

http://mysite.com/index.php?bar=test&page=anotherpage

无论我点击链接多少次?

非常感谢!

2 个答案:

答案 0 :(得分:1)

你在第一个例子中错过了&符号。 (安培;安培)。试一试:

$bar = $_REQUEST['bar'];
<a href="index.php?bar=<?php echo $bar?>&amp;page=anotherpage"

甚至更好,在使用之前转义变量以防止XSS,跨站点脚本安全漏洞。使用urlencode()表示网址。
http://nl.php.net/manual/en/function.urlencode.php

$bar = $_REQUEST['bar'];
<a href="index.php?bar=<?=urlencode($bar)?>&amp;page=anotherpage"

答案 1 :(得分:0)

你应该看一下php函数http_build_query

这使您能够首先构建数组,如下所示:

$query = array("bar"=>$_REQUEST['bar'], "page"=>"anotherpage")
echo '<a href="/index.php?'.http_build_query($query).'">Link</a>';