• 28-04-2009, 18:32:56
    #1
    Üyeliği durduruldu
    session_destroy(); o scriptin tüm kaydettiğimiz sessionlarını siler diye biliyordum.

    ama bugun denedimki session_destroy() sadece çalıştıran kişinin yani mesea çıkış sayfası diyelim çıkış sayfasını çağıran sessionu siliyor. firefox ve explorerda karşılıklı denerken gözlemledim. yani o scriptle kaydettiğimiz sessionların tamamını boşaltmıyor.

    yani her session sahibi çıkış yapmadan sessionu sunucudan silinmeyecek hep duracak mı? yada başka yolumu var?

    aynı şekilde session_unset() 'de tüm sessionları temizlemiyor.

    belkide ben yanlış biliyorum yada uyguluyorum
  • 28-04-2009, 18:36:46
    #2
    Üyeliği durduruldu
    Merak ediyorumda acaba kaç yüz tane session başlattırıyorsunuz her bir kullanıcıyada hepisini birden silmek istiyorsunuz...
    Taş patlasın 1 sitede en fazla 1 kullnıcıya 5 tane açmalısın.
    5 taneyide unset yapmak fazla zor olmasa gerek.
  • 28-04-2009, 18:47:09
    #3
    Üyeliği durduruldu
    yanlış anlamadıysam tersler yada dalga geçer gibi bir uslupla cevap vermişsiniz.

    ben öğrenmek için soruyorum ama siz cevap vermek zorunda değilsiniz.

    neyse

    yüzlerce session başlatmıyorum merak etmeyin.

    ben diyorumki unset yada destroy komutlarını kullandım ama o kullanıcı yani o session sahibi kendisi çıkış yapmadıkça onun sessionu sıfırlanmıyor. benim amacım o çıkış yapmadan da onun sessionlarını silebilmek.

    eğerki mümkün değilse session sahibi çıkış yapmadan o sessionu silebilmem yada sıfırlayabilmem o zaman da o session ne kadar zaman saklanacak bunu öğrenmek istiyorum

    acaba birşeyi yanlış yada eksikmi yapıyorum diyorum.
  • 28-04-2009, 18:52:28
    #4
    Üyeliği durduruldu
    No Tersleme No Dalga.
    Session'ların sunucunun ayarına göre silinme zamanları vardır.
    Standart olarak bu ayar 24 dakika olarak gelir.
    Merak etmeyin Ömür boyu kalmaz sunucuda.
  • 28-04-2009, 20:46:05
    #5
    Üyeliği durduruldu
    bundan dolayı zaten genelde session kayıt klasörü /tmp gibi klasörlerdir.
  • 30-04-2009, 01:11:54
    #6
    session_destroy() fonksiyonu o kullanıcıya ait tüm sessionları siler.tüm sessionları siler açıklamasında tüm kullanıcılarınkini siler şeklinde yanlış anlamış olabilirsin.
    1 üye için 10 larca session oluştursanda ( örneğin ; uye_id,uye_adi,uye_resmi vb )
    1 üyenin tüm sessionları tek 1 dosyada toplanır.
    sunucuda sessionların tutulduğu dizin var ama sana ait olanları silebilmen için o dizine erişme iznin olmaz. olsa da güvenlik açığı ortaya çıkmış olacaktır.
    ille de bu çıkış yapmamış üyelerin sessionlarını timeout olmadan farklı bir ekşınla silmek istiyorsan php'nin session.save_path fonksiyonunu kullanarak oluşturmuş olduğun oturumlar dizinine session dosyalarını kaydettirebilir ve site içinde çalışan bir fonksiyonla örneğin 5 dk hareket etmeyen üyenin session dosyasını bu dizinden unlink ile silebilirsin.bir üyenin php dosyasını her çalıştırmasında bu fonksiyon çalışacak ve sürekli kontrol olacaktır.yoğun sistemlerde tavsiye etmem.Bunun yerine belirli aralıklarla cron çalıştırman daha doğru çözüm olacaktır.
    veritabanında online üyelerin tutulduğu bir tablo da yapman gerekecektir.