"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إعادة التوجيه إلى الصفحة السابقة بعد تسجيل الدخول في PHP؟

كيفية إعادة التوجيه إلى الصفحة السابقة بعد تسجيل الدخول في PHP؟

تم النشر بتاريخ 2024-11-08
تصفح:586

How to Redirect to Previous Page After Login in PHP?

إعادة التوجيه إلى الصفحة السابقة بعد تسجيل الدخول

قد تكون عدم القدرة على إعادة توجيه المستخدمين إلى وجهتهم المقصودة بعد تسجيل الدخول الناجح عقبة محبطة. من خلال دمج تقنيات محددة والتعامل مع المخاطر المحتملة، من الممكن حل هذه المشكلة بشكل فعال.

الحل: استخدام متغير $_GET

النهج الشائع هو استخدام $ _GET متغير لالتقاط الصفحة الحالية للمستخدم. عند إعادة توجيههم إلى صفحة تسجيل الدخول، فإن إلحاق هذا المتغير يسمح للبرنامج النصي باسترداد الوجهة المطلوبة بعد المصادقة الناجحة. على سبيل المثال، إذا كان المستخدم يقرأ مقالًا ويحاول ترك تعليق، فيجب تمرير عنوان URL لقسم التعليق (على سبيل المثال، comment.php?articleid=17) إلى صفحة تسجيل الدخول عبر متغير $_GET.

التنفيذ:

في الكود المقدم:

  1. login.php: أرسل المستخدم إلى تسجيل الدخول صفحة تحتوي على الصفحة الحالية كمعلمة $_GET:

    header("Location:login.php?location=" . urlencode($_SERVER['REQUEST_URI']));
    header("Location:login.php?location=" . urlencode($_SERVER['REQUEST_URI']));
  2. login-check.php: استرجع عنوان URL الوجهة من متغير $_POST['location']:

    $redirect = NULL; إذا($_POST['الموقع']!= '') { $إعادة التوجيه = $_POST['الموقع'];
    header("Location:login.php?location=" . urlencode($_SERVER['REQUEST_URI']));
  3. إذا كان تسجيل الدخول ناجحًا، فأعد توجيه المستخدم إلى عنوان URL المقصود أو الصفحة الافتراضية (إذا لم يتم تحديد أي شيء):

    if(isset($_SESSION[' معرف_تسجيل الدخول'])) { // إذا كان تسجيل الدخول ناجحًا وكان هناك عنوان إعادة توجيه، فأرسل المستخدم مباشرةً إلى هناك إذا(إعادة توجيه $) { header("الموقع:".$redirect); } آخر { header("الموقع:login.php?p=3"); } مخرج()؛
    if(isset($_SESSION['id_login'])) {
     // if login is successful and there is a redirect address, send the user directly there
     if($redirect) {
         header("Location:". $redirect);
     } else {
         header("Location:login.php?p=3");
     }
     exit();
    }

الاحتياطات:

    التحقق من صحة عنوان URL المقصود:
  • تأكد من أن عنوان URL المقصود آمن ولا يعمل تحتوي على محتوى ضار.
  • استخدم urlencode:
  • استخدم urlencode() عند تمرير عناوين URL كمعلمات $_GET للتعامل مع الأحرف الخاصة بشكل صحيح.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3