我所拥有的是,当有人点击我的索引上的链接时,它会调用index.php?action=signup
并显示一个注册表单。
如何让注册表单维护查询字符串的action=signup
部分,以便当用户点击“提交”时,新的查询字符串为index.php?action=signup&email=user@email.com
?
设置此功能的最佳方法是什么?我应该以某种方式将操作拆分为GET
,将数据拆分为POST
?
我不确定我是否正确描述了这一点,但我希望将所有功能保留在index.php
上,因此当我整合.htaccess
时,所有内容都会像www.site.com/signup
,{{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