Иидентификация пользователя

Сан

Новичок
Иидентификация пользователя

При написании счетчика посещений возникла проблема. Суть счетчика: Если пользователь новый на сегодня, то засылаю ему кук, с временем жизни до 23:59:59, и записую его(пользователя) в базу. По идее проблемы могут быть, только если пользователь почистит куки вручную. Соответственно в таком случае он будет посчитан несколько раз. Но за сегодняшний день счетчик защитал много повторяющихся пользователей, привожу отрывок из БД:

--
-- Структура таблицы `meter_user_day`
--

CREATE TABLE `meter_user_day` (
`user_id` int(7) NOT NULL auto_increment,
`user_ip` varchar(255) NOT NULL default '',
`user_date` date NOT NULL default '0000-00-00',
`user_time` time NOT NULL default '00:00:00',
`user_host` varchar(255) NOT NULL default '',
`user_agent` varchar(255) NOT NULL default '',
`user_ref` varchar(255) NOT NULL default '',
`user_session` varchar(255) NOT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=90 ;

--
-- Дамп данных таблицы `meter_user_day`
--

INSERT INTO `meter_user_day` VALUES (37, '195.49.165.178', '2007-11-15', '13:49:51', '195.49.165.178', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)', 'http://www.google.com.ua/search?hl=ru&q=%D1%85%D0%B0%D1%80%D1%8C%D0%BA%D0%BE%D0%B2++%D1%81%D1%82%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9+%D0%BF%D0%B0%D0%BD%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9+%D1%80%D0%B0%D0%B4%D0%B8%D0%B0%D1%82%D0%BE%D1%80+KORADO&btnG=%D0%9F', '');

INSERT INTO `meter_user_day` VALUES (38, '195.49.165.178', '2007-11-15', '13:50:01', '195.49.165.178', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)', 'http://www.google.com.ua/search?hl=ru&q=%D1%85%D0%B0%D1%80%D1%8C%D0%BA%D0%BE%D0%B2++%D1%81%D1%82%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9+%D0%BF%D0%B0%D0%BD%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9+%D1%80%D0%B0%D0%B4%D0%B8%D0%B0%D1%82%D0%BE%D1%80+KORADO&btnG=%D0%9F', '');

INSERT INTO `meter_user_day` VALUES (39, '195.49.165.178', '2007-11-15', '13:53:02', '195.49.165.178', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)', 'http://209.85.129.104/search?q=cache:7igDjNfOBrIJ:www.bazatepla.com.ua/index.php%3Fcw%3Dmain%26%26theme%3Dotoplenie%26%26sort_by%3Ddate+%D1%85%D0%B0%D1%80%D1%8C%D0%BA%D0%BE%D0%B2+%D1%81%D1%82%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9+%D0%BF%D0%B0%D0%BD%D0%B5%D0', '');

Красные - это IP , синие – Хосты. И еще вопрос: почему некоторые хосты отображаются в виде IP?
 

cDLEON

Онанист РНРСlub
Потому что гладиолус.
В отпуске все предсказатели...Ктулху вызывают.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Красные - это IP , синие – Хосты
Таких букв как IP, Хост (так как Вы их трактуете своим кодом) в пхп нет.
В таких случаях, обычно, люди приводят НЕ запрос, а пхп-код, который формирует данный зарос.
 

Сан

Новичок
Автор оригинала: cDLEON
Потому что гладиолус.
В отпуске все предсказатели...Ктулху вызывают.
Извините за некорректно поставленный вопрос. Но и грубить не надо!
Если Вам жаль времени на объяснения, не пишите вообще! :mad:
Скажите пожалуйста, что именно я спросил не ТО или что уточнить?

-~{}~ 15.11.07 23:37:

Вот часть кода :
if(@!$_COOKIE['meter_session'])
{
$cooc_time=time()+mktime(23,58,59)-mktime();
setcookie("meter_session",session_id(),$cooc_time );
mysql_query("INSERT INTO meter_user_day (user_ip,user_date,user_time,user_host,user_agent,user_ref) VALUES('$REMOTE_ADDR','".date('Y-m-d')."','".date('H:i:s')."','".gethostbyaddr($REMOTE_ADDR)."','".getenv('HTTP_USER_AGENT')."','".getenv('HTTP_REFERER')."') ");
}
 

Фанат

oncle terrible
Команда форума
почему некоторые хосты отображаются в виде IP?
тебя не должен этот вопрос волновать.
Но за сегодняшний день счетчик защитал много повторяющихся пользователей
тебя не должен этот вопрос волновать.
так устроен интернет. никто тебе ничего не обязан - ни хостом быть, ни куки возвращать.

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

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

-~{}~ 15.11.07 23:52:

$cooc_time=time()+mktime(23,58,59)-mktime();
крутой код
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Сан
А мануал читать не модно?
string gethostbyaddr ( string ip_address )
Returns the host name of the Internet host specified by ip_address or a string containing the unmodified ip_address on failure.
 

Сан

Новичок
Mr_Max
Спасибо! Извини, мой втык! Функцию использовал, но до конца в ней не разобрался!
 

fixxxer

К.О.
Партнер клуба
разобраться надо прежде всего в том как устроен интернет
 

boombick

boombick.org
Красные - это IP , синие – Хосты
PHP:
if(color($_SERVER['REMOTE_ADDR']) == 'red') $data['user_ip'] = $_SERVER['REMOTE_ADDR'];
else $data['user_host'] = $_SERVER['REMOTE_ADDR'];
Недокументированая функция color обычно применяется гуру для различения хостов и ip-адресов...
 

Сан

Новичок
boombick
Неа , ты не понял. Это я в ручную "раскрасил" текст, для понятливости вопроса. А color я не использовал!
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Сан
Он пошутил. ;)
 

Pigmeich

Новичок
Э-эх, поработаю телепатом

PHP:
if(@!$_COOKIE['meter_session'])
Это че за код? Чего делает?
 
Сверху