こんにちは。
昨日はセッションにかなり悩まされてました。
$_COOKIE
の値は入っているのに、何故$_SESSION
の値が急に消える・・・。
一つ画面を仲介、いわゆる確認画面とか、セレクトショップみたいなものですが
最初に
session_start() ;
$_SESSION['test'] = "test" ;
ここで、
var_dump($_SESSION) ;
すると上手く値を取得できているのに何故。
と、迷ってたところ
2つやらなくてはいけないところがありました。
1. ファイル所有者の確認
セッションを書き込むところの権限がrootになっていたため、
書き出せないよ~!
と怒られているログを発見。
エラーログはこんな感じ
PHP Warning: session_start() [<a href='function.session-~: open~
failed: Permission denied
PHP Warning: Unknown: open(/var/~/session/~) failed: Permission denied
書き込み権限がない(所有者がrootになってる)から
変更させなくては。
というものでした。
これは
/var/lib/php/session
ここの権限もしくは所有者、グループを変えればOKでした。
2.session_start()の書く位置
さて、これでどうやら画面をまたぐことはできた。
と、思ったのですがまたどこか途中で値を落としてきた模様。
どうやら、session_start()は
<?php
session_start();
と、<?phpの直下に書かなきゃいけないようです。
しらなかったです。
それでは今後ともよろしくお願いします。