В файле php.ini вы имеете возможность конфигурационный
session.use_only_cookies
Если установлено значение истинно, PHP будет использовать только куки для отслеживания сессии.
В противном случае у PHP есть метод возврата, чтобы использовать get, если браузер отключил куки.
Итак, если вы установите для этого параметра значение false, сеансы также будут работать, если в вашем Safari отключены файлы cookie.
Однако это имеет недостаток безопасности. Некоторые пользователи, которые копируют ваш URL-адрес и отправляют их друзьям, могут скопировать строку SID с URL-адресом и, следовательно, показать свою сессию своим друзьям. Если вы храните SID только в файлах cookie, этого не может быть.
относительно того, как долго сессия жизни, взглянуть на session.gc_maxlifetime варианте конфигурации:
session.gc_maxlifetime задающего количества секунд, после чего данные будут рассматриваться как «мусор» и очищено вверх. Сбор мусора происходит в течение начала сеанса.
Держу пари, что это имеет какое-то отношение к куки-файлу! –
Печенье, истекающее/не отправляемое Сафари, было бы наиболее логичной причиной. Вы можете включить режим отладки Safari и проверить запросы для файла cookie. Или запишите их в журнал доступа к веб-серверам для удобства поиска. – Wrikken