Ansicht:   

#410061 Interne Seite durch IP Filtern (web.coding)

verfaßt von Johann, 21.03.2017, 18:43:04
(editiert von Johann, 21.03.2017, 18:57:18)

Du kannst das wie folgt machen, minimale Lösung. Gewünschten Username/Passwort in der if-Bedingung "if($_POST['uname'] == "Username" && $_POST['upass'] == "Passwort")" entsprechend eintragen.

Lege eine Datei "session.php" mit folgendem Inhalt an:

<?php
$logout="";
if(0 === strpos($_SERVER['REMOTE_ADDR'], '192.168.5.')) return;
session_start();
$status="";
if(!isset($_SESSION['login'])) $_SESSION['login'] = false;
if(isset($_REQUEST['action'])) {
  if($_REQUEST['action'] == "login") {
    if($_POST['uname'] == "Username" && $_POST['upass'] == "Passwort") {
      $_SESSION['login'] = true;
      header("Location: " . $_SERVER['PHP_SELF']);
      die;
    }
    else $status="<b>Falsche Zugangsdaten</b>";
  }
  elseif($_REQUEST['action'] == "logout") $_SESSION['login'] = false;
}

if(!$_SESSION['login']) {
?>
<!DOCTYPE html>
<html lang="de">
  <head>
    <meta charset="utf-8">
    <title>title</title>
    <link rel="stylesheet" href="style.css">
    <script src="script.js"></script>
  </head>
  <body>
    <form method="POST" action="<?php echo $_SERVER['PHP_SELF'];?>">
    <input type="hidden" name="action" value="login"/>
    login: <input type="text" name="uname"/><br/>
    pass: <input type="password" name="upass"/><br/>
    <input type="submit" value="Login"/><br/>
<?php echo $status; ?>
  </form>
</body>
</html>
<?php
  die;
}
else $logout="<a href='?action=logout'>Logout</a>";


Nun setzt Du in jede zu schützende PHP-Datei im gleichen Verzeichnis oben dies ein:

<?php include("session.php"); ?>


Und falls gewünscht in jeder zu schützender Datei irgendwo den eventuellen Logout-Link

<?php echo $logout;?>


Beispielinhalt für eine zu schützende, parallel zur session.php liegende index.php:

<?php include("session.php"); ?>

... hier dein ganzer HTML Krempel ...<br/><br/>
Und irgendwo den Logout Link: <?php echo $logout;?>


Ich schreib normalerweise keinem Zeug für umsonst, nur, damit Du mal siehst, was das mindestens an Überlegung und Aufwand konkret erfordert. Möglicherweise vertiefst Du Deine Kenntnisse für künftige Projekte dieser Couleur, du hast ja immer wieder mal solche oder ähnliche Dinge auf der Pfanne.

 

gesamter Thread:

Ansicht:   
Auf unserer Web-Seite werden Cookies eingesetzt, um diverse Funktionalitäten zu gewährleisten. Hier erfährst du alles zum Datenschutz