помогите написать счетчи
помогите написать счетчик посещений с указанием ip адреса комьютера и времени.
спасибо!
Написать на чем?=))
на чем лутше будет работать
use strict;
use Fcntl ':flock';
$| = 1;
my $clicks;
&smth;
sub smth {
open(SEM,'>./sem');
flock(SEM,LOCK_EX);
my $ip = $ENV{REMOTE_ADDR};
if (open(SLOG,'./s_log')) {
while (<SLOG>) {
chomp $_;
(undef,$_) = split(" ",$_);
if ($_ eq $ip) {
return;
}
}
close SLOG;
}
if (open(STAT,'./c_num')) {
$clicks = <STAT>; chomp $clicks;
close STAT;
}
open(STAT,'>./c_num');
print STAT ++$clicks;
close STAT;
open(SLOG,'>>./s_log');
printf SLOG "%d %s \n", time(), $ip;
close SLOG;
##время *nix`овски (или макОС`ски), в секундах=)
close SEM;
}
##выводим на основе значения $clicks (количество кликов)
_END_
Эт на PERL`е. Сделаешь сам=) Впадлец.. Эт просто убогий примерчик наверстал.. Ну, работает, над ток либо пиксель выводить им, либо картинку какую-нить:)
А птом на страничке делаешь так: (или еще как).
=)
эт ты ему предлагаешь пользовать скрипты тех, кто \n[\r]`ы RE`шками удаляет???? =))) лол
а на html можно счтото подобное написать?
Цитата:
Originally posted by m77t87ty0870hyo
а на html можно счтото подобное написать?
а на html можно счтото подобное написать?
нет
Цитата:
Originally posted by Shiizoo
Выдержка из сырцов, с тех ссылок: " $count=ereg_replace(" ","",$count); // Удаляем символ конца строки ...".
эт ты ему предлагаешь пользовать скрипты тех, кто \n[\r]`ы RE`шками удаляет???? =))) лол
Выдержка из сырцов, с тех ссылок: " $count=ereg_replace(" ","",$count); // Удаляем символ конца строки ...".
эт ты ему предлагаешь пользовать скрипты тех, кто \n[\r]`ы RE`шками удаляет???? =))) лол
не суть
2m77t87ty0870hyo: А тебя я не понимаю) То говоришь на чем будет лучше работать, теперь те на html надо:))) Обясню такую ситуацию, для работы счетчика нужен язык, кторый может получить IP юзера, открыть файл, прочитать его и записать, и желательно чтобы был еще ЛОК файлов доступен. HTML - язык разметки, а не прикладного или какого-либо другого программирования, и эт не в его власти. Он служит для форматирования вывода, ну эт я это так называю. JS - эт тоже не могет (ну только на стороне клиента, и-то не все реализации), а CSS к этому вообще отношения не имеет) Значт тебе нужен PHP, PERL, ASP, CPP, JAVA или еще, что другое=) На мой взгляд, в рунете легче всего найти хостинг под первые 3. Из них первые два осваиваются легче всего. Если ты новичок - тебе больше подойдет PHP. CPP для такиех ерундовых задач юзать - глупо. ASP - зверь довольно редкий, хостинг с ним дороже, JAVA тож около того.
Ну, значит, иди в книжный, покупай "Учим PHP!", или как там книга будет называцца, и учи. За недельку освоишь (если поднапряжешься), и будешь сам на свой лад писать счетчики и т.п. Да, не забудь поковыряцца в манах по веб-серверам, таких как httpd, апач и т.п. (IIS не трогай:)))). Ну, всё, вперед и с песней=)
а на narod.ru это будет работать?
Если честно, никогда не пользовался=))))) Попробуй h1.ru или holm.ru, когда они только открылися я пробывал, правда мне не понравилось=))) На халяву ничег онормального никто тебе не даст:) Но все же там еще более менее терпимо) и работать там будет, и php и perl.. А вообще, купи хостинг нормальный:) ~80 баксов обойдецца, в год, это немного:)
спасибо
Сохранятюцца в файл=) дальше делай с ними, что хочешь) Высылать на мыло можно, но нужно юзать или либу, или mta, а так впадлу=) да и это не разумно.. ящик бут забит=) бредово:) лучше сделать навроде раздела под паролем, и фсе)
в какой файл? и как поставить пароль на него и сделать отображение в виде html странички.
#!/usr/bin/perl -w
use strict;
use Fcntl ':flock';
use CGI qw(param header);
$| = 1;
my $clicks;
&smth;
my ($login,$pass) = ('admin','123');
{
my $action = param('action') || '';
if ('history' eq lc($action)) {
my ($p_pass,$p_login) = (param('pass') || '',param('login') || '');
die '' unless ($p_pass eq $pass and $p_login eq $login);
&history;
} else {
&smth;
}
}
exit(0);
sub history {
open(SEM,'>./sem');
flock(SEM,LOCK_SH);
open(SLOG,'./s_log') || die '';
my @log;
while (<SLOG>) {
$log[@log] = {};
($log[@log-1]->{'time'},$log[@log-1]->{'host'}) = split(" ",$_);
}
close SLOG; close SEM;
print header(-type => 'text/html');
print <<"EOF";
<html>
<head><title>BZ</title>
<style type="text/css">
tr { vertical-align: top }
td { text-align: center; vertical-align: top; background-color: #f5f5f5 }
tr#head td { background-color: #e3e3e3 }
</style>
</head>
<body>
<table align="center" border="0" cellpadding="0" cellspacing="1" style="background-color: #c2c2c2;" width="90%">
<tr id="head"><td>Время визита</td><td>Хост юзера</td></tr>
EOF
for (@log) {
print '<tr><td>' . localtime($_->{time}) . '</td><td>' . $_->{host} . "</td></tr>\n";
}
print '</table></body></html>';
}
sub smth {
open(SEM,'>./sem');
flock(SEM,LOCK_EX);
my $ip = $ENV{REMOTE_ADDR};
if (open(SLOG,'./s_log')) {
while (<SLOG> ) {
chomp $_;
(undef,$_) = split(" ",$_);
if ($_ eq $ip) {
return;
}
}
close SLOG;
}
if (open(STAT,'./c_num')) {
$clicks = <STAT>; chomp $clicks;
close STAT;
}
open(STAT,'>./c_num');
print STAT ++$clicks;
close STAT;
open(SLOG,'>>./s_log');
printf SLOG "%d %s \n", time(), $ip;
close SLOG;
##время *nix`овски (или макОС`ски), в секундах=)
close SEM;
}
__END__
на... НО НЕ ЗАБУДЬ В КОНЦЕ КАРТИНКУ ВЫВОДИТЬ..=) хотя, можешь сделать ее в один пиксел, или вообще не видимой..=) ну дело твое.. терь в общем тебе нужна форма, тчобы входить в этот скрипт.. я не стал в него вкладывать..
должно быть три поля, одно невидимое..
login, pass и невидимое action. action для администрирования должен быть равен 'history', в любом регистре. ну а для засечения пользователя все так же. НО УЧТИ, этот скрипт два раза один и тот же ИП не запомнит, чтоб лишних накруток не было=) Если хочешь записывать каждое посещение - удали этот кусок:
if (open(SLOG,'./s_log')) {
while (<SLOG> ) {
chomp $_;
(undef,$_) = split(" ",$_);
if ($_ eq $ip) {
return;
}
}
close SLOG;
}
Ну, вроде все.. НЕ забываЙ, это всгео лишь на скорую руку сделаный пример:) Как только появица возможность - переделай.. :) Можешь отредактировать внешний вид вывода таблицы посещений.. Отбалды вырисовывал:) Все работаеТ, никаких запар.. Файлы сохраняются в ту же директорию, где лежит скрипт.. После их создания смени на них права.. Я всегда ставлю 700.. Как сменить надеюсь знаешь, ну, в факе на хостинге по-моему всегда пишут=) Все, буй..
СПАСИБО
А я только две прочел, так что хз=)))))) Учился по манам, и учусь, и еще долго буду учицца=))))Сам вот рыскаю=))