PHP’de Oturumlar (Sessions)

23 Mar.

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: , , , ,

Benzer Yazılar

Yorum Yapın

Asagıdaki iki kelimeyi bos olan kutuya yazınız. Bu uygulama zararlı yorumları engellemek için. Anlayısınıza tesekkur ederim.