Mit PHP Wechseln auf vorherige Seite verhindern?

5 Antworten

Ich speichere alles in einer Session. Wenn die gelöscht ist, wird man von der Seite weggeleitet

Wenn du den geschützten Bereich in eine separate Datei auslagerst (user.php) kannst du das mit einer Weiterleitung lösen: 

index.php ("Pseudo-Code")

<?php
session_start();
if (isset($_POST['password']) && $_POST['password'] === "test") {
$_SESSION["login-complete"] = true;
header("location: user.php");
exit;
}
if (isset($_POST['logout'])) {
session_destroy();
$_SESSION = array();
}
?>

<form method="POST" action="index.php">
<input name="password" type="password"/>
<input type="submit" value="login"/>
</form>

user.php

<?php
session_start();
if (!isset($_SESSION["login-complete"])) { header("location: index.php");
exit;
}
?>

<h1>User Bereich</h1>
<form method="POST" action="index.php">
<input name="logout" type="hidden"/>
<input type="submit" value="logout"/>
</form>

Ich würde dir die Verwendung von einer Session empfehlenhttp://php.net/manual/de/intro.session.php
Dazu müssen beide Dateien PHP-Dateien sein und mit session_start(); anfangen.
Die Login-Seite schützt bzw sperrst du mit

if(isset($_SESSION["LOGGED_IN"]))
{
  echo 'Du bist bereits angemeldet';
}
else
{
Dein Login-Skript
if(isset($_POST["passwort"]))
{
$_SESSION["LOGGED_IN"] = true; header("Location angemeldet.php");
} }

Und die andere Datei

if(!isset($_SESSION["LOGGED_IN"]))
{
Wenn nicht angemeldet (das Ausrufezeichen bedeutet "nicht" bzw "false"
header("Location: login.php");
}
else
{
echo 'Du bist angemeldet';
}

mrGalileo  24.04.2017, 18:24

Um dich abzumelden erstelle die logout.php wie folgt:

session_start();
session_destroy();
header("Location: login.php");
0

Mit ner js schleife und localstorage. Du setzt beim anmelden nen wert im ls auf true und fragst mit der schleife den wert ab und leitest um sofern der auf false steht. Beim logout sollte der natürlich auf false gesetzt werden. Ich denke das sollte funktionieren


Kieselsaeure  24.04.2017, 17:51

innerhalb der schleife*

0
linkman13 
Fragesteller
 24.04.2017, 17:53

Geht es auch ohne js? Ich hab von js nicht so viel Ahnung. XD

0
Kieselsaeure  24.04.2017, 17:55

du rufst ne seite aus dem cache auf. mit php wirst du nicht weit kommen bei der problematik. es sei denn mit ajax requests (steckt aber auch wieder js mit drinnen) aber die kosten dich vergleichsweise unnötig viel ressourcen als Serverbetreiber

0
Kieselsaeure  24.04.2017, 19:19

oh ich korrigiere: mit kuechentigers antwort also mit den headern könnte es wohl doch gehen. das ist mir so spontan vorher garnicht eingefallen.

0