Главная страница
    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.033 c
2-1246031571
rus
2009-06-26 19:52
2009.08.30
запрос в firebrid


15-1246138614
Германн
2009-06-28 01:36
2009.08.30
Тем, кто успел что-то скачать по ссылкам Коляна


2-1246467765
AlexDan
2009-07-01 21:02
2009.08.30
Преобразование строки..


3-1226507367
DOjD
2008-11-12 19:29
2009.08.30
Работа с ZQuery LOCAL


15-1246329956
vegarulez
2009-06-30 06:45
2009.08.30
[Indy + PHP] Вопрос про idHTTPServer, как организовать PHP?





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