HB/game/jeu/options.php

115 lines
7.4 KiB
PHP

<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$page = 'options';
$titre = 'Options';
$template->assign('page',$page);
$template->assign('titre',$titre);
$pseudo = $queryUser['pseudo'];
$mailUtil = $queryUser['mail'];
$mdp = $queryUser['mdp'];
$mdp_var = $queryUser['mdp_var'];
if (isset($_GET['a']) && $_GET['a'] == 'mv' && isset($_GET['n']) && $_GET['n'] == $sess->values['idvac']) {
$impossible = false;
include_once(_FCORE."../game/Class/class.gerefile.php");
$nbPlan = count($queryPlanetes);
for ($i=0 ; $i<$nbPlan ; $i++) {
$file = unserialize($queryPlanetes[$i]['file_bat']);
if (!empty($queryPlanetes[$i]['file_bat']) && count($file->file)) $impossible = true;
$file = unserialize($queryPlanetes[$i]['file_tech']);
if (!empty($queryPlanetes[$i]['file_tech']) && count($file->file)) $impossible = true;
$file = unserialize($queryPlanetes[$i]['file_cas']);
if (!empty($queryPlanetes[$i]['file_cas']) && count($file->file)) $impossible = true;
$file = unserialize($queryPlanetes[$i]['file_vais']);
if (!empty($queryPlanetes[$i]['file_vais']) && count($file->file)) $impossible = true;
$file = unserialize($queryPlanetes[$i]['file_ter']);
if (!empty($queryPlanetes[$i]['file_ter']) && count($file->file)) $impossible = true;
}
if ($impossible) erreur('Impossible d\'activer le mode vacances.<br />Toutes les files d\'attentes sur vos diff&eacute;rentes plan&egrave;tes ne sont pas vides.', "red", '?p=options', 4000);
else {
$bdd->connexion();
$bdd->query("SELECT * FROM flottes WHERE id_user = '$id_user'");
if ($bdd->num_rows) erreur('Des flottes sont actuellement en mission, veuillez toutes les faire revenir à quai avant d\'activer le mode vacances.', "red", '?p=options', 4000);
$bdd->query("UPDATE user SET mv = '1' WHERE id = '$id_user'");
$bdd->deconnexion();
$sess->values['connected'] = FALSE;
$sess->put();
erreur('Le mode vacances est maintenant actif sur votre compte.<br /><br />Vous pourez vous reconnecter sur votre compte à partir de<br />'.strftime("%A %d %B à %H:%M", $queryUser['last_visite']+259200).'<br /><br />Bonnes vacances !', "green", '?index', 10000);
}
}
elseif (isset($_GET['a']) && $_GET['a'] == 'dl' && isset($_GET['n']) && $_GET['n'] == $sess->values['idvac']) {
$bdd->connexion();
$bdd->query("UPDATE user SET mv = -2 WHERE id = $id_user");
$bdd->deconnexion();
erreur('Votre compte sera supprimé le <br />'.strftime("%A %d %B à %H:%M", mktime(5,0,0,date('n',time()+86400*2),date('d',time()+86400*2),date('y',time()+86400*2))).'.', "green");
}
if (isset($_GET['chg']) && $_GET['chg'] == 'mdp') {
if (isset($_POST['mdp_anc']) && isset($_POST['mdp_nouv']) && isset($_POST['mdp_conf']) && !empty($_POST['mdp_anc']) && !empty($_POST['mdp_nouv']) && !empty($_POST['mdp_conf'])) {
if(mdp($pseudo, $_POST['mdp_anc'], $mdp_var) == $mdp) {
if ($_POST['mdp_nouv'] == $_POST['mdp_conf']) {
$password = mdp($pseudo, $_POST['mdp_nouv'], $mdp_var);
$auth = sha1($password);
$bdd->connexion();
$bdd->escape($password);
$bdd->query("UPDATE user SET mdpNOUV = '$password' WHERE id = '$id_user'");
$bdd->deconnexion();
if(!send_mail($mailUtil, 'Halo-Battle :: Activation de votre nouveau mot de passe', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><title>Halo-Battle :: Activation de votre nouveau mot de passe</title></head><body><p>Bonjour '.trouvNom($id_user).',<br />Vous recevez ce mail suite &agrave; votre demande de changement de mot de passe. Ce dernier entrera en vigueur une fois que vous aurez valid&eacute; ce changement en cliquant via ce lien :<br /><a href="http://'.$_SERVER['HTTP_HOST'].'/'.$config['first_page'].'?p=changeopt&util='.$id_user.'&auth='.$auth.'">http://'.$_SERVER['HTTP_HOST'].'?p=changeopt&util='.$id_user.'&auth='.$auth.'</a><br />Notez que pour que le mot de passe soit chang&eacute;, il faut que vous soyer connect&eacute; sur votre compte.<br /><br />A bient&ocirc;t dans Halo-Battle,<br />Le staff</p></body></html>')) erreur('Erreur lors de l\'envoie du courriel de confirmation !<br /><br />Si le probl&egrave;me perciste, <a href="mailto:'.$config['mailadmin'].'">contactez un administrateur</a>.');
else erreur('Un courriel vient d\'être envoy&eacute; à '.$mailUtil.'. Le mot de passe ne sera modifi&eacute; qu\'apr&egrave;s avoir cliqu&eacute; sur le lien d\'activation contenu dans ce courriel.', "green");
$mail->SmtpClose();
unset($mail);
}
else erreur('Le nouveau mot de passe que vous avez entr&eacute; ne correspond pas à sa confirmation.', "red", '?p=options', 3500);
}
else erreur('L\'ancien mot de passe que vous avez tap&eacute; n\'est pas correct.', "red", '?p=options', 3500);
}
else erreur('Veuillez remplir tous les champs avant de valider le formulaire.', "red", '?p=options');
}
elseif (isset($_GET['chg']) && $_GET['chg'] == 'mail') {
if (isset($_POST['mdp_mail']) && sha1(strtoupper($pseudo).':'.$_POST['mdp_mail']) == $mdp) {
if (isset($_POST['mail']) && !empty($_POST['mail'])) {
$Nmail = $_POST['mail'];
if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $Nmail)) {
$bdd->connexion();
$bdd->escape($Nmail);
$result = $bdd->query("SELECT mail FROM user WHERE mail = '$Nmail'");
if($result) {
$bdd->deconnexion();
header('Location: options.php?erreur=5');
exit;
}
else {
$auth = sha1($Nmail);
$bdd->query("UPDATE user SET mailNOUV = '$Nmail' WHERE id = '$id_user'");
$bdd->deconnexion();
//On envoie le mail de confirmation
if(!send_mail($Nmail, 'Halo-Battle :: Activation de votre nouvelle adresse &eacute;lectronique', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><title>Halo-Battle :: Activation de votre nouvelle adresse &eacute;lectronique</title></head><body><p>Bonjour,<br />Vous recevez ce mail suite &agrave; votre demande de changement d\'adresse &eacute;lectronique. Cette derni&egrave;re entrera en vigueur une fois que vous aurez valid&eacute; ce changement en cliquant via ce lien :<br /><a href="http://'.$_SERVER['HTTP_HOST'].'/'.$config['first_page'].'?p=changeopt&util='.$id_user.'&auth='.$auth.'">http://'.$_SERVER['HTTP_HOST'].'?p=changeopt&util='.$id_user.'&auth='.$auth.'</a><br />Notez que pour que l\'adresse soit chang&eacute;e, il faut que vous soyer connect&eacute; sur votre compte.<br /><br />A bient&ocirc;t dans Halo-Battle,<br />Le staff</p></body></html>')) erreur('Erreur lors de l\'envoie du courriel de confirmation !<br /><br /><small><i>'.$mail->ErrorInfo.'</i></small><br /><br />Si le probl&egrave;me perciste, <a href="mailto:'.$config['mailadmin'].'">contactez un administrateur</a>.');
else erreur('Un courriel vient d\'être envoy&eacute; à '.$Nmail.'. L\'adresse &eacute;lectronique ne sera modifi&eacute; qu\'apr&egrave;s avoir cliqu&eacute; sur le lien d\'activation contenu dans ce courriel.', "green");
$mail->SmtpClose();
unset($mail);
}
}
else erreur('L\'adresse &eacute;lectronique que vous avez tap&eacute;e n\'est pas valide.', "red", '?p=options');
}
else erreur('Veuillez remplir tous les champs avant de valider le formulaire.', "red", '?p=options');
}
else erreur('Mot de passe incorrect.', "red", '?p=options');
}
$sess->values['idvac'] = sha1(rand(123456789,9876543210).'ß‘}☻'.time());
$sess->put();
$template->assign('mail',$queryUser['mail']);
$template->assign('idvac',$sess->values['idvac']);
?>