İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Cookie session sorunu

hakanizm

0
İyinet Üyesi
Katılım
11 Mayıs 2006
Mesajlar
1,952
Reaction score
1
Konum
Nereye
Şimdi bir makalem var.. Bu makale her okunduğunda makinede bir cookie oluşturuyor. Ve sayfa sayacı "1" artırılıyor. Makinesinde cookie oluşmuş kişi tekrar sayfaya girdiğinde sayaç "1" ARTMIYOR. Yani şimdiye kadar herşey normal.

Ama sanırım adamın birisi bir program yazmış.. Program sayesinde otomatik bilgisayardaki cookile siliniyor ve makalenin bulunduğu sayfa otomatik refresh edilerek birkaç saniyede onlarca hit artırımı yapılıyor sanırım...

Ben makalenin gerçek tekil okunma sayısını görmek istiyorum. Biliyorum bu iş için kesin çözüm IP kontrolüdür. Ama ip kontrolü de uzun iş. Siteye giren binlerce kişinin ip adresini tutmak vs.

Dışarıdan veya bir şekilde sayfa hitime müdehale edilmesini nasıl engelleyebilirim acaba ? Bir fikriniz var mı ?
 

sistem

0
İyinet Üyesi
Katılım
8 Temmuz 2005
Mesajlar
264
Reaction score
0
Konum
istanbul
en basitinden flood kontrol yapabilirsin Tabi session ve cookie ile.

cookie ye güvenipte bişeyler yapıyorsan . sayfana google bile girse 10.000 hit alırsın . kaldıki çogu browser de kapalı olan bu özellik le sitene girenler sayfayı her okuduklarında bir artar.

Size bir öneri :
Cookie açık olmayanı siteye sokmayın yada
önce ufak bir cookie gönderin sonrada okuyun. okunmuyorsa ! Sayfa okunma sayısını arttırmayın.
böylece cookie kullanmayan roboot ların(google gibi) okunma sayısını etkilemesine izin vermemiş olursunuz
 

hakanizm

0
İyinet Üyesi
Katılım
11 Mayıs 2006
Mesajlar
1,952
Reaction score
1
Konum
Nereye
Teşekkürler sistem.

Şimdi cookie oluşturdum. Makinedeki aaa = aaa ya hit artırma eğer aaa <> aaa ya hit artır demiştim. Şimdi denedim. Explorer da Cookie yi kapatınca her girişimde hit artıyor. Google siteden hiç çıkmıyor ama sorun botlar değil. Birisi bir köşe yazarımın makalelerini hep refresh yolu ile yükseltiyor. Diğer yazarların 4 katı hiti oluyor.

Şimdi senin dediğin işlemi nasıl yapacağım? Yani makinesinde cookie var mı yok mu nasıl anlıycam?

ben şu şekilde kullanıyorum

Response.Cookies(GelenMakaleID).Expires = DateTime.Now.AddDays(1)

If Request.Cookies(GelenMakaleID)(GelenMakaleID) <> GelenMakaleID

----HİTİ "1" ARTIR---

Response.Cookies(GelenMakaleID).Expires = DateTime.Now.AddDays(1)
Response.Cookies(GelenMakaleID)(GelenMakaleID)= GelenMakaleID

else
end if


Response.Cookies(GelenMakaleId)(GelenMakaleId)= GelenMakaleId
End If
 

disconnect

0
İyinet Üyesi
Onaylı Üye
Katılım
1 Şubat 2005
Mesajlar
3,367
Reaction score
5
if not request.cookies(""& GelenMakaleID &"")("okundu") = "yes" then
hiti arttır
else
end if
response.cookies(""& GelenMakaleID&"")("okundu") = "yes"
response.cookies(""& GelenMakaleID &"").expires = now()+24


Böyle bişey olabilir.
Ama buda cookie silinince işe yaramayacaktır.
Sen en güzeli ip ile yapmalısın.
 

hakanizm

0
İyinet Üyesi
Katılım
11 Mayıs 2006
Mesajlar
1,952
Reaction score
1
Konum
Nereye
Disconnected senin verdiğin şeyle benimki aynı şey sayılır. Sistem in anlattığı durum biraz farklı. Kolay gibi anlatsa da pek mümkün değil gibi.

ip olayına da girmek istemiyorum. Çünkü hiti yüksek olan bir site.. Binlerce kayıt yapılacak falan.. Sonra sitenin yapısına da dokunmak istemiyorum.
 

sistem

0
İyinet Üyesi
Katılım
8 Temmuz 2005
Mesajlar
264
Reaction score
0
Konum
istanbul
@hakanizm ,
Çogu Tarayıcılarda cookie kapalı olsa bile Session açıktır.
bunu göz önüne alarak senin için birşey hazırladım.
Daha gelişmişide yapılabilir üst bilgi kullanılarak Değişik yöntemlerle. fakat bu senin işini görecektir sanırım.
ASP bildiğini kabul ediyorum, bu yüzden kod açıklamalı olsun diye uzun yöntemler kullandım .
istedigin gibi editleyebilirsin kullanım yerine göre.

