fsockopen () возвращает нулевой указатель, а $ ERRSTR пуст (не сообщение об ошибке)
-
25-09-2019 - |
Вопрос
Редактировать
Я повторил предыдущий вопрос - поскольку я неправильно понял, что вызывает проблему - и, следовательно, простой фрагмент, который у меня была раньше, была красная сельдь. Благодаря WIMDVX у меня есть ясная идея относительно того, что происходит.
Прежде всего, я использую код, который основан на Вот этот, чтобы обрабатывать уведомления IPN из PayPal.
Я не смог подключиться к использованию fsockopen, поэтому я написал небольшой фрагмент (показанный ниже), чтобы попытаться подключиться к PayPal.
<?php
$fp = fsockopen("www.sandbox.paypal.com/cgi-bin/webscr", 80, $errno, $errstr,30);
if(!$fp) {
echo "$errstr ($errno)<br />\n";
}
else{
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: www.sandbox.paypal.com/cgi-bin/webscr\r\n";
$out .= "Connection: Close\r\n\n\n";
fwrite($fp, $out);
}
?>
Когда я запускаю этот маленький скрипт, я получаю следующую ошибку на моем сервере:
PHP ПРЕДУПРЕЖДЕНИЕ: FSOCKOPEN (): PHP_NETWORK_GETADDDRESSES: GetAddrinfo не удалось: Имя или услуга, не известное в /home/minime/test-socket.php в строке 2 php Предупреждение: fsockopen (): Невозможно подключиться к www.sandbox.paypal.com/ CGI-BIN / WebSCR: 80 (PHP_NETWORK_GETADDRESSES: FITADDRINFO не удалось: имя или услуга не известно) в /home/minime/test-socket.php на линии 2 php_network_getaddresses: getAddrinfo не удалось: имя или сервис не
Известен (0)
Может ли кто-нибудь пролить свет на то, как это исправить?
Я работаю Ubuntu 10.0.4 LTS на сервере
Решение
Вы не открываете сокет к URL-адресу, вы должны открыть его до IP или FQDN.
С использованием
$socket_ur = 'www.mywebsite.com';
может помочь.
Но что вы пытаетесь достичь точно?
Другие советы
Вы забыли $
Символ перед переменной указателя файла
if(!$fp) { print "Bah, hambug!. Connect to $socket_url failed. Error: $errstr"; } ?>