Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

Слетает авторизация

Слетает авторизация при переходе из форума в галерею или блог.

Проблема только в IE. Кто знает, что это может быть?

Рекомендованные сообщения

Настройки cookies.

В адресе присутствует s=... в обоих или не в одном случае?

  • Автор

На сервере forum_test.a108.net в коренной директории висит тестовый скрипт на PHP. Мы не можем заставить его корректно работать с браузерами семейства IE. А с Оперой, например, работает отлично. Исходный код скрипта следующий:

 

/headers.php

<?

setcookie( 'name', 'val' );

 

var_dump(getallheaders());

var_dump($HTTP_COOKIE_VARS);

?>

 

Что скрипт должен делать:

1) Записать в куки браузера переменную с именем "name" и значением "val".

2) Вывести массив всех входящих HTTP-заголовков

3) Вывести массив входящих куков.

 

Скрипт доступен из сети по адресу: http://forum_test.a108.net/headers.php

При запросе из IE, мой сниффер ловит исходящий от сервера заголовок с командой установки куков. Но последующий запрос по тому же адресу не передаёт эту переменную обратно серверу.

 

Обмен следующий (не принципиальные теги заголовков я вырезаю)

 

1) Запрос IE

GET /headers.php HTTP/1.1

Host: forum_test.a108.net

.....

 

2) Ответ сервера:

HTTP/1.1 200 OK

Set-Cookie: name=val

Connection: close

.....

 

3) Второй запрос IE (обновить страницу)

GET /headers.php HTTP/1.1

Host: forum_test.a108.net

….

 

И т.д. Нет переменной из куков в запросе.

Для сравнения HTTP-заголовки при такой же операции, но на другом домене. Скрипт при этом идентичный байт в байт.

Адрес: http://semnt.ru/headers.php

 

1) Запрос IE

GET /headers.php HTTP/1.1

Host: semnt.ru

….

2) Ответ сервера:

HTTP/1.1 200 OK

Set-Cookie: name=val

 

3) Второй запрос IE (обновить страницу)

GET /headers.php HTTP/1.1

Host: semnt.ru

Cookie: name=val

 

Есть переменная "name" со значением "val".

При обмене обоих серверов с браузером Opera – Куки передаются нормально (так же как в последнем примере).

Не можем понять, в чём причина. Почему на одинаковые команды из HTTP-заголовков браузер реагирует по разному, и в одном случае записывает переменную, а в другом нет? Хотя разница в запросах есть, но в других тегах.

Долбились в разные параметры функции setcookie – по барабану.

 

Может подскажешь нам чего)

 

Полный листинг:

IE <=> http://forum_test.a108.net/headers.php

1) Запрос IE

GET /headers.php HTTP/1.1

Accept: */*

Accept-Language: ru

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

Host: forum_test.a108.net

Connection: Keep-Alive

 

2) Ответ

HTTP/1.1 200 OK

Date: Thu, 04 Mar 2010 07:35:43 GMT

Server: Apache/2.2.3 (CentOS)

Accept-Ranges: bytes

X-Powered-By: PHP/4.4.9

Set-Cookie: name=val

Connection: close

Transfer-Encoding: chunked

Content-Type: text/html; charset=windows-1251

 

3) Второй запрос IE

GET /headers.php HTTP/1.1

Accept: */*

Accept-Language: ru

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

Host: forum_test.a108.net

Connection: Keep-Alive

 

IE <=> http://semnt.ru/headers.php

1) Запрос IE

GET /headers.php HTTP/1.1

Accept: */*

Accept-Language: ru

Accept-Encoding: gzip, deflate

If-Modified-Since: Thu, 04 Mar 2010 07:41:27 GMT; length=542

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

Host: semnt.ru

Connection: Keep-Alive

 

2) Ответ сервера

HTTP/1.1 200 OK

Server: nginx/0.7.64

Date: Thu, 04 Mar 2010 07:41:51 GMT

Content-Type: text/html; charset=windows-1251

Transfer-Encoding: chunked

Connection: keep-alive

X-Powered-By: PHP/5.2.12

Set-Cookie: name=val

Content-Encoding: gzip

Expires: Thu, 01 Jan 1970 00:00:01 GMT

Last-Modified: Thu, 04 Mar 2010 07:41:51 GMT

 

3) Второй запрос IE

GET /headers.php HTTP/1.1

Accept: */*

Accept-Language: ru

Accept-Encoding: gzip, deflate

If-Modified-Since: Thu, 04 Mar 2010 07:41:51 GMT; length=542

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

Host: semnt.ru

Connection: Keep-Alive

Cookie: name=val

Потому что для поддоменов в setcookie нужно указывать домен, причём wildcard: .domen.ru

Столько написали, протестовали, а документацию по функции и FAQ про куки на ibr не прочитали, ай-ай-ай.

  • Автор

Проблема решена. Подробнее здесь.

  • Автор

Кстати, еще по теме.

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.