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

时间:2013-07-09 17:59:26

标签: php html forms email

我的网站上有联系表格。它可以使用PHP脚本捕获数据并通过电子邮件发送给我,也可以通过更改<form action="">

直接将其发送到API

API表示捕获信息并将其保存到外部数据库的脚本。 API基于ASP(这是我的推测),我无法访问它,并且必须使用下面指定的格式。

我需要修改PHP脚本,因此它使用POST方法通过电子邮件发送信息并使用此SPECIFIC格式发送到外部API。

免责声明:我不是程序员,但如果指向正确的方向,我可以知道如何做事。

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函数,但不知道如何实现它。

请帮忙 - 我非常感谢。

此致,Leo。

2 个答案:

答案 0 :(得分:0)

这是一个示例curl调用,具有5秒超时,发布数据。生成的$ 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); 

编辑:使用这个例子,您可以传递POST变量,如下所示替换我在上面设置$ postdata的位置 -

$postdata = array('email'=>$_POST['email'], 'phone'=>$_POST['phone']);

答案 1 :(得分:-2)

您需要做的就是将表单方法编辑为method="get"

使用方向网址时,您会丢失信息。 你可以解决它。

<form action="ContactUs.php" method="get">

希望它有所帮助。