Ubah hala ke Halaman Sebelumnya Selepas Log Masuk
Apabila pengguna log masuk ke tapak web, selalunya wajar untuk mengubah hala mereka kembali ke halaman yang mereka sedang melihat sebelum mereka melog masuk. Ini memastikan pengalaman penyemakan imbas yang lancar dan membolehkan pengguna meneruskan tugas mereka.
Untuk mencapai pengalihan ini, pendekatan biasa ialah menghantar URL halaman semasa pengguna sebagai parameter rentetan pertanyaan dalam borang log masuk. Contohnya:
<code class="php">header("Location:login.php?location=" . urlencode($_SERVER['REQUEST_URI']));</code>
Kod ini menambahkan parameter "lokasi" pada URL halaman log masuk. Nilai parameter ini ialah URL halaman semasa, dikodkan untuk memastikan ia serasi dengan parameter URL.
Dalam borang log masuk, tambah medan input tersembunyi untuk menyimpan parameter "lokasi":
<code class="php">echo '<input type="hidden" name="location" value="'; if (isset($_GET['location'])) { echo htmlspecialchars($_GET['location']); } echo '" />';</code>
Medan input ini akan diisi apabila borang log masuk diserahkan.
Dalam skrip login-check.php, semak sama ada parameter "lokasi" terdapat dalam data POST. Jika ya, simpan nilainya dalam pembolehubah $redirect:
<code class="php">$redirect = NULL; if ($_POST['location'] != '') { $redirect = $_POST['location']; }</code>
Jika log masuk berjaya, ubah hala pengguna ke URL $redirect dan bukannya destinasi lalai (cth., "index.php") :
<code class="php">if (isset($redirect)) { header("Location:" . $redirect); } else { header("Location:login.php?p=3"); }</code>
Pertimbangan Keselamatan
Adalah penting untuk mengesahkan parameter $_GET['location'] sebelum mengubah hala pengguna. Ini menghalang pengguna berniat jahat daripada mengubah hala pengguna ke URL berbahaya. Satu cara untuk mengesahkan parameter adalah untuk menyemak sama ada ia bermula dengan nama domain tapak web.
Atas ialah kandungan terperinci Bagaimana untuk Mengubah Hala Pengguna Kembali ke Halaman Sebelumnya Selepas Log Masuk?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!