game/onyx/hb_game/jeu/inscription.php

142 lines
8.1 KiB
PHP
Raw Normal View History

2008-11-17 11:00:00 +00:00
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
require_once('Class/class.phpmailer.php');
session_start();
$page = 'inscription';
$erreurs = '';
$inscriptOk = true;
if (isset($_POST['HB_pseudo']) && isset($_POST['HB_mdp']) && isset($_POST['HB_conf']) && isset($_POST['HB_mail']) && isset($_POST['servers']) && isset($_POST['HB_captcha']) && isset($_POST['HB_placement'])) {
$base = new bdd();
$base->connexion();
$base->db();
$pseudo = mysql_real_escape_string(htmlentities($_POST['HB_pseudo']));
$mdp = $_POST['HB_mdp'];
$mdpconf = $_POST['HB_conf'];
$mail = mysql_real_escape_string(htmlentities($_POST['HB_mail']));
if (!isset($_POST['race'])) $_POST['race'] = '';
$race = mysql_real_escape_string(htmlentities($_POST['race']));
$server = mysql_real_escape_string(htmlentities($_POST['servers']));
$captcha = mysql_real_escape_string(htmlentities($_POST['HB_captcha']));
$placement = mysql_real_escape_string(htmlentities($_POST['HB_placement']));
if (!isset($_POST['regles'])) $_POST['regles'] = '';
$regles = htmlentities($_POST['regles']);
//Vérification relative au pseudo : caractéres utilisés + disponibilité
if (addslashes(preg_replace('@[^a-zA-Z0-9_]@i', '', $pseudo)) != $pseudo || $pseudo == '') {
$inscriptOk = false;
$erreurs .= '<p style="color: #FF0000"><b>Le pseudo contient des caractères incorrects.</b><br />Les caractères autorisés sont les lettres minuscules ou majuscules de A à Z sans les accents, ainsi que les chiffres et les caractères . _</p><br />';
}
else {
$result = mysql_query("SELECT `pseudo` FROM `user_inscriptions` WHERE pseudo = '$pseudo'");
if(mysql_num_rows($result) >= 1) {
$inscriptOk = false;
$erreurs .= '<p style="color: #FF0000"><b>Le pseudo est déjà utilisé par un joueur.</b><br />Vous devez choisir un autre pseudo.</p><br />';
}
}
//Vérification du mot de passe :
if ($mdp == '' || $mdp != $mdpconf) {
$inscriptOk = false;
$erreurs .= '<p style="color: #FF0000"><b>Mots de passe différents ou ne comportant pas assez de caractères</b><br />Vous devez impérativement choisir un mot de passe pour sécuriser votre compte. Si vous avez spécifié un mot de passe, il se peut que vous n\'ayez pas indiqué le même mot de passe dans la case de confirmation.</p><br />';
}
//Vérification relative au mail : caractéres utilisés + disponibilité
if (!preg_match('#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#i', $mail) || empty($mail)) {
$inscriptOk = false;
$erreurs .= '<p style="color: #FF0000"><b>L\'adresse électronique n\'est pas valide.</b><br />L\'adresse électronique que vous avez tappé est invalide ou contient des caractères interdits, recommencez.</p><br />';
}
else {
$result = mysql_query("SELECT mail FROM `user_inscriptions` WHERE mail='$mail'");
if(mysql_num_rows($result) >= 1) {
$inscriptOk = false;
$erreurs .= '<p style="color: #FF0000"><b>L\'adresse électronique que vous avez indiqué est déjà associée à un compte.</b><br>Vous devez choisir une autre adresse électronique.</p><br />';
}
}
//Vérification de la race choisie
if ($race != 'covenant' && $race != 'humain') {
$inscriptOk = false;
$erreurs .= '<p style="color: #FF0000"><b>Aucune race choisie</b><br />Vous devez choisir la race que vous désirez incarner dans le jeu.</p><br />';
}
//Vérification du serveur
if (is_numeric($server) && $server > 1) {
$inscriptOk = false;
$erreurs .= '<p style="color: #FF0000"><b>Galaxie incorrecte</b><br />Vous devez choisir une galaxie (un serveur) dans la liste ci-dessous pour pouvoir jouer.</p><br />';
}
//Vérification du partenaire
if (!empty($placement)) {
$result = mysql_query("SELECT `pseudo` FROM `user_inscriptions` WHERE pseudo = '$placement'");
if(mysql_num_rows($result) == 0) {
$inscriptOk = false;
$erreurs .= '<p style="color: #FF0000"><b>Impossible de trouver le joueur ami.</b><br />Vous devez choisir un autre pseudo.</p><br />';
}
}
//Vérification du captcha
if (empty($sess->values['aleatnbr']) && isset($_SESSION['aleat_nbr'])) {
$sess->values['aleatnbr'] = $_SESSION['aleat_nbr'];
}
if (empty($sess->values['aleatnbr']) || empty($captcha) || $sess->values['aleatnbr'] != strtolower($captcha)) {
$inscriptOk = false;
$erreurs .= '<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 />';
}
//Vérification du captcha
if (empty($regles) || $regles != '1') {
$inscriptOk = false;
$erreurs .= '<p style="color: #FF0000"><b>Vous devez accepter les conditions générales</b><br />';
}
if ($inscriptOk) {
$time = time();
$ip = $_SERVER["REMOTE_ADDR"];
// Activer la ligne suivante pour crypter les mots de passe dans la base de données
$mdp = sha1(strtoupper($pseudo).':'.$mdp); // Cryptage du mot de passe pour éviter le piratage de compte
$id_activ = sha1('H'.rand().'/|\\'.rand().'B£');
$Nmail = $mail;
//On envoie le mail de confirmation
$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($Nmail);
$mail->AddReplyTo('no-reply@halo-battle.s-fr.com');
$mail->Subject='Halo-Battle :: Activation de votre compte';
//$mail->Subject='Halo-Battle :: Pre-Inscription';
2008-11-18 11:00:00 +00:00
$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 :: Activation de votre compte</title></head><body><p>Bonjour '.$pseudo.',<br />Vous recevez ce mail suite à votre demande d\'inscription sur le jeu <a href="http://www.halo-battle.s-fr.com/">Halo-Battle</a>. Pour confirmer votre adresse mail et ainsi pouvoir acc&eacute;der au jeu, cliquez sur le lien ci-apr&egrave;s :<br /><a href="http://halo-battle.s-fr.com/?p=validation&i='.$id_activ.'">http://halo-battle.s-fr.com/?p=validation&i='.$id_activ.'</a><br /><br />A bient&ocirc;t dans Halo-Battle,<br />Le staff</p></body></html>';
2008-11-17 11:00:00 +00:00
//$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 :: Pr&eacute;-Inscription</title></head><body><p>F&eacute;licitations '.$pseudo.' !<br />Votre compte vient d&#39;&ecirc;tre enregistr&eacute; sur notre serveur. Un mail de confirmation vous sera envoy&eacute; lors de la sortie du jeu en ligne Halo-Battle. Si vous ne recevez pas l\'email de confirmation, <a href="mailto:technique@halo-battle.s-fr.com">contactez un administrateur</a>.<br /><br />A tr&egrave;s bient&ocirc;t pour la sortie d&#39;Halo-Battle !</p></body></html>';
if(!$mail->Send()){
$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{
mysql_query("INSERT INTO `user_inscriptions` (`id_activ`, `pseudo`, `race`, `mdp`, `mail`, `last_ip`, `placement`, `time_inscription`, `last_visite`) VALUES ('$id_activ', '$pseudo', '$race', '$mdp', '$Nmail', '$ip', '$placement', '$time', '$time')") or die ('MYSQLERREUR'.mysql_error());
2008-11-18 11:00:00 +00:00
$template->assign('message','F&eacute;licitations, votre compte vient d\'être cr&eacute;&eacute; sur le serveur '.$server.' de Halo-Battle.<br /><br />Un courriel de confirmation vient d\'être envoy&eacute; à votre adresse &eacute;lectronique afin de valider votre inscription au jeu en ligne Halo-Battle.<br /><br />N\'attendez-plus, commencez le combat dès à pr&eacute;sent !');
2008-11-17 11:00:00 +00:00
$template->assign('couleur','green');
$template->display('cms/erreur.tpl');
exit;
}
$mail->SmtpClose();
unset($mail);
}
$base->deconnexion();
}
$template->assign('erreurs',$erreurs);
?>