PHP+Apacheで、セッションを利用して変数等をフォーム間で引渡しを行っていた。
今まで撲が作ったPHPのプログラムでは問題なかったため、他のシステムでも
問題なく動かすことができるだろうとたかをくくっていたら、動かないのだ。
まあ、環境まわりも違うので1つずつつぶしっていってある程度動くところまで
もっていった。
しかし、ログイン関係でうまく動作してないのだ。
プログラムデバックをしてわかったのだが、どうもセッションから値がとれていないのだ。
今まで、同じ環境でも問題なかったのでなにか、システムを設置したときの環境が
だめなのかとか丸1日使って調べたのだがわからない。
それで、セッションID(session_id() )を調べたら毎回変わっているのだ。
同一ブラウザでの同じWEBサーバーへのアクセスならばセッションIDは同じだと思っていたのだが
それは大きな勘違いだったようだ。反省せねば。
セッションIDは、どうもWEBページが変わるたびに別セッションとして管理するようだ。
仮に同じページへ再アクセスしても別セッションとして扱うようだ。
それで、同一セッションとみなすためにセッションIDを引き継がないといけない。
方法はいろいろとあるが、php.iniファイルを変更することにした。
—————————————————————-
session.use_trans_sid = 0 -> session.use_trans_sid = 1
—————————————————————-
に変更をし、Apacheを再起動で設定は完了である。
セッションIDは引継がれて問題なく動作するようになった。
困った時は、この機能がどういう仕組みで動くのか原点から追いかけるいい例だったかも
しれない。
※参考 http://www.yc.musashi-tech.ac.jp/~yamada/doc/php/0801.html
コメント