اذهب إلى المحتوى
  • 0

[PHP] إعادة توجيه المستخدم للصفحة المطلوبة بعد تسجيل الدخول

محمد المصري12

السؤال

سلام عليكم

عاوز لما اليوزر يدخل على لينك ، بعد ما يسجل دخول يفتح له اللينك ده مش يحوله للصفحة الرئيسيه

حاولت اعمل اعادة التوجيه بالكود ده

header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);

بس بيفضل في مكانه لما بيسجل دخول ما بيغيرش حاجة

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يحدث هذا لأن تقوم بالتوجيه بالفعل الى ذات الصفحة. فالفهرس REQUEST_URI يحمل قيمة URI الخاص بالصفحة الحالية، فإذا كان المسار الكامل لصفحة تسجيل الدخول هو كـ:

https://www.domain.com/auth/login.php

 فسيحتوي $ _SERVER ['REQUEST_URI'] على:

/auth/login.php

فان تم تنفيذه في صفحة login.php بالفعل فتحصل في الغالب على السلوك الذي شهدته.

ان كنت تستعمل روابط نسبية قم مباشرة بحقن اسم الملف المستهدف:

header("Location: index.php")

وسيتم التوجيه بشكل عادي.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 3 دقائق مضت قال Adnane Kadri:

يحدث هذا لأن تقوم بالتوجيه بالفعل الى ذات الصفحة. فالفهرس REQUEST_URI يحمل قيمة URI الخاص بالصفحة الحالية، فإذا كان المسار الكامل لصفحة تسجيل الدخول هو كـ:


https://www.domain.com/auth/login.php

 فسيحتوي $ _SERVER ['REQUEST_URI'] على:


/auth/login.php

فان تم تنفيذه في صفحة login.php بالفعل فتحصل في الغالب على السلوك الذي شهدته.

ان كنت تستعمل روابط نسبية قم مباشرة بحقن اسم الملف المستهدف:


header("Location: index.php")

وسيتم التوجيه بشكل عادي.

هو مش ملف واحد

وارد يفتح رابط تعديل المستخدم

https://www.domain.com/Edit_user.php

وارد يفتح اي لينك تاني ( استعراض محتوى مثلا )

فالطبيعي انه بعد ما يسجل دخول يرجعله للرابط المطلوب و ليس للصفحة الرئيسية 

فأنا لو حولته ل index.php هابقى معملتش حاجة لانه اصلا بيروح عليها بمجرد تسجيل دخوله 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ الآن قال محمد المصري5:

هو مش ملف واحد

وارد يفتح رابط تعديل المستخدم


https://www.domain.com/Edit_user.php

وارد يفتح اي لينك تاني ( استعراض محتوى مثلا )

فالطبيعي انه بعد ما يسجل دخول يرجعله للرابط المطلوب و ليس للصفحة الرئيسية 

فأنا لو حولته ل index.php هابقى معملتش حاجة لانه اصلا بيروح عليها بمجرد تسجيل دخوله 

جرب الاحتفاظ بالصفحة التي طلبها المستخدم في الجلسة. فان كانت صفحة تعديل مستخدم تشترط أن يكون المستخدم مسجلا للدخول فسيجب عليك حقن اسم او مسار هاته الصفحة ضمن متغير ما في الجلسة مثلا قبل اعادة التوجيه الى صفحة تسجيل الدخول من عليها:

if(/* شرط عدم توثيق المستخدم */){
   $_SESSION['requested_page'] = $_SERVER['REQUEST_URI'];
   // توجيه لصفحة تسجيل الدخول
}

من اعادة التوجيه اليها ومحوها من صفحة تسجيل الدخول بعد نجاح التسجيل:

if(/* نجاح تسجيل الدخول */){
 
  
   header('Location :' . $SESSION['requested_page']);  
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 37 دقائق مضت قال Adnane Kadri:

جرب الاحتفاظ بالصفحة التي طلبها المستخدم في الجلسة. فان كانت صفحة تعديل مستخدم تشترط أن يكون المستخدم مسجلا للدخول فسيجب عليك حقن اسم او مسار هاته الصفحة ضمن متغير ما في الجلسة مثلا قبل اعادة التوجيه الى صفحة تسجيل الدخول من عليها:


if(/* شرط عدم توثيق المستخدم */){
   $_SESSION['requested_page'] = $_SERVER['REQUEST_URI'];
   // توجيه لصفحة تسجيل الدخول
}

من اعادة التوجيه اليها ومحوها من صفحة تسجيل الدخول بعد نجاح التسجيل:


if(/* نجاح تسجيل الدخول */){
 
  
   header('Location :' . $SESSION['requested_page']);  
}

 

للاسف لم تنجح 

اعطتني رسالة 500 INTERNAL SERVER ERROR

دون وجود أي تفاصيل في ملف اللوج 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 17 دقائق مضت قال محمد المصري5:

للاسف لم تنجح 

اعطتني رسالة 500 INTERNAL SERVER ERROR

دون وجود أي تفاصيل في ملف اللوج 

بالطبع لا تنسى استئناف الجلسة بحقن السطر التالي في اعلى الملف المستهدف

session_start();
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 13 دقائق مضت قال Adnane Kadri:

بالطبع لا تنسى استئناف الجلسة بحقن السطر التالي في اعلى الملف المستهدف


session_start();

هذا السطر مضاف تلقائيا في جميع صفحات الموقع بملف ال head 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...