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), conducted a breakpoint test, and finally found that there is a relatively complex logic. 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 has a function that specifically verifies login. This 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 get 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
Copy the 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);
}
Copy the code The code is as follows:
$td = date('d');
dsetcookie("testvar",$td,30*24*60*60);
print_r($_COOKIE) ;
?>
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 ; ;
[testvar] =10 ) Here we can get 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 on the page that is set, and will be viewed on the next page. The reason why the server can take out the cookie from the client's machine and send it back to the server.
Write here first:
You can learn more about COOKIE through the following links