【问题标题】:Brackets in post requestpost请求中的括号
【发布时间】:2020-12-04 13:59:23
【问题描述】:

我使用 wordpress 和 activecampaign 插件。我正在尝试使用 webhook 将联系人电子邮件数据发送到 php 页面,我可以在其中使用这些信息做一些事情。我如何在 php 中接收结构如下的数据:

编码

contact%5Bid%5D=67330&contact%5Bemail%5D=asdf%40d.nl&contact%5Bfirst_name%5D=sadf&contact%5Blast_name%5D=asdf&contact%5Bphone%5D=%2B1063494959&contact%5Borgname%5D=&contact%5Bcustomer_acct_name%5D=&contact%5Btags%5D=&contact%5Bip4%5D=0.0.0.0&seriesid=266

解码

contact[id]=67330&contact[email]=asdf@d.nl&contact[first_name]=sadf&contact[last_name]=asdf&contact[phone]=+1624567935&contact[orgname]=&contact[customer_acct_name]=&contact[tags]=&contact[ip4]=0.0.0.0&seriesid=266

我尝试使用$email = $_POST["contact[email]"];,但没有成功。

【问题讨论】:

  • 你的问题一点都不清楚。你需要什么?您生成输出的代码在哪里?通过上传代码帮助我们帮助您,让问题更清晰。
  • 我需要知道如何调用 post 变量。 $_POST["联系人[电子邮件]"];像那样。代码块中的数据是我想在 php 中接收的原始帖子数据。我想知道我如何将它存储在 php 变量中。
  • 如我所说。它是来自插件的 webhook。它将插件中的帖子数据发送到指定的 url。在这种情况下,我想要接收数据的我自己的 php 页面。

标签: php wordpress post activecampaign


【解决方案1】:

每当您使用括号作为要在 POST 中发送的数据的标识符时,它就会形成关联数组,例如 $key=>$value 关系在您的情况下,例如,如果通过 post 请求接收到 contact[email]就像$contact=>$email 形式的关联数组,在这种情况下可以使用$_POST['contact']['email'] 访问,因为数据将采用以下数组结构Array ( [contact] => Array ( [email] => someone@somewhere.com ) )

总结一下,如果您只是复制以下内容,您的上述请求将起作用

$email=$_POST['contact']['email'];

如果答案有效,请不要忘记接受并投票,以便其他人受益并轻松找到正确答案。如果您遇到进一步的问题,请随时在评论中提问。和平;-)

【讨论】:

    【解决方案2】:

    您可以将explode 与urldecode 函数一起使用:

    看例子:

    $query = "my=apples&are=green+and+red";
    
    foreach (explode('&', $query) as $chunk) {
        $param = explode("=", $chunk);
    
        if ($param) {
            printf("Param\"%s\" - \"%s\"<br/>\n", urldecode($param[0]), urldecode($param[1]));
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多