Webbserverprogrammering 1

Show sourcecode

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

webbserverprogrammering/submissions/inlamning_formular/

del_1-3.php
del_4-5.php
style.css

del_1-3.php

112 lines UTF-8 Windows (CRLF)
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/water.css@2/out/dark.css">
  <title>Inlämning Formulär 1-3</title>

  <style>
    body{
      width: 100%;
      min-height: 90vh;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
    }
  </style>
</head>
<body>
  <?php
  
//session to keep track of answers
  
session_start();

  
$step = isset($_POST['step']) ? intval($_POST['step']) : 0;
  
$name = isset($_POST['name']) ? htmlspecialchars($_POST['name']) : (isset($_SESSION['name']) ? $_SESSION['name'] : '');
  
$email = isset($_POST['email']) ? htmlspecialchars($_POST['email']) : (isset($_SESSION['email']) ? $_SESSION['email'] : '');
  
$_SESSION['name'] = $name;
  
$_SESSION['email'] = $email;

  
//correct answers
  
$correct = ['b''a''d'];


  
//user
  
if ($step && isset($_POST['answer'])) {
      if (!isset(
$_SESSION['answers'])) {
          
$_SESSION['answers'] = [];
      }
      
$_SESSION['answers'][] = $_POST['answer'];
  }

  if (
$step == 0) {
      
?>
      <form method="post">
          <label>Namn: <input type="text" name="name" required></label><br>
          <label>Epost: <input type="email" name="email" required></label><br>
          <input type="hidden" name="step" value="1">
          <button type="submit">Starta Quiz</button>
      </form>
      <?php
  
} else if ($step == 1) {
      
?>
      <form method="post">
          <p>Fråga 1: Vilken är Sveriges huvudstad?</p>
          <label><input type="radio" name="answer" value="a" required> Göteborg</label><br>
          <label><input type="radio" name="answer" value="b"> Stockholm</label><br>
          <label><input type="radio" name="answer" value="c"> Malmö</label><br>
          <label><input type="radio" name="answer" value="d"> Uppsala</label><br>
          <input type="hidden" name="step" value="2">
          <button type="submit">Nästa</button>
      </form>
      <?php
  
} else if ($step == 2) {
      
?>
      <form method="post">
          <p>Fråga 2: Vad är 2 + 2?</p>
          <label><input type="radio" name="answer" value="a" required> 4</label><br>
          <label><input type="radio" name="answer" value="b"> 3</label><br>
          <label><input type="radio" name="answer" value="c"> 5</label><br>
          <label><input type="radio" name="answer" value="d"> 6</label><br>
          <input type="hidden" name="step" value="3">
          <button type="submit">Nästa</button>
      </form>
      <?php
  
} else if ($step == 3) {
      
?>
      <form method="post">
          <p>Fråga 3: Vilken färg har himlen?</p>
          <label><input type="radio" name="answer" value="a" required> Grön</label><br>
          <label><input type="radio" name="answer" value="b"> Röd</label><br>
          <label><input type="radio" name="answer" value="c"> Gul</label><br>
          <label><input type="radio" name="answer" value="d"> Blå</label><br>
          <input type="hidden" name="step" value="4">
          <button type="submit">Skicka in</button>
      </form>
      <?php
  
} else if ($step == 4) {
      
//result
      
$answers = isset($_SESSION['answers']) ? $_SESSION['answers'] : [];
      
$score 0;
      for (
$i 0$i 3$i++) {
          if (isset(
$answers[$i]) && $answers[$i] == $correct[$i]) {
              
$score++;
          }
      }
      echo 
"<h2>Resultat</h2>";
      echo 
"Spelare: $name<br>";
      echo 
"Antal korrekta svar: $score av 3<br>";

      
//send email
      
$to $email;
      
$subject "Quizresultat";
      
$message "Hej $name!\nDu fick $score av 3 rätt på quizet.";
      
mail($to$subject$message);

      
//clear session
      
session_destroy();
  }
  
?>
</body>
</html>