2

我有一个联系表单,它将输入发布到位于我的服务器中的 .php 文件中。
一些代码:

$name_field = $_POST['name'];
$email_field = $_POST['email'];
$phone_field = $_POST['phone'];
$message_field = $_POST['message'];

在我的服务器中,我不能使用 php mail(),所以我想将此变量传输到位于其他域中的另一个 .php 文件。

我知道我可以直接在表格中完成

action="http://otherdomain.com/contact.php"

但我希望 php 脚本在我的服务器上,并“在幕后”传输变量​​。我的第一个问题是是否可以这样做?第二,如何...

4

3 回答 3

3

你会想要使用 CURL

$url = 'http://www.otherdomain.com/contact.php';
$fields_string = http_build_query($_POST);

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($_POST));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);
于 2013-07-12T15:35:28.660 回答
2

file_get_contents()您可以使用(例如)发送发布请求:

// example data
$data = array(
   'foo'=>'bar',
   'baz'=>'boom',
);

// build post body
$body = http_build_query($data); // foo=bar&baz=boom

// options, headers and body for the request
$opts = array(
  'http'=>array(
    'method'=>"POST",
    'header'=>"Accept-language: en\r\n",
    'data' => $body
  )
);

// create request context
$context = stream_context_create($opts);

// do request    
$response = file_get_contents('http://other.server/', false, $context)
于 2013-07-12T15:32:37.853 回答
0
    *Here is the code to send data from one domain to another using curl in php*     `$url='http://training3.mbincbs.com/karma/phpcontact.php';
$s = curl_init();
curl_setopt($s,CURLOPT_URL, $url); 
curl_setopt($s, CURLOPT_POST, 1);
curl_setopt($s, CURLOPT_POSTFIELDS,

        "contactmessage=".$message."&contactname=".$name."&contactemail=".$email."&contactsubject=".$subject);

curl_setopt($s, CURLOPT_RETURNTRANSFER, true);

回声 $server_output = curl_exec($s); curl_close($s);

phpcontact.php

`$Name = $_POST["contactname"];
`$Email = $_POST["contactemail"];
`$Subject = $_POST["contactsubject"];
`$Message = $_POST["contactmessage"];

如果(isset($链接)){

$sql="INSERT INTO Contact (contactname,contactemail,contactsubject,contactmessage) VALUES ('$Name','$Email','$Subject', '$Message')"; $res=mysqli_query($link,$sql);

于 2019-10-10T07:35:51.040 回答