仅在浏览器时执行PHP标头位置

时间:2012-08-21 07:06:43

标签: php

我的网站中存在“访问”外部网页的问题。 问题在于创建cookie,我的脚本尝试在第一次访问时创建cookie。当从外部页面(如W3C)读取页面时,我将获得重定向循环。 所以我怎么只能在浏览器中执行header("location:*");

3 个答案:

答案 0 :(得分:2)

不要做具体案件。对待每个人都一样。你将很难进行“检测”。

在重定向上添加GET参数。当param存在时,不要再重定向。

答案 1 :(得分:1)

并非所有浏览器都会接受Cookie。并非所有不是浏览器的东西都会拒绝cookie。试图使用用户代理的类型来猜测它是否会接受你的cookie注定要失败。

改为改变您的工作流程:

  1. 重定向到set-a-cookie页面
  2. 设置Cookie
  3. 重定向到另一个is-there-a-cookie页面
  4. 显示错误消息或重定向到他们进入的页面
  5. 更好的是,在实际需要cookie之前不要求cookie(可能是“当用户登录时”而不是“当你想开始收集分析数据时”)。请注意,前面的句子包括一些较大的假设。

答案 2 :(得分:0)

通过使用“User-agent”字符串,您可以轻松阻止代码在条件语句下执行。

echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";