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/repetition/

4 filer

repetition.php
repetition_login.php
repetition_login_secret.php
special_repetition.php

repetition_login.php

110 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

session_start();

$password "hemligt";
$loginFailed false;

if (isset(
$_POST["reset_tries"]))
 
$_SESSION["login_values"]["tries"] = 0;

if (isset(
$_POST["username"]) ||  isset($_POST["password"])) {
 
 if (
$_POST["password"] === $password) {
  if (
$_POST["username"] === "") {
   
$_SESSION["login_values"]["loggedIn"] = false;
   
$loginFailed "username";
  } else {
   
$_SESSION["login_values"]["loggedIn"] = true;
   
$loginFailed false;
   
header("Location:repetition_login_secret.php");
  }
 } else {
  
$_SESSION["login_values"]["loggedIn"] = false;
  
$loginFailed "password";
  
  
// increase tries variable
  
if (isset($_SESSION["login_values"]["tries"])) {
   
$_SESSION["login_values"]["tries"]++;
  }
  else {
   
$_SESSION["login_values"]["tries"] = 1;
  }
 }

} else if (isset(
$_SESSION["login_values"]["loggedIn"])) {
 if (
$_SESSION["login_values"]["loggedIn"] === true)
  
header("Location:repetition_login_secret.php");
}

?>

<!DOCTYPE html>
<html lang="sv">
<head>
 <title>Repetition - logga in</title>
 <meta charset="utf-8">
 <style type="text/css">
  body {
   font-family: Arial;
  }
  input {
   margin: 0.2em;
   padding: 0.4em;
   border-radius: 3px;
   border: 1px solid gainsboro;
  }
  input[type=submit] {
   border: 1px solid #b0b0b0;
   box-shadow: 1px 1px 0px 0px #b4b4b4;
   cursor: pointer;
  }
  #error {
   font-size: 13px;
   font-style: italic;
  }
  #resetTriesBtn {
   font-size: 10px;
   position: fixed;
   top: calc(50vh - (22.78px) / 2);
   left: calc(50vw - (83.53px) / 2);
   margin: 0;
  }
 </style>
</head>
<body>
 <h1>Repetition - logga in</h1>

 <?php
 
if (isset($_SESSION["login_values"]["tries"]) &&  $_SESSION["login_values"]["tries"] > 2) {
  echo 
"Sorry, du har bara 3 försök på dig. Ge upp på livet.";
  
?>
  <form method="post" action="">
   <input id="resetTriesBtn" type="submit" name="reset_tries" value="Återställ försök">
  </form>
  <?php
 
} else {
  
?><form method="post" action="repetition_login.php">
   <input type="text" name="username" placeholder="Användarnamn"><br>
   <input type="password" name="password" placeholder="Lösenord"><br><br>
   <input type="submit" name="submitted" value="Logga in">
  </form><p id="error"><?php
  
switch ($loginFailed) {
   case 
"username":
    echo 
"Måste ha ett giltigt användarnamn! (Minst ett tecken)";
    break;
   case 
"password":
    echo 
"Felaktigt lösenord! Tänk på att du bara har 3 försök, sen är du för evigt utlåst.";
    break;
  }
 }

 
//session_destroy(); // återställer sessionen helt
 
 
?>
 </p>
</body>
</html>