2011-12-11 69 views
0

我的是,當有人點擊我的索引上的鏈接時,它會調用index.php?action=signup,並且會顯示註冊表單。如何構建查詢字符串?

然後我如何使註冊表單維護查詢字符串的action=signup部分,以便當用戶單擊「提交」時,新的查詢字符串是index.php?action=signup&[email protected]

設置它的最佳方法是什麼?我應該不知何故將行動分爲GET和數據分成POST

我不知道如果我正確地描述了這一點,但我想保持我的index.php的所有功能,所以當我整合.htaccess一切都會像www.site.com/signupwww.site.com/login等。

回答

2

做到這一點的表單提交,最好的辦法是將<form>行動,以正確的URL和方法更改爲GET,像這樣:

<form action="index.php?action=signup" method="GET">

然後,藏在你的形式,你把類似如下:

<input type="hidden" name="action" value="signup" />

那麼您的網址將包含正確的參數提交時。

但是,如果您需要修改此服務器端,那麼您可以通過$_SERVER['QUERY_STRING']獲取所有查詢參數。使用parse_str獲得值的數組,並使用http_build_query重新查詢字符串:

例子:

$params = array(); 
parse_str($_SERVER['QUERY_STRING'], $params); 
$params['email'] = '[email protected]'; 
echo http_build_query($params); // Will output a new query string for your URLs 
+0

而不是使用$ _ SERVER的,看看使用$ _GET或$ _REQUEST。它們已經是數組格式。 – hafichuk

+0

$ _SERVER也是一個數組。 – nickb

+1

@nickb hafichuk可能意味着複製'$ _GET'的內容(或直接使用它)而不是使用'parse_str'解析'$ _SERVER ['QUERY_STRING']'。 –