• 0

كيف أحول المستخدم إلى الرابط الذي جاء منه [PHP]؟

السلام عليكم،

لدي موقع فيه عدة صفحات مثل About us, Contact us ، وغيرها من الصفحات العادية في كل المواقع. مشكلتي هي أنني لدي رابط [يؤدي إلى صفحة أخرى مستقلة] : href=submit.php وعندما يضغط عليه الشخص يتم التأكد من الـSession اذا كان مسجل الدخول أم لا .. اذا لا يتم التحويل للصفحة: signin.php عن طريق إستخدام هذا الكود:

	if(isset($_SESSION['username'])) {
		// redirect to home page
		header('Location: index.php');
		exit();
	}

ثم يتم الدخول لصفحة تسجيل الدخول بشكل طبيعي .. وعند إدخال بيانات الدخول يتم الدخول لصفحة index.php (الصفحة الرئيسية للموقع).

ما أريد السؤال عنه هنا كيف أستطيع إعادة تحويل الشخص لصفحة submit.php إذا كان قادم منها، أي أنه اذا ضغط على رابط الدخول للصفحة الموجود في الnavigation bar ثم توجه لصفحة submit ولكن الصفحة عملت تأكد من الSession ووجدت بأن المستخدم لم يسجل دخوله ثم حولته لصفحة sign in لكي يسجل دخوله ثم يعيده مرة أخرى لصفحة submit بعد تسجيل الدخول.

أنا لا أريد أن أوجه/أحول المستخدم لصفحة submit دائماً... بل فقط إذا كان قادم من صفحة sign in التي بدورها كان قادم من صفحة submit ولكن لم يتم قبوله لأنه لم يسجل دخول.

أتمنى أن فكرتي وصلت.

هذا سيناريو أو مثال آخر:

لدينا شخصان (أ) و (ب) ..

الشخص (أ) فتح صفحة Sign in وهو كان متواجد في صفحة index أو أي صفحة أخرى من الموقع، ثم أدخل بياناته بشكل صحيح وتم تحويله لصفحة index بعدها.

الشخص (ب) أراد إضافة post أو مقالة في الموقع، ولكن صفحة post.php تأكدت من أن هذا الشخص غير مسجل لدخوله فعملت توجيه له لصفحة Sign In وأدخل بياناته صحيحة ثم تم تحويله إلى صفحة post.php (أي الصفحة الأصلية التي كان يرغب بزيارتها) ولم يتم تحويله إلى صفحة index مثل الشخص (أ)

__

ملاحظة: بعد البحث في جوجل عن إجابة، أتيت و إستخدمت 

$_SERVER["HTTP_REFERER"]

لكنها لا تعمل لا أعلم السبب لماذا! فأرجو المساعدة وأتمنى أن تكون المشكلة واضحة بالأمثلة المعطية.

شكراً كثيرا.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

أضف الرابط الذي أتى منه في parameter في GET بمعنى عندما ترسله لصفحة تسجيل الدخول أضف معها الرابط الذي اتى منه post.php يعني يعرف إلى أين يتم تحويله بعد تسجيل الدخول

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

@نذير صغيرأضفت الرابط في متغير بهذه الطريقة :

// Check if the user is already signed in
	$subUrl = $_SERVER['HTTP_REFERER'];
	if(!isset($_SESSION['username'])) {
		// redirect to signin page if user has not signed in
		header('Location: signin?Url='.$subUrl);
		exit();
	}

وعندما يتم التوجه لصفحة تسجيل الدخول هل تعلم ما قيمة الـUrl التي تظهر لي !! يظهر لي أنني أتيت من صفحة sign in نفسها يكون الرابط هكذا:

website_name/signin?Url=http://mywebsite.com/website_name/signin

من  المفترض أن يظهر الرابط :

website_name/signin?Url=post

بحيث أستطيع أن آخذ أو أجلب قيمة Url من من الرابط الموجود لكي أستخدمه في التحويل!

أنا أعتقد بأن المشكلة في صفحة الـpost نفسها! هل لأنني أستخدم

header('Location: signin?Url');

لذلك لا يتم تسجيل الـhttp referer بشكل صحيح؟
أم ماذا الذي يحدث هنا؟

___

أعتذر عن الأسئلة الكثيرة، فمستواي في الـPHP ليس بالمطلوب فماذا زلت اتعلم.

شكراً مجددًا :)

تمّ تعديل بواسطة علي أحمد-2

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

@نذير صغير-- حسنًا تم حل المشكلة آخيراً .. والحمدلله.

شكراً على المساعدة التي قدمتها، بارك الله فيك :)

أسعد الله يومك.. أطيب تحياتي.

تمّ تعديل بواسطة علي أحمد-2

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن