Ich habe 3 verschiedene Navigationsleisten, eine andere 1 muss je nach der Autorität des Benutzers geladen werden. Ich habe eine Funktion in einer anderen PHP-Datei gemacht, also verwende ich den Code auf jeder Seite. Mein Problem ist, dass nach dem Einloggen keine Navigationsleiste geladen wird. Irgendwelche Vorschläge zu was könnte das Problem sein?Keine Navigationsleiste nach der Anmeldung angezeigt
-Code in function.php Datei
function checkAuth()
{
session_start();
if(empty($_SESSION['role']))
{
require_once('menu.php');
}
else if ($_SESSION['role'] == "registered"){
include('regnav.php');
}
else if ($_SESSION['role'] =="admin"){
include('adminnav.php');
}
}
Code in dem Betteln jeder Seite
<?php
require_once("function.php");
checkAuth();
?>
Verwenden Sie zuerst 'isset()' anstelle von 'empty()', um die Existenz von $ _SESSION ['role'] zu überprüfen. Zweitens hast du uns menu.php nicht gezeigt, was hoffentlich $ _SESSION ['role'] setzt. Drittens, wenn dieser Code das erste Mal ausgeführt wird, wird menu.php ausgeführt, aber er wird nicht erneut ausgeführt, um eine Navigationsleiste zu setzen. –
@SgtAJ Ich habe nur die Öffnung des HTML und Kodierung der Navigationsleiste in der menu.php, da ich die Sitzung in der Funktion rufe, denkst du, dass das das Problem sein könnte? – Chanter
Nun, die erste Seite, die Ihre require_once ("function.php") und checkAuth() darauf hat, wird Ihre Sitzung starten. An diesem Punkt wird natürlich $ _SESSION ['role'] nicht gesetzt, da wir gerade die Sitzung gestartet haben, also wird Ihre require_once ("menu.php") ausgeführt, aber checkAuth sieht nicht so aus, als ob sie noch einmal ausgeführt würde eine andere Seite drücken, so dass keine Navigationsleisten angezeigt werden, bis checkAuth() erneut ausgeführt wird. –