Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
Watched Topics
FAQ
Поиск
Пользователи
Группы
Регистрация
Профиль
Войти и проверить личные сообщения
Вход
Список форумов Cake-PHP.ru
->
Общий
Ответить
Имя
Тема
Сообщение
Смайлики
Дополнительные смайлики
Цвет шрифта:
По умолчанию
Тёмно-красный
Красный
Оранжевый
Коричневый
Жёлтый
Зелёный
Оливковый
Голубой
Синий
Тёмно-синий
Индиго
Фиолетовый
Белый
Чёрный
Размер шрифта:
Размер шрифта
Очень маленький
Маленький
Обычный
Большой
Огромный
Закрыть теги
[quote="bobadd"]Я вообще в AppController'e прописал function isAuthorized(){ $user = $this->User->findById($this->Auth->user('id')); $this->Session->write('User', $user["User"]); return true; } В любом контроллере считываю $User = $this->Session->read("User");[/quote]
Настройки
HTML
ВЫКЛЮЧЕН
BBCode
ВКЛЮЧЕН
Смайлики
ВКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Отключить в этом сообщении смайлики
Если у вас плохое зрение или вы не можете прочесть этот код по какой-то другой причине, то обратитесь за помощью к
Администратору
.
Код подтверждения: *
Введите код в точности так, как вы его видите. Код является регистро-зависимым, а символ нуля имеет косую линию внутри цифры.
Часовой пояс: GMT + 3
Перейти:
Выберите форум
CakePHP Форум
----------------
Общий
Установка и настройка
Творчество
Вопросы и пожелания
Комментарии к главам руководства по CakePHP 1.1
Обзор темы
Автор
Сообщение
bobadd
Добавлено: 15 Май 2009 15:44:41
Заголовок сообщения:
Я вообще в AppController'e прописал
function isAuthorized(){
$user = $this->User->findById($this->Auth->user('id'));
$this->Session->write('User', $user["User"]);
return true;
}
В любом контроллере считываю
$User = $this->Session->read("User");
uran26
Добавлено: 15 Май 2009 14:16:35
Заголовок сообщения:
У кого-то есть подобный рабочий код? поделитесь?
Vlad
Добавлено: 15 Май 2009 12:16:47
Заголовок сообщения:
Может в эту переменную "user" пишет/обнуляет кто-то ещё? Кроме твоей функции?
Как ещё? Да при помощи стандартных средств PHP. Как и раньше, в до-кейкпхпшные времена
))
А если у вас сайт на локале, на денвере - то можно просто файл сессии глянуть.
uran26
Добавлено: 15 Май 2009 11:37:27
Заголовок сообщения:
Я с Вами согласен - сессия доступна для всего приложения.
Для проверки во втором контроллере создал идентичный метод get_session_data (соответственно идентичный вид), он в нем переменная из сессии уже не видна.
А устанавливал вот так(как во многих банальных примерах):
class Controller1Controller extends AppController {
...
$this->Session->write ( "user", $someone['Moderator']['name'] );
$this->redirect ( "/Controller2/get_session_data" );
...
}
Какие можно проверить существует ли переменная (кроме $this->Session->check("user"))? не сбрасывается ли? не закрыта ли сессия?
Vlad
Добавлено: 15 Май 2009 09:13:12
Заголовок сообщения:
Сессия доступна для всего приложения (для всех контроллеров).
Проверьте, может переменная не пишется, или сбрасывается?
uran26
Добавлено: 15 Май 2009 01:43:06
Заголовок сообщения: Доступ к одной переменной сессии из двух разных контроллеров
Доброй ночи(дня) всем.
Помогите разобраться:
Есть два контроллера - Controller1 и Controller2.
В первом есть методы: login, logout, get_session_data (предназначение, думаю, с названия понятно).
Во втором - get_session_data.
После успешного логина, регистрации переменной в сессии (Session->write), редиректимся на /Controller1/get_session_data, который нам выводит логин, под которым только что залогинились.
Если редиректить на /Controller2/get_session_data - логин не видит.
Содержимое get_session_data, что во в первом, что во втором контроллере одинаковое:
$this->set ( "user", $this->Session->read ( "user" ) );
и вид:
<?php if ( ! empty ( $user ) ) echo "User: " . $user; ?>
Как обращаться к переменным сессии из Controller2, которые были установленные Controller1?
Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB
Если ничего интересного не нашли, можно рекламу почитать, а рекламируется у нас сегодня «».