[html/php] bienvenu "Mr x" et déconnexion

the_jb Messages postés 731 Statut Membre -  
the_jb Messages postés 731 Statut Membre -
Bonjour,
j'ai réalisé un site dynamique, j'ai testé les entrées et sorties par la base de données tout est ok. maintenant petite touche esthétique :

J'aimerai savoir comment faire pour le "bienvenu Mr X" c'est à dire après s'être connecté en temps qu'utilisateur il y est marqué "bienvenu "son pseudo"" .

et en meme temps si vous savez pour la déconnexion faite m'en part merci à vous !

cordialement the_jb

34 réponses

  • 1
  • 2
Résumé de la discussion

Affichage d'un message de bienvenue personnalisé après connexion et gestion de la déconnexion dans un site PHP, en utilisant les sessions pour conserver l'identité de l'utilisateur et afficher son pseudo. Des solutions recommandent d'activer session_start(), de vérifier les champs du formulaire et, en cas de réussite, d'assigner le pseudo à une variable de session comme $_SESSION['connecte'], puis d'afficher ce pseudo. Pour la déconnexion, plusieurs approches consistent à détruire la session (session_destroy()) ou à nettoyer les variables et rediriger vers la page d'accueil, ce qui permet de prévenir les accès sans authentification. D'autres conseils évoquent l'importance de stocker uniquement l'identifiant et d'éviter d'exposer le mot de passe, et de sécuriser les échanges et les formulaires.

