IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

session avec login et mot de passe [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 17
    Par défaut session avec login et mot de passe
    Bonjour à tous !

    Excusez-moi mais j'espère ne pas me tromper de forum.

    Je fais actuellement un site qui necessite une connexion à un espace membre. Dons j'ai essayé de faire une ouverture et fermeture de session avec login et mot de passe. Malheureusement mon code ne marche pas je ne sais pourquoi. Quand je l'éxécute, je n'ai aucun message. rien du tout. Aidez-moi s'il vous plaît !


    Voici mon code :

    1ère page : inscription.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    <?php
    //on teste si le visiteur a soumis le formulaire
     if(isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription')
     {
     // on teste l'existence des variables et on teste si elles ne sont pas vides
        if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm'])))
    	  { 
    	     // on teste les deux mots de passe
    		  if ($_POST['pass'] != $_POST['pass_confirm'])
    		     {
    			   $erreur = 'Les deux mots de passe ne sont pas identiques.';   
    			 }
    			   else 
    			       {
    				     $base = mysql_connect('localhost','root','');
    					 mysql_select_db('serveur', $base);
     
    					 // on recherche si ce login est déjà utilisé par un autre membre
    					 $sql = 'select count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"';
    					 $req = mysql_query($sql) or die ('Erreur SQL! <br/>'.$sql.'<br/>'.mysql_error ());
    					 $data = mysql_fetch_array($req);
    					     if ($data[0] == 0)
    						    {
    							   $sql = 'INSERT INTO membre VALUES("","'.mysql_escape_string($_POST['login']).'"","'.md5(mysql_escape_string($_POST['pass'])).'")';
    					           mysql_query($sql) or die ('Erreur SQL!'.$sql.'<br/>'.mysql_error());
     
    							   session_start();
    			                      $_SESSION['login'] = $_POST['login'];
    								  header ('location: membre.php');
    								  exit();
    						   }
    						   else
    						     {
    							   $erreur = 'Un membre possède déjà ce login.';
    							 }
    					}
    				}
    				else
    				  {
    				    $erreur = 'Au moins un des champs est vide.';
    				  }
    			}
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Inscription</title>
    </head>
     
    <body>
    Inscription à l'espace membre : <br/>
    <form action="inscription.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/>
    confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if(isset($_POST['pass_confirm'])) echo htmlentities(trim( $_POST['pass_confirm'])); ?>"><br/>
    <input type="submit" name="inscription" value="inscription">
    </form>
    <?php
    if(isset($erreur)) echo'<br/>', $erreur;
    ?> 
    </body>
    </html>
    2ème page : index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
     
    <?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('serveur', $base);
     
    					 // on recherche si une entrée de la base contient ce couple login/pass
    					 $sql = 'select count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5 = '.md5(mysql_escape_string($_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'];
    								  header ('location: membre.php');
    								  exit();
    						   }
    						   //si on ne trouve aucune reponse, le visiteur s'est trompé soit dans son login soit dans son mot de passe
    						   elseif ($data[0] == 0)
    						     {
    							   $erreur = 'Compte non valide. Réessayez!';
    							 }
    				               // Sinon, alors il y a un gro problème
    							   else
    				                    {
    				                       $erreur = 'Problème dans la base de données : plusieurs champs ont le mm identifiants de connexion.';
    				                    }
    			}
    			else
    			    {
    				   $erreur = 'Au moins un des champs est vide !';
    				}
    	}
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <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">Vous inscrire</a>
    <?php
    if(isset($erreur)) echo'<br/><br/>', $erreur;
    ?> 
    </body>
    </html>
    3ème page : membre.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <?php
    session_start();
    if(!isset($_SESSION['login']))
      {
        header ('location: index.php');
    	exit();
        }
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Espace membre</title>
    </head>
     
    <body>
    Bienvenue <?php echo htmlentities(trim($_SESSION['login']));?>!<br/>
    <a href="deconnexion.php">Déconnexion</a>
    </body>
    </html>
    4 ème page : deconnexion.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    session_start();
    session_unset();
    session_destroy();
        header ('location: index.php');
    	exit();
    ?>
    Merci de votre compréhension

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Attention aux majuscules/minuscules
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_POST['inscription'] == 'inscription'
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 17
    Par défaut
    Merci pour ta reponse. J'essaie et je te tiens informé.

  4. #4
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 17
    Par défaut
    Après essaie je n'ai plus de problème avec ma page d'inscription de membre et de déconnexion. mais j'ai un problème avec index.php. Je n'arrive pas à me connecter. Je suis en quête de la solution. Je travail dessus. Je vous tiens informé de la suite

  5. #5
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 17
    Par défaut
    Merci à toi "sabotage". il a fallu ton intervention pour que je puisse faire attention à ce que j'ai écrit. Mon problème est résolu.

    Mon problème était au niveau des majuscules et minuscules. "i" au lieu de "I" dans inscription.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_POST['inscription']) && $_POST['inscription'] == 'inscription')
    et puis "c" au lieu de "C" dans index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" name="connexion" value="Connexion">
    Merci pour ta contribution. Maintenant je veux envoyer un mail de confirmation au visiteur. Quelqu'un pourrait m'aider.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 92
    Par défaut
    Tu peux le faire dans ta page de traitement.

    Après que la personne soit inscrite en BDD, tu fais le bout de code pour envoyer un mail automatique et préécrit, tu as juste a mettre une variable qui rappelle l'adresse mail de cette personne. Dedans tu y met son pseudo, son mot de passe (pas encore passé au hachoir lol) et c'est bon.

    Pour le mot de passe tu fais un truc de ce genre avant d'inserer dans la BDD

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ....
     
    $mdp=$_POST['mdp'];
    $mdp_md5=md5($mdp);
     
    .....
    tu recupere $mdp_md5 pour la BDD et $mdp pour le mail.

    Aide toi de google pour trouver le code, tu vas voir que c'est un bon pote pour ca, tu as pas mal d'infos pour l'envois de mail

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C# 1.0] smtp avec login et mot de passe
    Par Khrysby dans le forum C#
    Réponses: 1
    Dernier message: 12/06/2007, 10h22
  2. Lecture Registre Distant avec login et mot de passe
    Par foimpou dans le forum Langage
    Réponses: 1
    Dernier message: 16/04/2007, 11h56
  3. Réponses: 9
    Dernier message: 10/01/2007, 11h18
  4. Réponses: 3
    Dernier message: 25/11/2005, 13h06
  5. Fenêtre avec login et mot de passe
    Par keawee dans le forum ASP
    Réponses: 5
    Dernier message: 29/08/2005, 14h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo