ホームページ >バックエンド開発 >PHPチュートリアル >php sessionの使い方を教えます_PHPチュートリアル

php sessionの使い方を教えます_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:25:44855ブラウズ

PHP セッションの使用法は、実際には非常に簡単です。セッション内でユーザーが送信したデータをグローバル変数の形式で保存し、一意の session_id を生成します。これは、セッション内の同じブラウザーと同じサイトでの混乱を避けるためです。 session_id は 1 つだけです。 session_id の使用方法を見てみましょう。
セッションの使用方法、セッションに関連するものはすべて、その前に関数 session_start() を呼び出す必要があります。
セッションへの値の割り当ては、次のように非常に簡単です。

コードをコピーします コードは次のとおりです。
Session_start() ;
$Name = "これはセッションの例です";
Session_Register("Name");//次のように書かないでください: Session_Register("$Name");
Echo $_SESSION ["Name"];
//$_SESSION["Name"] の後は、「これはセッションの例です」
?>


php4.2 以降では、セッションに値を直接割り当てることができます:

コードをコピーします コードは次のとおりです:
< ?PHP
Session_Start();
$_SESSION["name"]="value";
?>
session_start();
session_unset();
session_destroy();
?>

セッションを読む PHP の組み込み $_SESSION 変数は、設定されたセッション変数に簡単にアクセスできます。

コードをコピー

コードは次のとおりです:


session_start();

echo "登録済みのユーザー名: ".$_SESSION["username"] //登録済みのユーザーを出力します。 name :nostop

?>


変数がセッション変数として登録されているかどうかを確認します session_is_registered

構文: boobean session_is_registered(string name);この関数は、指定された変数が現在のセッションに登録されているかどうかを確認できます。 name は確認する変数名です。成功すると、論理値 true が返されます。
コードをコピー

コードは次のとおりです:


session_start();
if(!session_is_registered("gender")){ // 現在のセッション変数が登録されているかどうかを判断します
session_register ("性別") ; //変数を登録します
}
$gender="女性";
echo $_SESSION['性別'] //女性
?> 現在のセッション名にアクセスします session_name
構文: boolean session_name(string [name]);
この関数は、現在のセッションの名前を取得またはリセットできます。パラメータ名がない場合は現在のセッション名を取得することを意味し、パラメータを追加することはセッション名をパラメータ名に設定することを意味します。



コードをコピーします

コードは次のとおりです:


$sessionName = session_name(); //現在のセッション名を取得します。デフォルトはPHPSESSID

$sessionID = $_GET[$ sessionName]; //セッションIDを取得

session_id($sessionID); //取得したセッションIDを設定するにはsession_id()を使用します
?>

現在のセッション識別番号にアクセスします session_id 構文: boolean session_id(string [id]); この関数は、現在保存されているセッションの識別番号を取得またはリセットできます。パラメータidが無い場合は、現在のセッションの識別番号のみを取得することを意味し、パラメータが追加されている場合は、新たに指定したidにセッションの識別番号を設定することを意味する。 セッションの有効期間を設定します


コードをコピーします

コードは次のとおりです:

session_start

// 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();
$_ses sion["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[ 'username ']; //登録ユーザー: nostop セッション変数を読み取ります

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

;

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

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


注:

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

1 行目
2 行目 3 行目 Session_Start();//最初の行の前の
4 行目....
5 行目 ?>

ヒント 1:

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

出力を削除すれば正常になります。 COOKIE のようなエラー、エラーの理由は同じです)

ヒント 2:

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

Line 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/824972.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/824972.html技術記事 PHP セッションの使用法は実際には非常に簡単で、セッション内でユーザーが送信したデータをグローバル変数の形式で保存し、一意の session_id を生成することができます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHP_PHP チュートリアルでの VC6、VC9、TS、NTS バージョンの違いと使用法の詳細な説明次の記事:PHP_PHP チュートリアルでの VC6、VC9、TS、NTS バージョンの違いと使用法の詳細な説明

関連記事

続きを見る