PHP

【PHP】ベーシック認証が原因でcURLに「Authorization Required」エラーが!!

【PHP】ベーシック認証が原因でcURLに「Authorization Required」エラーが!!

【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);

となります。