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

السؤال

نشر

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

لدي موقع فيه عدة صفحات مثل 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"]

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

شكراً كثيرا.

Recommended Posts

  • 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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...