Если авторизуюсь на сайте и перехожу на форум - все нормально, я на форуме уже авторизована.
Если авторизуюсь на форуме - на сайте я остаюсь неавторизованной.
Теряется сессия при переходе из форума на сайт.
При авторизации на сайте пользователь пишется в сессию - $_SESSION['valid_userid'].
Поэтому когда я авторизую юзера на форуме, я пишу его в $_SESSION['valid_userid'].
Авторизовалась на форуме. Захожу после этого на сайт. Делаю print_r($_SESSION); - сессионные данные есть(т.е. сама сессия стартует), но среди них нет 'valid_userid'. Хотя на форуме если сделать print_r($_SESSION); 'valid_userid' есть.
Почему так происходит?
Спустя 2 минуты, 16 секунд (24.03.2011 - 23:55) inpost написал(а):
Лена
А форум как на поддомене лежит, или в целом просто отдельная папка?
А форум как на поддомене лежит, или в целом просто отдельная папка?
Спустя 2 минуты, 41 секунда (24.03.2011 - 23:58) Лена написал(а):
Форум просто в отдельной папке.
Если от корня сайта - ext/forum/
Я уже от и до все проверила, нигде это значение в сайте не убивается, там всего-то в сессию в двух файлах пишется - системные установки и во время логина-разлогина пользователя.
Если от корня сайта - ext/forum/
Я уже от и до все проверила, нигде это значение в сайте не убивается, там всего-то в сессию в двух файлах пишется - системные установки и во время логина-разлогина пользователя.
Спустя 6 минут, 11 секунд (25.03.2011 - 00:04) neadekvat написал(а):
По идее, просто так, да еще одно значение, потеряться не может (хотя мосты строил, "идеи" там через раз работают).
Если начать с элементарного.. PHPSESSID одинаковый? Стартуется одинаково? Если ставятся кукуисы - то одинаково?
Если начать с элементарного.. PHPSESSID одинаковый? Стартуется одинаково? Если ставятся кукуисы - то одинаково?
Спустя 14 минут, 44 секунды (25.03.2011 - 00:19) Лена написал(а):
PHPSESSID - одинаковый.
На сайте сессия стартуется просто session_start();
На форуме - старт запихнули в функции. Привожу все.
Если ставятся кукуисы - то одинаково? - мне этот вопрос непонятен. При авторизации все ж пишется в сессию. Правда, когда при авторизации на форуме ставится кукис.
На сайте сессия стартуется просто session_start();
На форуме - старт запихнули в функции. Привожу все.
// Attempt to start the session, unless it already has been.
function loadSession()
{
global $HTTP_SESSION_VARS, $modSettings, $boardurl, $sc;
// Attempt to change a few PHP settings.
@ini_set('session.use_cookies', true);
@ini_set('session.use_only_cookies', false);
@ini_set('url_rewriter.tags', '');
@ini_set('session.use_trans_sid', false);
@ini_set('arg_separator.output', '&');
if (!empty($modSettings['globalCookies']))
{
$parsed_url = parse_url($boardurl);
if (preg_match('~^\d{1,3}(\.\d{1,3}){3}$~', $parsed_url['host']) == 0 && preg_match('~(?:[^\.]+\.)?([^\.]{2,}\..+)\z~i', $parsed_url['host'], $parts) == 1)
@ini_set('session.cookie_domain', '.' . $parts[1]);
}
// !!! Set the session cookie path?
// If it's already been started... probably best to skip this.
if ((@ini_get('session.auto_start') == 1 && !empty($modSettings['databaseSession_enable'])) || session_id() == '')
{
// Attempt to end the already-started session.
if (@ini_get('session.auto_start') == 1)
@session_write_close();
// This is here to stop people from using bad junky PHPSESSIDs.
if (isset($_REQUEST[session_name()]) && preg_match('~^[A-Za-z0-9]{16,32}$~', $_REQUEST[session_name()]) == 0 && !isset($_COOKIE[session_name()]))
{
$_REQUEST[session_name()] = md5(md5('smf_sess_' . time()) . mt_rand());
$_GET[session_name()] = md5(md5('smf_sess_' . time()) . mt_rand());
$_POST[session_name()] = md5(md5('smf_sess_' . time()) . mt_rand());
}
// Use database sessions? (they don't work in 4.1.x!)
if (!empty($modSettings['databaseSession_enable']) && @version_compare(PHP_VERSION, '4.2.0') != -1)
{
session_set_save_handler('sessionOpen', 'sessionClose', 'sessionRead', 'sessionWrite', 'sessionDestroy', 'sessionGC');
@ini_set('session.gc_probability', '1');
}
elseif (@ini_get('session.gc_maxlifetime') <= 1440 && !empty($modSettings['databaseSession_lifetime']))
@ini_set('session.gc_maxlifetime', max($modSettings['databaseSession_lifetime'], 60));
// Use cache setting sessions?
if (empty($modSettings['databaseSession_enable']) && !empty($modSettings['cache_enable']) && php_sapi_name() != 'cli')
{
if (function_exists('mmcache_set_session_handlers'))
mmcache_set_session_handlers();
elseif (function_exists('eaccelerator_set_session_handlers'))
eaccelerator_set_session_handlers();
}
session_start();
// Change it so the cache settings are a little looser than default.
if (!empty($modSettings['databaseSession_loose']))
header('Cache-Control: private');
}
// Set the randomly generated code.
if (!isset($_SESSION['rand_code']))
$_SESSION['rand_code'] = md5(session_id() . mt_rand() . (string) microtime() . $modSettings['rand_seed']);
$sc = $_SESSION['rand_code'];
// While PHP 4.1.x should use $_SESSION, it seems to need this to do it right. Also reseed the random generator.
if (@version_compare(PHP_VERSION, '4.2.0') == -1)
{
$HTTP_SESSION_VARS['php_412_bugfix'] = true;
mt_srand((float) microtime() * 10000010 + $modSettings['rand_seed']);
}
else
mt_srand();
}
function sessionOpen($save_path, $session_name)
{
return true;
}
Если ставятся кукуисы - то одинаково? - мне этот вопрос непонятен. При авторизации все ж пишется в сессию. Правда, когда при авторизации на форуме ставится кукис.
Спустя 10 минут, 46 секунд (25.03.2011 - 00:30) neadekvat написал(а):
Цитата (Лена @ 25.03.2011 - 00:19) |
Если ставятся кукуисы - то одинаково? - мне этот вопрос непонятен. |
Быть может, домен указан по-разному. Здесь, например, .домен.ру. А на сайте, возможно, ставишь домен.ру и уже не пашет А вдруг.
Это smf? В зависимости от версии, по-моему, очень много написано о нем, в т.ч. и про мост. Я думаю, стоит поискать и почитать - там уже и подводные камни могут быть описаны, которые так долго можно искать.
Скажи, какая у тебя версия форума, тоже погляжу - скоро подключать надо будет.
Спустя 13 минут, 47 секунд (25.03.2011 - 00:43) Лена написал(а):
Я на локалхосте ставлю, после перенесу на сайт.
Да, это smf. Версия smf_1-1-13_russian-utf8. Вторую не стала брать, пишут, что еще в разработке и не рекомендуют вроде как ставить.
Сам форум хороший, мне он больше нравится, чем phpbb - нет всяких ненужных наворотов, рекламные блоки я убрала, дописала переключатель между языками и ссылку перехода на сайт, а так там все необходимое есть.
Про мост писали, что есть, но писали также, что он кривой. Один я брала, у меня не пошел, села писать сама.
Сейчас вернусь туда, где писали, и скачаю посмотрю хоть кривой. )
Да, это smf. Версия smf_1-1-13_russian-utf8. Вторую не стала брать, пишут, что еще в разработке и не рекомендуют вроде как ставить.
Сам форум хороший, мне он больше нравится, чем phpbb - нет всяких ненужных наворотов, рекламные блоки я убрала, дописала переключатель между языками и ссылку перехода на сайт, а так там все необходимое есть.
Про мост писали, что есть, но писали также, что он кривой. Один я брала, у меня не пошел, села писать сама.
Сейчас вернусь туда, где писали, и скачаю посмотрю хоть кривой. )
Спустя 9 минут, 7 секунд (25.03.2011 - 00:52) neadekvat написал(а):
Вот это, например, читала? У меня форум стоит, но соединять пока не с чем - не могу проверить ничего
Спустя 3 дня, 11 часов, 38 минут, 58 секунд (28.03.2011 - 11:31) Лена написал(а):
Это читала и многое другое. Оно с этой версией не идет.
Я делала проще - просто ставила кукис, без использования функции.
Разрешили пока оставить так, все равно в ближайшем будущем форум будет писаться специально под систему.
Я делала проще - просто ставила кукис, без использования функции.
Разрешили пока оставить так, все равно в ближайшем будущем форум будет писаться специально под систему.