Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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.006 c
2-1246642332
Dr. Genius
2009-07-03 21:32
2009.08.30
Окно, всплывающее над панелью системного трея


2-1246181883
Новичок
2009-06-28 13:38
2009.08.30
Закладки TabSheet


9-1181664878
@!!ex_
2007-06-12 20:14
2009.08.30
Обратная матрица.


1-1213600067
IntruderLab
2008-06-16 11:07
2009.08.30
Работа с BPL модулями


1-1212768112
San1712
2008-06-06 20:01
2009.08.30
Как передать данные в процедуру ?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский