Reading cookies in a PHP script is a simple process. In the last post we discussed that a cookie can be set by manipulating HTML header or using setcookie() PHP function. For reading cookies you don’t need to use a header or function for reading cookie.
How is it done??
PHP provides a superglobal array $_COOKIE. Like other superglobals this is also an associative array. It contains the values against the arguments sent by the server on the client machine using the PHP setting cookies code. The cookie values are accessed just as you do with an array by giving the name of the cookie as string in square brackets. You can get all the arguments set for this named cookie
Syntax for Reading Cookies in PHP Script
echo $_COOKIE[‘name of the cookie’];
or
var_name=$_COOKIE[‘name of the cookie’];
For example, if you set a cookie to record visits of a user for you website with name userVisits, then to display this cookie value you can use this code in your PHP script.
echo $_COOKIE[“userVisits”];
If you want to update this value in the user’s system, use the setcookie() function to reset its value after incrementing userVisits
You are aware that $_GET and $_POST are used to read values sent from a webpage to a PHP script. You should be careful while reading values from $_COOKIE array in you scripts because a malicious user may use the cookie information to send some harmful data to server. So, the data from $_COOKIE must always be validated and must not be used in the same way we use $_GET and $_POST associative arrays.
Cookies set in one page request cannot be read in the same page. If you requested a certain page from the server, the server will first set the cookie. $_COOKIE can get the cookie data only with the next request for same website. First time when the PHP script is executed, server sends the cookie to the browser. The browser saves the cookie in system. This cookie will be returned to server only with the next request by the user’s browser.
Example
setcookie( “userVisits”, 0 ); echo isset( $_COOKIE[“userVisits”] );
This above script displays false when it is executed first time as the associative array $_COOKIE[ “userVisits “ ] doesn’t exist. When the page with above scripts is reloaded you get true. The second time browser sent cookie “userVisits “ to the server which is now readable through $_COOKIE array.
Updating a cookie
A cookie can be updated by sending the new cookie value with a setcookie() function in the updating script. The updated cookie will not be available until the page request is resent by the browser to the server. This is so because for the current request $_COOKIE array will be holding the old value available before the execution of the current script. When the page is refreshed or request is sent again $_COOKIE array will return the updated value.
Example Updating and Reading Cookies in PHP Scripts
The following PHP scripts describes how reading cookies and updating is done in a PHP scripts. Here a cookie with name “Visits” is used to store the number of visits of a user in one session. If the cookie is not set “Cookie Not set” is displayed in browser, else the visit count is displayed and the cookie is updated with new count by incrementing the last count returned by $_COOKIE array.
<?php $cnt=0; if (isset($_COOKIE["Visits"])) { echo $_COOKIE["Visits"] ; $cnt=$_COOKIE["Visits"] ; $cnt=$cnt+1; } else { echo "Cookie Not set"; } setcookie("Visits", $cnt ); ?>
After first request by browser, cookie is initialized to 0 to be used in second request
After second request by browser the stored 0 value is displayed and incremented to 1
After third request by browser
After fourth request by browser
Be First to Comment