Maison  >  Article  >  développement back-end  >  Comment créer, obtenir et supprimer une session en PHP ?

Comment créer, obtenir et supprimer une session en PHP ?

WBOY
WBOYoriginal
2021-10-26 11:59:306085parcourir

Dans l'article précédent, je vous ai présenté "Comment créer, lire et supprimer des cookies en PHP ?" ", qui présente en détail comment créer, lire et supprimer des cookies en PHP. Dans cet article, nous examinerons la configuration, l'obtention et la suppression de sessions en PHP. J'espère que cela aidera tout le monde !

Comment créer, obtenir et supprimer une session en PHP ?

Dans l'article précédent, nous avons présenté le cookie utilisé par le client pour stocker les données utilisateur. Dans cet article, nous examinons la session, la session est un mécanisme côté serveur et est également utilisée pour enregistrer des informations. Par rapport aux cookies enregistrés sur le client, les utilisateurs ne peuvent pas désactiver les sessions enregistrées sur le serveur. vous n'avez pas besoin de renvoyer toutes les valeurs des cookies à chaque fois, il vous suffit de renvoyer un identifiant. Cet identifiant est généré lorsque vous accédez au serveur pour la première fois et est unique. <br><code>cookie,本篇我们来看一下在PHP中占有非常重要地位的session,session是一种服务器端的机制,也是用来保存信息的,相比于保存在客户端的cookie,保存在服务器端的session用户是无法禁用的,同一个客户端每次和服务端交互时,不需要每次都传回所有的cookie值,只需要传回一个ID就可以了,这个ID是第一次访问服务器的时候生成的,并且是唯一的。

那接下来就来看一看到底什么是session,应该怎样去设置、获取和删除session吧

什么是session

session中文意思是会话,它用来储存使用者的相关资料的,这与cookie类似,例如用户名、个性化设置等等,与cookie不同的是,cookie是将资料保存在客户端的电脑中,用户可以禁用;而session是将数据保存在服务器系统下。网页是无状态的程序连接,无法记录用户的状态,因此通过session来记录用户的相关信息就显得尤为重要。

当开启一个session是,PHP会随机的创建一个sessionID,每个用户的sessionID是唯一的。这个sessionID在客户端与服务器端都会有保存的位置,保存在客户端会使用cookie的指定目录里;在服务器端回忆文本的形式保存到指定的session目录里。

与cookie相比,session是有很多优势的:

因为session的数据不会在客户端与服务器端来回的反复传递,所以通常情况下session还是更安全的;session能够存储的信息比cookie要多很多;用户可以禁用cookie,但是有方法能够是session正常工作。

了解了什么是session后,接下来看一看应该怎样去开启session。

开启session

不同于cookie,使用cookie可以直接创建,而在使用session之前必须先启动,目的是为了让PHP中的核心程序能够将session相关的内建环境预先加载到内存中。

在PHP中通过session_start()函数可以实现开启session的目的,函数session_start()的语法格式如下:

session_start ([array $options = array()])

其中需要注意的是:

$options是一个可选函数,是一个关联数组,并且这个数组中的键不需要包含session.前缀。

示例如下:

<?php
    session_start([
        &#39;cookie_lifetime&#39; => 60*60*24,  // 设置 cookie 的有效时间为 1 天
    ]);
    echo &#39;Session ID 为:&#39;.$_COOKIE[&#39;PHPSESSID&#39;];
?>

输出结果:

Comment créer, obtenir et supprimer une session en PHP ?

需要注意的是:调用 session_start() 函数会生成一个唯一的 Session ID,并保存在浏览器的 Cookie 中,默认名称为“PHPSESSID”。同时,在本地目录中生成一个以“sess_”加上 Session ID 组成的 Session 文件,用来存储 Session 中的数据,输出结果:

Comment créer, obtenir et supprimer une session en PHP ?

通过上述实例,已经了解到了应该怎样去开启session,那接下来看一下应该怎样去设置和获取session

设置和获取session

在上文中,启动了session之后,想要使用session变量,还需要经过设置和获取session中的数据,想要完成这些还需要通过$_SESSION数组来完成。使用$_SESSION之前必须要先试用session_start()函数来开启session才可以。

$_SESSION

