WedX - журнал о программировании и компьютерных науках

Почему моя функция проверки сеанса PHP не работает с Wordpress один раз?

У меня есть простая функция проверки сеанса для моего сайта, которая перенаправляет на страницу входа, если определенная переменная сеанса не установлена.

public function checkSessionIsActive($session) 
{
    if (!isset($_SESSION["userID"])) {
        header('Location: https://www.mywebsite.com/index.php');
        exit();
    }
}

Это работает, как и ожидалось, на моем сайте.

Недавно я добавил раздел Wordpress на свой основной сайт. Раздел Wordpress находится в собственном каталоге /knowledgebase.

Я хочу добавить функцию проверки сеанса на сторону сайта Wordpress и сделал это, добавив ее на страницу index.php в пределах /knowledgebase (первая страница, загружаемая при переходе на www.mysite.com/knowledgebase. Я убедился, что есть session_start() тоже.

<?php
session_start();

require "../classes/pageHandler.class.php";

$page = new PageHandler;
$page->checkSessionIsActive($_SESSION);
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */

/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */

define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wp-blog-header.php' );

По какой-то причине это не работает должным образом. При переходе на www.mysite.com/knowledgebase меня перенаправляют, как будто if (!isset($session["userID"])) возвращает false.

Захожу снова, пробую ссылку еще раз - работает. Каждый раз во всех браузерах.

Чтобы добавить к странному характеру этой проблемы, каждый раз, когда я пробовал var_dump($_SESSION) в файле /knowledgebase/index.php, он показывает, что переменная сеанса «userID» существует, и я не перенаправляюсь. Удалите var_dump, очистите историю посещенных страниц и повторите попытку — сначала это не удается, а затем работает во второй раз.

Есть идеи?

22.03.2018

Ответы:


1

Ответил для всех, у кого есть эта проблема. Wordpress по-разному обрабатывает сеансы PHP, и это хорошо задокументировано в Интернете. Я нашел хорошую статью: https://www.ironistic.com/using-php-sessions-in-wordpress/, который помог решить эту проблему.

23.03.2018
Новые материалы

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

ИИ в аэрокосмической отрасли
Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


Для любых предложений по сайту: [email protected]