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 :

Mot de passe oublié PHP/AJAX


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2020
    Messages : 4
    Points : 6
    Points
    6
    Par défaut Mot de passe oublié PHP/AJAX
    Bonjour tout le monde j'ai un formulaire pour demande d'oublie de mot de passe le code semble vouloir fonctionné mais il n'envoi rien je ne comprend pas pourquoi Coté code ajax fonctionne très bien je pense. j'ai une adresse mail enregistré dans la base de donnée mais lorsque je fais un test avec, ça me dit que l'adresse ne correspond à aucun compte ? Merci de l'aide.

    Code html:

    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
    <div id="valider" class="col-md-6 col-md-offset-2 col-sm-12 col-xs-12">
                                    <div class="alert alert-info" role="alert" id="alert"><i class="fa fa-circle" aria-hidden="true" style="margin-right:2px;font-size:8px;color:#30b305;"></i>
                                        Pour réinitialiser votre mot de passe, inscrivez votre adresse mail ci-dessous. 
                                    </div>
                                    <div class="alert alert-danger" style="display: none;">
                                        Aucun compte ne correspond à cet adresse <i class="fas fa-exclamation"></i> 
                                    </div>
                                    <div class="alert alert-success" id="success" style="display: none;">
                                        Les instructions pour réinitialiser votre mot de passe vous ont été envoyer par e-mail !
                                    </div>
                                    <form method="post" action="">
                                        <div class="row">
                                            <div class="col-md-12 col-sm-12 col-xs-12">
                                                <div class="form-group validate-input">
                                                    <label for="email"><i class="fa fa-at" id="user"></i>Votre adresse mail</label>
                                                    <input type="email" class="form-control input-label" id="email" name="email" placeholder="Email" required>
                                                </div>
                                            </div>
                                            <div class="col-md-12 col-sm-12 col-xs-12">
                                                <button type="submit" class="btn-default btn abt-btn" name="envoi">Valider<i class="fas fa-sign-in-alt sign" style="margin-left: 5px;"></i>
                                                    <i class="fa fa-circle-o-notch fa-spin loading hide" style="margin-left: 5px;"></i>
                                                </button>
                                            </div>
                                        </div>
                                    </form>
                                    <?php
                                    try {
                                        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                                    } catch (PDOException $e) {
                                        echo 'Échec lors de la connexion : ' . $e->getMessage();
                                    }
     
                                    ?>
                                </div>
    Code Ajax:

    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
     // Formulaire de connexion
        $('#valider').on('submit', function(e) {
            form = $(this);
            valider = $(this).closest('#valider');
            button = form.find('button');
            alert_danger = valider.find('.alert-danger');
            alert_success = valider.find('.alert-success');
            $.ajax({
                url: './users/password.php',
                type: "POST",
                data: $(this).serialize(),
                dataType: 'json',
                beforeSend: function() {
                    $(".sign").addClass("hide");
                    button.html("Valider");
                    button.prop('disabled', true);
                    alert_danger.fadeOut(100);
                }
            }).done(function(success) {
                if(success) {
                    form.hide();
                    alert_success.fadeIn(function() {
                        setTimeout(function(){
                            window.location.replace("http://localhost/xampp/DEv/connect_succefully.php");
                        }, 4000)
                    });
                } else {
                    alert_danger.fadeIn();
                    button.html("Valider");
                    button.prop('disabled', false);
                }
            });
            e.preventDefault();
        });
    code 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
    <?php
    $success = false;
    if(!empty($_POST) && !empty($_POST['email'])){
     
        include '../inc/init.php';
     
        $email = trim($_POST(['email']));
     
        //on regarde si le mail existe dans la base.
        $sql_selectMembre = 'SELECT * FROM users WHERE email = :email AND actif = 1 AND code_activation IS NOT NULL';
        $req_selectMembre = $pdo->prepare($sql_selectMembre);
        $req_selectMembre->execute(
            [
                'email' => $_POST['email'],
            ]
     
        );
     
        //si le mail exist dans la base de donnée
        if($req_selectMembre->rowCount() == 1)
        {
     
            session_start();
            $code_reset = sha1(microtime());
            $sql_updateMembre = 'UPDATE users SET code_reset = ? AND reset_at NOW() WHERE email = :email';
            $req_updateMembre = $pdo->prepare($sql_updateMembre);
            $req_updateMembre->execute(
                [
                    'code_reset' => $code_reset,
                    'email' => $_POST['email']
     
                ]
     
            );
     
            $lien_validation = CONFIG['website'].'../reset_password.php?email='.$email.'&code_reset='.$code_reset;
     
            send_mail(
                $email,
                "Réinitialisation de votre mot de passe",
                content_mail_password_html($lien_validation),
                content_mail_password_text($lien_validation)
            );
            $success = true;  
        }
     
    }
    die(json_encode($success));
    ?>

  2. #2
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Juste une remarque : dans ton code PHP, remplace include '../inc/init.php'; par include dirname("inc/init.php"); et $lien_validation = CONFIG['website'].'../reset_password.php?email='.$email.'&code_reset='.$code_reset; par $lien_validation = CONFIG['website'].dirname('reset_password.php?email='.$email.'&code_reset='.$code_reset);La fonction PHP dirname à qui on passe un répertoire retourne le parent de ce répertoire .

Discussions similaires

  1. Mot de passe oublié PHP
    Par mitsukk1992 dans le forum Langage
    Réponses: 31
    Dernier message: 07/01/2015, 01h51
  2. Formulaire Mot de passe oublié JavaScript & PHP
    Par goku19 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/01/2012, 09h21
  3. Réponses: 17
    Dernier message: 29/04/2008, 21h53
  4. mot de passe oublié
    Par sami1881 dans le forum Sécurité
    Réponses: 5
    Dernier message: 25/11/2005, 00h04
  5. cryptage assymetrique de mot de passe(javascript/PHP)
    Par chess132 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 25/10/2005, 13h04

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