PHP’de Oturumlar (Sessions)

Mart 23, 2008 tarihinde PHP kategorisine eklendi | Yorum yok

Herhangi bir uygulamayı açtınız, bu uygulama içinde bazı işlemler yaptınız ve ardından kapattınız. İşte bu olaylar kısaca oturum (session) olarak tanımlanabilir.

Sisteminizde kayıtlı kimlik bilgileriniz sayesinde bilgisayarınız sizi tanır ve açıp kapatığınız oturumları takip edebilir. Ancak internet ortamında sunucular sizi tanımaz ve bu olayları takip edemez. Çünkü HTTP adresleri sizin durmunuzu takip edemez.

Yukarıdaki durumu tersine çevirmek için PHP (ve diğer birçok dil) oturum tanımlama bilgilerini sunucuda depolamak için bazı fonksiyonlar veya değişkenler kullanırlar. Bu bilgiler son kullanıcı bilgileridir ve yenisi ile sürekli temizlenirler. Diğer bir yöntemde bu bilgileri bir veritabanında depolamaktır, böylece kalıcı bilgiler elde edilerek veriler sonraki oturumlara aktarılabilir.

Açılan bir oturumla kullanıcıya atanan bir kimlik, oturum sona erdirilene kadar veya dopalamak için kullanılabilir. Bu tür bir kimliğe “unique id” kısaca UID adı verilir. UID kaydı bir çereze veya uygulama adresine aktarılabilir.

PHP bir oturumu başlatmak için session_start() fonksiyonunu kullanır ve bu fonksiyon <html> etiketinden önce yazılır.

<?php session_start(); ?>

<html>
<body>

</body>
</html>

Oturumun açılmasının ardından elde edilecek bilgileri depolamak veya almak için PHP, $_SESSION değişkenini kullanır.

<?php
session_start();
// depolanacak oturum bilgisi
$_SESSION['sayfagosterim']=1;
?>

<html>
<body>

<?php
//oturum bilgisine erişim
echo “Sayfa gösterimi=”. $_SESSION['sayfagosterim'];
?>

</body>
</html>

Yukarıdaki örneğin çıktısı; “Sayfa gösterimi=1″ şeklinde olacaktır. Yukarıdaki örneği biraz daha genişletip sayfa gösterimini her oturumda artıralım. “sayfagoster” değişkenini isset() fonksiyonu ile denetleyelim ve başlatılmışsa bir artıralım.

<?php

session_start();

if(isset($_SESSION['sayfagoster']))
$_SESSION['sayfagoster']=$_SESSION['sayfagoster']+1;

else
$_SESSION['sayfagoster']=1;
echo “Sayfa gösterimi=”. $_SESSION['sayfagoster'];
?>

Şayet bazı oturum bilgilerini silmek istersek, unset() veya session_destroy() fonksiyonlarını kullanabiliriz. Bu iki fonksiyondan unset() ile belirlenmiş bir değişkeni silerken, session_destroy() fonksiyonu ile oturum bilgilerini tamamen kaldırabilirz. session_destroy uygulandığında, depolanmış tüm oturum bilgileri silinecektir.

<?php
unset($_SESSION['sayfagoster']);
?>

<?php
session_destroy();
?>

Bir oturumu tanımlamada ve depolamada kullanılan değişkenlerle kullanıcılar için site içinde daha kolay erşim ve dolaşım imkanı sağlanabilir. Örnek olarak, üye giriş bilgileri depolanabilir, seçilen ürünler hatırlatılabilir, son yapılan işlemler gösterilebilir ve bazı istatistikler için bilgiler depolanabilir.

Bu yazının Popülerliği: 20% [?]

Etiketler: , , , ,

Yorumlar

Yorum Yapın




Aşagıdaki iki kelimeyi boş olan kutuya yazınız. Bu uygulama zararlı yorumları engellemek için. Anlayışınıza teşekkur ederim.