У меня есть контактная форма, которая отправляет вход в файл .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-скрипт находился на моем сервере, и «За кулисами» переносил переменные. Мой первый вопрос: может ли это сделать так? и второй, как …
Вы хотите использовать 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);
Вы можете отправить запрос на отправку, используя 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)