Table des matières
1 : Qu'est-ce que la session PHP ?
Mécanisme de session
Points clés de la session PHP
Deux : Introduction aux fonctions de base de PHP Session
Trois : cas d'utilisation
四:PHP Session 视频教程
五:PHP Session 精选技术文章
Maison développement back-end tutoriel php session session php (sujet)

session session php (sujet)

Jul 11, 2020 pm 05:55 PM
php session

les sujets de la session PHP incluent les concepts de session PHP, l'utilisation des fonctions de base, les cas d'utilisation de session PHP, les didacticiels vidéo de session PHP et les articles sélectionnés associés. Bienvenue pour apprendre !

session session php (sujet)

1 : Qu'est-ce que la session PHP ?

Explication officielle : Le mécanisme de session (Session) est utilisé en PHP pour conserver des données pertinentes lorsque les utilisateurs accèdent en permanence aux applications Web, aidant ainsi à créer des programmes hautement personnalisés et à augmenter l'attraction des sites.

Pour comprendre ce qu'est une session php, vous devez d'abord comprendre quel est le mécanisme de session

Mécanisme de session

HTTP est basé sur un protocole réseau sans connexion . Une visite est complètement nouvelle sur le serveur

Si vous vous souvenez du visiteur et enregistrez l'état de la connexion, vous pouvez améliorer l'expérience utilisateur et compléter de nombreuses fonctions personnalisées, telles que la connexion de l'utilisateur, le panier d'achat, etc.

En fait, la façon dont le serveur se souvient de l'utilisateur est très simple, tout comme dans la vie, nous demandons des cartes de membre.

Il y a deux endroits où la carte de membre est stockée, soit sur vous ou Enregistré sur l'ordinateur du commerçant

Par conséquent, les informations des utilisateurs sur le réseau seront également enregistrées à deux endroits : le navigateur (client) et le serveur

Ce qui est enregistré sur le navigateur s'appelle : cookie

L'enregistrement sur le serveur s'appelle : session

Connaissances approfondies : La différence entre session et cookie en php

Sujets connexes : cookie php(sujet graphique)

Points clés de la session PHP

  • Enregistrer côté serveur

  • Variable : $_SESSION

  • Filtre variable : filter_input(INPUT_SESSION, clé)

  • Définir en utilisant fonction dédiée : setcookie(name, value, expiration time)

  • doit être complété en deux étapes pour prendre effet : envoyez d'abord la commande au navigateur, puis le navigateur complète le cookie écriture

Deux : Introduction aux fonctions de base de PHP Session

1.session_create_id

Créer un nouvel identifiant de session

session_create_id ([ string $prefix ] ) : string
Copier après la connexion

Paramètres

  • préfixe : Si le préfixe est spécifié, le nouvel identifiant de session sera préfixé par préfixe. Tous les caractères ne sont pas autorisés dans l'identifiant de session. Les caractères compris entre a-z a-z 0-9, , (virgule) et - (signe moins) sont autorisés.

Valeur de retour

Renvoie le nouvel identifiant de session sans conflit de la session en cours. S'il est utilisé sans session active, la vérification des conflits est ignorée.

2.session_destroy

Détruire toutes les données d'une session

session_destroy ( void ) : bool
Copier après la connexion

Valeur de retour

Retourne TRUE en cas de succès, ou si renvoie FAUX en cas d'échec.

3.session_id

Obtenir/Définir l'ID de session en cours

session_id ([ string $id ] ) : string
Copier après la connexion

Paramètres

  • id : if Si la valeur du paramètre id est spécifiée, la valeur spécifiée est utilisée comme ID de session. La fonction session_id() doit être appelée avant l'appel de la fonction session_start(). Différents gestionnaires de sessions ont des restrictions différentes sur les caractères pouvant être utilisés dans les ID de session. Par exemple, le gestionnaire de session de fichiers autorise uniquement les caractères suivants dans les ID de session : a-z A-Z 0-9 , (virgule) et - (signe moins)

Valeur de retour

Renvoyer l'ID de session actuelle. S'il n'y a pas de session en cours, une chaîne vide ("") est renvoyée.

4.session_name

Lire/définir le nom de la session

session_name ([ string $name ] ) : string
Copier après la connexion

Paramètres

  • nom : utiliser la session nom dans le cookie ou l'URL, par exemple : PHPSESSID. Seuls des lettres et des chiffres peuvent être utilisés comme nom de session. Il est recommandé qu'il soit le plus court possible et qu'il soit significatif (pour les utilisateurs qui ont activé les avertissements en matière de cookies, il leur est plus facile de déterminer s'ils autorisent ce cookie). ). Si le paramètre name est spécifié, la session en cours utilisera également la valeur spécifiée comme nom.

