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

uppgift2.php

224 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";
      
        
// Maila resultatet
        
mail("teorut23@varmdogymnasium.se""Inlämningsuppgift Svar""Namn: $namn \nAntal rätt: $antalRätt");
      }
    }
    
?>
    </p>

    <input name='fråga1' <?php
    
// Skriv ut svarsalternativen till fråga 1 om det är den aktiva frågan, 
    // annars skriv det som ett hidden-element med det sparade värdet
    
if ($aktiv == 2) {
      echo 
"
      type='radio' id='1-1' value='1'>
      <label for='1-1'>Nej</label> <br>

      <input name='fråga1' type='radio' id='1-2' value='2'>
      <label for='1-2'>5</label> <br>

      <input name='fråga1' type='radio' id='1-3' value='3'>
      <label for='1-3'>Röd</label> <br>

      <input name='fråga1' type='radio' id='1-4' value='4'>
      <label for='1-4'>Mini Pekka</label"
;
    } else {
      
$value "";

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

      echo 
" type='hidden' value='$value'";
    }
    
?>>

    <input name='fråga2' <?php
    
// Skriv ut svarsalternativen till fråga 2 om det är den aktiva frågan, 
    // annars skriv det som ett hidden-element med det sparade värdet
    
if ($aktiv == 3) {
      echo 
"
      type='radio' id='2-1' value='1'>
      <label for='2-1'>Front end</label> <br>

      <input name='fråga2' type='radio' id='2-2' value='2'>
      <label for='2-2'>Back end</label> <br>

      <input name='fråga2' type='radio' id='2-3' value='3'>
      <label for='2-3'>Båda/varken eller/jag är flintskallig/annat oändligt nyanserat svar</label> <br>

      <input name='fråga2' type='radio' id='2-4' value='4'>
      <label for='2-4'>Vad är det?</label"
;
    } else {
      
$value "";

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

      echo 
" type='hidden' value='$value'";
    }
    
?>>

    <input name='fråga3' <?php
    
// Skriv ut svarsalternativen till fråga 3 om det är den aktiva frågan, 
    // annars skriv det som ett hidden-element med det sparade värdet
    
if ($aktiv == 4) {
      echo 
"
      type='radio' id='3-1' value='1'>
      <label for='3-1'>Ja</label> <br>

      <input name='fråga3' type='radio' id='3-2' value='2'>
      <label for='3-2'>Nej</label> <br>

      <input name='fråga3' type='radio' id='3-3' value='3'>
      <label for='3-3'>Jag har redan gjort det</label> <br>

      <input name='fråga3' type='radio' id='3-4' value='4'>
      <label for='3-4'>Båda/varken eller/jag är flintskallig/jag är Filip och har gjort det redan</label"
;
    } else {
      
$value "";

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

      echo 
" 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>

  <div style="display:<?php
  
if ($aktiv <= 4) {
    echo 
"none";}
  
?>;">

  <?php
    
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>";
      }
    }
  
?>
  </div>
</body>
</html>