ホームページ バックエンド開発 PHPチュートリアル PHPでセッションを削除および破棄する方法

PHPでセッションを削除および破棄する方法

Apr 26, 2017 pm 02:32 PM
php session 消去 破壊する

PHP でセッションを削除および破棄する方法: セッション変数を使用した後、それを削除できます。ユーザーが Web システムを終了したい場合は、セッション変数を破棄することもできます。ログアウト機能を使用すると、サーバー内のすべてが破棄されます。

PHPでセッションを削除および破棄する方法

セッションを削除するには、単一のセッションを削除する、複数のセッションを削除する、現在のセッションを終了するという 3 つの主な方法があります。以下に、3 つの方法それぞれについて簡単に説明します。

(1)単一セッションの削除

単一セッションの削除は、配列の操作と同様に、$_SESSION 配列の要素を直接ログアウトすることを意味します。

例: $_SESSION['user'] 変数、unset() 関数を使用できます。コードは次のとおりです:

unset( $_SESSION['user']);
ログイン後にコピー

注: unset() 関数を使用する場合、$ 内の要素に注意してください。 _SESSION 配列は省略できません。つまり、配列全体を一度に登録解除すると、セッション全体の機能が無効になります。たとえば、unset($_SESSION) 関数はグローバル変数 $_SESSION を破棄します。復元する方法がなくなると、ユーザーは $_SESSION 変数を登録できなくなります。

複数またはすべての会話を削除したい場合は、次の 2 つの方法を使用できます。

(2)複数のセッションを削除する

セッションにユーザーが登録したすべての変数を削除する、つまり複数のセッションを削除する、つまりすべてのセッション変数を一度にログアウトしたい場合は、空の配列を渡すことができますこれを実現するには、$_SESSION に値を割り当てます。コードは次のとおりです:

$_SESSION = array();
ログイン後にコピー

(3)現在のセッションを終了します

セッション全体が終了した場合は、最初にすべてのセッション変数をログアウトしてから、 session_destroy() 関数は、現在のセッションをクリアして終了し、セッション内のすべてのリソースをクリアして、セッションを完全に破棄します。 コードは次のとおりです。

session_destroy();
ログイン後にコピー

session_start() 関数との比較 (作成中)セッション ファイル)、 session_destroy() 関数はセッションの操作を閉じるために使用されます (セッション ファイルの削除)。成功した場合は TRUE を返し、セッション データの破棄に失敗した場合は FALSE を返します。ただし、この関数は現在のセッションに関連する変数を解放したり、クライアント Cookie に保存されたセッション ID を削除したりしません。 session_start() 函数 (创建 Session 文件),session_destroy()函数用来关闭 Session 的运作 (删除 Session 文件),如果成功则返回 TURE,销毁 Session 资料失败则返回 FALSE。但该函数并不会释放和当前 Session 相关的变量,也不会删除保存在客户端 Cookie 中的 Session ID 。

PHP默认的 Session 是基于 Cookie的,Session ID 被服务器存储在客户端的 Cookie 中,所以在注销 Session 时也需要清除 Cookie 中保存的 Session ID,而这就必须借助 setcookie() 函数来完成。 在 Cookie 中,保存 Session ID 的 Cookie 标识名称就是 Session 的名称,这个名称是在 php.ini中,通过 session.name 属性指定的值。在php脚本中,可以通过 session_name() 函数获取 Session 的名称。 删除保存在客户端 Cookie 中的 Session ID。

前面的讲解可以总结出 Session 的删除和注销过程需要好几个步骤。下面将通过一个实例,提供完整的代码,运行该脚本后就可以关闭 Session,并销毁与本次会话有关的所有资源。

彻底销毁Session代码如下所示:

<?php
  //开启 Session
  session_start();
  // 删除所有 Session 变量
  $_SESSION = array();
  //判断 cookie 中是否保存 Session ID
   if(isset($_COOKIE[session_name()])){
     setcookie(session_name(),&#39;&#39;,time()-3600, &#39;/&#39;);
  }
  //彻底销毁 Session
  session_destroy();
?>
ログイン後にコピー

注意:使用 $_SESSION = array() 清空 $_SESSION数组的同时,也将这个用户在服务器端对应的  Session 文件内容清空。而使用  session_destroy()

PHP のデフォルトのセッションは Cookie に基づいており、セッション ID はサーバーによってクライアントの Cookie に保存されるため、セッションからログアウトするときは、Cookie に保存されているセッション ID もクリアする必要があります。これは setcookie() 関数の助けを借りて行われます。 Cookieでは、セッションIDを保存するCookie識別名がセッションの名前になります。この名前は、php.iniのsession.name属性で指定した値です。 PHP スクリプトでは、セッションの名前は session_name() 関数を通じて取得できます。 クライアントのCookieに保存されているセッションIDを削除します。

これまでの説明では、セッションの削除とログアウトのプロセスにはいくつかの手順が必要であると結論付けることができます。以下に、例を通して完全なコードを示します。スクリプトを実行した後、セッションを閉じることができ、このセッションに関連するすべてのリソースが破棄されます。 セッションを完全に破棄するコードは次のとおりです:

rrreee
注: $_SESSION = array() を使用して $_SESSION 配列をクリアし、また削除します。このユーザーのサーバー側の対応するセッション ファイルの内容はクリアされます。 session_destroy() 関数を使用すると、サーバー側でこのユーザーに対応するセッション ファイルが削除されます。 🎜🎜🎜🎜関連トピックの推奨事項🎜: 🎜phpセッション🎜 (写真、テキスト、ビデオ、ケースを含む)🎜🎜

以上がPHPでセッションを削除および破棄する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP サービス CakePHP サービス Sep 10, 2024 pm 05:26 PM

この章では、CakePHP で利用できる認証プロセスに関する情報を扱います。

See all articles