[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Виртуальный хост и Сессия
AllesKlar
Приветсвую.

Такая вот странность обнаружилась.

скрипт test.php

<?php
error_reporting(-1);
ini_set('display_errors', 1);

session_start();


if(empty($_SESSION['TEST']))
{
$foo = rand(1000000, 9999999);
echo 'New Wert in $_SESSION["TEST"] geschrieben werden => ' . $foo . "<br><br>"; // в переводе с буржуйского "В $_SESSION['TEST'] записано новое значение"
$_SESSION['TEST'] = $foo;
}
else
{
echo '$_SESSION["TEST"] = ' . $_SESSION['TEST'] . '<br><br>';
}

echo 'SID: ' . session_id() . '<br><br>';



Адрес скрипта:
http://kunden2.cx9.de/mirento/test.php

На сервере есть виртуальный хост www.cx.mirento.de, который смотрит туда же kunden2.cx9.de/mirento/
Прописанный в /etc/apache2/sites-available/www.cx.mirento.de

Проблема в том, что в Хроме и только в нем умирает сессия.
Т.е. если заходим http://kunden2.cx9.de/mirento/test.php то всё Ок,
если заходим http://www.cx.mirento.de/test.php то сессия умирает.
Если в Хроме быстро-быстро обновлять страницу, то сессия не умирает. Т.е. кто-то ее не успевает прибить.
В FF всё нормально по обоим адресам

Куда копать?

_____________
[продано копирайтерам]
Oyeme
http://serverfault.com/questions/402724/be...ildcard-domains

Вот похожиый ответ Вам подойдет
AllesKlar
Цитата (Oyeme @ 1.10.2015 - 10:17)
http://serverfault.com/questions/402724/be...ildcard-domains

Вот похожиый ответ Вам подойдет

Спасибо.
В боевом скрипте SID передается в GET, но это не помогает.

Похоже, проблема неразрешима на уровне хостинга. А вот реализовать сессию на уровне базы - это мысль хорошая. Но дорогостоящая... что, в принципе, меня радует, т.к. дорогостоящая она работодателю. biggrin.gif

_____________
[продано копирайтерам]
killer8080
Цитата (AllesKlar @ 1.10.2015 - 10:56)
Т.е. если заходим http://kunden2.cx9.de/mirento/test.php то всё Ок,
если заходим http://www.cx.mirento.de/test.php то сессия умирает.

дык домены же разные, с чего бы у них должна быть общая сессия? blink.gif
AllesKlar
Цитата (killer8080 @ 1.10.2015 - 11:24)
Цитата (AllesKlar @ 1.10.2015 - 10:56)
Т.е. если заходим http://kunden2.cx9.de/mirento/test.php то всё Ок,
если заходим http://www.cx.mirento.de/test.php то сессия умирает.

дык домены же разные, с чего бы у них должна быть общая сессия? :blink:

Никто не говорит об общих сессиях для разных доменов.

Это было просто для понимания физической структуры сервера.

http://www.cx.mirento.de/test.php - запускаем, обновляем страницу.
При каждом обновлении страницы в Хроме для того же самого SID генерируется новая сессия.
Если обновлять очень быстро, то сессия сохраняется.

добавил в скрипт обработку GET['SID'] для наглядности
Свернутый текст
<?php
error_reporting(-1);
ini_set('display_errors', 1);

if(! empty($_GET['SID']))
{
session_id($_GET['SID']);
}
session_start();


if(empty($_SESSION['TEST']))
{
$foo = rand(1000000, 9999999);
echo 'New Wert in $_SESSION["TEST"] geschrieben werden => ' . $foo . "<br><br>";
$_SESSION['TEST'] = $foo;
}
else
{
echo '$_SESSION["TEST"] = ' . $_SESSION['TEST'] . '<br><br>';
}

echo 'SID: ' . session_id() . '<br><br>';


_____________
[продано копирайтерам]
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.