Форум программистов, компьютерный форум, киберфорум
PHP: сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
357 / 118 / 20
Регистрация: 08.01.2015
Сообщений: 1,361
Записей в блоге: 1
1

Авторизацияс сессиями на странице с WWW и без

06.01.2018, 17:54. Показов 1451. Ответов 30
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
При авторизации, например, на странице http://site.ru РНР создает сессию. А вот как сделать так, чтобы при этом пользователь был автоматически авторизован и на странице http://www.site.ru ?

Добавлено через 58 секунд
Насколько я вижу, сессии для этих страниц - разные.

Добавлено через 2 минуты
Движка, как такового, нет, авторизация происходит по AJAX; если произошла удачно - выставляются COOKIES.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.01.2018, 17:54
Ответы с готовыми решениями:

ссылки без "www" в роботс.txt host: без "www"
сайт не новый имел позиции правда 200 места был "скушан" яндексом с "www" я больше люблю без...

Перенаправление https www на https без www БЕЗ СЕРТИФИКАТА для www
Доброй ночи. Угораздило столкнуться с проблемой: свежекупленный SSL-сертификат шифрует доменное...

Чудеса со шрифтами при заходе на сайте с www и без www
Вот этот код работает если сайт загружается без www: @font-face { font-family: "f11696";...

Настройка переадресации с www на без www для https протокола
Доброго времени суток уважаемые форумчане помогите с проблемой. Настроил переадресацию в .htaccess...

30
-23 / 6 / 6
Регистрация: 21.12.2017
Сообщений: 79
08.01.2018, 20:39 21
Author24 — интернет-сервис помощи студентам
это не просто и не часть
а целый сабдомен со своей персональной жизнью
если уж совсем технически, то это домен 3го и выше уровней
он может вести даже на другой сервер
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.01.2018, 20:40 22
Цитата Сообщение от little endian Посмотреть сообщение
это не просто и не часть
а целый сабдомен со своей персональной жизнью
если уж совсем технически, то это домен 3го и выше уровней
он может вести даже на другой сервер
это и есть "никакого смысла". Замени www на abc и будет все ровно то же самое.
0
357 / 118 / 20
Регистрация: 08.01.2015
Сообщений: 1,361
Записей в блоге: 1
08.01.2018, 20:45  [ТС] 23
Цитата Сообщение от Jewbacabra Посмотреть сообщение
сессии должны
Они работают. Но, приходится создавать две сессии отдельно для каждой из страниц с www и без.
Более того, если сделать, как рекомендуется в статье по ссылке
PHP
1
setcookie ("_foo_",$fooVal,0,"./");
вместо
PHP
1
setcookie ("_foo_",$fooVal,0,"/");
(чтобы куки были видны со всех поддоменов), то получается... дублирование куки по каждому адресу. Что усложняет авторизацию.
0
-23 / 6 / 6
Регистрация: 21.12.2017
Сообщений: 79
08.01.2018, 20:47 24
спасиб, кэп, но я и не утверждал обратного
я говорю, что любой саб для поисковиков это отдельный саб и www можно смело склеивать через 301, иначе они его посчитают раздельно
можно вообще все (*) склеить
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.01.2018, 20:49 25
Цитата Сообщение от Htext Посмотреть сообщение
приходится создавать две сессии отдельно для каждой из страниц с www и без
Я привел функцию, которая позволяет не создавать 2 отдельные сессии
Цитата Сообщение от Htext Посмотреть сообщение
Более того, если сделать, как рекомендуется в статье по ссылке
Где это я рекомендовал использовать setcookie?
Цитата Сообщение от Htext Посмотреть сообщение
то получается... дублирование куки по каждому адресу.
wat?
0
357 / 118 / 20
Регистрация: 08.01.2015
Сообщений: 1,361
Записей в блоге: 1
08.01.2018, 21:08  [ТС] 26
Цитата Сообщение от Jewbacabra Посмотреть сообщение
wat?
ДВЕ куки с одним именем на каждой странице. А так как у меня при каждой последующей установке куки задаются новые, случайные значения, то... и значения разные. Итого - 4 куки: две на site.ru, две - на www.site.ru. Значения попарно совпадают.

Добавлено через 2 минуты
Да, я не о том написал. Если использовать
PHP
1
session_set_cookie_params ( 200, '/' , '.site.ru');
то получается вообще что-то не то. Допустим, авторизовался я на site.ru. Все хорошо, сессия есть, НО: только на site.ru. Тогда как www.site.ru - нет авторизации.
Хуже то, что при попытке открыть www.site.ru - удаляется сессия (которая была установлена через site.ru).

Добавлено через 2 минуты
Впрочем, у меня тут есть код, который, чуть что не так, тут же удаляет сессию. Может, в этом причина... Как проверю - напишу результаты.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.01.2018, 21:19 27
Цитата Сообщение от Htext Посмотреть сообщение
Допустим, авторизовался я на site.ru. Все хорошо, сессия есть, НО: только на site.ru. Тогда как www.site.ru - нет авторизации.
Почему у меня все работает согласно описанию документации - создается одна сессионная кука для всех поддоменов?
0
350 / 294 / 71
Регистрация: 15.09.2017
Сообщений: 1,305
09.01.2018, 00:59 28
Вы гений, т.к. умеете читать документацию и в точности ей следовать

Исходя из моего непродолжительного опыта прибывания на этом форуме, это большая редкость
0
357 / 118 / 20
Регистрация: 08.01.2015
Сообщений: 1,361
Записей в блоге: 1
09.01.2018, 11:59  [ТС] 29
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Почему у меня
Возможно, поэтому: http://www.softtime.ru/forum/r... heme=89962
Цитата Сообщение от Htext Посмотреть сообщение
Впрочем, у меня тут есть код, который, чуть что не так, тут же удаляет сессию.
Нет, не в этом дело. Похоже, дело, в том числе, и в браузере. Только что браузер показал ТРИ куки с одним и тем же именем на обоих страницах: с www и без (вчера было только две). Может, завтра уже четыре будет. При том, что время жизни установлено в 200 секунд.

Добавлено через 4 минуты
Jewbacabra, давайте браузерами меряться. Я тестирую в FF Developer Edition 36.0a2. В Denwer.

Добавлено через 38 минут
Интересно: сейчас удалил ВСЁ в браузере (кэш, куки, поля форм и т.д.). Авторизация стала проходить нормально на обоих с страницах (с www и без). Правда, вот как сделал:
PHP
1
2
3
session_set_cookie_params ( 200, '/' , '.site.ru', false, false);
...
setcookie ("_foo_",$fooValue,0, "/", ".site.ru");
Однако, и тут не без урода (как в семье, по пословице): иногда образуется, как и требуется, одна сессия (для двух страниц). Иногда - две (вторая - после авторизации на другой странице).
Вторая сессия (в виде файла sess_...) может находиться очень долго в каталоге сессий, а иногда - удаляется при очередной авторизации. Возможно, это - следствие работы сборщика мусора.
Надо сказать, что, вроде бы, стало как-то работать, но - нестабильно. Похоже, это нестабильность РНР (Denwer?...) и/или нестабильность браузера.

Добавлено через 45 минут
Чтобы сессия удалялась принудительно, для обоих страниц, не дожидаясь сборщика мусора, надо так сделать:
PHP
1
setcookie(session_name(), null, 1, '.site.ru');
Опять же, символ "." все решает.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
09.01.2018, 22:29 30
Цитата Сообщение от Htext Посмотреть сообщение
session_set_cookie_params ( 200, '/' , '.site.ru', false, false)
Почему 200, а не 0?
Цитата Сообщение от Htext Посмотреть сообщение
Вторая сессия (в виде файла sess_...) может находиться очень долго в каталоге сессий, а иногда - удаляется при очередной авторизации
Сборщик мусора сессий запускается при запросе с определенной вероятностью, по-умолчанию 1%. В таких системах как Ubuntu, Debian и подобным отключен и периодически запускается крон задача на очищений
Цитата Сообщение от Htext Посмотреть сообщение
Чтобы сессия удалялась принудительно, для обоих страниц, не дожидаясь сборщика мусора, надо так сделать:
Надо использовать session_destroy совместно с session.use_strict_mode
1
357 / 118 / 20
Регистрация: 08.01.2015
Сообщений: 1,361
Записей в блоге: 1
10.01.2018, 06:22  [ТС] 31
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Почему 200
Возможно, Вы и правы. Ну, я подумал, чтобы только минуты 3 авторизация была.
Цитата Сообщение от Jewbacabra Посмотреть сообщение
вероятностью, по-умолчанию 1%.
Да, я знаю. Я эту вероятность до 10% увеличил - чтобы быстрее было видно. Дело в том, что когда проходит 200 секунд и при этом не удалить сессию - то она остается, но при этом блокируется. И вот, через какое-то время сборщик (видимо) ее убирает.
Цитата Сообщение от Jewbacabra Посмотреть сообщение
session.use_strict_mode
А вот про это не знал, попробую, спасибо!

Добавлено через 5 минут
Цитата Сообщение от Htext Посмотреть сообщение
при этом блокируется
Самое интересное - даже пытался вручную очищать - так похоже, что РНР блокирует каталог, в котором сессии расположены (у меня - в корневом, не в ТМР). Даже обычные файлы html, расположенные в этом каталоге - средствами РНР удалить не получалось (пока сессии активны, по крайней мере).
0
10.01.2018, 06:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2018, 06:22
Помогаю со студенческими работами здесь

Яндекс скушал сайт без www... А я хочу чтобы c www
Поставил такой роботс.тхт User-agent: * Host: www.extrazone.ru Поможет?

Склеить www и без www - склейка доменов и сайтов через редирект .htaccess файл
Добрый день! У меня в файле robot.txt прописано правило Host: site.ru и я хочу склеить домены...

Тиц на www ноль, без www 250 че делать?
Как поступить? Сайт с www кручу.. Странная тема в роботс.тхт все ок вроде. www.extrazone.ru

301 редирект с www на без-www не работает на главной
Хочу сделать 301 редирект с www.macrocosm.com.ua на домен без www. Пишу: Options +FollowSymLinks...


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

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