recherche

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

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

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

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

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

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

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

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();

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关闭

或者使用代码来实现

/**
 * 兼容 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 视频教程

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
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
Quand utiliseriez-vous un trait par rapport à une classe ou une interface abstraite dans PHP?Quand utiliseriez-vous un trait par rapport à une classe ou une interface abstraite dans PHP?Apr 10, 2025 am 09:39 AM

En PHP, le trait convient aux situations où la réutilisation de la méthode est requise mais ne convient pas à l'héritage. 1) Le trait permet aux méthodes de multiplexage des classes pour éviter une complexité de succession multiple. 2) Lorsque vous utilisez un trait, vous devez faire attention aux conflits de méthode, qui peuvent être résolus par l'alternative et comme mots clés. 3) La surutilisation du trait doit être évitée et sa responsabilité unique doit être maintenue pour optimiser les performances et améliorer la maintenabilité du code.

Qu'est-ce qu'un conteneur d'injection de dépendance (DIC) et pourquoi en utiliser un en PHP?Qu'est-ce qu'un conteneur d'injection de dépendance (DIC) et pourquoi en utiliser un en PHP?Apr 10, 2025 am 09:38 AM

Le conteneur d'injection de dépendance (DIC) est un outil qui gère et fournit des dépendances d'objets à utiliser dans les projets PHP. Les principaux avantages du DIC comprennent: 1. Le découplage, rendre les composants indépendants, et le code est facile à entretenir et à tester; 2. Flexibilité, facile à remplacer ou à modifier les dépendances; 3. Testabilité, pratique pour injecter des objets simulés pour les tests unitaires.

Expliquez le SPL SPLFixedArray et ses caractéristiques de performance par rapport aux tableaux PHP ordinaires.Expliquez le SPL SPLFixedArray et ses caractéristiques de performance par rapport aux tableaux PHP ordinaires.Apr 10, 2025 am 09:37 AM

SPLFixedArray est un tableau de taille fixe en PHP, adapté aux scénarios où des performances élevées et une faible utilisation de la mémoire sont nécessaires. 1) Il doit spécifier la taille lors de la création pour éviter les frais généraux causés par un ajustement dynamique. 2) Sur la base du tableau de langue C, fonctionne directement de la mémoire et de la vitesse d'accès rapide. 3) Convient pour le traitement des données à grande échelle et les environnements sensibles à la mémoire, mais il doit être utilisé avec prudence car sa taille est fixe.

Comment PHP gère-t-il les téléchargements de fichiers en toute sécurité?Comment PHP gère-t-il les téléchargements de fichiers en toute sécurité?Apr 10, 2025 am 09:37 AM

PHP gère les téléchargements de fichiers via la variable de fichiers $ \ _. Les méthodes pour garantir la sécurité incluent: 1. Vérifiez les erreurs de téléchargement, 2. Vérifiez le type et la taille du fichier, 3. Empêchez l'écrasement des fichiers, 4. Déplacez les fichiers vers un emplacement de stockage permanent.

Qu'est-ce que l'opérateur de coalescence nul (??) et l'opérateur de mission nuls de fusion (?? =)?Qu'est-ce que l'opérateur de coalescence nul (??) et l'opérateur de mission nuls de fusion (?? =)?Apr 10, 2025 am 09:33 AM

Dans JavaScript, vous pouvez utiliser nullcoalescingoperator (??) et nullcoalescingAssIgnmentOperator (?? =). 1.? 2.?? Ces opérateurs simplifient la logique du code, améliorent la lisibilité et les performances.

Qu'est-ce que l'en-tête de la politique de sécurité du contenu (CSP) et pourquoi est-il important?Qu'est-ce que l'en-tête de la politique de sécurité du contenu (CSP) et pourquoi est-il important?Apr 09, 2025 am 12:10 AM

Le CSP est important car il peut empêcher les attaques XSS et limiter le chargement des ressources, améliorer la sécurité du site Web. 1.CSP fait partie des en-têtes de réponse HTTP, limitant les comportements malveillants grâce à des politiques strictes. 2. L'utilisation de base consiste à permettre le chargement de ressources de la même origine. 3. L'utilisation avancée peut définir des stratégies plus fins, telles que les noms de domaine spécifiques pour charger des scripts et des styles. 4. Utilisez un en-tête de contenu-sécurité-politique-report-seul pour déboguer et optimiser les politiques CSP.

Quelles sont les méthodes de demande HTTP (obtenir, publier, mettre, supprimer, etc.) et quand chacune devrait être utilisée?Quelles sont les méthodes de demande HTTP (obtenir, publier, mettre, supprimer, etc.) et quand chacune devrait être utilisée?Apr 09, 2025 am 12:09 AM

Les méthodes de demande HTTP incluent GET, Publier, Put and Delete, qui sont utilisées pour obtenir, soumettre, mettre à jour et supprimer respectivement les ressources respectivement. 1. La méthode GET est utilisée pour obtenir des ressources et convient aux opérations de lecture. 2. La méthode post-post est utilisée pour soumettre des données et est souvent utilisée pour créer de nouvelles ressources. 3. La méthode de put est utilisée pour mettre à jour les ressources et convient aux mises à jour complètes. 4. La méthode de suppression est utilisée pour supprimer les ressources et convient aux opérations de suppression.

Qu'est-ce que HTTPS et pourquoi est-il crucial pour les applications Web?Qu'est-ce que HTTPS et pourquoi est-il crucial pour les applications Web?Apr 09, 2025 am 12:08 AM

HTTPS est un protocole qui ajoute une couche de sécurité sur la base de HTTP, qui protège principalement la confidentialité des utilisateurs et la sécurité des données via des données chiffrées. Ses principes de travail comprennent la poignée de main TLS, la vérification du certificat et la communication cryptée. Lors de la mise en œuvre de HTTPS, vous devez prêter attention à la gestion des certificats, à l'impact des performances et aux problèmes de contenu mixte.

See all articles

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.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Version Mac de WebStorm

Version Mac de WebStorm

Outils de développement JavaScript utiles

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

SublimeText3 version anglaise

SublimeText3 version anglaise

Recommandé : version Win, prend en charge les invites de code !

SublimeText3 version Mac

SublimeText3 version Mac

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

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel