Предлагаю вот какое решение проблемы с реактивацией:
Исходя из задумки (если я правильно понял) - должно быть две session_id для одного user_id, но в одном session_admin должен быть установлен в 0, а во втором - в 1. Ошибка, на мой взгляд, заключалась в том, что, в момент, когда должна была создаваться новая сессия (со страници логина, где просят реактивировать) - сценарий не проверяет данные на то, что это запрос был, действительно со страницы реактивации. А именно:
Код: Выделить всё
#--- [ OPEN ] ---
includes/sessions.php
#--- [ FIND ] ---
if ( !$db->sql_query($sql) || !$db->sql_affectedrows() )
#--- [ REPLACE WITH ] ---
if ( !$db->sql_query($sql) || !$db->sql_affectedrows() || $admin)
#-----[ SAVE/CLOSE ALL FILES ]---
Что скажете?