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:
php
$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
http://www.bkjia.com/PHPjc/320033.htmlwww.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...