Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.90/29: Рейтинг темы: голосов - 29, средняя оценка - 4.90
 Аватар для Lion_astana
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 321

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

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

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

Есть домен 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.03.2015, 20:43
Ответы с готовыми решениями:

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

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

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

24
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
01.03.2015, 21:08
Как выглядит cookie и код php-скрипта, ставящего cookie?
0
 Аватар для Lion_astana
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 321
01.03.2015, 21:13  [ТС]
Ставлю так:
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
Цитата Сообщение от Lion_astana Посмотреть сообщение
кука ставится только с того домена, где лежит сам скрипт PHP
Ничего не понятно. Какая разница, откуда cookie ставится? Самое главное, чтобы cookie были доступны для проверки.
0
 Аватар для Lion_astana
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 321
01.03.2015, 21:31  [ТС]
Цитата Сообщение от nrobert Посмотреть сообщение
Какая разница, откуда cookie ставится
вот и я так думал...
Тестирую и проверяю уже не первый час, 100%, кука ставится только с того домена или поддомена, который указан в пути в AJAX отправке данных обработчику. Поэтому и описал свое текущее сотояние как "взрыв мозга", уже немного крыша едет...
0
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
01.03.2015, 21:33
Еще раз, что значит
Цитата Сообщение от Lion_astana Посмотреть сообщение
ставится только с того домена
? То есть доступен только этому домену?
0
 Аватар для Lion_astana
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 321
01.03.2015, 21:36  [ТС]
Цитата Сообщение от nrobert Посмотреть сообщение
доступен только этому домену
Нет, в том то и прикол, что после создания кука доступна с основного домена и всех поддоменов...
0
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
01.03.2015, 21:38
Что значит по-русски
Цитата Сообщение от Lion_astana Посмотреть сообщение
кука ставится только с того домена
?
0
 Аватар для Lion_astana
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 321
01.03.2015, 21:56  [ТС]
Цитата Сообщение от 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
 Аватар для prudkiy
181 / 149 / 55
Регистрация: 21.07.2013
Сообщений: 958
01.03.2015, 22:02
я так понял что все дело в пути js. Почему бы его просто не генерировать.
т.е. так - url: 'http://текущяя страница/kuka.php'
0
 Аватар для Lion_astana
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 321
01.03.2015, 22:06  [ТС]
Цитата Сообщение от prudkiy Посмотреть сообщение
Почему бы его просто не генерировать
Тоже об этом думал, но что если поддоменов 100-150?

Придется столько же PHP скриптов делать и кидать в каждую папку поддомена?
0
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
01.03.2015, 22:06
Ну так все правильно: к какому скрипту обращаетесь, тот и выполняется. А вы хотите, чтобы при обращении к http://site.ru/kuka.php cookie выдавались другим скриптом - http://sub.site.ru/kuka.php?
0
 Аватар для prudkiy
181 / 149 / 55
Регистрация: 21.07.2013
Сообщений: 958
01.03.2015, 22:12
PHP
1
url: 'http:/<?php $_SERVER['REQUEST_URI']; ?>/kuka.php
0
 Аватар для Lion_astana
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 321
01.03.2015, 22:14  [ТС]
Цитата Сообщение от nrobert Посмотреть сообщение
к какому скрипту обращаетесь, тот и выполняется
логично ))) Так и есть. Пусть он выполняется, я совсем не против, просто кука сохраняется ТОЛЬКО если посетитель авторизуется с того домена (поддомена) в котором лежит kuka.php и который указан в пути в JS.

Но совсем не хочется ограничивать посетителя в домене (поддомене) с которого логиниться (((

Добавлено через 2 минуты
prudkiy, код php не выполнится внутри JS. Я понял про что Вы, это и без PHP в JS можно узнать, но скрипт php то придется кидать в каждый поддомен...
0
 Аватар для prudkiy
181 / 149 / 55
Регистрация: 21.07.2013
Сообщений: 958
01.03.2015, 22:19
конечно не выполняется, открою секрет - php на сервере, js - в браузере. Страница прилетит уже сгенерированной, и в коде js будет адрес той страницы с которой будет запрос
0
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
01.03.2015, 22:21
Значит, проблема не в записи cookie, а в проверке его значения на каждом поддомене?
0
 Аватар для Lion_astana
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 321
01.03.2015, 22:30  [ТС]
Цитата Сообщение от 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
По-моему, мы разговариваем на разных языках. Что должно происходить, когда
Цитата Сообщение от Lion_astana Посмотреть сообщение
Нажимает пользователь на "Пустите меня"
? Только без лирики типа
Цитата Сообщение от Lion_astana Посмотреть сообщение
"взрыв мозга"
0
 Аватар для Lion_astana
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 321
01.03.2015, 22:44  [ТС]
Цитата Сообщение от nrobert Посмотреть сообщение
Только без лирики
ОК

Цитата Сообщение от nrobert Посмотреть сообщение
Что должно происходить
обработчик клика по кнопке "Пустите меня" в JS файле формирует AJAX запрос функцией $.ajax (jQuery) к нашему файлу kuka.php. Если все ОК, то при получении соответствующего ответа JS перезагружет текущую страницу и пользователь видит ее уже авторизованным.
0
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
01.03.2015, 23:01
Как я представляю: при обращении браузера к kuka.php первый посылает, а последний проверяет пару "имя/значение" cookie. Если нет такой пары или истек срок ее действия, то записать новую, в противном случае в пустить.
В вашем случае пара есть, но kuka.php не пускает, верно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.03.2015, 23:01
Помогаю со студенческими работами здесь

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

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

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

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

Домен и поддомены
Есть сайт, для него сделал 5 поддоменов, тематика одинаковая, просто каждый поддомен заточен под 2-3 ключа. Все было в порядке до АПа...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru