Web sayacı ve Aktif ziyaretçi sayısı ?

Delphi .net ve .net ile ilgili konuları buraya yazabilirsiniz.
Cevapla
Kullanıcı avatarı
dameon
Üye
Mesajlar: 37
Kayıt: 04 Kas 2005 07:54

Web sayacı ve Aktif ziyaretçi sayısı ?

Mesaj gönderen dameon »

Şöyle usta programcı arkadaşlar Delphi.Net'de nasıl Web sayacı ve sitedeki aktif ziyaretçi sayısını gösterebileceğimizi anlatsalar , harika olurdu :)
diğer dillerde anlatmışlar ama işlem çok karışık geldi bana , tahminim global.asax dosyası kullanılarak yapılıyor , tabii ki bunun unit dosyası global.pas ve bu dosyanın içinde session_start , session_end, application_start , application_end procedure'leri var , buraya kadar anladım ama buradan ötesi ne tip kodlar yazmamız gerektiği hakkında kaynak yok.

Saygılarımla....
zekeriyya_99
Üye
Mesajlar: 5
Kayıt: 23 Nis 2005 11:06
Konum: SAMSUN
İletişim:

Global Asax

Mesaj gönderen zekeriyya_99 »

procedure TGlobal.Application_Start(sender: System.Object; e: EventArgs);
begin
Application['ToplamKullaniciSayisi'] := '0';
end;

procedure TGlobal.Session_Start(sender: System.Object; e: EventArgs);
begin
Application.Lock;
try
if Application['KullaniciSayisi'] = nil then
Application['KullaniciSayisi'] := '1'
else
Application['KullaniciSayisi'] := Convert.ToString(Convert.ToInt32(Application['KullaniciSayisi']) + 1);

if Application['ToplamKullaniciSayisi'] <> nil then
Application['ToplamKullaniciSayisi'] := Convert.ToString(Convert.ToInt32(Application['ToplamKullaniciSayisi']) + 1);

finally
Application.UnLock;
end;
end;


procedure TGlobal.Session_End(sender: System.Object; e: EventArgs);
begin
Application.Lock;
try
if Application['KullaniciSayisi'] <> nil then
Application['KullaniciSayisi'] := Convert.ToString(Convert.ToInt32(Application['KullaniciSayisi']) - 1)
else
Application['KullaniciSayisi'] := '0';

finally
Application.UnLock;
end;
end;


procedure TWebForm1.Page_Load(sender: System.Object; e: System.EventArgs);
begin
if Application['KullaniciSayisi'] <> nil then
Label1.Text := 'Aktif ziyaretçi sayısı : '+Application['KullaniciSayisi'].ToString;
if Application['ToplamKullaniciSayisi'] <> nil then
Label2.Text := 'Toplam ziyaretçi sayısı : '+Application['ToplamKullaniciSayisi'].ToString;
end;
Kullanıcı avatarı
dameon
Üye
Mesajlar: 37
Kayıt: 04 Kas 2005 07:54

Mesaj gönderen dameon »

Çok teşekkür ederim , Zekeriya arkadaşım. :)
Kullanıcı avatarı
dameon
Üye
Mesajlar: 37
Kayıt: 04 Kas 2005 07:54

Mesaj gönderen dameon »

Arkadaşım bu kodları sitemde denedim fakat sanki bir eksiklik var gibi geldi bana.Ya ziyaretçi sayısını 51 olarak gösteriyor ya da 1 olarak gösteriyor , başka birisinin sitede benden önce girdiğini bildiğim halde benim browser'imda 2 rakamı gelmiyor , yine 1 rakamı geliyor.
zekeriyya_99
Üye
Mesajlar: 5
Kayıt: 23 Nis 2005 11:06
Konum: SAMSUN
İletişim:

atama ifadesi düzeltmesi

Mesaj gönderen zekeriyya_99 »

Application['KullaniciSayisi'] := '1'
üsteki atama ifadesi yanlış bu

tüm atama ifadelerini aşşağıdaki örnekte ki gibi düzeltirsen doğru çalışır

Application['KullaniciSayisi'] := Convert.ToString(1)

olayın doğruluğunu kontrol etmek istersen OnLoad olayına aşşağıdaki kodları yaz ve sayfayı 1 kaç kez yenile ziyaret sayısının artığını farkedeceksin
procedure TWebForm1.Page_Load(sender: System.Object; e: System.EventArgs);
begin
Application.Lock;
try
if Application['KullaniciSayisi'] = nil then
Application['KullaniciSayisi'] := Convert.toString(1)
else
Application['KullaniciSayisi'] := Convert.ToString(Convert.ToInt32(Application['KullaniciSayisi']) + 1);


finally
Application.UnLock;
end;
Cevapla