За последние 24 часа нас посетили 22614 программистов и 1128 роботов. Сейчас ищут 675 программистов ...

Как отправить и получить HTTP - заголовок ?

Тема в разделе "PHP для новичков", создана пользователем 118_64, 3 июл 2017.

Метки:
  1. 118_64

    118_64 Активный пользователь

    С нами с:
    8 янв 2015
    Сообщения:
    84
    Симпатии:
    2
    В домене mydomain.com выполняется код, после которого происходит редирект на этот же домен:
    PHP:
    1. header('Cache-Control: max-age=1234567');
    2. header('Location: http://mydomain.com');
    Необходимо отследить состояние после перезагрузки, для этого пытаюсь получить и обработать заголовок, например "Cache-Control":
    PHP:
    1. $header_arr = apache_response_headers();
    2. print_r($header_arr);
    но заголовка "Cache-Control" там нет (выполняется на localhost).

    Судя по этой статье, произвольный заголовок от сервера клиенту передать можно, но можно ли это сделать средствами php, а затем средствами php его получить и обработать?
     
  2. umbabaraumba

    umbabaraumba Новичок

    С нами с:
    18 июн 2017
    Сообщения:
    100
    Симпатии:
    17
    Что выводит эта строка?
     
  3. 118_64

    118_64 Активный пользователь

    С нами с:
    8 янв 2015
    Сообщения:
    84
    Симпатии:
    2
    PHP:
    1. (
    2.     [X-Powered-By] => PHP/5.3.5
    3. )
     
  4. umbabaraumba

    umbabaraumba Новичок

    С нами с:
    18 июн 2017
    Сообщения:
    100
    Симпатии:
    17
    Мне кажется что проблема в старой версии php.
    Это у вас дэнвер что-ли?

    Сейчас php 7 и 5.6 актуальны.
     
  5. 118_64

    118_64 Активный пользователь

    С нами с:
    8 янв 2015
    Сообщения:
    84
    Симпатии:
    2
    Денвера нет, локально установлен php + апач. Разве от версии зависит отображение/неотображение заголовков?

    apache_response_headers() поддерживает ветку 5х. Вряд ли дело в этом.
     
  6. umbabaraumba

    umbabaraumba Новичок

    С нами с:
    18 июн 2017
    Сообщения:
    100
    Симпатии:
    17
    Тогда тем более надо более новую версию ставить.

    5.4.0 Данная функция стала доступной при использовании FastCGI. Раньше она была доступна только если PHP был установлен, как модуль Apache
     
  7. 118_64

    118_64 Активный пользователь

    С нами с:
    8 янв 2015
    Сообщения:
    84
    Симпатии:
    2
    Попробовал на реальном сервере (php 5.6.3). Просто перезагрузка с запросом заголовков дает пустой массив:
    PHP:
    1. header('Location: http://mydomain.com');
    2. //
    3. $header_arr = apache_response_headers();
    4. print_r($header_arr);
    5. //
    6. (
    7. )
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    @118_64 может при перезагрузки установить cookie
     
  9. 118_64

    118_64 Активный пользователь

    С нами с:
    8 янв 2015
    Сообщения:
    84
    Симпатии:
    2
    Ищу способ решения с отключенными куками и скриптами. Пока не вижу способа кроме перехвата заголовков, но и это не могу заставить работать, не знаю почему.

    Пробовал и getallheaders(), но в этом случае либо вообще элемента массива с ключом [Cache-Control] нет, либо (после дополнительной перезагрузки) другое значение элемента: [Cache-Control] => max-age=0
     
  10. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    тогда добавь get параметр к ссылке
     
  11. 118_64

    118_64 Активный пользователь

    С нами с:
    8 янв 2015
    Сообщения:
    84
    Симпатии:
    2
    думал и над этим. В этом случае посетитель с отключенными куками будет при каждом запросе носить за собой, условно говоря, ?cookies=no . Очень хотелось бы этого избежать. Отдельный вопрос, как это проявит себя в плане поисковой оптимизации.

    К слову, ты не в курсе, поисковые боты (например, Google Search) куки принимают с сайтов, на которые заходят?
     
  12. umbabaraumba

    umbabaraumba Новичок

    С нами с:
    18 июн 2017
    Сообщения:
    100
    Симпатии:
    17
    Может что-то из этого подойдет?
     
    118_64 нравится это.
  13. gruth

    gruth Активный пользователь

    С нами с:
    13 май 2017
    Сообщения:
    224
    Симпатии:
    18
    А зачем браузер должен хэдер отправлять с кэш контрол серверу? Он же не должен указывать серверу что кэшировать, или не догоняю
     
  14. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Не в курсе, такое лучше на searchengines.guru спрашивать

    Мало вероятно, что сможешь такое реализовать если у пользователя браузер настроен чтобы не сохранять данные

    Он хочет сделать альтернативу cookie, без cookie