if (!$result) { exit_error($TITRE, 'Le code transmis est invalide ou périmé (base inexistante).'); } } // Récupération des données de l'utilisateur $DB_ROW = DB_STRUCTURE_PUBLIC::DB_recuperer_user_for_new_mdp('user_pass_key', $user_pass_key); if (empty($DB_ROW)) { exit_error($TITRE, 'Le code transmis est invalide ou périmé (absence de correspondance).'); } if (crypter_mdp($DB_ROW['user_id'] . $DB_ROW['user_email'] . $DB_ROW['user_password'] . $DB_ROW['user_connexion_date']) != $user_pass_key) { exit_error($TITRE, 'Le code transmis est périmé (incompatible avec les données actuelles).'); } // Prendre en compte la demande de changement de mdp $newpass = fabriquer_mdp(); // On ne transmet pas de profil car necessite sinon une variable de session non définie à ce stade. DB_STRUCTURE_PUBLIC::DB_modifier_user_password_or_key($DB_ROW['user_id'], crypter_mdp($newpass), ''); // Affichage du résultat (confirmation + identifiants) ?> <p><label class="valide">Nouveau mot de passe généré avec succès !</label></p> <p>Veuillez noter vos identifiants de connexion :</p> <form> <label class="tab">Nom d'utilisateur :</label><b><?php echo html($DB_ROW['user_login']); ?> </b><br /> <label class="tab">Mot de passe :</label><b><?php echo $newpass; ?> </b> </form> <p><span class="astuce">Le code transmis étant à usage unique, il ne peut pas être utilisé de nouveau.</span></p>
$DB_ROW = DB_STRUCTURE_PUBLIC::DB_recuperer_user_for_new_mdp('user_id', $user_id); if (empty($DB_ROW)) { $_SESSION['FORCEBRUTE'][$PAGE]['DELAI']++; $_SESSION['FORCEBRUTE'][$PAGE]['TIME'] = $_SERVER['REQUEST_TIME']; exit_json(FALSE, 'Utilisateur inconnu ! Nouvelle tentative autorisée dans ' . $_SESSION['FORCEBRUTE'][$PAGE]['DELAI'] . 's.'); } // On vérifie que l'adresse mail concorde if ($DB_ROW['user_email'] != $courriel) { $_SESSION['FORCEBRUTE'][$PAGE]['DELAI']++; $_SESSION['FORCEBRUTE'][$PAGE]['TIME'] = $_SERVER['REQUEST_TIME']; exit_json(FALSE, 'Adresse mail non concordante ! Nouvelle tentative autorisée dans ' . $_SESSION['FORCEBRUTE'][$PAGE]['DELAI'] . 's.'); } // On enregistre un ticket pour cette demande $user_pass_key = crypter_mdp($DB_ROW['user_id'] . $DB_ROW['user_email'] . $DB_ROW['user_password'] . $DB_ROW['user_connexion_date']); $code_mdp = $BASE ? $user_pass_key . 'g' . $BASE : $user_pass_key; DB_STRUCTURE_PUBLIC::DB_modifier_user_password_or_key($DB_ROW['user_id'], '', $user_pass_key); // On envoi le courriel à l'utilisateur $mail_contenu = 'Bonjour,' . "\r\n"; $mail_contenu .= "\r\n"; $mail_contenu .= 'Une demande de nouveaux identifiants a été formulée pour le compte SACoche de ' . $DB_ROW['user_prenom'] . ' ' . $DB_ROW['user_nom'] . '.' . "\r\n"; $mail_contenu .= "\r\n"; $mail_contenu .= 'Pour confirmer la génération d\'un nouveau mot de passe, veuillez cliquer sur ce lien :' . "\r\n"; $mail_contenu .= URL_DIR_SACOCHE . '?code_mdp=' . $code_mdp . "\r\n"; $mail_contenu .= Sesamail::texte_pied_courriel(array('excuses_derangement', 'info_connexion', 'no_reply', 'signature'), $DB_ROW['user_email']); $courriel_bilan = Sesamail::mail($DB_ROW['user_email'], 'Demande de nouveaux identifiants', $mail_contenu, $DB_ROW['user_email']); if (!$courriel_bilan) { exit_json(FALSE, 'Erreur lors de l\'envoi du courriel !'); } // OK ! exit_json(TRUE); }
{ $_SESSION['FORCEBRUTE'][$PAGE]['DELAI']++; $_SESSION['FORCEBRUTE'][$PAGE]['TIME'] = $_SERVER['REQUEST_TIME']; exit_json( FALSE , 'Utilisateur inconnu ! Nouvelle tentative autorisée dans '.$_SESSION['FORCEBRUTE'][$PAGE]['DELAI'].'s.' ); } // On vérifie que l'adresse mail concorde if( $DB_ROW['user_email'] != $courriel ) { $_SESSION['FORCEBRUTE'][$PAGE]['DELAI']++; $_SESSION['FORCEBRUTE'][$PAGE]['TIME'] = $_SERVER['REQUEST_TIME']; exit_json( FALSE , 'Adresse mail non concordante ! Nouvelle tentative autorisée dans '.$_SESSION['FORCEBRUTE'][$PAGE]['DELAI'].'s.' ); } // On enregistre un ticket pour cette demande $user_pass_key = crypter_mdp($DB_ROW['user_id'].$DB_ROW['user_email'].$DB_ROW['user_password'].$DB_ROW['user_connexion_date']); $code_mdp = ($BASE) ? $user_pass_key.'g'.$BASE : $user_pass_key ; DB_STRUCTURE_PUBLIC::DB_modifier_user_password_or_key ($DB_ROW['user_id'] , '' /*user_password*/ , $user_pass_key /*user_pass_key*/ ); // On envoi le courriel à l'utilisateur $mail_contenu = 'Bonjour,'."\r\n"; $mail_contenu.= "\r\n"; $mail_contenu.= 'Une demande de nouveaux identifiants a été formulée pour le compte SACoche de '.$DB_ROW['user_prenom'].' '.$DB_ROW['user_nom'].'.'."\r\n"; $mail_contenu.= "\r\n"; $mail_contenu.= 'Pour confirmer la génération d\'un nouveau mot de passe, veuillez cliquer sur ce lien :'."\r\n"; $mail_contenu.= URL_DIR_SACOCHE.'?code_mdp='.$code_mdp."\r\n"; $mail_contenu.= Sesamail::texte_pied_courriel( array('excuses_derangement','info_connexion','no_reply','signature') , $DB_ROW['user_email'] ); $courriel_bilan = Sesamail::mail( $DB_ROW['user_email'] , 'Demande de nouveaux identifiants' , $mail_contenu , $DB_ROW['user_email'] /*replyto*/ ); if(!$courriel_bilan) { exit_json( FALSE , 'Erreur lors de l\'envoi du courriel !' ); } // OK ! exit_json( TRUE );