This article mainly introduces the Session usage in ThinkPHP, and analyzes the common session operation skills in ThinkPHP and the handling methods of invalid sessions in the form of examples, thinkPHP is a very practical technique for project development. if you need ThinkPHP, you can refer to the example in this article to describe the Session usage in ThinkPHP. Share it with you for your reference. The details are as follows:
The Session class is encapsulated in ThinkPHP and can be directly used by users. Common methods include:
Session: set (name, value): registers a session.
Session: is_set (name): Check whether the Session value is set.
Session: get (name): Read session.
Session: clear (): clear the Session.
Session: destroy (): destroys the session.
The session is enabled by default in ThinkPHP. Therefore, you do not need to use the session_start () function to enable the Session before using the session class.
Use session instances
The following describes how to register a session by submitting a form, and read the Session value by session: get on the other two pages in template mode and operation mode.
Register a session
Example of registering a session using the User module sessionTest:
The code is as follows:
Class UserAction extends Action {
Public function session (){
If (! Emptyempty ($ _ POST ['username']) {
Session: set ('username', $ _ POST ['username']);
}
$ This-> display ();
}
}
SessionTest.html template (segment ):
The code is as follows:
{$ _ SESSION ['username']} Hello!
Homepage
Other pages of this module
Cancel Enter your username:
After entering the username (such as testuser), click the submit button and submit it to the sessionTest method (that is, the current page) for processing and registering the session value, and use the template tag present to control the output logic, it is detected that the variable $ _ SESSION ['username'] has been registered and output:
Hello testuser! Homepage logout
Otherwise, the form is output.
Check whether the session is registered
Template Detection
In the template, you can directly use the present, notempty, or even switch tags to determine whether the session variable is registered, to determine the output of the corresponding session value (directly output the session variable value in the form of an output array unit) or display other page elements. for details, refer to the template tag section of this tutorial and the above example.
Operation detection
In the operation, you can use the Session: is_set method to check whether the Session value is set. for example, the User operation of the user module is as follows:
The code is as follows:
Public function user (){
// Because it is output directly in the operation, to avoid garbled characters
Header ("Content-Type: text/html; charset = utf-8 ");
If (Session: is_set ('Username ')){
Echo Session: get ('Username'). '';
} Else {
Echo 'session not registered ';
}
}
Other module pages
In other pages (such as Index/index), judge and read the session code segment:
The code is as follows:
{$ _ SESSION ['username']} Hello! Not logged on
Invalid session (unable to pass)
ThinkPHP may have an invalid session (which cannot be passed to other pages). the possible reasons are as follows:
The Session class header letters are not capitalized, for example, session: set.
The page has information output, such as empty rows in the entry file.
The session storage path (session. save_path) permission on the server (Linux/Unix) is incorrect, and the session information cannot be properly stored.
Suggestion on scope:
The Session class of ThinkPHP is only a simple packaging of Sessions. In practice, you can directly use the native session function of PHP in the operation. this is also officially recommended.
I hope this article will help you with ThinkPHP framework programming.