$bot = "client"; if (stristr($_SERVER['HTTP_USER_AGENT'], 'Yandex')){ $bot='Yandex';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')){$bot='Google';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Mediapartners-Google')){$bot='Mediapartners-Google (Adsense)';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Slurp')){$bot='Hot Bot search';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'WebCrawler')){$bot='WebCrawler search';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'ZyBorg')){$bot='Wisenut search';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'scooter')){$bot='AltaVista';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'StackRambler')){$bot='Rambler';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Aport')){$bot='Aport';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'lycos')){$bot='Lycos';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'WebAlta')){$bot='WebAlta';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'yahoo')){$bot='Yahoo';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'bingbot')){$bot='Yahoo';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'msnbot')){$bot='msnbot/1.0';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'ia_archiver')){$bot='Alexa search engine';} else if (stristr($_SERVER['HTTP_USER_AGENT'], 'FAST')){$bot='AllTheWeb';}
Sanchila77: А это мысль. В документации сказано, что по умолчанию ф-я ставит куку для текущей директории и она потом доступна для нее и ее поддиректорий. Действительно, имеет смысл попробовать поставить для корня сайта.
Поставил, не помогло.
Но, оказывается, только часть яблоководов не принимают куку - около половины вполне себе нормально её воспринимают.
Заодно выявил одного товарища из Пушкино.
У него на 8 переходов 8 разных IP из одной подсети, но самое интересное, что и USER_AGENT каждый раз разный :)
б) пользователи APPLE (у всех в HTTP_USER_AGENT присутствует AppleWebKit)
в) пользователи, у которых HTTP_USER_AGENT = "Ruby". Кто это вообще?
Вот и встает вопрос, как кормить куку яблоководам?
PS пока есть утверждение, что некоторые яблоководы не кушают куку, но нет ответа - все ли яблоководы не кушают куку.
PSS. kostyanet, Вы либо помогите, либо не мешайте. Чего ради хаять человека, который отозвался? Не все родились с нужными знаниями. Не всем в работе нужны все знания. Мне эти куки нужно настроить один раз и забыть. Уже десять лет цепляюсь к IP и ничего. Понимаю, что не правильно, вот и ищу пути решения.
Я писал через обратную связь из вебмастера (внизу там)
Там куча ответов на вопросы, а живую форму так и не нашел :(
На какой мыл писать письмо с покаянием?
1.Сайт
2.Раздел World/Russian/Покупки/Для_дома_и_сада/Мебель (http://www.dmoz.org/World/Russian/%D0%9F%D0%BE%D0%BA%D1%83%D0%BF%D0%BA%D0%B8/%D0%94%D0%BB%D1%8F_%D0%B4%D0%BE%D0%BC%D0%B0_%D0%B8_%D1%81%D0%B0%D0%B4%D0%B0/%D0%9C%D0%B5%D0%B1%D0%B5%D0%BB%D1%8C/)
3. подавал 28/02/2013
Почему ГС хорошими не замещаете?
Что есть хорошая ссылка?
Есть ли такие ссылки в САПе?
Код такой:
$bot = "client";
if (stristr($_SERVER['HTTP_USER_AGENT'], 'Yandex')){ $bot='Yandex';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')){$bot='Google';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Mediapartners-Google')){$bot='Mediapartners-Google (Adsense)';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Slurp')){$bot='Hot Bot search';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'WebCrawler')){$bot='WebCrawler search';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'ZyBorg')){$bot='Wisenut search';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'scooter')){$bot='AltaVista';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'StackRambler')){$bot='Rambler';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Aport')){$bot='Aport';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'lycos')){$bot='Lycos';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'WebAlta')){$bot='WebAlta';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'yahoo')){$bot='Yahoo';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'bingbot')){$bot='Yahoo';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'msnbot')){$bot='msnbot/1.0';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'ia_archiver')){$bot='Alexa search engine';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'FAST')){$bot='AllTheWeb';}
if($bot == "client"){
if(!isset($_COOKIE["MID2"])) {
$value = time()."-".$_SERVER['REMOTE_ADDR'];
setcookie("MID2", $value, time()+604800, "/");
}
}
Около 6% юзеров после отсеивания вышеприведенных ботов не воспринимают кук :(
А это мысль. В документации сказано, что по умолчанию ф-я ставит куку для текущей директории и она потом доступна для нее и ее поддиректорий. Действительно, имеет смысл попробовать поставить для корня сайта.
Поставил, не помогло.
Но, оказывается, только часть яблоководов не принимают куку - около половины вполне себе нормально её воспринимают.
Заодно выявил одного товарища из Пушкино.
У него на 8 переходов 8 разных IP из одной подсети, но самое интересное, что и USER_AGENT каждый раз разный :)
Уж не хитрый ли бот это какой?
Храните все данные на сервере!
В куках прописываете только уникальный идентификатор пользователя.
В куках пишем только уникальный идентификатор - остальное храним на сервере месяц.
В общем - выводы пока печальные.
Куку не видят:
а) боты - так и должно быть
б) пользователи APPLE (у всех в HTTP_USER_AGENT присутствует AppleWebKit)
в) пользователи, у которых HTTP_USER_AGENT = "Ruby". Кто это вообще?
Вот и встает вопрос, как кормить куку яблоководам?
PS пока есть утверждение, что некоторые яблоководы не кушают куку, но нет ответа - все ли яблоководы не кушают куку.
PSS. kostyanet, Вы либо помогите, либо не мешайте. Чего ради хаять человека, который отозвался? Не все родились с нужными знаниями. Не всем в работе нужны все знания. Мне эти куки нужно настроить один раз и забыть. Уже десять лет цепляюсь к IP и ничего. Понимаю, что не правильно, вот и ищу пути решения.
Я файрфоксом - у меня пишутся
Ща гляну чем заходят юзеры, которым не пишет
Странно всё это :(
Вот фрагмент:
if($_COOKIE["MID"]){
$MID = $_COOKIE["MID"];
}
else{
$value = time()."-".$_SERVER['REMOTE_ADDR'];
setcookie("MID", $value, time()+604800);
$basers = fopen("$absolute_path/cookie/$mip.txt","a+");
fputs($basers,"$value\r\n");
fclose($basers);
}
$MID = $value;
и снова по несколько записей в некоторые IP :(