استخدام شروط if لإعادة توجيه الصفحات


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

ما حاولت:

<?php 
         if (isset($_REQUEST["save"])){
         if (($_REQUEST["status"]!=2)){
         if(!isset($_FILES['image'])){
$sql="UPDATE tickets SET openedby='$flname''WHERE   id ='$tid'";
             mysqli_query($dbc, $sql) or trigger_error("Query Failed! SQL: $sql - Error: ".mysqli_error($dbc), E_USER_ERROR);
       header("Location: ../index.php");
       exit();
              
             }
             }
             }
             if (isset($_REQUEST["save"])){
             if (($_REQUEST["status"]=2)){
             if(!isset($_FILES['image'])){
 $sql="UPDATE tickets SET calername='$calername'WHERE id ='$tid'";
          mysqli_query($dbc, $sql) or trigger_error("Query Failed! SQL: $sql - Error: ".mysqli_error($dbc), E_USER_ERROR);
          header("Location: ../index.php");
           exit();
              
            }
             }
             }
     
             if (isset($_REQUEST["save"])){
             if (($_REQUEST["status"]!=2)){
 $sql="UPDATE tickets SET openedby='$flname' WHERE id ='$tid'";
                       mysqli_query($dbc, $sql) or trigger_error("Query Failed! SQL: $sql - Error: ".mysqli_error($dbc), E_USER_ERROR);
                     
                 }
                 }
                 
             
                 if (isset($_REQUEST["save"])){
                 if (($_REQUEST["status"]=2)){
              $sql="UPDATE tickets SET calername='$calername'WHERE id ='$tid'";
               mysqli_query($dbc, $sql) or trigger_error("Query Failed! SQL: $sql - Error: ".mysqli_error($dbc), E_USER_ERROR);
                          
                 }
                 }
                 
              ?>
    
     
    
            <?php
                if (isset($_REQUEST["save"])){
              
              if(isset($_FILES['image'])){
              
         $query = "UPDATE tickets SET attachments='$ben' WHERE id ='$tid'";
                 mysqli_query($dbc,$query) or trigger_error("Query Failed! SQL: $query - Error: ".mysqli_error($dbc), E_USER_ERROR);
                      header("Location: ../index.php");
                      exit();
                      
                   }
              
                }
             
           ?>

الحل 2

مشكلتك هي أن الرأس قد تم إرساله بالفعل. هناك أيضًا مسافات بيضاء متضمنة، قم بإزالتها.

لحل هذه المشكلة، يتعين علينا تخزين الرأس في المخزن المؤقت وإرسال المخزن المؤقت في نهاية البرنامج النصي، لذلك لتخزين الرأس في المخزن المؤقت، سوف نستخدم PHP ob_start() وظيفة ولتنظيف المخزن المؤقت، سوف نستخدم ob_end_flush() وظيفة. انظر مقتطف الكود أدناه.

<?php
ob_start(); //MUST be at the top of your page
?>
<!DOCTYPE html>
<html>
<head><title></title></head>
<body>
<p>Hello world</p>
<?php

header("Location:https://mysite.com"); //Will automatically load your index page
ob_end_flush();
?>
</body>
</html>

الحل 1

سأبدأ بإعادة كتابة ذلك: نظرًا لأن جميع كتل “if” الخاصة بك تبدأ بنفس الاختبار، اسحب ذلك كاختبار منفصل:

<?php 
if (isset($_REQUEST["save"])){
   ...
   }
else {
   ... do something else entirely ...
   }
?>

الآن أصبحت اختباراتك أكثر قابلية للقراءة – لذا افعل الشيء نفسه مع “اختبار الصورة”:

<?php 
if (isset($_REQUEST["save"])){
   if (!isset($_FILES['image'])){
      ... Do your status check ...
      }
   else {
      ... Do your other stuff ...
      }
   }
else {
   ... do something else entirely ...
   }
?>

مرة أخرى، يمكنك جعل التعليمات البرمجية أكثر وضوحًا.

عندما تفعل ذلك، اختبره مرة أخرى، وانظر ماذا سيحدث.
إذا كان لا يزال لا يعمل، فافصل مصحح الأخطاء واعرف المسار الذي يسلكه عبر التعليمات البرمجية الخاصة بك في “العالم الحقيقي” – والذي من المفترض أن يخبرك أين يحدث الخطأ، ويساعدك على البدء في إصلاحه.

لا يمكننا أن نفعل ذلك لك: ليس لدينا أي فكرة عما يجب أن تفعله التعليمات البرمجية الخاصة بك ومتى، أو ما هو المتغير إذا كانت الظروف قيد الاختبار، ولا يمكننا رؤية البيانات على الإطلاق!

コメント

タイトルとURLをコピーしました