2012-07-31 97 views
0

这是我用来创建分页链接代码:PHP查询字符串 - 参数复制

echo "<a href='".$_SERVER['PHP_SELF']."?".$_SERVER["QUERY_STRING"]."&page=$ni'><span>$ni</span></a>"; 

唯一的问题是,每次我点击链接时,'page'参数保持在URL乘以:

HTTP:.. PHP PARA1 =东西& PARA2 =东西& para3各个=东西&页= 2 &页= 3 &页= 4

我可以理解为什么。每当我点击链接时,另一个'page'参数被添加到现有的URL。

任何想法如何解决呢?

感谢

+0

永远不要使用'$ _SERVER ['PHP_SELF']'没有至少'htmlencode'首先。否则,你的代码非常容易[PHP注入](http://markjaquith.wordpress.com/2009/09/21/php-server-vars-not-safe-in-forms-or-links/)。真的,任何可能来自客户端的$ _​​SERVER变量都是同样的事情。 – Palladium 2012-07-31 14:12:46

回答

3

不要追加.$_SERVER["QUERY_STRING"].您的每次页面加载。

只要使用此:

echo "<a href='".$_SERVER['PHP_SELF']."?page=$ni'><span>$ni</span></a>"; 

如果需要从QUERY_STRING另一个参数,分别将其添加到您的网址。

IE:

echo "<a href='".$_SERVER['PHP_SELF']."?page=$ni&para1=something...'><span>$ni</span></a>"; 
0

在您的示例代码:

$_SERVER["QUERY_STRING"] = para1=something&para2=something&para3=something&page=2&page=3&page=4 

所以当你创建你的链接和预追加$ _ SERVER [ “QUERY_STRING”]来&页= $妮,你的链接确实是

para1=something&para2=something&para3=something&page=2&page=3&page=4&page=$ni