Webbserverprogrammering 1

Show sourcecode

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

webbsrvprg/exercises/uppgift/

uppgift.php
uppgift1.php
uppgift2.php
uppgiftKlar.php

uppgiftKlar.php

156 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
  $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"])) {

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

      
$aktiv++;
      }
    }
  }
  
?>

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

    <input name='namn' <?php

    
if ($aktiv == 1) {
      
// Om namn är den aktiva frågan, visa den som ett text-element
      
echo "type='text' placeholder='Namn' value=''";
    } else {
      
// Om namn inte är den aktiva frågan, dölj den och spara värdet
      
$value "";

      
// Skickades namn med, sätt värdet till det medskickade värdet
      
if (isset($_POST["namn"])) {
        
$value htmlspecialchars($_POST["namn"]);
      }
      echo 
"type='hidden' value='$value'";
    }
    
?>
    >

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

        
// Spara alla svar i en array
        
$svar = [$_POST['fråga1'], $_POST['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>";
      
        
// Maila resultatet
        
mail("teorut23@varmdogymnasium.se""Inlämningsuppgift Svar""Namn: $namn \nAntal rätt: $antalRätt");
        
        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>";
          }
        }
      }
    }
    
?>
    </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 {
        
$value "";

        if (isset(
$_POST["fråga$i"])) {
          
$value $_POST["fråga$i"];
        }

        echo 
"<input name='fråga$i' type='hidden' value='$value'>";
      }
    }
    
?>

    <!-- Spara vilken fråga som är aktiv i ett dolt element -->
    <input type="hidden" name="aktiv" value="<?php echo $aktiv?>">
    <br>

    <?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>