未定義のサーバ変数($_SERVER)を初期化しておこうよ。

たしか、携帯電話用のGoogleアドセンスを使おうとしてて、

Notice: Undefined variable:

ってエラーが出て書いたコード。

ちなみに、エラーレベルは、

error_reporting(E_ALL | E_STRICT);

厳密にチェックしてくれなくっちゃ、怖くてソース書けませんです。

携帯電話用のGoogleアドセンスで、PHP版を使うと、$_SERVERの値を求められるのね。

で、状況によっては$_SERVERの中身が全部定義されてないこともあって、E_STRICTにしてると、『変数が定義されていないよ』って上記のエラーが発生する。

んなわけだから、コードの最初のほうで、$_SERVERを初期化しちゃいましょう。

/*
 * サーバ変数が未定義なら空をセットする
 */
foreach (array(
    'HTTPS', 'HTTP_HOST', 'REMOTE_ADDR', 'HTTP_REFERER', 'REQUEST_URI'
    , 'HTTP_USER_AGENT', 'HTTP_UA_PIXELS', 'HTTP_X_UP_DEVCAP_SCREENPIXELS'
    , 'HTTP_ACCEPT', 'HTTP_X_DCMGUID'
  ) as $value){
  if ( ! isset($_SERVER[$value])) $_SERVER[$value] = '';
}

広告