Maison > php教程 > PHP开发 > Explication détaillée de l'utilisation de la session dans ThinkPHP

Explication détaillée de l'utilisation de la session dans ThinkPHP

高洛峰
Libérer: 2016-12-22 10:25:49
original
1516 Les gens l'ont consulté

Les exemples de cet article décrivent l'utilisation de Session dans ThinkPHP. Partagez-le avec tout le monde pour votre référence. Les détails sont les suivants :

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

Utilisez l'instance de session

Soumis dans le formulaire ci-dessous Enregistrez la session en mode modèle et utilisez le mode Session::get dans l'opération sur les deux autres pages

Enregistrer la session

Opération de test de session du module utilisateur pour enregistrer la session. session Exemple :

class UserAction extends Action{  
public function session(){  
if(!emptyempty($_POST['username'])){  
Session::set('username',$_POST['username']);  
}  
$this->display();  
}  
}
Copier après la connexion
modèle sessionTest.html (fragment) :

<p>  
<present name="_SESSION[&#39;username&#39;]">{$_SESSION[&#39;username&#39;]} 你好!  
<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>
Copier après la connexion
Lorsque vous remplissez le nom d'utilisateur (tel que testuser), cliquez sur le bouton Soumettre et soumettez-le à sessionTest méthode (c'est-à-dire la page actuelle) Traitez et enregistrez la valeur de session, utilisez la balise de modèle présente pour contrôler la logique de sortie, détectez que la variable $_SESSION['username'] a été enregistrée et affichez :


testeur 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 des balises telles que présent ou notempty ou même switcher pour déterminer si la session La variable est enregistrée pour déterminer la valeur de session de sortie correspondante (sortir directement la valeur de la variable de session sous la forme d'une unité de tableau de sortie) ou afficher d'autres éléments de page. Pour plus de détails, veuillez vous référer à la partie balise de modèle de ce didacticiel et à l'exemple ci-dessus. 🎜>

Détection en fonctionnement

Dans l'opération, vous pouvez utiliser la méthode Session::is_set pour vérifier si la valeur de la Session est définie. Par exemple, l'utilisateur du module Utilisateur opère comme suit :

Autres pages du module
public function user(){  
// 由于直接在操作里输出,为避免乱码  
header("Content-Type:text/html; charset=utf-8");  
if(Session::is_set(&#39;username&#39;)){  
echo Session::get(&#39;username&#39;).&#39; 你好&#39;;  
}else{  
echo &#39;session 未注册&#39;;  
}  
}
Copier après la connexion

Dans d'autres pages (telles que Index/index), jugez et lisez l'extrait de code de la session :

la session n'est pas valide (ne peut pas être passée )

<present name="_SESSION[&#39;username&#39;]">{$_SESSION[&#39;username&#39;]} 你好!<else />未登录</present>
Copier après la connexion
Dans ThinkPHP, la session peut être invalide (ne peut pas être transmise à d'autres pages), raisons possibles Comme suit :

Utilisez la première lettre de la classe Session sans majuscules, telle que : session::set.

La page contient des informations, telles que le fichier d'entrée a des lignes vides, etc.

Sur le serveur (Linux/Unix) Le chemin de stockage de la session (session.save_path ) a des autorisations incorrectes, ce qui entraîne l'incapacité de stocker correctement les informations de session.

Suggestions pour les problèmes de portée :

La classe Session de ThinkPHP ne fait cela que pour les sessions. Sans emballage simple, vous pouvez réellement utiliser le natif de PHP fonction de session directement en fonctionnement, ce qui est également la recommandation officielle

J'espère que ce que décrit cet article sera utile à la programmation du framework ThinkPHP de chacun.

Pour des explications plus détaillées sur l'utilisation des sessions dans ThinkPHP, veuillez prêter attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
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
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal