【PHP】cURLでベーシック認証ページへアクセス
ページコンテンツを読み込む際にcURL関数を使用していたのですが、急に「Authorization Required」というエラーが!!
エラーが出た部分のPHPコードはこちらです。
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, “https://example.com/?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 = “12345678”; //ベーシック認証で設定しているパスワード
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERPWD, “$basic_id:$basic_pass”);
curl_setopt($ch, CURLOPT_URL, “https://example.com/?no=1”);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
となります。