Maison développement back-end tutoriel php Compréhension approfondie du contrôle de session en php

Compréhension approfondie du contrôle de session en php

Sep 09, 2017 am 09:45 AM
php aller en profondeur 理解

Le contrôle de session est une méthode de communication qui permet de suivre les utilisateurs. L'utilisation du contrôle de session repose principalement sur les points suivants : en raison de la nature apatride du protocole http, il est impossible d'établir une association entre deux requêtes via le protocole ; pour les pages ordinaires Pour les méthodes de transfert de données entre get et post, il gère principalement le transfert de paramètres et la saisie de données simples entre les deux pages. Pour plusieurs pages du site Web d'un utilisateur, une variété de données différentes, il peut y avoir Différentes autorisations conduisent à différentes pages, différentes méthodes de fonctionnement, etc. L'utilisation de get et post est très lourde.

1. Méthode des cookies

Afin de suivre les utilisateurs, les utilisateurs doivent être marqués, l'idée de ​​cookies Autrement dit, lorsqu'un utilisateur visite la première page du site Web, en définissant l'identifiant des informations de l'utilisateur, le serveur Web les stocke sur l'ordinateur de l'utilisateur sous forme de fichiers texte. Ces fichiers sont ce que l'on appelle des cookies. stockées sous forme de paires clé-valeur, lorsque l'utilisateur visite la deuxième page du site Web, les informations du fichier cookie seront accessibles au serveur via les informations d'en-tête http et les informations de l'utilisateur seront revérifiées, évitant ainsi d'avoir à saisir l'utilisateur pour chaque visite. Les informations peuvent déterminer si les visites entre plusieurs pages sont effectuées par le même utilisateur.

Fonction pour définir les informations sur le cookie : setcookie($key, $value, $expire, $path, $domain, $secure).

Les paramètres sont : la clé, la valeur, le délai d'expiration (horodatage UNIX, la valeur par défaut est 0, ce qui signifie que le cookie disparaît à la fermeture du navigateur), le chemin d'accès au cookie. Après paramétrage, le script sous. ce chemin sur le serveur peut accéder aux cookies (la valeur par défaut est le répertoire racine), le nom de domaine pour accéder aux cookies, seule la page du site Web sous le nom de domaine (comme www.example.com) peut accéder aux cookies et activer les cookies, qu'elle soit est une connexion sécurisée https.

Par exemple, après avoir soumis le formulaire par courrier, enregistrez certaines informations

