HTTP-Anforderung ist fehlgeschlagen! HTTP/1.0 403 Forbidden
Erstellte ich einen store finder 6 Monaten für eine Website und die Daten in der Datenbank gespeichert ist. Der Benutzer Typen in Ihre Postleitzahl und wenn Sie auf suchen klicken Sie die Liste der nächstgelegenen Geschäfte auf Sie.
Sobald ich das getestet habe die live-site heute morgen bekomme ich php error Meldung:
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
Als ich versuchte dieses auf der staging-site, und mein localhost bekomme ich die gleiche Antwort! Nun, ich habe nicht berührt der code für 6 Monate, so dass ich vermutete, dass mein key abgelaufen oder beschädigt. Ich habe einen neuen API-Schlüssel und fügte hinzu, das in meinem Kopf-und in den controller, wo es sagt, der Fehler ist -kein Glück.
Wohin gehe ich falsch?! Etwas ist absetzen der Anfrage und unsicher, wo das Problem ist?
Hier ist mein controller mit dem code:
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('/^[a-z](\d[a-z\d]?|[a-z]\d[a-z\d]?) \d[a-z]{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">• ','</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(""","\"",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);
}
}
- Können Sie Zugriff auf diese URL in einen browser?
- Wenn ich geben Sie die url ein bekomme ich das: we ' re sorry... ... aber Ihr computer oder Netzwerk sendet automatische Anfragen. Zum Schutz unserer Nutzer können wir Ihre Anfrage nicht Bearbeiten jetzt. :S seltsam, wie kann es Arbeit für Monate, dann stop!
- möglich, Duplikat der Erhalten einen 403 forbidden-Fehler bei der Verwendung von Längen-und Breitengrad: geocoding finden Sie unter developers.google.com/maps/articles/geocodingupgrade
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies war ein Problem mit der API V2 & 3. Der obige code wurde verändert und funktioniert wie ein Charme:
Das klingt wie ein problem mit dem service, und nicht mit dem Skript. Versuchen, Kontakt mit Google suchen oder Ihre support-system, um sicherzustellen, dass Sie über eine gültige URL.
Dies ist nicht ein problem mit Ihrem Code.
Könnte es sein, dass es Blöcke von PHP-Skripten zu verhindern, kratzen, oder Ihre IP, wenn Sie haben zu viele Anfragen.
Wenden Sie sich an das server-team kann Ihnen helfen, um die Blockierung der IP.