16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 320
|
|||||||||||
1 | |||||||||||
Куки, домен и поддомены, подгрузка AJAX, взрыв мозга01.03.2015, 20:43. Показов 5070. Ответов 24
Метки нет (Все метки)
Привет всем!
Уже сутки мучаюсь, мозг рвет... Есть домен site.ru, есть поддомены sub.site.ru, sub2.site.ru и т.д. На всех страницах всех поддоменов и основного домена есть форма, подгружаемая AJAX-ом для авторизации. При вводе данных форма также AJAX-ом уходит обработчику на PHP, который ставит куку. С записью куки проблем нет, сталкивался много раз, знаю про точку перед доменом и т.п., все ОК. После записи кука доступна на основном домене и поддоменах, опять же все гуд. Проблема в том, что кука ставится только с того домена (или поддомена) который указан в JS в AJAX функции передачи введенных данных обработчику. Будет указано:
Сможет кто-нибудь подсказать, что можно сделать в данном случае, чтобы кука вставала с любого поддомена и основного домена, а не только с того, который указан в строке url функции AJAX для отправки данных обработчику? Буду очень благодарен!
0
|
01.03.2015, 20:43 | |
Ответы с готовыми решениями:
24
Ип и куки на домен типы данных, взрыв мозга Работа с реестром, взрыв мозга Открытие jpg из txt и взрыв мозга |
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
|
|
01.03.2015, 21:08 | 2 |
Как выглядит cookie и код php-скрипта, ставящего cookie?
0
|
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 320
|
||||||
01.03.2015, 21:13 [ТС] | 3 | |||||
Ставлю так:
0
|
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
|
|
01.03.2015, 21:27 | 4 |
Ничего не понятно. Какая разница, откуда cookie ставится? Самое главное, чтобы cookie были доступны для проверки.
0
|
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 320
|
|
01.03.2015, 21:31 [ТС] | 5 |
вот и я так думал...
Тестирую и проверяю уже не первый час, 100%, кука ставится только с того домена или поддомена, который указан в пути в AJAX отправке данных обработчику. Поэтому и описал свое текущее сотояние как "взрыв мозга", уже немного крыша едет...
0
|
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
|
|
01.03.2015, 21:33 | 6 |
0
|
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 320
|
|
01.03.2015, 21:36 [ТС] | 7 |
Нет, в том то и прикол, что после создания кука доступна с основного домена и всех поддоменов...
0
|
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
|
|
01.03.2015, 21:38 | 8 |
0
|
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 320
|
||||||
01.03.2015, 21:56 [ТС] | 9 | |||||
Объясню нагляднее:
Есть скрипт kuka.php, в котором вышеописанная функция создания куки. Кидаю этот скрипт в корень домена, получилось site.ru/kuka.php И на домене, и на поддомене пользователь может залогиниться. Форма авторизации подгружается AJAX-ом. Ввел пользователь email и пароль, нажал "Пустите меня" и форма с данными отправляется AJAX-ом нашему kuka.php В функции $.ajax в JS есть строка:
Меняю в JS путь с http://site.ru/kuka.php на, например, http://sub.site.ru/kuka.php и сам kuka.php перекидываю в корень поддомена - кука при авторизации сохраняется в браузере только с поддомена sub.site.ru, с site.ru НЕТ! После того, как кука в браузере, она видна отовсюду!!!!
0
|
181 / 149 / 55
Регистрация: 21.07.2013
Сообщений: 958
|
|
01.03.2015, 22:02 | 10 |
я так понял что все дело в пути js. Почему бы его просто не генерировать.
т.е. так - url: 'http://текущяя страница/kuka.php'
0
|
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 320
|
|
01.03.2015, 22:06 [ТС] | 11 |
Тоже об этом думал, но что если поддоменов 100-150?
Придется столько же PHP скриптов делать и кидать в каждую папку поддомена?
0
|
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
|
|
01.03.2015, 22:06 | 12 |
Ну так все правильно: к какому скрипту обращаетесь, тот и выполняется. А вы хотите, чтобы при обращении к http://site.ru/kuka.php cookie выдавались другим скриптом - http://sub.site.ru/kuka.php?
0
|
181 / 149 / 55
Регистрация: 21.07.2013
Сообщений: 958
|
||||||
01.03.2015, 22:12 | 13 | |||||
0
|
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 320
|
|
01.03.2015, 22:14 [ТС] | 14 |
логично ))) Так и есть. Пусть он выполняется, я совсем не против, просто кука сохраняется ТОЛЬКО если посетитель авторизуется с того домена (поддомена) в котором лежит kuka.php и который указан в пути в JS.
Но совсем не хочется ограничивать посетителя в домене (поддомене) с которого логиниться ((( Добавлено через 2 минуты prudkiy, код php не выполнится внутри JS. Я понял про что Вы, это и без PHP в JS можно узнать, но скрипт php то придется кидать в каждый поддомен...
0
|
181 / 149 / 55
Регистрация: 21.07.2013
Сообщений: 958
|
|
01.03.2015, 22:19 | 15 |
конечно не выполняется, открою секрет - php на сервере, js - в браузере. Страница прилетит уже сгенерированной, и в коде js будет адрес той страницы с которой будет запрос
0
|
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
|
|
01.03.2015, 22:21 | 16 |
Значит, проблема не в записи cookie, а в проверке его значения на каждом поддомене?
0
|
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 320
|
|
01.03.2015, 22:30 [ТС] | 17 |
спасибо, просветили. Не буду умничать, просто мы не поняли друг друга, точнее Вы не поняли меня.
JS вынесен в отдельный файл, например common.js, от подключается ко всем страницам сайта (и на домене, и на поддомене). Причем тут PHP? Я понял что Вы советуете узнать текущий адрес и сформировать путь к скрипту PHP в зависимости от домена (поддомена). Но ведь и скрипт PHP, который ставит куку должен быть в каждом поддомене! Это не совсем удобно, если не сказать что совсем неудобно. Добавлено через 2 минуты да нет же! кука когда в браузере, она прекрасна видна отовсюду. Она тупо не ставится с другого поддомена, кроме того, который указан в пути к скрипту в JS. Вот просто не ставится. Нажимает пользователь на "Пустите меня" и ничего не происходит. Консоль хрома ошибок не видит, все гуд.
0
|
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
|
|
01.03.2015, 22:40 | 18 |
По-моему, мы разговариваем на разных языках. Что должно происходить, когда
? Только без лирики типа
0
|
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 320
|
|
01.03.2015, 22:44 [ТС] | 19 |
ОК
обработчик клика по кнопке "Пустите меня" в JS файле формирует AJAX запрос функцией $.ajax (jQuery) к нашему файлу kuka.php. Если все ОК, то при получении соответствующего ответа JS перезагружет текущую страницу и пользователь видит ее уже авторизованным.
0
|
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
|
|
01.03.2015, 23:01 | 20 |
Как я представляю: при обращении браузера к kuka.php первый посылает, а последний проверяет пару "имя/значение" cookie. Если нет такой пары или истек срок ее действия, то записать новую, в противном случае в пустить.
В вашем случае пара есть, но kuka.php не пускает, верно?
0
|
01.03.2015, 23:01 | |
01.03.2015, 23:01 | |
Помогаю со студенческими работами здесь
20
создание соединения pppoe через wi-fi точку доступа (взрыв мозга) Напишите интерпретатор урезанного варианта языка программирования "Взрыв мозга" Домен и поддомены Домен и поддомены Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |