Webbserverprogrammering 1

Källkod

Följande filer och mappar finns under mappen webbserverprogrammering.
Mappar visas till vänster och filer till höger. Klicka på en fil eller mapp för att öppna nedan eller visa dess innehåll.

webbserverprogrammering/exercises/cookies_and_sessions/

7 filer

cookies_sessions_1.php
cookies_sessions_2.php
cookies_sessions_3.php
cookies_sessions_3_secret.php
cookies_sessions_4.php
cookies_sessions_5.php
cookies_sessions_5_mail.php

cookies_sessions_5.php

200 lines UTF-8 Windows (CRLF)
<?php
error_reporting
(-1); // Report all type of errors
ini_set('display_errors'1); // Display all errors 
ini_set('output_buffering'0); // Do not buffer outputs, write directly
?>

<?php

session_start
();
$correctPass "hemligt";

if (!isset(
$_SESSION["quizerinoSessionVars"]) || isset($_POST["tryAgain"]))
 
$_SESSION["quizerinoSessionVars"] = ["currentStage" => 0"failedLogin" => false];

$pageSessVars = &$_SESSION["quizerinoSessionVars"]; // assigned by reference (using &)

if ($pageSessVars["currentStage"] === && isset($_POST["name"])) {
 if (
$_POST["password"] === $correctPass) {
  
$pageSessVars["name"] = $_POST["name"];
  
$pageSessVars["failedLogin"] = false;
  
$pageSessVars["currentStage"] = 1;
 } else {
  
$pageSessVars["failedLogin"] = true;
 }
} else if (
$pageSessVars["currentStage"] === && isset($_POST["question1"])) {
 
$pageSessVars["currentStage"]++;
 
$pageSessVars["answerQ1"] = $_POST["question1"];
} else if (
$pageSessVars["currentStage"] === && isset($_POST["question2"])) {
 
$pageSessVars["currentStage"]++;
 
$pageSessVars["answerQ2"] = $_POST["question2"];
} else if (
$pageSessVars["currentStage"] === && isset($_POST["question3"])) {
 
$pageSessVars["currentStage"]++;
 
$pageSessVars["answerQ3"] = $_POST["question3"];
} else




?>

<!DOCTYPE html>
<html lang="sv">
<head>
 <title>Quizerino (sessionsvariabler)</title>
 <meta charset="utf-8">
 <style type="text/css">
  body {
   font-family: Arial;
  }
  h1 {
   margin-bottom: 0;
  }
  #nameInput {
   margin: 0.5em 0;
  }
  #results {
   margin: 0 auto 1em auto;
   width: 40%;
   text-align: center;
  }
  #results h2 {
   margin: 0;
   font-size: 1.7em;
  }
  .center {
   text-align: center;
   margin: 0.5em;
  }
  .red {
   background: red;
  }
  .green {
   background: lime;
  }
  #email-form p {
   margin-bottom: 0.3em;
  }
  #wrongPass {
   color: red;
  }
 </style>
</head>
<body>
 <h1>Quizerino</h1>
 <form action="" method="post">
  <?php
   
