2012-02-04 124 views
4

如果我有網址mysite.com/test.php?id=1。頁面加載時設置爲id,並且可以是任何內容。在那裏也可能有其他人,如?id=1&sort=new。有沒有辦法只是添加另一個到最後沒有找出其他人先建立一個新的網址?謝謝。PHP:將參數添加到網址?

回答

20

作爲Kolink的答案的替代方案,我想我會利用http_build_query()。這樣,如果查詢字符串中沒有任何內容,則不會再獲得額外的&。儘管如此,它並沒有真正有所作爲。 Kolink的回答非常好。我張貼這主要向您介紹http_build_query(),因爲你可能會需要它更高版本:

http_build_query(array_merge($_GET, array('newvar'=>'123'))) 

基本上,我們使用http_build_query()採取一切$_GET,與我們想要的任何其它參數數組進行合併。在這個例子中,我只是使用示例參數即時創建一個數組。在實踐中,你可能已經有一個這樣的數組。

+0

ahha歡呼; p d – 2012-02-04 04:58:34

+1

theres沒有傷害插入獲得變量直接進入html的權利? – 2012-02-04 05:07:15

+1

@AndyLobel,當然有傷害!你應該使用'htmlspecialchars()'在任何** PHP變量上回顯你的頁面。否則,你可以開啓自己的XSS。你不知道這個變量是什麼,除非你可以保證它是嚴格的數字或其他東西。即便如此,出於謹慎,我每次都使用'htmlspecialchars()'。 – Brad 2012-02-04 17:37:29

2
"?".$_SERVER['QUERY_STRING']."&newvar=123"; 

就是這樣的。

+0

cheeeerss; p even tho remeba當頁面重新加載時,如果你嘗試再次點擊相同的鏈接,它會去?id = 1&newvar = 123&newvar = 123 – 2012-02-04 04:16:32

+0

有沒有辦法擺脫它,如果它已經設置? – 2012-02-04 04:23:34