Detailed explanation of Session usage in ThinkPHP
The examples in this article describe the usage of Session in ThinkPHP. Share it with everyone for your reference. The details are as follows:
The Session class is encapsulated in ThinkPHP, and users can use it directly. Commonly used methods are:
Session::set(name, value): Register session.
Session::is_set(name): Check whether the value of Session is set.
Session::get(name): Read session.
Session::clear(): Clear the Session.
Session::destroy(): Destroy session.
ThinkPHP opens the session by default, so there is no need to use the session_start() function to open the session before using the Session class.
Use the session instance
Register the session by form submission below, and register the session on the other two pages respectively. Use Session::get method to read the session value in template mode and operation.
Register session
User module sessionTest operation to register session Example:
class UserAction extends Action{ public function session(){ if(!emptyempty($_POST['username'])){ Session::set('username',$_POST['username']); } $this->display(); } }
sessionTest.html Template (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>
When filling in the user name ( Such as testuser), after clicking the submit button, submit it to the sessionTest method (i.e. the current page) to process and register the session value. Use the template tag present to control the output logic. It detects that the $_SESSION['username'] variable has been registered and outputs:
testuser Hello! Home page Log out
Otherwise the form will be output.
Detect whether the session is registered
Detect in the template
In the template, you can directly use tags such as present or notempty or even switch to determine whether the session variable is registered to determine the corresponding session value to be output (directly output the session as an output array unit) Variable value) or display other page elements. For details, please refer to the template tag part of this tutorial and the above example.
Detection in operation
In the operation, you can use the Session::is_set method to check whether the value of the Session is set, such as User The operation of module user is as follows:
public function user(){ // 由于直接在操作里输出,为避免乱码 header("Content-Type:text/html; charset=utf-8"); if(Session::is_set('username')){ echo Session::get('username').' 你好'; }else{ echo 'session 未注册'; } }
Other module pages
In other pages (such as Index/index), judge and read the code snippet of session:
<present name="_SESSION['username']">{$_SESSION['username']} 你好!<else />未登录</present>
Invalid session (cannot be passed) may occur in ThinkPHP passed to other pages), the possible reasons are as follows:
The first letter of the Session class is not capitalized, such as: session::set.
The page has information output, such as the entry file has blank lines, etc.
On the server ( The session storage path (session.save_path) of Linux/Unix has incorrect permissions, resulting in the inability to store session information correctly.
Suggestions for scope issues:
ThinkPHP’s Session class is just a simple wrapper for the session, which can actually be used during operation Directly use PHP's native session function, which is also the official recommendation.
I hope this article will be helpful to everyone's ThinkPHP framework programming.
For more detailed explanations of Session usage in ThinkPHP, please pay attention to the PHP Chinese website!

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

AI Hentai Generator
Generate AI Hentai for free.

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 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

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.

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
