game/inscription_validation.php

110 lines
6.2 KiB
PHP

<?php
require_once('connectBDD.php');
if (isset($_POST['code']) && isset($_POST['pseudo']) && isset($_POST['mail']) && isset($_POST['mdp2']) && isset($_POST['mdp']) && isset($_POST['race'])) {
$code = strtoupper(mysql_real_escape_string($_POST['code']));
$req = mysql_query("SELECT * FROM cds_beta WHERE `code` = '$code' AND `utilise` = '0'");
if(mysql_num_rows($req) >= 1) {
$pseudo = mysql_real_escape_string($_POST['pseudo']);
$mail = mysql_real_escape_string($_POST['mail']);
$mdp = mysql_real_escape_string($_POST['mdp']);
$mdp2 = mysql_real_escape_string($_POST['mdp2']);
$race = mysql_real_escape_string($_POST['race']);
mysql_query("UPDATE `cds_beta` SET `user` = '$pseudo', `utilise` = '1' WHERE `code`='$code';") or die ("erreur sql ".mysql_error());
$erreurs = '<table style="width: 75%; margin-left: auto; margin-right: auto;">';
$inscriptOk = true;
}
else {
header('Location: inscription.php?err=1');
exit;
}
// Diverses vérification pour savoir si tous les champs sont remplis et s'ils ont tous les données valides
if (addslashes(preg_replace('@[^a-zA-Z0-9_]@i', '', $pseudo)) != $pseudo || $pseudo == '') {
$inscriptOk = false;
$erreurs .= '<tr><td style="text-align: left;"><font 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 . _</font></td></tr>';
}
else {
$result = mysql_query("SELECT pseudo FROM user WHERE pseudo='$pseudo'");
if(mysql_num_rows($result) >= 1) {
$inscriptOk = false;
$erreurs .= '<tr><td style="text-align: left;"><font color="#FF0000"><b>Le pseudo est déjà utilisé par un joueur.</b><br>Vous devez choisir un autre pseudo.</font></td></tr>';
}
}
if (!preg_match('#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#i', $mail) || $mail == '') {
$inscriptOk = false;
$erreurs .= '<tr><td style="text-align: left;"><font 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.</font></td></tr>';
}
else {
$result = mysql_query("SELECT mail FROM user WHERE mail='$mail'");
if(mysql_num_rows($result) >= 1) {
$inscriptOk = false;
$erreurs .= '<tr><td style="text-align: left;"><font 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.</font></td></tr>';
}
}
if (ereg('hotmail',$mail) || ereg('msn',$mail)) {
$erreurs .= '<tr><td style="text-align: left;"><font color="#FFCC00"><b>Adresse MSN/Hotmail détectée</b><br>Nous avons remarqué un ralentissement de la réception des courriels d\'activation des comptes sur les adresses hotmail ou MSN. Nous vous recommandons d\'indiquez une adresse différente. Vous pouvez néanmoins l\'utiliser mais il faudra un certain temps avant de recevoir le courriel.</font></td></tr>';
}
if ($mdp == '' || $mdp != $mdp2) {
$inscriptOk = false;
$erreurs .= '<tr><td style="text-align: left;"><font color="#FF0000"><b>Mots de passe différents ou vides</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.</font></td></tr>';
}
if ($race != 'covenant' && $race != 'humain') {
$inscriptOk = false;
$erreurs .= '<tr><td style="text-align: left;"><font color="#FF0000"><b>Aucune race choisie</b><br>Vous devez choisir la race que vuos désirez incarner dans le jeu.</font></td></tr>';
}
if ($inscriptOk != true) {
// Affichage des erreurs en cas d'impossibilité à procéder à l'inscription
print $erreurs.'</table>';
}
else {
$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
$planete_trouvee = false;
while ($planete_trouvee != true) {
$galaxie = 1;
//$galaxie = mt_rand(2,4);
$ss = mt_rand(1,100);
$pos = mt_rand(1,12);
// Test pour savoir si la planète est déjà habitée
$result = mysql_query("SELECT id FROM planete WHERE galaxie='$galaxie' AND ss='$ss' AND position='$pos'");
if(mysql_num_rows($result)>=1) $planete_trouvee = false;
else $planete_trouvee = true;
}
$image = mt_rand(1,15);
mysql_query("INSERT INTO user (`pseudo`, `race`, `mdp`, `mail`, `last_ip`, `time_inscription`, `last_visite`) VALUES ('$pseudo', '$race', '$mdp', '$mail', '$ip', '$time', '$time')") or die ("erreur sql ".mysql_error());
$req = mysql_query("SELECT id FROM user WHERE pseudo='$pseudo'");
$resultat = mysql_fetch_array($req);
$id_user = $resultat['id'];
$cases = mt_rand(150,250);
mysql_query("INSERT INTO planete (`id_user`, `nom_planete`, `galaxie`, `ss`, `position`, `image`, `cases`, `timestamp`, `metal`, `cristal`) VALUES ('$id_user', 'Planète mère', '$galaxie', '$ss', '$pos', '$image', '$cases', '$time', '1000', '700')") or die ("erreur sql ".mysql_error());
include('template.php');
$template = new Template('./');
$template->set_filenames(array('index' => 'templates/index.tpl'));
$login = '<form name="login" method="post" action="verifLogin.php">
<table>
<tr>
<td class="cellulestxt">&#58;&#58;&nbsp;Pseudo&nbsp;&#58;&#58;&nbsp;</td><td><input type="text" class="champ" name="login" /></td></tr>
<tr><td class="cellulestxt">&#58;&#58;&nbsp;Mot&nbsp;de&nbsp;Passe&nbsp;&#58;&#58;&nbsp;</td><td><input type="password" class="champ" name="password" /></td></tr>
<tr><td align="center" colspan="2"><br />
<input class="connexion" type="submit" value="&rsaquo;&nbsp;Connexion&nbsp;&lsaquo;" /></td></tr></table>
</form>';
$texte = '<br /><br /><br /><font color="#00FF00"><b>Votre inscription a bien été prise en compte.</b></font><br /><br />Vous pouvez dès maintenant utiliser le formulaire de connexion ci-contre pour accèdez à la béta de Halo-Battle.<br /><br />Bon jeu !';
$template->assign_vars(array('TITRE' => 'Inscription validée','TEXTE' => $texte,'LOGIN' => $login));
$template->pparse('index');
}
}
else {
header('Location: inscription.php?err=0');
exit;
}
mysql_close();
?>