Solution to the problem that php cannot set cookies: 1. Execute "ob_start();" at the beginning of the PHP program; 2. Modify the server time or increase the cookie life; 3. Set the correct scope; 4 , use parameterized url to pass cookie value, etc.
The operating environment of this article: Windows 7 system, PHP version 7.1, DELL G3 computer
What should I do if php cannot set cookies?
PHP program cannot set cookie
1. The PHP program has output before executing setcookie.
Solution:
Check the program before setcookie to see if there is a carriage return or space before the PHP code
Or:
Execute ob_start() at the very beginning of the program;
2. The PHP cookie life is too short and will die before it takes effect
To check this problem, you can execute time() in the PHP program; see if the difference between the server time and the local time exceeds the survival time
Solution: Modify the server time or increase the cookie life.
3. PHP cookie scope is incorrect
First set the cookie scope to / to see if there is any problem. If the problem is solved, set it to the correct scope
4. Users are prohibited from using cookies
This is not the fault of the program. However, it can be solved by using parameterized url to pass the cookie value or session.
5. Other questions
6. Thanks to fjytzh on the third floor for the supplement. This situation mostly occurs in older programs. . This effect is equivalent to register_global=on.
Many programs (for example: forums) extract the values of $_COOKIE, $_GET, $_POST
and then $_COOKIE, $_GET , the value of $_POST is unset.
This kind of thing is relatively simple, and I have no way to prevent it. Just pay attention when developing.
Of course you won’t be able to access it later if you use $_COOKIE['XXXX']
7. The most idiotic question
The cookie value is empty. How to do this without using it? I said it
There is a carriage return before the PHP code
I have not noticed this before...
There is another Quite an idiot question
Many programs (for example: forums) extract the values of $_COOKIE, $_GET, $_POST
and then add $_COOKIE, $_GET, $_POST and other values Unset is gone
Of course, later access using $_COOKIE['XXXX'] will not be accessible
This is suitable for modifying other complete systems.
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of What should I do if php cannot set cookies?. For more information, please follow other related articles on the PHP Chinese website!