Home > Backend Development > PHP Tutorial > php cookie scope – don't use your cookie on the current page_PHP tutorial

php cookie scope – don't use your cookie on the current page_PHP tutorial

WBOY
Release: 2016-07-21 15:46:54
Original
916 people have browsed it

Because there was no problem at all in the local test, I ssh to the remote server (not the publishing server. It is recommended not to change things directly on the Publish Server). I conducted a breakpoint test and finally found that there was a complex logic in it. The function calls login verification in the constructor. The verification did not pass, so I jumped away.
Let’s take a look at the use of php cookies through the program. Maybe you are still wondering after reading the above paragraph, what is the connection between this and cookies?
Let’s talk about the login verification used in our MVC structure in general:
The constructor in the controller uses a function specifically to verify login. Such a function is added according to whether the module requires login verification.
Bug program: After setcookie, the current page undergoes login verification.
Cause of bug: The current page cannot obtain the cookie just set on this page
Let’s test it with a program:
Here is a function to set cookies. We are using it now. I am lazy haha

Copy code The code is as follows:

function dsetcookie($var, $value, $life = 0) {
global $_cookie_domain, $_cookie_path, $_timestamp, $_SERVER;
setcookie($var, escape($value), $life ? $_timestamp + $life : 0,
$_cookie_path, $_cookie_domain, $_SERVER[' SERVER_PORT'] == 443 ? 1 : 0);
}

Then create test1.php with the following content:
Copy code The code is as follows:

$td = date('d');
dsetcookie("testvar",$td,30*24*60 *60);
print_r($_COOKIE);
?>

will get an empty array array();
When do we set it up? How can I use this $_COOKIE variable for the first time?
Now let’s slightly change the test1.php program:
Copy the code The code is as follows:

$td = date('d');
dsetcookie("testvar",$td,30*24*60*60);
print_r($_COOKIE);//This needs to be commented out Otherwise, a header warning will be reported
$location = "test2.php";
header("Location: ".$location);
?>

Then we To display $_COOKIE in test2.php, take a look
Copy the code The code is as follows:

print_r ($_COOKIE);
?>

Here we will get:
Array
(
[testvar] =10
)
here You can obtain and use this cookie value.
Why?
You can understand this: the currently set cookie does not take effect immediately, but will not be visible until the next page.
This is because the cookie is passed from the server to the client's browser in the page that is set. The reason why the browser can take out the cookie from the
client's machine and send it back to the server on the next page.

Write here first:

You can learn more about COOKIE through the following links

PHP COOKIE and its use

Netscape’s official original definition of Cookie: http://www.netscape.com/newsref/std/cookie_spec.html

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/320033.htmlTechArticleBecause there is no problem at all in the local test, so ssh to the remote server (not the publishing server, it is recommended not to directly Publish Change things directly on the Server) and conduct a breakpoint test...
Related labels:
source:php.cn
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template