PHP重定向循环问题


PHP redirect loop issue

当我提交类别搜索表单时,我希望它在DisplayMealsCont.php中运行php代码,然后使用更新的会话变量返回main.php。但是当我尝试放入一个Header("Location:../View/Main.php")时;在DisplayMealsCont.php中,它陷入了重定向循环。

main.php

<?php 
require_once("../Controller/DisplayMealsCont.php");
session_start();

$category = "All";
if(isset($_SESSION['table'])){
    $table = $_SESSION['table'];
}
if(isset($_SESSION['Category'])){
    $category = $_SESSION['Category'];
    if($category == "All"){
    $category = " ";
    }
} 
?>
<?php 
if (is_array($table)) {
foreach($table as $item) { 
?>
 <td align="centre"> <?= $item['Meal_Name'] ?> </td>
    <td align="centre"> <?= $item['Description'] ?> </td>
    <td align="centre"> <?= $item['Image'] ?> </td>
    <td align="centre"> <?= $item['Category'] ?> </td>
    <td align="centre"> <?= $item['Quantity'] ?> </td>
    <td align="centre"> &pound; <?= $item['Price'] ?> </td>
   <tr> 
 <?php
 }
 }
 ?>
</table>
    <form method="post" action="../Controller/DisplayMealsCont.php">
        Category: <br />
        <select name="Category">
        <option value="All">All</option>
            <option value="Main">Main</option>
            <option value="Drink">Drinks</option>
        </select> <br /> 
        <input type="submit" name="categorysubmit" value="Search" />
        </form>

DisplayMealModel.php

<?php
require_once("../Model/config.php");
class DisplayMeals 
{
public $dbConnection;
public function __construct(){
    $db= new database();
    $connect=$db->getdatabase();
    $this->dbConnection = $connect;
}
public function MainMeals($category){  
    $_SESSION['test'] = $category;
    $stmt = $this->dbConnection->prepare("SELECT * from meal WHERE Category LIKE '$category%'");
    $stmt->execute();
    return $stmt->fetchAll(PDO::FETCH_ASSOC);

}
?>

DisplayMealCont.php

<?php
require("../Model/DisplayMealModel.php");

$newMeal = new DisplayMeals();
if(!isset($category)){
$category = "main";
}
if(isset($_SESSION['Category'])){
$category = $_SESSION['Category'];
}
$table = $newMeal-> MainMeals($category);
$_SESSION['table'] = $table;

?>

我不明白为什么其中的header()会导致重定向循环,但你试过添加die()吗;在header()之后?

这是一个很好的做法,如果它起作用,它可能会揭示问题的原因。除此之外,如果您发布带有循环头的代码,这样我们就可以看到了,这将有所帮助。