0

セッション初心者です。ログインに成功した場合にユーザーにセッションを提供する認証システムを構築しようとしています。そのセッションは、現在のユーザーの身元を認識するために使用されます。したがって、ログインが成功した場合:

$_SESSION['id'] = $username;

また、ユーザーが閲覧するすべてのページに含まれる header.php ファイルに session_start() を配置しました。ただし、セッションを割り当てた後、確認しようとすると、

isset($_SESSION['id'])

毎回 false を返します。セッションを維持するために特にやらなければならないことはありますか? ありがとう、申し訳ありませんが、初心者の質問です。

4

1 に答える 1

0

session_start()すべてのページの上部で呼び出すようにしてください。

基本的な使用法については、マニュアルを参照してください

セッションは、一意のセッション ID に対して個々のユーザーのデータを保存する簡単な方法です。これは、ページ要求間で状態情報を保持するために使用できます。セッション ID は通常、セッション Cookie を介してブラウザに送信され、ID は既存のセッション データを取得するために使用されます。ID またはセッション cookie がない場合、PHP は新しいセッションを作成し、新しいセッション ID を生成する必要があることを認識できます。

セッションは単純なワークフローに従います。セッションが開始されると、PHP は渡された ID (通常はセッション Cookie から) を使用して既存のセッションを取得するか、セッションが渡されない場合は新しいセッションを作成します。セッションの開始後、PHP は $_SESSION スーパーグローバルにセッション データを入力します。PHP がシャットダウンすると、自動的に $_SESSION スーパーグローバルの内容が取得され、シリアル化され、セッション保存ハンドラーを使用してストレージに送信されます。

デフォルトでは、PHP は、session.save_handler によって設定された内部ファイル保存ハンドラーを使用します。これにより、session.save_path 構成ディレクティブで指定されたサーバー上の場所にセッション データが保存されます。

セッションは、session_start() 関数を使用して手動で開始できます。session.auto_start ディレクティブが 1 に設定されている場合、セッションはリクエストの開始時に自動的に開始されます。

セッションは通常、PHP がスクリプトの実行を終了すると自動的にシャットダウンしますが、session_write_close() 関数を使用して手動でシャットダウンすることもできます。

例1 $_SESSION での変数の登録。

<?php
session_start();
if (!isset($_SESSION['count'])) {
  $_SESSION['count'] = 0;
} else {
  $_SESSION['count']++;
}
?>
于 2013-02-11T02:30:10.820 に答える