おそらくPHP4系の時代から動いているWebアプリケーション。新しいサーバーへ移行しました。 いまさらPHP4をインストールするわけにもいきませんし、ならば最新ということでPHP5.3.xをセッティング。 動作確認していると、携帯向けページでログインできません。
クッキーが使えないケータイブラウザがあります。 それらに対応するため、セッションIDをGETパラメータにくっつけて引きずり回す対応をしてありました。(たぶん普通の対応) しかし、PHP5.3.0からは「セッションIDはクッキーでのみ使用する」設定がデフォルトになっています。
http://www.php.net/manual/ja/session.configuration.php#ini.session.use-only-cookies より引用:
session.use_only_cookies は、 このモジュールがクライアント側へのセッション ID の保存に Cookie のみを使用することを指定します。 この設定を有効にすることにより、セッション ID を URL に埋め込む攻撃を防ぐことができます。 この設定は、PHP 4.3.0 で追加されました。 PHP 5.3.0 以降で、デフォルトは 1 (有効) となります。
php.iniに下記を記述します。
session.use_only_cookies = 1
または、アプリケーションソース該当箇所に下記を記述します。
ini_set('session.use_only_cookies', 1);Tweet