Valeur de retour

Renvoie le nom de la session actuelle. Si le paramètre name est spécifié, cette fonction met à jour le nom de session et renvoie le nom de session d'origine.

5.session_start

Démarrer une nouvelle session ou réutiliser une session existante

session_start ([ array $options = array() ] ) : bool
Copier après la connexion

Paramètres

  • options : Ce paramètre est un tableau associatif dont les éléments, s'ils sont fournis, seront utilisés pour remplacer les éléments de configuration dans la directive de configuration de session. Les clés de ce tableau ne doivent pas nécessairement contenir le préfixe de session.

Valeur de retour

Renvoie VRAI si la session est démarrée avec succès, sinon renvoie FAUX

6.session_status

Renvoyer l'état de la session actuelle

session_status ( void ) : int
Copier après la connexion

Valeur de retour

PHP_SESSION_DISABLED La session est désactivée.

PHP_SESSION_NONE La session est activée, mais aucune session en cours n'existe.

PHP_SESSION_ACTIVE La session est activée et la session en cours existe.

7.session_unset

Libérer toutes les variables de session

session_unset ( void ) : void
Copier après la connexion

Trois : cas d'utilisation

1. Opérations de session de base

Opérations de base communes de PHP Session

<?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();
Copier après la connexion

2. Solution pour désactiver les cookies dans le navigateur

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关闭
Copier après la connexion

或者使用代码来实现

