Home >Backend Development >PHP Tutorial >How to use unlimited lifetime Session under PHP_PHP Tutorial
Support for Session has been added to PHP4.0, which facilitates many of our programs, such as shopping carts, etc.!
In many forums, Session is also used to process user logins and record usernames and passwords, so that users do not have to enter their usernames and passwords every time! However, the life span of a general Session is limited. If the user closes the browser, the Session variables cannot be saved! So how can we achieve the permanent life span of Session?
As we all know, Session is stored on the server side. The user's file is obtained based on the SessionID provided by the client, and then the file is read to obtain the value of the variable. The SessionID can use the client's Cookie or the Query_String of the Http1.1 protocol (that is, (the part after the "?" in the accessed URL) is transmitted to the server, and then the server reads the directory of the Session...
To realize the permanent life of the Session, you first need to understand the relevant settings of the Session in php.ini (open php.ini file, in the "[Session]" section):
1. session.use_cookies: The default value is "1", which means that the SessionID is passed by Cookie, otherwise it is passed by Query_String;
2. session.name: This is the variable name stored in SessionID, which may be passed by Cookie or Query_String. The default value is "PHPSESSID";
3. session.cookie_lifetime: This represents the time that SessionID is stored in the client cookie. The default is 0, which means that the SessionID will be invalidated as soon as the browser closes it... It is because of this that the Session cannot be used permanently!
4. session.gc_maxlifetime: This is the time that Session data is stored on the server side. If this time is exceeded, the Session data will be automatically deleted!
There are many more settings, but these are the ones related to this article. Let’s start with the principles and steps of using permanent Session.
As mentioned before, the server reads Session data through SessionID, but generally the SessionID sent by the browser is gone after the browser is closed, so we only need to manually set the SessionID and save it, no...
If you have the operating permissions of the server, then setting this is very, very simple, you just need to perform the following steps:
1. Set "session.use_cookies" to 1, turn on Cookie to store SessionID, but the default is 1 , generally no need to modify;
2. Change "session.cookie_lifetime" to positive infinity (of course there is no parameter for positive infinity, but there is no difference between 999999999 and positive infinity);
3. Set "session.gc_maxlifetime" It is the same time as "session.cookie_lifetime";
After setting, open the editor and enter the following code:
-------------------------- -------------------------------------------------- --------------
session_start();
session_register("count");
$count++;
echo $count;
?>
----------------------------------------- ------------------------------------------------
Then save as " session_check.php", use the browser to open "session_check.php", see if "1" is displayed, then close the browser, then open the browser to visit "session_check.php", if "2" is displayed, congratulations , you have succeeded; if it fails, please check your previous settings.
But if you do not have the permission to operate the server, it will be more troublesome. You need to rewrite the SessionID through the PHP program to achieve permanent session data storage. Check the function manual of php.net and you can see the "session_id" function: if no parameters are set, the current SessionID will be returned. If the parameters are set, the current SessionID will be set to the given value...
As long as you use a permanent cookie and add the "session_id" function, you can save permanent session data!
But for convenience, we need to know the "session.name" set by the server, but most users do not have permission to view the php.ini settings of the server. However, PHP provides a very good function "phpinfo", which can be used to view Almost all PHP information!
-------------------------------------------------- -------------------------------------