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_login.php
110 lines UTF-8 Windows (CRLF)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
<?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>