Я разрабатываю два динамических веб-сайта для проекта Final Year College. Иногда при просмотре вкладок и одновременном открытии обоих веб-сайтов одновременно в одном браузере происходит следующее.
Я использую сеансы для отслеживания входа и просто уничтожаю сеанс в конце (выход из системы) для выхода из системы; из-за этого "session_destroy ();" мой другой сайт, работающий на «localhost», вызывает выход из системы.
Как преодолеть эту проблему?
Не предлагайте конкретно уничтожать переменные сеанса (т. unset($_SESSION['usename'])
. Пожалуйста, предложите подходящий способ, я буду очень благодарен.
Я предлагаю использовать префикс (я использую в своем веб-сайте) и уничтожать сеансы только со спецификацией. префикс
Веб-сайт один
define("prefix", "firstweb_"); $_SESSION[prefix.'logged'] = true;
Веб-сайт два
define("prefix", "secondweb_"); $_SESSION[prefix.'logged'] = true;
Выйти на сайт
destroy_session();
функция
function destroy_session() { foreach($_SESSION as $key => $value) { if(preg_match('/^'.prefix.'/', $value)) unset($_SESSION['key']); } }
сfunction destroy_session() { foreach($_SESSION as $key => $value) { if(preg_match('/^'.prefix.'/', $value)) unset($_SESSION['key']); } }
Убедитесь, что пути для файлов cookie установлены правильно на веб-сайт:
session_set_cookie_params(600,'/website1/','localhost'); session_start();
http://uk3.php.net/manual/en/function.session-set-cookie-params.php
Сеансы будут использовать свой параметр пути только для «/», поэтому это переопределение требуется при работе локально.