Поддержка Проблемы и решения Php глобальная переменная для сессии

  • Wp 5.7 Multisite
    Хостер Beget.

    На сессию php ругается wp и хостер.
    Понятное дело wp не использует сессии. Но с хостером бесполезно ругаться. Результат 0 будет.

    Сессия PHP была создана вызовом функции session_start(). Это препятствует работе REST API и петлевых запросов. Сессия должна быть закрыта функцией session_write_close() перед выполнением любых HTTP-запросов

    Дайте совет по такому решению трабла: в child тему в functions.php в самый верх вставить код. Тут есть нюанс WP Multisite использует разные дочерние темы на поддоменах. И использует одну дочерную тему для всех.

    Присвоить событие и условие

    add_action('init', 'start_session', 1);
    
    function start_session() {
    if(!session_id()) {
    session_start();
    }
    
    add_action(‘wp_logout’, ‘end_session’);
    add_action(‘wp_login’, ‘end_session’);
    add_action(‘end_session_action’, ‘end_session’);
    
    function end_session() {
    session_destroy ();
    }

    нужно добавить глобальную переменную $_SESSION правильно? И массив.

    $foo = ‘Foo Data’;
    $_SESSION[‘foo’] = $foo;

    Её тоже кодом ниже.
    В итоге вот так должно быть одним куском правильно? Ничего не забыл все так?

    add_action('init', 'start_session', 1);
    function start_session() {
    if(!session_id()) {
    session_start();
    }
    add_action(‘wp_logout’, ‘end_session’);
    add_action(‘wp_login’, ‘end_session’);
    add_action(‘end_session_action’, ‘end_session’);
    function end_session() {
    session_destroy ();
    }

    $foo = ‘Foo Data’;
    $_SESSION[‘foo’] = $foo;

    Дайте совет в правильные файлы я все внедряю и правильный код использоу.

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Beget ругается на это:

    wp-json/wp/v2/types/post?context=edit

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    В итоге вот так должно быть одним куском правильно?

    А как звучит исходная задача, ради которой написан этот код?

    Исходная задача:
    1) ошибка wp php session
    2) ошибка хостера php session

    Наблюдается при внесении изменений на сайте администратором. Вот и думал расставить приоритеты logout login.

    • Ответ изменён 2 недели, 1 день назад пользователем llfoto2545.

    На сайте имеются группы пользователей. Админ, супер админ, редактор, посетитель. Вот и происходят коллизии при авторизации пользователей. Сессия открываются и не закрываются. (Новая не может быть открыта. Правильно?)

    Вот же хук
    add_action(‘wp_logout’, ‘end_session’);
    add_action(‘wp_login’, ‘end_session’);
    add_action(‘end_session_action’, ‘end_session’);

    • Ответ изменён 2 недели, 1 день назад пользователем llfoto2545.
    Модератор Yui

    (@fierevere)

    ゆい

    зачем вам для авторизации WP сессии PHP?
    WP их не использует, совсем.

    Может вы всё же расскажете что именно хотите сделать?

    Так я именно это и написал. В самом начале поста.

    // Понятное дело wp не использует сессии. Но с хостером бесполезно ругаться. Результат 0 будет.

    WP ругается:
    Сессия PHP была создана вызовом функции session_start(). Это препятствует работе REST API и петлевых запросов. Сессия должна быть закрыта функцией session_write_close() перед выполнением любых HTTP-запросов

    Хостер ругается.
    Обнаружена блокировка сессий в PHP

    • Ответ изменён 2 недели, 1 день назад пользователем llfoto2545.

    По мнению wp и хостера это происходит в момент использования сайта авторезированным пользователем.
    Когда к примеру админ в дашборде добавляет какие либо данные, посты, страницы. Сессия блокируется. До тех пор пока не будет осуществен выход.
    Мало того выход автоматически не происходит при закрытии браузера.

    Вот и пытаюсь решить ошибку которую выдает cms
    Закрытием сессий после выхода авторизованного пользователя.

    • Ответ изменён 2 недели, 1 день назад пользователем llfoto2545.
Просмотр 7 ответов — с 1 по 7 (всего 7)