人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Docomoでのセッション管理について

認証が必要な携帯サイトでログイン後ユーザーにセッション($_SESSION['id'])を渡し、このセッションが切れたらログアウトするという設定にしています。

以前はDocomo・AU・Softbankの3キャリアで問題なく利用できていたのですが、サーバー移転を行なったところDocomoのケータイでSESSIONを使うことができなくなってしまいました。

//ログアウト処理
if(trim($_SESSION['id']) == ''){
header("location:logout.php");
exit;
}

以前のサーバーでは上記のプログラムで3キャリア問題なく動作していましたが、新サーバーではSoftbank・AUでは動作するのですが、Docomoの古いキャリアだとセッションが使えないみたいで、ログイン処理後、$_SESSION['id']が空となり自動で上記のログアウト処理に引っかかってしまいます。

認証後はPHPSESSIDも持ち歩いているのですが、DBにアクセスする際の会員ID(($_SESSION['id'])がどうしても必要なためDocomoでどうにかセッションが利用できないお伺いしたく質問をさせて頂きました。

php.iniの設定などで修正する方法等が御座いましたらご教授頂けたら幸いです。

●質問者: ぽこすけ
●カテゴリ:ウェブ制作
✍キーワード:au dB DoCoMo EXIT PHP
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● fukken
ベストアンサー

大半のガラケーはCookieに対応していない。

通常のサーバーは初期設定でセッションIDをクッキーで引き回すため、ガラケーでセッション管理できない。

対応としては、CookieではなくURLにセッションIDを埋め込めばいい、つまり$_GET変数としてセッションIDを引き回す。

http://www.php.net/manual/ja/session.configuration.php#ini.session.use-cookies

use_cookiesをOFFにすればいい。その他細かい設定やコードサンプルは「php use_cookies ケータイ」などでぐぐればたくさん出てくる。恐らくsession.use_only_cookiesもoffにする必要がある。

デフォルトでoffになっているのは、GET変数によるセッション引き回しはセキュリティ面で弱いから。PCサイトも並行して運用しているのであれば、そちらはクッキーでセッションを引き回すようにした方がいい。

ケータイだけであれば…弱いのは事実だが、業界的にも一般的慣習だし、仕方ない、という所。端末固有IDなどでセッションを実装する、という方法もあるが(端末IDは詐称不可能な事が多いので安全性が高い)、これはこれで別のセキュリティ上の問題があり、一長一短。

◎質問者からの返答

ご回答ありがとう御座いました。

以前のサーバーと新サーバーのphpinfoを比較したところ「session.use_only_cookies」が新サーバーではONになっていたためOFFにしたところ問題なく動作致しました。

ご回答大変感謝致します。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