У меня есть два сценария, которые должны обмениваться данными между двумя доменами без использования браузера. Отправитель всегда говорит мне, что данные не могут быть отправлены правильно. Но так как я не получаю сообщение error1
, само соединение должно быть установлено правильно.
Странно то, что это уже работало, когда оба скрипта были на разных поддоменах одного и того же основного домена. Теперь я переместил отправителя в поддомен другого домена и теперь получаю ошибки. Оба домена находятся на одном сервере с одним и тем же ip и, конечно, оба имеют сертификат ssl.
Это скрипт отправки:
$fp = fsockopen("ssl://check.target.com", 443, $errno, $errstr, 30);
if (!$fp){
die('error1');
}else{
$path = '/api/vk_register.php';
$host = 'https://check.target.com';
$referer = $_SERVER['SERVER_NAME'];
fputs($fp, "POST /$path HTTP/1.1\r\n");
fputs($fp, "Host: $host\r\n");
fputs($fp, "Referer: $referer\r\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Content-length: ". strlen($data_to_send) ."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $data_to_send);
while (!feof($fp))
$return[] = fgets($fp);
fclose($fp);
// handling of $return
}
и это получатель:
$token = $_POST['token'];
$firstname = urldecode($_POST['firstname']);
$name = urldecode($_POST['name']);
$vkkdnr = $_POST['vkkdnr'];
$checksum = $_POST['checksum'];
$sender = $_SERVER["HTTP_REFERER"];
// handling the transferred data //
$fp = fsockopen($sender, 443, $errno, $errstr, 30);
if (!$fp){
echo "$errstr ($errno)<br />\n";
}else{
$path = '/ptreg_send.php';
$host = $sender;
$referer = $_SERVER['SERVER_NAME'];
fputs($fp, "POST /$path HTTP/1.1\r\n");
fputs($fp, "Host: $host\r\n");
fputs($fp, "Referer: $referer\r\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Content-length: ". strlen($data_to_send) ."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $data_to_send);
while (!feof($fp)){
$return2[] = fgets($fp,128)."#";
}
fclose($fp);
}
Печать $ return2 приносит это:
Array
(
[0] => HTTP/1.1 400 Bad Request
[1] => Date: Fri, 17 May 2019 15:03:33 GMT
[2] => Server: Apache
[3] => Content-Length: 347
[4] => Connection: close
[5] => Content-Type: text/html; charset=iso-8859-1
[6] =>
[7] => <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
[8] => <html><head>
[9] => <title>400 Bad Request</title>
[10] => </head><body>
[11] => <h1>Bad Request</h1>
[12] => <p>Your browser sent a request that this server could not understand.<br />
[13] => </p>
[14] => <p>Additionally, a 400 Bad Request
[15] => error was encountered while trying to use an ErrorDocument to handle the request.</p>
[16] => </body></html>
)