【PHP】cURLでベーシック認証ページへアクセス
他ページのコンテンツを読み込む際にcURL関数を使用していたのですが、
急に「Authorization Required」というエラーが!!
エラーが発生しているコードはこんな感じです↓
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.samplepage/?no=1");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
調べてみると、
誰かが、読み込み先のページにベーシック認証(Basic認証)を掛けてしまったことが原因でした。
※あとから連絡があったのですが、一時的にページを非公開にしようとして、認証を掛けたらしいです。
事前に連絡は欲しいところです。。。
と、それはいいとして、
このような場合には、
CURLOPT_USERPWDでユーザー名とパスワードを指定して、
ベーシック認証が掛かったページへアクセス出来るように設定すればOKです。
具体的には、
curl_setopt($ch, CURLOPT_USERPWD, "ID:パスワード");
のという行を追加するだけです。
コードをまとめると、
$basic_id = "testuser"; //ベーシック認証で設定しているID
$basic_pass = "1t9e6s2t"; //ベーシック認証で設定しているパスワード
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERPWD, "$basic_id:$basic_pass");
curl_setopt($ch, CURLOPT_URL, "http://www.samplepage/?no=1");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
となります。
まさに同じ現象で困っていたのが解消されました!
ありがとうございます。