|
|
|
|
|
для: Booblik
(27.02.2007 в 22:39)
| | Куки, сессии, отправка заголовков должны происходить до отправки любой информации в окно браузера, т.е. до любого вывода echo, print или непосредственного вывода вне тэгов <?php и ?>. Это связано с тем, что HTTP-заголовки передаются перед всеми данными и когда происходит вывод в окно браузера PHP вынужден их пред этим отослать клиенту. Поэтому повторно, после вывода информации в браузер он не может работать с куками, сессиями и отправлять заголовки.
Если вывод текста до отправки заголовков необходим следует воспользоваться функциями управления вывода, позволяющих задерживать вывод информации в браузер.
http://www.softtime.ru/group/id_group=12
http://www.softtime.ru/forum/ead.php?id_forum=1&id_theme=147
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=148
Вы можете также включить буфферизацию, если имеете доступ к конфигурационному файлу php.ini
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=8484 | |
|
|
|
|
|
|
|
для: Booblik
(27.02.2007 в 22:39)
| | То,что у вас там на странице-это html-код,который выводится в браузер,а header должны отсылаться и сессия открываться session_start'om ДО этого вывода.Лучше всего session_start писать в самом начале страницы. | |
|
|
|
|
|
|
| Привет, я тут с сессиями маюсь
Вначале запускаю сессию:
<?
session_start();
$_SESSION['username'] = “Booblik”;
?>
|
Потом на другой странице выважу данные
<?
session_start();
echo 'Привет, '.$_SESSION['username']."<br>";
?>
|
Вот в чём загвоздка, если этот скрипт открывать в пустом окне всё нормально, выводиться сообщение Привет, Booblik
А вот если я его вставляю на какую-нибудь страницу сайта выскакивает ошибка:
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/b/booblik.h17.ru/WWW/engine/header.engine.php:12) in /home/b/booblik.h17.ru/WWW/ses/name.php on line 3
Я как понял тут написано: невозможно отправить данные сессии, они уже отправлены из файла /header.engine.php
Но в этом фале у меня вот что:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head>
<title>
MooW studio
</title>
<link href="engine/style.css" rel="stylesheet" type="text/css" />
</head>
|
Эта ошибка выскакивает, но всё равно сессия работает, выводиться сообщение Привет, Booblik
Подскажите как избавиться от этой ошибки?
И ещё хотелась бы узнать, как написать такой скрипт:
Если переменная $_SESSION['username'] существует, тогда выводим
<?
session_start();
echo 'Привет, '.$_SESSION['username']."<br>";
?>
|
А если не существует, тогда предлогаем начать сессию. | |
|
|
|
|