PHPセッションの使い方は?セッションの使用法_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:49:24
オリジナル
1058 人が閲覧しました

セッションの使用法は実際には非常に簡単で、ユーザーがセッションに送信したデータをグローバル変数の形式で保存し、同じブラウザーが多すぎる場合の混乱を避けることができます。セッション内の同じサイトには session_id しか存在できません。 session_id の使用方法を見てみましょう。

セッションの使い方
セッションに関連するものについては、その前に関数 session_start() を呼び出す必要があります。

セッションに対する価値の支払いは次のように非常に簡単です:


プログラムコード

コードは次のとおりです コードをコピー

Session_start();
$Name = "これはセッションの例です";
Session_Register("Name");//次のように書かないでください: Session_Register("$Name");
エコー $_SESSION["名前"];
//$_SESSION["Name"] は「これはセッションの例です」になります
?>

php4.2以降は、セッション料金を直接支払うことができます:


プログラムコード

コードは次のとおりです コードをコピー

Session_Start();
$_SESSION["名前"]="値";
?>

次のようにセッションをキャンセルします:

プログラムコード

コードは次のとおりです コードをコピー

session_start();
session_unset();
session_destroy();
?>

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 です
$sessionID = $_GET[$sessionName] //セッションIDを取得
session_id($sessionID); // session_id() を使用して取得したセッション ID を設定します
?>

現在のセッションID番号にアクセスします

セッションID

構文: ブール値 session_id(string [id]);

この関数は、現在保存されているセッションの識別番号を取得またはリセットできます。パラメータidが無い場合は、現在のセッションの識別番号のみを取得することを意味し、パラメータが追加されている場合は、新たに指定したidにセッションの識別番号が設定されることを意味する。

セッションの有効期間を設定します

コードは次のとおりです コードをコピー

setcookie: HTTP Cookie をクライアントに送信します。
セッション開始
// 1 日保存します
$lifeTime = 24 * 3600;
setcookie(session_name(), session_id(), time() + $lifeTime, "/");
?>

session_set_cookie_params: セッションの有効期間を設定します。この関数は session_start() 関数が呼び出される前に呼び出される必要があります。
クライアントが IE 6.0 を使用している場合、session_set_cookie_params() 関数で Cookie を設定する際に問題が発生するため、引き続き setcookie 関数を手動で呼び出して Cookie を作成します。

コードは次のとおりです コードをコピー

//1日保存
$lifeTime = 24 * 3600;
session_set_cookie_params($lifeTime);
session_start();
$_session["admin"] = true;
?>

セッションファイルの保存パスを設定します

session_save_path(): session_start() 関数が呼び出される前に呼び出す必要があります。

コードは次のとおりです コードをコピー

// 保存ディレクトリを設定します
$savePath = "./session_save_dir/";
// 1 日保存します
$lifeTime = 24 * 3600;
session_save_path($savePath);
session_set_cookie_params($lifeTime);
session_start();
$_session["admin"] = true;
?>

session_start(); //セッションを開始します
$username='nostop';
session_register('username'); //username という名前の変数を登録します
echo '登録ユーザー:'.$_SESSION['ユーザー名'] //登録ユーザー: nostop セッション変数を読み取ります

$_SESSION['age']=23; // age という名前の変数を宣言し、値を代入します
echo '年齢:'.$_SESSION['年齢'] //年齢: 23

;

session_unregister('username') //セッション変数の登録を解除します
echo $_SESSION['ユーザー名'] //空
; echo $_SESSION['age'];//23

unset($_SESSION['age']); //セッション変数の登録を解除します
echo '登録ユーザー:'.$_SESSION['ユーザー名'] //空
; echo '年齢:'.$_SESSION['年齢'] //空
; ?>

注:

1: Session_Start() を呼び出す前に出力を行うことはできません。たとえば、以下は間違っています。

1行
2 行 3行目 Session_Start();//最初の行にはすでに出力がありました
4行....
5行?>
==========================================

ヒント 1:

「....headers 既に送信されました....」が表示される場合は、Session_Start()の前に情報がブラウザに出力されていることを意味します。

出力を削除すると正常になります(COOKIEでもこのエラーが発生し、エラーの原因は同じです)

ヒント 2:

Session_Start() がループ ステートメント内に配置されており、情報が以前にブラウザーに出力された場所を特定するのが難しい場合は、次の方法を使用できます。 1 行目

......これがあなたのプログラムです....

2: このエラーは何ですか


警告: 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

tru​​ehttp://www.bkjia.com/PHPjc/632707.html技術記事 session の使用法は実際には非常に簡単で、セッション内でユーザーが送信したデータをグローバル変数の形式で保存し、大量に生成されないように一意の session_id を生成します。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート