Проблема с кодом для показа рекламы только посетителям поисковых систем - PullRequest
1 голос
/ 30 июня 2011

Существует плагин (для 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;
}

1 Ответ

1 голос
/ 30 июня 2011

Как указано в ссылке для setcookie на php.net :

После того, как файлы cookie установлены, к ним можно получить доступ при загрузке следующей страницы с помощью $ _COOKIE.или массивы $ HTTP_COOKIE_VARS.

Простое исправление, просто добавьте к своему foreach следующее:

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;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...