alexa-tracking

[ASK] PHP Login User

Main Content

1024
1024
KASKUS
51
244
https://www.kaskus.co.id/thread/540d30331cbfaa47448b456e/ask-php-login-user
[ASK] PHP Login User
Agawan/wati yang bisa coding php, ada yang bisa bantu ane gak??
Gini nie ane punya login form juga pake seaseon username. Dan selama ini ane biasanya pake season timeout doank. Nah masalahnya login yang ane buat tuh bisa di gunain beberapa komputer, misalnya user A lagi aktive di komputer A, di komputer B malah bisa login pake user A, ane tuh maunya kalau user A lagi aktive, di komputer lain gak bisa boleh pakai user si A atau ada warning si user A sedang aktif. Itu gimana caranya ya?? Bisa minta tulung?? emoticon-Frown


NB : Ane menggunakan season timeoute juga seasan username, dan ane gak tau sama sekali menggunakan season_id.



UPDATE

Quote:


Quote:


Quote:


termiaksih agawan/wati yang telah membatu ane, berkat bantuan agan sudah SOLVED!!!! Trims gan emoticon-Big Grin

Apalagi terima kasih pada agan erdheeco , cek kulkas ya gan emoticon-Big Grin
tambahin di tabel user ente field is_login isinya 0/1 setiap user login isi periksa apakah field itu 1 atau 0, kalo 1 berarti user itu sudah login jadi user itu gk bisa login lagi, dan kalo field itu berisi 0 maka user boleh login dan isi field itu dengan 1 buat nandain kalo user itu sudah login. untuk logout isi field itu dengan 0 kembali.

ente bisa juga paksa supaya user yg apabila sudah login dipaksa logout kalo ada user yg login lagi dengan user yang sama. dan kalo user yg sudah login lupa logout pastikan sistem mengupdate field is_login dengan 0 apabila session timeout. Untuk caranya silahkan explore dulu sebelum bertanya lagi.

Just Share
Quote:


Awalnya kepikiran buat bikin field kaya gitu cuman masalahnya user sekarang tuh rada nakal, dia main closing brwosing aja tanpa logout emoticon-Nohope , makanya ane pake season time out. Cuman masalahnya ane gak tau bijimane bikin coding di php. Maklum masih junior PHP emoticon-Hammer
KASKUS Ads
setuju sama cara agan di atas, dan sekedar ngingetin ntar waktu eksplore keyword googlenya session ya bukan season emoticon-Smilie
Quote:


Oh iya session emoticon-Hammer

Maklum gan di kantor ane, biasanya bikin order statusnya apke season jadi kepengaruh ke situ emoticon-Hammer
Quote:


Pake cara agan ini bisa, cuma kayaknya terlalu boros kalo pake cron job.

Solusi dari ane gini aja gan. Pake is_login seperti agan yang diatas. Selain itu, tambah 1 kolom lagi untuk last_login.
Dia mau logout atau enggak, ketika dia login (lagi), di cek dong waktu last_loginnya kapan. Kalo misalnya last_login <= 15 menit (misalnya) dan status is_login = true, maka dianggap pc itu gak bisa login, karena statusnya masih login. Sedangkan jika last_login > 15 menit dan status is_login = true, dianggap status is_login = false. Karena sudah lebih dari 15 menit status loginnya. Kalo bisa sih, jeda waktunya itu disamain sama waktu session timeout yang agan buat. Jadi sync antara perbedaan waktu ketika dia login sama ketika session timeout.

solved? emoticon-I Love Indonesia (S)
Quote:



hmm.. boleh juga tuh, bearti ane tinggal ngatur jamnya ama insert ke database aja tuh ya, ok deh gan. Ane coba emoticon-Big Grin
Quote:


yap, ketika login dan status is_login = false, tinggal update status is_login = true, last_login = now().
"untuk user nakal yg gk mau logout"

bikin 1 field lagi namanya php_session_id

setiap user login, masukan session_id yg dicreate php ke database. jadi untuk mengetahui kalo user itu udah logout, bukan hanya dari is_login = 0 saja tapi apakah session_id yg di database masih ada di web server.
kemungkinannya :

is_login 1, session_id exist = logged in
is_login 1, session_id not exist = logged out

is_login 0 = logged out

Just Share

Quote:



SOLVED GAN!!! CEK KULKAS, AND TQ GAN emoticon-Big Grin
Quote:


No problem gan. Senang bisa membantu. emoticon-shakehand
Quote:


ketika user masih aktif padahal last loginnya udah lebih dari 15 menit?
Quote:


pembuatan aplikasi yg bagus adalah meminimalisir query(insert/update/delete) abuse ke database.

thats why we use cache to avoid hitting database too much.
Quote:


jika dengan pc yang sama, gak akan pengaruh apa2. kalo dari lain PC, jika lebih dari 15 menit, maka akan di close koneksi yang lama, dan buka jalur baru. Karena problem TS adalah ketika login di PC yang berbeda.
Sebenernya sih akan lebih bagus jika ada alert di PC yang masih dalam keadaan login.

Misal, PC A Logged in. Setelah 15 menit, PC B Log-in menggunakan account A, setelah isi username + password = valid, push message ke PC A, "Account ini akan otomatis logout karena account terhubung pada PC B. Apakah Anda setuju?" *Confirmation*.

Seperti itu lah kira2.. emoticon-Peace
Quote:


Justru setiap user lagi buka apa di web ane, makanya ane bikin history di table ketika dia mengklik sesuatu, di table historynya disimpan apa kegiatan dia. Kalau gak ada kegiatan walalupun dia masih login ane bikin sessin time out, jadi beberapa menit dia keluar dan musti login kembali. Jadi ane bikinnya kaya gini.

If(history_time>15 menit OR history_action==''Logout')
{
boleh Login
}
else
{
User lagi aktive
}

Jadi asumsinya di table history ane, dan gimana caranya kalau user banayak aktivitas, ane di querynya bikin order by histroy_time DESC dan Limit 1, jadi munculnya cuman histroy terakhir dia doank emoticon-Big Grin