Как исправить ошибку fsockopen? - PullRequest
1 голос
/ 29 ноября 2011

Пожалуйста, помогите мне исправить мой код

$fp = fsockopen("projecthoneypot.org/statistics.php", 80, $errno, $errstr, 5);

if ($fp) {
    $url = "/";

    fputs($fp, "GET $url HTTP/1.1\r\nHost: {projecthoneypot.org/statistics.php}\r\nConnection: close\r\n\r\n");
    $resp = '';

    while(!feof($fp)) {
        $resp .= fgets($fp, 1024);
    }

    echo "$resp";
}

Я всегда получаю эту ошибку

Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/xxx/public_html/xxx.php on line 3

Warning: fsockopen() [function.fsockopen]: unable to connect to projecthoneypot.org\statistics.php:80 (php_network_getaddresses: getaddrinfo failed: Name or service not known) in /home/xxx/public_html/xxx.php on line 3

В чем проблема, пожалуйста?

1 Ответ

4 голосов
/ 29 ноября 2011

При использовании fsockopen вам нужно передать только ip / hostname.

Попробуйте изменить:

$fp = fsockopen("projecthoneypot.org/statistics.php", 80, $errno, $errstr, 5);
// to
$fp = fsockopen("projecthoneypot.org", 80, $errno, $errstr, 5);

Как часть вашего HTTP-запроса, Host: должен быть просто projecthoneypot.org, а не projecthoneypot.org/statistics.php.

.

$ url, вероятно, должен быть /statistics.php

...