Kod:
Function Kurabiye_Yermisin()
	' Cookie varmı yokmu
sonuc = Request.Cookies ("ye")("sene")
	IF sunuc <> "ok" THEN
		Response.Write("cookie yook bakıyorum session varmı<br>")
	
		'session varmı !
		If not session("cookie") then
			' yeni oturummuş Cookie gonderelim
			Response.Cookies("ye")("sene")= "ok"
			Session("cookie")= true
			Response.Write("<br>session da yokmuş Yeni gelmiş cookie gönderildi. 2. gelişinde görücez anyayı konyayı")
			Kurabiye_Yermisin = "tatmaklazım"
		Else
		'buraya geldi ise = Session var Cookie yok : bu demek tir 2. denemesi ozaman burda saymasın diye bişey yap
			Response.Write("<br>önceden Session var. Arttırma! Cookie almıyor 2. denemesi sayma artık")
			Kurabiye_Yermisin = "hayır"
		End if
	ELSE
	' Cookie var herşey normal
	Kurabiye_Yermisin = "evet"
	END IF
end function

'Kurabiye_Yermisin = "evet" ' 2. gelisinde kurabiye yedi güvenli. cookilerini gönderebilirsin
'Kurabiye_Yermisin = "hayır" ' sayfayı saydırma sakın :) 2. gelişi ve cookie hala yok
'Kurabiye_Yermisin = "tatmaklazım" ' sayfaya ilk gelişi sayaçı arttır istersen birkere
 

sistem

0
İyinet Üyesi
Katılım
8 Temmuz 2005
Mesajlar
264
Reaction score
0
Konum
istanbul
if Kurabiye_Yermisin = "hayır" then
'Arttırma cookie kabul etmiyor
else
'Arttir ve kendi cookilerini gönder
end if

-- kullanırken tercihen bu şekilde kullana bilirsin
 

hakanizm

0
İyinet Üyesi
Katılım
11 Mayıs 2006
Mesajlar
1,952
Reaction score
1
Konum
Nereye
Sanırım işimi bir nebze görebilir. Kişi explorer ı refresh yapmak yerine kapatıp açması gerekiyor hiti artırması için. Böyle bir hammallığı yapacaksa yapsın.. Ama zannetmiyorum. Bi yere kadar..

Sistem çok teşekkürler bilgi ve kod için.
 

hakanizm

0
İyinet Üyesi
Katılım
11 Mayıs 2006
Mesajlar
1,952
Reaction score
1
Konum
Nereye
sistem verdiğin kodu kullanmadım. Ama verdiğin mantıkla şu şekilde yaptım.

Response.Cookies(GelenMakaleID).Expires = DateTime.Now.AddDays(1)

If Request.Cookies(GelenMakaleID)(GelenMakaleID) <> GelenMakaleID and Session("YazHitimYaz") <> "YazHitimYazdim" then

HİTİ ""1"" ARTIRDIM

Response.Cookies(GelenMakaleID).Expires = DateTime.Now.AddDays(1)
Response.Cookies(GelenMakaleID)(GelenMakaleID)= GelenMakaleID

Session("YazHitimYaz") = "YazHitimYazdim"

else
end if

-------------

Ben explorerdaki session cookilere izin ver kutucuğunu unutmuşum.. Sanırım sen de unuttun.. Orası işaretli değilse her refresh de hit yine artıyor malesef. Sen de çoğu browser session lara izin verir demiştin.. Şimdi karşımızdaki kişi zaten bilerek refresh yapıyor... Bilerek katlıyor diğer yazarların hitlerini. Adam ayarlardan session lara izin verme der geçer.. Bu durumlar için de kod var mı ?:)
 

hakanizm

0
İyinet Üyesi
Katılım
11 Mayıs 2006
Mesajlar
1,952
Reaction score
1
Konum
Nereye
Ne garip şey.. Kod işliyor ama faydası yok..

Dim objCookie As New HttpCookie("BakBakalim","BakdimAbey")
Response.Cookies.Add(objCookie)

Response.Cookies(GelenMakaleID).Expires = DateTime.Now.AddDays(1)

If Request.Cookies(GelenMakaleID)(GelenMakaleID) <> GelenMakaleID and Request.Cookies("BakBakalim").Value = "BakdimAbey" then

HİTİ "1" ARTIR

Response.Cookies(GelenMakaleID).Expires = DateTime.Now.AddDays(1)
Response.Cookies(GelenMakaleID)(GelenMakaleID)= GelenMakaleID

else
end if

EDİT : asp.net in cookieless özelliği ile session oturumlara izin verilmese bile explorerda bilgi saklayabiliyorum. Adres barda da şu şekilde görünüyor link:

www.xxx.com/(S(0olieh55ygzn0g55m0dkmb45))/default.aspx

Aynı sorunu yaşayanlar bu yolla çözebileceklerdir.. Bu adresi kopyalayıp yeni explorerda açtığım zaman bile hit artmıyor.. Baya güvenli..
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst