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

携帯サイトにログイン直後のセッションID取得に関するご質問です。

セッション管理をURLに付加されるよう設定したのですがログイン後のURLは

mb.example.com/my/

とセッションIDは付加されず他のページに相対リンクで移動すると

mb.example.com/my/team/?session_id=xxxxxxxx

のようにURLに付加されます。2ページ目移行は$_GET['session_id']で
セッションIDを取得できるのですが、1ページ目のようにURLから取得できない場合は
どの様にセッションIDを取得すればよいのでしょうか?

ご教授のほど宜しくお願い致します。

1286005658
●拡大する

●質問者: gelgelgel
●カテゴリ:インターネット ウェブ制作
✍キーワード:example.com MB URL セッション リンク
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● u6k
●20ポイント

http://www.example.com/

セッションIDを取得する$_GET['session_id']は、「ブラウザからのGETリクエストからsession_idを取得する」という動作になります。

これを踏まえてログイン直後の挙動を見ますと、ログイン直後(mb.example.com/my/)では、Webサーバ→ブラウザにsession_idを送信しただけで、ブラウザからのGETリクエストにはsession_idは含まれていません。

次に移動したとき(mb.example.com/my/team/?session_id=xxxxxxxx)では、ブラウザ→WebサーバにGETリクエストでsession_idが送信されたので、$_GET['session_id']で取得することができます。

1ページ目からセッションIDを取得するには方式の変更が必要かと思います。ぱっと思いつくものでは以下のような方法があります。

・GETから直接取得するのではなく、別の変数を定義する。

・ログイン後はログイン後ページにリダイレクトする。

◎質問者からの返答

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

大変参考になりました。


2 ● tyoro
●40ポイント ベストアンサー

PHPで問題ないでしょうか?

PHPの場合はsession_id()関数で取得できると思います。

http://php.net/manual/ja/function.session-id.php

◎質問者からの返答

ご回答ありがとうございます。

session_id()で取得できなかった・・と思ったらできました!!

書き込む位置が悪かった?ようです。

解決いたしました。


3 ● jacopetti
●20ポイント

セッションIDそのものが欲しいのでなく、セッション変数に入れたり出したりしたいんだと思うのですが、ログイン時のユーザリクエストへのレスポンスにそのまま200 OKで一画面目を書き出してるなら、そもそもログイン後の1画面目で使う変数をセッションから取る必要は無いと思われます。

ログインを処理しているリクエストに対するレスポンスを書き出す時に使う変数の何処かに置いてやれば良いのでは。

セッションIDそのものが必要なら、ログインをしている処理のどっかでセッションIDを横取りできたら可能性でしょうけど、どういう環境なのか分からないのでアドバイスのしようがありません。

とりあえず、WEBのセッションなるものが一体なにものなのかは↓とか参照で。

http://www.atmarkit.co.jp/fdotnet/entwebapp/entwebapp06/entwebap...

◎質問者からの返答

ご回答ありがとうございます。

自分がPHPしかしないので環境の説明が抜けていました・・。失礼いたしました。

セッションID自体はマイページ内にformでジャンプするような仕組みがあるため、

相対リンクでは飛べないので必要でした。

ありがとうございました。

関連質問


●質問をもっと探す●



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