diff options
author | citizenz7 <citizenz7@protonmail.com> | 2017-04-20 18:50:55 +0200 |
---|---|---|
committer | citizenz7 <citizenz7@protonmail.com> | 2017-04-20 18:50:55 +0200 |
commit | 5fd9fa480f302902328b81f912dd67ce378284f8 (patch) | |
tree | 66234843ae2857fda12442e4f7577c527d48977c /Html/admin/signup.php | |
parent | ebe731862c7c741171138b1083906f391fc35aff (diff) | |
download | freetorrent-5fd9fa480f302902328b81f912dd67ce378284f8.tar.xz freetorrent-5fd9fa480f302902328b81f912dd67ce378284f8.zip |
V.1.4.6
Diffstat (limited to 'Html/admin/signup.php')
-rw-r--r-- | Html/admin/signup.php | 233 |
1 files changed, 233 insertions, 0 deletions
diff --git a/Html/admin/signup.php b/Html/admin/signup.php new file mode 100644 index 0000000..b25ec12 --- /dev/null +++ b/Html/admin/signup.php @@ -0,0 +1,233 @@ +<?php +require_once('../includes/config.php'); + +if($user->is_logged_in()) { + header('Location: ../index.php'); +} + +//titre de la page +$pagetitle= 'Créer un compte'; +include_once('../includes/header.php'); +?> + +<body> +<div id="container"> + + <?php + include_once('../includes/header-logo.php'); + include_once('../includes/nav.php'); + ?> + + <div id="body"> + <div id="content"> + + <h2>Créer un compte</h2> + + <div class="alert-msg rnd8 success"> + <p style="text-align:justify; font-size:13px;"> + Vous allez créer un compte sur <?php echo SITENAMELONG; ?>...<br /> + Le fait de devenir membre vous fera bénéficier de plusieurs avantages :<br /> + - uploader des torrents,<br /> + - disposer d'un espace membre,<br /> + - disposer de statistiques personnelles.<br /> + Merci de choisir un pseudo, un mot de passe et une adresse e-mail. Vous recevrez un e-mail de notre part avec un lien qui vous permettra d'activer votre nouveau compte.<br /> + <span style="font-style:italic; font-size:11px;">(Eventuellement, merci de vérifier votre répertoire Spam)</span> + </p> + </div> + + <?php + + //if form has been submitted process it + if(isset($_POST['submit'])){ + + //collect form data + extract($_POST); + + //very basic validation + if($username ==''){ + $error[] = 'Veuillez entrer un pseudo.'; + } + + if($password ==''){ + $error[] = 'Veuillez entrer un mot de passe.'; + } + + if (strlen($password) < 6) { + $error[] = 'Le mot de passe est trop court ! (6 caractères minimum)'; + } + + if($passwordConfirm ==''){ + $error[] = 'Veuillez confirmer le mot de passe.'; + } + + if($password != $passwordConfirm){ + $error[] = 'Les mots de passe ne concordent pas.'; + } + + if($email ==''){ + $error[] = 'Veuillez entrer une adresse e-maili valide.'; + } + + // On cherche si l'adresse e-mail est déjà dans la base + if (isset($_POST['email'])) { + $postemail = filter_input(INPUT_POST, $_POST['email'], FILTER_SANITIZE_EMAIL);; + $stmt = $db->prepare('SELECT email FROM blog_members WHERE email = :email'); + $stmt->bindValue(':email',$postemail,PDO::PARAM_STR); + $stmt->execute(); + $res = $stmt->fetch(); + + if ($res) { + $error[] = 'Cette adresse e-mail est déjà utilisée !'; + } + } + + //Vérification simple de la validité de l'e-mail + if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { + $error[] = 'Cette adresse e-mail n\'est pas valide !'; + } + + // Le username ne peut pas contenir de caractères spéciaux, balises, etc. + $postusername = $_POST['username']; + if (!preg_match("/^[a-zA-Z0-9]+$/",$postusername)) { + $error[] = 'Le pseudo ne peut contenir que des lettres et des chiffres !'; + } + + // On cherche si le pseudo fait moins de 4 caractères et s'il est déjà dans la base + if (strlen($_POST['username']) < 4) { + $error[] = 'Le pseudo est trop court ! (4 caractères minimum)'; + } + + else { + $stmt = $db->prepare('SELECT username FROM blog_members WHERE username = :username'); + $stmt->bindValue(':username',$postusername,PDO::PARAM_STR); + $stmt->execute(); + $row = $stmt->fetch(); + + if (!empty($row['username'])) { + $error[] = 'Ce pseudo est déjà utilisé ! Merci d\'en choisir un autre.'; + } + } + + $verif_box = $_REQUEST["captcha"]; + + // on vérifie le captcha + if(md5($verif_box).'a4xn' == $_COOKIE['tntcon']) { + + if(!isset($error)){ + $hashedpassword = $user->password_hash($_POST['password'], PASSWORD_BCRYPT); + $pid = md5(uniqid(rand(),true)); + $activation = md5(uniqid(rand(),true)); + + // Remove all illegal characters from an email address + $email = filter_var($email, FILTER_SANITIZE_EMAIL); + + try { + //On insert les données dans la table blog_members + $result1 = $db->prepare('INSERT INTO blog_members (username,password,email,pid,memberDate,active) VALUES (:username,:password,:email,:pid,:memberDate,:active)') ; + $result1->execute(array( + ':username' => $username, + ':password' => $hashedpassword, + ':email' => $email, + ':pid' => $pid, + ':memberDate' => date('Y-m-d H:i:s'), + ':active' => $activation + )); + + $newuid = $db->lastInsertId(); + + //On insert aussi le PID et l'ID du membre dans la table xbt_users + $result2 = $db->prepare('INSERT INTO xbt_users (uid, torrent_pass) VALUES (:uid, :torrent_pass)'); + $result2->execute(array( + ':uid' => $newuid, + ':torrent_pass' => $pid + )); + + if(!$result1 || !$result2) + { + $error[] = 'Erreur : votre compte utilisateur n\'a pas pu être créé.'; + } + + else { + // si tout OK, on envoie le mail de confirmation de compte + $newuid = $db->lastInsertId(); + $to = $email; + $subject = "Confirmation d'enregistrement de compte"; + $body = "<p>Merci de vous êtes enregistré(e) sur ".SITENAMELONG.".</p> + <p>Pour activer votre compte, veuillez cliquer sur le lien suivant: <a href='".SITEURL."/activate.php?x=$newuid&y=$activation'>".SITEURL."/activate.php?x=$newuid&y=$activation</a></p> + <p>Cordialement,<br />Le webmaster de ".SITENAMELONG."</p>"; + + $mail = new Mail(); + $mail->setFrom(SITEMAIL); + $mail->addAddress($to); + $mail->subject($subject); + $mail->body($body); + $mail->send(); + + //redirect to index page + header('Location: ../membres.php?action=activation'); + exit; + } + + + } catch(PDOException $e) { + echo $e->getMessage(); + } + + } + + } // captcha + + else { + $error[] = 'Mauvais code anti-spam ! Veuillez recopier le bon code.'; + } + + } + + //check for any errors + if(isset($error)){ + foreach($error as $error){ + echo '<div class="alert-msg error"><img src="../images/attention-1.jpg" alt="Erreur !" style="float: left; margin-right: 15px; width: 38px; height: 38px;" />'.$error.'</div>'; + } + } + ?> + + <form action='' method='post'> + + <p><label>Pseudo</label><br /> + <input type='text' name='username' id='username' value='<?php if(isset($error)){ echo $_POST['username'];}?>'></p> + + <p><label>Mot de passe</label> (6 caractères minimum)<br /> + <input type='password' name='password' id='password' value='<?php if(isset($error)){ echo $_POST['password'];}?>'><br /> + + <!-- force du mot de passe --> + <span style="font-weight: bold;" id='result'></span> + + </p> + + <p><label>Confirmation mot de passe</label><br /> + <input type='password' name='passwordConfirm' value='<?php if(isset($error)){ echo $_POST['passwordConfirm'];}?>'></p> + + <p><label>E-mail</label><br /> + <input type='text' name='email' value='<?php if(isset($error)){ echo $_POST['email'];}?>'></p> + + <p><label>Anti-spam : veuillez recopier le code ci-dessous</label><br /> + <input type='text' name='captcha'> <img src="../verificationimage.php?<?php echo rand(0,9999);?>" alt="captcha" width="50" height="24" align="absbottom" /> + </p> + + <p><input type='submit' class="searchsubmit formbutton" name='submit' value='Créer un compte'> <input type="reset" value="Annuler" /></p> + + </form> + </div> + + <?php include_once '../sidebar.php'; ?> + + <div class="clear"></div> + </div> +</div> + +<div id="footer"> + <?php include_once '../includes/footer.php'; ?> +</div> + +</body> +</html> |