nasıl eski oturumu gerçekten tahrip olduğunu doğrulamak için?

2 Cevap php

Um, bu biraz garip gelebilir. Biz çok özel bir koşul altında belirli bir tarayıcı ile bazı sorunlar yaşıyorsanız, ve nihayet biz düzgün session_regenerate_id () yaptıktan sonra eski oturumları yok olmadığını aslında sorunu daralmış edildi. Ben şimdi session_regenerate_id (true) yaparak bu sorunu çözmüş inanıyorum, ama nasıl bir önceki oturumları gerçekten artık var olmadığını doğrular? Birisi cURL önerdi ama ben onların dokümanlar yolumu bulamıyorum. Ne yazık ki (?) Patron ben gerçekten herhangi bir tavsiye takdir ediyorum bu yüzden bir cevap 'bu sadece çalışır' almaz!

2 Cevap

By default session_regenerate_id(); will only replace the current session with a new one. So the old session file need not actually get deleted. But doing a session_regenerate_id( true ); will delete the old session file. ( http://php.net/session_regenerate_id )

Eski oturum silinmiş olup olmadığını kontrol etmek için böyle bir şey yapabilirsiniz

<?php
$file=ini_get('session.save_path')."/sess_".session_id();
$gotDeleted = file_exists( $file );
?>

Ayrıca session_destroy() yapabilirsiniz. Eğer bazı değişkenleri tutmak gerekir, spesifik $_SESSION değerleri üzerine unset() deneyebilirsiniz.

Oturum verilerini gitmiş olduğundan emin olmak için, oturum kaydetme uç bakmak gerekir. Varsayılan olarak (bir oturum örneğin bir apache yeniden hayatta bu yüzden) düz bir disk dosyaları olarak oturumları saklar. Onlara bakmak istiyorum, ve gözlemleyerek oturumuna gelen tek etkili silinmiş olduğunu kontrol edebilirsiniz.

Bu böyle bir kritik bilgi ise Veya, size daha fazla kontrol sahibi olmak (hiç de zor değil) kendi oturum arayüzü ve daha fazla hata ayıklama seçeneklerini kurmak isteyebilirsiniz (elle veri yok edersin ve günlüğü ekleyebilirsiniz veri silinmiş olduğunu göstermek için ifadeler).

Buraya bakın: http://php.net/manual/en/function.session-set-save-handler.php

Ya da burada: http://devzone.zend.com/article/141