2016-04-04 3 views
1

Ich versuche auf eine geschützte Website (.htpasswd) mit curl zuzugreifen, um zu prüfen, ob es erreichbar ist und einen Code wie 200 oder 302 zurückgibt.Wie bekomme ich den HTTP-Code für eine .htpasswd-geschützte URL mit cURL?

Ich habe versucht, mit einem falschen Passwort und Benutzernamen darauf zuzugreifen. Ich möchte mich nicht anmelden, ich möchte nur überprüfen, ob es online/erreichbar ist.

curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
curl_setopt($ch, CURLOPT_USERPWD, "aaa:bbb"); 

Wie bekomme ich den 401-Code über curl?

‚Im den http-Code wie folgt überprüft, aber in der htpasswd ist es leer

$code = curl_getinfo($ch, CURLINFO_HTTP_CODE),true 

Vielen Dank im Voraus!

+1

Sind Sie mit PHP oder ist diese Befehlszeile? – apokryfos

+0

Ich verwende die PHP-Curl-Erweiterung – Marcus

+1

Müssen Sie cURL verwenden, enthält 'get_headers()' nicht die Informationen, die Sie benötigen? – jeroen

Antwort

2

Sie können den Status-Code von der Curl, wenn man CURLINFO_HTTP_CODE Attribut in curl_getinfo Funktion wie folgt verwendet werden:

<?php 
$URL = 'http://yourdomain.com/protected_dir'; 
$Auth_Username = "username_here"; 
$Auth_Password = "password_here"; 

//make curl request 
$ch = curl_init($URL); 
curl_setopt($ch, CURLOPT_HEADER, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch, CURLOPT_USERPWD, "{$Auth_Username}:{$Auth_Password}"); 

$Output = curl_exec($ch); 

//get http code 
$HTTP_Code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //this is important to get the http code. 
curl_close($ch); 

echo 'HTTP code: ' . $HTTP_Code; 
?> 
+0

Danke, der 'CURLOPT_HEADER' fehlte. Der http-Code wird jetzt korrekt zurückgegeben. – Marcus

Verwandte Themen