Не запоминает сессию пользователя

instantcms 1.10.1 не запоминает сессию пользователя при смене ip.

#1 29 марта 2013 в 03:15
instantcms 1.10.1 не запоминает сессию пользователя при смене ip. Это крайне не удобно, учитывая что почти у всех пользователей динамический ip.
Как сделать, что бы сессия пользователя сохранялась при смене ip?
#2 29 марта 2013 в 08:49
Мне тоже как то поднадоело, по три раза в день авторизацию проходить…
#3 29 марта 2013 в 09:03
То не инстант, надо чего то там на сервере то ли включить, то ли выключить, уже не помню.
#4 1 апреля 2013 в 00:05
Вспоминай Коля, вся надежда на тебя )
#5 1 апреля 2013 в 00:33
В настройках на сервере нужно увеличить время жизни сессии. Или попросить хостера применить соответствующие настройки если нет доступа.
В php.ini проверьте следующие строчки:

session.use_cookies = 1 (если ноль, то отключены по кукам)
session.use_only_cookies = 1 (если единица, то для сессии будут использоваться только куки)
session.cookie_lifetime = 0 (время жизни сессии, если 0, то пока не будет перезагружен браузер или принудительный выход из сессии)

session.use_trans_sid = 0 (этот параметр лучше в 0)
#6 1 апреля 2013 в 01:12
У меня виртуальный хостинг с php 5.2.
Но раньше на версии 1,9 с сессиями все было в порядке...
В общем я так понимаю проще позвонить хостеру и объяснить проблему.
#7 1 апреля 2013 в 01:26
На некоторых виртуальных хостингах есть возможность редактировать php.ini, этот файл обычно выносится в отдельную папку. Не могу сказать как в вашем случае, но если не найдете этот файл самостоятельно тогда действительно лучше будет обратиться к хостеру, тем более, что время жизни сессии может быть выставлено не только в настройках PHP, но и настройках сервера.
#8 1 апреля 2013 в 18:08
Глянул в админке информацию php, вот настройки сессий php

Session Support enabled
Registered save handlers files user sqlite
Registered serializer handlers php php_binary


session.auto_start Off
session.bug_compat_42 On
session.bug_compat_warn On
session.cache_expire 180
session.cache_limiter nocache
session.cookie_domain no value
session.cookie_httponly Off
session.cookie_lifetime 0
session.cookie_path /
session.cookie_secure Off
session.entropy_file no value
session.entropy_length 0
session.gc_divisor 100
session.gc_maxlifetime 1440
session.gc_probability 1
session.hash_bits_per_character 4
session.hash_function 0
session.name PHPSESSID
session.referer_check no value
session.save_handler files
session.save_path no value
session.serialize_handler php
session.use_cookies On
session.use_only_cookies Off
session.use_trans_sid 0

По сему видно, что куки включены, а время жизни сессии бесконечно.
Куда еще можно копнуть?
#9 1 апреля 2013 в 19:12
На самом деле это не ошибка хостера, а достижение разработчиков Инстанта.
Сессия сейчас привязывается к IP.
В /core/user.class.php нужно редактировать функцию
  1. private function checkSpoofingSession() {
  2.  
  3. // первый раз зашли
  4. if(!isset($_SESSION['user_ip'])) {
  5. $_SESSION['user_ip'] = $_SERVER['REMOTE_ADDR'];
  6. return true;
  7. }
  8.  
  9. return $_SERVER['REMOTE_ADDR'] == $_SESSION['user_ip'];
  10.  
  11. }
например до такого состояния
  1. private function checkSpoofingSession() {
  2. return true;
  3. }
#10 1 апреля 2013 в 19:24
Лучше уж авторизоваться лишний раз чем уменьшить безопасность сайта.
#11 1 апреля 2013 в 21:28
Тяжелый вопрос.
Многие дамы в возрасте так не думают, и перестают писать в форум, особенно с мобильных.
В общем, в эпоху динамических IP и мобильной связи привязка в сессии к IP адресу — жесткое ограничение.
#12 1 апреля 2013 в 22:37
Вот вот, количество авторизованных посетителей из-за этого сократилось почти втрое…
#13 9 сентября 2013 в 00:50
как можно решить данную проблему?
#14 9 сентября 2013 в 15:15

как можно решить данную проблему?

fotpod
Так выше указано, как одну функцию поправить 😊
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.