Advertisement
Guest User

Untitled

a guest
Mar 19th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.29 KB | None | 0 0
  1. function connectDb() {
  2.   try {
  3.     $db = new PDO("mysql:host=DB_HOST;dbname=DB_NAME", DB_USER, DB_PWD);
  4.     // set the PDO error mode to exception
  5.     $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  6.   } catch(PDOException $e) {
  7.     die("Erreur de connection: " . $e->getMessage() );
  8.   }
  9.   return $db;
  10. }
  11.  
  12. // On définit des variables et on les mets à vide
  13. $name_customer_Error = $last_name_customer_Error = $email_customer_Error = $phone_number_customer_Error = $pseudo_customer_Error = $password_customer_Error = "";
  14. $name_customer = $last_name_customer = $email_customer = $phone_number_customer = $pseudo_customer = $password_customer = "";
  15.  
  16. function registerCustomer(){
  17.  
  18.   function verifyInput($data) {
  19.     $data = trim($data);
  20.     $data = stripslashes($data);
  21.     $data = htmlspecialchars($data);
  22.     return $data;
  23.   }
  24.  
  25.   function generateRandomCustomerCode($length = 10) {
  26.     $characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  27.     $charactersLength = strlen($characters);
  28.     $randomCustomerCode = '';
  29.     for ($i = 0; $i < $length; $i++) {
  30.       $randomCustomerCode .= $characters[rand(0, $charactersLength - 1)];
  31.     }
  32.     // Vérifiez si le code existe déjà dans la BDD
  33.     $req = $PDO->prepare("SELECT * FROM customers WHERE code_customer = :code_customer");
  34.     $req->execute([
  35.       "code_customer" => $randomCustomerCode
  36.     ]);
  37.     // Le code existe on doit en faire un autre
  38.     if(empty($req->fetch())) {
  39.       return $randomCustomerCode;
  40.     }
  41.     generateRandomCustomerCode($length);
  42.   }
  43.  
  44.   $db = connectDb();
  45.   $error = false;
  46.  
  47.   if ($_SERVER["REQUEST_METHOD"] == "POST") {
  48.     if (empty($_POST["name"])) {
  49.       $name_customer_Error = "Un prénom est requis";
  50.       $error = true;
  51.     } else {
  52.       $name_customer = verifyInput($_POST["name"]);
  53.       if(!ctype_alpha($name_customer)) {
  54.         $name_customer_Error = "Seules les lettres sont autorisés";
  55.         $error = true;
  56.       }
  57.     }
  58.  
  59.     if (empty($_POST["last_name"])) {
  60.       $last_name_customer_Error = "Un nom est requis";
  61.       $error = true;
  62.     } else {
  63.       $last_name_customer = verifyInput($_POST["last_name"]);
  64.       if(!ctype_alpha($last_name_customer)) {
  65.         $last_name_customer_Error = "Seules les lettres sont autorisés";
  66.         $error = true;
  67.       }
  68.     }
  69.  
  70.     if (empty($_POST["email"])) {
  71.       $email_customer_Error = "Un email est requis";
  72.       $error = true;
  73.     } else {
  74.       $email_customer = verifyInput($_POST["email"]);
  75.       if (!filter_var($email_customer, FILTER_VALIDATE_EMAIL)) {
  76.         $email_customer_Error = "Format d'email invalide";
  77.         $error = true;
  78.       }
  79.     }
  80.  
  81.     if (empty($_POST["tel"])) {
  82.       $phone_number_customer_Error = "Un téléphone est requis";
  83.       $error = true;
  84.     } else {
  85.       $phone_number_customer = verifyInput($_POST["tel"]);
  86.       if (!(strlen($_POST["tel"])==0 or (strlen($_POST["tel"])==10 and is_numeric($_POST["tel"])))) {
  87.         $phone_number_customer_Error = "Format de téléphone invalide";
  88.         $error = true;
  89.       }
  90.     }
  91.  
  92.     if (empty($_POST["pseudo"])) {
  93.       $pseudo_customer_Error = "Un pseudo est requis";
  94.       $error = true;
  95.     } else {
  96.       $pseudo_customer = verifyInput($_POST["pseudo"]);
  97.       if(!ctype_alnum($pseudo_customer)) {
  98.         $pseudo_customer_Error = "Seules les lettres et les chiffres sont autorisés";
  99.         $error = true;
  100.       }
  101.     }
  102.  
  103.     if (empty($_POST["password"])) {
  104.       $password_customer_Error = "Un mot de passe est requis";
  105.     } else {
  106.       $password_customer = verifyInput($_POST["password"]);
  107.       if(!ctype_alnum($password_customer)) {
  108.         $password_customer_Error = "Seules les lettres et les chiffres sont autorisés";
  109.         $error = true;
  110.       }
  111.       if (strlen($_POST["password"])<8 or strlen($_POST["password"])>20) {
  112.         $password_customer_Error = "Min: 8 - Max: 20";
  113.         $error = true;
  114.       }
  115.     }
  116.   }
  117.  
  118.   if(!$error) {
  119.     // Préparation SQL et paramètres bind
  120.     $query = $db->prepare("INSERT INTO customers (name_customer, last_name_customer, email_customer, phone_number_customer, pseudo_customer, password_customer, code_customer, inside)
  121.    VALUES (:name_customer, :last_name_customer, :email_customer, :phone_number_customer, :pseudo_customer, :password_customer, :code_customer, :inside)");
  122.     $query->bindParam(':name_customer', $name_customer);
  123.     $query->bindParam(':last_name_customer', $last_name_customer);
  124.     $query->bindParam(':email_customer', $email_customer);
  125.     $query->bindParam(':phone_number_customer', $phone_number_customer);
  126.     $query->bindParam(':pseudo_customer', $pseudo_customer);
  127.     $query->bindParam(':password_customer', $password_customer);
  128.     $query->bindParam(':code_customer', $code_customer);
  129.     $query->bindParam(':inside', $inside);
  130.  
  131.     // Protection du mot de passe
  132.     $password_customer = password_hash($_POST["password"], PASSWORD_DEFAULT);
  133.  
  134.     // Insertion du client
  135.     $name_customer = $name_customer;
  136.     $last_name_customer = $last_name_customer;
  137.     $email_customer = $email_customer;
  138.     $phone_number_customer = $phone_number_customer;
  139.     $pseudo_customer = $pseudo_customer;
  140.     $password_customer = $password_customer;
  141.     $code_customer = $randomCustomerCode;
  142.     $inside = "0";
  143.     $query->execute();
  144.   }
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement