rpgillusion

RPG Illusion: French fork of Dragon Knight
git clone https://git.neuralcrash.com/rpgillusion.git
Log | Files | Refs | README

users.php (12644B)


      1 <?php // users.php :: Page d'inscription ou concernant le Password.
      2 
      3 include('kernel/functions.php');
      4 include('kernel/display_log.php');
      5 $link = opendb();
      6 
      7 $controlquery = doquery("SELECT * FROM {{table}} WHERE id='1' LIMIT 1", "control");
      8 $controlrow = mysql_fetch_array($controlquery);
      9 
     10 $menuquery = doquery("SELECT * FROM {{table}} WHERE id='1' LIMIT 1", "menu_users");
     11 $menurow = mysql_fetch_array($menuquery);
     12 
     13 $advertising['advertising'] = $menurow['content'];
     14 $template_menu = gettemplate("advertising");
     15 $advertising = parsetemplate($template_menu, $advertising);
     16 
     17 if(isset($_GET['do'])){
     18 switch ($_GET['do']) {
     19   case 'register': register(); break;
     20    case 'verify': verify(); break;
     21     case 'lostpassword': lostpassword(); break;
     22      case 'changepassword': changepassword(); break;
     23   }  
     24 }
     25 
     26 function register() { // Créer un nouveau compte.
     27 	
     28     global $controlrow, $advertising;
     29     
     30     if (isset($_POST["submit"])) {
     31         
     32         extract($_POST);
     33         
     34         $errors = 0; $errorlist = "";
     35         
     36         // Processus des ID.
     37         if (trim($username) == "") { $errors++; $errorlist .= "- Vous n'avez entré aucun ID.<br>"; }
     38         if (preg_match("/[\^*+<>?#]/", $username)==1) { $errors++; $errorlist .= "- Votre ID doit être écrit en caractères alphanumérique.<br>"; } 
     39         $usernamequery = doquery("SELECT username FROM {{table}} WHERE username='".addslashes($username)."' LIMIT 1","users");
     40         if (mysql_num_rows($usernamequery) > 0) { $errors++; $errorlist .= "- L'ID est déja pris.<br>"; }
     41 
     42         // Processus des adresse email.
     43         if (trim($email1) == "" || $email2 == "") { $errors++; $errorlist .= "- Vous n'avez entré aucun E-mail.<br>"; }
     44         if ($email1 != $email2) { $errors++; $errorlist .= "- Les 2 adresses E-mail que vous avez inscrit ne sont pas indentiques.<br>"; }
     45         if (! is_email($email1)) { $errors++; $errorlist .= "- L'adresse E-mail que vous avez inscrit est invalide.<br>"; }
     46         $emailquery = doquery("SELECT email FROM {{table}} WHERE email='".addslashes($email1)."' LIMIT 1","users");
     47         if (mysql_num_rows($emailquery) > 0) { $errors++; $errorlist .= "- L'adresse E-mail est déja pris.<br>"; }
     48         
     49         // Processus des PW. 
     50         if (preg_match("/[\^*+<>?#]/", $password1)==1) { $errors++; $errorlist .= "- Votre PW doit être écrit en caractères alphanumérique.<br>"; }
     51         if ($password1 != $password2) { $errors++; $errorlist .= "- Les 2 PW que vous avez inscrit ne sont pas indentiques.<br>"; }
     52         $password = md5($password1);
     53 		
     54 		// Processus des charname 
     55         if (trim($charname) == "") { $errors++; $errorlist .= "- Vous n'avez entré aucun Pseudo<br>"; }
     56         if (preg_match("/[\^*+<>?#]/", $charname)==1) { $errors++; $errorlist .= "- Votre Pseudo doit être écrit en caractères alphanumérique.<br>"; }
     57         $charnamequery = doquery("SELECT charname FROM {{table}} WHERE charname='".addslashes($charname)."' LIMIT 1","users");
     58         if (mysql_num_rows($charnamequery) > 0) { $errors++; $errorlist .= "- Le Pseudo est déja pris.<br>"; }
     59         
     60         if ($errors == 0) {
     61             
     62             if ($controlrow["verifyemail"] == 1) {
     63                 $verifycode = "";
     64                 for ($i=0; $i<8; $i++) {
     65                     $verifycode .= chr(rand(65,90));
     66                 }
     67             } else {
     68                 $verifycode='1';
     69             }
     70             
     71             $query = doquery("INSERT INTO {{table}} SET id='',regdate=NOW(),verify='".addslashes($verifycode)."',username='".addslashes($username)."',password='".addslashes($password)."',email='".addslashes($email1)."',charname='".addslashes($charname)."',avatar='".addslashes($avatar)."',charclass='".addslashes($charclass)."',difficulty='".addslashes($difficulty)."'", "users") or die(mysql_error());
     72             
     73             if ($controlrow["verifyemail"] == 1) {
     74                 if (sendregmail($email1, $verifycode) == true) {
     75                     $page = 'Votre compte a été crée avec succès.<br><br>Vous devriez recevoir un e-mail de vérification de compte sous peu. Vous aurez besoin du code de vérification contenu dans l\'e-mail. Sans ce code vous ne pourrez pas jouer. <br><br>Lorsque vous aurez recu cet e-mail  allez à la page de <a href="?do=verify">vérification</a> et remplissez les champs requis.';
     76                 } else {
     77                     $page = 'Votre compte a été crée avec succès.<br><br>Toutefois, un problème est survenu lors de l\'envois de l\'e-mail, contactez l\'administrateur du jeu à l\'adresse suivante pour avoir plus de précisions : <b>'.$controlrow["adminemail"].'</b> .';
     78                 }
     79             } else {
     80                 $page = 'Votre compte a été crée avec succès.<br><br>Vous pouvez maintenant <a href="login.php?do=login">vous loger</a> et commencer à jouer '.$controlrow["gamename"].'!';
     81             }
     82             
     83         } else {
     84             
     85          $page = 'Votre compte n\'a pas pu être crée car les erreur(s) suivante(s) se sont produite(s):<br><br><span class="alerte">'.$errorlist.'</span><br><br>Maintenant vous pouvez:<br><br><a href="?do=register">» retourner et réessayer</a>';            
     86         }
     87         
     88     } else {
     89         
     90         $page = gettemplate("register");
     91         if ($controlrow["verifyemail"] == 1) { 
     92             $controlrow["verifytext"] = '<br><span class="notice">Un code de validation sera envoyé à l\'adresse email ci-dessus. Sans ce code de validation, vous ne pourrez pas jouer .  Veuillez être sûr d\'écrire un adresse email correcte.</span>';
     93         } else {
     94             $controlrow["verifytext"] = "";
     95         }
     96     }
     97 display(parsetemplate($page, $controlrow), 'Créer un compte', $advertising);
     98 
     99 }
    100 
    101 
    102 function verify() { // Validation d'un compte.
    103 
    104     global $controlrow, $advertising;
    105 
    106     if (isset($_POST["submit"])) {
    107         
    108 		extract($_POST);
    109         $errors = 0;
    110         $errorlist = "";
    111         
    112 		$userquery = doquery("SELECT username,email,verify FROM {{table}} WHERE username='$username' LIMIT 1","users");
    113         if (mysql_num_rows($userquery) != 1) { $errors++; $errorlist .= "- Aucun compte existant avec cet ID.<br>"; }
    114         $userrow = mysql_fetch_array($userquery);
    115         if ($userrow["verify"] == 1)  { $errors++; $errorlist .= "- Votre compte a déja été validé.<br>"; }
    116         if ($userrow["email"] != $email)  { $errors++; $errorlist .= "- L'adresse e-mail est incorrecte.<br>"; }
    117         if ($userrow["verify"] != $verify) { $errors++; $errorlist .= "- Le code de validation est incorrect.<br>"; }
    118         if ($errors == 0) {
    119 	   $updatequery = doquery("UPDATE {{table}} SET verify='1' WHERE username='$username' LIMIT 1","users");
    120        $page = '<b>Bravo votre compte vient d\'être validé!</b><br><br>Vous pouvez désormais vous loger via le menu de gauche de l\'accueil et commencer à jouer à '.$controlrow['gamename'].'.<br><br>Maintenant vous pouvez:<br><br><a href="login.php?do=login">» retourner à l\'accueil</a>';
    121         }else { 
    122        $page = 'Votre compte n\'a pas pu être validé, car les erreur(s) suivante(s) se sont produite(s):<br><br><span class="alerte">'.$errorlist.'</span><br><br>Maintenant vous pouvez:<br><br><a href="users.php?do=verify">» retourner et réessayer</a>';  
    123         } 
    124 	}else{
    125      $page = gettemplate("verify");
    126 	}
    127 
    128 display(parsetemplate($page, $controlrow), 'Vérification de votre compte',$advertising);
    129     
    130 }
    131 
    132 
    133 function lostpassword() { // Password perdu.
    134     
    135 	global $controlrow, $advertising;
    136 
    137     if (isset($_POST["submit"])) {
    138         extract($_POST);
    139         $userquery = doquery("SELECT email FROM {{table}} WHERE email='$email' LIMIT 1","users");
    140         if (mysql_num_rows($userquery) != 1) { $errors++; $errorlist .= "- Aucun compte avec cette adresse email.<br>"; }
    141 		if (trim($email) == "") { $errors++; $errorlist .= "- Vous n'avez entré aucune adresse e-mail.<br>"; }
    142 		if ($errors == 0) {
    143         $newpass = "";
    144         for ($i=0; $i<8; $i++) {
    145             $newpass .= chr(rand(65,90));
    146         }
    147         $md5newpass = md5($newpass);
    148         $updatequery = doquery("UPDATE {{table}} SET password='$md5newpass' WHERE email='$email' LIMIT 1","users");
    149         if (sendpassemail($email,$newpass) == true) {
    150           $page='Votre nouveau PW a été envoyé à l\'adresse e-mail ('.$email.') que vous nous avez indiqué.<br><br>Après avoir recu votre nouveau PW, vous pourrez vous loger et commencer à jouer.<br><br>Maintenant vous pouvez:<br><br><a href="login.php?do=login">» retourner à l\'accueil</a>';
    151         } }else {
    152           $page='Votre nouveau PW n\'a pas pu être crée, car les erreur(s) suivante(s) se sont produite(s):<br><br><span class="alerte">'.$errorlist.'</span><br><br>Maintenant vous pouvez:<br><br><a href="users.php?do=lostpassword">» retourner et réessayer</a>';
    153 		}
    154     }else{
    155 	$page = gettemplate("lostpassword");
    156 	}
    157 
    158 display(parsetemplate($page, $controlrow), 'Password perdu?', $advertising);
    159     
    160 }
    161 
    162 
    163 function changepassword() { // Changer password.
    164 
    165 	global $controlrow, $advertising;
    166     
    167     if (isset($_POST["submit"])) {
    168         extract($_POST);
    169         $errors = 0;
    170         $errorlist = "";
    171 		
    172 	    $userquery = doquery("SELECT * FROM {{table}} WHERE username='".addslashes($username)."' LIMIT 1","users");
    173         if (mysql_num_rows($userquery) != 1)  { $errors++; $errorlist .= "- Il y a aucun compte existant avec cet ID.<br>"; }
    174         $userrow = mysql_fetch_array($userquery);
    175         if ($userrow['password'] != md5($oldpass))  { $errors++; $errorlist .= "- L'ancien PW que vous avez fournie est incorrect.<br>"; }
    176 		if ((trim($newpass1)== "") && (trim($newpass2)== "")) { $errors++; $errorlist .= "- Vous n'avez entré aucun nouveau PW.<br>"; }
    177 		if (preg_match("/[^A-z0-9_\-]/", $newpass1)==1)  { $errors++; $errorlist .= "- Le nouveau PW doit être écrit en caractères alphanumérique.<br>"; }
    178         if ($newpass1 != $newpass2)  { $errors++; $errorlist .= "- Les 2 PW que vous avez inscrit ne sont pas indentiques.<br>"; }
    179         $realnewpass = md5($newpass1);
    180         if ($errors == 0) {
    181         $updatequery = doquery("UPDATE {{table}} SET password='".addslashes($realnewpass)."' WHERE username='".addslashes($username)."' LIMIT 1","users");
    182         $page='Votre PW a été changé avec succès.<br><br>Maintenant vous pouvez:<br><br><a href="login.php?do=login">» retourner à l\'accueil</a>';
    183     }else { 
    184       $page = 'Votre PW n\'a pas pu être changé, car les erreur(s) suivante(s) se sont produite(s):<br><br><span class="alerte">'.$errorlist.'</span><br><br>Maintenant vous pouvez:<br><br><a href="users.php?do=changepassword">» retourner et réessayer</a>';  
    185     } 
    186 	}else{
    187     $page = gettemplate("changepassword");
    188 	}
    189 	
    190 display(parsetemplate($page, $controlrow), 'Changer de password',$advertising);
    191     
    192 }
    193 
    194 
    195 function sendpassemail($emailaddress, $password) { // Envois nouveau password.
    196     
    197 $controlquery = doquery("SELECT * FROM {{table}} WHERE id='1' LIMIT 1", "control");
    198 $controlrow = mysql_fetch_array($controlquery);
    199     
    200 $email = "Bonjours,\n\nvous avez récement demandé un nouveau Password (PW) sur ".stripslashes($controlrow['gamename']).".\nComme convenu le voici: $password\n\nVous pouvez dès maintenant vous loger avec à cette adresse : $controlrow[gameurl].\n\nA bientot sur ".stripslashes($controlrow['gamename'])."!";
    201 
    202 $status = mymail($emailaddress, stripslashes($controlrow['gamename']).' : votre password', $email);
    203 return $status;
    204     
    205 }
    206 
    207 
    208 function sendregmail($emailaddress, $verifycode) { // Envois e-mail de validation.
    209     
    210 $controlquery = doquery("SELECT * FROM {{table}} WHERE id='1' LIMIT 1", "control");
    211 $controlrow = mysql_fetch_array($controlquery);
    212     
    213 $email ="Bonjours,\n\nvous vous êtes récement inscrit sur ".stripslashes($controlrow['gamename']).".\nPour valider votre compte rendez vous ici: $controlrow[gameurl]users.php?do=verify et entrez le code de validation suivant: $verifycode\n\nA bientot sur ".stripslashes($controlrow['gamename'])."!";
    214 
    215 $status = mymail($emailaddress, ''.stripslashes($controlrow['gamename']).' : votre inscription', $email);
    216 return $status;
    217     
    218 }
    219 
    220 
    221 function mymail($to, $title, $body) { // Fonction d'envoie.
    222 
    223 $controlquery = doquery("SELECT * FROM {{table}} WHERE id='1' LIMIT 1", "control");
    224 $controlrow = mysql_fetch_array($controlquery);
    225 
    226 $head  = $controlrow['adminemail']; 
    227 $head .= 'MIME-version: 1.0\n'; 
    228 $head .= 'Content-type: text/plain; charset= iso-8859-1\n';
    229 
    230 return mail($to, $title, $body, $head);
    231   
    232 }
    233 
    234 
    235 ?>