Zoque.Forum
»
Session süreleri
|
| Sunucu Tabanlı Programlama (Server Side) Perl/CGI, PHP, ASP, JSP, .NET ve diğer programlama dilleri hakkındaki sorularınıza, paylaşmak istediklerinize ve örnek kodlara bu alanda yer verebilirsiniz. |
![]() |
|
|
LinkBack | Seçenekler |
|
|
#2 (permalink) |
|
Üyelik Tarihi: 28.03.2003
Yer: İzmir
Yaş: 26
Mesaj: 753
|
Re: Session süreleri
ikisininde cevabı maalesefki hayır
Sadece cookie kendi makinasında expire olur, sunucu taraflı herhangi bir değişiklik olmaz. Saati ancak pencere kapatıldığında bir popup açtırarak öğrenebilirsin buda her browserda işe yaramaz. Kodun çalışması için bişeyin tetiklemesi lazım ama bunu kullanıcıya hissettirmeden JavaScript»layer kullanarak yapabilirsin sanırım. |
|
|
|
|
|
#3 (permalink) |
|
Üyelik Tarihi: 09.12.2000
Yer: istanbul
Yaş: 30
Mesaj: 1,912
|
Re: Session süreleri
ilki ASP için oldukça basit -PHP içinde olması gerektiğini düşündüğüm bir durum-, ikincisi ise JavaScript ile takla atılabilecek bir durum.
![]() ASP için global.asa diye bir dosya mevcut. bunun içerisinde 4 ana fonksiyon vardır. kabaca Kod:
<script language=vbscript runat=server> SUB Application_OnStart END SUB SUB Application_OnEnd END SUB SUB Session_OnStart END SUB SUB Session_OnEnd END SUB </script> Application_OnStart : site yüklenip ilk ziyaretçi geldiğinde çalıştırılan fonksiyondur. application nesnelerine ilk değer vermek için kullanılabilir. bu fonksiyon IIS restart edildiğinde tekrar çalışabilecek şekildedir. Application_OnEnd : IIS stop edildiğinde yada sistem restart edildiğinde çalışacak fonksiyondur. Session_OnStart : her ziyaretçi siteyi ziyaret etmeye başladığında çalışacak olan fonksiyondur. cookie kontrol ve session değişkenlere ilk değer vermek için kullanıma uygundur. Session_OnEnd : kullanıcı sitemizi terkettikten veya session.timeout değeri kadar zaman içerisinde herhangi bir işlem yapmaması durumunda, yada kullanıcı tarafından yapılacak bir işlem sebebiyle session.abandon olması durumunda çalışacak fonksiyondur. konuya dönceke olursak, pencere kapatılmasından itibaren session.timeout süresi kadar sonra session_onend fonksiyonu çağrılacaktır. gerekli işlemler burada yaptırılabilir. hangi saatten bahsettiğini ise anlayamadım ![]() /. yeni bir ASP-PHP savaşı başlatmak istemiyorum ![]()
__________________
"oturduğum mahallenin yolları çamurluydu, boyalı ayakkabı giysem bile, o yollardan geçtikten sonra çamurlanmamaları mümkün değildi. hayatım da böyle." yılmaz güney http://www.sipidik.com |
|
|
|
|
|
#4 (permalink) |
|
Mesaj: n/a
|
Re: Session süreleri
Ben ASP de bunların olduğunu biliyorum. Zaten bunun umuduyla sordum soruyu
, belki bilmediğim bir session fonksiyonu ile onEnd i yakalarım diye. Yani bir şekilde kullanıcının siteden çıkıs saatini almak istiyorum, illa session end olayı değilde, başka bir şekilde sağlansada olur. |
|
|
|
#5 (permalink) |
|
Üyelik Tarihi: 09.12.2000
Yer: istanbul
Yaş: 30
Mesaj: 1,912
|
Re: Session süreleri
ilk aklıma gelen
<body onunload="... yardımı ile yeni bir popup açıp zamanı veritabanına kaydedip kendini kapatmasını sağlamak. ama ne derece güvenili olur, bilemiyorum. PHP uzmanlarına düşer bu sorun ayrıca ![]()
__________________
"oturduğum mahallenin yolları çamurluydu, boyalı ayakkabı giysem bile, o yollardan geçtikten sonra çamurlanmamaları mümkün değildi. hayatım da böyle." yılmaz güney http://www.sipidik.com |
|
|
|
|
|
#6 (permalink) |
|
Üyelik Tarihi: 06.07.2001
Yer: Ankara
Yaş: 33
Mesaj: 679
|
Re: Session süreleri
PHP ile yukardakine benzer şeyleri yapabilirsiniz. ama konu cok ayrintili, bilmedigim noktalar var o yuzden linkleri veriyorum sadece. açıkçası bana sunucu tarafında session id yada session arrayı hep yetti şimdiye kadar.
http://tr.php.net/manual/tr/function...ve-handler.php http://tr.php.net/manual/tr/ref.session.php bunları bir incelemeniz gerekiyor. ilk link kendi session fonk. tanımlamanızı sağlar. kullanıcının tam olarak siteden çıktığı zamanı alamazsın. http stateless bir protokol biliyorsun çalıştır,gönder,unut olayı geçerli. bunun yerine absconderin dedigi gibi bir süre vermen ve sürenin bittiği zamana bakman gerekiyor. eğer tam bulacam diyorsan js ile unload olayında siteden bir sayfayı(dolayısı ile fonksiyonu) çağırıp oturumu sonlardırman gerek. 2. problemin için sayfayı yenilemeden deyince olay kopuyor zaten. bildigim kadarı ile yine js ile yapabilirsin istedigin sürelerde js'nin istedigin sayfaları,olaylari tetiklemesi gibi. yada (*nix turevlerinde) crontab olaylarına girecenki bu konuda benim bir bilgim yada fikrim yok . ayrıca crontab olayına girsen bile bu sistemdeki servisleri kullanmak istedigin zaman olabilecek bir olay ve çoğu host bunları desteklemez.uzun lafın kısası bir kez sayfanı kullanıcıya gönderince yeniden arada bir bağlantı kurmadan takip edecem diyorsun. |
|
|
|
|
|
#7 (permalink) |
|
Üyelik Tarihi: 01.11.2000
Yer: İstanbul
Yaş: 26
Mesaj: 713
|
Re: Session süreleri
Sunucu ile socket bağlantısı kuran bir görünmeyen bir flashı sayfana koyar isen kesin çözüm olur. Ya da yine bir server-side scriptini img olarak çağırıp, js ile kısa sürelerde refresh ederseniz hata payın daha katlanılabilir olur.
__________________
life is better without braces |
|
|
|
|
|
#8 (permalink) |
|
Üyelik Tarihi: 30.09.2001
Yer: istanbul
Yaş: 27
Mesaj: 415
|
Re: Session süreleri
ben aspde de sayfanın kapanış saatini tam alabilecegini düşünmüyorum, yalnız pek bilgim olmadıgından var diyorsanız vardır diyip devam edeyim.
1. soruna JavaScript yardımıyla bir çözüm bulmak zorundasın (sanırım), popup açtırmak zorunda değilsin, onunload da XMLHTTP ile server a bir girdi yapabilirsin. (bunu da demedim.) 2. ikinci sorununda javascriptsiz çözülebilecegini zannetmiyorum. zaman fonksiyonlarıya birlikte xmlhttp burda da işine yarayabilir.
__________________
:::: AnIL'dan bu kadar::::: |
|
|
|
|
|
#9 (permalink) |
|
Mesaj: n/a
|
Re: Session süreleri
Kapanış saatini tam olarak alamayabilirsin belki ama bir iki dakika yaklaşıklı alabilirsin.@stalker'ınkine benzer bişii ama daha basit. Ufacık bi iframe içinde dakikada bir kendini refresh eden bir sayfa koyarsın. Sayfa;
<meta http-equiv="Refresh" content="120; URL=SaveOrUpdateIp.ASP"> <% 'ConnLog bağlatımız yapıldı farzettik Set find_ip = server.CreateObject("Adodb.Recordset") StrSQL = "SELECT * FROM ip_log where ip = '"&request.servervariables("REMOTE_HOST")&"'" find_ip.Open StrSQL, ConnLog, 1, 3 'Ziyaretçi ip si kayıtlıysa tarihi ve saati kaydet 'İllaki Now() değlde Time () felan filan ayarlayabilirsin if not find_ip.eof then find_ip("date") = Now() Else 'İp kayıtlı değilse ekle find_ip.addnew find_ip("ip") = request.servervariables("REMOTE_HOST") find_ip("date") = Now() End if %> Böylece her iki dakikada bir sayfa kendini yeniler ve eğer hala sitedeyse o anki saati, yeni girmişse ip ile birlikte yine aynı saati kaydeder... |
|
Zoque'a hoşgeldiniz!