1 PHP联系表格-2操作-发送信息到电子邮件&;外部API/DB


1 PHP contact form - 2 Actions - Send info to Email & External API / DB

我的网站上有一个联系表格。它可以使用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">

希望它能有所帮助。