Das sollte funktionieren, also bin ich wirklich perplex darüber, warum es nicht funktioniert.PHP-Variablen an eine enthaltene Datei übergeben?
Ich überprüfe, ob ein Benutzer mit einer $ Session-Methode am oberen Rand jeder Admin-Seite angemeldet ist. Ich möchte jedoch die Headerdatei dynamisch anpassen, je nachdem, ob ein Benutzer angemeldet ist und auf welcher Rollenebene dieser Benutzer verfügt.
Also überprüfe ich $session->is_logged_in()
und dann ging ich voran und definierte eine Variable namens $logged = true
; später verwenden. Ich benutze dann eine $user->find_by_id($session->id)
Methode, um ein neues Benutzerobjekt zu erstellen und $user->role_level
in einer neuen Var zu speichern, die $role_level
für einfache Verwendung genannt wird.
Dies geschieht alles oben auf der Seite. Weiter unten auf der Seite Vergangenheit Formularverarbeitung, etc., ist der include("../_layouts/header.php")
Befehl. Dann verwende ich in der header.php-Datei kleine Überprüfungen wie if(!$logged) { ... } else { ... }
. Allerdings ...
Ich erhalte die folgenden Fehler:
Notice: Undefined variable: logged in /home/hips/html/_layouts/header.php on line 119
Notice: Undefined variable: logged in /home/hips/html/_layouts/header.php on line 131
Notice: Undefined variable: logged in /home/hips/html/_layouts/header.php on line 138
Wie kann das sein? Ich definiere die vars in der Datei bevor ich header.php einfüge! Sollte das nicht funktionieren?
FYI, alles funktionierte gut, bis ich versuchte, $logged
in der Datei header.php zu verwenden.
"$ logged" ist in jedem Fall gesetzt? Es gibt keinen möglichen Weg im Code, dass es nicht gesetzt werden könnte? Wenn Sie '$ logged =" ";' am Anfang des Skripts (vor der Definition) hinzufügen, was passiert? –
Es ist mir einmal passiert, dass ich eine Datei in eine Funktion eingefügt habe. Sofern Sie die Variablen nicht als Parameter übergeben oder global definieren, sind sie in der enthaltenen Datei nicht verfügbar. Nur ein Leckerbissen. – nalply