Ensuite, regardons ce qu'est une session et comment définir, obtenir et supprimer une session

Qu'est-ce qu'une session

Comment créer, obtenir et supprimer une session en PHP ?

session Signification chinoise C'est une session, qui est utilisée pour stocker des informations relatives à l'utilisateur. Ceci est similaire aux cookies, tels que les noms d'utilisateur, les paramètres personnalisés, etc. Contrairement aux cookies, les cookies enregistrent des informations sur l'ordinateur du client et peuvent être désactivés par l'utilisateur. données sous le système serveur. La page Web est une connexion de programme sans état et ne peut pas enregistrer le statut de l'utilisateur. Il est donc particulièrement important d'enregistrer les informations pertinentes de l'utilisateur tout au long de la session.

Lorsqu'une session est ouverte, PHP crée aléatoirement un sessionID, et l'ID de session de chaque utilisateur est unique. Cet ID de session sera enregistré à la fois sur le client et sur le serveur, dans le répertoire spécifié où les cookies seront utilisés sur le client ; sur le serveur, il sera enregistré sous forme de texte rappelé dans le répertoire de session spécifié.

Par rapport aux cookies, les sessions présentent de nombreux avantages :
Étant donné que les données de session ne sont pas transmises de manière répétée entre le client et le serveur, les sessions sont généralement plus sécurisées. cookies ; les utilisateurs peuvent désactiver les cookies, mais il existe des moyens de faire fonctionner correctement la session. Après avoir compris ce qu’est une session, voyons comment ouvrir une session.

