Pada halaman permainan tertentu yang menampilkan permainan yang boleh dimainkan, pengguna menghadapi isu yang tidak dijangka. Setelah memuat semula halaman, pertanyaan MySQL yang direka untuk memasukkan data aktiviti pengguna ke dalam pangkalan data ("game_activity") telah dihantar dua kali. Pertanyaan yang dimaksudkan ialah:
$insert_user_activity = mysql_query("INSERT INTO game_activity (user_id,user_full_name,game_id,game_name) values ('$user_id','$full_name','$browser_id','$game_title')");
Sebab Penyelitan Berganda
Isu ini berpunca daripada logik pengawal hadapan yang cacat. Halaman yang melaksanakan pertanyaan sedang digunakan semasa permintaan yang sah dan tidak sah ke tapak, termasuk panggilan ke sumber yang tidak wujud. Ini mengakibatkan pertanyaan dilaksanakan beberapa kali, menyebabkan sisipan pendua.
Menyelesaikan Isu
Untuk membetulkan masalah, logik pengawal hadapan perlu diubah suai. Matlamatnya adalah untuk menghalang aplikasi daripada berjalan untuk permintaan yang tidak sah. Dengan melaksanakan perubahan ini, sisipan pendua yang tidak diingini semasa operasi tapak akan dihapuskan.
Atas ialah kandungan terperinci Mengapa Jadual Aktiviti Permainan Saya Mempunyai Entri Pendua pada Muat Semula Halaman?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!