Опции, которые вы использовали, должны работать без опций timeout
и useCookies
, я использовал его в своем последнем проекте, где сеанс должен длиться минимум неделю, откройте вкладку хранилища в панели разработчиков Mozilla и нажмите на куки Слева вы увидите раздел cookie-файлов с cookie-файлами, зарегистрированными для вашего сайта, в моем случае это http://www.kp2.local
, если вы используете 'lifetime' => 7 * 24 * 60 * 60,
, он должен показывать cookie с датой истечения срока 1 неделю спустя , т.е. Wed, 23 Jan 2019
, как показано ниже
, и если вы закомментируете код, а затем выйдете из системы и снова войдете в систему, она покажет вам время истечения на Session
, например
Вам просто нужно использовать следующие настройки в конфигурации
'session' => [
// this is the name of the session cookie used for login on the frontend
'name' => 'advanced-frontend',
'cookieParams' => [
'httpOnly' => true,
'lifetime' => 7 * 24 * 60 * 60
],
],
Если это все еще не работает, выйдите из системы, попробуйте удалить все куки один раз выбрав опцию Delete all
, как на изображении ниже.
и это будет работать.
Примечание: вам следует изменить 7
в 'lifetime' => 7 * 24 * 60 * 60,
на количество дней, в течение которых вы хотите сохранить сеанс
Насколько я знаю, что это - обычно более быстрая и лучшая практика, чтобы не хранить файл в дб, поскольку это станет крупным очень быстро и замедлит его. Лучше пробиваться того, чтобы хранить файл в каталоге и затем просто хранить местоположение файла в дб.
Мы делаем это для images/pdfs/mpegs и т.д. в CMS, который мы имеем на работе путем создания папки для файла, названного от безопасного от URL имени файла и хранения имени папки в дб. Легко только выписать URL его на уровне представления затем.
Вы могли использовать функцию LOAD_FILE MySQL, чтобы хранить файл, но все еще необходимо повиноваться значению max_allowed_packet и тому, что файл должен быть на том же сервере как экземпляр MySQL.
Вы захотите проверить, что конфигурация MySQL оценивает "max_allowed_packet", который мог бы быть установлен слишком маленький, предотвратив ВСТАВКУ (который является большим саму) от случая.
Выполните следование из mysql командной строки:
mysql> show variables like 'max_allowed_packet';
Удостоверьтесь его достаточно большое. Для получения дополнительной информации об этой конфигурации опция посмотрите
Это также влияет на mysql_escape_string () и mysql_real_escape_string () в PHP ограничение размера строкового создания.
Некоторые расширения PHP для MySQL имеют проблемы с LONGBLOB и типами данных LONGTEXT. Расширения не могут поддерживать потоковую передачу блоба (отправляющий блоб один сегмент за один раз), таким образом, они должны отправить весь объект сразу.
Таким образом, если предел памяти PHP или предел размера пакета MySQL ограничивают размер объекта, можно отправить на базу данных, Вы, возможно, должны изменить некоторую конфигурацию или на PHP или на MySQL для разрешения этого.
Вы не сказали, какое расширение PHP Вы используете (существуют по крайней мере три для MySQL), и Вы не показали ни одного кода, который Вы используете для регистрации блоба на базу данных.
Лучший ответ должен использовать реализацию, которая лучше и также работает вокруг той проблемы. Можно прочитать статью здесь. Хранилище 10 МБ, 1000 МБ, не имеет значения. Реализация разделяет файл на блоки/сокращает во многие мелкие кусочки и хранит их в нескольких строках.. Это помогает с загрузкой и выбирающий, таким образом, память также не становится проблемой.
Вы не говорите, какую ошибку Вы получаете (использование mysql_error()
для обнаружения) но я подозреваю, что можно поражать максимальный размер пакета.
Если это верно, необходимо было бы изменить конфигурацию MySQL max_allowed_packet