Home  >  Article  >  Backend Development  >  Solution to Cannot modify header information in php_PHP tutorial

Solution to Cannot modify header information in php_PHP tutorial

WBOY
WBOYOriginal
2016-07-14 10:07:14982browse

One day when I was writing a program, I wrote the address of the error into a cookie so that the user could jump directly to the page to be executed after logging in. However, when I tested it on the server, an error that did not occur locally was prompted: Warning: Cannot Modify header information - headers already sent by.... This statement is obviously caused by setcookie. After checking the Internet, there is the following explanation: The cookie itself has some restrictions on its use, such as:

1. The description of calling setcookie must be placed before the tag;
2. Echo cannot be used before calling setcookie;
3. The cookie will not appear in the program until the web page is reloaded;
4. The setcookie function must be sent before any data is output to the browser.
Solution 1:
Based on the above restrictions, when executing the setcookie() function, you often encounter problems such as "Undefined index", "Cannot modify header information - headers already sent by"... etc. To solve the problem of "Cannot modify header information - headers already sent by" "The method of this error is to delay the output of data to the browser before generating the cookie. Therefore, you can add the ob_start(); function at the front of the program. This will solve it. If you want to add ob_start(), it is not feasible. It seems a bit depressing to change this after the program has been written. When I found out that this error was prompted, I was wondering why my local computer did not prompt this problem. I thought it was The PHP.ini configuration is different, and I think it’s wrong, but it’s almost the same..
So look at the sentence "output started at...." that follows, which means that there is output in another place before setcookie, so I find the file that follows output started at and see the first line It's blank, and then it's
Solved!
Solution 2:
The solutions to this problem found online are mostly the same, but today I encountered such a problem again. After trying it, I found it works:
Find the php.ini configuration file in WINDOWS on the C drive, then search for one item: output_buffering, change its value from off to on, and restart Apache.
Reprinted from www.zhangchaoxie.com

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/477884.htmlTechArticleOne day when I was writing a program, I processed the error address and wrote it into a cookie to facilitate the user to jump directly after logging in. Go to the page to be executed, but found that when testing on the server...
Statement:
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