Пишу плагин. В плагине на хук init вешаю функцию старта сессии.
plugin.php
add_action('init', 'startSession', 1);
Функция 'startSession'
function startSession()
{
session_start();
$debugHandler = fopen(PLUGIN_PATH . 'debug.txt', 'a+');
fwrite($debugHandler, current_time('mysql') . ' - ' . session_id() . "\n");
fclose($debugHandler);
}
Проблема возникает иногда. Заключается в том, что за одну загрузку страницы генерируются 2 сессии: одна из которых текущая (с момента открытия браузера), вторая - не понимаю откуда берётся. Отслеживаю при помощи записи лога в файл debug.txt - последние 3 строчки в функции.
Задача: Избавиться от лишней сессии легальным способом...
Новая информация:
Для второй сессии $_SERVER['HTTP_USER_AGENT'] = 'WordPress/4.9.8;http://site.loc'. Для первой сессии там лежит информация о браузере.
У вас за время одной загрузки страницы может несколько раз срабатывать ваша функция из-за того, что на странице выполняются ajax-запросы из js.
Используйте функцию session_status()
для проверки текущего состояния сессии.
В результате тестирования выяснилось, что вторая сессия создаётся не браузером пользователя, а движком Wordpress. Определил это по переменной $_SERVER['HTTP_USER_AGENT'], которая содержала строку 'WordPress/4.9.8;...'.
Решил задачу тем, что перед запуском сессии проверяю $_SERVER['HTTP_USER_AGENT'] на наличие в ней подстроки 'Wordpress'. Если подстроки не найдено, то сессию стартую.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть веб сайт где нужно показывать всем посетителям количество пользователей на данный момент, информация будет передаваться через сокет
Я хочу добавить базу данных на сайт, но для того, чтобы это сделать вphp файле я должен вставить, допустим, такой пример кода: