Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
DeeperMD Гость цитировать
|
Добавлено: 08 Фев 2008 14:58:54 Заголовок сообщения: Проблема сессий!!! |
|
|
Бьюсь уже неделю. не могу понять.
В основных настройках стоит:
Код: | Configure::write('Session.start', true); |
но при попытке отобразить массив $_SESSION пишет:
Код: | Array( ) - тобишь пустой |
Предчувствие что ссесия не стартанула (не смотря на настройки), ну да ладно где не наша пропадала, стартую сессию в ручную, пишет такую вешь:
Код: | Warning (2): session_start() [function.session-start]: Cannot send session cache limiter - headers already sent |
Ну вот и приехали замкнутый круг. В хэдер данные уже прописаны.
CakePHP автоматом не стартует сессию а в ручнуе нифига не проходит..
Что делать? Почему сессия не стартует и где же прописать ручной старт? |
|
Вернуться к началу |
|
|
hevil
цитировать
Зарегистрирован: 07 Фев 2008 18:57:18 Сообщения: 17 Откуда: Moscow
|
Добавлено: 08 Фев 2008 15:04:29 Заголовок сообщения: |
|
|
core.php настройка сессии
/**
* CakePHP включает в себя 3 типа сохранений сессий
* в базе данных или в файлах. Настройте это так как предпочитаете.
* Если вы хотите использовать свое место для хранения, укажите это в
* app/config/name.php НЕ ИСПОЛЬЗУЙТЕ имя файла или базы данных как имя.
*
* Устанавливая значение cake, вы получите сохранение файлов сессии в директорию /cakedistro/tmp
* Устанавливая значение php, вы получите сохранение файлов сессии в директорию php по умолчанию
* Устанавливая значение database, вы получите сохранение данных сессии в базу данных
*
*
*/
define('CAKE_SESSION_SAVE', 'php'); |
|
Вернуться к началу |
|
|
DeeperMD
цитировать
Зарегистрирован: 08 Фев 2008 15:04:11 Сообщения: 144 Откуда: $Молдова->Кишинёв->Буюканы()
|
Добавлено: 08 Фев 2008 15:11:19 Заголовок сообщения: |
|
|
А забыл.. Если включать сессии через session_start()
то они работаю тока выдается Warning который выше.
получается что define('CAKE_SESSION_SAVE', 'php'); непричем..
всё настроено..
Добавлю. работаю на Денвере.. |
|
Вернуться к началу |
|
|
hevil
цитировать
Зарегистрирован: 07 Фев 2008 18:57:18 Сообщения: 17 Откуда: Moscow
|
Добавлено: 08 Фев 2008 15:39:05 Заголовок сообщения: |
|
|
DeeperMD писал(а): | А забыл.. Если включать сессии через session_start()
то они работаю тока выдается Warning который выше.
Добавлю. работаю на Денвере.. |
ну чтоб не выдавались Warning можно первой строчкой в php-скрипте написать ob_start() - включить кэширование отправляемых заголовков, но это решение через ж.
скажу так: только позавчера поставил себе cake и юзаю его со всеми стандартными настройкими (тоже на денвере), никаких проблем не замечал.
Цитата: | получается что define('CAKE_SESSION_SAVE', 'php'); непричем..
всё настроено.. |
Ну значит не все настроени, коли не работает.
Параметр CAKE_SESSION_SAVE у тебя какое значение имеет?
Ну и попробуй в своем контроллере протестить:
$this->Session->write('test', '1');
echo $this->Session->read( 'test' );
echo $this->Session->error(); |
|
Вернуться к началу |
|
|
DeeperMD
цитировать
Зарегистрирован: 08 Фев 2008 15:04:11 Сообщения: 144 Откуда: $Молдова->Кишинёв->Буюканы()
|
Добавлено: 08 Фев 2008 15:49:35 Заголовок сообщения: |
|
|
$this->Session->write('test', '1');
print_r( $this->Session->read());
echo $this->Session->error();
Выдает:
Array ( [test] => 1 )
Поэтому я и говорю что сессии работают.. Но то что я писал раньше в сессии нет. А где то что я писал раньше.
Если я делаю так:
Код: | session_start();
$this->Session->write('test', '1');
print_r( $this->Session->read());
echo $this->Session->error(); |
Получется аот так:
Warning (2): session_start() [function.session-start]: Cannot send session cache limiter - headers already sent
И сессия выглядит уже так
Код: | Array ( [Config] => Array ( [userAgent] => e03ef084b68c376416e596e50f90c0ec [time] => 1202654522 [rand] => 25640 [timeout] => 10 ) [user] => Array ( [id] => 1 [username] => deeper [photo] => howard.jpg [spec] => ) [test] => 1 )
|
Полуается как будто CakePHP не видит данных записанных раньше, хотя они там есть. |
|
Вернуться к началу |
|
|
DeeperMD
цитировать
Зарегистрирован: 08 Фев 2008 15:04:11 Сообщения: 144 Откуда: $Молдова->Кишинёв->Буюканы()
|
Добавлено: 08 Фев 2008 16:12:17 Заголовок сообщения: |
|
|
Даю информацию к размышлению..
Залез сюда: /cake/libs/session.php
и поставил в это функции метки:
Код: | function __startSession() {
if (headers_sent()) {
if (!isset($_SESSION)) {
$_SESSION = array();
[b]print("1");[/b]
}
return false;
} elseif (!isset($_SESSION)) {
session_cache_limiter ("must-revalidate");
session_start();
[b]print("2");[/b]
header ('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"');
return true;
} else {
session_start();
return true;
}
} |
Результат удивил. Выдала "1". что это значит. Что сессия пытается открыться после того как в хэдер ушли данные.. Где этот баг искать.. может я чё то уже отправил туда.. |
|
Вернуться к началу |
|
|
DeeperMD
цитировать
Зарегистрирован: 08 Фев 2008 15:04:11 Сообщения: 144 Откуда: $Молдова->Кишинёв->Буюканы()
|
Добавлено: 08 Фев 2008 16:15:21 Заголовок сообщения: |
|
|
точно чего-то отправил.. в исходника до единицы несколько пробелов.. |
|
Вернуться к началу |
|
|
DeeperMD
цитировать
Зарегистрирован: 08 Фев 2008 15:04:11 Сообщения: 144 Откуда: $Молдова->Кишинёв->Буюканы()
|
Добавлено: 08 Фев 2008 16:39:37 Заголовок сообщения: |
|
|
AAAAAAAAAAAAAAAAAAAAAAAA!!!!!!!!!!!!!!!!
НАШЕЛ.
ПРОБЕЛЫ после ?> в модели.. блин..
Всё тема закрыта..
hevil, спасибо за обсуждение. |
|
Вернуться к началу |
|
|
hevil
цитировать
Зарегистрирован: 07 Фев 2008 18:57:18 Сообщения: 17 Откуда: Moscow
|
Добавлено: 08 Фев 2008 17:22:13 Заголовок сообщения: |
|
|
не за что |
|
Вернуться к началу |
|
|
|