🎜🎜🎜Ouvrir session🎜🎜🎜🎜Différent des cookies, les cookies peuvent être créés directement, mais ils doivent être démarrés avant d'utiliser la session. Le but est de permettre au programme principal en PHP de transférer la session. -informations relatives L'environnement intégré est préchargé en mémoire.
🎜🎜En PHP, le but d'ouvrir une session peut être atteint grâce à la fonction session_start(). Le format de syntaxe de la fonction session_start() est le suivant : 🎜
$_SESSION[名称] = 值;
🎜Ce dont vous avez besoin. à noter :
🎜🎜$options est une fonction facultative et un tableau associatif, et les clés de ce tableau n'ont pas besoin de contenir le préfixe de session.
🎜🎜L'exemple est le suivant : 🎜
<?php
    session_start();
    $str = &#39;好好学习&#39;;
    $arr = [&#39;Session&#39;,&#39;$_SESSION&#39;];
    $_SESSION[&#39;study&#39;]  = $str;
    $_SESSION[&#39;study1&#39;]   = &#39;天天向上&#39;;
    $_SESSION[&#39;title&#39;] = $arr;
    foreach ($_SESSION as $key => $value) {
        if(is_array($value)){
            echo $key.&#39;:&#39;;
            print_r($value);
        }else{
            echo $key.&#39; = &#39;.$value.&#39;<br>&#39;;
        }
    }
?>
🎜Résultat de sortie :
🎜🎜Comment créer, obtenir et supprimer une session en PHP ?🎜🎜Il est à noter que l'appel de la fonction session_start() générera un ID de session unique et l'enregistrera dans le Cookie du navigateur, le nom par défaut est "PHPSESSID". Dans le même temps, un fichier de session composé de "sess_" plus l'ID de session est généré dans le répertoire local pour stocker les données dans la session. Le résultat de sortie est : 🎜🎜Comment créer, obtenir et supprimer une session en PHP ?🎜🎜Grâce aux exemples ci-dessus, nous avons appris comment ouvrir la session, alors allons-y jetez un œil à ce qu'il faut faire ensuite. Comment définir et obtenir une session🎜🎜🎜🎜Définir et obtenir une session🎜🎜🎜🎜Dans ce qui précède, après avoir démarré la session, si vous souhaitez utiliser la session. variables, vous devez définir et obtenir les données dans la session, vous devez le compléter via le tableau $_SESSION. Avant d'utiliser $_SESSION, vous devez d'abord essayer la fonction session_start() pour ouvrir la session. 🎜🎜$_SESSION est un tableau associatif, qui a la même signification qu'une paire clé-valeur de tableau associatif normal. Le format de syntaxe pour définir la session est le suivant : 🎜
unset(mixed $var [, mixed $...])
🎜L'exemple est le suivant : 🎜
<?php
    session_start();
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    $str = &#39;好好学习&#39;;
    $arr = [&#39;删除 Session&#39;,&#39;$_SESSION&#39;];
    $_SESSION[&#39;study&#39;]  = $str;
    $_SESSION[&#39;study1&#39;]   = &#39;天天向上&#39;;
    $_SESSION[&#39;title&#39;] = $arr;
    echo &#39;定义一个 Session,如下所示:<br>&#39;;
    print_r($_SESSION);
    echo &#39;删除 Session 中名为 title 的元素:<br>&#39;;
    unset($_SESSION[&#39;title&#39;]);
    print_r($_SESSION);
?>
🎜Résultat de sortie : 🎜🎜🎜🎜🎜Après l'exécution, veuillez noter que ces variables ou tableaux seront enregistrés dans $_SESSION et seront également enregistré dans Dans le fichier nommé par "sess_" et Session ID côté serveur, l'emplacement de ce fichier peut être configuré en modifiant le fichier de configuration php.ini ou en utilisant session.save_path. 🎜🎜Nous avons déjà appris comment ouvrir, configurer et obtenir une session. Voyons ensuite comment supprimer une session. 🎜🎜🎜🎜Supprimer une seule session🎜🎜🎜

删除单个session元素需要通过unset()函数,该函数可以释放指定的变量,相当于直接注销掉数组中的元素,他的语法格式如下:

unset(mixed $var [, mixed $...])

其中需要注意的是:

$var 为要释放的变量,unset() 函数可以接收多个参数,参数之间使用,分隔。

实例如下:

<?php
    session_start();
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    $str = &#39;好好学习&#39;;
    $arr = [&#39;删除 Session&#39;,&#39;$_SESSION&#39;];
    $_SESSION[&#39;study&#39;]  = $str;
    $_SESSION[&#39;study1&#39;]   = &#39;天天向上&#39;;
    $_SESSION[&#39;title&#39;] = $arr;
    echo &#39;定义一个 Session,如下所示:<br>&#39;;
    print_r($_SESSION);
    echo &#39;删除 Session 中名为 title 的元素:<br>&#39;;
    unset($_SESSION[&#39;title&#39;]);
    print_r($_SESSION);
?>

输出结果:

Comment créer, obtenir et supprimer une session en PHP ?

如此便通过unset()函数完成了删除session单个元素了。

删除session多个元素

如果想要一次性删除多个 Session 元素,即一次注销所有的会话变量,可以通过将一个空的数组赋值给 $_SESSION 来实现

实例如下:

<?php
    session_start();
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    $str = &#39;好好学习&#39;;
    $arr = [&#39;删除 Session&#39;,&#39;$_SESSION&#39;];
    $_SESSION[&#39;study&#39;]  = $str;
    $_SESSION[&#39;study1&#39;]   = &#39;天天向上&#39;;
    $_SESSION[&#39;title&#39;] = $arr;
    echo &#39;定义一个 Session,如下所示:<br>&#39;;
    print_r($_SESSION);
    echo &#39;删除 Session 中名为 title 的元素:<br>&#39;;
    $_SESSION = array();
    print_r($_SESSION);
?>

通过将一个空的数组赋值给 $_SESSION 输出结果:

Comment créer, obtenir et supprimer une session en PHP ?

还有一种方法就是通过session_unset() 函数来释放session中的所有元素,实例如下:

<?php
    session_start();
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    $str = &#39;好好学习&#39;;
    $arr = [&#39;删除 Session&#39;,&#39;$_SESSION&#39;];
    $_SESSION[&#39;study&#39;]  = $str;
    $_SESSION[&#39;study1&#39;]   = &#39;天天向上&#39;;
    $_SESSION[&#39;title&#39;] = $arr;
    echo &#39;定义一个 Session,如下所示:<br>&#39;;
    print_r($_SESSION);
    echo &#39;删除 Session 中名为 title 的元素:<br>&#39;;
    session_unset();
    print_r($_SESSION);
?>

输出结果与上述实例的结果相同,由此我们便通过两种方法可以删除session多个元素了。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

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