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

Langage PHP Discussion :

Cryptage password pour login


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 37
    Points
    37
    Par défaut Cryptage password pour login
    Alors voilà mon soucis. Si avec le formulaire register.php avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="password" name"motDePasse" size="20" maxsize="20" />
    La personne qui vient s'enregistrer insère donc un mot de passe crypté dans la colonne pass de la table Membre.

    Mais là impossible de se connecter avec le mot de passe et cette page (erreur=Le nom de login 'mary' existe déjà mais notre mot de passe n'est correct. Essayer encore une fois.) :
    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    <?php
    session_start();
    session_register('auth');
    session_register('nomLogin');
     
    $user="xxx";
    $host="localhost";
    $password="xxx";
    $database="xxx";
     
    $nomChamp=array ("nomMembre"=>"Utilisateur", "mpasse"=>"Mot de passe", "nomsociete"=>"Nom de la société", "rue"=>"Rue", "ville"=>"Ville", "cp"=>"Code postal", "canton"=>"Canton", "presidentnom"=>"Nom du président", "presidentprenom"=>"Prénom du président", "ruecourrier"=>"Rue (courrier)", "villecourrier"=>"Ville (courrier)", "cpcourrier"=>"Code postal (courrier)", "telephone"=>"Téléphone", "email"=>"E-mail", "adresseweb"=>"Adresse Internet", "cantoncourrier"=>"Canton (courrier)", "F300"=>"F300", "P50"=>"P50", "P25"=>"P25","P10"=>"P10","C50"=>"C50","C10"=>"C10", "presentation"=>"Présentation");
     
    //
    function AfficherErreur ($texteMsg)
    {global $do,$nomMembre, $newpass, $nomsociete, $rue, $ville, $cp, $canton, $presidentnom, $presidentprenom, $ruecourrier, $villecourrier, $cpcourrier, $telephone, $email, $adresseweb, $cantoncourrier, $F300, $P50, $P25, $P10, $C50, $C10, $presentation;
    unset($do);
    $message_new=$texteMsg;
    include("register.php");
    exit();
    } 
    //
     
    //--------------------------------------------------------------------
     
    switch (@$do)
    {case "login":
     
    $user="xxx";
    $host="localhost";
    $password="xxx";
    $database="xxx";
     
    $connection =mysql_connect($host, $user, $password) or die ("Connexion impossible au serveur");
    $db=mysql_select_db($database, $connection) or die ("La BD ne peut être selectionnée");
     
            $sql = "SELECT nomLogin FROM Membre WHERE nomLogin='$nomUtilisateur'";
            $result = mysql_query($sql) or die (mysql_error());
            $num = mysql_num_rows($result);
     
            if($num == 1)
            {
                    $sql = "SELECT nomLogin FROM Membre WHERE nomLogin='$nomUtilisateur' AND pass=password('$motDePasse')";
                    $result2 = mysql_query($sql) or die (mysql_error());
                    $num2 = mysql_num_rows($result2);
     
     
               if($num2 > 0)
            {
                    $auth="yes";
                    $aujourdhui = date("Y-m-d h:i:s");
                    $sql = "INSERT INTO Login2 (nomLogin, dateLogin) VALUES ('$nomUtilisateur','$aujourdhui')";
     
                    mysql_query($sql) or die (mysql_error());
                    $nomLogin = $nomUtilisateur;
                    header("Location: member_page.php");
     
            }else
            {
                    $message = "Le nom de login '$nomUtilisateur' existe déjà mais notre mot de passe n'est correct. Essayer encore une fois. <br \>";
                    unset ($do);
                    include("register.php");
            }
    		}elseif($num == 0)
            {
                    $message = "Le nom de login que vous avez saisi n'existe pas. Essayez une fois encore.<br />";
                    unset ($do);
                    include("register.php");
            }
     
    break;
     
    case "new":
     foreach ($HTTP_POST_VARS as $clé => $valeur)
     {switch ($clé)
       {case "nomsociete":
        case "nomMembre":
        case "newpass":
    	case "ville":
    	case "canton":
    	case "villecourrier":
    	case "cantoncourrier":
    	case "presidentnom":
    	case "presidentprenom":
    	case "F300":
    	case "P50":
    	case "P25":
    	case "P10":
    	case "C50":
    	case "C10":
    	case "presentation":	 
    	case "rue":	
    	case "ruecourrier":
    	      $$clé = strip_tags(trim($valeur));
    		  break;
     
    	case "cp":	
    	     if (!ereg("[0-9]{4}", $cp) or strlen($cp) !=4)
    		 {AfficherErreur ("Le code postal n'est pas correct (4 chiffres). Corrigez, svp.");
    		 }break;
     
    	case "cpcourrier":
    	     if (!ereg("[0-9]{4}", $cpcourrier) or strlen($cpcourrier) !=4)
    		 {AfficherErreur ("Le code postal n'est pas correct (4 chiffres). Corrigez, svp.");
    		 }break;
     
    	case "telephone":
    	     if ($valeur == "")break;
     
    	case "email":
    	     if (!ereg("^.+@.+\\..+$",$email))
    		 {AfficherErreur ("L'adresse e-mail n'est pas correcte. Corrigez, svp.");
    		 }
    	case "adresseweb":
    	     if ($valeur == "")break;
    	}
      }
     
    // le nom de login existe-t-il déjà ?
    $user="webmastermary";
    $host="localhost";
    $password="qwertz";
    $database="tircentralenet1";
     
    $connexion= mysql_connect ($host, $user, $password)
    or die ("Connexion au serveur impossible");
     
    $db = mysql_select_db ($database, $connexion)
    or die ("selection de la base impossible");
     
    $sql= "SELECT nomLogin FROM Membre WHERE nomLogin='$nomMembre'";
    $result = mysql_query ($sql) or die ("Impossible d'exécuter la requête");
    $num = mysql_num_rows($result);
    if ($num > 0)
    {AfficherErreur ("$nomMembre est déjà utilisé. Choisissez un autre nom d'utilisateur.");
    }
    else
    {$aujourdhui = date("Y-m-d");
     $sql = "INSERT INTO Membre (nomlogin, creation, mPasse, nomsociete, rue, ville, canton, cp, presidentnom, presidentprenom, ruecourrier, villecourrier, cpcourrier, cantoncourrier, telephone, email, adresseweb, F300, P50, P25, P10, C50, C10, presentation) VALUES
     ('$nomMembre', '$aujourdhui', password('$newpass'), '$nomsociete', '$rue', '$ville', '$canton', '$cp', '$presidentnom', '$presidentprenom', '$ruecourrier', '$villecourrier', '$cpcourrier', '$cantoncourrier', '$telephone', '$email', '$adresseweb', '$F300', '$P50', '$P25', '$P10', '$C50', '$C10', '$presentation')";
     
    if (! mysql_query($sql))
    {echo mysql_errno().":".mysql_error();
    exit;
    }
    $auth="yes";
    $nomUtilisateur = $nomMembre;
    //envoyer un email au nouveau membre
    $message = "un nouveau compte de membre vient d'être créé pour vous. ".
    "Votre nom d'utilisateur et votre mot de passe sont:".
    "\n\n\t$nomMembre\n\t$newpass\n\n".
    "Nous apprécions l'intérêt que nous portez à notre site. Si vous avez des questions à poser vous pouvez envoyer un e-mail à info@swiss-target.ch.";
    $entete="From:membres@swiss-target.ch\r\n";
    $sujet = "Votre nouveau compte à Swiss-Target.ch";
    $mailsend=mail("$email", "$sujet", "$message", "$entete");
    //
    $nomLogin = $nomMembre;
    header ("Location: NouveauMembre.php");
    }
    default:
          include("register.php");
    }
    ?>
    Par contre si l'enlève le cryptage password (input texte tout simplement) dans le formulaire register.php et que j'enlève le password de password('$motDePasse') et password('$newpass') dans la page login.php cela fonctionne correctement si ce n'est que les mots de passe des utilisateurs ne sont pas cryptés..

    Pourquoi cela ne fonctionne t-il pas avec le cryptage ? (en bref, avec le cryptage il ne lit pas la condition if($num2 > 0))


    Page login.php sans le cryptage:
    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    <?php
    session_start();
    session_register('auth');
    session_register('nomLogin');
     
    $user="xxx";
    $host="localhost";
    $password="xxx";
    $database="xxx";
     
    $nomChamp=array ("nomMembre"=>"Utilisateur", "mpasse"=>"Mot de passe", "nomsociete"=>"Nom de la société", "rue"=>"Rue", "ville"=>"Ville", "cp"=>"Code postal", "canton"=>"Canton", "presidentnom"=>"Nom du président", "presidentprenom"=>"Prénom du président", "ruecourrier"=>"Rue (courrier)", "villecourrier"=>"Ville (courrier)", "cpcourrier"=>"Code postal (courrier)", "telephone"=>"Téléphone", "email"=>"E-mail", "adresseweb"=>"Adresse Internet", "cantoncourrier"=>"Canton (courrier)", "F300"=>"F300", "P50"=>"P50", "P25"=>"P25","P10"=>"P10","C50"=>"C50","C10"=>"C10", "presentation"=>"Présentation");
     
    //
    function AfficherErreur ($texteMsg)
    {global $do,$nomMembre, $newpass, $nomsociete, $rue, $ville, $cp, $canton, $presidentnom, $presidentprenom, $ruecourrier, $villecourrier, $cpcourrier, $telephone, $email, $adresseweb, $cantoncourrier, $F300, $P50, $P25, $P10, $C50, $C10, $presentation;
    unset($do);
    $message_new=$texteMsg;
    include("register.php");
    exit();
    } 
    //
     
    //--------------------------------------------------------------------
     
    switch (@$do)
    {case "login":
     
    $user="xxx";
    $host="localhost";
    $password="xxx";
    $database="xxx";
     
    $connection =mysql_connect($host, $user, $password) or die ("Connexion impossible au serveur");
    $db=mysql_select_db($database, $connection) or die ("La BD ne peut être selectionnée");
     
            $sql = "SELECT nomLogin FROM Membre WHERE nomLogin='$nomUtilisateur'";
            $result = mysql_query($sql) or die (mysql_error());
            $num = mysql_num_rows($result);
     
            if($num == 1)
            {
                    $sql = "SELECT nomLogin FROM Membre WHERE nomLogin='$nomUtilisateur' AND pass='$motDePasse'";
                    $result2 = mysql_query($sql) or die (mysql_error());
                    $num2 = mysql_num_rows($result2);
     
     
               if($num2 > 0)
            {
                    $auth="yes";
                    $aujourdhui = date("Y-m-d h:i:s");
                    $sql = "INSERT INTO Login2 (nomLogin, dateLogin) VALUES ('$nomUtilisateur','$aujourdhui')";
     
                    mysql_query($sql) or die (mysql_error());
                    $nomLogin = $nomUtilisateur;
                    header("Location: member_page.php");
     
            }else
            {
                    $message = "Le nom de login '$nomUtilisateur' existe déjà mais notre mot de passe n'est correct. Essayer encore une fois. <br \>";
                    unset ($do);
                    include("register.php");
            }
    		}elseif($num == 0)
            {
                    $message = "Le nom de login que vous avez saisi n'existe pas. Essayez une fois encore.<br />";
                    unset ($do);
                    include("register.php");
            }
     
    break;
     
    case "new":
     foreach ($HTTP_POST_VARS as $clé => $valeur)
     {switch ($clé)
       {case "nomsociete":
        case "nomMembre":
        case "newpass":
    	case "ville":
    	case "canton":
    	case "villecourrier":
    	case "cantoncourrier":
    	case "presidentnom":
    	case "presidentprenom":
    	case "F300":
    	case "P50":
    	case "P25":
    	case "P10":
    	case "C50":
    	case "C10":
    	case "presentation":	 
    	case "rue":	
    	case "ruecourrier":
    	      $$clé = strip_tags(trim($valeur));
    		  break;
     
    	case "cp":	
    	     if (!ereg("[0-9]{4}", $cp) or strlen($cp) !=4)
    		 {AfficherErreur ("Le code postal n'est pas correct (4 chiffres). Corrigez, svp.");
    		 }break;
     
    	case "cpcourrier":
    	     if (!ereg("[0-9]{4}", $cpcourrier) or strlen($cpcourrier) !=4)
    		 {AfficherErreur ("Le code postal n'est pas correct (4 chiffres). Corrigez, svp.");
    		 }break;
     
    	case "telephone":
    	     if ($valeur == "")break;
     
    	case "email":
    	     if (!ereg("^.+@.+\\..+$",$email))
    		 {AfficherErreur ("L'adresse e-mail n'est pas correcte. Corrigez, svp.");
    		 }
    	case "adresseweb":
    	     if ($valeur == "")break;
    	}
      }
     
    // le nom de login existe-t-il déjà ?
    $user="webmastermary";
    $host="localhost";
    $password="qwertz";
    $database="tircentralenet1";
     
    $connexion= mysql_connect ($host, $user, $password)
    or die ("Connexion au serveur impossible");
     
    $db = mysql_select_db ($database, $connexion)
    or die ("selection de la base impossible");
     
    $sql= "SELECT nomLogin FROM Membre WHERE nomLogin='$nomMembre'";
    $result = mysql_query ($sql) or die ("Impossible d'exécuter la requête");
    $num = mysql_num_rows($result);
    if ($num > 0)
    {AfficherErreur ("$nomMembre est déjà utilisé. Choisissez un autre nom d'utilisateur.");
    }
    else
    {$aujourdhui = date("Y-m-d");
     $sql = "INSERT INTO Membre (nomlogin, creation, mPasse, nomsociete, rue, ville, canton, cp, presidentnom, presidentprenom, ruecourrier, villecourrier, cpcourrier, cantoncourrier, telephone, email, adresseweb, F300, P50, P25, P10, C50, C10, presentation) VALUES
     ('$nomMembre', '$aujourdhui', '$newpass', '$nomsociete', '$rue', '$ville', '$canton', '$cp', '$presidentnom', '$presidentprenom', '$ruecourrier', '$villecourrier', '$cpcourrier', '$cantoncourrier', '$telephone', '$email', '$adresseweb', '$F300', '$P50', '$P25', '$P10', '$C50', '$C10', '$presentation')";
     
    if (! mysql_query($sql))
    {echo mysql_errno().":".mysql_error();
    exit;
    }
    $auth="yes";
    $nomUtilisateur = $nomMembre;
    //envoyer un email au nouveau membre
    $message = "un nouveau compte de membre vient d'être créé pour vous. ".
    "Votre nom d'utilisateur et votre mot de passe sont:".
    "\n\n\t$nomMembre\n\t$newpass\n\n".
    "Nous apprécions l'intérêt que nous portez à notre site. Si vous avez des questions à poser vous pouvez envoyer un e-mail à info@swiss-target.ch.";
    $entete="From:membres@swiss-target.ch\r\n";
    $sujet = "Votre nouveau compte à Swiss-Target.ch";
    $mailsend=mail("$email", "$sujet", "$message", "$entete");
    //
    $nomLogin = $nomMembre;
    header ("Location: NouveauMembre.php");
    }
    default:
          include("register.php");
    }
    ?>
    Merci d'avance !

    Mary

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Je suppose que ca ne fonctionne pas parce que ton champ est mal dimensionné.
    Mais de toute facon la fonction password() sert aux mots de passe mysql.
    Pour ton application utilise plutot un hashage avec SHA1()

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 37
    Points
    37
    Par défaut
    merci !

    mal dimensionné comment ?
    le cryptage password fonctionne car dans la table mysql il était bien crypté.
    Je connais pas ta deuxième solution...

  4. #4
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    password() sert aux mots de passe des comptes Mysql.
    Utilise SHA1() exactement comme tu utilises password() actuellement.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 37
    Points
    37
    Par défaut
    ah ok ! j'ai remplacé.
    Le problème c'est que j'avais mis char(10) au password au lieu de mettre un VARCHAR(255).

    Maintenant j'ai une fonction mail pour que les utilisateurs puissent retrouver leur mot de passe. J'ai donc '.$ligne['pass'].' pour l'afficher. C'est cepandant ce qui est crypté qui s'affiche. Comment puis-je afficher le nom crypté ?

    merci !

  6. #6
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    VARCHAR(255) ne servait à rien non plus puisque un champ password() fait 16 caracteres.

    SHA1 est un hashage, il n'est pas reversible.

    N'hésite pas a consulter la documentation, tout ce que je te dis depuis le début y est :
    http://dev.mysql.com/doc/refman/5.0/...functions.html

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 37
    Points
    37
    Par défaut
    merci,

    donc au vu de ce qu'il y a écrit dans la doc, la seule solution qu'il me reste c'est de créer une clé lien qui leurs sera envoyée pour qu'ils puissent créer un nouveau mot de passe ? je ne sais pas faire ça...

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Pour éviter toute confusion il est important de distinguer et d'employer les deux termes "cryptage" et "hash" à bon escient.

    Crypter signifie que l'on peut décrypter, c'est donc une opération réversible.

    Au contraire le hash n'est pas une opération réversible. Il génère simplement une empreinte de la chaine hashée. On peut donc simplement comparer le hash des chaines pour savoir s'il est identique mais on ne pourra pas retrouver la chaine originale.

    Tu as donc deux possibilités :

    - Soit tu cryptes avec AES par exemple et donc dans ce cas là il te sera possible de décrypter et donc de renvoyer le mot de passe original.

    - Soit tu fait un hash et dans ce cas comme ce n'est pas réversible il faut générer un nouveau mot de passe, ensuite faire un update du pasword dans la bdd puis envoyer ce nouveau mot de passe à l'utilisateur.

    Le maximum de sécurité étant le hash car les mots de passe seront indéchiffrables même si on te pirate ta bdd.

    Pour générer automatiquement des mots de passe tu trouveras plein d'exemples avec "générer mot de passe php" dans google.

  9. #9
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Pour être précis, en français on chiffre, on ne crypte pas.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 37
    Points
    37
    Par défaut
    Je vais garder le hashage. J'essaie donc de faire un mot de passe généré qui se met crypté dans une colonne passwd de la table membre de l'email rentré dans le formulaire. Le mot de passe généré avant d'être crypté devrait être envoyé au membre. Voici ci-dessous le code que j'ai utilisé. Je ne reçois que le mail avec aucun mot de passe (que le nom de login) et rien ne s'enregistre dans la table.

    Y-a t'il quelque chose d'inccorect ou impossible dans le fait de mettre ce générateur dans mon code ?

    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
    65
    66
    67
    68
    69
    <?php 
    $user="xxx";
    $host="localhost";
    $password="xxx";
    $database="xxx";
     
    $connection =mysql_connect($host, $user, $password) or die ("Connexion impossible au serveur");
    $db=mysql_select_db($database, $connection) or die ("La BD ne peut être selectionnée");
        // test des variables
        if ($email2 == "") {
            $message2 = "Vous devez rentrer un e-mail.";
       // redirection vers le formulaire
       } 
       elseif (!ereg("^.+@.+\\..+$",$email2))
    		 {$message2 = "Vous devez rentrer un e-mail valide.";
    		 }
    	else {
    	function genere_passwd() {
    $tpass=array();
    $id=0;
    $taille=8;
    // récupération des chiffres et lettre
    for($i=48;$i<58;$i++) $tpass[$id++]=chr($i);
    for($i=65;$i<91;$i++) $tpass[$id++]=chr($i);
    for($i=97;$i<123;$i++) $tpass[$id++]=chr($i);
    $passwd="";
    for($i=0;$i<$taille;$i++) {
    $passwd.=$tpass[rand(0,$id-1)];
    }
    return $passwd;
    } 
       $sqlquery = "UPDATE Membre SET passwd=sha1('$passwd') WHERE  email='$email'";  
       $resultat = mysql_query($sqlquery) or die ("Impossible d'exécuter la requête");
       $email = htmlentities(addslashes( $_POST['email2']));
       $query = "SELECT * FROM Membre WHERE email='$email'";
       $resultat = mysql_query($query) or die ("Impossible d'exécuter la requête");
       $ligne = mysql_fetch_array ($resultat,MYSQL_ASSOC);
      $message = '
      <html>
    <head>
    </head>
    <body>
    <table border="0" cellpadding="5" cellspacing="0" width="80%" align="center">
    <br /><tr><td colspan="3" bgcolor="#19431B" align="center">
    <font color="#E4E0B0" size="+1">Vos identificateurs</font></td></tr></table>
    <table border="0" cellpadding="5" cellspacing="0" width="80%" align="center" bgcolor="#E4E0B0">
    <font color="#19431B">
    <tr><td>
    <br>Cher Membre, suite à votre demande de mot de passe, nous vous renvoyons vos identificateurs.<br><br></td></tr>
    
     <tr><td>Nom d\'utilisateur:'.$ligne['nomLogin'].'</td></tr>
     <tr><td>Mot de passe:'.$passwd.'<br><br></td></tr>
      
     <tr><td>Nous apprécions l\'intérêt que nous portez à notre site. Si vous avez des questions à poser vous pouvez envoyer un e-mail à info@swiss-target.ch.<br></td></tr>
      
      <tr><td>Cordialement, <i>Swiss-target.ch</i><br><br></tr></td></table>
      <table border="0" cellpadding="5" cellspacing="0" width="80%" align="center">
    <tr><td colspan="3" bgcolor="#19431B">&nbsp;</td></tr>
    </table>
      </body>
    </html>';
       //on envoie le mail
       $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
    $headers .= 'From: Swiss-target.ch <membres@swiss-target.ch>' . "\r\n";
       mail($email, 'Vos identifiants', $message, $headers );
       $message2 = "Vous allez recevoir un é-mail sous peu avec vos identifiants. Si ce n'est pas le cas, contactez-nous. <br \>";  
       }
     ?>

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 37
    Points
    37
    Par défaut
    j'ai trouvé mon erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (  $email = htmlentities(addslashes( $_POST['email2']));
    devait être en dessus du $sqlquerry)

    Je vais maintenant essayer de faire une page de connexion avec ce nouveau login pour aller modifier le vrai mot de passe.

  12. #12
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Evites d'employer ereg c'est déprécié en php 5.3 Utilises plutôt preg_match à la place.
    Cela dit pour vérifier la syntaxe d'un mail le mieux serait encore d'utiliser par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (filter_var($email, FILTER_VALIDATE_EMAIL) !== false) echo 'syntaxe mail ok';else  echo 'syntaxe mail invalide';
    Cette fonction est conçue spécialement pour ça.

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 37
    Points
    37
    Par défaut
    D'accord, merci beaucoup je vais changer cela sur mes pages !

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

Discussions similaires

  1. login et password pour acceder a workstation avec wsx
    Par princessedior dans le forum Virtualisation
    Réponses: 1
    Dernier message: 10/04/2015, 13h29
  2. [AC-2003] Login et Password pour accéder à un formulaire
    Par ROUSSIGNE dans le forum Access
    Réponses: 6
    Dernier message: 26/02/2014, 17h58
  3. Réponses: 5
    Dernier message: 16/03/2011, 22h41
  4. login et password pour afficher rapport
    Par benjeddi dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 16/06/2008, 20h38
  5. Réponses: 8
    Dernier message: 20/07/2006, 01h23

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