Home > Article > Backend Development > How to use infinite lifetime Session_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, the 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 aspects of the Session in php.ini Settings (open the 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 where SessionID is stored. It may be passed by Cookie or Query_String. The default value is "PHPSESSID";
3. Session.cookie_lifetime: This represents that SessionID is stored in the client cookie. The time, the default is 0, which means that the SessionID will be invalidated as soon as the browser closes... 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, isn't it? Yes...
If you have the operating authority 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 and turn on Cookie to store SessionID. However, The default is 1 and generally does not need to be modified;
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. Change "session. gc_maxlifetime" is set to the same time as "session.cookie_lifetime";
After the setting is completed, open the editor and enter the following code:
----------------- -------------------------------------------------- ------------------
session_start();
session_register('count');
$count++;
echo $count;
?>
----------------------------------------- -----------------------------------------------
Then Save it as "session_check.php", open "session_check.php" with a browser and see if "1" is displayed, then close the browser, then open the browser to visit "session_check.php", if "2" is displayed , then congratulations, you have succeeded; if it fails, please check your previous settings.
But if you don’t 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!
-------------------------------------------------- -------------------------------------