2012-07-31 116 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