Tolong pilih kategori sesuai, jenis posting (pertanyaan atau bukan) dan sertakan tag/topik yang sesuai misal komputer, php, mysql, dll.
Promosi atau posting tidak pada tempatnya akan kami hapus.
Klik link berikut untuk informasi cara menyisipkan kode program supaya tampil rapi dan terformat dengan baik di diskusiweb.com: http://www.diskusiweb.com/discussion/50415/cara-menyisipkan-kode-program-di-diskusiweb-com

Baca cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

Tanya session codeigniter dengan database

Siang ..

Saya menggunakan session menggunakan database di CI. Struktur tabelnya stadar dari manual CI.
Saya memiliki tabel user yang isi fieldnya ada is_login(int). Alur sessionnya, jika login sukses (cek password,username,active,ip,is_login) maka session terbentuk & update (is_login = 1) di tabel user.

Yang ingin saya tanyakan :
Jika user logout menggunakan button logout, update is_login = 0 di db user (Sudah berjalan). Namun jika user close browser (sess_expire_on_close = TRUE) atau session berakhir (sess_expiration = 1800), bagaimana caranya supaya bisa jalanin query buat update is_login = 0 ? Karena saat user coba login kembali tidak bisa masuk (is_login = 1)

Terimakasih.

Comments

  • lha mana koding nya ?

    letak proses UPDATE itu tergantung alur koding yg elo tulis.
  • Gini mas. jika user klik button logout, saya sudah bisa update ke db (Ini udah berjalan)
    <?php
    $id_user = $this->session->userdata('id_user');
    $this->db->update('user',array('last_logout'=>date('Y-m-d H:i:s'),'is_login' => '0'),
    array('id_user'=>$id_user));
    $this->session->sess_destroy();
    redirect('login');
    ?>
    Settingan di config file CI saya
    <?php
    $config['sess_expiration'] = 1800; //1800 Detik / 30 Menit
    $config['sess_expire_on_close'] = TRUE;
    $config['sess_encrypt_cookie'] = FALSE;
    ?>
    Yang jadi masalah kalau user close browser atau waktu sessionnya habis (1800 s), gimana caranya update tabel user buat ubah is_login = 0 ?
  • edited December 2017
    ini maksud elo kalo user tutup browser tanpa logout ?
    elo pengen logout otomatis ?
  • Bukan, gini jadinya :

    1. Jika user tutup browser, sessionnya destroy (Ini uda berjalan sesuai Settingan di config file CI). Yang saya tanyakan, itu kan berdasarkan session aja, tapi tabel usernya ga ke update. Saat user mencoba kembali untuk login, otomatis gagal karena di tabel user mengenali dia uda masuk (is_login = 1). Nah caranya supaya is_login di update jadi 0 gimana caranya ?

    2. Kasusnya sama kaya nomor 1, yang beda hanya timout sessionnya (1800 s). Ini juga sudah berjalan baik, user bakalan otomatis ke form login lagi kalau uda timeout, masalahnya, satatus di tabel user masih 1 saat sess_expiration. Cara update tabel user jadi 0 gimana caranya ?
  • edited December 2017
    "Jika user tutup browser" ...

    elo pake event apa buat detect user tutup browser tanpa logout ?
    koding bagian detect tutup browser nya mana ?
  • ini bro, ada di settingan config.php -nya CI

    $config['sess_expire_on_close'] = TRUE;
  • edited December 2017
    walah ...
    bingung dah ngomongnya ... :D :D :D

    gimana ceritanya elo bikin auto logout kalo cuma mengandalkan itu ...

    baca ini dulu :
    http://www.diskusiweb.com/discussion/44816/ask-auto-logout-php
  • ok ok, anti gw coba
Sign In or Register to comment.