2009年8月20日

[PHP-users 34708] Re:セッション変数がセッション変数にならない

ただの@凄く久しぶりに投稿している です。

> お世話になってます、朧月です。
>
> 菊澤 正明 wrote (2009/08/20 10:58):
>
>> 連想配列$_SESSIONのキーは、PHPの通常の変数名と同じ制限があります。
>> すなわち、数字で始まることはできず、文字ま たはアンダースコアで始まる

>> 必要があります。
>>
>> $_SESSIONのキーに数値を使うことはできないためかと思われます。。
>
> まさにその通りでした。ただのさんのご指摘の通りにコードを書いたら、うまく
> 行きました。出力は以下の通りです。
>
> aaa0aaa1aaa2aaa3aaa4aaa5aaa6aaa7aaa8aaa9aaa10aaa11aaa12aaa13aaa

うまく行ってよかったです。

以下は、ご存知ならば無視してください。

今回のように、セッション変数に代入したのに、伝わらないと言う時には、
そのスクリプト内で値を参照して見てもダメです。
セッション情報として保存されるためには、標準的には(Linuxでは)、

/tmp/sess_[セッションID]

というファイルが出来、この中にセッション情報がシリアライズされたもの
が書き込まれます。なので今回の件では、このファイルが出来ていたも
のの、中身が空っぽだったのではないでしょうか。

また、鈴木さんのご指摘&その結果で、

> 鈴木孝征 (Suzuki Takamasa) wrote (2009/08/20 10:30):
>
>> b.phpでvar_dump($_REQUEST)としたときにセッションIDがきていることが確認で
>> きますでしょうか。
>
> array(1) { ["PHPSESSID"]=> string(32) "12a6643c25a48c1d7d3aa43acd784c4f" }
>
> b.phpにて以上の用に出力されるのですが、意味はちょっと分からない感じです。

ここに表示されているのが、セッションIDなわけですので、
先ほどのファイルでは、

/tmp/sess_12a6643c25a48c1d7d3aa43acd784c4f

というのが作成されているはずです。もともとのプログラムでは、このファイル
のサイズが0バイトになっていたはずです(一応確かめました)。

あとは、リクエストごとにセッションIDが変ってしまって、値が
取得できないという事もあります。

この場合、IEですとセッションクッキーもその都度確認の
ダイアログを表示させることができるので、それで調べて
見る方法があります。

一応ご参考までに。

--
Masayuki Tadano <duke.tadano@xxxxx>
_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3


投稿者 xml-rpc : 2009年8月20日 11:58
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/87720
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。