PHP Notice: Undefined index: HTTP_USER_AGENTが出た

2019年2月12日IT関連,PHP

PHPでWebサイトを構築していてユーザエージェントを取得している処理で、

「PHP Notice: Undefined index: HTTP_USER_AGENT」というエラーが出ている場合の原因を考えます。

原因

Undefined indexは通常、値が定義されていない時に出るエラーになります。

ブラウザからのアクセスであればユーザーエージェントは設定されてくるのですが、ブラウザのダウンロード補助アドオンやWeb自動巡回などはユーザーエージェントを返さないものがあります。

なので、通常アクセスでは特にHTTP_USER_AGENTの値チェックなどをせずに実装してしまいがちです。

どうするか

毎回エラーが出るのは嫌なので、チェックを追加してエラーを回避することにします。

$user_agent = "";
// ユーザーエージェントが定義されている場合だけ取得
if(isset($_SERVER["HTTP_USER_AGENT"])){
    $user_agent = $_SERVER["HTTP_USER_AGENT"];
}

これでエラーが出なくなります。