alexa-tracking

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:Original Posted By animfahmy
ini cuma bayangan aja Gan...

jadi buat kolom datetime juga setelah buat kolom log (1/0)

jadi setiap kita klik sesuatu di program, selalu update datetime.
Nah ketika browser tutup

database nya yang jalan, jadi ngecek database time sekarang jam berapa, jika jarak antara jam sekarang dengan di tabel ada 5 menit misal, maka kolom log diubah ke 0. jadi semacam buat procedure atau trigger gitu, lupa ane.
kayae se trigger.

atau kalo gak gitu, kita buat program buat ceknya trus jalan pake cron job.



Quote:Original Posted By erdheeco


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:Original Posted By system69
"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


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:Original Posted By system69
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


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
setuju sama cara agan di atas, dan sekedar ngingetin ntar waktu eksplore keyword googlenya session ya bukan season emoticon-Smilie
Quote:Original Posted By onionkid
setuju sama cara agan di atas, dan sekedar ngingetin ntar waktu eksplore keyword googlenya session ya bukan season emoticon-Smilie


Oh iya session emoticon-Hammer

Maklum gan di kantor ane, biasanya bikin order statusnya apke season jadi kepengaruh ke situ emoticon-Hammer
Quote:Original Posted By animfahmy
ini cuma bayangan aja Gan...

jadi buat kolom datetime juga setelah buat kolom log (1/0)

jadi setiap kita klik sesuatu di program, selalu update datetime.
Nah ketika browser tutup

database nya yang jalan, jadi ngecek database time sekarang jam berapa, jika jarak antara jam sekarang dengan di tabel ada 5 menit misal, maka kolom log diubah ke 0. jadi semacam buat procedure atau trigger gitu, lupa ane.
kayae se trigger.

atau kalo gak gitu, kita buat program buat ceknya trus jalan pake cron job.



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:Original Posted By erdheeco


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)



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:Original Posted By LarsM



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


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:Original Posted By erdheeco


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)



SOLVED GAN!!! CEK KULKAS, AND TQ GAN emoticon-Big Grin
Quote:Original Posted By LarsM




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


No problem gan. Senang bisa membantu. emoticon-shakehand
Quote:Original Posted By erdheeco
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)


ketika user masih aktif padahal last loginnya udah lebih dari 15 menit?
Quote:Original Posted By animfahmy
ini cuma bayangan aja Gan...

jadi buat kolom datetime juga setelah buat kolom log (1/0)

jadi setiap kita klik sesuatu di program, selalu update datetime.


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:Original Posted By system69


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


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:Original Posted By system69


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


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