php file_get_contents не работает на реальном сервере! работает на локальном хосте? - PullRequest
1 голос
/ 07 апреля 2011

Эй, ребята, я разработал веб-сайт на моей локальной установке Apache на моем Mac.Я использую два запроса на чужие домены.Один выходит на Geoplugin.net, чтобы получить текущую геолокацию.Это прекрасно работает на моей локальной установке.Однако, когда я передаю файлы на свой реальный сервер, веб-сайт печатает следующее:

Предупреждение: file_get_contents (http://www.geoplugin.net/php.gp?ip=185.43.32.341) [function.file-get-contents]: не удалось открыть поток: сбой HTTP-запроса! HTTP / 1.0 403 Запрещено в /home/.sites/74/site484/web/testsite/wp-content/themes/test/header.php в строке 241

что я могу сделать здесь?Что я делаю не так?

Более того, я использую на своем веб-сайте запрос скручивания, который также не извлекает данные. Оба отлично работают на моей локальной установке mamp. ​​

Есть идеи?

Ответы [ 5 ]

1 голос
/ 09 февраля 2013

Вам необходимо создать учетную запись на геопространственном веб-сайте и зарегистрировать свой домен, чтобы использовать веб-сервис без ограничений, после чего вы перестанете получать запрещенную ошибку от 403.Не беспокойтесь о расходах, это бесплатный сервис, я использую его на трех сайтах.

1 голос
/ 07 апреля 2011

Сервер отвечает кодом состояния «403 ЗАПРЕЩЕНО». Так что file_get_contents() работает нормально, но сервер, к которому вы пытаетесь получить доступ (или прокси-сервер или что-то среднее), не разрешает это.

Это может иметь много причин. Например (например, комментарий к вопросу), вы забанены или заблокированы (из-за большого количества запросов), или что-то в этом роде.

1 голос
/ 07 апреля 2011
HTTP/1.0 403 Forbidden 

означает, что у вас нет доступа к этим файлам! Попробуйте добавить заголовок пользовательского агента.

0 голосов
/ 04 июня 2014

Это потому, что geoPlugin ограничен 120 поисками в минуту.http://www.geoplugin.com/premium

Таким образом, любая функция веб-сайта, основанная на этом решении, может быть внезапно повреждена.

Я бы порекомендовал использовать оба www.geoplugin.net/json.gp?ip= {ip} и freegeoip.net/json/ndomip}.И проверьте, что первый возвращает ноль (означает, что предел уже достигнут), а затем используйте другой.

0 голосов
/ 07 апреля 2011

попытка urlencode строки запроса.

также я бы порекомендовал использовать расширение curl.

...