仅向搜索引擎访问者显示广告的代码存在问题


Problem with code to show ads to search engine visitors only

有一个插件(用于wordpress(,只向搜索引擎访问者显示广告。。一个人能够修改它但只有当你登陆并点击另一个页面时,代码才会显示广告。。。但它不会出现在登录页上。有人能帮我知道代码上出了什么问题吗?

function wp_ozh_wsa_is_fromsearchengine($doset = false) {
global $wp_ozh_wsa;
$ref = $_SERVER['HTTP_REFERER'];
$yes = false;
if (isset($wp_ozh_wsa['my_search_engines'])) {
    $SE = $wp_ozh_wsa['my_search_engines'];
} else {
    $SE = array('/search?', 'images.google.', 'web.info.com', 'search.', 'del.icio.us/search',
    'soso.com', '/search/', '.yahoo.',
    );
}
foreach ($SE as $url) {
    if (strpos($ref,$url)!==false) {
        if ($doset) {
            $url = parse_url(get_option('home'));
            setcookie('wsas', 'yes', time() + 60*60, $url['path'] . '/');
        }
    }
}
if (isset($_COOKIE['wsas'])) {
    return true;
}
return false;
}

如php.net上setcookie的ref中所述:

设置好cookie后可以在下一页加载时访问使用$_COOKIE或$HTTP_COOKIE_VARS阵列。

简单的修复,只需在前臂上添加以下内容:

foreach ($SE as $url) {
    if (strpos($ref,$url)!==false) {
        if ($doset) {
            $url = parse_url(get_option('home'));
            setcookie('wsas', 'yes', time() + 60*60, $url['path'] . '/');
            return true;
        }
    }
}