セッションの使用法は実際には非常に簡単で、ユーザーがセッションに送信したデータをグローバル変数の形式で保存し、同じブラウザーが多すぎる場合の混乱を避けることができます。セッション内の同じサイトには session_id しか存在できません。 session_id の使用方法を見てみましょう。
セッションの使い方
セッションに関連するものについては、その前に関数 session_start() を呼び出す必要があります。
セッションに対する価値の支払いは次のように非常に簡単です:
プログラムコード
コードは次のとおりです | コードをコピー |
Session_start(); |
php4.2以降は、セッション料金を直接支払うことができます:
プログラムコード
コードは次のとおりです | コードをコピー |
Session_Start(); |
次のようにセッションをキャンセルします:
プログラムコード
コードは次のとおりです | コードをコピー |
session_start(); |
php4.2以降では特定のセッション変数のキャンセルにバグが存在します。
セッションを読む
PHP の組み込み $_SESSION 変数は、設定されたセッション変数に簡単にアクセスできます。
例:
コードは次のとおりです | コードをコピー |
session_start(); echo "登録されたユーザー名は:".$_SESSION["username"] //出力 登録されたユーザー名は: nostop ; ?> |
変数がセッション変数として登録されているか確認する
セッションは登録済みです
構文: boobean session_is_registered(文字列名);
この関数は、指定された変数が現在のセッションに登録されているかどうかを確認できます。パラメーター名は、確認する変数の名前です。成功すると、論理値 true が返されます。
例:
コードは次のとおりです | コードをコピー |
Session_start(); If(!session_is_registered("gender")){ //現在のセッション変数が登録されているかどうかを判断します session_register("gender") //変数を登録します } $gender="女性"; エコー $_SESSION['性別'] //女性 ; ?> |
現在のセッション名にアクセスします
セッション名
構文: ブール値セッション名(文字列 [名前]);
この関数は、現在のセッションの名前を取得またはリセットできます。パラメータ名がない場合は現在のセッション名を取得することを意味し、パラメータを追加することはセッション名をパラメータ名に設定することを意味します。
例:
コードは次のとおりです | コードをコピー |
$sessionName = session_name(); // 現在のセッション名を取得します。デフォルトは PHPSESSID です |
現在のセッションID番号にアクセスします
セッションID
構文: ブール値 session_id(string [id]);
この関数は、現在保存されているセッションの識別番号を取得またはリセットできます。パラメータidが無い場合は、現在のセッションの識別番号のみを取得することを意味し、パラメータが追加されている場合は、新たに指定したidにセッションの識別番号が設定されることを意味する。
セッションの有効期間を設定します
コードは次のとおりです | コードをコピー |
setcookie: HTTP Cookie をクライアントに送信します。 |
session_set_cookie_params: セッションの有効期間を設定します。この関数は session_start() 関数が呼び出される前に呼び出される必要があります。
クライアントが IE 6.0 を使用している場合、session_set_cookie_params() 関数で Cookie を設定する際に問題が発生するため、引き続き setcookie 関数を手動で呼び出して Cookie を作成します。
コードは次のとおりです | コードをコピー |
//1日保存 |
セッションファイルの保存パスを設定します
session_save_path(): session_start() 関数が呼び出される前に呼び出す必要があります。
コードは次のとおりです | コードをコピー |
// 保存ディレクトリを設定します
session_start(); //セッションを開始します $_SESSION['age']=23; // age という名前の変数を宣言し、値を代入します session_unregister('username') //セッション変数の登録を解除します unset($_SESSION['age']); //セッション変数の登録を解除します |
注:
1: Session_Start() を呼び出す前に出力を行うことはできません。たとえば、以下は間違っています。
1行
2 行
3行目 Session_Start();//最初の行にはすでに出力がありました
4行....
5行?>
==========================================
ヒント 1:
出力を削除すると正常になります(COOKIEでもこのエラーが発生し、エラーの原因は同じです)
Session_Start() がループ ステートメント内に配置されており、情報が以前にブラウザーに出力された場所を特定するのが難しい場合は、次の方法を使用できます。 1 行目
......これがあなたのプログラムです....
警告: session_start(): open(/tmpsess_7d190aa36b4c5ec13a5c1649cc2da23f, O_RDWR) が失敗しました:....
(1)Cドライブにtmpフォルダを作成します
(2) php.ini を開いて session.save_path を見つけ、 session.save_path= "c:/tmp" に変更します
http://www.bkjia.com/PHPjc/632707.html