Главная страница
    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.47 MB
Время: 0.004 c
15-1246131261
DillerXX
2009-06-27 23:34
2009.08.30
Вопрос по терверу


2-1246188747
Guest___
2009-06-28 15:32
2009.08.30
Запуск программы в определенное время


2-1246696231
Gray
2009-07-04 12:30
2009.08.30
Ккак узнать номер выделенной строки в DBGrid?


15-1246540232
Гость
2009-07-02 17:10
2009.08.30
Посоветуйте локальный чат для конторы


15-1246195055
Юрий
2009-06-28 17:17
2009.08.30
С днем рождения ! 28 июня 2009 воскресенье





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский