検索
ホームページバックエンド開発PHPチュートリアルphp セッション セッション (トピック)

php セッションのトピックには、PHP セッションの概念、基本的な関数の使用法、PHP セッションの使用例、PHP セッションのビデオ チュートリアル、および関連する厳選された記事が含まれます。

php セッション セッション (トピック)

#1: PHP セッションとは何ですか?

公式説明: セッション メカニズム (Session) は、ユーザーが Web アプリケーションに継続的にアクセスするときに関連データを維持するために PHP で使用され、高度にカスタマイズされたプログラムの作成に役立ち、サイトの魅力。

php セッションとは何かを理解するには、まずセッション メカニズムが何であるかを理解する必要があります

セッション メカニズム

HTTP はコネクションレス型ネットワーク プロトコルに基づいています訪問はサーバーにとってまったく新しいものです。

##訪問者を覚えて接続ステータスを記録すると、ユーザー エクスペリエンスを向上させ、ユーザー ログインやショッピング カートなどの多くのパーソナライズされた機能を完了できます。

実は、サーバーがユーザーを記憶する方法は非常に簡単で、人生において会員カードを申請するときと同じです。

会員カードを登録する場所は 2 か所あります。販売者のコンピュータに保存されます

#したがって、ネットワーク上のユーザー情報もブラウザ (クライアント) とサーバーの 2 か所に保存されます

ブラウザに保存される名前は次のとおりです: cookie

サーバーに保存される名前は次のとおりです: session

拡張知識:
次の違いphp のセッションと cookie

関連トピック:

php cookie

(グラフィック トピック)

PHP セッションのキー ポイント

    サーバー側に保存
  • 変数: $_SESSION
  • 変数フィルター: filter_input(INPUT_SESSION, key)
  • 専用関数を使用して設定: setcookie(name, value, Expiration time)
  • を有効にするには、2 つの手順で完了する必要があります。まず、次のコマンドを発行します。
  • 2: PHP の基本機能の紹介 Session

1.session_create_id

新しいセッション ID の作成

session_create_id ([ string $prefix ] ) : string

パラメータ

    prefix: prefix が指定されている場合、新しいセッション ID には prefix が付加されます。セッション ID にはすべての文字を使用することはできません。 a-z、a-z、0-9 の範囲の文字、, (カンマ) および - (マイナス記号) が使用できます。
  • #戻り値

現在のセッションの競合のない新しいセッション ID を返します。アクティブなセッションなしで使用すると、競合チェックは無視されます。

2.session_destroy

セッション内のすべてのデータを破棄します

session_destroy ( void ) : bool

戻り値

成功した場合、またはリターンされた場合に TRUE を返します。失敗した場合は FALSE。

3.session_id

現在のセッション ID を取得/設定します

session_id ([ string $id ] ) : string

Parameters

id: if id パラメータの値が指定されている場合、指定された値がセッション ID として使用されます。 session_id() 関数は、session_start() 関数を呼び出す前に呼び出す必要があります。セッション マネージャーが異なれば、セッション ID で使用できる文字に対する制限も異なります。たとえば、ファイル セッション マネージャーでは、セッション ID に次の文字のみを許可します: a-z A-Z 0-9 、(カンマ) および - (マイナス記号)
  • #戻り値

  • 現在のセッション ID を返します。現在のセッションがない場合は、空の文字列 ("") が返されます。

4.session_name

セッション名の読み取り/設定

session_name ([ string $name ] ) : string
Parameters

name: セッションを使用Cookie または URL 内の名前 (例: PHPSESSID)。セッション名として使用できるのは文字と数字のみです。できるだけ短く、意味のある名前にすることをお勧めします (Cookie 警告を有効にしているユーザーにとって、この Cookie を許可するかどうかを判断しやすくなります) )。 name パラメータが指定されている場合、現在のセッションでも指定された値が名前として使用されます。

  • #戻り値

  • 現在のセッション名を返します。 name パラメータが指定されている場合、この関数はセッション名を更新し、元のセッション名を返します。


5.session_start

新しいセッションを開始するか、既存のセッションを再利用します

session_start ([ array $options = array() ] ) : bool
パラメータ

options : このパラメータは連想配列であり、その項目が指定されている場合、セッション構成ディレクティブの構成項目をオーバーライドするために使用されます。この配列内のキーには、session. プレフィックスを含める必要はありません。

  • 戻り値

  • セッションが正常に開始された場合は TRUE を返し、それ以外の場合は FALSE を返します


6.session_status

現在のセッションのステータスを返す

session_status ( void ) : int
戻り値

PHP_SESSION_DISABLED セッションは無効になっています。

PHP_SESSION_NONE セッションは有効ですが、現在のセッションは存在しません。

PHP_SESSION_ACTIVE セッションは有効であり、現在のセッションが存在します。

#7.session_unset

すべてのセッション変数を解放します

session_unset ( void ) : void

3: ユースケース

1. 基本的なセッション操作

PHP セッションでよく使用される基本的な操作

<?php
//开启session会话
session_start();


//设置session
$_SESSION[&#39;username&#39;] = &#39;adminuser&#39;;


//获取session
$username = $_SESSION[&#39;username&#39;];


//删除session
unset($_SESSION[&#39;username&#39;]);


//清空session
session_unset();
//或
$_SESSION = [];


//销毁session
session_destroy();
2. ブラウザーで Cookie を無効にする解決策

cookie和session的区别在于cookie是保存在客户端的,而session是存储在服务端中。它们都有生存时间的设置,session比cookie更安全。

当服务端与客户端通信后会生成会话后,会建立一个和浏览器的唯一会话PHPSESSID。这个id会在服务端保存,也会用cookie形式保存在客户端中。

 禁用cookie后session不能把唯一id通过cookie方式在客户端中进行存储,这时候php会在浏览器地址栏中以url明文get的方式来传递phpsessionid,来进行客户端和服务端的唯一识别通信。

这样一来程序的安全性大大降低了。所有在php.ini默认是关闭通过地址栏传递phpsessionid的,如果没开启就不能使用session,所以需要php.ini配置支持才行。

session.use_only_cookies = 1; // 开启仅使用cookies存放会话id           
session.use_trans_sid = 1;     // 允许Sessionid通过URL明文传输,默认为0关闭

或者使用代码来实现

/**
 * 兼容 php7.1 以下版本
 */
if (!function_exists(&#39;session_create_id&#39;)) {
    function session_create_id()
    {
        return uniqid();
    }
}

//获取SESSION_ID
$session_id = isset($_GET[&#39;SESSION_ID&#39;]) ? $_GET[&#39;SESSION_ID&#39;] : session_create_id();

//设置 SESSION_ID
session_id($session_id);

//开启session
session_start();

$_SESSION[&#39;user&#39;] = &#39;user01&#39;;

//echo $_SESSION[&#39;user&#39;];

echo $session_id;

3、浏览计数器

利用 session 机制可以实现 记录用户的访问页面的次数,代码如下:

<?php
//开启session
session_start();

//判断是否设置浏览数
if (isset($_SESSION[&#39;view_num&#39;])) {
    //如果设置 浏览数加 1
    $_SESSION[&#39;view_num&#39;] = $_SESSION[&#39;view_num&#39;] + 1;
} else {
    //如果未设置 设置浏览数为 1
    $_SESSION[&#39;view_num&#39;] = 1;
}

die(&#39;当前浏览数为:&#39; . $_SESSION[&#39;view_num&#39;]);
?>

4、使用 session 实现登录功能

对于 Cookie 来说,假设我们要验证用户是否登陆,就必须在 Cookie 中保存用户名和密码(可能是 md5 加密后字符串),并在每次请求页面的时候进行验证。

如果用户名和密码存储在数据库,每次都要执行一次数据库查询,给数据库造成多余的负担。因为我们并不能 只做一次验证。为什么呢?

因为客户端 Cookie 中的信息是有可能被修改的。假如你存储 $admin 变量来表示用户是否登陆,$admin 为 true 的时候表示登陆,为 false 的时候表示未登录,在第一次通过验证后将 $admin 等于 true 存储在 Cookie,下次就不用验证了,这样对么?错了,假如有人伪造一个值为 true 的 $admin 变量那不是就立即取的了管理权限么?非常的不安全。

而 Session 就不同了,Session 是存储在服务器端的,远程用户没办法修改 Session 文件的内容,因此我们可以单纯存储一个 $admin 变量来判断是否登陆,首次验证通过后设置 $admin 值为 true,以后判断该值是否为 true,假如不是,转入登陆界面,这样就可以减少很多数据库操作了。

而且可以减少每次为了验证 Cookie 而传递密码的不安全性了(Session 验证只需要传递一次,假如你没有使用 SSL 安全协议的话)。即使密码进行了 md5 加密,也是很容易被截获的。

当然使用 Session 还有很多优点,比如控制容易,可以按照用户自定义存储等(存储于数据库)。

下面是一个简单的用户登录示例:

<?php
session_start();

//判断是否登录
if (isset($_SESSION[&#39;login_user&#39;])) {
    die(&#39;已登录!当前登录用户为:&#39; . $_SESSION[&#39;login_user&#39;]);
}

//判断是否为POST请求
if ($_SERVER[&#39;REQUEST_METHOD&#39;] === &#39;POST&#39;) {

    //检查是否输入用户名
    if (!isset($_POST[&#39;username&#39;]) || empty($_POST[&#39;username&#39;])) {
        die(&#39;请输入用户名!&#39;);
    }

    //检查是否输入密码
    if (!isset($_POST[&#39;password&#39;]) || empty($_POST[&#39;password&#39;])) {
        die(&#39;请输入密码!&#39;);
    }

    //模拟数据
    $data = [&#39;username&#39; => &#39;user01&#39;, &#39;password&#39; => md5(&#39;123456&#39;)];

    //检查用户名是否正确
    if ($_POST[&#39;username&#39;] === $data[&#39;username&#39;]) {
        //检查密码是否正确
        if (md5($_POST[&#39;password&#39;]) === $data[&#39;password&#39;]) {
            //保存登录状态
            $_SESSION[&#39;login_user&#39;] = $_POST[&#39;username&#39;];
            die(&#39;恭喜你登录成功!&#39;);
        }
    }

    //用户名或密码不正确
    die(&#39;用户名或密码不正确!&#39;);
}
?>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="=device-width, initial-scale=1.0">
    <title>用户登录</title>
</head>
<body>
<form action="./session02.php" method="post">
    <input type="text" name="username" placeholder="请输入用户名!">
    <input type="password" name="password" placeholder="请输入密码!">
    <button type="submit">登录</button>
</form>
</body>
</html>

四:PHP Session 视频教程

php セッション セッション (トピック)

1.PHP中session如何存储及删除变量的

2.PHP如何用session来判断用户是否登录

3.PHP如何用session来记录用户登陆信息

4.php视频教程之PHP会话管理

5.PHP视频教程之会话控制session的工作机制

6.PHP高级视频教程之和session存储相关的一些面试题

7.ThinkPHP5基础讲解视频教程之Session的使用

8.ThinkPHP5基础讲解视频教程之Session的使用

9.PHP经典实战视频教程之SESSION示例(购物车)

10.会话管理视频教程

11.Blog项目实战之session原理

五:PHP Session 精选技术文章

1.PHP7中创建session和销毁session的方法

2.利用php设置一个严格控制过期时间的session

3.php でセッションをクリアする 3 つの方法

4.PHP で Web クラスターのセッション同期をセットアップする手順の詳細な説明

5.Session によるユーザー操作権限の判定例の詳細説明

6.Redis による PHP セッション保存方法

7. Laravel は Redis 共有セッションを使用します (詳細なコードの説明)

8.ThinkPHP6.0: セッションと Cookie メカニズムの変更

9.PHP解析におけるセッションIDの実装原理

10.phpはhtmlとSessionとCookieで会員ログイン登録ページを実装します

11.php は、session_id を介してセッション コンテンツを復元します

12.PHP.ini のメイン セッション構成の詳細な紹介

13.WeChatアプレットが session_key と openid を取得する場合 (図)

14.セッション共有: PHP および Redis クラスターでセッション共有を実現する方法

15.セッション共有を実現するredisの方法の紹介

16.tp5はログインとセッション保存を実現し、異なるロール権限に応じたページにジャンプします

17.PHP セッション操作メカニズムを理解する

18.PHP が SESSION 情報を取得できない場合の一般的な状況の解決策

19 .PHP セッションでのフォームの繰り返し送信を防ぐ手順の詳細な説明

20. PHP でセッションの有効期限が切れないようにする方法

21.PHP の SESSION 応答速度を向上させる方法

22.MemCache キャッシュとセッション (ナレッジ概要)

23.いくつかの方法の比較セッション情報を取得するフロントエンド

24.Laravelのセッション(セッション)の処理方法の詳細説明

以上がphp セッション セッション (トピック)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPおよびPython:さまざまなパラダイムが説明されていますPHPおよびPython:さまざまなパラダイムが説明されていますApr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPython:彼らの歴史を深く掘り下げますPHPとPython:彼らの歴史を深く掘り下げますApr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPとPythonの選択:ガイドPHPとPythonの選択:ガイドApr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPとフレームワーク:言語の近代化PHPとフレームワーク:言語の近代化Apr 18, 2025 am 12:14 AM

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

PHPの影響:Web開発などPHPの影響:Web開発などApr 18, 2025 am 12:10 AM

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?Apr 17, 2025 am 12:25 AM

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPは、オブジェクトのクローニング(クローンキーワード)と__Clone Magicメソッドをどのように処理しますか?PHPは、オブジェクトのクローニング(クローンキーワード)と__Clone Magicメソッドをどのように処理しますか?Apr 17, 2025 am 12:24 AM

PHPでは、クローンキーワードを使用してオブジェクトのコピーを作成し、\ _ \ _クローンマジックメソッドを使用してクローン動作をカスタマイズします。 1.クローンキーワードを使用して浅いコピーを作成し、オブジェクトのプロパティをクローン化しますが、オブジェクトのプロパティはクローニングしません。 2。\ _ \ _クローン法は、浅いコピーの問題を避けるために、ネストされたオブジェクトを深くコピーできます。 3.クローニングにおける円形の参照とパフォーマンスの問題を避けるために注意し、クローニング操作を最適化して効率を向上させます。

PHP対Python:ユースケースとアプリケーションPHP対Python:ユースケースとアプリケーションApr 17, 2025 am 12:23 AM

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

メモ帳++7.3.1

メモ帳++7.3.1

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