Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Учет уникальных посещений, антинакрутка, счетчик
 
 автор: TetRiska   (29.09.2011 в 19:37)   письмо автору
 
 

Всем привет. Стоит задача в написании скрипта по учету уникальных посещений. Перед тем как считать, нужно пройти ряд проверок. Первым этапом по проверке у меня стоят куки. Посетитель без кук мне ненужен, да и % таких очень невелик. Для меня известно 4 метода по определению кук (включены или выключены) - два серверных (php), один клиент-серверный (php+javascript) и один клиент-серверный (php+jquery).

Важным моментом для меня является моментальное определение включенные у посетителя куки или нет, без всяких переадресаций!!!

Метод 1. Серверный php скрипт с использованием переадресаций.
<?php
  
// это небольшой проверочный скрипт, выясняющий,
  // включены ли cookies у пользователя  

  
if(empty($_GET["cookie"]))
  {
    
// посылаем заголовок переадресации на страницу,
    // с которой будет предпринята попытка установить cookie 
    
header("Location: $_SERVER[PHP_SELF]?cookie=1");
    
// устанавливаем cookie с именем "test"
    
setcookie("test","1"); 
  }
  else
  {
    if(empty(
$_COOKIE["test"]))
    {
      echo(
"Для корректной работы приложения необходимо включить cookies");
    }
    else
    {
      
// cookie включены, переходим на нужную страницу:
      
header("Location: http://localhost/");
      
// здесь посылается заголовок, содержащий адрес нужной страницы
    
}
  }
?>

Метод эффективен, но не особо гуманный как для человека так и по моему мнению для поисковика.

Если смотреть со стороны человека это лишняя переадресация, хоть довольно незаметная, но возможно ощутимая по времени загрузки страницы.
Если смотреть со стороны поисковика, то думаю ему может не понравится что его переадресовывают куда-то, а потом обратно. Есть опасность получить санкцию (мое мнение).

Вердикт - не подходит.

Метод 2. Серверный php скрипт с использованием переадресаций, но в iframe.

Аналогичный метод, но с использованием iframe. В данном методе меня грызут сомнения насчет необходимости дополнительной перезагрузки основного окна, ведь действия происходили в iframe, когда уже главная страничка загрузилась.

Если смотреть со стороны человека, то он не заметит никаких переадресаций, но вопрос будет в следующем - получит ли он ответ сразу после загрузки основного окна?.
Если смотреть со стороны поисковика, то все здесь должно быть нормально, ибо поисковика не будет бросать со стороны в сторону.

Вердикт - не подходит.

Метод 3. Клиент-серверный с использованием php+javascript.

Суть метода такова:
1 - внедрил в javascript запись куки
2 - в php сделал вывод этой куки

По результатам опыта можно сказать, что он эффективен только после второй перезагрузки странички.

Вердикт - не подходит.

Метод 4. Клиент-серверный с использованием php+jquery.

Метод еще не проверил, но в надежде на его успех (в процессе разработки).

Суть его такова:
1 - создаем ф-цию которая запишет куку и пошлет запрос php скрипту на определение этой куки по принципу метода 1
2 - если результат удовлетворительный мы приступаем ко второму этапу
3 - если результат не удовлетворительный, то само собой второй этап не наступит и счетчик не зачислит посещение
4 - если в браузере у пользователя отключен javascript, то ситуация аналогична пункту 3

Второй этап необходим, т.к. 100% надежности на проверку кук и отфутболивание пользователей с выключенными куками надеяться не стоит. Куки можно удалять и заново заходить на страничку, тем самым накручивая статистику. Так вот для данного этапа я считаю нужно записывать всевозможные данные передаваемые браузером, вопрос только какие? ИХ по идее много, но нужно ли все?

Собственно все, надеюсь не утомил рассказом и прилагающимися вопросами. Очень нужно начать писать счетчик для статистики. Спасибо за внимание.

  Ответить  
 
 автор: cheops   (29.09.2011 в 20:30)   письмо автору
 
   для: TetRiska   (29.09.2011 в 19:37)
 

Возможно вас заинтересует вариант, который использует только JavaScript http://softtime.ru/forum/read.php?id_forum=4&id_theme=80360.

  Ответить  
 
 автор: TetRiska   (30.09.2011 в 11:30)   письмо автору
 
   для: cheops   (29.09.2011 в 20:30)
 

в принципе такое мне и надо было :) буду вешать на онлоад страничке в нужном месте и определять....в случае успешного определения буду обращаться через jquery к php скрипту и делать следующие проверки, после которых возможно последует запись.
вот вопрос писал выше, какие еще нужно вытягивать с юзера данные кроме как юзер агента, браузера? - ИП же не уникально, стоит его учитывать?

П.С. обойтись без jquery можно как-то? чтобы не передавать стороннему php скрипту и там не обрабатывать, а в родном, который выводит страничку...но нужно чтобы результат сразу появился, без перезагрузок странички (желательно, хотя если это будет быстро, то можно).

  Ответить  
 
 автор: cheops   (30.09.2011 в 15:38)   письмо автору
 
   для: TetRiska   (30.09.2011 в 11:30)
 

Самое лучше, это включить сессию и увеличивать значение какой-нибудь переменной, например, $_SESSION['total'] на единицу при каждом обновлении страницы. Те у кого cookie поддерживаются это значение будет изменяться от 1, 2, 3 до N. У тех, у кого cookie не поддерживаются это значение всегда будет 1. Подсчитывайте активность только тех, у кого $_SESSION['total'] >= 2 - это и будут гарантированные посетители (за минусом тех, кто посмотрел только одну страницу вашего сайта).

  Ответить  
 
 автор: TetRiska   (30.09.2011 в 16:52)   письмо автору
 
   для: cheops   (30.09.2011 в 15:38)
 

метод хорош и прост, но нужно учитывать даже тех кто просмотрел один раз страничку..т.к. статистика будет вестись для определенных страниц на которые юзер может только раз попасть, а для тех страниц важно каждое посещение.

решил реализовать на аяксе, вот сейчас сижу разбираю его принцип действия, имхо жиквери уступает в гибкости

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования