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 am in the php program The header was added,
header("cache-control:no-cache,must-revalidate");
After that, the above error appeared on the page, and even after reading 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. Now I 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 restrictions, so setcookie( ) function, we often encounter problems such as "Undefined index", "Cannot modify header information - headers already sent by"... etc. The way to solve the error "Cannot modify header information - headers already sent by" is to create a cookie before generating it. Delay data output to the browser, so 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 feeds, there will be an error of "Header had all ready send by". In this case, you can use ob_start() to open the buffer first. 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 the 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 can obtain client and server-side information, but to save client-side information, the buffer method is the best choice.
ob_start(); //Open Buffer
phpinfo(); //Use 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 the output of the php page
$content = ob_get_contents();//Get all the content of the php page output
$fp = fopen("output00001.html", "w "); //Create a file, open it, and prepare to write
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;
}
The above introduces the solution to the volume information Cannot modify header information error, including volume information. I hope it will be helpful to friends who are interested in PHP tutorials.