Что такое header('P3P: CP="CAO PSA OUR"');
для?
Как / почему он позволяет этому сценарию работать в IE?
session_start(); if (!session_is_registered(pre_myusername)) { header("location:index.php"); exit(); }
P3P – это платформа для настроек конфиденциальности. Значение CP="CAO PSA OUR"
описывает компактную политику с токенами
контакт и другие (информация о доступе: какая информация собирается? )
Идентифицированная контактная информация и другие идентифицированные данные: предоставляется доступ к идентифицированной онлайн-и физической контактной информации, а также к некоторым другим идентифицированным данным.
псевдоанализ (информация цели: для чего используется собранная информация? )
Псевдонимный анализ . Информация может использоваться для создания или создания записи конкретного человека или компьютера, привязанного к псевдониму, без привязки к записи идентифицированных данных (таких как имя, адрес, номер телефона или адрес электронной почты). Этот профиль будет использоваться для определения привычек, интересов или других характеристик людей для целей исследований, анализа и отчетности , но он не будет использоваться для поиска конкретных лиц. Например, маркетолог может пожелать понять интересы посетителей на разных частях веб-сайта.
ours (информация получателя: кто получает эту собранную информацию? )
Мы сами и / или субъекты, действующие в качестве наших агентов или организаций, для которых мы действуем как агент : агент в этом случае определяется как третье лицо, которое обрабатывает данные только от имени поставщика услуг для завершения заявленных целей. (например, поставщик услуг и его бюро печати, которое печатает ярлыки адресов и ничего не делает с информацией).
Гумбо уже объяснил, что такое P3P. Теперь о вашем коде session_is_registered
устарел. Вы используете pre_myusername
как константу. Если он не определен, PHP будет принимать строку, но полагаться на это поведение не рекомендуется. Если вы действительно намеревались использовать константы, используйте прописные буквы для ясности. Обратите внимание, что переменная должна иметь префикс доллара ( $
).
session_start();
или файл cookie сеанса не будет отправлен. $_SESSION
. isset()
может использоваться для проверки существования переменной (в этом случае используется ключ массива). Таким образом, фактический код становится:
session_start(); if(!isset($_SESSION['pre_myusername'])){ header("Location: index.php"); exit(); }
Примеры и документацию о функциях сеанса см. В Руководстве по PHP .
header('P3P: CP="CAO PSA OUR"')
устанавливает определенную Компактную политику P3P (CP), которая обычно используется, чтобы позволить сторонним кукисам из (i) фреймов использоваться в Internet Explorer.
Из статьи 323752 базы знаний Майкрософт .
Internet Explorer 6 представил поддержку проекта платформы для конфиденциальности (P3P). В стандарте P3P отмечается, что если FRAMESET или родительское окно ссылаются на другой сайт внутри FRAME или внутри дочернего окна, дочерний сайт считается третьим лицом. Internet Explorer, который использует настройку конфиденциальности по умолчанию для среды, молча отбрасывает файлы cookie, отправленные с сторонних сайтов.
В статье описывается CP-код выше:
Этот пример кода показывает, что ваш сайт предоставляет вам доступ к вашей собственной контактной информации (CAO), что любые анализируемые данные только «псевдоанализируются», а это означает, что данные подключены к вашей онлайн-персоне, а не к вашей физической идентичности (PSA ), и что ваши данные не предоставляются никаким внешним агентствам для использования этими агентствами (OUR).
NB Этот CP недействителен, поскольку он не содержит маркеров RETENTION или CATEGORIES.