Maison > Article > développement back-end > Explication sur la façon d'utiliser la session dans thinkphp
Lorsque nous apprendrons les bases de PHP, nous rencontrerons le contrôle de session session. Je ne pouvais tout simplement pas le comprendre lorsque je l'apprenais. Plus tard, je l'ai compris pendant le développement. si simple. Peut-être que le niveau de compréhension est encore trop superficiel, aujourd'hui nous allons parler de la façon d'utiliser la session dans le framework thinkPHP !
La classe Session est encapsulée dans ThinkPHP et les utilisateurs peuvent l'utiliser directement. Les méthodes couramment utilisées sont :
Session::set(name, value) : Enregistrer la session. .
Session::is_set(name) : Vérifiez si la valeur de Session est définie.
Session::get(name) : lecture de la session.
Session::clear() : effacez la session.
Session::destroy() : Détruire la session.
ThinkPHP ouvre la session par défaut, il n'est donc pas nécessaire d'utiliser la fonction session_start() pour ouvrir la session avant d'utiliser la classe Session
. Utiliser l'instance de session
Enregistrez la session en soumettant le formulaire ci-dessous, et lisez la valeur de la session en mode modèle et dans l'opération utilisant Session::get dans les deux autres pages.
Session d'enregistrement
Exemple de session d'enregistrement d'opération sessionTest du module utilisateur :
class UserAction extends Action{ public function session(){ if(!emptyempty($_POST['username'])){ Session::set('username',$_POST['username']); } $this->display(); } }
modèle sessionTest.html (fragment) :
<p> < present name="_SESSION['username']">{$_SESSION['username']} 你好! < a href="APP/">首页</a> < a href="URL/user">本模块其他页面</a> < a href="URL/logout">注销</a><else />请输入您的用户名: < /p> < form action="SELF" method="post"> < p><input type="text" name="username" /></p> < p><input type="submit" value=" 提交 " /></p> < /form> < /present>
Quand en remplissant le nom d'utilisateur (tel que testuser), après avoir cliqué sur le bouton de soumission, soumettez-le à la méthode sessionTest (c'est-à-dire la page actuelle) pour traiter et enregistrer la valeur de session. Utilisez la balise de modèle présente pour contrôler. la logique de sortie et détecte que $_SESSION['username'] a été enregistré. Les variables sont affichées :
testuser Bonjour ! Accueil Déconnexion
Sinon, le formulaire sera affiché.
Vérifier si la session est enregistrée
Détecter dans le modèle
Dans le modèle, vous pouvez directement utiliser présent ou notempty ou même switch, etc. La balise détermine si la variable de session est enregistrée pour décider de générer la valeur de session correspondante (sortir directement la valeur de la variable de session en tant qu'unité de tableau de sortie) ou d'afficher d'autres éléments de page. Pour plus de détails, veuillez vous référer au . balise de modèle faisant partie de ce tutoriel et de l'exemple ci-dessus.
Détection en fonctionnement
En fonctionnement, vous pouvez utiliser la méthode Session::is_set pour vérifier si la valeur de Session est défini. Par exemple, le fonctionnement de l'utilisateur du module Utilisateur est le suivant :
public function user(){ // 由于直接在操作里输出,为避免乱码 header("Content-Type:text/html; charset=utf-8"); if(Session::is_set('username')){ echo Session::get('username').' 你好'; }else{ echo 'session 未注册'; } }
Autres pages du module
Dans d'autres pages (telles que Index/index) , jugez et lisez l'extrait de code de la session :
<present name="_SESSION['username']"> {$_SESSION['username']} 你好! <else />未登录 </present> session 无效(无法传递)
ThinkPHP La session peut être invalide (impossible d'être transmise à d'autres pages :
).La première lettre de la classe Session n'est pas en majuscule, comme : session::set.
La page contient des informations, telles que le fichier d'entrée a des lignes vides, etc. . Le
chemin de stockage de session (session.save_path) sur le serveur (Linux/Unix) a des autorisations incorrectes, ce qui entraîne l'impossibilité de sauvegarder correctement les informations de session.
. Suggestions pour les problèmes de portée :
La classe Session de ThinkPHP n'est qu'un simple wrapper pour la session. En fait, vous pouvez utiliser directement la fonction de session native de PHP dans l'opération, c'est aussi la recommandation officielle. 🎜>
Vous devriez également jeter un œil à ceux-ci :
Introduction au contrôle de session php et aux cookies
Détaillé explication du mécanisme de traitement Sessionid dans Laravel
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!