如果发送的数据包含的内容多于表单,如何在php中检索表单字段

如果发送的数据包含的内容多于表单,如何在php中检索表单字段,php,ajax,forms,Php,Ajax,Forms,我有一个简单的表单,用户可以在其中输入搜索词: <form class="form-inline justify-content-center" id="searchForm"> <div class="form-group"> <label class="sr-only text-info" for="searchTerm">Search term</label> <input t

我有一个简单的表单,用户可以在其中输入搜索词:

<form class="form-inline justify-content-center" id="searchForm">
      <div class="form-group">
            <label class="sr-only text-info" for="searchTerm">Search term</label>
            <input type="text" class="form-control mb-2 mr-sm-2 mb-sm-0" name="searchTerm" id="searchTerm" placeholder="Search">
       </div>
       <button type="submit" class="btn btn-info">Search</button>
</form>
我的问题是,如果我使用
$\u get['form']
获取表单,如何在php中从表单检索字段?

您可以使用php函数将字符串拆分为数组。所以代码应该是这样的

$username = $_GET['username']
parse_str($_GET['form'], $form_data);
var_dump($form_data);

但我想知道为什么你要从cookie中读取用户名,然后在请求中再次发送它?为什么不直接从PHP中的$\u COOKIE中读取它呢?

您是否尝试过使用
打印($\u GET)
来查看接收到的数据是什么?$\u GET[“form”][“searchTerm”]可以,如果数据发送正确的话。但是您可以通过var_转储GET数组来查看其结构并进行双重检查。不过,您可能需要在客户端使用serializeArray()或其他一些东西,因为我认为您只是将“form”变量指定为url编码字符的字符串。同样,您可以通过查看浏览器的“网络”选项卡轻松进行检查。使用您可以使用的工具查看实际发生的情况。你不必盲目猜测。我试过了
$form=$\u GET['form']
,然后
$search=$form['searchTerm']
,但没用谢谢你的帮助!我从cookie中读取用户名,因为只有在测试和部署它们时,php才与网站位于同一台服务器上。所以,以这种方式读取cookie是有意义的。那么parse_str函数能满足您的需要吗?如果是,请接受答案。
$username = $_GET['username']
parse_str($_GET['form'], $form_data);
var_dump($form_data);