Problème PHP -> Session

Fermé
Herodion - 17 juil. 2009 à 10:17
 Herodion - 20 juil. 2009 à 21:49
Bonjour,
Je suis actuellement en pleine création d'un jeu sur internet.
J'ai déjà bien avancé, mais là, je suis bloqué pour un sacré bout de temps si on ne m'aide pas...

Mon problème étant:
J'aimerais que, quand le joueur se connecte, son nom s'affiche dans la sidebar.

DONC!!!
Pour se faire, j'ai vu partout qu'il fallait utiliser des variables de session ($_SESSION).
Ok! mais... aucun tuto essayer jusqu'alors n'a réussi à fonctionner car,
pour que cela marche, il faut récupérer le login qu'entre le joueur au moment de sa connexion dans le formulaire de la page connexion.php. Pour ensuite récupérer cette info sur la page sidebar.php, qui en fait est un include.

Voilà!
Je pense que j'ai bien posé mon problème.
Dans l'attente d'une réponse, je continu à scruter le web pour essayer d'élucider ce mystère.

36 réponses

Bonjour

Ben non il n'est pas bien posé ton problème. Je n'ai pas vu où tu as dit que quelque chose ne marchait pas.
Tu as seulement dit
pour que cela marche, il faut récupérer le login qu'entre le joueur au moment de sa connexion dans le formulaire de la page connexion.php. Pour ensuite récupérer cette info sur la page sidebar.php, qui en fait est un include.
Et alors ? Que sidebar.php soit un include ne gêne en rien du tout l'utilisation des variables de session
0
Effectivement, j'ai oublié ce point et j'en suis désolé.
Déjà à la base, la balise <?php session_start; ?> ne fonctionne pas.
Elle me met une grosse erreur.
Ensuite, pour tout les tutos, ils n'indiquent aucunement les endroits où placer le code qu'ils donnent.
Il montre un bout de code en disant voilà il faut ça.
Je ne comprend vraiment rien à leur histoire.
Déjà, dans la page sidebar.php, que faut-il que je mette?
Pour l'instant j'ai ça:

<div id="secondaryContent">

<? if(empty($_COOKIE["ID_UTILISATEUR"])) { ?>
<h3>Identification</h3>
<p>
<a href="inscription.php">Créer un compte utilisateur</a>
<a href="connexion.php">Connexion</a>
</p>
<? } else { ?>
<h3>Infos du joueur</h3>

<? } ?>
</div>
<?php mysql_close(); ?>

C'est après "infos du joueur" que je voudrais placer son nom.
J'espère avoir été plus clair...
0
salut ! j'ai une petite idée mais avant je voudrais étre sur d'avoir tout compris a ton problème. Tu as une page avec un login et dans cette page tu veus récupéré le nom de ton joueur pour l'afficher dans une autre page c'est bien sa ??
0
En fait, mon but est de récupérer le login que le joueur rentre dans le formulaire de connexion carte cela correspond aussi au nom du joueur.
Donc récupérer le login écrit dans le formulaire, pour faire un echo dans la sidebar.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
oki c'est bien ske je pensais.
j'ai fait un truc un peu comme sa avec des carte de visite.

en fait met ton login dans une variable genre $login. ensuite tu doit récupéré ta variable pour la mettre dans ta page sa donne sa :
<a href = "\tapage.php?
utilisateur=<?php echo urlencode ($login); >

ton idée du $_SESSION était pas mal mais utilise plutot $_GET
donc dans ton autre pagela tu dit la récupéré :
$login = $_GET['utiliateur'];

et pour l'afficher un echo ne ferait t'il pas l'affaire ??
donc voila essaie ça et tiens moi au courant
0
Je ne te suis pas très bien...
Qu'entend-tu par :"met ton login dans une variable genre $login."?
0
ben ton utilisateur qui va se créer un compte va bien taper un nom d'utilisateur ??
je veus donc dire de mettre se nom d'utilisateur dans une variable.
0
Ok mais comment récupérer son login justement?
Il y a un code?
Car là est mon principal problème.
0
je peus voir ton code qui concerne ton login sil te plait.
0
<?

