Geçerli bir oturum (Geçerli bir oturum kimliği var) varsa session_id()
("") geçerli oturum veya boş dize için oturum kimliğini döndürür.
http://de.php.net/manual/en/function.session-id.php
Bir oturumu aktif olmadığını ama bu sadece size söyler.
çoğu zaman, ben sadece (kullanıcı giriş olmasa bile) her komut dosyası başında session_start();
diyoruz. oturum ile ilgili, ben kullanıcı kimliği veya kullanıcı nesne ile $_SESSION['user']
set. Oturum kapatmada, ben sadece unset($_SESSION['user']);
. Birisi hala oturum veya değilse kontrol ederek empty($_SESSION['user'])
i kontrol edebilirsiniz. Eğer başka bir yerde oturumunda kullanıcı bağımlı bilgiler saklıyorsanız, aksi takdirde oturum sonraki adam görmek gerekiyordu değil bilgi alabilirsiniz, bunu yapmazsanız (Bu durumda kullanımda session_destroy();
).
ancak güvenlik? Sadece GET / POST url yeniden yazar (cookies) ile session-id yayılmasını devre dışı bırakmak, böylece (bu durumda, oturum kaçırma mümkün olacaktır) önbelleğe veya başkalarına dağıtılmış olabilir URL'leri kadar bitmez. Eğer php.ini içinde session.use_only_cookies
ayarlayarak bunu yapabilirsiniz.
güvenilmeyen bir ve / veya yanlış paylaşılan sunucuda barındırılması eğer ek güvenlik sorunları olabilir - bu aynı makine oturum verilerinizi okuma diğer kişilere yol açabilir. Bu durumda size oturum işleyicisi yeniden bir veritabanında oturum verilerini saklamak olabilir. sadece session handler mysql
intertubes üzerinde arama, yeterince hazır gitmek çözümler vardır eminim. ve daha iyi karşılaştırmak için gereken bir sorgu her şey yapmak, oturumda şifreler gibi hassas bilgileri saklamak yok.
Bunun dışında ... hiçbir metin parolalar transfer edilir, giriş ve kullanıcı yönetimi için ssl / https kullanın. veritabanında tuz sadece pw-sağlamalarının saklayın. (anlamı: html ya da e-postalar için onları baskı asla) Herkes şifreleri görmek izin vermeyin. Kullanıcı görmek (ve dolayısıyla, sanırım) kimlikli için auto_increment değerleri kullanmayın. Tamam, bu soruların kapsam dışında zaten var.