Cet article détaille les différentes méthodes de fonctionnement de ThinkPHP en session. Les détails sont les suivants :
La documentation officielle de la session de fonctionnement de ThinkPHP est la suivante :
démarrer Démarrer la session
pause Suspendre la session
effacer la session
détruire la session
obtenir obtenir la valeur de la session
getLocal obtenir la valeur de la session privée
définir la valeur de la session
setLocal définir la valeur de la session privée
nom obtenir ou set session_name
is_set S'il faut définir la valeur de la session
is_setLocal S'il faut définir la valeur de la session privée
id Obtenir ou définir le session_id
path Obtenir ou définir le session_save_path
setExpire Définir l'heure d'expiration de la session
setCookieDomain Définit le nom de domaine valide
setCallback définit la fonction de rappel lors de la désérialisation de l'objet Session
L'exemple de code de méthode d'opération le plus couramment utilisé est le suivant :
// 检测Session变量是否存在 Session::is_set('name'); // 给Session变 量赋值 Session::set('name','value'); // 获取Session变量 Session::get('name');
Lié à la session Le code du paramètre de configuration est le suivant :
'SESSION_NAME'=>'ThinkID', // 默认Session_name 'SESSION_PATH'=>'', // 采用默认的Session save path 'SESSION_TYPE'=>'File', // 默认Session类型 支持 DB 和 File 'SESSION_EXPIRE'=>'300000', // 默认Session有效期 'SESSION_TABLE'=>'think_session', // 数据库Session方式表名 'SESSION_CALLBACK'=>'', // 反序列化对象的回调方法
Le paramètre SESSION_NAME doit être noté Si vous ne devez pas partager la valeur de la session entre différents projets, veuillez lui définir une valeur différente, sinon conservez la même valeur par défaut.
Si la même valeur SESSION_NAME est définie, mais que vous souhaitez créer un espace de session privée basé sur le projet, que devez-vous faire ? ThinkPHP prend également en charge les opérations de session privée avec le projet comme espace de session. En prenant les opérations communes précédentes comme exemple, nous le modifions comme suit :
// 检测Session变量是否存在(当前项目有效) Session::is_setLocal('name'); // 给Session变 量赋值(当前项目有效) Session::setLocal('name','value'); // 获取Session变量(当前 项目有效) Session::getLocal('name');
. De cette façon, l'opération globale de la session n'entrera pas en conflit et peut être utilisée dans certaines situations particulières.
ThinkPHP prend en charge les opérations de session en mode base de données. Définissez simplement la valeur de SESSION_TYPE sur DB. Si vous utilisez le mode base de données, assurez-vous de définir la valeur de SESSION_TABLE et d'importer le DDL suivant dans votre base de données (en prenant MySQL comme exemple). :
CREATE TABLE `think_session` ( `id` int(11) unsigned NOT NULL auto_increment, `session_id` varchar(255) NOT NULL, `session_expires` int(11) NOT NULL, `session_data` blob, PRIMARY KEY(`id`) )
Notez que la connexion à la base de données en mode Db Session utilisera les informations de configuration de la base de données du projet pour la connexion. En plus de la méthode de base de données, vous pouvez également ajouter d'autres méthodes de mécanismes de sauvegarde de session, telles que la méthode mémoire, la méthode Memcache, etc. Il nous suffit d'ajouter le filtre correspondant et d'utiliser la méthode session_set_save_handler. Pour la définition spécifique de la méthode, veuillez vous référer. à FilterSessionDb sous Think.Util.Filter Implémentation du fichier .class.php.
Créé un jugement de connexion simple
Après la détection de connexion, la valeur de session est attribuée, de sorte que la valeur de session soit vide ou fausse
$_SESSION[C('USER_AUTH_KEY')] = $logInFind['id'] ;
Où [C('USER_AUTH_KEY')] est la méthode et la classe de fonctions intégrées de ThinkPHP. Lorsque le fichier config.php n'est pas configuré, il sera vide par défaut
Donnez-lui la valeur du compte extraite de $logInFind['id']. La valeur par défaut est de fermer la page Session et elle sera automatiquement supprimée et disparaîtra. !
Utilisez le format suivant pour juger d'autres pages
if(!isset($_SESSION[C('USER_AUTH_KEY')])) { //isset 是检测变量是否赋值! $this->redirect('Login','Login'); //转到注册页面 }
Pour plus d'articles liés à ThinkPHP sur les méthodes de fonctionnement de session, veuillez faire attention au site Web PHP chinois !