Спасибо! Я столкнулся с той же проблемой с Cloudways, отключение Varnish решило проблему.
я проблемы с плагином Wordpress, над которым я работаю. Сессии PHP не ведут себя согласованно. Я прочитал следующие статьи:
https://wordpress.stackexchange.com/questions/121144/session-in-wordpress-plugin-development
https://silvermapleweb.com/using-the-php-session-in-wordpress/
И многие другие, которые дают тот же совет о начале сеанса с помощью хука инициализации.
Я реализовал это в моем плагине:
add_action('init', 'set_session', 1);
function set_session(){
if(!session_id()){
session_start();
}
}
Сессии по-прежнему ведут себя странно, поэтому я создал тест, чтобы увидеть, установлены ли сессии.
$_SESSION['GuestID'] = 'test';
if(!session_id()){
echo 'Session Not Started';
} else{
if(isset($_SESSION['GuestID'])){
echo 'Guest ID From Session: '.$_SESSION['GuestID'];
} else{
echo 'Guest ID not set in Session!';
}
}
Когда я запускаю это, идентификатор гостя возвращается 'Guest ID From Session: test', однако, если вы перезагрузите компьютер, попытаетесь получить доступ к сеансу с другой страницы, вы получите 'Guest ID, не установленный в Session!' сообщение. Для меня это означает, что сеанс был запущен, но по какой-то причине он не хранит мои данные сеанса.
Я также вижу, что для идентификатора сеанса не хранятся файлы cookie.
Странная часть всего этого заключается в том, что если я войду в систему администратора Wordpress, идентификатор сеанса PHP будет сохранен в файле cookie, и сеансы будут работать так, как ожидается!
Что может быть причиной этого? И как я могу решить проблему?