if ($pageSessVars["currentStage"] === || $pageSessVars["failedLogin"] === true) {
  
?>
  <br><br>
  Rätt lösenord behövs för åtkomst till quizet!<br>Det krävs också ett namn, men du kan välja vilket namn du vill.<br><br>
  <input id="nameInput" type="text" name="name" placeholder="Namn" required><br>
  <input type="password" name="password" placeholder="Lösenord" required><br><br>

  <input type="submit" name="submitted"  value="Gå till quizet"><br><br>
  <p id="wrongPass"><?php echo $pageSessVars["failedLogin"] ? "Felaktiga inloggningsuppgifter!" "" ?></p>
 </form>
  <?php } else if ($pageSessVars["currentStage"] === 1) {?>
  <div id="question1">
   <h4>Vad heter Burkina Fasos huvudstad?</h4>
   <input type="radio" name="question1" value="Yamoussoukro" required>&nbsp;Yamoussoukro<br>
   <input type="radio" name="question1" value="Addis Abeba" required>&nbsp;Addis Abeba<br>
   <input type="radio" name="question1" value="Jakarta" required>&nbsp;Jakarta<br>
   <input type="radio" name="question1" value="Ouagadougou" required>&nbsp;Ouagadougou<br>
   <br>
   <input type="submit" name="submitted" value="Nästa fråga">
   <br><br>
   <form method="post" action="">
    <input type="submit" name="tryAgain" value="Gå till början">
   </form>
  </div>
 </form>
  <?php } else if ($pageSessVars["currentStage"] === 2) {?>
  <div id="question2">
   <h4>I vilket land är Asunción huvudstad?</h4>
   <input type="radio" name="question2" value="Paraguay" required>&nbsp;Paraguay<br>
   <input type="radio" name="question2" value="Suriname" required>&nbsp;Suriname<br>
   <input type="radio" name="question2" value="Chile" required>&nbsp;Chile<br>
   <input type="radio" name="question2" value="Ecuador" required>&nbsp;Ecuador<br>
   <br>
   <input type="submit" name="submitted" value="Nästa fråga">
   <br><br>
   <form method="post" action="">
    <input type="submit" name="tryAgain" value="Gå till början">
   </form>
  </div>
 </form>
  <?php } else if ($pageSessVars["currentStage"] === 3) {?>
  <div id="question3">
   <h4>Vilken av följande färger finns <em>inte</em> på Dominicas flagga?</h4>
   <input type="radio" name="question3" value="Lila" required>&nbsp;Lila<br>
   <input type="radio" name="question3" value="Blå" required>&nbsp;Blå<br>
   <input type="radio" name="question3" value="Grön" required>&nbsp;Grön<br>
   <input type="radio" name="question3" value="Svart" required>&nbsp;Svart<br>
   <br>
   <input type="submit" name="submitted" value="Se resultat">
   <br><br>
   <form method="post" action="">
    <input type="submit" name="tryAgain" value="Gå till början">
   </form>
  </div>
 </form>
 <?php }
  else if (
$pageSessVars["currentStage"] === 4) {
   
$correctNr 0;
   if (
$pageSessVars["answerQ1"] === "Ouagadougou")
    
$correctNr++;
   if (
$pageSessVars["answerQ2"] === "Paraguay")
    
$correctNr++;
   if (
$pageSessVars["answerQ3"] === "Blå")
    
$correctNr++;
   
?>
  </form>
   <div id="results">
    <h2>Resulat</h2>
    <h3 class="center"><?php echo $correctNr?>/3 rätt</h3>
    <p class="center">Bra jobbat <?php echo $pageSessVars["name"]; ?>!</p>
    <form method="post" action="">
     <input type="submit" name="tryAgain" value="Testa igen">
    </form>
    <form id="email-form" method="post" action="cookies_sessions_5_mail.php" target="_blank">
     <p>Skriv in e-postadress för att få resultatet skickat till dig:</p>
     <input type="email" name="email" placeholder="E-postadress" required>
     <input type="hidden" name="name" value="<?php echo $name?>">
     <button>Skicka resultatet</button>
    </form>
   </div>
   <div id="answerKey">
    <div id="question1">
     <h4>Vad heter Burkina Fasos huvudstad?</h4>
     &nbsp;<?php echo ($pageSessVars["answerQ1"] === "Yamoussoukro") ? "<span class='red'>Yamoussoukro</span>" "Yamoussoukro" ?><br>
     &nbsp;<?php echo ($pageSessVars["answerQ1"] === "Addis Abeba") ? "<span class='red'>Addis Abeba</span>" "Addis Abeba" ?><br>
     &nbsp;<?php echo ($pageSessVars["answerQ1"] === "Jakarta") ? "<span class='red'>Jakarta</span>" "Jakarta" ?><br>
     &nbsp;<span class="green">Ouagadougou</span><br>
     <br>
    </div>
    <div id="question2">
     <h4>I vilket land är Asunción huvudstad?</h4>
     &nbsp;<span class="green">Paraguay</span><br>
     &nbsp;<?php echo ($pageSessVars["answerQ2"] === "Suriname") ? "<span class='red'>Suriname</span>" "Suriname" ?><br>
     &nbsp;<?php echo ($pageSessVars["answerQ2"] === "Chile") ? "<span class='red'>Chile</span>" "Chile" ?><br>
     &nbsp;<?php echo ($pageSessVars["answerQ2"] === "Ecuador") ? "<span class='red'>Ecuador</span>" "Ecuador" ?><br>
     <br>
    </div>
    <div id="question3">
     <h4>Vilken av följande färger finns <em>inte</em> på Dominicas flagga?</h4>
     &nbsp;<?php echo ($pageSessVars["answerQ3"] === "Lila") ? "<span class='red'>Lila</span>" "Lila" ?><br>
     &nbsp;<span class="green">Blå</span><br>
     &nbsp;<?php echo ($pageSessVars["answerQ3"] === "Grön") ? "<span class='red'>Grön</span>" "Grön" ?><br>
     &nbsp;<?php echo ($pageSessVars["answerQ3"] === "Svart") ? "<span class='red'>Svart</span>" "Svart" ?>
    </div>
   </div>
   <?php
  
} else { ?>
  </form>
   Fel lösenord!<br><br>
   <a href="">Tillbaka</a>
  <?php }
 
?>
</body>
</html>