Форум: "Сети";
Текущий архив: 2009.08.30;
Скачать: [xml.tar.bz2];
ВнизСчетчик посещений Найти похожие ветки
← →
mrfreeman2007 (2008-03-20 08:43) [0]Здравствуйте!
Подскажите, как сделать счетчик посещений для Веб-страницы?
В журнале нарыл такой код:
unit Counter;
interface
uses
Windows, graphics, jpeg, extctrls, Messages, SysUtils, Classes, HTTPApp;
type
TWebModule1 = class(TWebModule)
procedure WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
WebModule1: TWebModule1;
implementation
{$R *.DFM}
procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
bitmap:tbitmap;
hits:integer;
logfile:textfile;
filename:string;
jpeg1:tjpegimage;
stream:tmemorystream;
begin
filename:="count.log";
assignfile(logfile,filename);
try
if fileexists(filename) then begin
reset(logfile);
readln(logfile,hits);
inc(hits);
end else begin
hits:=1;
rewrite(logfile);
writeln(logfile,hits);
end;
finally
closefile(logfile);
bitmap:=tbitmap.create;
try
with bitmap do begin
width:=120;
height:=25;
with canvas.font do begin
name:="arial";
size:=14;
color:=rgb(255,127,0);
style:=[fsbold];
end;
canvas.textout(1,1,"Hits:"+formatfloat("###,###,###",int(hits)));
end;
jpeg1:=tjpegimage.create;
try
jpeg1.compressionquality:=50;
jpeg1.assign(bitmap);
stream:=tmemorystream.Create;
jpeg1.savetostream(stream);
stream.Position:=0;
response.ContentType:="image/jpeg";
response.contentstream:=stream;
response.SendResponse;
finally
jpeg1.free;
end;
finally
bitmap.free;
end;
end;
end;
end.
На странице пишу тег:
img src="counter.exe"
Скрипт не выполняется ни разу.
Подскажите, в чем ошибка?
← →
Slym © (2008-03-20 10:07) [1]Скрипт выполняется на сервере... У тебя есть настроенный сервер?
← →
mrfreeman2007 (2008-03-20 10:31) [2]Сервака нет... А если я размещу его на Narod"е, он будет работать?
← →
Сергей М. © (2008-03-20 11:11) [3]Не будет
← →
mrfreeman2007 (2008-03-20 12:19) [4]А как мне тогда это дело сделать? Позарез надо!
← →
Сергей М. © (2008-03-20 12:35) [5]Вариантов у тебя не шибко много:
1. Использовать любой другой скрипт, который будет работать на Narod"е.
2. Использовать этот скрипт там, где он будет работать.
← →
mrfreeman2007 (2008-03-21 06:06) [6]Первый вариант приемлемей. Нашел на Яндексе такой код:
const
counter_path="counter.dat"; // Файл для значений счетчика
log_path="counter.log"; // Файл для IP адресов
procedure TWM.WMWebActionItemMainAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
f:TextFile;
begin
Response.Content:=SetCounter; // Устанавливаем счетчик
// Записываем IP посетителя
AssignFile(f,log_path);
Append(f);
Writeln(f,Request.RemoteAddr);
CloseFile(f);
end;
function TWM.SetCounter: String;
var
f:TextFile;
count:Integer;
begin
AssignFile(f,counter_path);
Reset(f);
// Считываем значение счетчика
Readln(f,count);
CloseFile(f);
//Инкреминируем
Inc(count);
Rewrite(f);
// Записываем
writeln(f,count);
CloseFile(f);
Result:=IntToStr(count);
end;
Потом идем в файл counter.dat и смотрим. Но проблема: мне надо, чтоб значение счетчика выводилось на странице.
← →
Сергей М. © (2008-03-21 08:23) [7]
> mrfreeman2007 (21.03.08 06:06) [6]
Ты не понял.
Скрипт, использующий твою программулину, не будет работать на Народе хотя бы потому, что хостер в здравом уме не позволит разместить у себя на сервере твой исполняемый файл.
Ты же не поклялся хостеру, что твоя программулина не вредоносная)
← →
Slym © (2008-03-21 10:57) [8]mrfreeman2007 (21.03.08 6:06) [6]
чтоб значение счетчика выводилось на странице
второй вариант аналогичен первому за исключением рисования счетчика... народ.ру не принимает cgi
← →
palva © (2008-03-23 21:34) [9]Народ предоставляет собственный скрипт для ведения счетчика. Нужно зайти в список своих файлов, выбрать файл и нажать "свойства". Откроется окно, где можно выбрать дизайн видимость счетчика и т. д.
← →
piople © (2008-03-24 11:12) [10]Если ты кодишь на делфи это у тебя либо ISAPI, либо CGI. Чтобы работало то или то надо хост с поддержкой IIS. Чтобы был хост с поддержкой IIS тебе надо чтобы он был на винде. А поскольку хост на винде огого какой дорогой, не парься и дуй на *nix бесплатный хостинг, а так у них еще и свои движки для сайтов существуют и со счетчиками и т.д.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2009.08.30;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.005 c