Bobot (l'IA à votre service)
  1. the_jb Messages postés 731 Statut Membre 58
     
    up !!!
    0
  2. Utilisateur anonyme
     
    Salut,

    pour afficher le pseudo (si tu utilise des session (ce que je te recommande) et non un cookie) fait comme suit:

    <?php echo "Bonjour ".$_SESSION['le_nom_de_ta_session_qui_contient_le_pseudo_du_membre_ou_id'];


    tu peut récuperer plus d'information sur ce membre en question en faisant comme suit:

    <?php
    $info_membre = mysql_query("SELECT * FROM la_table_membre WHERE pseudo = '".$_SESSION['pseudo']."'");
    $info_membre1 = mysql_fetch_array($info_membre);
    ?>


    PS: il faut, sur la page de connexion, attribuer à $_SESSION['pseudo'] comme valeur le pseudo du membre pour réaliser la requête ci-dessus.

    ensuite, tu peut récupérer tous les champs possible (sans mettre celui du mdp par exemple(aucune utilité et pas très sécurisé))

    par exemple, si ta table est comme ceci: id, pseudo, mail, mdp, date_inscription
    et que tu souhaite réuperer son id, tu fait:
    <?php echo "Votre id: ".$info_membre1['id']; ?>


    Pour la page de déconnexion:

    tu à deux solution (moi en ce qui me concerne, j'en vois deux)

    soit, sur la page membre tu met un lien de type espace-membre.php?action=deconnexion

    ou, directement une page deconnexion.php (ou deco.php, logout.php, bref, comme bon te semble)

    1er solution (?action=deconnexion):
    <?php
    if(isset($_GET['action']) AND $_GET['action'] == 'deconnexion') {
      session_start();
      $_SESSION = array();
      session_destroy(); // on détruit les session
      header("Location: index.php"); // redirection vers la page d'accueil de ton site
    }
    ?>

    <html>
    <head....

    2ème solution (page deconnexion.php):
    <?php
      session_start();
      $_SESSION = array();
      session_destroy(); // on détruit les session
      header("Location: index.php"); // redirection vers la page d'accueil de ton site
    ?>


    n'hésite pas pour plus d'aide.
    ++
    0
  3. the_jb Messages postés 731 Statut Membre 58
     
    Merci pour ta réponse je test tout ça des que j'ai fini je t'en donne des nouvelles
    0
  4. the_jb Messages postés 731 Statut Membre 58
     
    .je viens de me rendre compte que pour me connecté je pouvais marquer n'importe quoi dans le champ nom d'utilisateur et mot de passe pour acceder a la page utilisateur. Ma boucle n'est donc pas fini . . . je te met l'extrait :

    <body>
    <p>Pas encore inscrit ?<a href="formulairemilieu.html"> Cliquez ici !</a>
    <center><p><h1>se connecter</h1></p>
    <form action="interfaceUtmilieu.html">
    <p>Nom d'utilisateur : <input type="text" name="Nomutilisateur" value=""/></p>
    <p>Mot de passe : <input type="password" name="mdp" value=""/></p>
    <input type="submit" value="se connecter"/><input type="reset"/></center>
    </form>
    <p><a href="milieu.html">retour à la page d'accueil</a></p>
    <?php
    include ('connexion.php');
    $loggin='Nomutilisateur';
    $mdp='mdp';
    $req="SELECT pseudoUt, mdpUt FROM UTILISATEUR";
    $res=mysql_query($req)
    while ($loggin != $ligne[pseudoUt] && $mdp != $ligne[mdpUt])
    {
    $ligne=mysql_fetch_array
    }
    ?>
    </body>
    </html>

    .puis j'ai un nouveau soucis avec le passage entre la connexion et l'acces a l'interface utilisateur car enfaite toutes mes pages sont séparés en 2 donc j'ai un haut et un milieu cependant j'ai créer un haut-2 qui permet de mettre le "bienvenu Mr X" sauf qu'il ne veut pas s'afficher pourtant je précise bien qu'il doit apparaitre après s'être connecté. voila le code de haut-2.html , interfaceUtmilieu.html et interfaceUt.html

    [haut-2.html]

    <body>
    <div align="center">
    <table width="893" height="128" border="0" align="center" bordercolor="#FFFFFF">
    <tr>
    <td height="72" colspan="9"><div align="center">
    <table width="839" border="0" align="center" cellspacing="0">
    <tr>
    <td width="141"><div align="center"><img src="images%20fixes/logorex.jpg" width="69" height="68"></div></td>
    <td width="567"><div align="center">
    <p><span class="Style4">...</span></p>
    </div>
    </td>
    <td width="117"><div align="center" class="Style1">
    <p align="center"><script language="JavaScript" src="http://services.toccom.net/compteurs/compteur.php?num=1480"></script>
    <?php
    echo "Bonjour ".$_SESSION['pseudoUt'];
    ?>
    <p><a id="logout" href="deconnexion.php" title="Déconnexion">déconnexion</a></p>
    </div></td>
    </tr>
    </table>

    [interfaceUtmilieu.html]

    <body>
    <center><h2>Nous avons besoin de votre aide !</h2></center>
    <table width="590" border="0">
    <tr>
    <td width="450"><div align="left"><span class="Style1">veuillez remplir ce formulaire : </span></div></td>
    <td width="100"><div align="center"><a href="notation.php"><img src="images%20fixes/formulaire_icone.gif" width="50" height="60"></a></div></td>
    </tr>
    </table>
    <h2><a href="milieu.html">retour à l'accueil</a></h2>
    <br/><br/><br/><br/>
    <div align="center">

    [interfaceUt.html]

    <frameset rows="185,*" cols="*" framespacing="0" frameborder="no" border="0">
    <frame src="haut-2.html" name="topFrame" scrolling="No" noresize="noresize" id="topFrame" title="topFrame">
    <frame src="interfaceUtmilieu.html" name="mainFrame" id="mainFrame" title="mainFrame">
    </frameset>
    <noframes><body>
    </body>
    </noframes>
    <!-- Mirrored from www.cine-rex.com/ by HTTrack Website Copier/3.x [XR&CO'2006], Mon, 26 Feb 2007 15:08:38 GMT -->
    </html>

    si tu peux m'éclairer la dessus merci!
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. the_jb Messages postés 731 Statut Membre 58
     
    up ! besoin d'aide !
    0
  7. WebDesigner Messages postés 79 Statut Membre 12
     
    Si tu souhaites utiliser les variables de session comme identifiant et tester la connexion des utilisateurs : dans ta page login.php ou connexion

    <?php session_start(); 
     //commences toujours par session_start(); avant tout code php// 
    
    require ('connexion.php'); 
    
    $login = $_POST['Nomutilisateur]; 
    $passe = $_POST['mdp'];  
    
    $connect = mysql_connect($localhost, etc...) or die(mysql_error());  
    mysql_select_db($base_name);  
    
    $query_log = "SELECT * FROM $table WHERE user =\"$login\" AND password =\"$passe\""; 
    $result = mysql_query($query_log) or die(mysql_error());  
    
    if (mysql_num_rows($result) == 0) 
    {header ('location: index.php?connect=false');}  
    //renvoi vers la page d'erreur si aucun resultat n'a été trouvé, à toi de gérer avec un if isset// 
    
    else 
    { 
     $row = mysql_fetch_row($result); 
     $_SESSION['login'] = $row[1]; 
     $_SESSION['passe'] = $row[2]; 
     $_SESSION['email'] = $row[3]; 
      
     header ('location: pagedésirée.php'); 
    } 
    
    
    ?> 
    
    0
  8. the_jb Messages postés 731 Statut Membre 58
     
    Je n'y arrive pas . . .
    0
  9. WebDesigner Messages postés 79 Statut Membre 12
     
    Avec quelle page, tu test la connexion vers ta bdd ?

    Donnes moi le code de la page appellée par ton formulaire de connexion.
    dans ton <form method="POST" action="la page concernée">
    0
  10. the_jb Messages postés 731 Statut Membre 58
     
    j'ai ceci qui est [connexionmilieu.html]
    <body>
    <p>Pas encore inscrit ?<a href="formulairemilieu.html"> Cliquez ici !</a>
    <center><p><h1>se connecter</h1></p>
    <form action="interfaceUtmilieu.php">
    <p>Nom d'utilisateur : <input type="text" name="Nomutilisateur" value=""/></p>
    <p>Mot de passe : <input type="password" name="mdp" value=""/></p>
    <input type="submit" value="se connecter"/><input type="reset"/></center>
    </form>
    <p><a href="milieu.html">retour à la page d'accueil</a></p>
    <?php
    include ('connexion.php');
    $loggin='Nomutilisateur';
    $mdp='mdp';
    $req="SELECT pseudoUt, mdpUt FROM UTILISATEUR";
    $res=mysql_query($req)
    while ($loggin != $ligne[pseudoUt] && $mdp != $ligne[mdpUt])
    {
    $ligne=mysql_fetch_array
    }
    ?>
    </body>
    </html>

    qui est rediriger après connexion vers [interfaceUtmilieu.html] qui n'est pas fini car je suis entrain de chercher a faire quelque chose de plus simple . . .

    franchement je désespère . . . je mélange tout je ne m'y retrouve plus
    0
  11. WebDesigner Messages postés 79 Statut Membre 12
     
    La page concernée dans ton formulaire de connexion c'est "interfaceUtmilieu.php"

    Premier soucis, tu n'indiques pas à ton formulaire "method="POST", tu dois donc rectifier ceci :

    <form method="POST" action="interfaceUtmilieu.php">


    Ensuite, pourquoi indiquer tes variables dans cette page, si le formulaire cible celle-ci "interfaceUtmilieu.php" ?

    à quoi correspond pour toi cette page => interfaceUtmilieu.php?

    - la page de destination après la connexion ?
    - ou la page pour se connecter à ta bdd ?
    0
  12. the_jb Messages postés 731 Statut Membre 58
     
    (je t'ai envoyer un message privé)
    pour ce qui suit après la connexion c'est la page interfaceUtmilieu (juste après que l'utilisateur est entrer son identifiant et son mot de passe qu'il puisse accéder a une interface lui permettant ensuite de pouvoir noter un film par exemple) c'est pour cela que j'ai mis interfaceUtmilieu.php .
    0
  13. WebDesigner Messages postés 79 Statut Membre 12
     
    Voilà donc ton erreur, le formulaire cible cette page
    interfaceUtmilieu.php
    .

    Hors, c'est un formulaire de connexion, donc si un utilisateur rentre ses identifiants, et qu'il souhaite se connecter, on passe directement sur la page
    interfaceUtmilieu.php
    sans passer par une reconnaissance via ta base de données.

    Ce qu'il te faut donc, c'est de changer la cible du formulaire en
    login.php
    par exemple, et d'y mettre le code suivant dans cette page :

    <?php session_start(); 
    
    require ('connexion.php'); 
    
    $login = $_POST['Nomutilisateur]; 
    $passe = $_POST['mdp'];  
    
    $connect = mysql_connect($localhost, etc...) or die(mysql_error());
    // N'oublies pas de changer tes infos de connexion à ta bdd à la place de $locahost etc...//
    
    mysql_select_db($base_name);  // On sélectionne ta base à modifier $base_name
    
    $query_log = "SELECT * FROM $table WHERE user =\"$login\" AND password =\"$passe\"";
    // Penses à changer $table par le nom de la table de tes membres //
    
    $result = mysql_query($query_log) or die(mysql_error()); 
    
    if (mysql_num_rows($result) == 0) 
    {
    header ('location: erreur.php');
    } 
    //renvoi vers la page d'erreur si aucun résultat n'a été trouvé, à toi de gérer quelle page tu désire appeler en cas d'erreur // 
    
    else 
    { 
     $row = mysql_fetch_row($result); 
    
     $_SESSION['login'] = $row[1]; 
     $_SESSION['passe'] = $row[2];
      
     header ('location: pagedésirée.php');
    // Là seulement, tu y insères la page désirée, c'est à dire interfaceUtmilieu.php 
    } 
    
    
    0
  14. the_jb Messages postés 731 Statut Membre 58
     
    j'ai fait des petites modifs et j'ai ca

    Notice: Undefined index: Nomutilisateur in C:\Users\...\Desktop\EasyPHP-5.3.3\www\...\login.php on line 5

    Notice: Undefined index: mdp in C:\Users\...\Desktop\EasyPHP-5.3.3\www\...\login.php on line 6

    Notice: Undefined variable: base_name in C:\Users\...\Desktop\EasyPHP-5.3.3\www\...\login.php on line 12

    Notice: Undefined variable: table in C:\Users\...\Desktop\EasyPHP-5.3.3\www\...\login.php on line 14
    Erreur de syntaxe près de 'WHERE user ="" AND password =""' à la ligne 1
    0
  15. the_jb Messages postés 731 Statut Membre 58
     
    tout est résolu sauf la 12
    0
  16. the_jb Messages postés 731 Statut Membre 58
     
    j'ai mis ça a ma line 12

    mysql_select_db($gestfilm);

    ma BDD s'appelle gestfilm donc c'est bon ?

    il me dise
    Notice: Undefined variable: gestfilm in C:\Users\Jean-Baptiste\Desktop\EasyPHP-5.3.3\www\...\www.cine-rex.com\login.php on line 12
    Champ 'user' inconnu dans where clause
    0
  17. WebDesigner Messages postés 79 Statut Membre 12
     
    Vérifies si dans ta table regroupant tes utilisateurs et tes mots de passe, on retrouve bel et bien le champs "user"

    Autrement, change la requête SQL ou se trouve WHERE user=

    ou user est le champs de ta table
    0
  18. the_jb Messages postés 731 Statut Membre 58
     
    ça y est maintenant ca me met

    Objet non trouvé!
    L'URL requise n'a pu etre trouvée sur ce serveur. La référence sur la page citée semble être erronée ou perimée. Nous vous prions d'informer l'auteur de cette page de cette erreur.

    Si vous pensez qu'il s'agit d'une erreur du serveur, veuillez contacter le gestionnaire du site.

    Error 404
    127.0.0.1
    05/18/11 17:59:46
    Apache/2.2.16 (Win32) PHP/5.3.3

    normal parce que j'ai pas mis interfaceUtmilieu non ?
    0
  19. the_jb Messages postés 731 Statut Membre 58
     
    oui c'etait ça je l'ai corriger a la fin maintenant qu'il me dirige vers interfaceUtmilieu.php j'aimerai savoir comment faire pour mettre

    " bienvenue $pseudoUt" // pour afficher son pseudo //

    puis "nous avons besoin de votre aide ! veuillez choisir un film afin de le noter et le commenter" et la je met une liste déroulante avec tous les films que j'ai dans ma BDD puis un "input type=submit..." pour envoyer vers notation.php . comment je fais pour la liste déroulante avec tous les films dedans je sais déja que la liste se fait avec <select name=""><option value=""></option>
    0
  20. Utilisateur anonyme
     
    Re, dsl, j'avais pas cocher la coche "suivre la discution"

    Bon, premièrement:

    $login = $_POST['Nomutilisateur];
    $passe = $_POST['mdp'];

    C'est pas top du tout ! pas sécurisé !

    Pour ce qui est de $base_name webdesigner ne sais peut être pas que tu débute en php mais il faut définir la variable, exemple:
    $base_name = "gestfilm"; // nom de ta base de donnée à laquelle tu souhaite te connecté.


    Je reviens vers 20h30 pour le reste.
    0
  21. the_jb Messages postés 731 Statut Membre 58
     
    dois je donc remplacer $base_name = "gestfilm"; par mysql_select_db($gestfilm); ??

    Quelque chose qui ma bien fait rire : pour afficher le "bienvenue " $pseudoUt ça me met "bienvenue "nom_de_l'utilisateur" et pas le pseudo ... la je cherche pourquoi .. ça doit être au niveau du $_SESSION
    0
  • 1
  • 2