Session PHP & Cookies PHP avec exemple

Qu'est-ce que Cookie?

Un cookie est un petit fichier d'une taille maximale de 4 Ko que le serveur Web stocke sur l'ordinateur client.

Une fois qu'un cookie a été défini, toutes les requêtes de page qui suivent renvoient le nom et la valeur du cookie.

Un cookie ne peut être lu qu'à partir du domaine à partir duquel il a été émis. Par exemple, un cookie défini utilisant le domaine www.guru99.com ne peut pas être lu à partir du domaine carriere.guru99.com.

La plupart des sites Web sur Internet affichent des éléments d'autres domaines tels que la publicité. Les domaines servant ces éléments peuvent également définir leurs propres cookies. Ceux-ci sont connus sous le nom de cookies tiers.

Un cookie créé par un utilisateur ne peut être visible que par lui. Les autres utilisateurs ne peuvent pas voir sa valeur.

La plupart des navigateurs Web ont des options pour désactiver les cookies, les cookies tiers ou les deux.

Si tel est le cas, PHP répond en passant le jeton de cookie dans l'URL.

Le diagramme ci-dessous illustre le fonctionnement des cookies.

Ici,

1) Un utilisateur demande une page qui stocke des cookies

2) Le serveur installe le cookie sur l'ordinateur de l'utilisateur

3) Les autres demandes de page de l'utilisateur renverront le nom et la valeur du cookie

Dans ce didacticiel, vous apprendrez-

  • Pourquoi et quand utiliser des cookies?
  • Créer des cookies
  • Récupération de la valeur du cookie
  • Supprimer les cookies
  • Qu'est-ce qu'une session?
  • Pourquoi et quand utiliser les sessions?
  • Créer une session
  • Détruire les variables de session

Pourquoi et quand utiliser des cookies?

  • Http est un protocole sans état; les cookies nous permettent de suivre l'état de l'application à l'aide de petits fichiers stockés sur l'ordinateur de l'utilisateur.

    Le chemin dans lequel les cookies sont stockés dépend du navigateur.

    Internet Explorer les stocke généralement dans le dossier Temporal Internet Files.

  • Personnaliser l'expérience utilisateur - ceci est réalisé en permettant aux utilisateurs de sélectionner leurs préférences.

    Les pages demandées qui suivent sont personnalisées en fonction des préférences définies dans les cookies.

  • Suivi des pages visitées par un utilisateur

Créer des cookies

Regardons maintenant la syntaxe de base utilisée pour créer un cookie.


ICI,

  • Php «setcookie» est la fonction PHP utilisée pour créer le cookie.
  • «Cookie_name» est le nom du cookie que le serveur utilisera lors de la récupération de sa valeur à partir de la variable de tableau $ _COOKIE. Il est obligatoire.
  • "Cookie_value" est la valeur du cookie et son obligatoire
  • «[Expiry_time]» est facultatif; il peut être utilisé pour définir l'heure d'expiration du cookie, par exemple 1 heure. L'heure est réglée à l'aide des fonctions PHP time () plus ou moins un nombre de secondes supérieur à 0, c'est-à-dire time () + 3600 pendant 1 heure.
  • «[Cookie_path]» est facultatif; il peut être utilisé pour définir le chemin du cookie sur le serveur. La barre oblique «/» signifie que le cookie sera disponible sur l'ensemble du domaine. Les sous-répertoires limitent l'accès des cookies au sous-domaine.
  • «[Domaine]» est facultatif, il peut être utilisé pour définir la hiérarchie d'accès aux cookies, c'est-à-dire que www.cookiedomain.com signifie tout le domaine tandis que www.sub.cookiedomain.com limite l'accès des cookies à www.sub.cookiedomain.com et à ses sous domaines. Notez qu'il est possible d'avoir un sous-domaine d'un sous-domaine tant que le nombre total de caractères ne dépasse pas 253 caractères.
  • «[Secure]» est facultatif, la valeur par défaut est false. Il est utilisé pour déterminer si le cookie est envoyé via https s'il est défini sur true ou http s'il est défini sur false.
  • «[Httponly]» est facultatif. S'il est défini sur true, seuls les langages de script côté client, c'est-à-dire JavaScript, ne peuvent pas y accéder.

Remarque: la fonction de cookie php set doit être exécutée avant la balise d'ouverture HTML.

Regardons maintenant un exemple qui utilise des cookies.

Nous allons créer un programme de base qui nous permet de stocker le nom d'utilisateur dans un cookie qui expire au bout de dix secondes.

Le code ci-dessous montre l'implémentation de l'exemple ci-dessus «cookies.php».


Production:

the cookie has been set for 60 seconds

Récupération de la valeur du cookie

Créez un autre fichier nommé «cookies_read.php» avec le code suivant.


