Advertisement
Guest User

Untitled

a guest
Mar 19th, 2018
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 10.11 KB | None | 0 0
  1. <?php
  2.  
  3. function connectDb() {
  4.   try {
  5.     $db = new PDO("mysql:host=DB_HOST;dbname=DB_NAME", DB_USER, DB_PWD);
  6.     // set the PDO error mode to exception
  7.     $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  8.         echo "Connected successfully";
  9.   } catch(PDOException $e) {
  10.     die("Erreur de connection: " . $e->getMessage() );
  11.   }
  12.   return $db;
  13. }
  14.  
  15. // On définit des variables et on les mets à vide
  16. $name_customer_Error = $last_name_customer_Error = $email_customer_Error = $phone_number_customer_Error = $pseudo_customer_Error = $password_customer_Error = "";
  17. $name_customer = $last_name_customer = $email_customer = $phone_number_customer = $pseudo_customer = $password_customer = "";
  18.  
  19. function registerCustomer(){
  20.  
  21.   function verifyInput($data) {
  22.     $data = trim($data);
  23.     $data = stripslashes($data);
  24.     $data = htmlspecialchars($data);
  25.     return $data;
  26.   }
  27.  
  28.   function generateRandomCustomerCode($length = 10) {
  29.     $characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  30.     $charactersLength = strlen($characters);
  31.     $randomCustomerCode = '';
  32.     for ($i = 0; $i < $length; $i++) {
  33.       $randomCustomerCode .= $characters[rand(0, $charactersLength - 1)];
  34.     }
  35.     // Vérifiez si le code existe déjà dans la BDD
  36.     $query = $db->prepare("SELECT * FROM customers WHERE code_customer = :code_customer");
  37.     $query->execute([
  38.       "code_customer" => $randomCustomerCode
  39.     ]);
  40.     // Le code existe on doit en faire un autre
  41.     if(empty($query->fetch())) {
  42.       return $randomCustomerCode;
  43.     }
  44.     generateRandomCustomerCode($length);
  45.   }
  46.  
  47.   $db = connectDb();
  48.   $error = false;
  49.  
  50.   if ($_SERVER["REQUEST_METHOD"] == "POST") {
  51.     if (empty($_POST["name"])) {
  52.       $name_customer_Error = "Un prénom est requis";
  53.       $error = true;
  54.     } else {
  55.       $name_customer = verifyInput($_POST["name"]);
  56.       if(!ctype_alpha($name_customer)) {
  57.         $name_customer_Error = "Seules les lettres sont autorisés";
  58.         $error = true;
  59.       }
  60.     }
  61.  
  62.     if (empty($_POST["last_name"])) {
  63.       $last_name_customer_Error = "Un nom est requis";
  64.       $error = true;
  65.     } else {
  66.       $last_name_customer = verifyInput($_POST["last_name"]);
  67.       if(!ctype_alpha($last_name_customer)) {
  68.         $last_name_customer_Error = "Seules les lettres sont autorisés";
  69.         $error = true;
  70.       }
  71.     }
  72.  
  73.     if (empty($_POST["email"])) {
  74.       $email_customer_Error = "Un email est requis";
  75.       $error = true;
  76.     } else {
  77.       $email_customer = verifyInput($_POST["email"]);
  78.       if (!filter_var($email_customer, FILTER_VALIDATE_EMAIL)) {
  79.         $email_customer_Error = "Format d'email invalide";
  80.         $error = true;
  81.       }
  82.     }
  83.  
  84.     if (empty($_POST["tel"])) {
  85.       $phone_number_customer_Error = "Un téléphone est requis";
  86.       $error = true;
  87.     } else {
  88.       $phone_number_customer = verifyInput($_POST["tel"]);
  89.       if (!(strlen($_POST["tel"])==0 or (strlen($_POST["tel"])==10 and is_numeric($_POST["tel"])))) {
  90.         $phone_number_customer_Error = "Format de téléphone invalide";
  91.         $error = true;
  92.       }
  93.     }
  94.  
  95.     if (empty($_POST["pseudo"])) {
  96.       $pseudo_customer_Error = "Un pseudo est requis";
  97.       $error = true;
  98.     } else {
  99.       $pseudo_customer = verifyInput($_POST["pseudo"]);
  100.       if(!ctype_alnum($pseudo_customer)) {
  101.         $pseudo_customer_Error = "Seules les lettres et les chiffres sont autorisés";
  102.         $error = true;
  103.       }
  104.     }
  105.  
  106.     if (empty($_POST["password"])) {
  107.       $password_customer_Error = "Un mot de passe est requis";
  108.     } else {
  109.       $password_customer = verifyInput($_POST["password"]);
  110.       if(!ctype_alnum($password_customer)) {
  111.         $password_customer_Error = "Seules les lettres et les chiffres sont autorisés";
  112.         $error = true;
  113.       }
  114.       if (strlen($_POST["password"])<8 or strlen($_POST["password"])>20) {
  115.         $password_customer_Error = "Min: 8 - Max: 20";
  116.         $error = true;
  117.       }
  118.     }
  119.   }
  120.  
  121.   if(!$error) {
  122.     // Préparation SQL et paramètres bind
  123.     $query = $db->prepare("INSERT INTO customers (name_customer, last_name_customer, email_customer, phone_number_customer, pseudo_customer, password_customer, code_customer, inside)
  124.    VALUES (:name_customer, :last_name_customer, :email_customer, :phone_number_customer, :pseudo_customer, :password_customer, :code_customer, :inside)");
  125.     $query->bindParam(':name_customer', $name_customer);
  126.     $query->bindParam(':last_name_customer', $last_name_customer);
  127.     $query->bindParam(':email_customer', $email_customer);
  128.     $query->bindParam(':phone_number_customer', $phone_number_customer);
  129.     $query->bindParam(':pseudo_customer', $pseudo_customer);
  130.     $query->bindParam(':password_customer', $password_customer);
  131.     $query->bindParam(':code_customer', $code_customer);
  132.     $query->bindParam(':inside', $inside);
  133.  
  134.     // Protection du mot de passe
  135.     $password_customer = password_hash($_POST["password"], PASSWORD_DEFAULT);
  136.  
  137.     // Insertion du client
  138.     $name_customer = $name_customer;
  139.     $last_name_customer = $last_name_customer;
  140.     $email_customer = $email_customer;
  141.     $phone_number_customer = $phone_number_customer;
  142.     $pseudo_customer = $pseudo_customer;
  143.     $password_customer = $password_customer;
  144.     $code_customer = $randomCustomerCode;
  145.     $inside = "0";
  146.     $query->execute();
  147.   }
  148. }
  149.  
  150. ?>
  151.  
  152. <!DOCTYPE html>
  153. <html lang="fr">
  154. <head>
  155.     <?php include 'assets/include/head.php'; ?>
  156.   <meta name="description" content="">
  157.   <meta name="author" content="">
  158.     <title>Work'n Share - Espace personnel</title>
  159.     <?php include 'assets/include/stylesheet.php'; ?>
  160. </head>
  161. <body>
  162.     <header>
  163.         <?php include 'assets/include/menu.php'; ?>
  164.     </header>
  165.   <section>
  166.     <div class="container">
  167.             <div class="row" style="margin-top:50px;">
  168.         <div class="col-md-12">
  169.           <h1 class="text-center">Votre compte Work'n Share</h1>
  170.         </div>
  171.       </div>
  172.  
  173.       <div class="row" style="margin-top:50px;">
  174.         <div class="col-md-6">
  175.           <h2 class="text-center">Se connecter</h2>
  176.           <form id="sign-in" method="POST" action="">
  177.             <div class="form-group">
  178.               <label for="sign-in-pseudo">Pseudo</label>
  179.               <input type="text" name="pseudo" class="form-control" id="sign-in-pseudo" placeholder="Pseudo" required="required">
  180.             </div>
  181.             <div class="form-group">
  182.               <label for="sign-in-password">Mot de passe</label>
  183.               <input type="password" name="password" class="form-control" id="sign-in-password" placeholder="Mot de passe" required="required">
  184.             </div>
  185.             <div class="form-check text-center">
  186.               <input type="checkbox" name="remember" class="form-check-input" id="sign-in-remember">
  187.               <label class="form-check-label" for="sign-in-remember">Se souvenir</label>
  188.             </div>
  189.                         <div class="text-center">
  190.                             <button type="submit" name="sign-in" class="btn btn-primary btn-lg" id="btn-sign-in">Connexion</button>
  191.                         </div>
  192.                     </form>
  193.         </div>
  194.  
  195.         <div class="col-md-6">
  196.           <h2 class="text-center">S'inscrire</h2>
  197.           <form id="sign-up" method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
  198.                         <div class="form-row">
  199.                         <div class="form-group col-md-6">
  200.                           <label for="sign-up-name">Prénom<span> * <?php echo $name_customer_Error;?></span></label>
  201.                           <input type="text" name="name" class="form-control" id="sign-up-name" placeholder="Prénom" required="required" value="<?php echo $name_customer;?>">
  202.                         </div>
  203.                         <div class="form-group col-md-6">
  204.                           <label for="sign-up-last-name">Nom<span> * <?php echo $last_name_customer_Error;?></span></label>
  205.                           <input type="text" name="last-name" class="form-control" id="sign-up-last-name" placeholder="Nom" required="required" value="<?php echo $last_name_customer;?>">
  206.                         </div>
  207.                       </div>
  208.                         <div class="form-row">
  209.                         <div class="form-group col-md-6">
  210.                                 <label for="sign-up-email">Adresse email<span> * <?php echo $email_customer_Error;?></span></label>
  211.                     <input type="email" name="email" class="form-control" id="sign-up-email" placeholder="name@example.com" required="required" value="<?php echo $email_customer;?>">
  212.                         </div>
  213.                         <div class="form-group col-md-6">
  214.                           <label for="sign-up-tel">Téléphone<span> * <?php echo $phone_number_customer_Error;?></span></label>
  215.                           <input type="tel" name="tel" class="form-control" id="sign-up-tel" placeholder="Téléphone" required="required" value="<?php echo $phone_number_customer;?>">
  216.                         </div>
  217.                       </div>
  218.                         <div class="form-row">
  219.                         <div class="form-group col-md-6">
  220.                                 <label for="sign-up-pseudo">Pseudo<span> * <?php echo $pseudo_customer_Error;?></span></label>
  221.                     <input type="text" name="pseudo" class="form-control" id="sign-up-pseudo" placeholder="Pseudo" required="required" value="<?php echo $pseudo_customer;?>">
  222.                         </div>
  223.                         <div class="form-group col-md-6">
  224.                                 <label for="sign-up-password">Mot de passe<span> * <?php echo $password_customer_Error;?></span></label>
  225.                     <input type="password" name="password" class="form-control" id="sign-up-password" placeholder="Mot de passe" required="required" value="<?php echo $password_customer;?>">
  226.                         </div>
  227.                             <small id="password-help" class="form-text text-muted">
  228.                                 Votre mot de passe doit comporter entre 8 et 20 caractères, contenir des lettres et des chiffres et ne doit pas contenir d'espaces, de caractères spéciaux ou d'emoji.
  229.                             </small>
  230.                       </div>
  231.                         <div class=" text-center">
  232.                             <button type="submit" name="sign-up" class="btn btn-primary btn-lg" id="btn-sign-up">Inscription</button>
  233.                         </div>
  234.                     </form>
  235.            </div>
  236.              </div>
  237.  
  238.              <div class="row">
  239.                 <div class="col-md-12">
  240.                     <h3 class="text-center" style="margin-top:50px;">Pourquoi nous rejoindre ?</h3>
  241.                 </div>
  242.             </div>
  243.        </div>
  244.   </section>
  245.     <?php include 'assets/include/script.php'; ?>
  246.     <?php include 'assets/include/footer.php'; ?>
  247. </body>
  248. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement