Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/25: Рейтинг темы: голосов - 25, средняя оценка - 4.64
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 320
1

Куки, домен и поддомены, подгрузка AJAX, взрыв мозга

01.03.2015, 20:43. Показов 5070. Ответов 24
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет всем!
Уже сутки мучаюсь, мозг рвет...

Есть домен site.ru, есть поддомены sub.site.ru, sub2.site.ru и т.д.

На всех страницах всех поддоменов и основного домена есть форма, подгружаемая AJAX-ом для авторизации. При вводе данных форма также AJAX-ом уходит обработчику на PHP, который ставит куку. С записью куки проблем нет, сталкивался много раз, знаю про точку перед доменом и т.п., все ОК. После записи кука доступна на основном домене и поддоменах, опять же все гуд.

Проблема в том, что кука ставится только с того домена (или поддомена) который указан в JS в AJAX функции передачи введенных данных обработчику. Будет указано:
Javascript
1
url: 'http://site.ru/enter.php'
кука запишется ТОЛЬКО с основного домена site.ru. Кину тот же скрипт PHP в какой-нибудь поддомен, например:
Javascript
1
url: 'http://sub.site.ru/enter.php'
кука будет вставать только при авторизации именно с sub.site.ru.

Сможет кто-нибудь подсказать, что можно сделать в данном случае, чтобы кука вставала с любого поддомена и основного домена, а не только с того, который указан в строке url функции AJAX для отправки данных обработчику?

Буду очень благодарен!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.03.2015, 20:43
Ответы с готовыми решениями:

Ип и куки на домен
Возможно сделать так, что при переходе на ип сервера, на котором расположен сайт. Указать в гет...

типы данных, взрыв мозга
Объясните пожалуйста почему double x = 45.3f; Console.WriteLine(x); Дает результат:...

Работа с реестром, взрыв мозга
Хех, доброго времени суток тебе, форумчанин. В муках уже второй день, никак не могу решить проблему...

Открытие jpg из txt и взрыв мозга
Добрый вечер, вернее ночь)) Не знаю как это назвать, но, будучи новичком наверное назову мистикой....

24
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
Ставлю так:
PHP
1
setcookie("user",$cook_value,time()+60*60*24*30,"/",".site.ru");
Но, опять же, ставится то кука (когда ставится ))) ) нормально и работает на всех поддоменах и основном домене. Проблема именно с путем в JS, ну или связь, по крайней мере с ним есть. Т.е. кука ставится только с того домена, где лежит сам скрипт PHP с функцией записи куки.
0
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
01.03.2015, 21:27 4
Цитата Сообщение от Lion_astana Посмотреть сообщение
кука ставится только с того домена, где лежит сам скрипт PHP
Ничего не понятно. Какая разница, откуда cookie ставится? Самое главное, чтобы cookie были доступны для проверки.
0
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 320
01.03.2015, 21:31  [ТС] 5
Цитата Сообщение от nrobert Посмотреть сообщение
Какая разница, откуда cookie ставится
вот и я так думал...
Тестирую и проверяю уже не первый час, 100%, кука ставится только с того домена или поддомена, который указан в пути в AJAX отправке данных обработчику. Поэтому и описал свое текущее сотояние как "взрыв мозга", уже немного крыша едет...
0
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
01.03.2015, 21:33 6
Еще раз, что значит
Цитата Сообщение от Lion_astana Посмотреть сообщение
ставится только с того домена
? То есть доступен только этому домену?
0
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 320
01.03.2015, 21:36  [ТС] 7
Цитата Сообщение от nrobert Посмотреть сообщение
доступен только этому домену
Нет, в том то и прикол, что после создания кука доступна с основного домена и всех поддоменов...
0
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
01.03.2015, 21:38 8
Что значит по-русски
Цитата Сообщение от Lion_astana Посмотреть сообщение
кука ставится только с того домена
?
0
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 320
01.03.2015, 21:56  [ТС] 9
Цитата Сообщение от nrobert Посмотреть сообщение
Что значит по-русски
Объясню нагляднее:

