Summary of ThinkPHP's session operation methods
This article describes in detail the various operating methods of ThinkPHP on the session. The details are as follows:
The official documentation of ThinkPHP operating the session is as follows:
start start the session
pause pause the session
clear clear the session
destroy destroy the session
get get the session value
getLocal Get the private session value
set Set the session value
setLocal Set the private session value
name Get or set the session_name
is_set Whether to set the session value
is_setLocal Whether to set the private session value
id Get or set the session_id
path Get or set the session_save_path
setExpi re Set the session expiration time
setCookieDomain Set the valid domain name
setCallback Set the callback function when the Session object is deserialized
The most commonly used operation method example code is as follows:
// 检测Session变量是否存在 Session::is_set('name'); // 给Session变 量赋值 Session::set('name','value'); // 获取Session变量 Session::get('name');
The configuration parameter code related to the Session is as follows:
'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'=>'', // 反序列化对象的回调方法
The SESSION_NAME parameter needs to be noted. If you need to not share the value of the Session between different projects, please set a different value, otherwise please keep the same default value.
If the same SESSION_NAME value is set, but you want to create a private session space based on the project, what should you do? ThinkPHP also supports private Session operations with the project as the Session space. Taking the previous common operations as an example, we change it as follows:
// 检测Session变量是否存在(当前项目有效) Session::is_setLocal('name'); // 给Session变 量赋值(当前项目有效) Session::setLocal('name','value'); // 获取Session变量(当前 项目有效) Session::getLocal('name');
In this way, it will not conflict with the global Session operation and can be used in some special situations needs.
ThinkPHP supports session operations in database mode. Just set the value of SESSION_TYPE to DB. If you use database mode, make sure to set the value of SESSION_TABLE and import the following DDL into your database (taking MySQL as an example):
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`) )
Note that the database connection in Db Session mode will use the database configuration information of the project to connect. In addition to the database method, you can also add other methods of Session saving mechanisms, such as memory method, Memcache method, etc. We only need to add the corresponding filter and use the session_set_save_handler method. For the specific method definition, refer to FilterSessionDb under Think.Util.Filter. Implementation of .class.php file.
Created a simple login judgment
After login detection, assign the Session value so that the Session value is either empty or false
$_SESSION[C('USER_AUTH_KEY')] = $logInFind['id'] ;
where [C('USER_AUTH_KEY')] is the built-in method of ThinkPHP and function classes. When the config.php file is not configured, it will be empty by default. Give it the account value extracted from $logInFind['id']. By default, it will automatically delete and disappear when the page Session is closed!
Use the following format to judge other pages
if(!isset($_SESSION[C('USER_AUTH_KEY')])) { //isset 是检测变量是否赋值! $this->redirect('Login','Login'); //转到注册页面 }

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

The problem was found in the springboot project production session-out timeout. The problem is described below: In the test environment, the session-out was configured by changing the application.yaml. After setting different times to verify that the session-out configuration took effect, the expiration time was directly set to 8 hours for release. Arrived in production environment. However, I received feedback from customers at noon that the project expiration time was set to be short. If no operation is performed for half an hour, the session will expire and require repeated logins. Solve the problem of handling the development environment: the springboot project has built-in Tomcat, so the session-out configured in application.yaml in the project is effective. Production environment: Production environment release is

Session failure is usually caused by the session lifetime expiration or server shutdown. The solutions: 1. Extend the lifetime of the session; 2. Use persistent storage; 3. Use cookies; 4. Update the session asynchronously; 5. Use session management middleware.

Solution to the problem that the php session disappears after refreshing: 1. Open the session through "session_start();"; 2. Write all public configurations in a php file; 3. The variable name cannot be the same as the array subscript; 4. In Just check the storage path of the session data in phpinfo and check whether the sessio in the file directory is saved successfully.

Solution to the cross-domain problem of PHPSession In the development of front-end and back-end separation, cross-domain requests have become the norm. When dealing with cross-domain issues, we usually involve the use and management of sessions. However, due to browser origin policy restrictions, sessions cannot be shared by default across domains. In order to solve this problem, we need to use some techniques and methods to achieve cross-domain sharing of sessions. 1. The most common use of cookies to share sessions across domains

The default expiration time of session PHP is 1440 seconds, which is 24 minutes, which means that if the client does not refresh for more than 24 minutes, the current session will expire; if the user closes the browser, the session will end and the Session will no longer exist.

Problem: Today, we encountered a setting timeout problem in our project, and changes to SpringBoot2’s application.properties never took effect. Solution: The server.* properties are used to control the embedded container used by SpringBoot. SpringBoot will create an instance of the servlet container using one of the ServletWebServerFactory instances. These classes use server.* properties to configure the controlled servlet container (tomcat, jetty, etc.). When the application is deployed as a war file to a Tomcat instance, the server.* properties do not apply. They do not apply,

1. Implementing SMS login based on session 1.1 SMS login flow chart 1.2 Implementing sending SMS verification code Front-end request description: Description of request method POST request path /user/code request parameter phone (phone number) return value No back-end interface implementation: @Slf4j@ ServicepublicclassUserServiceImplextendsServiceImplimplementsIUserService{@OverridepublicResultsendCode(Stringphone,HttpSessionsession){//1. Verify mobile phone number if

JavaScriptCookies Using JavaScript cookies is the most effective way to remember and track preferences, purchases, commissions and other information. Information needed for a better visitor experience or website statistics. PHPCookieCookies are text files that are stored on client computers and retained for tracking purposes. PHP transparently supports HTTP cookies. How do JavaScript cookies work? Your server sends some data to your visitor's browser in the form of a cookie. Browsers can accept cookies. If present, it will be stored on the visitor's hard drive as a plain text record. Now, when a visitor reaches another page on the site
