PHP’de Session Zamanını Belirlemek

PHP de oturum işlemleri gibi önemli işlerde genelde $_SESSION değişkeni kullanılır. Mesela üyenizin sitenizde oturum açıp açmadığını session yardımı ile kontrol eder, gerekli bilgiler sisteminize bu session değişkeni üzerinden aktarırsınız. Olmazsa olmazlardan birisidir yani.

Session konusunda karşımıza çıkabilecek bir problem olan session zamanını ayarlamaktır. Mesela üye, 10 dakika boyunca herhangi bir işlem yapmadı ise o oturumu sonlandırmak, üyeniz için faydalı bir özellik olabilir. İnternet cafeden sitenize erişmiştir ve çıkış yapmadan kalktı ise ondan sonra gelen, sitenizi sanki oymuş gibi kullanabilir, istenmeyen şeylerin olmasına sebep olabilir. Sizde programcı olarak bu gibi durumları göz önünde bulundurmalısınız. Peki bu kontrolü nasıl sağlarsınız. Pekçok yöntemi var fakat programlama mantığınızın gelişmesi açısından aşşağıda vereceğim örnek, en iyi örnek olsa gerek..

session_start();
// timeout periyodu, sn olarak
$inactive = 600;

if(isset($_SESSION['timeout']) ) {
$session_life = time() - $_SESSION['timeout'];
if($session_life > $inactive)
{ session_destroy(); header("Location: cikis.php"); }
}

$_SESSION['timeout'] = time();

Yukarıdaki kodu yorumlayamadıysanız php.ini dosyanıza dalıp gerekli ayarlamayı yapabilirsiniz. php.ini de bulunan session.gc_maxlifetime değişkeni ile session un zamanını ayarlayabilirsiniz. Bu değer ön tanımlı olarak 1440 saniyedir. Fakat pek çok hosting sağlayıcısı bunun üzerinde sizlere oynama imkanı vermeyecektir o yüzden başka bir yol olan .htaccess üzerinden işimizi halledeceğiz.

php_value session.gc_maxlifetime 300

kodunu .htaccess dosyamıza ekleyerek session ömrünü 300 saniye yapabiliriz. Kontrol etmek için ise .htacess in bulunduğu klasörde bir sayfa oluşturup phpinfo() fonksiyonunun çıktısına bakmaktır.

Unix sistemlerde sessionlarımız /tmp klasöründe saklanır. Bu klasör sistem tarafından belirli araklıklarla temizlendiği için istemediğimiz durumlar ortaya çıkabilir. Bunu değiştirmek istersek, yukarıdakine benzer şekilde php.ini den yada .htaccess dosyasından yapabiliriz. php.ini ye erişimimizin olmayacağını varsayarak direk .htaccess için bilgi vereceğim,

php_value session_save_path /klasörün_yeri

yukarıdaki parametreyi ekleyerek /tmp klasörünü değiştirebiliriz.

Sessionlar ile ilgili daha detaylı bilgiler edinmek isterseniz burayı inceleyebilirisiniz.

Benzer Yazılar:

Tarayıcı Diline Göre Dil Secme  – Çoklu Dil DesteğiTarayıcı Diline Göre Dil Secme – Çoklu Dil Desteği

Turk-php de konu geçince burada minik bi örnek hazırlayıp ekran cıktılarının nasıl

PHP ile Dosya ÇekmePHP ile Dosya Çekme

Turk-php de konusu geçince bu yazıyı hazırlamaya karar verdim. Örneğin bir sitedeki

Php ile Dizin İçindeki Dosyaları SayfalamaPhp ile Dizin İçindeki Dosyaları Sayfalama

Uzun zamandır php’de işinize yarayabilecek kodları paylaşamıyordum. Sağda solda birkaç kendini bilmez

Quick Basic – Bölüm 6Quick Basic – Bölüm 6

Quick-Basic Kursu Bölüm 6: Diziler Dizilere neden ihtiyaç duyulur? Çünkü binlerce değişkeni

Php ve Flash ile Geri Sayım İşlemiPhp ve Flash ile Geri Sayım İşlemi

Azda olsa işimize gerekebiliyor bu tarz uygulamalar. Bilgisayarımı karıştırırken karşıma çıkan bu

Ocak 23, 2010   Kategori: Php

“PHP’de Session Zamanını Belirlemek” için 3 Yorum

  1. yolcu demiş ki:

    Bu süreyi tarayıcı kapanıncaya kadar çalışacak şekle nasıl getiriyoruz acaba. Session tarayıcı ne zaman kapanırsa o zaman bitsin. php.ini ve .htaccess dışında bir çözüm olabilir mi acaba teşekkürler.

  2. yasin demiş ki:

    yazı için teşekkürler. ben php_value session_save_path /klasörün_yeri çalıştıramadım biraz daha açıklarmısın

  3. pillirobot demiş ki:

    Yararlı bilgiler için teşekkürler.


Yorum Yaz

*