PHP ile veritabanında Oturumları Destroying

1 Cevap

Bir web uygulaması için, ben bir veritabanına oturum değişkenleri saklamak için karar verdi. Ben logout dışında istediğiniz gibi her şey çalışıyor, hangi basit bir session_destroy () ile iş yapacak düşündüm ama değil.

Ben bilgi veritabanında saklanır tüm oturumu söz, ama ben o session_destroy çağrılırken () fark; Bu veritabanından oturumu silmek yapar ama sunucudan silinmez. Ben farklı kullanıcı adı ile loggin bu nedenle, ben hala aynı session id olsun, ben tarayıcıyı kapatmak yoksa, ben loggin her zaman ben aynı session id olsun fark. Nasıl sunucu oturumu silmek olabilir?

Bu benim oturumu yok etmek için kullanabileceğiniz bir sınıf içinde bir fonksiyonudur:

 function destroy( $id ) {

  // Build query
  $newid = mysql_real_escape_string($id);
  $sql = "DELETE FROM sessions_table WHERE session_id = '{$newid}'";

  mysql_query($sql);

  return TRUE;

}

Herhangi bir tavsiye lütfen?

1 Cevap

php-manual:

"Session_destroy () geçerli oturum ile ilişkili tüm verileri yok eder. Bu oturum ile ilişkili global değişkenler, veya unset oturum tanımlama herhangi tanımsız değil. Tekrar oturum değişkenleri kullanmak için session_start () çağrısı yapılmalıdır.

In order to kill the session altogether, like to log the user out, the session id must also be unset. If a cookie is used to propagate the session id (default behavior), then the session cookie must be deleted. setcookie () bunun için de kullanılabilir. "