Webbserverprogrammering 1

Show sourcecode

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

webbsrvprg/exercises/cookie/

cookie.php
cookie1.php
cookie2.php
cookie3.php
cookie3_hemligheter.php
cookie4.php
cookie5.php

cookie5.php

141 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'>
  <title>Inlämningsuppgift</title>
</head>
<body>
  <?php
  session_start
();

  
$aktiv 0;

  
// Skapar en array med alla frågor och svar
  
$questions = [
      [
"Hur dålig är du på att stava kantareller?""Nej""5""Röd""Mini Pekka"],
      [
"Front end eller back end?""Front end""Back end""Båda/varken eller/jag är flintskallig/annat oändligt nyanserat svar""Vad är det?"],
      [
"Skulle du kasta sand på en dator så att tangent bordet går sönder?""Ja","Nej","Jag har redan gjort det","Båda/varken eller/jag är flintskallig/jag är Filip och har gjort det redan"]
  ];

  if (isset(
$_POST["password"])) {
    
$_SESSION["password"] = $_POST["password"];
  }

  if (isset(
$_SESSION["password"])) {
    
// Om lösenordet är rätt, sätt aktiv till det sparade värdet och öka den med 1
    
if ($_SESSION["password"] == "pommes2") {
      if (isset(
$_SESSION["aktiv"])) {
      
$aktiv = (int)$_SESSION["aktiv"];

      
$aktiv++;
      }
    }
  }

  
$_SESSION["aktiv"] = $aktiv;
  
?>

  <form method='post' action=''>
    <?php
    
if ($aktiv == 0) {
      
// Om lösenordet är den aktiva frågan, sätt den til ett password-element
      
echo "<input name='password' type='password' placeholder='Lösenord' value=''>";
    } else if (!isset(
$_SESSION["password"])) {
      
// Om lösenordet inte är den aktiva frågan, sätt den till ett hidden-element med lösenordet sparat
      
$_SESSION["password"] = htmlspecialchars($_POST["password"]);
    }
    
?>

    <?php

    
if ($aktiv == 1) {
      
// Om namn är den aktiva frågan, visa den som ett text-element
      
echo "<input name='namn'type='text' placeholder='Namn' value=''>";
    } else if (isset(
$_POST["namn"]) && !isset($_SESSION["namn"])) {
      
// Om namn inte är en tidigare fråga, spara värdet i en session
      
$_SESSION["namn"] = htmlspecialchars($_POST["namn"]);
    }
    
?>

    <p>
    <?php
    
if ($aktiv >= && $aktiv <= 4) {
      
// Skriv ut den fråga som är aktiv
      
echo $questions[$aktiv 2][0];
    } else if (
$aktiv 4) {
      
// Ska resultatet skrivas ut, skriv ut det i <p> elementet
      
$namn htmlspecialchars($_SESSION['namn']);

      
// Spara alla svar i en array
      
$svar = [$_SESSION['fråga1'], $_SESSION['fråga2'], $_POST['fråga3']];
      
$facit = [1,3,2];

      
$antalRätt 0;

      
// Räkna hur många av svaren som matchar facit
      
for ($i 0$i count($svar); $i++) {
        if (
$svar[$i] == $facit[$i]) {
          
$antalRätt++;
        }
      }

      
// Skriv ut namn och antal rätt
      
echo "Namn: $namn <br>
            Antal rätt: 
$antalRätt <hr>";
      
      for (
$i 0$i count($questions); $i++) {
        echo 
"<p>".$questions[$i][0]."</p>";
        for (
$j 1$j 5$j++) {
          
$color "";
          
$checked "";

          if (
$j == $svar[$i]) {
            
$color "red";
            
$checked "checked='checked'";
          }

          if (
$j == $facit[$i]) {
            
$color "green";
          } 

          echo 
"<input type='radio' disabled='disabled' $checked>
                <label style='background-color:
$color'>".$questions[$i][$j]."</label> <br>";
        }
      }
    
      
// Maila resultatet
      
mail("teorut23@varmdogymnasium.se""Inlämningsuppgift Svar""Namn: $namn \nAntal rätt: $antalRätt");

      
// Rensa svaren
      
session_destroy();
    }
    
?>
    </p>

    <?php 

    
for ($i 1$i 4$i++) {
      if (
$aktiv == $i 1) {
        for (
$j 1$j 5$j++) {
          echo 
"
          <input name='fråga
$i' type='radio' id='$i-$j' value='$j'>
          <label for='
$i-$j'>".$questions[$i-1][$j]."</label> <br>";
        }
      } else if (
$aktiv == $i 2) {
        
$_SESSION["fråga$i"] = $_POST["fråga$i"];
      }
    }
    
?>

    <?php
    
// Kalla submit-elementet "Nästa" om det inte är sista frågan, annars kalla den "Rätta"
    
if ($aktiv 4) {
      echo 
"<input type='submit' value='Nästa'>";
    } else if (
$aktiv == 4) {
      echo 
"<input type='submit' value='Rätta'>";
    }
  
?>
  </form>
</body>
</html>