Production:

Array ( [PHPSESSID] => h5onbf7pctbr0t68adugdp2611 [user_name] => Guru99 )

Remarque: $ _COOKIE est une variable super globale PHP intégrée.

Il contient les noms et les valeurs de tous les cookies définis.

Le nombre de valeurs que le

Le tableau $ _COOKIE peut contenir dépend de la taille de la mémoire définie dans php.ini.

La valeur par défaut est de 1 Go.

Tester notre application.

Supposons que vous ayez enregistré vos fichiers PHP dans le dossier phptus.

  • Étape 1 - Ouvrez votre navigateur Web et entrez l'URL http: //localhost/phptuts/cookies_read.php

Remarque: seul un tableau vide a été affiché

  • Étape 2 - Navigateur vers l'URL http: //localhost/phptuts/cookies.php

  • Étape 3 - Revenez au premier onglet puis cliquez sur le bouton d'actualisation

Attendez une minute, puis cliquez à nouveau sur le bouton d'actualisation. Quels résultats as-tu obtenus?

Supprimer les cookies

  • Si vous souhaitez détruire un cookie avant son heure d'expiration, vous définissez l'heure d'expiration sur une heure déjà écoulée.
  • Créez un nouveau fichier nommé cookie_destroy.php avec le code suivant

  • Répétez les étapes 1 à 3 de la section ci-dessus sur la récupération des valeurs des cookies.
  • Ouvrez l'URL http: //localhost/phptuts/cookie_destroy.php
  • Basculez vers l'URL http: //localhost/phptuts/cookies_read.php quels résultats affiche-t-il?

Qu'est-ce qu'une session?

  • Une session est une variable globale stockée sur le serveur.
  • Chaque session se voit attribuer un identifiant unique qui est utilisé pour récupérer les valeurs stockées.
  • Chaque fois qu'une session est créée, un cookie contenant l'identifiant de session unique est stocké sur l'ordinateur de l'utilisateur et renvoyé avec chaque demande au serveur. Si le navigateur client ne prend pas en charge les cookies, l'identifiant de session php unique est affiché dans l'URL
  • Les sessions ont la capacité de stocker des données relativement volumineuses par rapport aux cookies.
  • Les valeurs de session sont automatiquement supprimées lorsque le navigateur est fermé. Si vous souhaitez stocker les valeurs de manière permanente, vous devez les stocker dans la base de données.
  • Tout comme la variable de tableau $ _COOKIE, les variables de session sont stockées dans la variable de tableau $ _SESSION. Tout comme les cookies, la session doit être lancée avant toute balise HTML.

Pourquoi et quand utiliser les sessions?

  • Vous souhaitez stocker des informations importantes telles que l'identifiant de l'utilisateur de manière plus sécurisée sur le serveur où les utilisateurs malveillants ne peuvent pas les tempérer.
  • Vous souhaitez transmettre des valeurs d'une page à une autre.
  • Vous voulez l'alternative aux cookies sur les navigateurs qui ne prennent pas en charge les cookies.
  • Vous souhaitez stocker des variables globales de manière efficace et plus sécurisée par rapport à leur transmission dans l'URL
  • Vous développez une application telle qu'un panier d'achat qui doit stocker temporairement des informations d'une capacité supérieure à 4 Ko.

Créer une session

Pour créer une session, vous devez d'abord appeler la fonction PHP session_start, puis stocker vos valeurs dans la variable de tableau $ _SESSION.

Supposons que nous voulions connaître le nombre de fois qu'une page a été chargée, nous pouvons utiliser une session pour le faire.

Le code ci-dessous montre comment créer et récupérer des valeurs à partir de sessions


Production:

You are visitor number 1

Détruire les variables de session

La fonction session_destroy () est utilisée pour détruire toutes les variables de session Php.

Si vous ne voulez détruire qu'un seul élément de session, vous utilisez la fonction unset ().

Le code ci-dessous illustre comment utiliser les deux méthodes.



Session_destroy supprime toutes les données de session, y compris les cookies associés à la session.

Unset libère uniquement les variables de session individuelles.

Les autres données restent intactes.

Résumé

  • Les cookies sont de petits fichiers enregistrés sur l'ordinateur de l'utilisateur
  • Les cookies ne peuvent être lus qu'à partir du domaine émetteur
  • Les cookies peuvent avoir un délai d'expiration, s'il n'est pas défini, le cookie expire lorsque le navigateur est fermé
  • Les sessions sont comme des variables globales stockées sur le serveur
  • Chaque session reçoit un identifiant d'identification unique utilisé pour suivre les variables d'un utilisateur.
  • Les cookies et les sessions doivent être démarrés avant que des balises HTML aient été envoyées au navigateur.

Articles intéressants...