Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengubah Hala Pengguna Kembali ke Halaman Sebelumnya Selepas Berjaya Log Masuk?

Bagaimana untuk Mengubah Hala Pengguna Kembali ke Halaman Sebelumnya Selepas Berjaya Log Masuk?

Barbara Streisand
Barbara Streisandasal
2024-11-01 04:45:02827semak imbas

How to Redirect Users Back to Their Previous Page After Successful Login?

Mengubah hala ke Halaman Sebelumnya Selepas Log Masuk Berjaya

Apabila pengguna log masuk ke tapak web, selalunya wajar untuk mengubah hala mereka kembali ke halaman yang mereka semak imbas sebelum ini. Ini memberikan pengalaman pengguna yang lancar dan menghapuskan keperluan untuk navigasi manual selepas log masuk.

Untuk mencapai matlamat ini, pendekatan biasa ialah menghantar URL halaman semasa pengguna sebagai pembolehubah $_GET ke borang log masuk. Sebagai contoh, jika pengguna berada di halaman artikel "comment.php?articleid=17" apabila mereka cuba meninggalkan ulasan, URL akan menyertakan lokasi semasa.

Halaman log masuk (login.php) kemudiannya hendaklah menyemak kehadiran $_GET['lokasi']. Jika ia wujud, halaman itu boleh mengubah hala pengguna ke URL khusus tersebut selepas berjaya log masuk. Begini cara anda boleh melaksanakannya:

Dalam log masuk.php:

<code class="php">echo '<input type="hidden" name="location" value="';
if(isset($_GET['location'])) {
    echo htmlspecialchars($_GET['location']);
}
echo '" />';</code>

Medan input tersembunyi ini menyimpan URL halaman semasa dan menghantarnya bersama-sama dengan penyerahan borang log masuk.

Dalam login-check.php:

<code class="php">session_start();

$redirect = NULL;
if(isset($_POST['location']) && $_POST['location'] != '') {
    $redirect = $_POST['location'];
}

if((empty($username) OR empty($password) AND !isset($_SESSION['id_login']))) {
    $url = 'login.php?p=1';
    if(isset($redirect)) {
        $url .= '&amp;location=' . urlencode($redirect);
    }
   header("Location: " . $url);
   exit();
}
elseif (!user_exists($username,$password) AND !isset($_SESSION['id_login'])) {
    $url = 'login.php?p=2';
    if(isset($redirect)) {
        $url .= '&amp;location=' . urlencode($redirect);
    }
   header("Location:" . $url);
   exit();
}
elseif(isset($_SESSION['id_login'])) {
    if($redirect) {
        header("Location:". $redirect);
    } else {
        header("Location:login.php?p=3");
    }
    exit();
}</code>

Dalam skrip log masuk-check.php ini:

  1. Ia menyemak pembolehubah $_POST['lokasi'] dan menetapkan ia ke $redirect jika ia wujud.
  2. Skrip mengendalikan ralat log masuk dan mengubah hala ke halaman log masuk dengan parameter ralat yang sesuai.
  3. Setelah log masuk berjaya, ia menyemak URL ubah hala dan mengubah hala pengguna ke halaman itu jika ada. Jika tidak, ia mengubah hala ke login.php dengan mesej log masuk yang berjaya.

Mekanisme ini membolehkan pengalihan lancar ke halaman yang pengguna semak imbas sebelum log masuk, meningkatkan pengalaman pengguna dan memudahkan proses log masuk.

Atas ialah kandungan terperinci Bagaimana untuk Mengubah Hala Pengguna Kembali ke Halaman Sebelumnya Selepas Berjaya Log Masuk?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn