Pertanyaan Pemuatan Halaman Dicetuskan Dua Kali: Satu Penyiasatan
Pengguna yang mengakses halaman permainan mengalami penduaan data yang tidak diingini apabila mereka memuat semula halaman. Setelah disiasat, mereka menemui pertanyaan yang bertanggungjawab untuk aktiviti permainan pembalakan:
$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')");
Punca:
Punca isu ini terletak pada logik yang cacat di hadapan pengawal. Pengawal ini mengendalikan semua permintaan ke tapak web, termasuk yang sah dan tidak sah.
Penjelasan:
Apabila melaksanakan pertanyaan, pengawal hadapan tersilap mencetuskannya untuk kedua-dua sah dan permintaan tidak sah. Ini mengakibatkan berbilang sisipan yang tidak perlu ke dalam pangkalan data. Contohnya, apabila tapak disiarkan secara langsung, tingkah laku ini boleh membawa kepada beribu-ribu sisipan data palsu.
Penyelesaian:
Untuk menyelesaikan isu ini, logik pengawal hadapan mesti direka bentuk semula. Ia kini harus membezakan antara permintaan yang sah dan tidak sah dan melaksanakan pertanyaan hanya apabila sesuai. Ini memastikan bahawa pertanyaan itu digunakan pada masa yang betul dan menghalang pertindihan data.
Atas ialah kandungan terperinci Mengapa Pertanyaan Muatan Halaman Permainan saya Dicetuskan Dua Kali?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!