/**
 * 兼容 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;
Copier après la connexion

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;]);
?>
Copier après la connexion

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>
Copier après la connexion

四:PHP Session 视频教程

session session php (sujet)

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.Trois façons d'effacer la session en PHP

4.Explication détaillée des étapes pour synchroniser la session du cluster Web en PHP

5.Explication détaillée d'exemples de jugement des autorisations de fonctionnement des utilisateurs via la session

6.Méthode Redis d'enregistrement de session PHP

7.Laravel utilise la session de partage Redis (explication détaillée du code)

8.ThinkPHP6.0 : modifications des mécanismes de session et de cookies

9. Le principe d'implémentation de l'ID de session dans PHP Analysis

10.php implémente la page d'enregistrement de connexion des membres avec HTML plus Session et Cookie

11. php restaure le contenu de la session via session_id

12.Introduction approfondie à la configuration principale de la session dans PHP.ini

13.Cas de l'applet WeChat d'obtention de session_key et openid (photo)

14.Partage de session : Comment les clusters PHP et Redis réalisent le partage de session

15.Introduction à méthode de redis réalisant le partage de session

16.tp5 réalise la connexion et enregistre la session, puis passe à la page en fonction des différentes autorisations de rôle

17. Comprendre le mécanisme de fonctionnement de la session php

18.Solution à la situation générale où PHP ne peut pas obtenir les informations de SESSION

19.Explication détaillée des étapes pour PHP+Session pour empêcher la soumission répétée du formulaire

20 .Méthode PHP pour empêcher la session d'expirer

21.Méthode PHP pour empêcher amélioration de la vitesse de réponse de SESSION

22.Mise en cache MemCache et session (Résumé des connaissances)

23.Comparaison de plusieurs façons pour le front-end de obtenir des informations sur la session

24.Méthode de traitement de la session (session) de Laravel Explication détaillée

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La technologie de mise en cache Memcached optimise le traitement des sessions en PHP La technologie de mise en cache Memcached optimise le traitement des sessions en PHP May 16, 2023 am 08:41 AM

Memcached est une technologie de mise en cache couramment utilisée qui peut améliorer considérablement les performances des applications Web. En PHP, la méthode de traitement de session couramment utilisée consiste à stocker le fichier de session sur le disque dur du serveur. Cependant, cette méthode n'est pas optimale car le disque dur du serveur deviendra l'un des goulots d'étranglement des performances. L'utilisation de la technologie de mise en cache Memcached peut optimiser le traitement des sessions en PHP et améliorer les performances des applications Web. Séance en PHP

Analyse comparative de la falsification de requêtes inter-domaines et inter-sites de session PHP Analyse comparative de la falsification de requêtes inter-domaines et inter-sites de session PHP Oct 12, 2023 pm 12:58 PM

Analyse comparative de la falsification de requêtes inter-domaines et inter-sites PHPSession Avec le développement d'Internet, la sécurité des applications Web est devenue particulièrement importante. PHPSession est un mécanisme d'authentification et de suivi de session couramment utilisé lors du développement d'applications Web, tandis que les requêtes d'origine croisée et la falsification de requêtes inter-sites (CSRF) sont deux menaces de sécurité majeures. Afin de protéger la sécurité des données utilisateur et des applications, les développeurs doivent comprendre la différence entre Session cross-domain et CSRF et adopter

Les meilleures pratiques pour résoudre les problèmes cross-domaines de session PHP Les meilleures pratiques pour résoudre les problèmes cross-domaines de session PHP Oct 12, 2023 pm 01:40 PM

Meilleures pratiques pour résoudre les problèmes inter-domaines de PHPSession Avec le développement d'Internet, le modèle de développement de séparation front-end et back-end devient de plus en plus courant. Dans ce mode, le front-end et le back-end peuvent être déployés sous des noms de domaine différents, ce qui entraîne des problèmes inter-domaines. Dans le processus d'utilisation de PHP, les problèmes inter-domaines impliquent également la livraison et la gestion des sessions. Cet article présentera les meilleures pratiques pour résoudre les problèmes inter-domaines de session en PHP et fournira des exemples de code spécifiques. Utiliser des cookiesUtiliser des cookies

Analyser le traitement du journal des erreurs inter-domaines de la session PHP Analyser le traitement du journal des erreurs inter-domaines de la session PHP Oct 12, 2023 pm 01:42 PM

Traitement du journal des erreurs inter-domaines PHPSession Lors du développement d'applications Web, nous utilisons souvent la fonction Session de PHP pour suivre le statut de l'utilisateur. Cependant, dans certains cas, des erreurs inter-domaines peuvent survenir, entraînant l'impossibilité d'accéder et d'exploiter correctement les données de session. Cet article expliquera comment gérer les erreurs inter-domaines PHPSession et fournira des exemples de code spécifiques. Qu'est-ce qu'une erreur inter-domaine PHPSession ? L'erreur interdomaine fait référence à l'erreur dans le navigateur

Traitement de compatibilité inter-domaines et multi-plateformes de session PHP Traitement de compatibilité inter-domaines et multi-plateformes de session PHP Oct 12, 2023 am 09:46 AM

Traitement de compatibilité inter-domaines et multi-plateformes de PHPSession Avec le développement d'applications Web, de plus en plus de développeurs sont confrontés à des problèmes inter-domaines. Cross-domain fait référence à une page Web sous un nom de domaine demandant des ressources sous un autre nom de domaine. Cela augmente dans une certaine mesure la difficulté de développement, en particulier pour les applications impliquant la gestion de session (Session). Cet article expliquera comment gérer la gestion des sessions inter-domaines en PHP et fournira quelques exemples de code spécifiques. La gestion des sessions, c'est nous

Analyse de l'adaptabilité de l'architecture système multi-domaines et multicouche de session PHP Analyse de l'adaptabilité de l'architecture système multi-domaines et multicouche de session PHP Oct 12, 2023 pm 02:34 PM

Analyse de l'adaptabilité de l'architecture système multi-domaines et multicouche de PHPSession Avec le développement de la technologie Internet, l'architecture système multicouche devient de plus en plus courante dans les applications Web. Dans l'architecture système multicouche, l'accès entre domaines est une exigence courante. Le mécanisme de session en PHP est également largement utilisé dans des fonctions telles que l'authentification et le partage de données dans les applications Web. Cet article explorera en profondeur l'adaptabilité inter-domaines de PHPSession dans une architecture système multicouche et fournira des exemples de code spécifiques.

La relation entre les attaques de script cross-domaine et cross-site de session PHP La relation entre les attaques de script cross-domaine et cross-site de session PHP Oct 12, 2023 pm 12:58 PM

La relation entre les attaques PHPSession cross-domain et cross-site scripting Avec l'utilisation généralisée des applications réseau, les problèmes de sécurité ont attiré une attention croissante. Lors du développement d’applications Web, la gestion des sessions utilisateur est une exigence très courante. PHP fournit un mécanisme pratique de gestion de session - Session. Cependant, Session présente également certains problèmes de sécurité, notamment ceux liés aux attaques de scripts inter-domaines et inter-sites. L'attaque cross-domain (Cross-Domain) fait référence à l'attaque via un site Web.

Audit de sécurité inter-domaines de session PHP et exploration de vulnérabilités Audit de sécurité inter-domaines de session PHP et exploration de vulnérabilités Oct 12, 2023 am 11:23 AM

Résumé de l'audit de sécurité inter-domaines PHPSession et de l'exploration des vulnérabilités : Avec le développement d'Internet, de plus en plus de sites Web commencent à utiliser PHPSession pour gérer l'état et les données de connexion des utilisateurs. Cependant, en raison des caractéristiques de PHPSession, il présente certains risques de sécurité, notamment dans le cas d'un accès inter-domaines. Cet article présentera l'importance de l'audit de sécurité inter-domaines de PHPSession et fournira quelques exemples de code d'exploration de vulnérabilités spécifiques. 1. Introduction PHPSession est une sorte de

See all articles