LoginSignup
24
19

More than 5 years have passed since last update.

【PHP】$_SESSIONで値が消えたりするときに確認すること

Last updated at Posted at 2014-06-12

こんにちは。
昨日はセッションにかなり悩まされてました。

$_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の直下に書かなきゃいけないようです。
しらなかったです。

それでは今後ともよろしくお願いします。

24
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
19