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

什么是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"描述了令牌的紧凑策略

  • 联系人和其他人 (访问信息: 收集哪些信息?

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

  • 伪分析 (目的信息: 收集的信息是用来做什么的?

    假名分析 :信息可用于创build或build立与假名标识符绑定的特定个人或计算机的logging,而不将识别的数据(例如姓名,地址,电话号码或电子邮件地址)与logging绑定。 这个简介将被用来确定个人的习惯,兴趣或其他特征, 以用于研究,分析和报告 ,但不会被用来识别特定的个人。 例如,营销人员可能希望了解访问者对网站不同部分的兴趣。

  • 我们的 (收件人信息: 谁收到的信息?

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

Gumbo已经解释了P3P是什么。 现在,关于你的代码, session_is_registered已经被弃用了。 您正在使用pre_myusername作为常量。 如果没有定义,PHP将假设一个string,但是不build议依靠这种行为。 如果您确实打算使用常量,请使用大写字母来表示清晰度。 请注意,variables应该以美元( $ )为前缀。

  • 确保session_start();之前没有发送内容session_start(); 或会话cookie不会被发送。
  • 会话variables可从$_SESSION数组中获得。
  • isset()可用于检查variables(在这种情况下为数组键)的存在。

所以,实际的代码变成:

 session_start(); if(!isset($_SESSION['pre_myusername'])){ header("Location: index.php"); exit(); } 

有关会话function的示例和文档,请访问PHP手册 。

header('P3P: CP="CAO PSA OUR"')设置一个特定的P3P精简策略(CP),这个策略通常用于允许第三方Cookie从(i)在Internet Explorer中使用的帧。

从Microsoft知识库文章323752 。

Internet Explorer 6引入了对隐私首选项(Platform for Privacy Preferences,P3P)项目的支持。 P3P标准指出,如果FRAMESET或父窗口引用FRAME内部或子窗口内的另一个站点,则该子站点将被视为第三方内容。 使用默认隐私设置“中”的Internet Explorer默默拒绝来自第三方网站的Cookie。

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

此代码示例显示您的站点为您提供了访问自己的联系信息(CAO)的权限,即任何分析的数据都只是“伪分析”,这意味着数据与您的在线angular色相关联,而不是与您的身份标识(PSA ),并且您的数据不会提供给任何外部机构供这些机构使用(OUR)。

注意:由于此CP不包含任何RETENTION或CATEGORIES令牌,因此此CP无效。