<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]: Не удается отправить ограничитель кеша сеанса – уже отправленные заголовки (вывод запущен на веб-сайте) на веб-сайте
Предупреждение: невозможно изменить информацию заголовка – заголовки, уже отправленные (вывод, запущенный на веб-сайте) на веб-сайте
Может кто-нибудь мне помочь?
Заранее спасибо….
Как правило, перед началом вывода содержимого сначала выполните всю бизнес-логику (например, управление сеансом).
Как уже указывалось, начало печати содержимого страницы автоматически отправляет заголовки.
<?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 ?>