- Laravel по-русски
- #1 26.12.2016 10:14:38
- Не работает сессию
- #2 26.12.2016 10:38:43
- Re: Не работает сессию
- #3 26.12.2016 11:47:31
- Re: Не работает сессию
- #4 26.12.2016 12:22:51
- Re: Не работает сессию
- #5 26.12.2016 12:39:58
- Re: Не работает сессию
- #6 26.12.2016 13:20:20
- Re: Не работает сессию
- #7 26.12.2016 13:21:06
- Re: Не работает сессию
- #8 26.12.2016 13:49:49
- Re: Не работает сессию
- #9 26.12.2016 14:13:53
- Re: Не работает сессию
- #10 26.12.2016 14:33:56
- Re: Не работает сессию
- #11 26.12.2016 14:49:15
- Re: Не работает сессию
- #12 31.12.2016 07:56:20
- Re: Не работает сессию
- #13 08.08.2018 01:37:05
- Re: Не работает сессию
- Все о WEB программировании
- WEB программирование от А до Я
- Заказать сайт:
- Социальные сети:
- Партнеры:
- Фишки Laravel: не сохраняются сессии
- Проблема: не сохраняются сессии в Laravel
- Решение: сохранение сессий Laravel в файле
- Фишки Laravel: не сохраняются сессии
- Проблема: не сохраняются сессии в Laravel
- Решение: сохранение сессий Laravel в файле
- Почему не сохраняется сессия в Laravel 5.6?
- Laravel по-русски
- #1 06.01.2017 20:22:16
- Не работает сессия при аунтeфикации через Auth::attempt
- Laravel 5.2 Session flash не работает даже с веб-промежуточным по
- 6 ответов
Laravel по-русски
Русское сообщество разработки на PHP-фреймворке Laravel.
#1 26.12.2016 10:14:38
Не работает сессию
Не могу понять, почему не работает сессия, в версии 5,1 работало все
вот код в контролери когда сообщение отправлено
а вот ввиде ввывод сессии, которая не чего не выводит, хотя сообщение отправляеться
Не в сети 03.12.2016
#2 26.12.2016 10:38:43
Re: Не работает сессию
Не в сети 23.06.2015
#3 26.12.2016 11:47:31
Re: Не работает сессию
matros97, в маршрутах подключаешь web middleware? Какая именно версия фреймворка?
Не в сети 03.03.2016
#4 26.12.2016 12:22:51
Re: Не работает сессию
>%matros97, в маршрутах подключаешь web middleware? Какая именно версия фреймворка?
Да подключил посредник web, а версия Laravel 5.3 но как я понял, что посредник web уже вшитый в марширут
Не в сети 03.12.2016
#5 26.12.2016 12:39:58
Re: Не работает сессию
>%matros97, в маршрутах подключаешь web middleware? Какая именно версия фреймворка?
Да подключил посредник web, а версия Laravel 5.3 но как я понял, что посредник web уже вшитый в марширут
Значит в нем проблема. В 5.3 если его поключить вручную в web.php, он ломает сессии. Убери его из маршрутов.
Не в сети 03.03.2016
#6 26.12.2016 13:20:20
Re: Не работает сессию
>%matros97, в маршрутах подключаешь web middleware? Какая именно версия фреймворка?
Да подключил посредник web, а версия Laravel 5.3 но как я понял, что посредник web уже вшитый в марширут
Значит в нем проблема. В 5.3 если его поключить вручную в web.php, он ломает сессии. Убери его из маршрутов.
Убирал, тоже самое не чего не выводит
Не в сети 03.12.2016
#7 26.12.2016 13:21:06
Re: Не работает сессию
Убрал проверил, все равно не выводиться
Не в сети 03.12.2016
#8 26.12.2016 13:49:49
Re: Не работает сессию
Убрал, не возвращай. В представление поставь << session('status') >> без проверки (вне if) . На всякий случай очисти кэш маршрутов и представлений:
Код у тебя правильный, должно работать, если не лез в Http\Kernel.php
Не в сети 03.03.2016
#9 26.12.2016 14:13:53
Re: Не работает сессию
Убрал, не возвращай. В представление поставь << session('status') >> без проверки (вне if) . На всякий случай очисти кэш маршрутов и представлений:
Код у тебя правильный, должно работать, если не лез в Http\Kernel.php
Сделал все равно не фига ( в Kernel я не лез
Не в сети 03.12.2016
#10 26.12.2016 14:33:56
Re: Не работает сессию
Сейчас проблему искать нужно в логике. Например, может быть if($result) не срабатывает из-за пустого результата. Или если $result это коллекция. то нужно что-то вроде if(!empty($result)) делать. Может быть представление другое загружается и пр.
Изменено AlexeyMezenin (26.12.2016 14:35:08)
Не в сети 03.03.2016
#11 26.12.2016 14:49:15
Re: Не работает сессию
Спасибо, за совет, буду искать проблему
Не в сети 03.12.2016
#12 31.12.2016 07:56:20
Re: Не работает сессию
Не в сети 24.12.2015
#13 08.08.2018 01:37:05
Re: Не работает сессию
Возможно кому то поможет. У меня была такая ситуация. Перепробовал все способы, которые нашел — не помогло. Включив в панели разработчика медленный инет заметил, что данные сначала все-таки приходят во view, а потом удаляются. Открыв локальный проект в другом браузере все работало. Методом тыка определил, что мешал мне Adblock
Источник
Все о WEB программировании
WEB программирование от А до Я
Заказать сайт:
Социальные сети:
Партнеры:
Фишки Laravel: не сохраняются сессии
Описывать принцип работы с сессиями в Laravel я не буду. Данный вопрос отлично рассмотрен в документации по Laravel. Опишу суть проблемы и решение ее.
Проблема: не сохраняются сессии в Laravel
И так, проблема заключается в том, что сессии не сохраняются при обновлении страницы. По умолчанию, сессии в Laravel хранятся
Как выглядит проблема. Создаем контроллер, например, MainController, создаем метод test. Вот как выглядит мой контроллер:
Т.е. записываем в сессию с ключем «test» значение «value». А затем выводим значение сессии с ключем «test».
Не забываем про роуты:
Переходим по адресу «/» и видим сообщение «value». Теперь закомментируем строку в нашем контроллере:
Обновляем страницу (жмем F5) и видим, что значение «null».
Решение: сохранение сессий Laravel в файле
Первое, что я проверил – это права доступа для Laravel на папку
Не помогло: файл не создавался. Полез копать дальше и вуаля. Для сохранения сессии в файле в Laravel необходимо не только сделать:
Правим наш контроллер:
Проверяем. О, в папке storage\framework\sessions\ появился файл. И для чистоты эксперимента комментируем строки в контроллере:
И проверяем, обновляем страницу. И видим, что сессия сохранилась.
P.S. Все оказалось банально просто. Для того, чтобы сохранить сессию в файл необходимо дополнительно выполнить
Увы в официальной документации этого я не нашел.
Есть же документация, что баламутите народ.
http://laravel.su/docs/5.0/session
Используйте метод put и не надо будет ничего сохранять.
Возможно, не проверял. Спасибо за совет.
В последней версии Laravel 5.4.23 вообще выпилили set. Оставили только put, но и при использовании put у меня не сохраняется. Нужно делать $request->session()->save();
put тоже не работает, в документации его нет. Laravel 8 уже….
Без save() на сегодняшний день тоже не работает стабильно.
При том через middleware эта проблема у меня пропала.
Однако после нескольких часов глубокого изучения документации, сторонних сайтов и всех прилегающих тем, хочется узнать, от чего же эти дорогие душе разработчики забыли дописать чудесный метод.
Еще хочется спросить у тебя Ромчик, что же ты сам то не проверил перед тем как ссылку кидать. Нету там с версии 4.2 по 8 ничего похожего на save().
Убедись — https://laravel.com/docs/8.x/session
Переключатель версий удобный, справа сверху. А то вдруг.
И риторический вопрос… Почему данные все же записываются когда обращаешься к сессии разными способами, а потом так же перестает работать.
Автору темы огромное спасибо!
Ромчик Михаил.
Прошу прощения.
И еще, пол дня сидел, а наткнулся сразу на два решения проблемы за последние 5 минут… Хотя время покажет. Но я почти уверен. Работает пока что.
Причиной сбоя данной неприятности с сессиями является debugging helper dd()
Вот такая история. Нашел здесь — https://laracasts.com/discuss/channels/laravel/is-sessionsave-required-each-time-i-write-to-session
Альтернатива старый — var_dump()
Фишки Laravel: не сохраняются сессии
Описывать принцип работы с сессиями в Laravel я не буду. Данный вопрос отлично рассмотрен в документации по Laravel. Опишу суть проблемы и решение ее.
Проблема: не сохраняются сессии в Laravel
И так, проблема заключается в том, что сессии не сохраняются при обновлении страницы. По умолчанию, сессии в Laravel хранятся
Как выглядит проблема. Создаем контроллер, например, MainController, создаем метод test. Вот как выглядит мой контроллер:
Т.е. записываем в сессию с ключем «test» значение «value». А затем выводим значение сессии с ключем «test».
Не забываем про роуты:
Переходим по адресу «/» и видим сообщение «value». Теперь закомментируем строку в нашем контроллере:
Обновляем страницу (жмем F5) и видим, что значение «null».
Решение: сохранение сессий Laravel в файле
Первое, что я проверил – это права доступа для Laravel на папку
Не помогло: файл не создавался. Полез копать дальше и вуаля. Для сохранения сессии в файле в Laravel необходимо не только сделать:
Правим наш контроллер:
Проверяем. О, в папке storage\framework\sessions\ появился файл. И для чистоты эксперимента комментируем строки в контроллере:
И проверяем, обновляем страницу. И видим, что сессия сохранилась.
P.S. Все оказалось банально просто. Для того, чтобы сохранить сессию в файл необходимо дополнительно выполнить
Увы в официальной документации этого я не нашел.
Источник
Почему не сохраняется сессия в Laravel 5.6?
Друзья, прошу помощи.
Пар недель изучаю Laravel, установил 5.6, понемногу тестю роутеры, контроллеры, мидлеры, провайдеры)) Дела медленно, но продвигались — сам не торопился, чтобы вникнуть в саму структуру фреймворка. И вот сегодня, практически на ровном месте (в папке движка не ковырялся, глобальных настроек не менял никаких) начались проблемы: при отправке post-запроса с формы вылезает страница «The page has expired due to inactivity. Please refresh and try again», при попытке аутентификации через стандартно установленный Auth выдает то же самое, залогиниться никак не получается. Хотя до последнего момента всё было прекрасно — я не раз отправлял с формы данные, они прекрасно валидировались, выводились через dump(), Без проблем проходил аутентификацию, авторизовывался в закрытом разделе, короче, всё как в оф.мануале. И вот на тебе.
Я поначалу даже на сборку сервера начал грешить (у меня на винде openServer), перенес проект на шаред хостинг, результат ровно тот же.
Заметил, что сервер не сохраняет сессии. То есть, выполняя в контроллере такой код:
данные сессии выводятся, но при следующей перезагрузке страницы не добавляются. Если закомментировать первые две строки, то после очередной перезагрузки переменные key и key2 пропадают. И токен каждый раз новый выдает. Вот страница, где это видно: клик . Все файлы конфигов проверил-перепроверил на всякий случай, атрибуты на папку storage/ выставлены 777. Есесно, конструкция «@csrf» присутствует там, где должна — раньше ведь работало всё без проблем
Код файла contact.blade.php:
Помогите, пожалуйста, советом — что за оказия могла произойти? С пяти часов рою землю носом(((
Источник
Laravel по-русски
Русское сообщество разработки на PHP-фреймворке Laravel.
#1 06.01.2017 20:22:16
Не работает сессия при аунтeфикации через Auth::attempt
Дорогие друзья, столкнулся с проблемой, которую опишу ниже, прошу разобраться с ней. К сожалению с Laravel имею опыта маловато, причем работал с 4 версией продукта.
Операционная система: Windows 10 64
Сервер: Open Server с PHP 5.6 и Apatch 2.4
Laravel 5.3
Стоит глобальная задача , «перенести» сайт с 4 версии Ларки на 5.3. Проблема возникла при разработке формы входа на сайте. В связи с тем, что данная форма должна работать на аяксе, было решено отказаться от использования стандартного решения аунтефикации в пользу своего.
Сделал форму, написал аякс обработчик, прописал в роутер маршрут:
Ну и собственно в данном методе без лишней шелухи всего одна строка:
if (Auth::attempt([’email’ => $email, ‘password’ => $password], true)) < .
В Laravel 4, это работает без проблем, думал, что и в Laravel 5.3 сложности не будет, но, как говорится, что-то пошло не так
По итогу, метод отрабатывает и возвращает true, как положено. Следом можно вернуть данные о юзере через Auth:user() — все отлично.
Но если обновить страницу, то if(Auth:check())< . выдаст false
Какая-то проблема как будто с сессией.
При этом, если воспользоваться дефолтной формой, то все прекрасно работает.
Не пойму вот в чем проблема, кучу всего уже перелопатил и статей и видео, не пойму в чем проблема. Где то читал, что нужно делать middleware дополнительно, в других источниках пишут, что и так должно работать.
Источник
Laravel 5.2 Session flash не работает даже с веб-промежуточным по
Я пытаюсь реализовать flash-сообщения с помощью сеансов, но не могу этого сделать.
в моем контроллере у меня есть:
но когда я проверяю переменные сеанса в представлении, я могу видеть только значения из session()->put(‘mickey’, ‘mouse’) .
многие люди столкнулись с этой проблемой, не имея соответствующих маршрутов внутри веб-промежуточного программного обеспечения. Я сделал это, но это все равно не сработает.
In маршруты.на PHP:
может ли кто-нибудь дать мне знать, что я могу делать неправильно здесь? Спасибо!
6 ответов
Исправлена ошибка путем замены
не знаю, почему это работает, хотя, когда вся документация предполагает, что мы используем [‘middleware’ => [‘web’]]
это более чем вероятно из-за изменения, которое было сделано в рамках Laravel (v5.2.27) что все маршруты по умолчанию являются частью промежуточного программного обеспечения «web», поэтому назначайте его снова в своих маршрутах.php-файл в конечном итоге назначает его дважды.
решение: удалить «паутину» промежуточного слоя из вашего маршрута или удалить автоматическое присвоение от RouteServiceProvider.
перед обновлением Laravel:
после Laravel update:
обратите внимание, как новое обновление автоматически применяет промежуточное программное обеспечение » web » ко всем маршрутам. Просто удалите его здесь, Если вы хотите продолжить использовать Laravel 5.2, Как и раньше (вручную назначая» веб » промежуточное ПО в ваших маршрутах.РНР.)
создайте информацию о сеансе flash, используя этот код:
проверьте его в своем представлении с помощью:
Источник