|
|
|
| Помогите пожалуйста!
Задача: сделать заставку для сайта.
есть флешка, которая после проигрывания запускает адрес http://macroleg.ru (без www),
ее прописала в файле http://macroleg.ru/index1.php
есть индексный файл http://macroleg.ru/index.php:
<?
session_start();
session_register('my_flash');
if($_SESSION['my_flash'] == '1')
{
// запускаем модули движка (битрикс)
}
else
{
$_SESSION['my_flash'] = '1';
include("index1.php");
// header("Location: http://macroleg.ru/index1.php");
}
?>
|
В итоге если набрать адрес http://macroleg.ru (без www) все работает: заставка отиграла и запустила сайт,
А если набрать адрес http://www.macroleg.ru (c www) заставка в ИЕ проигрывается два раза. Что-то непонятное в сессиях происходит не понимаю почему со второго раза он видет значение переменной.. (догадываюсь во флешке прописан жестко абсолютный путь сайта без WWW. И получается что при переходе сессия уже не видна. исходников флехи нету)
Помогите пожалуйста, у меня уже фантазии не хватает как решить эту проблему.. :,(
Или может подскажите другой способ запуска стартовой страницы index1.php, но при этом чтоб index.php оставалась индексной главной страницей. | |
|
|
|
|
|
|
|
для: Marina1
(08.08.2009 в 02:48)
| | Вместо session_register('my_flash');, просто устанавливайте переменную:
$_SESSION['my_flash'] = 1;
В кавычки заключают строковые данные, числовые не неадо.
if($_SESSION['my_flash'] == 1)....
В сессии нет проблем как таковых, это вы создаете проблему. Как я понял, эта переменная просто у вас указывает на то, отдавалась ли пользователю флешка или нет? Если так, то:
<?
session_start();
if(!isset($_SESSION['my_flash'])) {
//отдаем флешку
//и указываем, что она уже была у пользователя
$_SESSION['my_flash'] = 1;
} else {
//иначе все остальное
include("index1.php");
}
|
А www на сессию не влияет. | |
|
|
|
|
|
|
|
для: sim5
(08.08.2009 в 04:23)
| | >А www на сессию не влияет.
я б так не сказал
www.site.ru и site.ru - разные домены! хоть и алиасы.
и если сид идет в куки, и не указан ".site.ru" в настройках сессии,
то сид будет действовать только для одного домена!!! | |
|
|
|
|
|
|
|
для: а-я
(08.08.2009 в 04:52)
| | Ну а при чем тут текущая сессия? Проблемы не сессии, проблемы с url запрашиваемой из флешки. | |
|
|
|
|
|
|
|
для: sim5
(08.08.2009 в 05:59)
| | Честно говоря, не понял проблемы.
Зашел на сайт автора(opera, IE), вроде все нормально!
Может он как раз говорил,
Что 1ый раз он заходит на сайт без "www", а затем с "www"?
Можно указать домен в session.cookie_domain должно помочь. | |
|
|
|
|
|
|
|
для: а-я
(08.08.2009 в 06:13)
| | Из автора: сть флешка, которая после проигрывания запускает адрес http://macroleg.ru (без www),
При чем тут сессия? Не она же запускает и делает перенаправление.... | |
|
|
|
|
|
|
|
для: sim5
(08.08.2009 в 06:19)
| | Как я понял.
1. запускается www.site.ru
2. создается сессия, регистр. указатель, СИД идет в куки с доменом www.site.ru
3. показывается флэшка.
4. флэшка перекидывает на site.ru (без www) - КУКИ для этого домена пусты!
5. по новой создается сессия и тому подобное включая как раз показа флэшки
Если мы укажем в session.cookie_domain ".site.ru" - то Куки будут на все поддомены вкл. наш www.site.ru
Или я опять что не понял?) | |
|
|
|
|
|
|
|
для: а-я
(08.08.2009 в 06:35)
| | Хостер в силах сделать так, что и www.site.ru, и site.ru будет одно и тоже. | |
|
|
|
|
|
|
|
для: sim5
(08.08.2009 в 06:49)
| | по-моему, для нас это будет казаться одним и тем же, но не для броузера. который смотрит на домен.
хотя может я ошибаюсь. | |
|
|
|
|
|
|
|
для: а-я
(08.08.2009 в 07:07)
| | И для браузера тоже, по крайней мере у меня так на хосте. | |
|
|
|
|
|
|
|
для: sim5
(08.08.2009 в 07:52)
| | я думаю хостер тут не причем . :-\ так как глюк в самом ИЕ в Фаерфоксе работает нормально с www. почему два раза флеха проигрывается... я же припроигрыше создаю переменную а потом проверяю проиграла или нет. За куки не знаю не пробывала. может еще и с куки помудрить..
Всех благодарю за внимание :) | |
|
|
|
|
|
|
|
для: Marina1
(08.08.2009 в 08:21)
| | Вы сначала удалите в "Фаерфоксе" старые куки и сразу зайдите с "www"
такая же реакция. | |
|
|
|
|
|
|
|
для: а-я
(08.08.2009 в 08:43)
| | А если у пользователя они вообще отключены, тогда что?
Любой запрос, хоть с www, хоть без него, должен направлять браузер на один и тот же домен, где и лежат документы, и если это site.ru, то по именно на него будет идти перенаправление, именно с этого домена будет стартоваться сессия, и по барабану будут куки. | |
|
|
|
|
|
|
|
для: sim5
(08.08.2009 в 08:48)
| | >А если у пользователя они вообще отключены, тогда что?
а Вы отключите и зайдите на сайт. он показывает только флэху!!!
потому что нету СИДа! ни в куках, мы их отключили, ни ГЕТом.. т.к. флэха просто скидывает на главную, без СИДа.
>Любой запрос, хоть с www, хоть без него, должен направлять браузер на один и тот же домен, где и лежат документы, и если это site.ru, то по именно на него будет идти перенаправление, именно с этого домена будет стартоваться сессия, и по барабану будут куки.
1. вообще-то по доменам web-сервер отправляет на главную папку хоста, а там по запросу на документ! а не на домен.
2. www.site.ru это алиас для site.ru, в конфигах можно NJcbsnj.site.ru - сделать алиасом для главного домена! - но это все разные домены!!! а броузер по умолчанию отправляет КУКИ только на текущий домен!
а он(домен) у нас меняется!!! в этом и проблема! я уже написал как можно решить..
UPDATE: может Вы говорите про переадресацию с www на основной домен!
но тут алиас! оба домена доступны автономно друг от друга, отдавая один и тот же дкумент. | |
|
|
|
|
|
|
|
для: а-я
(08.08.2009 в 09:10)
| | Нет, я хочу сказать о том, что пользователь в конечном итоге попадает на site.ru, который и установит запустит сессию.
Нечто подобное было, когда после переезда с одного хоста на другой, на странице вызванной по адресу с www перестало работать меню, которое использовало куки, то есть его состяние сбрасывалось для пользователя, когда он заходил по адресу с www, а до этого был по адрему без www.
Хостер просто добавил в конфигурацию www.site.ru, при этом при запросе с www физически то обращение к скриптам идет на site.ru, хотя в браузер в адресе при этом видно www. Работают и сессии и куки, хотя их по прежнему устанавливает один и тот же скрипт, как и раньше - с site.ru. Все запросы (а пути относительные) отрабатывают корректо.
У автора же идет перенаправление совсем в дургое место для браузера. Возможно, если это возможно для флешь, указывать адрес как относительный путь. | |
|
|
|
|
|
|
|
для: sim5
(08.08.2009 в 09:56)
| | скорее всего хостер просто передавал переменную HTTP_HOST один и тот же. у Вас хороший хостер... а у автора?
может решить данную проблему таким образом?
добавить вначале
<?
if($_SERVER['HTTP_HOST'] == 'www.macroleg.ru')
header('location: http://macroleg.ru');
// работаем дальше
?>
|
| |
|
|
|
|
|
|
|
для: а-я
(08.08.2009 в 11:17)
| |
<?
if($_SERVER['HTTP_HOST'] == 'www.macroleg.ru')
{
header('location: http://macroleg.ru');
exit(); // дальше не работаем!
}
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(08.08.2009 в 11:41)
| | спасибо.. как то совсем забыл про это...) | |
|
|
|
|
|
|
|
для: а-я
(08.08.2009 в 11:17)
| | Вот именно, нужно "бороться" с url, а не с сессией или куками как таковыми.
PS. Не знаю, что там "хороший" хостер сделал :), но суть проблемы заключалось в том, что по домену с www куку не возможно было установить. | |
|
|
|