Menentukan Status Dalam Talian Pengguna dalam PHP dan MySQL
Menggunakan penjejakan sesi, artikel ini bertujuan untuk mewujudkan kaedah yang berkesan untuk menentukan pengguna dalam talian kehadiran.
Membonceng pada Sesi
Walaupun membonceng pada sesi PHP menyediakan penyelesaian yang mudah, ia bergantung pada cap masa dan tamat masa. Untuk mengelakkan pengehadan ini, kami meneroka pendekatan alternatif yang berpusat pada penjejakan aktiviti pengguna.
Penjejakan Berasaskan Pangkalan Data
Dalam jadual "Pengguna" pangkalan data anda, buat "lastActiveTime " medan yang menangkap masa interaksi terakhir pengguna. Dengan mengemas kini medan ini secara berterusan, anda boleh menentukan status dalam talian pengguna dengan membuat pertanyaan untuk mereka yang mempunyai "lastActiveTime" dalam tempoh masa tertentu, seperti lima minit yang lalu.
Mengelakkan Zon Masa
Untuk memudahkan proses, gunakan masa pelayan anda (melalui fungsi NOW() MySQL) daripada cuba mengambil kira zon waktu. Pendekatan ini menyediakan kaedah yang boleh dipercayai untuk menjejak pengguna aktif dalam masa nyata.
Kemas Kini Malar
Jika menjejaki aktiviti berterusan adalah penting, anda boleh melaksanakan skrip JavaScript yang menghantar "ping" ke pelayan anda setiap minit. Ini akan mengemas kini rekod aktiviti pengguna tanpa memerlukan penyemakan imbas halaman yang berterusan.
Coretan Kod Kemas Kini
Coretan kod dikemas kini berikut menggunakan pengambilan dan berjanji untuk mengendalikan permintaan "ping":
<code class="javascript">(async function ping() { // Asynchronously call stillAlive.php await fetch("stillAlive.php"); // Issue this call again in 60 seconds setTimeout(ping, 60_000); }());</code>
Atas ialah kandungan terperinci Bagaimana untuk Menjejaki Status Dalam Talian Pengguna dengan Cekap dalam PHP dan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!