SESSİON

08 Ocak 2010 Yazan admin  
Kategori İndir

SESSİON

HTML ve Javascript ile biraz oynadıysanız, bilirsiniz ki bir sayfadan ötekine değişken değeri aktarmak, imkansıza yakın derecede zordur. Değişkenlerin ömrü, fonksiyonla sınırlıdır. Bir ASP sayfasında herhangi bir değişkeni fonksiyon dışında tanımlamakla ve değer atamakla onu bütün fonksiyonlar için geçerli hale getirebiliriz. Fakat kimi zaman isteriz ki, bir fonksiyonun değeri bütün sayfalarda aynı olsun; ziyaretçinin sayfa değiştirmesi ile değişkenin değeri değişmesin. Bunu ASP’de yapmak çok kolaydır. ASP’de bu zorluğu yenebilmek için değişkenlerimizi Session nesnesi için oluşturabiliriz; ve bu değer ziyaretçinin oturumu boyunca devam eder; bütün ASP sayfalarındaki bütün Fonksiyonlar tarafından bilinebilir. Örneğin:
Session (“Tupras”) = 44500

Session Türkçe oturum demektir. ASP’nin özelliği artık bildiğinizi varsayıyorum. ASP Sunucusu Server’a bağlanan, yani bir talepte (Request’de( bulunan her bir ziyaretçiye ayrı bir oturum ayrı bir session açar. Tabii Cookie denetimi yoksa… Ve her Session’a bir ID verir…

Session’ın en büyük özelliği dinamik olmasıdır. Yani ziyaretçinin sitede bulunduğu her saniye Session nesnesi tarafından takibe alınır… Bu sayede eğer gerçekten profesyonel planlamalar yaparken Session nesnesinin metotlarından bir çok şekilde faydalanacağız…

Session nesnemizin en büyük özelliği tanımladığımız değişkenleri diğer geçiş sayfalarında da kullanabilmemiz için tutmasıdır… Hemen bir örnek yaparak Session nesnemize giriş yapalım… Önce Bir Form Hazırlayalım ve bu formu Session.asp diye kaydedelim.


Lütfen Adınızı Giriniz:



Soyadınız:




Aşağıdaki Kodları da SessionDevam.asp adıyla kaydedelim.

<%@ Language=VBScript Codepage="1254"%>

<%
Session.Timeout=15
'Oturum süresi, eğer sayfaya hiç bir müdahalede bulunulmazsa 15 'dakikadır.
Session ("Isim")=Request.Form("Isim")
Session ("Soyad")=Request.Form("Soyad")
'Bir önceki sayfadan
'taşıdığımız değeri Request metoduyla Oturumda tutuyoruz.

Dim Icerik
Dim IcerikSonu
%>

<%
IcerikSonu=Session.Contents.Count
For Icerik=1 To IcerikSonu 'Session nesnemizde tuttuğumuz değerleri
'Session.Contents yardımıyla saydırıyoruz.

Response.Write (Session.Contents(Icerik) &"
“)
‘Sonucu sayfaya Response ederek yazdırıyoruz. Ve bir
yani
‘Break Line koyarak (Alt satıra Geçmemizi sağlar.) Next yordamıyla
’sıradaki Kayıtları ekrana yazdırmasını sağlıyoruz…
Next
%>

Bir ASP sayfasını oturum açmadan yapılandırmak için alttaki kodu ekleyebilirsiniz.. Değerini True yaparak başka bir sayfada oturumu başlatabilirsiniz…
<%@ EnableSessionState=False %>

Session Timeout:

Kullanıcı bir uygulamadaki bir sayfayı belirli bir süre istemez ya da yenilemezse, oturum otomatik olarak sona erer. Bu süre için varsayılan değer 20 dakikadır. Bir uygulama için varsayılan değeri, Internet Information Service çalışma ekindeki Uygulama Seçenekleri özellik sayfasında değiştirebilirsiniz.

<% Session.Timeout = 16 %>

Session Abandon:

Abandon yöntemi, bir Session nesnesinde saklı olan tüm nesneleri yok eder ve kaynaklarını bırakır.

Abandon yöntemini çağırmak istemiyorsanız, sunucu bu nesneleri oturumun süresi bittiğinde yok eder.

Kullanımı:

Session.Abandon

Abandon yöntemi çağrıldığında, geçerli Session nesnesi silinme için havuza alınır, ancak geçerli sayfadaki komut dosyası komutlarının tümü işlenmeden tam olarak silinmez.

Böylece, sonraki Web sayfaları dışında, yalnızca Abandon yönteminin çağrıldığı sayfadaki Session nesnesinde saklı olan değişkenlere erişebilirsiniz.

Örneğin, aşağıdaki komut dosyasında üçüncü satır Oğuz değerini yazar. Bu, sunucu komut dosyasının işlenmesini bitirene kadar Session nesnesinin yok edilmemesinden dolayıdır.

<%
Session.Abandon
Session("Isim") = "Oğuz"
Reponse.Write(Session("Isim"))
%>

Sonraki Web sayfalarında Isim değişkenine erişirseniz, değerinin boş olduğunu göreceksiniz.
Bunun nedeni, Isim değişkeninin, yukarıdaki işlemi bitirdiğinde önceki Session.Abandon nesnesiyle yok edilmesidir.

Server, bir oturumu kapattıktan sonra başka bir Web sayfasını açtığınızda, yeni bir Session nesnesi oluşturur. Değişkenleri ve nesneleri, bu yeni Session nesnesinde saklayabilirsiniz.
Aşağıdaki örnek, sunucu geçerli sayfayı çalıştırmayı bitirdiğinde oturumun son durumunu verir.

<% Session.Abandon %>

APPLİCATION

08 Ocak 2010 Yazan admin  
Kategori İndir

APPLİCATION

Belirtilen uygulamadaki tanımlı bütün kullanıcıların bilgiyi paylaşmaları için Application nesnesini kullanabiliriz. Bir ASP-uzantılı uygulama, sanal dizin ve onların altdizinlerindeki tüm .asp dosyaları gibi tanımlanır.

Application nesnesi birden fazla kullanıcı tarafından paylaşılabildiği için, kullanıcıların bir özelliği aynı anda değiştirme girişimlerini önlemek için Lock ve Unlock yöntemleri kullanılır. Bir örnek yaparak çalışmasını inceleyelim. Bu örneğimizle kullanışlı sayfa sayaçları yapabilirsiniz. Örneği inceleyince daha iyi anlayacağınıza eminim…

Aşağıdaki örneğimizi ne olur manuel yazalım ve Sayac.asp adıyla kaydedelim. İsterseniz kopyala-Yapıştır yapabilirsiniz ama elle yazmanız sizin açınızdan çok faydalı olacaktır.

Düşünsenize belki hata yapacaksınız ve bu hatayı aramak zorunda kalacaksınız ve böylece bir kaç kere tekrar etmiş olacaksınız…

<%
Response.Expires = 0
'Expires sayesinde sayfanın içeriğinin bilgilerinin cache bellekte saklanmasını engelleriz.
%>

<%
If (Application("Sayac") = "") Then
'Bu ziyaretçi için Application başlatılmadıysa başlatılsın.
Application("Sayac") = 0
End If

Application.Lock
'Application'ı Kilitliyoruz. Ve kullanıcı giriş yaptıktan sonra 1 değer
'arttırıyoruz.

Application("Sayac") = Application("Sayac") + 1
Application.UnLock
'Ve tekrar serbest bırakıyoruz. Diğer kullanıcılarla bu Application
'kullanılabilsin diye...
%>
Bu Sayfaya <%= Application("Sayac") %> Kere Giriş Yapıldı.

Yenilemek İçin Tıklayın.

Bu kodu yazıp çalıştırdığımız zaman, sayfayı her yenilediğimizde sayaç bir değeri kadar arttırılacaktır. Eğer Sayaç+1 yerine 5 yazarsanız sayacınız 5′er 5′er artacaktır… İsterseniz başka bir örnekle bu nesnemize ait bilgilerimizi pekiştirelim…

Diyelim ki bir chat scripti yazıyorsunuz ya da bir Active Users Scripti yazıyorsunuz, o zaman da bu nesnemizden faydalanmamız gerekecektir. Şimdi hemen diğer bir örneğe geçelim. İlk Olarak bir Chat’e Giriş sayfası yapalım. Tabii bu sanal bir chat. Yani sadece sayıyı kontrol etmeyi yazacağız… NotePad’i açalım ve aşağıdaki kodları chat.asp diye kaydedelim…

<%@ Language=VBScript Codepage="1254"%>

Chat Odamıza Gitmek İçin Tıklayın
<%
Response.Write "Şu anda Chat Odamızda "&application("chat")&" kullanıcı bulunmaktadır..."
%>

Aşağıda göreceğiniz scripti de ChateKatil.asp diye kaydedelim. Ve bir önceki sayfada yazdığımız scriptten bu sayfaya link verdiğimizi hatırlayarak, o sayfada

<%@ Language=VBScript Codepage="1254"%>
Chat Odamızdan ayrılmak İçin
Tıklayın<%
Application.Lock
'Hatırladığınız gibi, önce Application'ımızı kilitliyoruz ve sayacı bir
'arttırdıktan sonra kilidini kaldırıyoruz...
Application("chat")=Application("chat")+1
'Sayacı bir arttırıyoruz.
Application.Unlock
'Ve tekrar Application'ımızı serbest bırakıyoruz ki, diğer kullanıcılar
'giriş yaptığı zaman kilitli kalmasın....
Response.Write "Şu anda Chat Odamızda "&application("chat")&" Kişi Bulunmaktadır..."
'Daha sonra Application'ımızın tuttuğu sayısal değeri, Response
'metoduyla sayfaya basıyoruz. Ve böylece kaç kişinin
'Application'ımızı açtığını görebiliyoruz. Bir ilerki sayfada ise
'Ziyaretçimizin Application'ımızı terkettiği zaman diğer kullanıcıların
'sayacı doğru görüntüleyebilmesi için 1 değer azaltmayı göreceğiz...
%>

Aşağıda göreceğiniz scripti de Ayril.asp diye kaydedelim.

<%@ Language=VBScript Codepage="1254"%>
Chat Odamıza Tekrar Bağlanmak İçin Tıklayın
<%
Application.Lock
'Hatırladığınız gibi, önce Application'ımızı kilitliyoruz ve sayacı bir
'arttırdıktan sonra kilidini kaldırıyoruz...
Application("chat")=Application("chat") -1
'Sayacı bir azaltıyoruz.

If Application ("chat")<0 then
Application("chat")=0
'Eğer Application'ımızın değeri 0'dan küçükse Application'ımızı 'durduruyoruz.
End If
Application.Unlock
'Değilse kilidi kaldırıyoruz.
Response.Write "Şu anda Chat Odamızda "&application("chat")&" Kişi Kalmıştır..."
'Ve kalan sayıyı sayfaya Response ediyoruz...
%>

ÇEREZLER

08 Ocak 2010 Yazan admin  
Kategori İndir

ÇEREZLER

Siteye giriyordunuz. Adam size “sayfayı kişiselleştir” diye bir link koymuş. Tıklayıp içinizi döküyorsunuz. Siteyi bir sonraki ziyaretinizde site size adınıza hitaben “merhaba koçum, seni tanıyorum, bana kendini anlatma, çok iyi bilirim ben seni … ismin şu, sevdiğin kalem markası Rotring, başın ağrıyınca önceden Novalgin alırdın şimdi modaya uyup Aspirin Forte.. monitörün philips marka ve sen simit şeklindeki power düğmesine gıcık oluyorsun … haa bir de bu siteyi 2. ziyaretin … nerden bildim ama… hahaha” türünden şaklabanlıklar yapıyor. Peki bunu nasıl beceriyor? Hepiniz çerezlerle olduğunu biliyorsunuz.

ASP ile istemci bilgisayarlara çerez yollamak çok basit bir iştir. Gerçekten çok basit. ASP nin yerleşik delikanlılarından RESPONSE nin bu iş için özel bir metodu var: COOKIES . İstemciye çerez yollamak için bu metodla birlikte anahtar değerler (bir veya iki) gönderiyoruz. (bir ayrıntı: ASP de iki anahtar sadece cookies kolleksiyonunda kullanılıyor). Şimdi örnek kodu inceleyelim:

Response.cookies(“kabuk”)= “Evet, kabuk”
Response.cookies(“kabuklarim”)(“adi”) = “Mucit”
Response.cookies(“kabuklarim”)(“sevdigi_icecek”) = “Kızılcahamam Maden Suyu ve Sodası”
Response.cookies(“kabuklarim”)(“medeni_durumu”) = “Bekar!”
Response.Cookies(“kabuklarim”).Expires = Now() + 90
Peki çerezi yolladık tarayıcıya. Yani kabukları. Peki bu kabukları görmek istediğimiz zaman ne yapmamız gerekiyor. İşte o zaman ASP nin diğer delikanlı nesnesi REQUEST talip oluyor göreve. Çünkü bir şeyleri talep etmek onu görevi. Biz de ona bir emir vereceğiz. “Çerezler arasından şu anahtardaki değeri bana bir getiriver bakayım” denildiği anda size o değeri getirecektir. Bu metodu kullanmak, response ile çerez yollamaya çok benzer. Ancak bir fark vardır. Response de ilgili anahtara atama yapılır, burada ise request zaten bize bir değer getirir, biz de bu değeri işimize geldiği gibi kullanırız. Aşağıda REQUEST ile çerezden bilgi almayı görüyorsunuz.
Adim = Request.cookies(“kabuklarim”)(“adi”)
ne_icerim = Request.cookies(“kabuklarim”)(“sevdigi_icecek”)
medeni_halim = Request.cookies(“kabuklarim”)(“medeni_durumu”)
Response.Write Adim & ” / ” & ne_icerim & ” / ” & medeni_halim
‘ sayfadaki çıktı: Mucit / Kızılcahamam Maden Suyu ve Sodası / Bekar!
İşte bu örneklerde çerezle bilgi yollama ve de çerezden bilgi alma tekniğinin ne kadar kolay olduğunu görüyorsunuz.






<%
ziyaret = Request.cookies("sitem")("ziyaret")
If ziyaret = "" Or Not Isnumeric(ziyaret) Then
Response.cookies("sitem")("ziyaret") = "0"
Response.Cookies("kabuklarim").Expires = Now() + 365
Response.Write "Siteye ilk defa geldiniz. Saolun. Bir daha gelin haaa.."
Else
ziyaret = ziyaret + 1
Response.cookies("sitem")("ziyaret") = ziyaret
Response.Cookies("kabuklarim").Expires = Now() + 365
Response.Write "Siteye " & ziyaret & ". gelişiniz, aferin hep gelin haa.. "
End If
%>

Sonraki yazılar »


Kapat !