Фреймы и сессии

herr_skin

Новичок
Фреймы и сессии

У меня было все хорошо пока не добавил фреймы на сайт.

передавал все переменные через сессии, теперь все эти переменные теряються, ввел только фреймы в сайт.
Фреймы устроены так что, в основном где идет все движение по переменным, теряются эти сессионные переменные.
во втором фрейме только GIF-banner, и больше ничего.

подскажите в чем может быть проблема?

Как зарегестрировать переменные сессии чтоб они виделись отовсюду???

делаю так в первом файле

session_start();
$GLOBALS['MM_Username'] = $loginUsername;
session_register("MM_Username");


во втором пытаюсь

session_start();
echo $_SESSION['MM_Username'];


уже не видит

начал тестить - session_register() не работает или работает но я не могу вытащить переменные через фрейм.

или просто не стартует сессия ... (

в чем может быть баг?
кто нибудь сталкивался с такой проблемой?
 

svetasmirnova

маленький монстрик
Использую фреймы. С проблемой не сталкивалась. SESSION_ID как передаётся?
 

svetasmirnova

маленький монстрик
Откуда узнал? Без фреймов же он передаётся, так? Иначе бы сессии не работали. Не GET-ом ли единым?

И, кстати, зачем такой извращённый способ:
>$GLOBALS['MM_Username'] = $loginUsername;
>session_register("MM_Username");
?
 

herr_skin

Новичок
совсем разные ИД выдает

-~{}~ 12.01.06 00:59:

это стандартный шел
в Dreamweavere

как лучше передать переменные?
пробовал

$GLOBALS['MM_Username'] = $loginUsername;
$_SESSION["MM_Username"] = $loginUsername;

тот - же неутешительный результат
 

_RVK_

Новичок
herr_skin
Для начала убери session_register. Она устарела.
Скрипты на одном домене?
 

herr_skin

Новичок
да убрал

делаю через
$_SESSION["MM_Username"] = $loginUsername;

да скрипты на одном домене

но переменные теряються
может чтото в php.ini?
хотя без фреймов все работает как надо :(
 

herr_skin

Новичок
да,

привожу код
исходный файл
__________________ 1.php
<? session_start();
$loginUsername=$_POST['login'];
$_SESSION['MM_Username'] = $loginUsername;
header("Location: 2.php" );
?>
__________________ 2.php

<?
session_start();
echo "$MM_Username - ".$_SESSION["MM_Username"]." -".$GLOBALS["MM_UserGroup"];
?>


и ничего не выводит :(
 

_RVK_

Новичок
herr_skin

Куки включены?. в php.ini какое значение session.use_cookies?
 

herr_skin

Новичок
работают куки ,

без фреймоф эти страницы работают и все куки передаються

привожу на всякий случай фрейм
<frameset rows="100%" cols="*" framespacing="0"" frameborder="NO" border="0">
<frame src="1.php" name="topFrame" id="Frame" >
</frameset>

уже голова пухнет не знаю что делать :(

-~{}~ 12.01.06 03:02:

помоему нашел :)

я инициализировал фрейм на другом домене
а потом перехожу на другой

но старт сессии происходит на доменне который не указан в урл....

можно ли это побороть как-то?
 

_RVK_

Новичок
можно ли это побороть как-то
Теоретически да. Практически не стоит. Проще переместить все скрипты на один домен(субдомен). Если нельзя, тогда рассказывай подробнее что ты делаешь, откуда вызываешь скрипты....

-~{}~ 12.01.06 03:18:

Кстати недавно была тема, кде обсуждалась проблемма передачи сессии между серверами, с разными доменами.
 

herr_skin

Новичок
Ситуация сложилась таким образом - у меня есть несколько юзерских сайтов (www.user1....5.com) и один сайт с CMS системой (www.cms.com) все юзеры обслуживаються этой системой при передаче ИД сайта

Я хотел сделать визуально для юзеров чтом CMS была включена в их сайт.
Для этого я сделал один большой фрейм на индексной странице юзера

<frameset rows="100%" cols="*" framespacing="0"" frameborder="NO" border="0">
<frame src="userhome.php" name="topFrame" id="Frame" >
</frameset>

таким образом юзерский домен визуально рисуеться в строке УРЛ - юзеру приятно

дальше при входе в CMS я по линке перехожу в
www.cms.com?user_id=1, но визуально в броузере висит узерскии сайт.

дальше для аутендификации создаю сессию, уже на CMS сайте. и дальше появляется эта проблема- переменные не передаються внутри сессии.
 

rooot

Новичок
У меня тоже фреймы (чат)
Фрейм 1
session_start();
$_SESSION['name'] = $name;
Фрейм 2
session_start();
$name = $_SESSION['name'];
Работает как часы!!!

-~{}~ 12.01.06 14:10:

Единственное что может быть (мое предположение, но лучше не брать во внимание) это если фреймы грузятся как то определенно, по очереди (может в моем случае мне повезло) тогда по логике, если загрузился первым фрейм где мы получаем сессию, тогда отсюда и результат NULL. Может конечно я и ошибаюсь.
 

kruglov

Новичок
herr_skin
делайте домены одинаковые. Браузер не разбирается, одному сайту принадлежат домены или разным. Он обеспечивает безопасность - не дает сайтам читать чужие данные.
 

rooot

Новичок
>> kruglov
))) Вы видели два разных сайта с одинаковыми доменами второго уровня???????? Это примерно тоже самое что в сети разместить две машины с одним айпи (я не про виртуал хостс). Нельзя.
>> herr_skin
Млин точно не помню, был у меня скрипт организации хостинга, там суть в чем есть пользователи .../home/users/herr_skin
в данном случае твой дом. каталог (ограничения заключаются в том что ты можешь лазить только по совей территории) отсюда следует если у тебя к примеру 3 мультидомена ,
.../home/users/herr_skin/domen1/
.../home/users/herr_skin/domen2/
.../home/users/herr_skin/domen3/
тут по сути должно опять же быть все ок, за исключением пункта (А), к нему вернемся позже.
А если у тебя
.../home/users/herr_skin1/
.../home/users/herr_skin2/
.../home/users/herr_skin3/
тогда все правильно данные не передаются (но такое встречается почти в 0,0001% случае).
Пункт А.
Не могу утверждать на 100% (боюсь старики запинают), но мне кажется что PHP (на *nix OS) работает для каждого юзера в отдельности и в добавок это отностится и к мультидоменам. Т.е. в любом случае проблема не в ошибке скрипта а в безопасности!!! Поспаршивай у админа, или создай скрипты в первом и втором каталогах, и попробуй передать значения используя сессии (без всяких фреймов). Если все ок, а именно не работает :))) то решение одно создавать файлы в которые будут писатся переменные, геморно но выхода другово нет, на то он и безопасный ос.
Удачи.
 
Сверху