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 :

Script : mot de passe oublié


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 8
    Par défaut Script : mot de passe oublié
    Bonjour j'ai essayer de mettre en place un petit code pour que les membres qui ont oublié leur mot de passe puisse en recevoir un nouveau par mail mais la je cale ça ne marche pas

    pouvez m'aider a traduire ça SVP ou connaissez vous un script deja tout fait


    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
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Identifiants oubliés</title>
    <link href="style/style.css" rel="stylesheet" type="text/css">
    </head>
    <body>
    <div class="content" >
     
     
     
     
    <?php
    	if(isset($_POST['send'])){
    		$forget = prepare ("SELECT `username`,`password` FROM `users` WHERE `email` = :email LIMIT 1");
    		$forget-> execute(array(
    			"email" => $_POST['email']
    		));		
    		$dnn = $forget->fetchObject();
    		$password = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5(key_encrypt), base64_decode($dnn->password), MCRYPT_MODE_CBC, md5(md5(key_encrypt))));
    		$message = "Identifiants :<br><br>
    Pseudo : ".$dnn->pseudo."
    <br>Mot de passe : ".$password;
    		$headers = "From: ".company_name."<".company_mail.">\n";
    		$headers .= "Reply-To: ".company_mail."\n";
    		$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"";
    		email($_POST['email'],"Identifiants [".company_name."]",$message,$headers);
    		redirect('index.php');
    	}
    ?>
     
     
     
    <h2>Identifiants oublié ?</h2>
    <form action="?page=oublie" method="post" dir="ltr" lang="fr">
    <p><label>Adresse mail :
    <input type="email" name="email">
    </label></p>
    <p><input type="submit" name="send" value="Envoyer"></p>
    </form>
    </div>
    </body>
    </html>

  2. #2
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Bonjour,

    Quel est le problème ?
    • Message d'erreur
    • Comportement inattendu
    • ...

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 8
    Par défaut
    voila le message des que l'ont entre l'adresse mail

    pourtant les champs renseigner dans la requete prepare sont bonnes

    Fatal error: Call to undefined function: prepare()

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    erreur de syntaxe tu as oublié un bout de code avant le prepare (la connexion) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $forget = $pdo->prepare("SELECT `username`,`password` FROM `users` WHERE `email` = :email LIMIT 1");
    Et le prepare te renvoie un PDOStatement

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 8
    Par défaut
    j'ai modifier la ligne mais pareil



    Fatal error: Call to a member function prepare() on a non-object in C:\Program Files (x86)\forget.php on line 19




    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
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Identifiants oubliés</title>
    <link href="style/style.css" rel="stylesheet" type="text/css">
    </head>
    <body>
    <div class="content" >
    <?php
    	if(isset($_POST['send'])){
     
    		$forget = $pdo->prepare("SELECT `username`,`password` FROM `users` WHERE `email` = :email LIMIT 1");
    		$forget-> execute(array(
    		"email" => $_POST['email']
    		));		
    		$dnn = $forget->fetchObject();
    		$password = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5(key_encrypt), base64_decode($dnn->password), MCRYPT_MODE_CBC, md5(md5(key_encrypt))));
    		$message = "Identifiants :<br><br>
    Pseudo : ".$dnn->pseudo."
    <br>Mot de passe : ".$password;
    		$headers = "From: ".company_name."<".company_mail.">\n";
    		$headers .= "Reply-To: ".company_mail."\n";
    		$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"";
    		mail($_POST['mail'],"Identifiants [".company_name."]",$message,$headers);
    		redirect('index.php');
    	}
    ?>
    <h2>Identifiants oublié ?</h2>
    <form action="?section_ID=oublie" method="post" dir="ltr" lang="fr">
    <p><label>Adresse mail :
    <input type="email" name="email">
    </label></p>
    <p><input type="submit" name="send" value="Envoyer"></p>
    </form>
    </div>
    </body>
    </html>

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Il faut initialiser ta connexion avant de pouvoir l'utiliser :
    Regarde ici

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 8
    Par défaut
    j'ai essayer ce que tu me donne plus haut mais toujour une erreur


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: syntax error, unexpected ':' in C:\Program Files (x86)\VertrigoServ\www\espace_membre\forget.php on line 21

    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
    <?php
    
    $server='localhost';
    $login='root';
    $mdp_sql_pass='vertrigo';
    $dbname='drp';
    
    	if(isset($_POST['send'])){
           
            $pdo = new PDO(mysql:host=$server,dbname=$table,$login,$mdp_sql_pass);  
    		$forget = $pdo->prepare("SELECT `username`,`password` FROM `users` WHERE `email` = :email LIMIT 1");
    		
    		$forget-> execute(array(
    		"email" => $_POST['email']
    		));	
    		
    		$dnn = $forget->fetchObject();
    		$password = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5(key_encrypt), base64_decode($dnn->password), MCRYPT_MODE_CBC, md5(md5(key_encrypt))));
    		$message = "Identifiants :<br><br>
    Pseudo : ".$dnn->pseudo."
    <br>Mot de passe : ".$password;
    		$headers = "From: ".company_name."<".company_mail.">\n";
    		$headers .= "Reply-To: ".company_mail."\n";
    		$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"";
    		mail($_POST['mail'],"Identifiants [".company_name."]",$message,$headers);
    		redirect('index.php');
    	}
    ?>

  8. #8
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Par défaut
    Tu la sors d'où cette variable
    company_mail
    ?

    Tu l'utilises l20, l21 ... mais elle existe pas. C'est le nom d'un champs ?

    Pour les la bonne syntaxe c'est Utilise plutôt le charset UTF-8 que l'iso.

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 8
    Par défaut
    oui c'est une variable qui est relier au titre du mail en faite

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 38
    Par défaut
    il faut s'habituer à lire les messages d'erreur des compilateurs/interpréteurs:
    la syntaxe de la ligne de création de l'objet PDO n'est pas bonne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $pdo = new PDO(mysql:host=$server,dbname=$table,$login,$mdp_sql_pass);
    ça devrait être (j'ai pas testé):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $pdo = new PDO("mysql:host=$server;dbname=$table",$login,$mdp_sql_pass);

Discussions similaires

  1. Script qui sert à envoyer par email le mot de passe oublié d'un membre
    Par AirBen23 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 14/09/2012, 16h43
  2. mot de passe oublié!
    Par starsat4200 dans le forum Excel
    Réponses: 4
    Dernier message: 08/06/2007, 20h04
  3. Réponses: 5
    Dernier message: 18/04/2006, 09h40
  4. [authentification]mot de passe oublié
    Par dash dans le forum Access
    Réponses: 5
    Dernier message: 08/12/2005, 11h35
  5. mot de passe oublié
    Par sami1881 dans le forum Sécurité
    Réponses: 5
    Dernier message: 25/11/2005, 00h04

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