Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.08.30;
Скачать: CL | DM;

Вниз

Счетчик посещений   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
2-1246026729
Vayrus
2009-06-26 18:32
2009.08.30
Проблема с GetKeyDateTime в Win XP


2-1246188107
Michael
2009-06-28 15:21
2009.08.30
Блокирующие сокеты


15-1246111489
Новичок
2009-06-27 18:04
2009.08.30
Помогите разобраться...


15-1246084179
@!!ex
2009-06-27 10:29
2009.08.30
KVM с автоматическим переключением мышки


2-1246608612
NIIL
2009-07-03 12:10
2009.08.30
TRegExp и парсинг HTML