Есть скрипт kuka.php, в котором вышеописанная функция создания куки. Кидаю этот скрипт в корень домена, получилось site.ru/kuka.php

И на домене, и на поддомене пользователь может залогиниться. Форма авторизации подгружается AJAX-ом. Ввел пользователь email и пароль, нажал "Пустите меня" и форма с данными отправляется AJAX-ом нашему kuka.php

В функции $.ajax в JS есть строка:
Javascript
1
url: 'http://site.ru/kuka.php',
При таком раскладе кука запишется в браузер (тестю в Хроме, но не думаю что в данном случае это принципиально) только если пользователь будет в пределах site.ru. Перейдет на поддомен не авторизованным и попробует это же проделать - шиш, кука не пишется.

Меняю в 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
Цитата Сообщение от prudkiy Посмотреть сообщение
Почему бы его просто не генерировать
Тоже об этом думал, но что если поддоменов 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
PHP
1
url: 'http:/<?php $_SERVER['REQUEST_URI']; ?>/kuka.php
0
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 320
01.03.2015, 22:14  [ТС] 14
Цитата Сообщение от nrobert Посмотреть сообщение
к какому скрипту обращаетесь, тот и выполняется
логично ))) Так и есть. Пусть он выполняется, я совсем не против, просто кука сохраняется ТОЛЬКО если посетитель авторизуется с того домена (поддомена) в котором лежит 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
Цитата Сообщение от prudkiy Посмотреть сообщение
открою секрет - php на сервере, js - в браузере
спасибо, просветили. Не буду умничать, просто мы не поняли друг друга, точнее Вы не поняли меня.

JS вынесен в отдельный файл, например common.js, от подключается ко всем страницам сайта (и на домене, и на поддомене). Причем тут PHP? Я понял что Вы советуете узнать текущий адрес и сформировать путь к скрипту PHP в зависимости от домена (поддомена). Но ведь и скрипт PHP, который ставит куку должен быть в каждом поддомене!

Это не совсем удобно, если не сказать что совсем неудобно.

Добавлено через 2 минуты
Цитата Сообщение от nrobert Посмотреть сообщение
в проверке его значения на каждом поддомене
да нет же! кука когда в браузере, она прекрасна видна отовсюду.

Она тупо не ставится с другого поддомена, кроме того, который указан в пути к скрипту в JS. Вот просто не ставится. Нажимает пользователь на "Пустите меня" и ничего не происходит. Консоль хрома ошибок не видит, все гуд.
0
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
01.03.2015, 22:40 18
По-моему, мы разговариваем на разных языках. Что должно происходить, когда
Цитата Сообщение от Lion_astana Посмотреть сообщение
Нажимает пользователь на "Пустите меня"
? Только без лирики типа
Цитата Сообщение от Lion_astana Посмотреть сообщение
"взрыв мозга"
0
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 320
01.03.2015, 22:44  [ТС] 19
Цитата Сообщение от nrobert Посмотреть сообщение
Только без лирики
ОК

Цитата Сообщение от nrobert Посмотреть сообщение
Что должно происходить
обработчик клика по кнопке "Пустите меня" в 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.03.2015, 23:01
Помогаю со студенческими работами здесь

создание соединения pppoe через wi-fi точку доступа (взрыв мозга)
Всем привет! Друзья мои, озадачился тут сией проблемой. Переехал на новый адрес с получил...

Напишите интерпретатор урезанного варианта языка программирования "Взрыв мозга"
Не игнорируйте пожалуйста, есть задача. Но я не понимаю как действуют &quot;&gt;&lt;+-&quot;, можете мне на данном...

Домен и поддомены
Есть сайт, который был сделан с поддоменами ради &quot;родео&quot;. Я категорически считаю, что пользователь...

Домен и поддомены
Есть сайт, для него сделал 5 поддоменов, тематика одинаковая, просто каждый поддомен заточен под...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru