Intereting Posts
Какой метод более безопасен / подходит для блокировки доступа к подкаталогу с использованием .htaccess? Любой файл .php, вызывающий ОШИБКУ ВНУТРЕННЕГО СЕРВЕРА Аутентификация API-интерфейса WordPress REST без страницы входа в систему Ошибка SQL Query рядом с '' Использование буферизации вывода PHP для устранения ошибки JavaScript во время обработки Как вы кодируете апостроф так, чтобы он был доступен для поиска в mysql? Служба уведомлений Apple Push: сторона с сертификатом установки сервера? Удаленный вход не работает с завихрением Автоматический формат Aptana преобразовать структуру дерева в php-массив Выполнить функцию без параметра, но нужна переменная вне функции – PHP Как заменить плохие слова на php? Преобразование между нелогично отформатированными датами (смена / слэш / на -dash-) Вывод PHP mysql LEFT JOIN Передача / Возвращение ссылок на объект + изменение объекта не работает

Ошибка HTTP-запроса! HTTP / 1.0 403 Запрещено

Я создал хранилище 6 месяцев назад для сайта и данные хранятся в базе данных. Пользователь вводит в свой почтовый индекс, и когда вы нажимаете «Поиск», они перечисляют им ближайшие магазины.

Когда я проверил сайт в прямом эфире сегодня утром, я получил сообщение об ошибке php error:

A PHP Error was encountered Severity: Warning Message: file_get_contents(http://maps.google.co.uk/maps/geo?q=sr3+4as&output=json&key=----MYKEY---): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden Filename: controllers/store.php 

Когда я попробовал это на промежуточном сайте, и мой локальный хост получил тот же ответ! Теперь я не касался кода в течение 6 месяцев, поэтому я предположил, что мой ключ истек или поврежден. Я создал новый ключ API и добавил это в свой заголовок и в контроллер, где говорится, что ошибка – не повезло.

Где я ошибаюсь ?! Что-то останавливает запрос и не знает, где проблема?

Вот мой контроллер с кодом:

 class Store extends CI_Controller { function __construct() { parent::__construct(); $this->load->model('store_model'); $this->load->library('form_validation'); } public function index(){ $data['page_title'] = "Store Finder"; $data['section_no'] = 5; $data['content'] = "store"; function formatBritishPostcode($postcode) { //-------------------------------------------------- // Clean up the user input $postcode = strtoupper($postcode); $postcode = preg_replace('/[^A-Z0-9]/', '', $postcode); $postcode = preg_replace('/([A-Z0-9]{3})$/', ' \1', $postcode); $postcode = trim($postcode); //-------------------------------------------------- // Check that the submitted value is a valid // British postcode: AN NAA | ANN NAA | AAN NAA | // AANN NAA | ANA NAA | AANA NAA if (preg_match('/^[az](\d[az\d]?|[az]\d[az\d]?) \d[az]{2}$/i', $postcode)) { return $postcode; } else { return NULL; } } $this->form_validation->set_rules('postcode','Postcode','required|trim|htmlspecialchars|xssclean'); $this->form_validation->set_error_delimiters('<div id="errors">&bull;&nbsp;','</div>'); if($this->form_validation->run() == FALSE) { $data['error'] = 1; if($this->input->post('submit')) { $data['error_msg'] = "Please enter a Post Code."; } } else { $data['error'] = 0; if($this->input->post('postcode')) { $postCodeClean = formatBritishPostcode($this->input->post('postcode')); if ($postCodeClean === NULL) { $data['error_msg'] = "Please supply a valid Post Code."; } else { $url = "http://maps.google.co.uk/maps/geo?q=".urlencode($this->input->post('postcode'))."&output=json&key=---MYKEY---"; $json = file_get_contents($url); $store_data = json_decode(str_replace("&quot;","\"",htmlentities($json))); $lng = $store_data->Placemark[0]->Point->coordinates[0]; $lat = $store_data->Placemark[0]->Point->coordinates[1]; $data['stores'] = $this->store_model->get_stores($lat, $lng); } } } $this->load->view('template', $data); } } 

Related of "Ошибка HTTP-запроса! HTTP / 1.0 403 Запрещено"

Это была проблема с API V2 и 3. Код выше был изменен на это и работал как шарм:

 $url ="https://maps.googleapis.com/maps/api/geocode/json?address=".urlencode($this->input->post('postcode'))."&sensor=false"; $json = file_get_contents($url); $store_data = json_decode(str_replace("&quot;","\"",htmlentities($json))); $lat = $store_data->{'results'}[0]->{'geometry'}->{'location'}->{'lat'}; $lng = $store_data->{'results'}[0]->{'geometry'}->{'location'}->{'lng'}; $data['stores'] = $this->store_model->get_stores($lat, $lng); 

Это звучит как проблема с сервисом, а не с вашим скриптом. Попробуйте связаться с Google или выполнить поиск в своей системе поддержки, чтобы убедиться, что вы используете действительный URL.

Это не проблема с вашим кодом.

Может быть, он блокирует PHP-скрипты, чтобы предотвратить очистку, или ваш IP-адрес, если вы сделали слишком много запросов.

Вам следует поговорить с командой сервера, с которой они могут помочь вам разблокировать IP-адрес.