Question sur les sessions et la transmissions de plusieurs variables
flexi2202
Messages postés
3822
Date d'inscription
Statut
Membre
Dernière intervention
-
flexi2202 Messages postés 3822 Date d'inscription Statut Membre Dernière intervention -
flexi2202 Messages postés 3822 Date d'inscription Statut Membre Dernière intervention -
bonjour a tous
si j ai bien compris le système des variables dans un espace membres
elles sont déclarées dans la page de connexion dans session_start
et ensuite on peux les appeler dans les autres pages a condition d ouvrir une session
donc dans mon exemple ci dessous c est la variable user qui est déclarée et peux être appelée dans les autres pages
jusque la ca va
mais comment faire pour faire passer plusieurs variables(email, et l ip par exemple en plus du pseudo
merci de l aide
voici la page de connexion
et voici une partie de la page ou je veux afficher le pseudo , l ip et le mail
si j ai bien compris le système des variables dans un espace membres
elles sont déclarées dans la page de connexion dans session_start
et ensuite on peux les appeler dans les autres pages a condition d ouvrir une session
donc dans mon exemple ci dessous c est la variable user qui est déclarée et peux être appelée dans les autres pages
jusque la ca va
mais comment faire pour faire passer plusieurs variables(email, et l ip par exemple en plus du pseudo
merci de l aide
voici la page de connexion
<?php session_start(); require_once 'config.php'; if(!empty($_POST['email']) && !empty($_POST['password'])) { $email = htmlspecialchars($_POST['email']); $password = htmlspecialchars($_POST['password']); $check = $bdd->prepare('SELECT pseudo, email, password FROM utilisateurs WHERE email = ?'); $check->execute(array($email)); $data = $check->fetch(); $row = $check->rowCount(); if($row == 1) { if(filter_var($email, FILTER_VALIDATE_EMAIL)) { if(password_verify($password, $data['password'])) { $_SESSION['user'] = $data['pseudo']; header('Location: accueil-peche-perle.php'); die(); }else{ header('Location: index.php?login_err=password'); die(); } }else{ header('Location: index.php?login_err=email'); die(); } }else{ header('Location: index.php?login_err=already'); die(); } }
et voici une partie de la page ou je veux afficher le pseudo , l ip et le mail
<?php session_start(); if(!isset($_SESSION['user'])){ header('Location:index.php'); die(); } bla bla bla <h1 class="p-5">Bonjour ! <?php echo $_SESSION['user']; ?></h1> bla bla ?>
EDIT : Question qui concerne directement le langage PHP ... donc déplacée dans le forum .. PHP !
A voir également:
- Question sur les sessions et la transmissions de plusieurs variables
- Le fichier contient un programme écrit en python. le programme construit un mot secret mais il ne l'affiche pas. modifiez ce programme afin que à chaque itération de la boucle : la variable a augmente de 2 la variable b diminue de 1 ajoutez une instruction pour faire afficher le mot secret construit. quel est ce mot secret ? ✓ - Forum Python
- Veuillez ouvrir une session avec les privilèges du gestionnaire ✓ - Forum Windows
- Www.yahoomail.com ouverture de session - Forum Yahoo mail
- Veuillez ouvrir une session avec les privilèges de gestionnaire - Forum Windows 10
- Teamviewer code de session expiré ✓ - Forum logiciel systeme
5 réponses
Bonjour,
La variable $_SESSION fonctionne comme un Array Associatif....
Tu peux donc le manipuler exactement de la même façon ...
La variable $_SESSION fonctionne comme un Array Associatif....
Tu peux donc le manipuler exactement de la même façon ...
bonjour
merci pour la reponse
je pourrais donc dans al page de connexion écrire ceci
merci pour la reponse
je pourrais donc dans al page de connexion écrire ceci
$_SESSION['user'] = $data['pseudo']; $_SESSION['mail']=$mail; $_SESSION['ip']=$ip;
Oui.
Par contre je ne vois pas l'utilité de transporter l'ip de l'utilisateur en session...
et puis, en général, je "regrope" les informations "communes" ensemble.
Typiquement, pour l'utilisateur, ma variable de session sera du style
(ce qui implique un changement de code dans tes autres pages :
Au lieu de récupérer le pseudo par :
Tu le récupèreras via
Par contre je ne vois pas l'utilité de transporter l'ip de l'utilisateur en session...
et puis, en général, je "regrope" les informations "communes" ensemble.
Typiquement, pour l'utilisateur, ma variable de session sera du style
$_SESSION['user'] = array('id'=>$data['id'], 'pseudo'=>$data['pseudo'], 'mail'=>$mail) ;
(ce qui implique un changement de code dans tes autres pages :
Au lieu de récupérer le pseudo par :
$pseudo = $_SESSION['user'];
Tu le récupèreras via
$pseudo = $_SESSION['user']['pseudo']; //ou plus proprement : $pseudo = !empty($_SESSION['user']['pseudo']) ? $_SESSION['user']['pseudo'] : NULL;
bonjour jordane
merci pour ton aide, cela fait depuis plusieurs jours que je cherche a comprendre cette transmission de page en page
non l ip cela était l exemple simplement
ah ben oui du coup je comprends mieux la variable de session
par contre ce que j ai un peu plus de mal a comprendre
c est la récupération avec le code donnée
et donc mon session_start sur ma deuxième page devient
merci pour ton aide, cela fait depuis plusieurs jours que je cherche a comprendre cette transmission de page en page
non l ip cela était l exemple simplement
ah ben oui du coup je comprends mieux la variable de session
par contre ce que j ai un peu plus de mal a comprendre
c est la récupération avec le code donnée
//ou plus proprement : $pseudo = !empty($_SESSION['user']['pseudo']) ? $_SESSION['user']['pseudo'] : NULL;
et donc mon session_start sur ma deuxième page devient
<?php session_start(); if(!isset($pseudo = !empty($_SESSION['user']['pseudo']) ? $_SESSION['user']['pseudo'] : NULL;)){ header('Location:index.php'); die(); }
Non....
La tu écris un peu n'importe quoi ...
Déjà faut comprendre la ligne
C'est ce qu'on appel l'écriture TERNAIRE ( une sorte de IF/ELSE )
Ce qui, en écriture "ancienne" .. reviendrait à faier
A noter que le !empty fait déjà un isset .. donc pas besoin de mettre les deux ...
!empty ( à lire NOT EMPTY ) signifie ( en anglais ) : PAS VIDE ....
Donc, on vérifie que la variable existe et n'est pas vide ( ni false , ni égale à zéro )
et donc, ton code devient
La tu écris un peu n'importe quoi ...
Déjà faut comprendre la ligne
//ou plus proprement : $pseudo = !empty($_SESSION['user']['pseudo']) ? $_SESSION['user']['pseudo'] : NULL;
C'est ce qu'on appel l'écriture TERNAIRE ( une sorte de IF/ELSE )
Ce qui, en écriture "ancienne" .. reviendrait à faier
if(!empty($_SESSION['user']['pseudo'])) { $pseudo= $_SESSION['user']['pseudo']; }else{ $pseudo= NULL; }
A noter que le !empty fait déjà un isset .. donc pas besoin de mettre les deux ...
!empty ( à lire NOT EMPTY ) signifie ( en anglais ) : PAS VIDE ....
Donc, on vérifie que la variable existe et n'est pas vide ( ni false , ni égale à zéro )
et donc, ton code devient
session_start(); // Récupération PROPRE des variables AVANT de les utiliser : $pseudo = !empty($_SESSION['user']['pseudo']) ? $_SESSION['user']['pseudo'] : NULL; //On vérifie si le pseudo est renseigné dans la variable de session.. sinon.. on redirige : if(!$pseudo){ header('Location:index.php'); exit; // evite les die() }
Merci pour l aide et l explication
j avoue que j ai très dur avec ce php
pourtant ce n est pas dire que je ne regarde pas des tutos ou autre
je trouve pas mal de solutions
mais des fois je beuge(surement l âge )
des que j en aurais fini avec mon site
je vais m attaquer a une formation , je trouve ce langage super cool
je viens donc d essayer ce que tu viens de m envoyer
mais lorsque je veux afficher le pseudo avec un echo , cela ne me retourne rien sur les autres pages
j ai essaye avec ceci
j avoue que j ai très dur avec ce php
pourtant ce n est pas dire que je ne regarde pas des tutos ou autre
je trouve pas mal de solutions
mais des fois je beuge(surement l âge )
des que j en aurais fini avec mon site
je vais m attaquer a une formation , je trouve ce langage super cool
je viens donc d essayer ce que tu viens de m envoyer
mais lorsque je veux afficher le pseudo avec un echo , cela ne me retourne rien sur les autres pages
j ai essaye avec ceci
<h1 class="p-5">Bonjour ! <?php echo $_SESSION['pseudo']; ?></h1>
Donc.. encore une fois ....
ON RECUPERE PROPREMENT LES VARIABLES AVANT DE LES UTILISER
.. ici... ça donnerait
ON RECUPERE PROPREMENT LES VARIABLES AVANT DE LES UTILISER
.. ici... ça donnerait
<?php // Récupération PROPRE des variables AVANT de les utiliser : $pseudo = !empty($_SESSION['user']['pseudo']) ? $_SESSION['user']['pseudo'] : ""; // là, si la variable de session n'existe pas.. ça retournera une chaine vide "" . ?> <h1 class="p-5">Bonjour ! <?php echo $pseudo; ?></h1>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ah ok
super cela fonctionne enfin , un tout grand merci
voila la source de mes problèmes et de mes essais
pourtant je suis allé voir des tutos
pffff pourtant j ai passe toute une matinée a regarder un tuto
et dans le code lorsqu il appelle la variable
lls écrivent au milieu du code
ce morceau de code
le soucis c est que c est pas évident de trouver des tutos sérieux
alors pour résumer si je comprends bien (car j aime comprendre aussi
je déclare mes variables dans la page de connexion (ce qui est logique )
ensuite dans chaque session_start de chaque page je récupère mes variables
et dans le code a nouveau je les récupères si je veux afficher le contenu d une variable
je pensais que le fait qu elles soient dans le session_start étaient suffisant
super cela fonctionne enfin , un tout grand merci
voila la source de mes problèmes et de mes essais
pourtant je suis allé voir des tutos
pffff pourtant j ai passe toute une matinée a regarder un tuto
et dans le code lorsqu il appelle la variable
lls écrivent au milieu du code
ce morceau de code
<h1 class="p-5">Bonjour ! <?php echo $pseudo; ?></h1>
le soucis c est que c est pas évident de trouver des tutos sérieux
alors pour résumer si je comprends bien (car j aime comprendre aussi
je déclare mes variables dans la page de connexion (ce qui est logique )
ensuite dans chaque session_start de chaque page je récupère mes variables
et dans le code a nouveau je les récupères si je veux afficher le contenu d une variable
je pensais que le fait qu elles soient dans le session_start étaient suffisant