Variable $_SESSION['id'] non transmise
Résolu/Fermédelaville81 Messages postés 196 Date d'inscription jeudi 6 novembre 2008 Statut Membre Dernière intervention 2 juin 2024 - 16 janv. 2024 à 15:46
- Variable $_SESSION['id'] non transmise
- Document id lycamobile ✓ - Forum Mobile
- Switch l'image ne peut pas être transmise au téléviseur - Forum Nintendo Switch
- Id de membre perfect money - Forum Logiciels
- Vba range avec variable ✓ - Forum VB / VBA
3 réponses
22 déc. 2023 à 22:37
Bonjour,
Es tu sûr que ta variable $ligne_tab contient bien les informations désirées ?
Fais en un var_dump ( et pense bien à mettre en commentaire ta redirection pour pouvoir en voir le résultat ).
A noter que tu fais un fetch_assoc ... tu dois donc utiliser le "nom" des champs de ta table et non leur position dans l'array....
https://www.php.net/manual/fr/pdostatement.fetch.php
.
Au passage, évites d'utiliser l'instruction $pdo->query
A la place, utilise les requêtes préparées. ( et pense à activer l'affichage des erreurs PDO )
Voir le contenu de ce lien : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
23 déc. 2023 à 15:51
bonjour
Code modifié mais ne fonctionne toujours pas
<?php session_start(); ini_set('display_errors', 1); error_reporting(E_ALL); include ('entete.php'); if(isset($_POST['valider'])){ $login = $_POST['login']; $mdp = $_POST['mdp']; $query = "SELECT * FROM admin WHERE login = :login AND mdp = :mdp"; $datas = array(':login'=>$login, ':mdp'=>$mdp); try { $result = $pdo->prepare($query); $result->execute($datas); } catch (Exception $e) { echo " Erreur ! " . $e->getMessage(); echo " Les datas : "; print_r($datas); } if($result->rowCount()==0){ header('location:erreur.php'); }else{ $row = $result->fetch(); $_SESSION['id_admin'] = $row['id']; $_SESSION['log'] = $row['login']; $_SESSION['mdp'] = $row['mdp']; $_SESSION['nom_ad'] = $row['nom_ad']; $_SESSION['prenom_ad'] = $row['prenom_ad']; $_SESSION['sa'] = $row['sa']; $_SESSION['title'] = $row['title']; header('location:admin/gestion.php'); } }else{ ?> <div class="ligne_top"></div> <div class="row"> <div class="col-md-4"> <form method="post" action="index.php"> <div class="form-group"> <label for="login">Nom d'utilisateur</label> <input type="text" class="form-control" name="login" id="login" placeholder="Nom d'utilisateur"> </div> <div class="form-group"> <label for="password">Mot de passe</label> <input type="password" class="form-control" name="mdp" id="password" placeholder="Mot de passe "> </div> <button type="submit" class="btn btn-primary" name="valider">Valider</button> </form> </div> </div> <?php } include ('footer.php');
Je te souhaite de bonnes fêtes
23 déc. 2023 à 17:14
Tu as fait les var_dump que je t'ai demandé en désactivant les redirections ??
Si oui, ça t'affiche quoi ?
23 déc. 2023 à 17:15
Et ta variable $pdo elle est initialisée où ? dans quel fichier ?
16 janv. 2024 à 14:41
Bonjour, le var_dump($_SESSION);
me retourne
array(7) { ["id_admin"]=> string(1) "1" ["log"]=> string(7) "######" ["mdp"]=> string(3) "#######" ["nom_ad"]=> string(7) "######" ["prenom_ad"]=> string(8) "#######" ["sa"]=> string(1) "1" ["title"]=> string(35) "#########" }
Maintenant que j'ai fait ça le print_r($_SESSION) que j'a fait sur la page de redirection affiche bien "id_admin" qui ne passait pas avant.
Bizarre je ne comprends pas.
Concernant la variable $pdo elle est appelé dans le fichier entete.php.
connexion.php
try{ $pdo = new PDO('mysql:host=####.mysql.db;dbname=########', '#######', '#######'); $pdo->exec("SET CHARACTER SET utf8"); } catch(PDOException $e){ echo 'Connexion échouée : '.$e->getMessage(); exit(); }
16 janv. 2024 à 15:00
Donc si ton print_r te retourne les bonnes infos .. tu n'as plus de souci non ?
NB: Pour ta connexion en PDO, merci d'appliquer ce qui est indiqué ici :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
16 janv. 2024 à 15:46
Merci.
Comment je mets le sujet résolu ?