Войти

Показать полную графическую версию : session


bruder
20-04-2008, 13:53
Вопрос к php-профи. на странице есть iframe. Parent- страница и фрейм инклюдируют свои страницы с php кодом. Была одна проблема, оказаломсь что фрейм не видит SESSION переменные из parenta. Приходится и во фрейме стартовать свою сешн. Не могут быть какие либо проблемы изза этого? Переменные с одинаковыми названиями есть.

Arrest
20-04-2008, 22:55
bruder, нет, проблем не может быть, переменные разных сессий хранятся в разных файлах. Но вопрос: "стартовать свою сешн" - это к тому, что вы делаете и там и там session_start? так и должно быть...

Sham
20-04-2008, 23:07
bruder, важен домен кукиса - точно на этот домен должны вестись все запросы с фреймов (имеет значение наличие или отстутствие www). Лучше, чтобы везде были относительные запросы.

Могут быть проблемы с настройками безопасности браузера (iframe не шлет кукис с id сессии). Тут видимо нужно ручками к урлу в src добавить сессию (при этом настройки php должны разрешать сессии с урл)...
$tag = '<iframe src=/page.php?'.session_name().'='.session_id();

вообще юзай плугин firebug в ff для отслеживания запросов (там ясно будет, шлется ли id сессии)...

bruder
21-04-2008, 00:50
страница iframa находится в одной и тойже директории что и parent. В FF вижу такое

Set-Cookie PHPSESSID=627f7505a9d1a727115a130e6a691235; path=/

интересно что я отключил куки а эта строка всеравно там! Как так может быть? Или это фича FF или это не куки. Может ли на других платформах быть иначе? Сейчас под виндой все пашет, должен ли я посылать все равно session id и для чего так делается, в смысле посылать вручную id? Можно плиз подробнее, очень важно и интересно. Спасибо заранее

P.S. Только сейчас протестировал без куки. ШОК :o . Ничего не пашет, все в долбанных кукисах! И это перед презентацией. Я с сешн мало работал. Спасибо что глаза открыл, спрошу завтра как с условием что кукисы должны быть обязательно. Вручную передавать в каждой ссылке маразм. Я и взялся за сешн чтобы этого избежать. БЛИН. Иду ладно спать, завтра рано вставать.

Sham
21-04-2008, 01:07
Set-Cookie PHPSESSID=627f7505a9d1a727115a130e6a691235; path=/ »
это ответ сервера (response) - команда браузеру, чтобы куку поставил, смотри request заголовки (там должен быть PHPSESSID)..
страница iframa находится в одной и тойже директории »
важен сам урл запроса (шобы везде домен одинаков был, с учетом www, или относительный урл)...
Может ли на других платформах быть иначе? »
ну про настройки брузера уже выше писал... сессию в src iframe лучше вручную прописать imho, потому что настройки браузера могут не позволить iframу отсылать кукис (в твоем случае PHPSESSID)...

bruder
21-04-2008, 13:17
интересно а где эта настройка в браузере? По умолчанию так понимаю разрешено. Нашел настройку в php.ini - session.use_trans_sid чтобы автоматически вешать sessid, по умолчанию в xammp стоит 0, но думаю даже из скрипта поменять нет проблем. Что успокоило - тут по правилам если куки отключены можно выдать сообщение что для корректной работы требуются куки и все. Что и сделаю. Однако многое узнал про session, большое спасибо за разъяснения

Sham
23-04-2008, 01:38
чтобы автоматически вешать sessid »
Тогда он будет более уязвим. Если в сессии хранятся учетные данные, то так не делается... см. session.use_only_cookies




© OSzone.net 2001-2012