Php If / Else基于Http_Referer(否则只显示空白)

时间:2013-08-26 08:21:55

标签: php if-statement http-referer strpos

好的,所以我正在尝试做一个简单的操作,如果用户已经在浏览我们的网站,我们会显示某条消息,否则,我们要为首次访问者显示一条消息(或者只是那些没有我们的网址作为推荐人)

Else语句只显示为空白,无论我如何旋转它。

想法?

<?php 
if (isset($_SERVER['HTTP_REFERER'])) {
    $referer = $_SERVER['HTTP_REFERER'];
    if (strpos($referer, "http://www.example.com/") === 0) {
        echo "Match Okay";
    } else {
        echo "No Match";
    }
}
?>

2 个答案:

答案 0 :(得分:0)

您的代码似乎没问题。

引自php文档:

  

将用户代理引用到当前页面的页面地址(如果有)。这是由用户代理设置的。并非所有用户代理都会设置此功能,有些用户可以将HTTP_REFERER修改为功能。简而言之,它无法真正被信任。

也许您的浏览器属于“并非所有用户代理都会设置此类别”类别。使用其他浏览器试用您的代码。

要获得更可靠的方法,请考虑使用Cookie!只需检查cookie值即可。如果它不存在,则是第一次访问(然后设置值)。如果它存在,则至少加载第二页。

Cookie的优点是,如果用户再次回来(通过设置Cookie的持久时间),您可以跟踪用户。

答案 1 :(得分:0)

你应该使用cookies

消息来源:http://php.about.com/od/advancedphp/qt/php_cookie.htm