Problème de SESSION ..
Résolu
Troski
-
Dynamix Messages postés 206 Statut Membre -
Dynamix Messages postés 206 Statut Membre -
Bonjour, :] !
Depuis quelques joueurs, j'ai un problème que je n'arrive pas à illucider !
Je vais vous expliquer mon problème le plus simplement possible ;).
J'ai 3 pages:
-Inscription
-Connexion
-Espace membre
Ma table contiens 6 entrées:
-Pseudo, Mot de passe
-Adresse email, date d'inscription
-Avatar, bannissement.
____________________________
L'inscription à mon site réclame:
-Le pseudo, l'adresse e_mail, le mot de passe.
Une fois inscris je suis directement vers ma page membre.php.
Quand je veux afficher mes sessions, seulement les sessions Pseudo, Mot de passe et Adresse email s'affichent (sur 6 sessions).
Quand je me connecte, mon site réclame:
-Le pseudo, le mot de passe.
Une fois connecté, je suis redirigé vers ma page membre.php.
Quand je veux afficher mes sessions, seulement les sessions Pseudo et Mot de passe saffichent (sur 6 sessions).
____________________________
Ma question:
-Comment afficher toutes mes sessions (les entrées 6 qui sont dans ma base de données).
Voici mes réquêtes:
Inscription:
Connexion:
Si besoin d'autres informations, aucun problème ;).
Un grand merci pour votre aide ! En esperant avoir été compréhensible =).
Note: Chaques entrées de ma table possèdent une $_SESSION chacune. Et je n'ai pas oublié la fonction session_start(); .
Depuis quelques joueurs, j'ai un problème que je n'arrive pas à illucider !
Je vais vous expliquer mon problème le plus simplement possible ;).
J'ai 3 pages:
-Inscription
-Connexion
-Espace membre
Ma table contiens 6 entrées:
-Pseudo, Mot de passe
-Adresse email, date d'inscription
-Avatar, bannissement.
____________________________
L'inscription à mon site réclame:
-Le pseudo, l'adresse e_mail, le mot de passe.
Une fois inscris je suis directement vers ma page membre.php.
Quand je veux afficher mes sessions, seulement les sessions Pseudo, Mot de passe et Adresse email s'affichent (sur 6 sessions).
Quand je me connecte, mon site réclame:
-Le pseudo, le mot de passe.
Une fois connecté, je suis redirigé vers ma page membre.php.
Quand je veux afficher mes sessions, seulement les sessions Pseudo et Mot de passe saffichent (sur 6 sessions).
____________________________
Ma question:
-Comment afficher toutes mes sessions (les entrées 6 qui sont dans ma base de données).
Voici mes réquêtes:
Inscription:
'SELECT count(*) FROM membre WHERE Pseudo="'.mysql_real_escape_string($_POST['Pseudo']).'" LIMIT 1';
Connexion:
'SELECT * FROM membre WHERE Pseudo="'.mysql_real_escape_string($_POST['Pseudo']).'" AND Mot_de_Passe="'.mysql_real_escape_string($_POST['Mot_de_Passe']).'" LIMIT 1';
Si besoin d'autres informations, aucun problème ;).
Un grand merci pour votre aide ! En esperant avoir été compréhensible =).
Note: Chaques entrées de ma table possèdent une $_SESSION chacune. Et je n'ai pas oublié la fonction session_start(); .
A voir également:
- Problème de SESSION ..
- Session invalide ou obsolète - Forum Consommation & Internet
- Veuillez ouvrir une session avec les privilèges du gestionnaire ✓ - Forum Jeux vidéo
- Teamviewer code de session expiré - Forum Logiciels
- Www.yahoomail.com ouverture de session - Forum Yahoo mail
- Estelle vient de verrouiller sa session d'ordinateur. que peut-on dire ? ✓ - Forum Windows 7
21 réponses
Ce n'est pas normal.
Il faut que tu envoies des données via ton formulaire, si tu as soumis ton formulaire le $_POST ne peut pas être vide...
De plus si j'ai bien compris, tu as un formulaire pour la connexion donc un champ mot de passe et pseudo en gros.
Et tu fais ça :
$_SESSION['Adresse_Email'] = $_POST['Adresse_Email'];
$_SESSION['Grade'] = $_POST['Grade'];
$_SESSION['Avatar'] = $_POST['Avatar'];
$_SESSION['Bannissement'] = $_POST['Bannissement'];
Hors dans ton formulaire tu ne dois pas avoir Grade, Adresse mail etc...
Je me trompe?
Il faut que tu envoies des données via ton formulaire, si tu as soumis ton formulaire le $_POST ne peut pas être vide...
De plus si j'ai bien compris, tu as un formulaire pour la connexion donc un champ mot de passe et pseudo en gros.
Et tu fais ça :
$_SESSION['Adresse_Email'] = $_POST['Adresse_Email'];
$_SESSION['Grade'] = $_POST['Grade'];
$_SESSION['Avatar'] = $_POST['Avatar'];
$_SESSION['Bannissement'] = $_POST['Bannissement'];
Hors dans ton formulaire tu ne dois pas avoir Grade, Adresse mail etc...
Je me trompe?
Résultat:
Les deux premieres sessions fonctionnes ^^'..
Mais pas les autres.
Note: Pas mal cette fonction ! Il faudra que je m'en rapelle ^^
array 'Pseudo' => string 'PSEUDO' (length=4) 'Mot_de_Passe' => string 'MDP' (length=8) 'Adresse_Email' => null 'Grade' => null 'Avatar' => null 'Bannissement' => null
Les deux premieres sessions fonctionnes ^^'..
Mais pas les autres.
Note: Pas mal cette fonction ! Il faudra que je m'en rapelle ^^
Oui je te conseille cette fonction, très utile pour débugger. :)
Sinon on peut avoir le code où tu crées tes variables de session?
Sinon on peut avoir le code où tu crées tes variables de session?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Oki, merci pour l'astuce ^^.
Voici pour mon module de connexion, par exemple (celui d'inscription n'étant pas très different):
Voici pour mon module de connexion, par exemple (celui d'inscription n'étant pas très different):
<?php
session_start();
if (isset($_SESSION['Pseudo']))
{
header ('Location: index.php');
}
/*
Parcour du formulaire de connexion.
*/
if (isset($_POST['Connexion']) && $_POST['Connexion'] == 'Connexion')
{
if ((isset($_POST['Pseudo']) && !empty($_POST['Pseudo'])) && (isset($_POST['Mot_de_Passe']) && !empty($_POST['Mot_de_Passe'])))
{
// Connexion à la base de donnée.
include("Connexion_Base.php");
// Vérification de la disponibilité des champs.
$sql = 'SELECT * FROM membre WHERE Pseudo="'.mysql_real_escape_string($_POST['Pseudo']).'" AND Mot_de_Passe="'.mysql_real_escape_string($_POST['Mot_de_Passe']).'" LIMIT 1';
$req = mysql_query($sql);
$data = mysql_fetch_array($req);
if (isset($data['Pseudo']) && !empty($data['Pseudo']) && $data['Mot_de_Passe'] == $_POST['Mot_de_Passe'])
{
$_SESSION['Pseudo'] = $_POST['Pseudo'];
$_SESSION['Mot_de_Passe'] = $_POST['Mot_de_Passe'];
$_SESSION['Adresse_Email'] = $_POST['Adresse_Email'];
$_SESSION['Grade'] = $_POST['Grade'];
$_SESSION['Avatar'] = $_POST['Avatar'];
$_SESSION['Bannissement'] = $_POST['Bannissement'];
include_once "membre.php";
exit();
}
// Traitement des données envoyées (négatives).
elseif ($_SESSION['Pseudo'] != $_POST['Pseudo'] && $_SESSION['Mot_de_Passe'] != $_POST['Mot_de_Passe'])
{
$erreur_1 = 'Vous avez spécifiez des indentifiants incorrects.';
}
// Traitement des données envoyées (inconnues).
else
{
$erreur_fatale = 'Un problème technique inconnu est apparut.';
$erreur_fatale = 'Veuillez contacter un administrateur pour plus d\'informations.';
}
}
else
{
$erreur_2 = 'Veuillez compléter tous les champs du formulaire de connexion.';
}
}
?>
Erf désoler, je n'ai pas vu que la formation du script allait être modifiéµ :/.
J'ai mis en valeur la création des session [gras].
J'ai mis en valeur la création des session [gras].
Ah, désoler !
J'ai du me tromper en insérant la fonction :S.
Tout mes excuse, voici le résultat:
(Dans la page membre.php)
Pour les différentes sessions..
Je ne sais pas comment m'y prendre, mais par exemple, dans ma page membre.php j'ai ce script:
Par défaut, l'entrée Grade vaut 0.
Donc j'aimerais savoir comment mettre en place ce script :S..
(Sachant que $_SESSION['Grade'] n'existe donc pas :/).
Donc en clair.. Comment récupérer telle ou telle entrée du membre .. ?
J'ai du me tromper en insérant la fonction :S.
Tout mes excuse, voici le résultat:
array 'Pseudo' => string Pseudo(length=4) 'Mot_de_Passe' => string MDP(length=8) 'Connexion' => string 'Connexion' (length=9)
(Dans la page membre.php)
Pour les différentes sessions..
Je ne sais pas comment m'y prendre, mais par exemple, dans ma page membre.php j'ai ce script:
if ($_SESSION['Grade'] = 1) echo 'Statu: Modérateur';
Par défaut, l'entrée Grade vaut 0.
Donc j'aimerais savoir comment mettre en place ce script :S..
(Sachant que $_SESSION['Grade'] n'existe donc pas :/).
Donc en clair.. Comment récupérer telle ou telle entrée du membre .. ?
Pourais tu me donner un vague exemple ?
Car j'ai fait de cette façon là :
Mais ca n'a pas l'air de fonctionner :/.
Car j'ai fait de cette façon là :
try
{
$Base = new PDO('secret défense :P');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$Requete = $Base->query('SELECT * FROM membre WHERE Pseudo="$_SESSION[\'Pseudo\']" LIMIT 1');
while ($Membre = $Requete->fetch())
{
$Membre['Pseudo'] = $_SESSION['Pseudo'];
$Membre['Mot_de_Passe'] = $_SESSION['Mot_de_Passe'];
$Membre['Adresse_Email'] = $_SESSION['Adresse_Email'];
$Membre['Date_Inscription'] = $_SESSION['Date_Inscription'];
$Membre['Avatar'] = $_SESSION['Avatar'];
$Membre['Bannissement'] = $_SESSION['Bannissement'];
Mais ca n'a pas l'air de fonctionner :/.
Toujours ce problème d'affichage :/.
Quand je me connecte, par exemple, je n'arriche pas à afficher l'adresse email, ca n'affiche rien :(.
Quand je me connecte, par exemple, je n'arriche pas à afficher l'adresse email, ca n'affiche rien :(.
Oui =/..
$Requete = $Base->query('SELECT * FROM membre WHERE Pseudo="$_SESSION[\'Pseudo\']" LIMIT 1');
while ($Membre = $Requete->fetch())
{
$_SESSION['Pseudo'] = $Membre['Pseudo'];
$_SESSION['Mot_de_Passe'] = $Membre['Mot_de_Passe'];
$_SESSION['Adresse_Email'] = $Membre['Adresse_Email'];
$_SESSION['Date_Inscription'] = $Membre['Date_Inscription'];
$_SESSION['Avatar'] = $Membre['Avatar'];
$_SESSION['Bannissement'] = $Membre['Bannissement'];
}
$Requete->closeCursor();
?>
Bonsoir !
Enfet, j'aimerais d'abord vous remercier pour le temps occasionné à m'avoir aidé ;).
Mais, oui, le problème persiste toujours :/.
Je pense que cela vient de ma requête (que j'ai essayé de développer) dans ma page membre.php :
Pourtant, cette requête signifit bien:
Prendre toutes les entrées dans la base membre quand le pseudo et le mot de passe sont équivalent à celui de l'utilisateur (pour récupérer uniquement ses données, et non pas toutes les données de la base).
Mais ca n'y change rien.
Seulement le Pseudo et le mot de passe sont affichés. Même pas l'adresse E_mail =/.
Enfet, j'aimerais d'abord vous remercier pour le temps occasionné à m'avoir aidé ;).
Mais, oui, le problème persiste toujours :/.
Je pense que cela vient de ma requête (que j'ai essayé de développer) dans ma page membre.php :
$Requete = $Base->prepare('SELECT * FROM membre WHERE Pseudo = ? AND Mot_de_Passe = ? LIMIT 1');
$Requete->execute(array($_SESSION['Pseudo'], $_SESSION['Mot_de_Passe']));
while ($Membre = $Requete->fetch())
Pourtant, cette requête signifit bien:
Prendre toutes les entrées dans la base membre quand le pseudo et le mot de passe sont équivalent à celui de l'utilisateur (pour récupérer uniquement ses données, et non pas toutes les données de la base).
Mais ca n'y change rien.
Seulement le Pseudo et le mot de passe sont affichés. Même pas l'adresse E_mail =/.