标题是什么('P3P:CP =“CAO PSA OUR”');做?

时间:2011-03-10 09:56:57

标签: php session p3p

什么是header('P3P: CP="CAO PSA OUR"');

如何/为什么让这个脚本在IE中正常工作?

session_start();

if (!session_is_registered(pre_myusername)) {
    header("location:index.php");
    exit();
}

3 个答案:

答案 0 :(得分:58)

P3P is the Platform for Privacy Preferences.CP="CAO PSA OUR"描述带有令牌的compact policy

  • contact and others (access information: What information is collected?)

      

    已识别的联系信息和其他已识别数据:访问已识别的在线和物理联系信息以及某些其他已识别的数据。

  • pseudo-analysis (purpose information: What is the collected information used for?)

      

    伪名分析:信息可用于创建或构建与假名标识符绑定的特定个人或计算机的记录,而不会绑定已识别的数据(例如姓名,地址,电话号码) ,或电子邮件地址)到记录。此配置文件将用于确定个人的习惯,兴趣或其他特征,以用于研究,分析和报告,但不会用于尝试识别特定个体。例如,营销人员可能希望了解访问者对网站不同部分的兴趣。

  • ours (receipient information: Who gets that collected information?)

      

    我们自己和/或作为我们作为代理的代理人或实体的实体:此实例中的代理被定义为仅代表服务处理数据的第三方提供者完成所述目的。 (例如,服务提供商及其印刷局打印地址标签,并且不对信息做任何进一步的处理。)

答案 1 :(得分:7)

Gumbo已经解释了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 Manual

答案 2 :(得分:2)

header('P3P: CP="CAO PSA OUR"')设置了一个特定的P3P契约策略(CP),该策略通常用于允许(i)帧中的第三方cookie在Internet Explorer中使用。

来自Microsoft Knowledge Base article 323752

  

Internet Explorer 6引入了对隐私平台的支持   偏好(P3P)项目。 P3P标准指出,如果是FRAMESET   或者父窗口引用FRAME内部或内部的另一个站点   子窗口,子站点被认为是第三方内容。   Internet Explorer,使用默认隐私设置Medium,   默默拒绝从第三方网站发送的cookie。

本文介绍了上面的CP代码:

  

此代码示例显示您的网站可让您访问自己的网站   联系信息(CAO),任何分析的数据   “伪分析”,表示数据已连接到您的   在线角色而不是你的身份(PSA),而你的身份   这些机构不会向任何外部机构提供数据   (我们的)。

N.B。此CP无效,因为它不包含任何RETENTIONCATEGORIES令牌。