// Redirige l'utilisateur s'il est déjà identifié
if(isset($_COOKIE["ID_UTILISATEUR"]))
{
header("Location: index.php");
}
else
{

// Formulaire visible par défaut
$masquer_formulaire = false;

// Une fois le formulaire envoyé
if(isset($_POST["BT_Envoyer"]))
{

// Vérification de la validité des champs
if(!ereg("^[A-Za-z0-9_]{2,20}$", $_POST["TB_Nom_Utilisateur"]))
{
$message = "Votre nom d'utilisateur doit comporter entre 2 et 20 caractères<br />\n";
$message .= "L'utilisation de l'underscore est autorisée";
}
elseif(!ereg("^[A-Za-z0-9]{6,}$", $_POST["TB_Mot_de_Passe"]))
{
$message = "Votre mot de passe doit comporter au moins 6 caractères";
}
else
{

// Connexion à la base de données
// Valeurs à modifier selon vos paramètres configuration
mysql_connect("sql.free.fr", "****", "****");
mysql_select_db("****");

// Sélection de l'utilisateur concerné
$result = mysql_query("
SELECT ID_Utilisateur, Nom_Utilisateur, Mot_de_Passe, Compte_Active
FROM Comptes_Utilisateurs
WHERE Nom_Utilisateur = '" . $_POST["TB_Nom_Utilisateur"] . "'
");

// Si une erreur survient
if(!$result)
{
$message = "Une erreur est survenue lors de la tentative de connexion";
}
else
{

// Si aucun utilisateur n'a été trouvé
if(mysql_num_rows($result) == 0)
{
$message = "Le nom d'utilisateur " . $_POST["TB_Nom_Utilisateur"] . " n'existe pas";
}
else
{

// Récupération des données
$row = mysql_fetch_array($result);

// Si le compte n'a pas été activé
if($row["Compte_Active"] == 0)
{
$message = "Votre compte utilisateur n'a pas été activé";
}
else
{

// Vérification du mot de passe
if(md5($_POST["TB_Mot_de_Passe"]) != $row["Mot_de_Passe"])
{
$message = "Votre mot de passe est incorrect";
}
else
{

// Définition du temps d'expiration des cookies
$expiration =
empty($_POST["CB_Connexion_Automatique"]) ? 0 : time() + 90 * 24 * 60 * 60;

// Création des cookies
setcookie("ID_UTILISATEUR", $row["ID_Utilisateur"], $expiration, "/");
setcookie("NOM_UTILISATEUR", $row["Nom_Utilisateur"], $expiration, "/");

// Fermeture de la connexion à la base de données
mysql_close();

// Redirection de l'utilisateur
header("Location: index.php");

}

}

}

}

// Fermeture de la connexion à la base de données
mysql_close();

}

}



?>
<?php include ('/projet/header.php'); ?>
<div id="content">
<div id="xbg1"></div>
<div id="primaryContentContainer">
<div id="primaryContent">
<? if(isset($message)) { ?>
<p><?= $message; ?></p>
<? } if($masquer_formulaire != true) { ?>
<form action="http://<?= $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"]; ?>" method="post">
<p>
Nom d'utilisateur : <input type="text" name="TB_Nom_Utilisateur" />
</p>
<p>
Mot de passe : <input type="password" name="TB_Mot_de_Passe" />
</p>

<p>
<input type="submit" name="BT_Envoyer" value="Envoyer" />
</p>
</form>
<? } ?>
</div>
</div>
<?php include ('/projet/sidebar.php'); ?>
<div class="clear"></div>
</div>
<?php include ('/projet/footer.php');?>
0
Ah voila...
Donc dans ta table tu récupère ceci : $row["Nom_Utilisateur"]
ce qui devrait donner : $login = $row["Nom_Utilisateur"];
et aprés c'est les même instruction que tout a l'heure.
0
Euh attend j'ai un problème là...
Il me met une erreur à la dernière ligne.
J'essaye de régler ça et je teste ton truc ;)
0
ok ta du oublié de fermé une balise. surtout tiens moi au courant i jamais sa marche pas
0
Alors sa marche ??
0
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 126
17 juil. 2009 à 14:28
En attandant de voir si ton truc fonctionne, je tiens à te dire que si tu écris ceci : <?php session_start; ?>
c'est normal qu'il y ai une erreur, tu oublie les parenthèses.
essaye ceci : <?php session_start(); ?>
0
Bah je ne peux pas encore tester, je n'arrive pas à trouver ce qu'il cloche...
0
ta toujours un problème sur ta dernire ligne ???? ou c sr ske je té filé ???
0
dsl g changé de pseudo XD
0
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 126
17 juil. 2009 à 15:35
Quel est le message d'erreur?
0
Alors mon problème est reglé.
Maintenant ton truc.
J'ai mis ça :
// Création des cookies
setcookie("ID_UTILISATEUR", $row["ID_Utilisateur"], $expiration, "/");
setcookie("NOM_UTILISATEUR", $row["Nom_Utilisateur"], $expiration, "/");
$login = $row["Nom_Utilisateur"]


C'est bon?

Et après sur ma sidebar je met quoi?
0