Fra én login side til flere login sider

I PHP tutorial er der blevet lavet en guide til at login side. Men det gælder kun til én side. Hvad nu hvis jeg gerne vil have login til flere sider end kun én. Hvad skal jeg gøre i dette tilfælde?
Bedst hilsner Sajid

Hej Sajid.
Hvis jeg forstår dit spørgsmål korrekt vll du gerne lave flere sider som en bruger der er logget ind kan besøge, og ikke besøge hvis man ikke er logget ind.
Det jeg syntes der er nemmest er at lave en slags dørmand. Ham inkluderer jeg på alle de sider som jeg gerne vil have beskyttet.
Dørmanden kigger i dette tilfælde efter om der er sat en $_SESSION.
fil1:
Dit loginscript
<?php
session_start();
require('db.php'); // Inkludér din databasefil
$forbindelse = new Forbindelse; // Opret nyt db-object
// Spørg din database om der findes en bruger med det indtastede
$Login = $forbindelse->DatabasePrepareQueryReturnFirstField("SELECT noget FROM tabel WHERE noget = ?",array($_POST['noget']));
// Vurder det returnerede fra $Login-variablen.
if ($Login['email'] == $_POST['email'] && $Login['kodeord'] == $_POST['kode'] && $Login['id'] == 1) {
$_SESSION['loginID'] = $Login['id'];
header("Location: beskyttetside1.php");
} else {
echo "Du har IKKE angivet korrekte oplysninger";
}
?>
fil2:
Din dørmand
<?php
Class Bouncer{
public function access() {
if ($_SESSION['loginID']) {
// $_SESSION er sat, så gør ikke noget
} else {
// $_SESSION er IKKE sat, så send brugeren videre til logind.php og sluk for resten af koden
header('Location: logind.php');
die();
}
}
}
?>
fil3:
beskyttetside1.php
<?php
require('bouncer.php');
adgang();
echo "Du er nu på en beskyttet side";
echo "Dit bruger-id er ".$_SESSION['loginID'];
?><!DOCTYPE html>
<html>
<head>
</head>
<body>
<a href="beskyttetside2.php">Klik her for side 2</a>
</body>
</html>
adgang() skal hedde access() i linie 4.
beskyttetside2.php kan du så lave på samme måde som beskyttetside1.php
Håber du kan bruge det og komme videre med dit projekt =)

Hej @Saj1980
beskriver det meget godt, men hvis det er noget du gerne vil have uddybet i en trin-for-trin videoguide kan du ønske det lige her: https://v5.dk/wish/opret.php i serien "PHP Programmering". Så vil jeg gennemgå dette emne i den kommende video. @Thomas
Med venlige hilsner Daniel Bahl (@db)
CEO – v5.dk ApS

#1
, Du kalder funktionen "Access" i fil2, men kalder den via "adgang()" i beskyttetside1.php. Eller har jeg overset noget?
Jeg ved ikke hvad Best Practice er på området, men jeg ville nok foretrække at få at vide, at jeg ikke var logget ind, og så selv havde muligheden for at hoppe til login-siden, end automatisk at blive smidt derhen. Men det er småting og en smagssag.

Det er helt rigtigt set at den bliver kaldt ved 2 forskellige navne.
(Har tilføjet rettelsen under billedet). Har nu fundet ud af hvordan man gør inden man opretter kommentaren xD
Her kommer en løsning uden databaser.
formular.php
<!DOCTYPE html>
<html>
<head></head>
<body>
<h3>Log ind nedenfor</h3>
<form action="login.php" method="POST">
<input type="text" id="brugernavn" name="brugernavn" />
<input type="password" id="kode" name="kode" />
<input type="submit" value="Log ind" />
</form>
</body>
</html>
login.php
<?php
session_start();
$brugernavn = "saj";
$kode = "password";
// Vurder det returnerede fra $Login-variablen.
if ($POST['brugernavn'] == $brugernavn && $_POST['kode'] == $kode) {
$_SESSION['sessionNavn'] = "godkendt";
header("Location: beskyttetside1.php");
} else {
echo "Du har IKKE angivet korrekte oplysninger";
}
?>
beskyttetside1.php
<?php
require('bouncer.php'); // Tilkald dørmanden
adgang(); // Bed ham kontrollerer om der er sat en session
?><!DOCTYPE html>
<html>
<head></head>
<body>
<h1>Velkommen indenfor!</h1>
<br />
<a href="beskyttetside2.php">Side2</a>
</body>
</html>
bouncer.php
<?php
session_start();
Class Bouncer {
public function adgang() {
if($_SESSION['sessionNavn'] == "godkendt") {
// Gør ikke noget da sessionen er sat og er korrekt.
} else {
// Der er ikke sat en korrekt session og vi sender brugeren tilbage.
header('Location: formular.php');
die();
}
} // Lukker funktionen adgang
} // Lukker Class
?>
beskyttetside2.php
<?php
require('bouncer.php'); // Tilkald dørmanden
adgang(); // Bed ham kontrollerer om der er sat en session
?><!DOCTYPE html>
<html>
<head></head>
<body>
<h1>Dette er side 2!</h1>
<br />
<a href="beskyttetside1.php">Side1</a>
</body>
</html>
Håber det hjalp =)