Session Usage
PHP 4.0 has a feature that has been long-awaited, which is PHP session support. In contrast, PHP 3.0 users have to use third-party libraries or do not have this functionality at all. The lack of session support is one of PHP's biggest flaws and its most criticized aspect. However, as session support has been part of PHP 4.0 since early beta versions, this obstacle has disappeared.
With session support, you can maintain user-specific variables during a user's visit to a website without having to set multiple cookies, use hidden form fields, or store information in a database that you may frequently connect to. wait.
Starting a session on a page tells the PHP engine that you either want to start a session (if there has not been one before) or continue the current session:
session_start();
Starting a session will pass a cookie to The user sends an identification string (such as 940f8b05a40d5119c030c9c7745aead9); on the server side, a temporary file matching this is created. In the above example, its name is like this: sess_940f8b05a40d5119c030c9c7745aead9. This file contains registered session variables and their assignments.
User access counters are the most common examples of using sessions:
Start your PHP module and make sure the PHP code is the first line of the file: no whitespace, no HTML output, etc. This is because when the session function emits a file header, if you send blanks or HTML code before the session_start() function, the system will report an error.
// if a session does not yet exist for this user, start one
session_start();
Next, register a variable named count.
session_register(count);
Registering a variable is equivalent to telling PHP that as long as the session exists, a variable named count will also exist. This variable has not yet been assigned a value. However, if you add 1 to it, the value can be assigned to 1:
$count++;
Taking the above lines of code together, you have actually started a session (if you didn't already) , assign a session id to a user, register a variable named count and add 1 to $count to indicate the first time the user visits the page:
To display the number of times the user has visited the page in the current session, you just print out $ The value of count can be:
echo "
Youve been here $count times.
";
If you reload the above script, you can observe that the count value increases. Interesting?
You can also register arrays in the session. Suppose you have an array called $faves:
$faves = array (chocolate,coffee,beer,linux);
You can register the array like any other single variable:
session_register(faves);
There is no difference between indexing an array and indexing other single variables, such as $faves. If your user wants to show his hobbies on a page of the Web site, then you can register his favorite things as a session variable called $faves, and then you can print these values on other pages:
This is what you get: a beautiful list of user hobbies.
Session variables cannot be overridden by query strings, that is, you cannot type a directive like http:///www.yourdomain.com/yourscript.php?count=56 to assign a new value to the registered session variable $count . This is very important for security reasons: you can only modify or delete (unregistered) session variables from server-side scripts.
If you want to completely delete a session variable, you can unregister the variable from the system:
session_unregister(count);
To completely delete a session, for example, pressing the Logout button is an example of this. Then you can write the following code:
session_destroy();
Using sessions to store variable values can save us from the pain of writing database processing code, so that it will not excessively increase the load on the system, and at the same time It also reduces the need for proprietary database syntax, and you no longer have to send a bunch of cookies to users visiting your site. But now - you only need one cookie and one variable to get it all done. It’s really just a drop of water that reflects all the glory! It really doesn't get any simpler than this.