如何构建查询字符串?

时间:2011-12-11 04:40:24

标签: php query-string

我所拥有的是,当有人点击我的索引上的链接时,它会调用index.php?action=signup并显示一个注册表单。

如何让注册表单维护查询字符串的action=signup部分,以便当用户点击“提交”时,新的查询字符串为index.php?action=signup&email=user@email.com

设置此功能的最佳方法是什么?我应该以某种方式将操作拆分为GET,将数据拆分为POST

我不确定我是否正确描述了这一点,但我希望将所有功能保留在index.php上,因此当我整合.htaccess时,所有内容都会像www.site.com/signup,{{1等等。

1 个答案:

答案 0 :(得分: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'] = 'user@email.com';
echo http_build_query( $params); // Will output a new query string for your URLs