HB/game/oubliemdp.php

83 lines
4.5 KiB
PHP

<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
session_start();
require_once('Class/class.phpmailer.php');
$page = 'oubliemdp';
$erreur = '';
if (!empty($_GET['i']) && isset($_GET['n'])) {
$user = $chapeau->unique_query("SELECT * FROM `user` WHERE `pseudo` = '".mysql_real_escape_string($_GET['n'])."' AND `mdpNOUV` = '".mysql_real_escape_string($_GET['i'])."';");
if ($user) {
mysql_query("UPDATE `user` SET `mdp` = `mdpNOUV`, `mdpNOUV` = '' WHERE `pseudo` = '".mysql_real_escape_string($_GET['n'])."'");
$template->assign('message','Votre mot de passe a été réinitialisé avec succès.');
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?index";\', 3500);</script>');
$template->assign('couleur','green');
$template->display('cms/erreur.tpl');
exit;
}
else {
$template->assign('message','Ce lien a expiré !');
$template->assign('couleur','red');
$template->display('cms/erreur.tpl');
exit;
}
}
if (isset($_POST['HB_pseudo']) && isset($_POST['HB_mail']) && isset($_POST['HB_captcha'])) {
$ok = true;
if (empty($_POST['HB_pseudo']) || empty($_POST['HB_mail'])) {
$ok = false;
$erreur .= '<p style="color: #FF0000"><b>Pseudo ou adresse électronique vide :</b><br />Veuillez compléter tous les champs de ce formulaire avant de le valider.</p><br />';
}
if (strtolower($_POST['HB_captcha']) != strtolower($_SESSION['aleat_nbr'])) {
$ok = false;
$erreur .= '<p style="color: #FF0000"><b>Code de vérification incorrect :</b><br />Le texte que vous avez recopier ne correspondait pas au texte de l\'image, veuillez recommencer.</p><br />';
}
if ($ok) {
$user = $chapeau->unique_query("SELECT * FROM `user` WHERE `pseudo` = '".mysql_real_escape_string($_POST['HB_pseudo'])."' AND `mail` = '".mysql_real_escape_string($_POST['HB_mail'])."';");
if ($user) {
$liste = "abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$code = '';
while(strlen($code) != 8) {
$code .= $liste[rand(0,60)];
}
$passNOUV = sha1(strtoupper($pseudo).':'.$code);
mysql_query("UPDATE `user` SET `mdpNOUV` = '".$passNOUV."' WHERE `pseudo` = '".mysql_real_escape_string($_POST["HB_pseudo"])."'");
$mail = new PHPmailer();
$mail->SetLanguage('fr', 'Class/');
$mail->IsSMTP();
$mail->IsHTML(true);
$mail->Host='s-fr.com';
$mail->From='no-reply@halo-battle.s-fr.com';
$mail->FromName='Halo-Battle';
$mail->SMTPAuth=true;
$mail->Username='no-reply@halo-battle.s-fr.com';
$mail->Password='hD3e2nXu';
$mail->AddAddress($_POST['HB_mail']);
$mail->AddReplyTo('no-reply@halo-battle.s-fr.com');
$mail->Subject='Halo-Battle :: Reinitialisation du mot de passe';
$mail->Body='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Halo-Battle :: Réinitialisation du mot de passe</title></head><body><p>Bonjour '.$_POST["HB_pseudo"].',<br />Vous recevez ce mail suite à votre demande de réinitialisation de mot de passe. Pour confirmer votre r&eacute;initialisation de mot de passe et ainsi pouvoir de nouveau acc&eacute;der au jeu, cliquez sur le lien ci-apr&egrave;s :<br /><a href="'.$config['serv_adresse'].'?p=oubliemdp&amp;i='.$passNOUV.'&amp;n='.$_POST["HB_pseudo"].'">'.$config['serv_adresse'].'?p=oubliemdp&amp;i='.$passNOUV.'&amp;n='.$_POST["HB_pseudo"].'</a><br /><br />Votre nouveau mot de passe est : '.$code.'<br /><br />A bient&ocirc;t dans Halo-Battle,<br />Le staff</p></body></html>';
if(!$mail->Send()){ //Teste si le return code est ok.
$template->assign('message','Erreur lors de l\'envoie du courriel de confirmation !<br /><br /><small><i>'.$mail->ErrorInfo.'</i></small><br /><br />Si le problème perciste, <a href="mailto:technique@halo-battle.s-fr.com">contactez un administrateur</a>.');
$template->assign('couleur','red');
$template->display('cms/erreur.tpl');
exit;
}
else{
$template->assign('message','Un nouveau mot de passe a été généré pour votre compte, vous le trouverez dans votre boîte de courrier électronique.');
$template->assign('couleur','green');
$template->display('cms/erreur.tpl');
exit;
}
$mail->SmtpClose();
unset($mail);
}
else $erreur .= '<p style="color: #FF0000"><b>Nom d\'utilisateur ou adresse électronique incorrect :</b><br />L\'adresse électronique que vous avez indiqué ne correspond pas au nom d\'utilisateur. Réessayez.</p><br />';
}
}
$template->assign('erreurs', $erreur);
?>