Создаются 2 файла сессии. И запись значений идёт в оба файла.

Leshas0

Новичок
Привет.

Столкнулся с проблемой с сессией. Не знаю, как решить.

При открытии сессии создаётся 2 файла сессии. А при присвоении сессии переменной и значения ($_SESSION['Test'] = "Yes";) запись просиходит в оба файла сессии. Не могу понять, почему два файла и почему запись идёт в оба из них.

Плюс ко всему, сессия теряется даже несмотря на то, что я указываю её название через Session_Id();
А при каждом открытии страницы создаётся новый файл сессии. Например, делаю 30 refresh'ев - создаётся 31 файл.

PHP:
<?php
		/*If(IsSet($_REQUEST[Session_Name()]) !== FALSE)
		{
			Session_Id($_REQUEST[Session_Name()]);
		}*/

		#SetCookie('mysid', 'qwdqwodqwdjqwidqjd', Time()+365*60*60*24, '/');

		#Ini_Set('session.gc_maxlifetime', 24*60);
		#Ini_Set('session.cookie_lifetime', 7*24*60*60);

		Session_Id($_COOKIE['mysid']);

		Session_Start();

		print Session_Id();

		$_SESSION['a'] = 'aaaaa';
?>
И что ещё более странное для меня (только что обнаружил), что если записать так:
Session_Id('qwdqwodqwdjqwidqjd'); - сессия не теряется.

а если записать так:
$sid = 'qwdqwodqwdjqwidqjd';
Session_Id($sid); - создаётся два файла сесcии.

Как можно исправить ошибку?
 

AmdY

Пью пиво
Команда форума
я так понимаю, это ребятки с каких-то курсов, у них одинаковые вопросы.

уберите эту хрень и ничего не придумывайте Session_Id($_COOKIE['mysid']);
 

Leshas0

Новичок
Ребят,
попробовал сделать как вы указали и до поста, и сейчас - всё равно файлы сессий плодятся после каждого рефреша.

PHP:
<?php
		/*If(IsSet($_REQUEST[Session_Name()]) !== FALSE)
		{
			Session_Id($_REQUEST[Session_Name()]);
		}*/

		#SetCookie('mysid', 'qwdqwodqwdjqwidqjd', Time()+365*60*60*24, '/');

		#Ini_Set('session.gc_maxlifetime', 24*60);
		#Ini_Set('session.cookie_lifetime', 7*24*60*60);

		#Session_Id('qwdqwodqwdjqwidqjd');

		Session_Start();

		print Session_Id();
		$_SESSION['a'] = 'aaaaa';
?>
 

Leshas0

Новичок
И главное, почему не работает, по сути, одно и тоже:

Session_Id('qwdqwodqwdjqwidqjd'); - РАБОТАЕТ, сессии больше не плодятся.

$sid = 'qwdqwodqwdjqwidqjd';
Session_Id($sid); - НЕ РАБОТАЕТ, сессии создаются после каждого рефреша.
 

Leshas0

Новичок
Запустил скрипт на хостинге (php 5.2.17):
работает + создаёт всего 1 файл сессии + $sid = 'qwdqwodqwdjqwidqjd'; Session_Id($sid); работает корректно

И этот же скрипт запустил на локалхосте (обновил php до 5.3.5):
по-прежнему плодятся файлы, значения пишутся во все созданные файлы сессии.

Через phpinfo() сравнил настройки session на локалхосте и хостинге - одинаковые.

В общем, не понял я причину такого явления.
 

Leshas0

Новичок
Ещё раз привет.

Похоже, выяснил, в чём причина глюка, который я описал в первом сообщении. Вероятнее всего, в браузере.
Я вспомнил, что не так давно, когда обнаружился этот глюк с созданием файлов при каждом refreshe'е и записи значения во все созданные файлы, я обновил Оперу до версии 11.50 (сейчас проверил: на 14.07.2011 - это последняя версия Оперы).
Провёл эксперимент в Firefox (почему сразу не сделал этого - не додумался). И открывая сайт через Firefox (v 4.0.1) создаётся всего один файл сессии.
 
Сверху