|
|
|
| Пытаюсь с сессиями разобраться...
вот скрипт
<?php
session_name('name');
session_start();
$id = session_name().'='.session_id();
$a=22245642;
$b="fghfghfg";
$_SESSION['a'] = $a;
$_SESSION['b'] = $b;
print '<a href = "2.php?'.$id.'">enter</a>';
?>
|
переменные нормально предаются на след страницу через сессию, но, пишет вот такое вот:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at y:\home\localhost\www\1.php:13) in ...
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at y:\home\localhost\www\1.php:13) in
может гдето ошибка, или я чтото не правильно делаю? | |
|
|
|
|
|
|
|
для: Oberon
(25.10.2007 в 17:52)
| | а вы случайно не смотрели что у вас сдесь: y:\home\localhost\www\1.php:13 ? | |
|
|
|
|
|
|
|
для: RV
(25.10.2007 в 17:56)
| |
Нужно запускать в самом начале скрипта, до выполнения...
Попробуй | |
|
|
|
|
|
|
|
для: ШИМ
(25.10.2007 в 17:58)
| | в общем, убрал все лишнее, оставил только заголовок, session_start() перенес,
вот полностью скрипт:
<?php print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; ?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>page</title>
<meta http-equiv="Content-Type" content="application/vnd.wap.xhtml+xml; charset=utf-8"/>
</head>
<body>
<?php
session_start();
session_name('name');
$id = session_name().'='.session_id();
$a=22245642;
$b="fghfghfg";
$_SESSION['a'] = $a;
$_SESSION['b'] = $b;
print '<a href = "2.php?'.$id.'">enter</a>';
?>
</body>
</html>
|
пишет тоже самое,
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at y:\home\localhost\www\1.php:1) in y:\home\localhost\www\1.php on line 10
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at y:\home\localhost\www\wapquest\1.php:1) in y:\home\localhost\www\1.php on line 10
line 10 в данном случае session_start();
не могу понять, почему вылетает Warning: session_start(): | |
|
|
|
|
|
|
|
для: Oberon
(25.10.2007 в 18:12)
| | session_start() нужно ставить в самое начало файла вообще... первой строчкой... перед ним не должно быть ничего... чуть ниже я написал объяснение почему так | |
|
|
|
|
|
|
|
для: Oberon
(25.10.2007 в 17:52)
| | session_start() первая строка в файле | |
|
|
|
|
|
|
|
для: mihdan
(25.10.2007 в 18:09)
| | оп... заработало.. спасиб.
почему именно первая строка, этому есть объяснение? | |
|
|
|
|
|
|
|
|
для: Oberon
(25.10.2007 в 18:15)
| | потому что отправка абсолютно любой информации от сервера клиенту уже требует отправку заголовка какого-либо типа, например content-type = "text/html". По-этому надо вначале сказать серверу, чтоб он начал сохранять данные для сессии, а потом уже отправлять заголовки и те же данные на клиентский браузер. Я вроде это так понял... | |
|
|
|
|
|
|
|
для: mihdan
(25.10.2007 в 18:09)
| | <?php print - это уже вывод..
почему именно первая строка, этому есть объяснение?
=================================================
меня тоже это задолбало. неужели разработчики не могут придумать что-нибудь, чтобы хоть об этой ерунде не думать! :) | |
|
|
|
|
|
|
|
для: elenaki
(25.10.2007 в 18:15)
| | Просто кэширование следует включить по умолчанию - проблема сразу отпадёт... PHP интерпретатор и выполняет все строки последовательно - однако, так как данные отправляются по протоколу HTTP, существует ограничение: все HTTP-заголовки должны быть отправлены раньше тела документа. Включение кэширования по умолчанию решило бы эту проблему. | |
|
|
|
|
|
|
|
для: elenaki
(25.10.2007 в 18:15)
| | ob_start() и можете отправлять заголовки в любое время | |
|
|
|
|
|
|
|
для: Oberon
(25.10.2007 в 17:52)
| | Куки, сессии, отправка заголовков должны происходить до отправки любой информации в окно браузера, т.е. до любого вывода echo, print или непосредственного вывода вне тэгов <?php и ?>. Это связано с тем, что HTTP-заголовки передаются перед всеми данными и когда происходит вывод в окно браузера PHP вынужден их пред этим отослать клиенту. Поэтому повторно, после вывода информации в браузер он не может работать с куками, сессиями и отправлять заголовки.
Если вывод текста до отправки заголовков необходим следует воспользоваться функциями управления вывода, позволяющих задерживать вывод информации в браузер.
http://www.softtime.ru/group/id_group=12 | |
|
|
|
|
|
|
|
для: cheops
(26.10.2007 в 10:52)
| | Дык вот есть небольшой нюансик, который может здорово испортить настроение: если ваш файл в кодировке UTF-8, то в самом его начале находятся три служебных байта (BOM), и эти байты само собой отправляются впереди всех заголовков. А потом ломаешь голову: почему выскакивают предупреждения?! | |
|
|
|
|
|
|
|
для: coloboc66
(26.10.2007 в 13:36)
| | Небольшое уточнение"...если ваш файл в кодировке UTF- 8 и редактировался в некоторых редакторах, то в самом его начале находятся три служебных байта (BOM)... " | |
|
|
|
|
|
|
|
для: Ralph
(26.10.2007 в 18:11)
| | У меня на одной странице вылазит такая непонятная ошибка... Все перепроверил уже, не могу понять,...
Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0 | |
|
|
|
|
|
|
|
для: Oberon
(27.10.2007 в 10:29)
| | Предупреждение: Unknown(): Ваш сценарий возможно полагается на побочный эффект сессий, который существовал до PHP 4.2.3. Доводим до вашего сведения, что это расширение сессии не рассматривает глобальные переменные как источник данных, если register_globals включен. Вы можете отключать эти функциональные возможности и это предупреждение, устанавливая session.bug_compat_42 или session.bug_compat_warn в off, соответственно. Неизвестно в строке 0. | |
|
|
|
|
|
|
|
для: sim5
(27.10.2007 в 11:34)
| | но у меня register_globals off, и переменные передаю точно так же, как и на других страницах.. что за "побочный эффект сессий"?.... не совсем понял, | |
|
|
|
|
|
|
|
для: Oberon
(27.10.2007 в 12:33)
| | А вы посмотрите, что у вас в нулевой строке кода, может даже HEX редактором, если потребуется. | |
|
|
|