Невозможно изменить информацию заголовка – заголовки, уже отправленные

<div id="left-body-part-innerpage"> <h1 class="mainheading">Contact Us</h1> <div id="contactus-right-div" class="content"> <?php session_start(); if( isset($_POST['button2'])) { if( $_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'] ) ) { $name = $_POST['name']; // Insert you code for processing the form here, eg emailing the submission, entering it into a database. session_destroy(); header("Location: contactdb.php"); ?> 

Я получаю Предупреждение: session_start () [function.session-start]: Не удается отправить ограничитель кеша сеанса – уже отправленные заголовки (вывод запущен на веб-сайте) на веб-сайте

Предупреждение: невозможно изменить информацию заголовка – заголовки, уже отправленные (вывод, запущенный на веб-сайте) на веб-сайте

Может кто-нибудь мне помочь?

Заранее спасибо….

Как правило, перед началом вывода содержимого сначала выполните всю бизнес-логику (например, управление сеансом).

Как уже указывалось, начало печати содержимого страницы автоматически отправляет заголовки.

  1. Запуск сеанса требует установки заголовков HTTP
  2. Вы не можете отправлять заголовки после отправки контента
  3. Все, что снаружи <?php и ?> Составляет контент (как и все, что вы echo , print и т. Д.),

Переместите код сеанса в начало скрипта.

все работы с сеансом, файлы cookie, header () и т. д. (все, что изменяет заголовки HTTP) должны быть выполнены до первого вывода скрипта … поместите ваш php-блок перед разметкой

 <?php session_start(); if( isset($_POST['button2'])) { if( $_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'] ) ) { $name = $_POST['name']; // Insert you code for processing the form here, eg emailing the submission, entering it into a database. session_destroy(); header("Location: contactdb.php");?> <div id="left-body-part-innerpage"> <h1 class="mainheading">Contact Us</h1> <div id="contactus-right-div" class="content"> 

Предупреждение: session_start () [function.session-start]: не удается отправить ограничитель кеша сеанса – уже отправленные заголовки (вывод запущен на веб-сайте) на веб-сайте

 Warning: Cannot modify header information - headers already sent by (output started at website) in website 

Что касается этого двух вопросов:

— Используйте начало сеанса в верхней части кода. До этого вы можете использовать ob_start () для очистки выходного буфера.

Подобно,

 <?php ob_start(); session_start(); ?> 

Используйте буферизацию вывода для предотвращения вывода перед отправкой заголовков.

 <?php function callback($buffer) { // заменить все apples на oranges return (ereg_replace("apples", "oranges", $buffer)); } ob_start("callback"); //HERE you can send any headers you want. callback is not required here if you don't want ?> <html> <body> <p>It's like comparing apples to oranges. </body> </html> <?php //And here you can ob_end_flush(); //If send headers here - you'll get warning ?>