|
|
#2 (permalink) |
|
Üyelik Tarihi: 01.11.2000
Yer: İstanbul
Yaş: 26
Mesaj: 714
|
Online Kişi Sayısı
Bu konu hep geçiyor bir yerlerde. Php4 ile derken sanırım php4 te varolan session eklentileri kastediliyor. Php4+ interpretere sahip herhangi
gibi bir makinada <? session_start(); ?> komutu bir oturum başlatır. Oturum nedir? Servis üzerinde başlangıcı ve bitişi kesin olarak belirlenen işlemler dizisi.Session modüllerinin cookilerde farklı yaptığı bir işlem var(yanlızca PHP değil jsp, coldfusion yada ASP gibi tüm gelişmiş sunucu dilleri)Sunucuda başlatılan her oturum için log lar oluşturmak. Bu loglara site sahibi istenen bilgileri kaydedebilir, güncelleyebilir, okuyabilir vs vs.. Bir çeşit çerez ancak sunucuda taraflı bir çerez. Online kişi sayısı olayına gelirsek: Şu an kullandığımız Vbulletin tamamen php3 uyumlu ve online olan ziyaretçileri gösterebiliyor. Demek ki bu iş php4 e kesin bir bağlılık içermiyor. Gerçek şu ki Vbulletin bunu ip loglayarak ve ziyaretçilerin bilgilerini istemci tarafında bulunan cookilere yazarak başarıyor. Php4 ün bize bahşettiği session başka olanaklar sağlıyor tabi. Online olan kişi sayısını tam olarak ve gerçek zamanlı bulabilmek için benim düşündüğüm nacizane bir çözüm mevcut: PHP'nin session_start() fonksiyonu /tmp dizininde log dosyaları oluşturuyor. Bu dosyaların kimlere ait olduğunu bilebilirsek sorunu çözeriz gibi görünüyor ancak değil. Çoğunlukla insanlar shared hosting kullanıyorlar ve bir makinayı birçok hesap kullanıyor. Aynı anda birden fazla hesabın session açması da çok olası. Bunun için session dosyalarını istediğimiz bir yerde tutmalıyız. session_save_path(kullanılacak dizin) fonksiyonu bize bunu sağlıyor, her sesion dosyasının başına bu satırı koyar ve dizini yanlızca bizim oluşturacağımız bir klasör olarak belirlersek sorunu çözebiliriz. (örneğin /home/ufuk/web/sessionlog) Bu konuya uzun zaman kafa yormuştum, elimde çözümü içeren bir programcık mevcut. isteyene gönderebilirim.
__________________
life is better without braces |
|
|
|
Zoque'a hoşgeldiniz!