Home Backend Development PHP Tutorial Another look at PHP session_PHP tutorial

Another look at PHP session_PHP tutorial

Jul 13, 2016 am 10:32 AM
web development Enterprise security information Technology security software database mobile development system security Website security cyber security network technology software development

Please indicate when reprinting from soulak, Weibo: @evagle

In the past, I was still vague about sessions and cookies. Today when I used the Yii framework, I encountered the error session_regenerate_id(): Session object destruction failed, so I took a look at the working mechanism of the session again.


Intercept the definition of session from W3Cschool:

When you run an app, you open it, make changes, and then close it. It's a lot like a session. The computer knows who you are. It knows when you start the application and when it terminates it. But on the Internet, there's a problem: the server doesn't know who you are and what you do, and that's because HTTP addresses don't maintain state.

PHP session solves this problem by storing user information on the server for subsequent use (such as user name, purchased items, etc.). However, session information is temporary and will be deleted after the user leaves the site. If you need to store information permanently, you can store the data in a database.

Session works by creating a unique id (UID) for each visitor and storing variables based on this UID. The UID is stored in a cookie or passed through the URL.

Let’s first take a look at the life cycle of the session, which is very important for understanding the session.

1. When is the session created?

Simply put, Session is created when the user accesses the server for the first time. Session is created by web languages ​​such as php, jsp, asp, etc. It will not be created when accessing static html pages. Let’s take php as an example:

a) When user This ID is unique and different for each user.

b) This session id will be stored in the $_SESSION variable of PHP, and we can also set a cookie on the user's browser.

c) Then when the user jumps to other pages of the website, he only needs to tell the browser the session id stored in this cookie, and then the server will take out the stored information corresponding to the session id, and then know who the user is. A page can also display this information about the user.

d) After the session is created, other user-related information can be stored, such as storing item information in the user's shopping cart.

e) After the Session is generated, as long as the user continues to access, the server will update the last access time of the Session and maintain the Session. Every time a user accesses the server, regardless of whether the session is read or written, the server considers the user's session to be "active".


So, when a user visits a website, normally he is in the same session from opening to end (unless the session expires too quickly). No matter how he jumps in the website, he can access the session content.

The session_id() function in PHP can see the current session_id information. Because a website can be visited by many users at the same time, PHP will generate a unique session_id for each user. This will not interfere with each other, because each user is handled by an independent process. The process where user A is located stores A's session_id until the session expires.

In short, the session is generally set up when the user logs in to the website, and then closed or cleaned up when the user logs out (closing or cleaning depends on business needs).

2. When does the session expire?

a) As more and more users will access the server, there will be more and more Sessions. To prevent memory overflow, the server will delete Sessions that have not been active for a long time from memory. This time is the Session timeout time. If the server is not accessed after the timeout period, the Session will automatically expire.

b) Call the invalidate method of Session.


Reference: http://www.w3school.com.cn/php/php_sessions.asp

Then there are several commonly used PHP session-related functions:

session_start — Start new or resume existing session sessionStart
session_id — Get and/or set the current session id Get session id
session_status — Returns the current session status to get session status, there are three statuses

  • PHP_SESSION_DISABLED if sessions are disabled.
  • PHP_SESSION_NONE if sessions are enabled, but none exists. if sessions are enabled, and one exists. session_regenerate_id — Update the current session id with a newly generated one to reassign the current session
  • session_destroy — Destroys all data registered to a session completely deletes the entire session session_unset — Free all session variables Delete all variables stored in the current session PHP_SESSION_ACTIVE

    For more information, please refer to: http://www.php.net/manual/en/ref.session.php







    www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/755765.htmlTechArticlePlease indicate when reprinting from soulak, Weibo: @evagle I used to be vague about sessions and cookies. Today when I was using the yii framework, I encountered session_regenerate_id(): Session object destr...
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Detailed tutorial on establishing a database connection using MySQLi in PHP Detailed tutorial on establishing a database connection using MySQLi in PHP Jun 04, 2024 pm 01:42 PM

How to use MySQLi to establish a database connection in PHP: Include MySQLi extension (require_once) Create connection function (functionconnect_to_db) Call connection function ($conn=connect_to_db()) Execute query ($result=$conn->query()) Close connection ( $conn->close())

iOS 18 adds a new 'Recovered' album function to retrieve lost or damaged photos iOS 18 adds a new 'Recovered' album function to retrieve lost or damaged photos Jul 18, 2024 am 05:48 AM

Apple's latest releases of iOS18, iPadOS18 and macOS Sequoia systems have added an important feature to the Photos application, designed to help users easily recover photos and videos lost or damaged due to various reasons. The new feature introduces an album called "Recovered" in the Tools section of the Photos app that will automatically appear when a user has pictures or videos on their device that are not part of their photo library. The emergence of the "Recovered" album provides a solution for photos and videos lost due to database corruption, the camera application not saving to the photo library correctly, or a third-party application managing the photo library. Users only need a few simple steps

What are the advantages and disadvantages of C++ compared to other web development languages? What are the advantages and disadvantages of C++ compared to other web development languages? Jun 03, 2024 pm 12:11 PM

The advantages of C++ in web development include speed, performance, and low-level access, while limitations include a steep learning curve and memory management requirements. When choosing a web development language, developers should consider the advantages and limitations of C++ based on application needs.

How to handle database connection errors in PHP How to handle database connection errors in PHP Jun 05, 2024 pm 02:16 PM

To handle database connection errors in PHP, you can use the following steps: Use mysqli_connect_errno() to obtain the error code. Use mysqli_connect_error() to get the error message. By capturing and logging these error messages, database connection issues can be easily identified and resolved, ensuring the smooth running of your application.

How does Go WebSocket integrate with databases? How does Go WebSocket integrate with databases? Jun 05, 2024 pm 03:18 PM

How to integrate GoWebSocket with a database: Set up a database connection: Use the database/sql package to connect to the database. Store WebSocket messages to the database: Use the INSERT statement to insert the message into the database. Retrieve WebSocket messages from the database: Use the SELECT statement to retrieve messages from the database.

How to use database callback functions in Golang? How to use database callback functions in Golang? Jun 03, 2024 pm 02:20 PM

Using the database callback function in Golang can achieve: executing custom code after the specified database operation is completed. Add custom behavior through separate functions without writing additional code. Callback functions are available for insert, update, delete, and query operations. You must use the sql.Exec, sql.QueryRow, or sql.Query function to use the callback function.

How to handle database connections and operations using C++? How to handle database connections and operations using C++? Jun 01, 2024 pm 07:24 PM

Use the DataAccessObjects (DAO) library in C++ to connect and operate the database, including establishing database connections, executing SQL queries, inserting new records and updating existing records. The specific steps are: 1. Include necessary library statements; 2. Open the database file; 3. Create a Recordset object to execute SQL queries or manipulate data; 4. Traverse the results or update records according to specific needs.

PHP connections to different databases: MySQL, PostgreSQL, Oracle and more PHP connections to different databases: MySQL, PostgreSQL, Oracle and more Jun 01, 2024 pm 03:02 PM

PHP database connection guide: MySQL: Install the MySQLi extension and create a connection (servername, username, password, dbname). PostgreSQL: Install the PgSQL extension and create a connection (host, dbname, user, password). Oracle: Install the OracleOCI8 extension and create a connection (servername, username, password). Practical case: Obtain MySQL data, PostgreSQL query, OracleOCI8 update record.

See all articles