Advertisement
Guest User

register

a guest
Mar 3rd, 2017
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 6.32 KB | None | 0 0
  1. <?php
  2.  
  3. if (!empty($_POST)) {
  4.  
  5.     $errors = array();
  6.  
  7.  
  8.     require_once 'includes/config.php';
  9.     require_once 'includes/functions.php';
  10.  
  11.  
  12.     if (empty($_POST['username']) || !preg_match('/^[a-zA-Z0-9_-]+$/', $_POST['username'])) {
  13.        
  14.         $errors['username'] = "Votre pseudo n'est pas valide";
  15.     }
  16.  
  17.     else {
  18.         $req = $pdo->prepare('SELECT id FROM users WHERE username = ?');
  19.         $req->execute([$_POST['username']]);
  20.         $user = $req->fetch();
  21.         if ($user) {
  22.             $errors['username'] = "Ce pseudo est déjà utilisé";
  23.         }
  24.     }
  25.  
  26.  
  27.  
  28.  
  29.     if (empty($_POST['email']) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
  30.         $errors['email'] = "Votre email n'est pas valide";
  31.     }
  32.  
  33.     else {
  34.         $req = $pdo->prepare('SELECT id FROM users WHERE email = ?');
  35.         $req->execute([$_POST['email']]);
  36.         $user = $req->fetch();
  37.         if ($user) {
  38.             $errors['email'] = "Cet adresse email est déjà utilisé";
  39.         }
  40.     }
  41.  
  42.  
  43.  
  44.  
  45.     if (empty($_POST['password']) || $_POST['password'] != $_POST['password-confirm']) {
  46.         $errors['password'] = "Votre mot de passe n'est pas valide";
  47.     }
  48.  
  49.  
  50.  
  51.  
  52.     if(empty($errors)){
  53.  
  54.     // On enregistre les informations dans la base de données
  55.     $req = $pdo->prepare("INSERT INTO users SET username = ?, password = ?, email = ?, confirmation_token = ?");
  56.  
  57.     // On ne sauvegardera pas le mot de passe en clair dans la base mais plutôt un hash
  58.     $password = password_hash($_POST['password'], PASSWORD_BCRYPT);
  59.  
  60.     // On génère le token qui servira à la validation du compte
  61.     $token = str_random(60);
  62.     $req->execute([$_POST['username'], $password, $_POST['email'], $token]);
  63.     $user_id = $pdo->lastInsertId();
  64.  
  65.     // On envoit l'email de confirmation
  66.     mail($_POST['email'], 'Confirmation de votre compte', "Afin de valider votre compte merci de cliquer sur ce lien\n\nhttp://local.dev/Lab/Comptes/confirm.php?id=$user_id&token=$token");
  67.  
  68.     // On redirige l'utilisateur vers la page de login avec un message flash
  69.     $_SESSION['flash']['success'] = 'Un email de confirmation vous a été envoyé pour valider votre compte';
  70.    
  71.     header('Location: login.php');
  72.    
  73.     exit();
  74.  
  75.  
  76.     debug(errors);
  77.  
  78.  
  79. }
  80.  
  81. ?>
  82.  
  83.  
  84.  
  85. <!DOCTYPE html>
  86. <!--[if IE 8]> <html lang="en" class="ie8"> <![endif]-->
  87. <!--[if IE 9]> <html lang="en" class="ie9"> <![endif]-->
  88. <!--[if !IE]><!--> <html lang="fr"> <!--<![endif]-->
  89. <head>
  90.     <title>Inscription | AnkaWorld</title>
  91.  
  92.     <!-- Meta -->
  93.     <meta charset="utf-8">
  94.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  95.     <meta name="description" content="">
  96.     <meta name="author" content="">
  97.  
  98.     <!-- Favicon -->
  99.     <link rel="shortcut icon" href="favicon.ico">
  100.  
  101.     <!-- Web Fonts -->
  102.     <link rel='stylesheet' type='text/css' href='//fonts.googleapis.com/css?family=Open+Sans:400,300,600&amp;subset=cyrillic,latin'>
  103.  
  104.     <!-- CSS Global Compulsory -->
  105.     <link rel="stylesheet" href="assets/plugins/bootstrap/css/bootstrap.min.css">
  106.     <link rel="stylesheet" href="assets/css/style.css">
  107.  
  108.     <!-- CSS Implementing Plugins -->
  109.     <link rel="stylesheet" href="assets/plugins/animate.css">
  110.     <link rel="stylesheet" href="assets/plugins/line-icons/line-icons.css">
  111.     <link rel="stylesheet" href="assets/plugins/font-awesome/css/font-awesome.min.css">
  112.  
  113.     <!-- CSS Page Style -->
  114.     <link rel="stylesheet" href="assets/css/pages/page_log_reg_v2.css">
  115.  
  116.     <!-- CSS Theme -->
  117.     <link rel="stylesheet" href="assets/css/theme-colors/default.css" id="style_color">
  118.     <link rel="stylesheet" href="assets/css/theme-skins/dark.css">
  119.  
  120.     <!-- CSS Customization -->
  121.     <link rel="stylesheet" href="assets/css/custom.css">
  122. </head>
  123.  
  124. <body>
  125.     <!--=== Content Part ===-->
  126.     <div class="container">
  127.         <!--Reg Block-->
  128.         <div class="reg-block">
  129.             <div class="reg-block-header">
  130.                 <h2>INSCRIPTION</h2>
  131.                 <p>Déjà inscrit ? Rendez-vous sur la page <a class="color-green" href="connexion.php">Connexion</a>.</p>
  132.             </div>
  133. TEST test
  134.             <form action="" method="post">
  135.                 <div class="input-group margin-bottom-20">
  136.                     <span class="input-group-addon"><i class="fa fa-user"></i></span>
  137.                     <input type="text" class="form-control" placeholder="Pseudo" name="identifiant" id="identifiant" required/>
  138.                 </div>
  139.                 <div class="input-group margin-bottom-20">
  140.                     <span class="input-group-addon"><i class="fa fa-envelope"></i></span>
  141.                     <input type="email" class="form-control" placeholder="Email" name="email" id="email" required/>
  142.                 </div>
  143.                 <div class="input-group margin-bottom-20">
  144.                     <span class="input-group-addon"><i class="fa fa-lock"></i></span>
  145.                     <input type="password" class="form-control" placeholder="Mot de passe" name="password" id="password" required/>
  146.                 </div>
  147.                 <div class="input-group margin-bottom-30">
  148.                     <span class="input-group-addon"><i class="fa fa-key"></i></span>
  149.                     <input type="password" class="form-control" placeholder="Confirmez le mot de passe" name="password-confirm" id="password-confirm" required/>
  150.                 </div>
  151.                 <div class="row">
  152.                     <div class="col-md-10 col-md-offset-1">
  153.                         <button type="submit" class="btn-u btn-block">VALIDER</button>
  154.                     </div>
  155.                 </div>
  156.             </form>
  157.         </div>
  158.         <!--End Reg Block-->
  159.     </div><!--/container-->
  160.     <!--=== End Content Part ===-->
  161.  
  162.     <!-- JS Global Compulsory -->
  163.     <script type="text/javascript" src="assets/plugins/jquery/jquery.min.js"></script>
  164.     <script type="text/javascript" src="assets/plugins/jquery/jquery-migrate.min.js"></script>
  165.     <script type="text/javascript" src="assets/plugins/bootstrap/js/bootstrap.min.js"></script>
  166.     <!-- JS Implementing Plugins -->
  167.     <script type="text/javascript" src="assets/plugins/back-to-top.js"></script>
  168.     <script type="text/javascript" src="assets/plugins/backstretch/jquery.backstretch.min.js"></script>
  169.     <!-- JS Customization -->
  170.     <script type="text/javascript" src="assets/js/custom.js"></script>
  171.     <!-- JS Page Level -->
  172.     <script type="text/javascript" src="assets/js/app.js"></script>
  173.     <script type="text/javascript">
  174.         jQuery(document).ready(function() {
  175.             App.init();
  176.         });
  177.     </script>
  178.     <script type="text/javascript">
  179.         $.backstretch([
  180.             "assets/img/bg/19.jpg",
  181.             "assets/img/bg/18.jpg",
  182.             ], {
  183.                 fade: 1000,
  184.                 duration: 10000
  185.             });
  186.     </script>
  187.     <!--[if lt IE 9]>
  188.     <script src="assets/plugins/respond.js"></script>
  189.     <script src="assets/plugins/html5shiv.js"></script>
  190.     <script src="assets/plugins/placeholder-IE-fixes.js"></script>
  191.     <![endif]-->
  192. </body>
  193. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement