Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Борис Гость цитировать
|
Добавлено: 06 Янв 2008 13:48:38 Заголовок сообщения: Продолжить исходное действие после формы "логина" |
|
|
Добрый день!
Вчера поставил CakePHP 1.2.* и накидал пару моделей по руководству. Также добавил простейшую регистрацию. Но наткнулся на следующую проблему:
1) Проверка возможности выполнить определённое действие (и отображение формы "логина") происходит при попытке выполнить это действие. Например, у меня в списке есть кнопка "Edit", которая выполняет переход в режим редактирования. Если же пользователь не вошёл в систему, то он выводит форму для входа. Но после того как пользователь войдёт система отправит его на заранее определённую страницу, а не ту, которую запросил пользователь.
Как можно "вспомнить" то действие, которое хотел выполнить пользователь, чтобы ему не пришлось опять искать ту кнопку "Edit"?
2) Второй вопрос является продолжением предыдущего. Я вошёл в систему и начал редактировать запись, но после нажатия кнопки сохранить мне будет предложено снова войти (из-за таймаута сессии). При этом все введённые данные пропадут.
Как можно "сохранить" все введённые данные (в том числе в POST), чтобы форма "логина" не нарушала работу пользователя?
Может быть есть уже готовый компонент, который можно внедрить для анализа? |
|
Вернуться к началу |
|
|
Антон Исайкин Site Admin цитировать
Зарегистрирован: 08 Окт 2007 12:02:56 Сообщения: 150 Откуда: Санкт-Петербург
|
Добавлено: 07 Янв 2008 14:51:36 Заголовок сообщения: |
|
|
1. Очень просто. Перед тем как отправить пользователя в форму логина, запишите в сессию с какой страницы отправили. А когда пользователь залогинится -- кидайте его обратно.
2.1. Опять же поможет сессия. Кидайте туда весь вывод $this->data.
2.2. Или увеличьте время время действия сессии. |
|
Вернуться к началу |
|
|
KPOTOB
цитировать
Зарегистрирован: 09 Дек 2007 14:46:20 Сообщения: 127
|
Добавлено: 07 Янв 2008 16:57:24 Заголовок сообщения: |
|
|
2.3. AJAXом сессию обновлять |
|
Вернуться к началу |
|
|
Борис Гость цитировать
|
Добавлено: 08 Янв 2008 00:25:07 Заголовок сообщения: |
|
|
Антон Исайкин, спасибо. Но очень странно, что не нашёл ни одного подходящего примера. Примеры из мануала оказались очень поверхостными и оторванными от жизни.
KPOTOB
про AJAX думал, по нему еще будут вопросы, но сам ненавижу сайты, которые без javascript не работают, поэтому нужно предусмотреть и обычный способ. |
|
Вернуться к началу |
|
|
KPOTOB
цитировать
Зарегистрирован: 09 Дек 2007 14:46:20 Сообщения: 127
|
Добавлено: 08 Янв 2008 14:59:51 Заголовок сообщения: |
|
|
Борис
IMHO увеличь таймаут до разумного значения - врятли ктото в форме ввода больше 8 часов проторчит |
|
Вернуться к началу |
|
|
Inspired
цитировать
Зарегистрирован: 22 Янв 2008 01:50:01 Сообщения: 3 Откуда: Киев
|
Добавлено: 22 Янв 2008 02:18:15 Заголовок сообщения: |
|
|
AuthComponent делает это автоматически, кроме сохранения данных POST конечно. _________________ CakeBaker.org.ua |
|
Вернуться к началу |
|
|
KPOTOB
цитировать
Зарегистрирован: 09 Дек 2007 14:46:20 Сообщения: 127
|
Добавлено: 02 Фев 2008 02:36:25 Заголовок сообщения: |
|
|
Про POST
Особых проблем модицифировать AuthComponent для сохранения $this->data в сессии нет
Но вот как пропихнуть это при редиректе?
По идеи можно в AppController::beforeFilter вытягивать из сесии.
Еслибы можно было AuthComponent::beforeFilter организовать - былобы красивее (тем более что beforeRedirect есть уже)
Или в startup |
|
Вернуться к началу |
|
|
|