Home  >  Article  >  Backend Development  >  Cannot modify header information error solution_PHP tutorial

Cannot modify header information error solution_PHP tutorial

WBOY
WBOYOriginal
2016-07-21 15:48:54807browse

ob_start();
setcookie("username","Song Yanbin",time()+3600);
echo "the username is:".$HTTP_COOKIE_VARS["username"]. "n";
echo "the username is:".$_COOKIE["username"]."n";
print_r($_COOKIE);
?>
Warning: Cannot modify header Information - headers already sent by The reason for the error
I added it to the head of the php program,
header("cache-control:no-cache,must-revalidate");
The page will appear as above Error, even after looking at N information, there was no result. Today I accidentally discovered that there was something wrong with the configuration in my php.ini. I found the php.ini file under C:windows
output_buffering is off by default. I now set it to 4096 and it's OK.
Used to solve the display prompt error, the error message that (date + number of exported files) cannot be used as the file name.
The setcookie function must be sent before any data is output to the browser
Based on the above Limitation, so when executing the setcookie() function, you often encounter problems such as "Undefined index", "Cannot modify header information - headers already sent by"... etc. The method to solve the error "Cannot modify header information - headers already sent by" is Delay the output of data to the browser before generating a cookie. Therefore, you can add the ob_start(); function at the front of the program.
The ob_start() function is used to open the buffer. For example, if there is output before the header() function, including carriage returns, spaces, and line breaks, there will be an error of "Header had all ready send by". In this case, you can use ob_start() first. When opening the buffer, the data block and echo() output of the PHP code will enter the buffer and will not be output immediately. Of course, opening the buffer has many functions, just use your imagination. The following four points can be summarized:

1. Used before header()

ob_start(); //Open buffer
echo "Hellon"; //Output
header("location:index.php "); //Redirect the browser to index.php
ob_end_flush(); //Output all content to the browser
?>

2.phpinfo() function Client and server information can be obtained, but to save client information, the buffer method is the best choice.
ob_start(); //Open the buffer
phpinfo(); // Use the phpinfo function
$info=ob_get_contents(); //Get the contents of the buffer and assign it to $info
$file=fopen('info.txt','w'); //Open the file info. txt
fwrite($file,$info); //Write information to info.txt
fclose($file); //Close the file info.txt
?>

3. Static page technology
ob_start();//Open the buffer
?>
All output of the php page
$content = ob_get_contents();//Get The entire content output by the php page
$fp = fopen("output00001.html", "w"); //Create a file and open it for writing
fwrite($fp, $content); / /Write all the contents of the php page to output00001.html, and then...
fclose($fp);
?>

4. Output code
Function run_code($code) {
If($code) {
ob_start();
eval($code);
$contents = ob_get_contents();
ob_end_clean();
}else {
echo "Error! No output";
exit();
}
return $contents;
}

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/319672.htmlTechArticle?php ob_start(); setcookie("username","Song Yanbin",time()+3600); echo "the username is:".$HTTP_COOKIE_VARS["username"]."n"; echo "the username is:".$_COOKIE["username"]."n"; print_...
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