Giriş
Web uygulamalarını geliştirirken web geliştiriciler bazen URL'den aktarılmayan ama uygulamada mevcut olan değişken bilgilerine erişim sağlamak ister. Örneğin bir takvim web uygulaması ziyaretçilere saat dilimi tercihlerini sorabilir. Ardından uygulama sayfalarında bu saat dilimi için tarih ve saati görüntüleyebilir. Oturum değişkenleri bu işlevi sağlayabilir.
Oturum değişkenlerinin web geliştiricinin deposunda güçlü bir araç olmasına karşın Dreamweaver bu araçların çalışması için gereken tüm kodu otomatik olarak üretmez. Bu belgede sadece oturum değişkenleri açıklanmakta ve Dreamweaver tarafından desteklenen farklı sunucu modellerinde kullanım adımları sağlanmaktadır.
Önkoşullar
Bu belgenin anlaşılması ve kullanılması, geliştiricinin ASP veya ColdFusion gibi bir sunucu modeli ile çalışıyor olmasını gerektirir. Geliştirici, aşağıdaki konseptlerin çalışma bilgisine ihtiyaç duyar. Ayrıca dinamik geliştirmeyi (Dreamweaver MX veya Dreamweaver MX 2004) destekleyen bir Dreamweaver sürümü kullanmaları gerekir. Daha fazla bilgi için Dreamweaver'ı Kullanma kılavuzunun ilgili bölümlerine veya Yardım sistemine bakın.
- Dinamik Siteler Oluşturmaya Hazırlanma
- Sayfaları Dinamik Yapma
Oturum değişkenlerinin çalışma biçimi
Oturum değişkenleri, bir ziyaretçinin oturumu süresince uygulamaya erişilebilir olan bir değişken belirleyerek geliştiricilerin ziyaretçi bilgilerini saklamasına izin verir.
Bazı değişkenler aşağıdaki özelliklere sahiptir:
- Aksi belirtilmedikçe oturum değişkenleri bir ziyaretçinin siteden ayrılmasından 20 dakika sonra sona erer.
- Site ziyaretçisi tarafından sitede 20 dakika herhangi bir işlem yapılmadığında oturum değişkenleri sona erer. Ziyaretçinin web tarayıcısından çıkması durumunda da sona erer.
- Oturum değişkenlerinin çalışması için, ziyaretçi tarayıcısının tanımlama bilgilerini kabul edecek şekilde ayarlanması gerekir.
- Sitenin tüm sayfalarının web sunucusundaki tek bir dizinde bulunması gerekir.
- Oturum değişkenlerinde kaydedilen bilgiler, site ziyaretçisine özgüdür. Farklı site ziyaretçileri birbirinin oturum değişkeni bilgilerine erişemez.
Tipik olarak geliştiriciler bir ziyaretçinin web uygulamasında bir form doldurmasını sağlayarak oturum değişkenleri için veri alır. Oturum değişkeni, form alanı değerine ayarlanır. Bu Teknik Nottaki örneklerde bir oturum değişkeni değerini ayarlamak amacıyla bir form öğesinin bilgileri kullanılmaktadır.
ASP.NET hariç tüm sunucu modelleri için Dreamweaver, bir oturum değişkeni oluşturulduktan sonra oturum değişkenlerini sayfaya yazmak için menü yönlendirmeli bir özelliğe sahiptir. Ancak Dreamweaver, bir oturum değişkenine değer atamak için menü yönlendirmeli bir özellik sağlamaz (oturum değişkeni örneği oluşturma olarak da bilinir). Kaynak kodda bir oturum değişkenine manuel olarak değer atanması gerekir.
ASP, ColdFusion, JSP veya PHP uygulamalarında bir oturum değişkeni oluşturma
Not: ASP.NET örneği diğer sunucu modellerinden önemli ölçüde farklıdır çünkü ASP.NET genellikle klasik HTML formları yerine web formlarını kullanır. ASP.NET sunucu modelini kullanıyorsanız, bu belgenin sonundaki ASP.NET örneğine bakın.
-
Bir ASP, ColdFusion, JSP veya PHP web sitesi tanımlayın.
-
Sitede üç dinamik sayfa oluşturun. İlk sayfa, ikinci sayfaya bilgi gönderen bir HTML formu içerir (bir sonraki adımda açıklanmaktadır). İkinci sayfada üçüncü sayfaya işaret eden bir köprü oluşturun.
Not: Bu örneğin üç sayfa kullanmasının nedeni, ikinci, üçüncü ve sonraki sayfa tarafından oturum değişkeninin kullanılabileceğini kanıtlamaktır. Oturum değişkenlerine bir alternatif olan istek değişkenleri bir sayfadan ikinci bir sayfaya taşınabilir. Ancak üçüncü veya sonraki bir sayfa tarafından kullanılamaz.
-
İlk sayfada, bir metin alanı form öğesi içeren bir form ve gönder düğmesi oluşturun. Form kontrolü özelliklerinin aşağıdaki şekilde ayarlandığından emin olun:
- Metin alanını seçin ve Özellik denetleyiciyi kullanarak "txtFirstName" olrak adlandırın.
- Form etiketini seçin (form kontrollerini çevreleyen kırmızı kesikli çizgiye veya etiket seçicide form etiketine tıklayın). Özellik denetleyicisinde form işlemi olarak ikinci sayfayı ayarlayın. Form yöntemi olarak göndermeyi belirtin. "Al" yöntemi de oturum değişkenleriyle sıkça kullanılır ancak bu örnekte kolaylık amacıyla gönder yöntemi kullanılmaktadır.
-
İkinci sayfada Kod görünümünü başlatın (Görünüm > Kod). <html> etiketinin üstündeki boşluğa aşağıdaki listeden sunucu modelinizin kodunu yazın:
Bu kod, birinci sayfada oluşturulan “txtFirstName” adlı form öğesinden içeriği çeker. Form öğesinin içeriğine eşit olarak ayarlanan "sessFirstName" adında bir oturum değişkeni oluşturur. Başka bir ifadeyle bu kod, kullanıcının form sayfasında girdiği bilgileri tutan bir oturum değişkeni oluşturur.- ASP (VBScript) (kodun satır bölünmeden tek bir satırda yer aldığından emin olun)
<%session("sessFirstName")=Request.Form("txtFirstName")%> - ASP (JavaScript) (kodun satır bölünmeden tek bir satırda yer aldığından emin olun)
<%Session("sessFirstName")=String(Request.Form("txtFirstName"))%> - ColdFusion
<cfset Session.sessFirstName = #Form.txtFirstName#>
Oturum değişkenlerini kullanmak için ColdFusion, sitede zaten yoksa site kökünde bir Application.cfm dosyasının oluşturulmasını da gerektirir. Application.cfm dosyası aşağıdaki kodu içermelidir:
<CFAPPLICATION NAME="Name" SESSIONMANAGEMENT="Yes">
Not: UNIX sistemlerde dosya adları büyük küçük harf duyarlıdır. Application.cfm dosya adının büyük A ile yazıldığından emin olun. Diğer Application.cfm ayarları için ColdFusion belgelerine bakın. - JSP (kodun satır bölünmeden tek bir satırda yer aldığından emin olun)
<%session.setAttribute("sessFirstName", request.getParameter("txtFirstName"));%>
Aşağıdaki kod da çalışır ancak en son Java özelliklerinde kısaltılmıştır:
<%session.putValue("sessFirstName", request.getParameter("txtFirstName"));%> - PHP
<?php session_start(); session_register("sessFirstName"); $sessFirstName = $HTTP_POST_VARS['txtFirstName']; ?>
Windows'ta tarayıcıda bir PHP hatası oluşursa, PHP yüklemesi oturum verileri için geçerli kaydetme dizinine sahip olmayabilir. Bu parametre, PHP.ini dosyasında ve httpd.conf dosyasında session.save_path olarak adlandırılır. Dizin konumu isteğe bağlıdır ancak aşağıdaki ayar çalışmalıdır:
session.save_path = c:\php\sessiondata
PHP yapılandırmanıza bağlı olarak, bazen oturumla ilgili tüm sayfalarda oturum yönetiminin manuel olarak etkinleştirilmesi gerekir. Aşağıdaki kod satırını her bir sayfanın başına ekleyin:
<?php session_start();?>
Her bir sayfada session_start() işlevini çağırmak yerine, php.ini dosyasında session.auto_start seçeneğini açık yaparak PHP'nin oturumları otomatik olarak başlatmasını sağlayabilirsiniz.
- ASP (VBScript) (kodun satır bölünmeden tek bir satırda yer aldığından emin olun)
-
Bu sayfada Pencere > Veri Bağlantıları'nı seçerek Veri Bağlantıları panelini açın. Artı (+) menüsünden Oturum Değişkeni'ni seçin. Oturum Değişkeni iletişim kutusunda, ad alanına "sessFirstName" (tırnak işaretleri olmadan) yazın ve Tamam'a tıklayın.
-
Veri Bağlantıları panelinde görülen oturum değişkeni simgesini genişletin. "sessFirstName" simgesini Belge penceresine sürükleyin. Oturum değişkeni içeriği bu sayfaya yazılır.
-
Üçüncü sayfayı açın ve 4. ve 5. adımları tekrarlayın. Yine ikinci sayfada üçüncü sayfaya bağlantı olduğundan emin olun.
-
Üç sayfayı da kaydedin, yayınlayın ve test edin. Beklenilen sonuçları elde etmezseniz, form öğesi, oturum değişkeni ve istek değişkeni büyük küçük harflerini ve yazımını kontrol edin. Oturum simgesi şimdi bu sitedeki her bir sayfa için Veri Bağlantıları panelinde görünür.
ASP.NET uygulamasında bir oturum değişkeni oluşturma
-
Bir ASP.NET web sitesi tanımlayın.
-
Sitede iki sayfa oluşturun. İlk sayfa verileri tekrar kendine gönderip ikinci sayfaya yönlendiren bir ASP.NET Web Formu içerir.
Not: Bu örneğin iki sayfa kullanmasının nedeni, ikinci, üçüncü ve sonraki sayfalar tarafından oturum değişkeninin kullanılabileceğini kanıtlamaktır. Oturum değişkenlerine bir alternatif olan istek değişkenleri bir sayfa ASP.NET Web Formundan ikinci bir sayfaya taşınamaz.
-
İlk sayfa, bir <asp:textbox> sunucu kontrolü ve bir <asp:button> sunucu kontrolü içeren bir ASP.NET Web Formuna sahip olmalıdır. Metin kutusu kontrolünün "id" özniteliğini "txtFirstName" olarak ayarlayın. İlk sayfa için tam kod aşağıda sağlanmıştır. ASP.NET siteniz için hangi dili seçtiğinize bağlı olarak C# ve VB'yi seçin:
Bu kod, içeriği "txtFirstName" adında bir <asp:textbox> sunucu kontrolünden çeker. Sunucu kontrolünün içeriğine eşit olarak ayarlanan "sessFirstName" adında bir oturum değişkeni oluşturur. Başka bir ifadeyle bu kod, kullanıcının form sayfasında girdiği bilgileri tutan bir oturum değişkeni oluşturur.
- ASP.NET (VB) - 1. Sayfa <%@ Page Language="vb"%><script runat="server"> Sub Button1_Click(ByVal s As Object, ByVal e As EventArgs) Session("sessFirstName") = Request("txtFirstName") Response.Redirect("session2.aspx") End Sub</script><html><head><title>Oturum 1. Sayfası</title></head><body> ASP.NET VB oturum değişkeni ve web formu örneği - 1. sayfa <form id="Form1" method="post" runat="server"><p>first name:<asp:TextBox id="txtFirstName" runat="server" /></p><p><asp:Button id="Button1" runat="server" Text="Submit" onClick="Button1_Click" /></p></form></body></html>
- ASP.NET (C#) - 1. Sayfa <%@ Page Language="C#" %><script runat="server"> void Button1_Click(object sender, EventArgs e) { Session["sessFirstName"] = Request["txtFirstName"]; Response.Redirect("session2.aspx"); }</script><html><head><title>Oturum 1. Sayfası</title></head><body> ASP.NET C# oturum değişkeni ve web formu örneği - 1. sayfa<form id="Form1" method="post" runat="server"><p>first name:<asp:TextBox id="txtFirstName" runat="server" /></p><p><asp:Button id="Button1" runat="server" Text="Submit" onClick="Button1_Click" /></p></form></body></html>
-
İkinci sayfada Görünüm > Kod'u seçerek Kod görünümüne erişin ve oturum değişkeni içeriğini sayfaya yazmak için aşağıdaki kodu girin. Yine ASP.NET siteniz için hangi dili seçtiğinize bağlı olarak C# ve VB'yi seçin:
- ASP.NET (VB) - 2. Sayfa <%@ Page Language="vb" %><html><head><title>Oturum 2. Sayfası</title></head><body><p>ASP.NET VB oturum değişkeni ve web formu örneği - 2. sayfa</p><p>first name: <%= session("sessFirstName") %></p></body></html>
- ASP.NET (C#) - 2. Sayfa <%@ Page Language="C#" %><html><head><title>Oturum 2. Sayfası</title></head><body><p>ASP.NET C# oturum değişkeni ve web formu örneği - 2. sayfa</p><p>first name: <%=Session["sessFirstName"]%></p></body></html>
-
Her iki sayfayı kaydedin, yayınlayın ve test edin. Beklenilen sonuçları elde etmezseniz, sunucu değişkenleri, oturum değişkeni ve istek değişkeni büyük küçük harflerini ve yazımını kontrol edin.
Ek bilgi
Oturum değişkenleriyle ilgili daha fazla ayrıntı için aşağıdaki makalelere bakın: