dポイントプレゼントキャンペーン実施中!

PHPでCOOKIEを用いたセッションチェックをしようとしています。
トップページを表示する関数とセッション管理の関数に分けて処理をしています。
function index(){
session_start();
if($this->CheckSession())
ログインのページ
else
ログオフのページ
}
function CheckSession(){
if(!$_COOKIE["hoge"])
DBにセッションID(COOKIE["hoge"]の値)を入れる
setcookie("hoge",session_id());
return false;
else
 return true;
}
このとき更新ボタンを押すたびにCOOKIEの値が変わります。
なぜでしょうか?

A 回答 (2件)

ブラウザのcookie off かと一瞬思ったが、これだと、cookie 情報自体がとれないし。


php.iniのsession.use_cookies 設定は、1 ですよね?
あと、$_SESSIONになにもデータを入れてないと、session保持ファイルを作成しなかったような?気がするけど未確認。
cookieでsession id情報が送られてきてもsession 保持データがないと新たにidが発行されます。
とりあえず、$_SESSIONにもなにか入れて、var_dump() で、$_SESSIONと$_COOKIE になにが入ってるか確認してみたら?
    • good
    • 0

そこまで詳しいわけではないので、見当違いな回答でしたら申し訳ありません


リロードの度にsession_startで新しくセッションを作成して、
その度そのセッションidを保存しているからではないでしょうか?

かすってもいなかったら申し訳ないです・・・
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!