ここから本文です

PHPでプログラムを書いています。 クッキー「PHPSESSID」があるのにセッションを...

沙李さん

2012/8/3005:18:10

PHPでプログラムを書いています。
クッキー「PHPSESSID」があるのにセッションを読み込めないのですが原因は何でしょうか。

ログインページからメインページに移る部分を作っています。

【login.php】(一部)
session_start();
session_regenerate_id();
$_SESSION['userid'] = $id;
header("Location: ./");
exit;

として、index.phpに移動するのですが、index.phpからは$_SESSION['userid']を参照できず、
Undefined variable: _SESSIONのエラーが出てしまいます。

【index.php】(一部)
if(!isset($_SESSION['userid'])) {
//エラーメッセージを表示するためにこの部分はコメントアウトしています。
//header('Location: login.php');
//exit;
}
$my_id = $_SESSION['userid'];
print_r($_COOKIE);
echo "<br>";
print_r($_SESSION);

ログイン側のheader("Location: ./");を一度無効にして、$_SESSION['userid']をechoしたところ正常に出力されました。
しかしindex.php移行後は、print_r ($_COOKIE)でPHPSESSIDがあることはわかったのですが、$_SESSION['userid']どころか$_SESSION自体が存在しないようです。

以前作った、別のサーバーで動いていたほぼ同様のものをベースに作っているので、コードの移行のミスかと思い色々チェックしているのですが、原因がわからずお手上げ状態です。

(データベース設定の書き換えなどで手間がかかりすぎるので、以前のものを今回のサーバーで動かすテストはやっていませんが、XAMPPと000webhostというレンタルサーバー上で同じ結果なので、環境の問題ではないと判断しています。)

どうかアドバイスをお願いしたいです。

閲覧数:
2,992
回答数:
1
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

shimixさん

2012/8/3008:27:40

>print_r ($_COOKIE)でPHPSESSIDがあることはわかったのですが、
>$_SESSION['userid']どころか$_SESSION自体が存在しないようです。

index.phpでsession_start()していないのではありませんか?

質問した人からのコメント

2012/8/30 09:26:43

完全にそうでした!
頭冷やします!

「コードの移行のミスかと思い色々チェックしている」などと言っておいて見事に抜けていました。お恥ずかしい…。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる