我的网站上有一个联系表格。它可以使用PHP脚本捕获数据并通过电子邮件发送给我,也可以通过更改<form action="">
直接发送到API
API指的是捕获信息并将其保存到外部数据库的脚本。API基于ASP(这是我的假设),我无法访问它,必须使用下面指定的格式。
我需要修改PHP脚本,所以它通过电子邮件AND将信息发送到外部API,使用POST方法使用这种特定格式。
免责声明:我不是程序员,但如果指向正确的方向,我可以想出如何做事
API接受信息的格式:
<form action="https://api.somsite.com/?user=&key=&zipcode=&name=&phone=&email=&address=&service=" method="post">
<input type="hidden" name="user" value="12345"/>
<input type="hidden" name="key" value="0987654321"/>
使用隐藏值(USER和KEY),以便API知道信息的来源。
其他输入由用户提供(姓名、电子邮件、邮政编码、电话、地址、服务)。
以下是我当前的PHP脚本:
<?php session_start(); ?><?php
$to = "myemail@gmail.com";
$subject = "LEAD";
$email = $_REQUEST["email"];
$name = $_REQUEST["name"];
$address = $_REQUEST["address"];
$zip = $_REQUEST["zipcode"];
$phone = $_REQUEST["phone"];
$service = $_REQUEST["service"];
$user = $_REQUEST["user"];
$key = $_REQUEST["key"];
$dodgy_strings = array(
"content-type:"
,"mime-version:"
,"multipart/mixed"
,"bcc:"
);
$msg = 'Name: '.$name. PHP_EOL;
$msg .= 'Phone: '.$phone. PHP_EOL;
$msg .= 'E-mail: '.$email. PHP_EOL. PHP_EOL;
$msg .= 'Address: '.$address. PHP_EOL;
$msg .= 'Zip code: '.$zip. PHP_EOL. PHP_EOL;
$msg .= 'Service: '.$service. PHP_EOL. PHP_EOL;
$msg .= 'User ID: '.$user. PHP_EOL. PHP_EOL;
$msg .= 'Access Key: '.$key. PHP_EOL. PHP_EOL;
$msg .= PHP_EOL;
mail($to, $subject, $msg);
header('Location: http://www.mysite.com/thankyou.htm'); // This redirects to Thank You page
?>
基本上,我需要将上面的PHP脚本与某种CURL函数或类似函数一起使用
我在STACK上读到,我需要在PHP中使用CURL函数,但不知道如何实现它
请帮忙,我会非常感激的。
真诚的,利奥。
下面是一个超时5秒的curl调用示例,用于发布数据。产生的$data变量是调用的结果页。
$url='http://www.website.com';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,5);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
$postdata = array(
'post_variable1'=>'post_value1'
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
edit:使用这个例子,您可以按如下方式传入POST变量,从而替换我在上面设置$postdata的地方-
$postdata = array('email'=>$_POST['email'], 'phone'=>$_POST['phone']);
您所需要做的就是将表单方法编辑为method="get"
。
当你使用方向url时,你会丢失你的信息。你可以修复它。
<form action="ContactUs.php" method="get">
希望它能有所帮助。