$ _SESSIONにアクセスできませんか?

これは私のコードです:

// Save stuff to session
$_SESSION['uid'] = $uid;
$_SESSION['name'] = $user_profile[name];

// Redirect to test page
header( 'Location: http://www.justwalk.it/test.php' ) ;

リダイレクトの代わりにセッションを印刷すると、問題なく取得できます。

Array ( [uid] => xx [rank] => xx  [name] => xx ) 

しかし、test.phpでリダイレクトしてもセッションはすでに印刷できません。 test.phpの唯一のコードは次のとおりです:

<? session_start();
print_r($_SESSION);?>

しかし、それは array()を出力し、 $ _ SESSION ['uid'] は何も返しません。

私はセッションが時折私のページの他の場所で飛び出すので、セッションが設定されていないとは思わない。それは、常にアクセス可能ではありません。そして私は理由を知らない。私は間違って何をしていますか?あるいは、私が何か悪いことをしていないなら、何がこの問題の原因かもしれませんか?

0
はい、私はちょうどその場合にチェックしましたが、私はしました。 session_start()があり、書き出し、リダイレクトして、もう一度印刷しようとしています。
追加された 著者 lisovaccaro,
私はすべてのページでそれを持っています、私は今2ページだけをテストしています:login.phpとtest.phpはどちらもsession_start()を持っています。最初の行として、私は可能性をほとんど無くし、まだセッションにアクセスできない。しかし、それはランダムにサイト上で動作します
追加された 著者 lisovaccaro,
現在使用しているドメインの justwalk.it ですか?
追加された 著者 Pekka 웃,
ばかげた質問かもしれませんが、$ _SESSIONに値を保存する前にsession_start()を覚えていましたか?
追加された 著者 GordonM,
$ _ SESSION スーパーグローバルを使用する前にまたはを割り当てるかどうかにかかわらず、 every ページで session_start i>値を読み込む。
追加された 著者 Paulpro,

3 答え

session_start()の前にブラウザにHTMLなどを送信するかどうかを確認してください... error_reportingをE_ALLに設定し、ログファイルを確認することもできます。

0
追加された

test.phpで、session_start()がFALSEを返していないことを確認します。これは、セッションの作成または再開に失敗したことを示します。

if (! session_start()) die "OMG, total session asplosion.";

それが問題ならば、おそらくエラーログを調べて、何が起きているのか把握する必要があります。 (実際には、エラーログには何か?)

0
追加された

セッションの設定を解除するコードがない場合は、URLの非wwwバージョンを使用して元のスクリプトにアクセスしてからwwwのURLにリダイレクトするかどうかを調べることをお勧めします。

前述のT1000のように、 session_start()の前に出力される可能性がある別の原因は、UTF8 BOM文字が時々目に見えない出力を引き起こすことで有名です。

0
追加された
それだけでした。私はちょうど私の自身の質問に答えるために来ていた、最初のファイルはwwwを持っていなかった。私はwwwにリダイレクトしていました。私はこれが起こったことを知らなかった、感謝して私はラップトップを窓から投げ込む前に発見した
追加された 著者 lisovaccaro,
それはいつも小さなものです:)
追加された 著者 code_burgar,
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com