Appending GET parameters to URL from <form> action


Appending GET parameters to URL from <form> action

我当前使用的是index。php还是index。php?P =约在我当前的网页建设。

我试图建立一个搜索表单,将显示在大多数页面上,但我希望表单的动作去http://mywebsiteurl.com/?p=search&q=GETDATA,因为我的网站的分页取决于传递给'p'属性的数据。

在提交时如何以静态方式将搜索参数附加到URL ?

可能是这样的:

  <form method="get" action="index.php">
     <input type="hidden" name="p" value="search" />
     <input type="text" name="q" value="" />
     <input type="submit" value="search" />
  </form>

您可以在表单中使用隐藏字段来维护p参数的值:

<input type="hidden" 
       name="p" 
       value="<?= htmlentities($_GET['p'], ENT_QUOTES) ?>" />

您应该将参数p的值放在搜索表单的隐藏表单字段中;比如:

<input type="hidden"
    name="p"
    value="<?php echo(htmlspecialchars($_REQUEST["p"])); ?>" />

将参数放在form action参数中不是一个好主意;post请求的处理方式与GET请求不同,post请求中的值不会通过?和,如GET;这意味着您实际上不会将p参数放入处理来自表单的POST请求的脚本中…

还要注意不要显示未反映的请求参数(因此使用htmlspecialchars,感谢您的提示!),因为恶意客户端可能会尝试将代码注入您的页面(HTML注入/XSS)。