
1) Można się jakoś dowiedzieć, czy sesja jest nowa (świeżo założona), prościej i lepiej niż coś mniej więcej takiego (fuj, co za potworek!):
<?php $isNew = ! (ini_get('session.use_cookies') && isset($_COOKIE[session_name()])) || (!ini_get('session.use_only_cookies') && (isset($_POST[session_name()]) || isset($_GET[session_name()]))); ?>
2) Można jakoś skutecznie zniszczyć sesję? Nie usunąć wszystkie zmienne z sesji - session_unset(). Tylko rozwalić samą sesję. Znalazłem coś takiego:
<?php } else { setcookie(session_name(), '', time()-3600, $CookieInfo['path'], $CookieInfo['domain'], $CookieInfo['secure']); } ?>
Chociaż nie wiem, co tak naprawdę robi session_destroy(). Jeżeli nie usuwa pliku z sesją, to przy następnym żądaniu wystarczy podać SID w cookie lub w URLu i znowu mamy starą sesję (choć pewnie pustą).
3) Jak w sposób pewny i skuteczny wygenerować nowy SID dla istniejącej sesji. Co prawda jest funkcja session_regenerate_id(), która nawet wysyła nowe ciastko, ale...
- co się dzieje ze starym plikiem sesji? bo zakładam że tworzony jest nowy
- co się dzieje ze starym cookie?
Znowu, oczekiwałbym, że bo wygenerowaniu nowego SIDa starej sesji w ogóle i nieodwracalnie nie ma.