Om vi nu vill att servern skall komma ihåg om du loggat in eller inte så måste vi använda sessions. En session koms ihåg så länge som browsern är igång vilket gör att vi kan växla mellan olika sidor och fortfarande kommaihåg vem som är inloggad. Till detta exempel behöver visamma grundstruktur som tidigare. index.html - För formuläret loggin.php - Kontrollera inlogget och starta sessionen fel.html - för att hänvisa till om något blir fel. men vi skall även lägga till en: secretpage.php - Där vi har lite hemliga saker. Som man bara skall komma åt om man har loggat in.
Index.hmtl och fel.html är identiska med föregående övningen. loggin.php är det däremot inte där skall vi hantera sessioner.
<?php
session_start();
// KOntrollerar om du försöker logga in
if(isset($_POST['loginname']) && isset($_POST['password'])){
$username = $_POST['loginname'];
$password = $_POST['password'];
if($_POST['username'] === $username && $_POST['password'] === $password){
// Om du har rätt lösen så startar vi en session
$_SESSION['loggedin'] = true;
}
}
// Kontrollera om du har en session igång
if(!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true){
header('Location: hell.html');
exit;
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Webtastic</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body class="home">
<h1>Welcome to Webtastic</h1>
<p>Here you can find all the information you need to know about webtastic.</p>
<p>Click <a href="secretpage.php">here</a> to go to the hive of knowledge.</p>
</body>
</html>
Nu har vi lyckat logga in (Om du skriver rätt saker.) och då har vi även satt igång en session. Denna kan vi nu utnyttja på vår secretpage.php så ingen annan än de som är inloggade kommer åt den.
secretpage.php
<?php
session_start();
// Kontrollerar om sessionen är igångsatt och om den har värdet true.
// Annars hänvisas tu till fel.html
if(!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true){
header('Location: fel.html');
exit;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>So so secret</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1 id='secrethead'>So so secret</h1>
<p>So you think you have access to all the secrets now?</p>
<p>Well, you are wrong. This is the most secret page of them all.</p>
<p>So there are secrets here that you can't even imagine.</p>
<p>But you can't see them. You are not allowed to see them.</p>
<p>So go back to the <a href="index.php">start</a> and forget about this page.</p>
<p>There is nothing to see here.</p>
<p>Nothing at all.</p>
<p>Nothing...</p>
<p>...at...</p>
<p>...all...</p>
<p>...<strong>NOTHING!</strong></p>
<p>So go away now.</p>
<p>Shoo!</p>
<?php require_once 'logout_button.php'; ?>
</body>
</html>
Längst ned i dokumentet har jag även inkluderat en liten kodsnutt den lägger in koden ifrån logout_button.php där i har jag helt enkelt en ligen knapp. Men det betyder att jag kan enkelt föra in dea