Retox
Сделал
<?php
@setcookie("tcookie", "ok");
@$tcookie_s = $_COOKIE["tcookie"];
if ($tcookie_s == "ok")
{
//поддерживаются
}
?>
Но почему то на 1k человек 70% были выявлены как No cookie
Проверил в IE на дефолтных настройках блокирует сторонние куки, и тп.
Может есть какой то более мягкий способ ставить куки, который пропускают браузеры на средних уровнях конфеденциальности. Так как цель вылавливать только бoтов.
Всем спасибо за помощь
)
Если скрипт чека дёргать через jquery, а так же возможно iframe или img - то он будет брать текущую куку корректно в случае когда нежелателен рефреш или промежуточный редирект.
Последний раз редактировалось: Retox (01/09/14 в 23:39), всего редактировалось 1 раз
Nux
потому что то данный код будет работать только при повторной загрузке странички, вот эти 30% у тебя и делают второй заход(клик)
в сторону JavaScript смотри...
Retox
Nux: спасибо за то что указал на ошибку!
Решение нашлось в виде дополнительного редиректа, на котором уже правильно выявляются пользователи с куками и без... За одно теперь понял как выявлять повторные клики, даже при изменённых IP сёрферов.
Последний раз редактировалось: Retox (01/09/14 в 22:05), всего редактировалось 1 раз
Stek
Код:
<script>
document.cookie = "testing=cookies_enabled; path=/";
if(document.cookie.indexOf("testing=cookies_enabled") < 0)
{
alert("Cookies disabled");
}
</script>
А с php твой код только по рефрешу страницы будет срабатывать.
Retox
Stek: Спасибо
) Вроде бы нашел способ без рефреша и дополнительного редиректа. При этом что бы была возможность передавать ID сёрфера без кук в базу.
1) Ставим куку в PHP скрипте и через jquery дёргаем скрипт чека, при этом передаём источник.
<?php
@setcookie("tcookie", "ok");
$str = <<< HTML_END
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script>
$.get('cookie_c.php', {data: 'source_555555'}, function(response) {
console.log(response);
});
</script>
HTML_END;
echo $str;
?>
2) cookie_c.php чек и лог
<?php
@$tcookie_s = $_COOKIE["tcookie"];
$source = $_GET['data'];
if ($tcookie_s != 'ok')
{
file_put_contents ('no_cookie.txt', $source);
}
?>