Çeşitli web uygulamalarına giriş yapan kullanıcılara ait verileri geçici süreliğine saklamak için kullanılan bir tür yazılım mekanizması olan PHP Session söz konusu olduğunda, özellikle de web kodlama konusuna meraklı olan insanların kafalarında pek çok soru işareti oluşmaktadır. 

Siz okuyucularımızı bilgilendirmek için ayrıntılı bir şekilde araştırarak elde etmiş olduğumuz bilgilerden derleyerek kaleme aldığımız bu yazımızda; PHP Session Nedir, PHP Session ile Cookies Arasındaki Farklar ve PHP Session Nasıl Kullanılır gibi birbirinden farklı PHP Session konuları hakkında bilinmesi gerekenlere yer vereceğiz.


PHP Session (Oturum Yönetimi) Nedir?

Bu soruya kısaca cevap vermemiz gerekirse; PHP'de Sessionların (oturum), çeşitli web uygulamaların kullanıcıların bilgilerini belirli bir süreliğine tutmak için kullanılan bir yazılım mekanizması olduğunu söylemek mümkündür. Cookieler’in aksine kullanıcıların bilgisayarında tutulmayan sessionlar, sunucularda tutulmaktadırlar ve bu sayede daha güvenlidirler.

Kullanıcının; kullanmak istediği web sayfasının sunucuları üzerinde tanımlanabilmesi için sadece o kullanıcıya özel bir UID (eşsiz bir değer) içeren bir çerez kullanan oturumlar, söz konusu UID’i göz önünde bulundurarak kullanıcılara ait belirli verilerin saklanmasını sağlar. 

Kullanıcılar bu sayede; aynı web sitesinin diğer sayfalarına giriş yaptıkları esnada, tekrar veri girişi yapmalarına gerek kalmadan oturum değişkenlerindeki (sadece tek bir kullanıcı için bilgiler içerirler) verilere erişebilirler.


PHP Session ve Cookies Arasındaki Farklar

Peki, PHP Session ve Cookies arasındaki farklar nelerdir? Öncelikle; PHP Session’ların, Cookies (Çerez) lere göre daha güvenli olduğunun belirtilmesi gerekmektedir. Bir kullanıcı tarafından tanımlanan çerezin hem değeri hem de adı, kullanıcı tarafından kullanılmakta olan web tarayıcısına açık bir biçimde gönderilir ve istenilen süre boyunca söz konusu tarayıcıda açık bir şekilde tutulur.  

PHP Sessionlarda ise kaydedilen değer ile bu değerin ismi, tarayıcıya gönderilmemekte ve bunun yerine PHPSESSID adlı ve içinde uzun bir oturum id değeri içeren bir çerez tanımlanmaktadır. Ayrıca; kullanıcılar tarafından oluşturulan oturumlar, sunucuda saklanmakta ve kullanıcıların göndermiş oldukları PHPSESSID kimliklerine göre hem kime ait oldukları bulunmakta hem de yeniden düzenlenmektedir.


PHP Session Nasıl Çalışır?

Genellikle alışveriş sepeti bilgileri ve kullanıcı girişi verileri gibi hassas kullanıcı verilerinin saklanması için kullanılan bir metod olan oturum yönetimi, kullanıcı deneyimini iyileştirmek ve kullanıcılar tarafından kullanılmakta olan web uygulamalarının güvenliğini arttırmak için kullanılan önemli bir araçtır.  

Peki, PHP Session nasıl çalışmaktadır? PHP Session ile oturum açmak, basitçe şu adımları takip ederek gerçekleştirilebilir:

- Bu özelliği kullanabilmek için bir siteyi ziyaret eden kullanıcının, bir oturum başlatması gerekmektedir. Kullanıcı bunu genellikle, session_start() fonksiyonunu kullanarak gerçekleştirebilir. Bu fonksiyon komutunun kullanılması sayesinde kullanıcının oturumu, sunucuya kaydedilir ve oturum için kullanıcıya UID (eşsiz bir değer) gönderilir.

- Artık oturumu başlayan kullanıcı, $_SESSION değişkenini kullanarak, bu oturum değişkenlerini kaydeder ve bunlara erişim sağlayabilir. Kullanıcı; bunu yaptıktan sonra isset() değişkenini kullanarak, oturum değişkenlerinin tanımlanıp tanımlanmadıklarını teyit edebilir. 

- Yeni bir sayfa açmak isteyen kullanıcı, bu istek doğrultusunda kendi kimlik numarasını gönderir. PHP bu kullanıcıyı tanır ve onun kimlik numarasını kullanarak, söz konusu kullanıcı hakkındaki bilgilere ulaşır.

- Oturumunu sonlandırmak isteyen kullanıcılar; bunu yapabilmek için, tanımlanmış olan oturum değişkenlerinin silinmesini sağlayan unset() veya oturum bilgilerinin tamamen silinmesini sağlayan session_destroy() fonksiyonlarını kullanabilirler.

Oturum sonlandırmak hususu söz konusu olduğunda unutulmaması gereken bir nokta varsa; o da bir kullanıcı tarafından oturum değişkenini unset() fonksiyonunun kullanılarak silinmesi durumunda aynı sayfada o değişkene bir daha erişim sağlanamayacağıdır. Fakat; kullanıcı tarafından session_destroy() fonksiyonu kullanılmış ise, sayfa kapatılmadığı sürece söz konusu oturum değişkenlerine erişim sağlanabilmektedir.