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

السؤال

نشر

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

<?php
		  if (isset($_POST['login'])){
		  	$name = $_POST['name'];
		  	$pattern = "/^[\w\p{Arabic}]{3,30}$/u";
		  	$matching = preg_match_all($pattern, $name, $a);
            // التحق من الاسم
		  	if ($matching==1){
		  	$age = $_POST['age'];
            // التحقق من العمر
		  	if ($age>15 && $age<100){
            // التحقق من الجنس
		  	if (isset($_POST['man']) xor isset($_POST['woman'])){
            // تخزين البيانات داخل الجلسات
                        $_SESSION['name'] = $name;
                        $_SESSION['age'] = $age;
            // اذا كان الجنس ذكر
                        if (isset($_POST['man'])) {
                        $_SESSION['humm'] = $_POST['man'];
            // اذا كان الجنس انثى
                        }elseif (isset($_POST['woman'])) {
                        $_SESSION['humm'] = $_POST['woman'];
                        }echo $_SESSION['name'] . $_SESSION['age'] . $_SESSION['humm'];
            // توجيه المستخدم الى الصفحة الاخرى
		  	header('location:http:index.php');
		  	}else{
		  	echo '<div class="err">يرجى اختيار احد الجنسين</div>';
		  	}}else{
		  	echo '<div class="err">عمر خاطئ</div>';
		  	}}else{
		  	echo '<div class="err">اسم خاطئ</div>';
		  }}
		?>

هذه هي رسالة الخطئ التي اتلقاها: Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\chat\login.php:121) in C:\xampp\htdocs\chat\login.php on line 150

مع العلم انه لا يتم توجيهي الى الصفحة الاخرى 

اتمنى الرد وشكرا لكل من افاد

 

Recommended Posts

  • 0
نشر

مرحبًا..

أعتقد أن السبب الرئيسي هو أنك قم بعمل echo للمحتوى قبل إستخدام الدالة header لذلك لا تتم عملية التحويل.

echo $_SESSION['name'] . $_SESSION['age'] . $_SESSION['humm'];
            // توجيه المستخدم الى الصفحة الاخرى
		  	header('location:http:index.php');

لذلك تظهر لك الرسالة بأنه قد تم إرسال الهيدرز قبل إستخدامك للدالة header

أيضًا لا تنسى إستخدام الدالة exit بعد إستخدامك للدالة header كالتالي :

// توجيه المستخدم الى الصفحة الاخرى
header('location:http:index.php');
exit();

 

  • 0
نشر

سبب المشكلة هو أنك قمت بالطباعة، قبل إستدعاء دالة header.

السطر التالي:

echo $_SESSION['name'] . $_SESSION['age'] . $_SESSION['humm'];

وهناك مشكلة أخرى بالكود الخاص بك هي عدم تواجد دالة session_start في بداية الملف، يجب إضافة الدالة في رأس كل ملف يستخدم session في php بالشكل التالي، ليتم حفظ قيم المتغيرات.

<?php


session_start();

// باقي المحتوى

 

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...