【问题标题】:adding URL parameters to a form PHP HTML将 URL 参数添加到表单 PHP HTML
【发布时间】:2011-08-09 03:36:15
【问题描述】:

将 url get 参数放在表单操作中是否可以或正确?

<form method='get' action='index.php?do=search'>
  <input name='_search' type='text' value='What are you looking for?'>
  <button type='submit'> Search </button>
</form>

当我提交表单时,URL 更改为:

index.php?_search=What are you looking for? (I've stripped %20)

我更喜欢阅读网址

index.php?do=search&_search=What are you looking for?

最好在表单中添加一个隐藏字段

<input type='hidden' name='do' value='search' />

【问题讨论】:

  • 是的,你会这样做(隐藏字段)。当您确切知道在使用变量进行导航等时请求的内容时,在查询和获取(您使用的内容)时使用 post 的最佳做法是,邪恶的人会发现操纵查询的 ect 有点困难
  • @Lawrence,从安全角度来看,GET 和 POST 之间绝对没有区别。它们都是同样的纯文本。 GET 通常用于请求(例如,给我这个 ID 为 5 的文档),而 POST 通常用于需要超过几百字节数据的任何内容(有时 GET 会被截断),或者在提交数据进行处理时使用。跨度>
  • 是的,我没有注意到任何区别,但我通常在使用 jquery ajax 方法时使用 post。感谢各位大佬的投入
  • @Brad 我完全同意,基本上我就是这么说的,哈哈。我没有说从安全的角度来看它们是不同的。(说安全的和不安全的)

标签: php html webforms


【解决方案1】:

我认为和 Teodor 一样,应该没有理由不将变量作为隐藏字段发送。但是,如果您有充分的理由这样做...您是否尝试过在网址末尾添加 & :

<form method='get' action='index.php?do=search&'>

【讨论】:

  • FWIW,在动作 URL 的末尾添加 & 无助于将参数保留在动作 URL 中。
【解决方案2】:

没有任何理由说明您不能或不应该这样做。然而,我首选的处理方法是:

<form method='get' action='index.php'>
    <input name='_search' type='text' value='What are you looking for?' />
    <submit name='do' value='Search'>
</form>

do/search 的名称/值对通过按钮按下传递,如果您想在表单上创建多个操作,则可以为每个提交按钮设置不同的值,以多种方式处理表单。

if ($_GET['do'] == "Search") {
 ... do Search ...
} else if ($_GET['do'] == "Foo") {
 ... do Foo ...
} else if ($_GET['do'] == "Bar") {
 ... do Bar ...
}

您也可以使用 case 构造:

switch($_GET['do']) {
    case "Search":
        ... do Search ...
    case "Foo":
        ... do Foo ...
        break;
    case "Bar":
        ... do Bar ...
        break;
} 

我自己通常使用post,但我确信get 会以同样的方式工作。希望能回答你的问题。

【讨论】:

    【解决方案3】:

    在我看来,您应该将它们添加为隐藏字段。如果您可以通过隐藏的表单字段进行传递,那么尝试传递参数是没有意义的

    使用它:

    <input type='hidden' name='do' value='search' />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-16
      • 2015-01-11
      • 1970-01-01
      • 2015-04-24
      • 2015-06-20
      相关资源
      最近更新 更多