0

我想知道是否可以根据引荐网站执行脚本。例如,如果用户从 Facebook 访问我的网站,那么我希望激活脚本,但如果用户通过谷歌搜索访问该网站,则不会运行该脚本。这可能吗?

4

4 回答 4

2

您应该能够测试$_SERVER['HTTP_REFERER']用户是否来自 facebook 并且行为不同。

于 2009-12-23T23:51:45.110 回答
1

你的意思是服务器端还是客户端脚本?

从客户端,您可以通过document.referrer(是的,使用双 'r',即使相应的 HTTP 标头拼写错误)访问引荐来源网址。例如。:

if (document.referrer.toLowerCase().indexOf('//www.example.com')) {
    document.getElementById('message').innerHTML= 'Hello, visitor from example.com';
}
于 2009-12-24T00:37:50.970 回答
0

我会做这样的事情:

if (array_key_exists('HTTP_REFERER', $_SERVER) === true)
{
    // this will give you something like google.com or facebook.com
    $domain = str_ireplace('www.', '', parse_url($_SERVER['HTTP_REFERER'], 'PHP_URL_HOST'));

    // check if there is any referer script you want to execute
    if (is_file('path/to/scripts/' . $domain . '.php') === true)
    {
        // include the path/to/scripts/google.com.php for instance
        include('path/to/scripts/' . $domain . '.php');
    }
}
于 2009-12-24T01:58:12.657 回答
0

这是可能的。请记住,引用者可能会被欺骗,因此您永远不应该根据其价值来做与安全相关的事情。

于 2009-12-24T00:04:53.573 回答