<?php    
if(isset($_POST)){        
$time = time();        
setcookie(&#39;user&#39;, $_POST[&#39;user&#39;], $time+3600);  // 时间参数需要比当前时间点大,以表示cookie信息的有效时间    
    setcookie(&#39;data&#39;, array(1,2,3), $time+1200);  // 可以存放各种数据 
    }
Copier après la connexion

La suppression des cookies se fait toujours via setcookie Il est préférable d'écrire l'heure à l'avance, ou d'écrire. directement un nom de clé, tel que Cette opération est effectuée lorsque l'utilisateur clique pour quitter

   setcookie(&#39;user&#39;, &#39;&#39;, time()-200);  // 时间提前,相对当前时间    
   setcookie(&#39;user&#39;);  // 简写,只写键名
Copier après la connexion


2. Méthode de session

La session est similaire au cookie, sauf que les informations ont été initialement stocké du côté de l'utilisateur, mais est maintenant stocké dans le service, mais un identifiant d'identification est généré du côté de l'utilisateur. Cet identifiant est enregistré par défaut dans le cookie local de l'utilisateur, la session est donc liée au cookie. De cette façon, lorsque l'utilisateur visite pour la première fois, les informations sont stockées sur le serveur Web et une chaîne de longueur fixe (identifiant de session) est attribuée de manière aléatoire à l'utilisateur. Lorsque l'utilisateur visite d'autres pages à l'avenir, il le fait. utilisera cet identifiant pour trouver les données utilisateur correspondantes sur le serveur. Informations, afin que l'utilisateur puisse être suivi. Une session qui utilise des cookies est appelée une session basée sur les cookies.

Mais les utilisateurs peuvent configurer leur navigateur pour désactiver les cookies (bien que cela ne soit généralement pas fait). Certains sites Web obligeront les utilisateurs à activer les cookies après avoir détecté que les cookies sont désactivés, mais il existe une telle situation. la méthode basée sur les cookies ne fonctionnera pas. Pour le moment, elle peut être transmise dans le formulaire get avec un identifiant de session après l'URL. Bien sûr, elle peut également être transmise via la publication http.

Utilisation de la session

Tout d'abord, utilisez session_start() pour ouvrir une session. Notez que pour ce type de fonction réseau, aucune sortie n'est autorisée devant elle, même s'il y a un espace devant l'identifiant

Ensuite, enregistrez la variable de session, c'est-à-dire accédez aux informations utilisateur ou aux données utiles. utilisez n'importe quelle fonction, stockez-la simplement directement dans le tableau super global $ _SESSION, tel que $_SESSION['user'] = $_POST[['user'], ces données seront enregistrées dans un fichier sur le serveur, ou bien sûr, il peut s'agir de cache (memcache, redis).

Lors du passage à d'autres pages, la session doit d'abord être ouverte sur d'autres pages, toujours en utilisant session_start(). Si la session est déjà ouverte, cette fonction renvoie la session en cours, sinon, rouvrez-la.

Enfin, si l'utilisateur quitte ou détruit la conversation pour une raison quelconque, ces variables doivent être déconnectées. Quatre étapes :

1. Ouvrez toujours la session en premier, ou lorsque vous accédez à d'autres pages, revenez à la session existante. Vous devez vous assurer qu'il n'y a pas de sortie précédente

    session_start();   // 开启或返回一个会话
Copier après la connexion

. 2 .Effacez les variables pertinentes dans le tableau $_SESSION

 unset($_SESSION[&#39;robert&#39;])  // 销毁某一个变量  
  $_SESSION = array();  // 或者一次性全部销毁会话变量
Copier après la connexion

3. Effacez les cookies enregistrés sur le client, n'oubliez pas que l'identifiant de session est toujours sur l'ordinateur de l'utilisateur

 if(isset($_COOKIE[session_name()])){        
unset($_COOKIE[session_name()]);    // session_name()获取sesion的名,session id也是以名和值的形式存储的
    }
Copier après la connexion

4. Détruisez complètement les informations stockées dans le serveur

  session_destroy();
Copier après la connexion

Après avoir terminé ces quatre étapes, une session est terminée.

3. Les étapes de base pour utiliser le contrôle de session sont les suivantes :

1) Démarrer une session

Appelez simplement la fonction session_start() Pour les fonctions spécifiques de la fonction, veuillez vous référer à la documentation PHP. A noter que cette fonction doit être appelée au début du script en utilisant la session. Dans le cas contraire, toutes les informations enregistrées dans la session ne seront pas disponibles dans le script. En plus d'appeler manuellement la fonction session_start(), vous pouvez également configurer automatiquement PHP pour l'appeler automatiquement. Vous pouvez la rechercher sur Google.

2) Enregistrez une variable de session

À partir de PHP4.1, les variables de session sont stockées dans le tableau super global $_SESSION. Pour créer une variable de session, il vous suffit de définir un élément dans le tableau, tel que $_SESSION['myvar'] = 5;

 3) Utiliser une variable de session

C'est très facile à utiliser une variable de session Simple, utilisez simplement le tableau $_SESSION pour accéder aux variables de session enregistrées, telles que echo $_SESSION['mywar'] affichera 5. Avant d'utiliser une session, vous devez d'abord utiliser la fonction session_start() pour démarrer une session.

4) Désenregistrer les variables et détruire les sessions

Pour désenregistrer les variables, utilisez simplement unset, tel que unset($_SESSION['myvar']) si vous souhaitez détruire toutes les variables de session en même temps. , vous pouvez utiliser unset ($_SESSION); Lorsque vous avez fini d'utiliser une session, vous devez d'abord désenregistrer toutes les variables, puis appeler session_destroy() pour effacer l'ID de session.

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.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

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)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

7 fonctions PHP que je regrette de ne pas connaître auparavant 7 fonctions PHP que je regrette de ne pas connaître auparavant Nov 13, 2024 am 09:42 AM

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Comment analysez-vous et traitez-vous HTML / XML dans PHP? Comment analysez-vous et traitez-vous HTML / XML dans PHP? Feb 07, 2025 am 11:57 AM

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Programme PHP pour compter les voyelles dans une chaîne Programme PHP pour compter les voyelles dans une chaîne Feb 07, 2025 pm 12:12 PM

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Expliquez la liaison statique tardive en PHP (statique: :). Expliquez la liaison statique tardive en PHP (statique: :). Apr 03, 2025 am 12:04 AM

Liaison statique (statique: :) ​​implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Apr 03, 2025 am 12:03 AM

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.

See all articles