Ich begann mit der Entwicklung einer Plattform hauptsächlich in PHP und Sitzungen funktionierte gut, bis ich meinen Apache Server gestoppt und begann, es eine Woche später zu arbeiten.
Das ist mein Problem:
index.php
<?php
include_once 'backend/login.php'; // DB connect + functions
include_once 'menu.php'; // menu include
check_logout(); // check if user logged out
?>
<?php
include_once 'widgets/widgets.php'; // widgets : login, agenda, events, languages
include_once 'footer.php'; // footer
?>
Also im Grunde das ist die PHP-Teile meiner Seite sind (der Rest ist HTML). backend/login enthält Login-Funktionen (und diese Datei selbst beinhaltet die Anmeldung in der DB, gefolgt von session_start()).
home.php
<?php
include_once 'backend/login.php'; // connect to DB, login functions
include_once 'backend/load_feed.php'; // feed functions
include_once 'menu.php'; // include main menu
?>
<script>
alert("<?php echo $_SESSION['first_name']; ?>");
</script>
<?php
check_login(); // ensure user is logged in
?>
Wenn die Anmeldung auf index.php (Form in widgets/widgets.php versteckt ist) gültig. Es ändert die window.location zu home.php. Das Problem ist, dass $ _SESSION die während der Anmeldung gespeicherten Informationen nicht enthält.
dbconnect.php
<?php
/*
remote script used to conenct to the database
*/
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "DB";
// create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// check connection
if($conn->connect_error){
die("Connection failed : " . $conn->connect_error);
}
session_start();
?>
Dies ist das Skript verwendet, um die Datenbank zu verbinden, funktioniert es richtig (ich bin in der Lage, die Gültigkeit der Benutzerdaten zu überprüfen)
Ergänzende Info :
- Ich habe überprüft, dass alle gespeicherten Informationen in $ _SESSION beim Einloggen gespeichert werden. (Informationen sind im Bereich der Funktion vorhanden).
- Alle Dateien, die $ _SESSION benötigen, enthalten (direkt oder über andere Includes) die Datei dbconnect.php, was den Zugriff auf $ _SESSION ermöglicht.
- Es wird keine Ausgabe generiert, bevor session_start() aufgerufen wird;
Hat jemand eine Ahnung von was könnte die Quelle meines Problems sein?
habe ich ausprobiert ! Es scheint nicht zu funktionieren. Die Funktion hat überhaupt kein Problem, es verwendet $ _SESSSION ohne jedes Problem. Tatsächlich hat index.php perfekten Zugriff auf $ _SESSION, aber irgendwie hat home.php nichts davon. – TanguyH
Php session_start(); ?> // plazieren Sie diese Funktion in der ersten Zeile in Ihrer home.php-Datei, nachdem Sie das php-Tag geöffnet haben, und versuchen Sie es. –
Das habe ich gerade versucht, aber durch Hinzufügen und Entfernen einer Zeile scheint die Sitzung wieder aktiv zu sein (ohne dass session_start() verwendet wird). Ich verstehe nicht, was gerade passiert ist, aber danke! ;) – TanguyH