Webbserverprogrammering 1

Show sourcecode

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

webbserverprogrammering/exercises/

formular/
funktioner/
grunder/
inkludera/
quiz.php
string/

quiz.php

122 lines UTF-8 Windows (CRLF)
<!DOCTYPE html>
<html lang="sv">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Kits Frågetävling 2025</title>
  </head>
  <body>
    <?php
    error_reporting
(-1);
    
ini_set('display_errors'1);
    
ini_set('output_buffering'0);

    
// Lösenord
    
$right_password "Bananaz1?";
    
$user_password = isset($_POST["user_password"]) ? trim($_POST["user_password"]) : '';

    
// Användar info och svar
    
$username = isset($_POST["username"]) ? trim($_POST["username"]) : '';
    
$answer_1 = isset($_POST["answer_1"]) ? strtoupper(trim($_POST["answer_1"])) : '';
    
$answer_2 = isset($_POST["answer_2"]) ? strtoupper(trim($_POST["answer_2"])) : '';
    
$answer_3 = isset($_POST["answer_3"]) ? strtoupper(trim($_POST["answer_3"])) : '';

    
// Facit
    
$correct_1 "C";
    
$correct_2 "B";
    
$correct_3 "C";
    
?>
    <h2><strong>Kits Frågetävling 2025</strong></h2>
    <hr>
    <form method="post" action="">
      <!-- Lösenord -->
      <?php if (empty($user_password) || $user_password !== $right_password): ?>
        <label for="password">För att börja tävlingen, skriv in lösenordet:</label>
        <input type="password" name="user_password" id="password" placeholder="Lösenord">
        <input type="submit" value="Logga in">
        <?php if (!empty($user_password) && $user_password !== $right_password): ?>
          <p style="color: red;">Fel lösenord! Försök igen.</p>
        <?php endif; ?>

      <!-- Användar namn -->
      <?php elseif (empty($username)): ?>
        <label for="username">Vad heter du?</label>
        <input type="hidden" name="user_password" value="<?php echo htmlspecialchars($user_password); ?>">
        <input type="text" name="username" id="username" placeholder="Ditt användarnamn">
        <input type="submit" value="Nästa fråga">

      <!-- Fråga 1 -->
      <?php elseif (empty($answer_1)): ?>
        <label for="answer_1">Fråga 1: Vad är Kits favoritspel?<br>A) Scrap Mechanic<br>B) Half-Life Alyx<br>C) Ghosts of Tabor</label>
        <input type="hidden" name="user_password" value="<?php echo htmlspecialchars($user_password); ?>">
        <input type="hidden" name="username" value="<?php echo htmlspecialchars($username); ?>">
        <input type="text" name="answer_1" id="answer_1" placeholder="A, B eller C">
        <input type="submit" value="Nästa fråga">

      <!-- Fråga 2 -->
      <?php elseif (empty($answer_2)): ?>
        <label for="answer_2">Fråga 2: Vad är Kits nya nischbesatthet? (Ht 25)<br>A) 3D Printingsmaskiner<br>B) 3D spel skapande<br>C) Vandringskängor</label>
        <input type="hidden" name="user_password" value="<?php echo htmlspecialchars($user_password); ?>">
        <input type="hidden" name="username" value="<?php echo htmlspecialchars($username); ?>">
        <input type="hidden" name="answer_1" value="<?php echo htmlspecialchars($answer_1); ?>">
        <input type="text" name="answer_2" id="answer_2" placeholder="A, B eller C">
        <input type="submit" value="Nästa fråga">

      <!-- Fråga 3 -->
      <?php elseif (empty($answer_3)): ?>
        <label for="answer_3">Fråga 3: Vilken är Kits favoritfilm med Johnny Depp?<br>A) Pirates of the Caribbean 2<br>B) Kalle och Chokladfabriken (2005)<br>C) Rango</label>
        <input type="hidden" name="user_password" value="<?php echo htmlspecialchars($user_password); ?>">
        <input type="hidden" name="username" value="<?php echo htmlspecialchars($username); ?>">
        <input type="hidden" name="answer_1" value="<?php echo htmlspecialchars($answer_1); ?>">
        <input type="hidden" name="answer_2" value="<?php echo htmlspecialchars($answer_2); ?>">
        <input type="text" name="answer_3" id="answer_3" placeholder="A, B eller C">
        <input type="submit" value="Visa resultat">

      <!-- Resultat -->
      <?php else: ?>
        <?php
          
// Sätter bakgrunds färgen beroende på svar
          
$background_1 = ($answer_1 == $correct_1) ? 'background-color: green;' 'background-color: red;';
          
$background_2 = ($answer_2 == $correct_2) ? 'background-color: green;' 'background-color: red;';
          
$background_3 = ($answer_3 == $correct_3) ? 'background-color: green;' 'background-color: red;';
          
?>

          <!-- Resultat presenteras för användaren -->
          <p style="<?php echo $background_1?>">Fråga 1: <?php echo htmlspecialchars($answer_1); ?> | Rätt svar: C (Ghosts of Tabor)</p>
          <p style="<?php echo $background_2?>">Fråga 2: <?php echo htmlspecialchars($answer_2); ?> | Rätt svar: B (3D spel skapande)</p>
          <p style="<?php echo $background_3?>">Fråga 3: <?php echo htmlspecialchars($answer_3); ?> | Rätt svar: C (Rango)</p>

        <?php 
          
// Skicka resultatet via mail
          
$mottagare "kitfos23@varmdogymnasium.se";
          
$rubrik "PHP Frågetävling 2025 (Resultat)";
          
$meddelande "Användare: " $username "\n" 
                        
"Fråga 1: " $answer_1 " | Rätt: $correct_1\n" 
                        
"Fråga 2: " $answer_2 " | Rätt: $correct_2\n" .
                        
"Fråga 3: " $answer_3 " | Rätt: $correct_3";
          
mail($mottagare$rubrik$meddelande);
        
?>
      <?php endif; ?>
    </form>
    <hr>
  </body>
  <style>
    body {
      padding: 20px;
    }
    p {
      font-weight: normal;
      font-size: medium;
    }
    input, p {
      display: block;
      margin-bottom: 10px;
    }
    label {
      font-weight: bold;
      display: block;
      margin-bottom: 5px;
    }
  </style>
</html>