gpt4 book ai didi

php - 如何在 wordpress 中通过 cURL PHP 提交自定义 POST 表单

转载 作者:行者123 更新时间:2023-12-05 06:16:44 25 4
gpt4 key购买 nike

我正在制作一个主题 wordpress 在本地主机中使用 childtheme。我在 footer.php 中有一个基本表单 html:

<form method="post">     
<input name="FNAME" type="text">
<input name="LNAME" type="text">
<input name="EMAIL" type="email">
<button type="submit">Subscribe</button>
</form>

现在,我想通过 cURL php 将表单提交到 api url。我知道像这样设置 cURL 的代码:

$data =  $_POST;

$curl = curl_init();

$options =array(
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_URL => 'link_to_url',
CURLOPT_POST => true,
CURLOPT_CONNECTTIMEOUT => 30,
CURLOPT_USERAGENT => "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)",
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_POSTFIELDS => http_build_query($data)
);
curl_setopt_array($curl, $options);

$result = curl_exec($curl);
curl_close($curl);

我想在提交表单时,POST 数据将通过此 cURL 发送,但我不知道应该将此代码放在哪里以及如何处理它。我认为它可能放在 function.php 中的函数中,但我不知道如何编写它。请帮助我!

最佳答案

如果你想在同一个文件中执行上述代码,可以这样做:

<?php
// any other php code above
if(isset($_POST["infoForm"])) {
$curl = curl_init();

$data = array(
'post_request_name_for_fName' => $_POST["FNAME"],
'post_request_name_for_lName' => $_POST["FNAME"],
'post_request_name_for_email' => $_POST["EMAIL"]
);

$options =array(
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_URL => 'link_to_url',
CURLOPT_POST => true,
CURLOPT_CONNECTTIMEOUT => 30,
CURLOPT_USERAGENT => "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)",
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_POSTFIELDS => http_build_query($data)
);
curl_setopt_array($curl, $options);

$result = curl_exec($curl);
curl_close($curl);
}
// any other php code below
?>

并将 HTML 设置为:

<form method="post">     
<input name="FNAME" type="text">
<input name="LNAME" type="text">
<input name="EMAIL" type="email">
<button type="submit" name="infoForm">Subscribe</button>
</form>

下面是它背后的解释。您将提交按钮的 name 设置为 infoForm(或您想要的任何其他内容),以便 PHP 可以知道发布了哪个表单以及发布时间。然后您使用 if(isset($_POST["infoForm"])) 检查表单是否已发布,然后执行下面的代码以发布它。

$_POST["FNAME"] 和其他变体检查在每个输入中找到的数据,并将其设置为 $data 数组的值。然后,您可以将 post_request_name_for_fName 的所有值更改为发布请求所需的任何值(即;如果您发布请求需要“名称”和“电子邮件”参数,只需更改上面的值根据需要)。

如果您还想转换到不同的页面,您可以创建一个新文件(即 post.php)并在不带 if(isset) 的情况下添加代码,并将您的 html 设置为:

<form method="post" action="post.php">     
<input name="FNAME" type="text">
<input name="LNAME" type="text">
<input name="EMAIL" type="email">
<button type="submit" name="infoForm">Subscribe</button>
</form>

关于php - 如何在 wordpress 中通过 cURL PHP 提交自定义 POST 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61947983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com