PHP設定セッション(有効期限・無効化・有効期間)の詳細解説_PHPチュートリアル

WBOY
リリース: 2016-07-13 10:50:22
オリジナル
721 人が閲覧しました

php でセッションを設定するには、セッションの値を設定したり、有効期限、有効期限、有効期間を直接設定したりするなど、さまざまな側面があります。以下のエディターでその使用方法を紹介します。

まずphp.iniでセッションを設定する方法を見てみましょう

php.ini を開き、[セッション設定] セクションで次の項目を探します:

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

session.save_path = "N;/パス"
session.save_path = "C:/Temp" #これは自分で設定したパスに依存します


この設定により、セッション ストレージ ディレクトリでマルチレベル ハッシュを実行できます。ここで、「N」は設定するディレクトリ レベルを表し、次の「/path」はセッション ファイルが保存されるルート ディレクトリ パスを表します。次の形式に設定します

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

session.save_path = "2;C:/Temp"

上記の設定は、ディレクトリの各レベルが 0 ~ 9 と a ~ z で、合計 36 個の英数字の名前がセッションを保存できるディレクトリに保存されることを意味します。合計 36*36 のフォルダーに達する可能性があるため、システム アーキテクチャが複数のサーバーとセッション データを共有するように設計されている場合は、ディレクトリ レベルを 3 または 3 に増やすことができます。もっと。

セッションの有効期限設定


PHP のセッションのトピックに戻りますが、セッションのライフサイクルは主に session.gc_maxlifetime を設定することによって PHP で設定されます。例:

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

ini_set('session.gc_maxlifetime', 3600); // 時間を設定します
ini_get('session.gc_maxlifetime');//iniに設定されている値を取得
?>

以下は他の人がパッケージ化した機能ですが、私はテストしていません。参考用です。

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

関数 start_session($expire = 0)
{
If ($expire == 0) {
$expire = ini_get('session.gc_maxlifetime');
} その他 {
ini_set('session.gc_maxlifetime', $expire);
}

if (empty($_COOKIE['PHPSESSID'])) {
session_set_cookie_params($expire);
session_start();
} その他 {
session_start();
setcookie('PHPSESSID', session_id(), time() + $expire);
}
}
?>

使用方法:

start_session(600) を追加します。 // 600 秒後に期限切れになります。


セッションを期限切れにしない方法


php.ini設定ファイルを開きます

次のように 3 行を変更します:

1.セッション.use_cookies
この値を 1 に設定し、Cookie を使用してセッション ID を渡します

2.セッション.クッキー_ライフタイム
これは、セッション ID がクライアント Cookie に保存される時間を表します。デフォルトは 0 です。これは、ブラウザが閉じるとすぐにセッション ID が無効になることを意味します。このため、PHP セッションは永続的に使用できません。 ! それでは、大きいと思われる数値に設定しましょう。999999999 はどうでしょうか。それでOKです。それだけです。

3.セッション.gc_maxlifetime
これは、セッション データがサーバー側に保存される時間です。この時間を超えると、セッション データは自動的に削除されます。 そこで、これも 99999999 に設定しましょう。

それだけです。すべて問題ありません。もちろん、信じられない場合は、テストしてください。コンピュータの電源がオフまたはダウンしていなくても、セッションをセットアップして 10 日半後に戻ってください。このセッションIDを参照してください。

もちろん、あなたがサーバーを制御する権限を持っておらず、php.ini 設定を変更できるほど幸運ではない可能性もあります。もちろん、私たち自身に頼る方法があります。クライアントを使用して Cookie を保存し、取得したセッション ID をクライアントの Cookie に設定し、この値を session_id() 関数に渡します。具体的な方法は次のとおりです。

コードは次のとおりですコードをコピー
session_start(); // セッションを開始します

$_SESSION['count'] // セッション変数の数を登録します
; isset($PHPSESSID)?session_id($PHPSESSID):$PHPSESSID = session_id(); // $PHPSESSID が設定されている場合は、SessionID を $PHPSESSID に割り当て、それ以外の場合は SessionID を生成します

$_SESSION['count']++ // 変数 count に 1 を加算します

setcookie('PHPSESSID', $PHPSESSID, time()+3156000); // セッション ID を Cookie に保存します

echo $count; // セッション変数 count の値を表示します
?>

http://www.bkjia.com/PHPjc/632659.html

tru​​ehttp://www.bkjia.com/PHPjc/632659.html技術記事 php でのセッションの設定には、セッションの値の設定や、有効期限、有効期限、有効期間の直接設定など、さまざまな側面があります。次のエディターでは、その使用方法を紹介します。 まずは見てみましょう...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!