0

これを行うためのより良い方法はありますか?最初のコードでセッションを設定し、直後にそれを参照していますが、最初の反復で認識されません。

ユーザーがアクティベーションキーを入力すると、コードがそれをデータベースと照合します。データベースが存在する場合は、後で使用するためにキーをセッションに配置します。ブラウザを最初に開いたときからは機能しませんが、その後は常に機能します...これは非常に奇妙です。

セッションの作成:

session_start();
....
$_SESSION['SESS_KEY'] = $member['key'];    
session_write_close();
header("location: http://example1.com")
exit();

セッションの確認:

 session_start();
 if(!isset($_SESSION['SESS_KEY']) || (trim($_SESSION['SESS_KEY']) == '')) {
    header("location: http://example2.com");
 }

それは私がsession_start()とヘッダーを使用している方法かもしれませんが、私はレンガの壁にいて、それを理解しようと非常に長い時間を費やしてきました。アドバイスをいただければ幸いです。

4

1 に答える 1

0

これは通常の動作です。作成されると、クライアント ブラウザからの次のリクエストでリクエスト ヘッダーで送信されます。同じページでセッション変数の作成されたばかりの値にアクセスすることはできません。このシナリオでは、変数を作成し、必要に応じて変数にアクセスできます。変数は、PHP での単一の要求処理で異なるファイル間でアクセスできます。

于 2012-09-10T18:36:18.003 に答える