|
|
@@ -17,23 +17,6 @@ if (!defined("IPCAM_GROUP_ID")) { define("IPCAM_GROUP_ID","5"); }
|
|
|
if (!defined("SNMP_timeout")) { define("SNMP_timeout","500000"); }
|
|
|
if (!defined("SNMP_retry")) { define("SNMP_retry","1"); }
|
|
|
|
|
|
-// исправление дублирующихся PHPSESSID <<<
|
|
|
-if (isset($_SERVER['HTTP_COOKIE'])) {
|
|
|
- preg_match_all('/PHPSESSID=([^;\s]+)/', $_SERVER['HTTP_COOKIE'], $matches);
|
|
|
- if (!empty($matches[1])) {
|
|
|
- $real_session_id = end($matches[1]);
|
|
|
- session_id($real_session_id);
|
|
|
- $_COOKIE['PHPSESSID'] = $real_session_id;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// Включим подробное логирование сессий
|
|
|
-LOG_DEBUG($db_link, "=== SESSION DEBUG START ===");
|
|
|
-LOG_DEBUG($db_link, "Session status: " . session_status());
|
|
|
-LOG_DEBUG($db_link, "PHP_SESSION_ACTIVE: " . PHP_SESSION_ACTIVE);
|
|
|
-LOG_DEBUG($db_link, "DOCUMENT_ROOT: " . $_SERVER['DOCUMENT_ROOT']);
|
|
|
-LOG_DEBUG($db_link, "REQUEST_URI: " . ($_SERVER['REQUEST_URI'] ?? 'unknown'));
|
|
|
-LOG_DEBUG($db_link, "HTTP_COOKIE: " . ($_SERVER['HTTP_COOKIE'] ?? 'no cookies'));
|
|
|
|
|
|
// Удаляем порт из домена для корректной работы кук
|
|
|
$domain_parts = explode(':', $_SERVER['HTTP_HOST']);
|
|
|
@@ -54,6 +37,46 @@ ini_set('session.gc_maxlifetime', SESSION_LIFETIME);
|
|
|
//ini_set('session.use_trans_sid', true);
|
|
|
//ini_set('session.use_only_cookies', false);
|
|
|
|
|
|
+if (!empty($session_init) and $session_init==1) {
|
|
|
+ // Включим подробное логирование сессий
|
|
|
+ LOG_DEBUG($db_link, "=== SESSION DEBUG START ===");
|
|
|
+ LOG_DEBUG($db_link, "Session status: " . session_status());
|
|
|
+ LOG_DEBUG($db_link, "PHP_SESSION_ACTIVE: " . PHP_SESSION_ACTIVE);
|
|
|
+ LOG_DEBUG($db_link, "DOCUMENT_ROOT: " . $_SERVER['DOCUMENT_ROOT']);
|
|
|
+ LOG_DEBUG($db_link, "REQUEST_URI: " . ($_SERVER['REQUEST_URI'] ?? 'unknown'));
|
|
|
+ LOG_DEBUG($db_link, "HTTP_COOKIE: " . ($_SERVER['HTTP_COOKIE'] ?? 'no cookies'));
|
|
|
+ // Инициализация системы сессий
|
|
|
+ log_session_debug($db_link, "Before init_db_sessions");
|
|
|
+ init_db_sessions($db_link);
|
|
|
+ // Инициализация сессии
|
|
|
+ log_session_debug($db_link, "Before session_start check");
|
|
|
+
|
|
|
+ // исправление дублирующихся PHPSESSID <<<
|
|
|
+ if (isset($_SERVER['HTTP_COOKIE'])) {
|
|
|
+ preg_match_all('/PHPSESSID=([^;\s]+)/', $_SERVER['HTTP_COOKIE'], $matches);
|
|
|
+ if (!empty($matches[1])) {
|
|
|
+ $real_session_id = end($matches[1]);
|
|
|
+ session_id($real_session_id);
|
|
|
+ $_COOKIE['PHPSESSID'] = $real_session_id;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (session_status() !== PHP_SESSION_ACTIVE) {
|
|
|
+ log_session_debug($db_link, "Starting session");
|
|
|
+ session_start();
|
|
|
+ log_session_debug($db_link, "After session_start", [
|
|
|
+ 'session_status' => session_status(),
|
|
|
+ 'session_id' => session_id(),
|
|
|
+ 'session_cookie_params' => session_get_cookie_params()
|
|
|
+ ]);
|
|
|
+ } else {
|
|
|
+ log_session_debug($db_link, "Session already active", [
|
|
|
+ 'session_id' => session_id(),
|
|
|
+ 'session_status' => session_status()
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+ LOG_DEBUG($db_link, "=== SESSION DEBUG END ===");
|
|
|
+ }
|
|
|
|
|
|
// Функция для логирования отладки сессий, нужна только для отладки
|
|
|
function log_session_debug($db, $message, $data = null) {
|
|
|
@@ -460,28 +483,3 @@ function logout($db, $silent = FALSE, $redirect_url = DEFAULT_PAGE) {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-// Инициализация системы сессий
|
|
|
-log_session_debug($db_link, "Before init_db_sessions");
|
|
|
-init_db_sessions($db_link);
|
|
|
-
|
|
|
-// Инициализация сессии
|
|
|
-log_session_debug($db_link, "Before session_start check");
|
|
|
-if (session_status() !== PHP_SESSION_ACTIVE) {
|
|
|
- log_session_debug($db_link, "Starting session");
|
|
|
-
|
|
|
- session_start();
|
|
|
-
|
|
|
- log_session_debug($db_link, "After session_start", [
|
|
|
- 'session_status' => session_status(),
|
|
|
- 'session_id' => session_id(),
|
|
|
- 'session_cookie_params' => session_get_cookie_params()
|
|
|
- ]);
|
|
|
-} else {
|
|
|
- log_session_debug($db_link, "Session already active", [
|
|
|
- 'session_id' => session_id(),
|
|
|
- 'session_status' => session_status()
|
|
|
- ]);
|
|
|
-}
|
|
|
-
|
|
|
-log_session_debug($db_link, "=== SESSION DEBUG END ===");
|