Hallo, ich habe eine Frage und zwar, habe ich ein simples loginscrip, dessen Code ich unten auch gleich posten werde, jetzt kommt die Frage, wie kann ich bei jedem Benutzer festlegen mit wie vielen Endgeräten er sich in meinem Login script einloggen kann?bsp. User A kann sich Maximal mit 3 Geräten im login script einloggen, wenn er versucht sich mit einem vierten anzumelden bekommt er einen Fehler. Bzw. die frage wäre auch ob das überhaupt geht, Stichwort: Problem Statische und dynamische IPS. Ist das möglich? LG GB3001
<?php
/* KONFIGURATION */
// Definiert Konstanten für das Script define('MD5_ENCRYPT', false); // Aktiviert Verschlüsselung für Passwort. Wenn "true" gesetzt, müssen Passwörter von $usrdata md5-verschlüsselt vorliegen. Standard: false define('LOGIN_FORM_URL', 'login.html'); // URL mit Anmeldeformular // Array mit Benutzerdaten: Besteht aus Array-Elementen mit paarweisen Benutzernamen und Passwörtern $usrdata = array(
array(
"usr" => "admin",
"pwd" => "passwort", // MD5-verschlüsselte Form: e22a63fb76874c99488435f26b117e37
"success_url" => "<a href="http://xxx.com">http://xxx.com</a>"
),
array(
"usr" => "admin2",
"pwd" => "passwort2",
"success_url" => "<a href="http://xxx.com">http://xxx.com</a>"
),
array(
"usr" => "admin2",
"pwd" => "passwort2",
"success_url" => "<a href="http://xxx.com">http://xxx.com</a>"
)
/* ... */
);
header("Content-Type: text/html; charset=utf-8"); // Melde Browser die verwendete Zeichenkodierung
// PHP-Session starten und aktuellen Stand abfragen session_start(); $_SESSION['logged_in'] = (isset($_SESSION['logged_in']) && $_SESSION['logged_in'] === true) ? true : false; $_SESSION['usr'] = (isset($_SESSION['usr'])) ? $_SESSION['usr'] : '';
$error = array(); if(!isset($_POST['login'])){ header('Location: '.LOGIN_FORM_URL); }else{ $usr = (!empty($_POST['user']) && trim($_POST['user']) != '') ? $_POST['user'] : false; $pwd = (!empty($_POST['password']) && trim($_POST['password']) != '') ? $_POST['password'] : false;
if(!$usr || !$pwd){
if(count($error) == 0)
$error[] = "Bitte geben Sie Benutzername und Passwort ein.";
}else{
$pwd = (MD5_ENCRYPT === true) ? md5($pwd) : $pwd; // Passwort eingabe MD5-encrypten, falls Option gesetzt ist
foreach($usrdata as $ud){ // Benutzer-Liste durchlaufen und je mit Formular-Eingaben vergleichen
if($usr != $ud['usr'] || $pwd != $ud['pwd']){
if(count($error) == 0)
$error[] = "Benutzername und/oder Passwort nicht korrekt.";
}else{
$_SESSION['logged_in'] = true;
$_SESSION['usr'] = $usr;
header('Location: '.$ud["success_url"]);
}
}
}
}
?><!doctype html> Login-Fehler
<?php foreach($error as $out){ ?>
- <?php echo $out; ?>
<?php } ?>
Zur Anmeldeseite