Webbserverprogrammering 1

Show sourcecode

The following files exists in this folder. Click to view.

Webserver1/Ovningar/Quiz/

account.php
create_quiz.js
create_quiz.php
fetch_table.php
frontpage.php
header.php
login.php
quiz.php
quiz_answer_finished.php
quiz_creation_finished.php
signup.php
style.css

signup.php

89 lines UTF-8 Windows (CRLF)
<?php
session_start
();
include(
'../../incl/dbconnection.php');
/**
 * @var PDO $dbconn
 */
?>

<!DOCTYPE html>
<html lang="sv">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Inloggning</title>
  <link rel="stylesheet" href="style.css">
</head>

<body>
  <div class="center-container" style="height: 95vh;">
    <div>
      <?php
      
// Försök skapa konto
      
try {
        
// Hämta form data
        
$username = isset($_POST['username']) ? $_POST['username'] : null;
        
$email = isset($_POST['email']) ? $_POST['email'] : null;
        
$password = isset($_POST['password']) ? $_POST['password'] : null;

        
// Kolla om all data finns
        
if ($username && $password && $email) {
          
$hashed_pass password_hash($passwordPASSWORD_BCRYPT);
          
$sqlSelect "SELECT 1 FROM quiz_users WHERE username=? OR email=?";
          
$selectStmt $dbconn->prepare($sqlSelect);
          
$selectStmt->execute([$username$email]);
          
$result $selectStmt->fetch(PDO::FETCH_ASSOC);

          if (!
$result) {
            
// Create new row
            
$sqlInsert "INSERT INTO quiz_users (email, username, password) VALUES(?,?,?)";
            
$insertStmt $dbconn->prepare($sqlInsert);
            
$insertStmt->execute([$email$username$hashed_pass]);

            
// Get information about new record
            
$sqlSelect "SELECT * FROM quiz_users WHERE username=?";
            
$selectStmt $dbconn->prepare($sqlSelect);
            
$selectStmt->execute([$username]);
            
$result $selectStmt->fetch(PDO::FETCH_ASSOC);

            echo 
"<p class='text-center'>Konto skapat! Skickar vidare dig...</p>";
            
$_SESSION['isLoggedIn'] = true;
            
$_SESSION['userId'] = $result['user_id'];
            
$_SESSION['userType'] = $result['user_type'];
            
$pageToSendTo = isset($_SESSION['lastVisited']) ? $_SESSION['lastVisited'] : "frontpage.php";
            
header("Location:$pageToSendTo");
          } else {
            echo 
"<p class='text-center'>Användarnamn eller epost finns redan</p>";
          }
        }
      } catch (
PDOException $e) {
        echo 
"<br>" $e->getMessage();
      }
      
?>
      <form action="" method="post">
        <h2>Skapa konto</h2>
        <div class="row">
          <label for="username">Användarnamn:</label>
          <input type="text" name="username" id="username" autocomplete="off" required>
        </div>
        <div class="row">
          <label for="email">Epost:</label>
          <input type="email" name="email" id="email" autocomplete="off" required>
        </div>
        <div class="row">
          <label for="password">Lösenord:</label>
          <input type="password" name="password" id="password" autocomplete="off" required>
        </div>
        <div class="row">
          <input type="submit" value="Skapa konto">
        </div>
        <div class="row">
          <p style="font-size:small">Har redan ett konto? <a href="login.php">Logga in</a></p>
        </div>
    </div>
  </div>
  </form>
</body>

</html>