Спасибо! Я столкнулся с той же проблемой с 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, и сеансы будут работать так, как ожидается!

Что может быть причиной этого? И как я могу решить проблему?

Ответы на вопрос(1)

Ваш ответ на вопрос