Wenn ich meine Kategorie Suchformular einreichen, möchte ich, dass es den PHP-Code in der DisplayMealsCont.php ausführen und dann mit den aktualisierten Sitzungsvariablen zurück zur main.php gehen. Aber wenn ich versuche einen Header einzufügen ("Location: ../View/Main.php"); in der DisplayMealsCont.php bleibt es in einer Redirect-Schleife stecken.PHP Redirect Loop Problem
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"> £ <?= $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;
?>
Es bedeutet, dass die Zielseite eine andere Weiterleitung hat, die eine andere Weiterleitung hat ... – Qirel
können Sie mir zeigen, wo ich Redirect, weil ich nur wissen, wie mit Kopfzeilen umleiten. danke – Jurgen
Hängt davon ab, wo Sie es setzen, aber denken Sie daran, dass Sie diese Datei in Ihrem Haupt enthalten, so dass es immer zu sich selbst umleiten wird. – Qirel