Advertisement
MrVeiski

Createuser

Aug 17th, 2019
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.52 KB | None | 0 0
  1. <!DOCTYPE html><?php include "startsession.php";if($_SESSION["usertype"] < 3){header("location:index.php");};include "navbar.php";
  2.  
  3. /*Roolien luonti*/
  4. if (!empty($_POST))
  5. {
  6.  
  7.     //Muuttujat alustetaan lähtöarvoon
  8.     $usernameError =  $usertypeError = $emailError = null;
  9.     $passwordError = $confirm_passwordError = null;
  10.     //POST-muuttujat
  11.     $username = $_POST['username'];
  12.     $password = $_POST['password'];
  13.     $usertype = $_POST['usertype'];
  14.     $email = $_POST['email'];
  15.     $confirm_password = $_POST['confirm_password'];
  16.     $hashed_password = password_hash($password, PASSWORD_DEFAULT);
  17.     $hash = $hashed_password;
  18.  
  19.     /*Käyttäjänimen valmistelu*/
  20.     if (empty($username))
  21.     {
  22.         $usernameError = 'Syötä käyttäjänimi.'; //Käyttäjänimen tarkistus
  23.     }
  24.     else{
  25.         //Onko käyttäjänimeä ennestään
  26.         $pdo2 = Database::connect();
  27.         $pdo2->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  28.         $stmt2 = $pdo2->query("SELECT username, hash FROM users WHERE username = '$username'");
  29.         $row = $stmt2->fetch();
  30.         Database::disconnect();
  31.         if($stmt2->rowCount() > 0){
  32.             $usernameError = "Käyttäjänimi on jo käytössä.";
  33.         }
  34.         Database::disconnect();
  35.     }
  36.    
  37.    
  38.     //Salasanan vahvistus
  39.     if(empty($confirm_password)){
  40.         $confirm_passwordError = "Vahvista salasana.";  
  41.     } elseif(strlen($confirm_password) < 6){
  42.         $confirm_passwordError = "Salasanan täytyy olla vähintään 6-merkkinen.";
  43.     } else{
  44.         $confirm_password = trim($confirm_password);
  45.         if(empty($confirm_passwordError) && ($password != $confirm_password)){
  46.             $confirm_password = $_POST['confirm_password'];
  47.             $confirm_passwordError = "Salasanat eivät täsmää.";
  48.         }
  49.     }
  50.  
  51.     /*Sähköpostin valmistelu*/
  52.     if (empty($email))
  53.     {
  54.         $emailError = 'Syötä sähköpostiosoite.';
  55.     } else if ( !filter_var($email,FILTER_VALIDATE_EMAIL) )
  56.     {
  57.         $emailError = 'Syötä kelvollinen sähköpostiosoite.';
  58.     } else{
  59.         //Onko sähköpostia ennestään
  60.         $pdo1 = Database::connect();
  61.         $pdo1->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  62.         $stmt1 = $pdo1->prepare("SELECT email FROM users WHERE email = '$email'");
  63.         $stmt1->execute();
  64.         Database::disconnect();
  65.         if($stmt1->rowCount() > 0){
  66.             $emailError = "Sähköpostiosoite on jo käytössä.";
  67.         }
  68.     }
  69.  
  70.     if (empty($usertype))
  71.     {
  72.         $usertypeError = 'Syötä käyttäjätyyppi.';
  73.     } elseif(in_array($usertype, range(1,3)) == false){
  74.         $usertypeError = 'Arvon tulee olla 1-3 välillä.';
  75.     }
  76.     //Salasanan tarkistus
  77.     if(empty($password)){
  78.         $passwordError = "Syötä salasana.";  
  79.     } elseif(strlen($password) < 6){
  80.         $passwordError = "Salasanan täytyy olla vähintään 6-merkkinen.";
  81.     } else{
  82.         $password = trim($password);
  83.     }
  84.     //Luodaan käyttäjä viemällä tietokantaan lomake-elementtien arvot.
  85.     if(empty($usernameError) && empty($passwordError) && empty($usertypeError) && empty($emailError) && empty($confirm_passwordError)){
  86.  
  87.         $pdo = Database::connect();
  88.         $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  89.         $sql = "INSERT INTO users (username, email, usertype , password, hash) VALUES (?, ?, ?, ?)";
  90.         $stmt = $pdo->prepare($sql);
  91.         $stmt->execute(array($username, $email, $usertype , $hashed_password, $hash));
  92.         Database::disconnect();
  93.         ?>
  94.         <script type="text/javascript">
  95.             window.location.href = 'users.php';
  96.         </script>
  97.         <?php
  98.     }
  99. }
  100. ?>
  101.         <main class="main"> <!--Lomake-elementit-->
  102.             <div class="col-sm-16 text-left">    
  103.                 <div class="wrapper">
  104.                     <h2>Luo käyttäjätili</h2>
  105.                     <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
  106.                         <div class="form-group <?php echo (!empty($usernameError)) ? 'has-error' : ''; ?>">
  107.                             <label>Käyttäjänimi</label>
  108.                             <input type="text" name="username" class="form-control" value="<?php echo $username; ?>">
  109.                             <span class="help-block"><?php echo $usernameError; ?></span>
  110.                         </div>  
  111.                         <div class="form-group <?php echo (!empty($usertypeError)) ? 'has-error' : ''; ?>">
  112.                             <label>Tilin tyyppi [1 = Oppilas, 2 = Opettaja, 3 = Admin]</label>
  113.                             <input type="text" name="usertype" class="form-control" value="<?php echo $usertype; ?>">
  114.                             <span class="help-block"><?php echo $usertypeError; ?></span>
  115.                         </div>    
  116.                         <div class="form-group <?php echo (!empty($emailError)) ? 'has-error' : ''; ?>">
  117.                             <label>Sähköposti</label>
  118.                             <input type="text" name="email" class="form-control" value="<?php echo $email; ?>">
  119.                             <span class="help-block"><?php echo $emailError; ?></span>
  120.                         </div>
  121.                         <div class="form-group <?php echo (!empty($passwordError)) ? 'has-error' : ''; ?>">
  122.                             <label>Salasana</label>
  123.                             <input type="password" name="password" class="form-control" value="<?php echo $password; ?>">
  124.                             <span class="help-block"><?php echo $passwordError; ?></span>
  125.                         </div>
  126.                         <div class="form-group <?php echo (!empty($confirm_passwordError)) ? 'has-error' : ''; ?>">
  127.                             <label>Varmista Salasana</label>
  128.                             <input type="password" name="confirm_password" class="form-control" value="<?php echo $confirm_password; ?>">
  129.                             <span class="help-block"><?php echo $confirm_passwordError; ?></span>
  130.                         </div>
  131.                         <div class="form-actions">
  132.                             <button type="submit" class="button">Valmis</button>
  133.                             <button type="reset" class="button-blue">Tyhjennä</button>
  134.                             <a class="button-red" href="users.php">Peruuta</a>
  135.                         </div>
  136.                     </form>
  137.                 </div>  
  138.             </div>
  139.           </main>
  140. <?php include 'footer.php';?>
  141.     </body>
  142. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement