$_SESSION ne garde pas toutes les variables mises dedans
Bonjour, je suis en train de créer un site où j'ai besoin de garder en mémoire quelques infos de l'utilisateur. J'ai donc utilisé le tableau $_SESSION comme cela :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| <?php
session_start();
include_once('../includes/connection.php');
if(isset($_SESSION['logged_in'])) {
?>
<-- page voulue -->
<?php
} else {
if(isset($_POST['username'], $_POST['password'])) {
$username = $_POST['username'];
$password = md5($_POST['password']);
if(empty($username) or empty($password)) {
$err = 'Tous les champs sont requis.';
} else {
$query = $pdo->prepare("SELECT * FROM users WHERE user_name = ? AND user_password = ?");
$query->bindValue(1, $username);
$query->bindValue(2, $password);
$query->execute();
$num = $query->rowCount();
if($num == 1) {
$userdata = $query->fetch();
if($userdata['user_id'] == 1) {
$_SESSION['logged_in'] = true;
$_SESSION['admin'] = true;
header('Location:index.php');
exit();
} else {
$err = 'Utilisateur incorrect.';
}
} else {
$err = 'Nom d\'utilisateur ou mot de passe incorrect.';
}
}
}
?>
<-- page de connexion -->
<?php
}
?> |
Dans une autre page, je souhaite vérifier les variables 'logged_in' et 'admin' sont vraie, j'ai donc fait cela :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <?php
session_start();
include_once('../includes/connection.php');
if(isset($_SESSION['logged_in']) and isset($_SESSION['admin'])) {
?>
<-- page voulue -->
<?php
} else {
header('Location:index.php');
}
?> |
Et malgré le fait que isset($_SESSION['logged_in']) revoie vrai, celui pour 'admin' renvoie faux... J'utilise EasyPHP-DevServer 17.0, Apache 2.4.25 x86 - PHP 5.6.30 x86, MySQL 5.7.17 x86 et phpMyAdmin 4.7.0. Je vous mets également mon fichier connection.php (même si je ne pense pas que ça ait un lien avec le problème) :
Code:
1 2 3 4 5 6 7 8 9 10
| <?php
try {
$pdo = new PDO('mysql:host=localhost;dbname=cms', 'root', '');
} catch(PDOException $e) {
echo $e;
exit('Database error.');
}
?> |
Quelqu'un pourrait me dire ce qui ne va pas ? Je suis extrêmement débutant en PHP, donc si ça se trouve c'est une erreur toute bête mais j'ai rien trouvé malgré mes recherches :pleure: