所以说我目前在我当前的网站构建中使用index.php或index.php?p =。
我正在尝试构建一个将在大多数页面上显示的搜索表单,但我希望表单操作转到http://mywebsiteurl.com/?p=search&q=GETDATA,因为我的网站的分页取决于传递给'p'属性的数据。
在提交后,如何以静态方式将搜索参数附加到URL?
答案 0 :(得分:1)
您应该将参数p
的值放在搜索表单内的隐藏表单字段中;类似的东西:
<input type="hidden"
name="p"
value="<?php echo(htmlspecialchars($_REQUEST["p"])); ?>" />
将参数放入表单操作参数不是一个好主意; post请求的处理方式与GET请求不同,POST请求中的值不会附加到URL中?和&amp;与GET一样;这意味着您实际上不会将p参数放入处理来自表单的POST请求的脚本中...
另外注意不要显示未反映的请求参数(因此htmlspecialchars,感谢提示!),因为恶意客户端可能会尝试将代码注入您的页面(HTML injection / XSS)。
答案 1 :(得分:1)
您可以在表单中使用隐藏字段来维护p
参数的值:
<input type="hidden"
name="p"
value="<?= htmlentities($_GET['p'], ENT_QUOTES) ?>" />
答案 2 :(得分:1)
也许是这样的:
<form method="get" action="index.php">
<input type="hidden" name="p" value="search" />
<input type="text" name="search" value="" />
<input type="submit" value="search" />
</form>