$_SESSION[' '], $_POST[' ']
Résolu
salut790
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
salut790 Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
salut790 Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Salut à tous,
j'ai un problème avec ce code qui devrait créer un espace membre et permettre l'authentification, l'inscription fonctionne et on peut s'authentifier mais quand j'essaie de faire passer le nom, prénom, age ...etc ils ne s'affichent pas pourtant le login s'affiche lui.
Voici ma page d'authentification :
Et celle qui s'affiche après avoir cliqué sur "connexion" :
Je débute en php alors soyez indulgent :p
j'ai un problème avec ce code qui devrait créer un espace membre et permettre l'authentification, l'inscription fonctionne et on peut s'authentifier mais quand j'essaie de faire passer le nom, prénom, age ...etc ils ne s'affichent pas pourtant le login s'affiche lui.
Voici ma page d'authentification :
<?php // on teste si le visiteur a soumis le formulaire de connexion if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') { if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) { $base = mysql_connect("localhost", "root", ""); mysql_select_db ('bddimp', $base); // on teste si une entrée de la base contient ce couple login / pass $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_real_escape_string($_POST['login']).'" AND pass_md5="'.mysql_real_escape_string(md5($_POST['pass'])).'"'; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $data = mysql_fetch_array($req); //mysql_free_result($req); //mysql_close(); // si on obtient une réponse, alors l'utilisateur est un membre if ($data[0] == 1) { session_start(); $_SESSION['login'] = $_POST['login']; $_SESSION['nom'] = $_POST['nom']; $_SESSION['prenom'] = $_POST['prenom']; $_SESSION['age'] = $_POST['age']; $_SESSION['bio'] = $_POST['bio']; header('Location: membre.php'); exit(); } // si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe elseif ($data[0] == 0) { $erreur = 'Compte non reconnu.'; } // sinon, alors la, il y a un gros problème :) else { $erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.'; } } else { $erreur = 'Au moins un des champs est vide.'; } } ?> <html> <head> <title>Accueil</title> </head> <body> Connexion à l'espace membre :<br /> <form action="index.php" method="post"> Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br /> Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br /> <input type="submit" name="connexion" value="Connexion"> </form> <a href="inscription.php" rel="nofollow noopener noreferrer" target="_blank">Vous inscrire</a> <?php if (isset($erreur)) echo '<br /><br />',$erreur; ?> </body> </html>
Et celle qui s'affiche après avoir cliqué sur "connexion" :
<?php session_start(); if (!isset($_SESSION['login'])) { header ('Location: index.php'); exit(); } ?> <html> <head> <title>Espace membre</title> </head> <body> Bienvenue <?php echo htmlentities(trim($_SESSION['login'])); ?> !<br /> Nom : <?php echo htmlentities(trim($_SESSION['nom'])); ?> <br /> <a href="deconnexion.php" rel="nofollow noopener noreferrer" target="_blank">Déconnexion</a> </body> </html>
Je débute en php alors soyez indulgent :p
1 réponse
Bonjour
Le login vient du formulaire, normal que tu le récupères dans $_POST['login']. Mais les nom, prénom, etc... ne sont pas dans le formulaire de login. Il faut que tu les récupères dans ta base de données.
Au passage, si tu débutes, tu n'as aucune excuse d'utiliser l'interface mysql_ qui est dépréciée et même obsolète sur les versions récentes de PHP. Utilise mysqli_ ou PDO.
Il y aurait d'autre remarques, mais moins graves, on verra plus tard.
$_SESSION['login'] = $_POST['login']; $_SESSION['nom'] = $_POST['nom']; $_SESSION['prenom'] = $_POST['prenom']; $_SESSION['age'] = $_POST['age']; $_SESSION['bio'] = $_POST['bio'];
Le login vient du formulaire, normal que tu le récupères dans $_POST['login']. Mais les nom, prénom, etc... ne sont pas dans le formulaire de login. Il faut que tu les récupères dans ta base de données.
Au passage, si tu débutes, tu n'as aucune excuse d'utiliser l'interface mysql_ qui est dépréciée et même obsolète sur les versions récentes de PHP. Utilise mysqli_ ou PDO.
Il y aurait d'autre remarques, mais moins graves, on verra plus tard.
J'ai récupéré l'info de la bdd et ça marche !
Merci de m'avoir répondu :)