So hab es jetzt also nochmal überarbeitet, bin mir aber nicht ganz sicher ob das mit den Headern so okay ist. Wäre um ein letztes Feedback dankbar:
LG,
Fabian
PHP-Code:
<?php
//error_reporting(E_ALL);
if($_SERVER['HTTPS'] != "on") // Https erzwingen
{
header ('Location: [url]https://[/url]'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
}
require_once('config.php'); // Datenbank Daten laden
session_start();
mysql_connect(HOST,USER,PASS) && mysql_select_db(DB);
$result = mysql_query('SELECT Name, Password, cookie FROM users WHERE ID = 1') OR die(mysql_error());
$row = mysql_fetch_assoc($result);
$currentip = explode('.', $_SERVER['REMOTE_ADDR']); // Ersten 3 IP segmente exploden
$aolip = $currentip[0].$currentip[1].$currentip[2];
mysql_free_result($result);
if(!empty($_SESSION['login']) && $_SESSION['login'] <= ($row['cookie'] + 10)) //Sessiondauer begrenzen
{
if($_SESSION['data'] == sha1($_SERVER['HTTP_USER_AGENT'].$aolip)) //Abgleich von gespeicherten IPsegmenten und Browser
{
$_SESSION['login'] = time(); // Neu setzen der Zeit um Sessiondauer zu begrenzen
}
}
else
{
$userpass = $_POST['userpass'];
$username = $_POST['username'];
if ($username == $row['Name'] && sha1($userpass) == $row['Password'])
{
$atm = time();
$_SESSION['login'] = $atm;
$_SESSION['data'] = sha1($_SERVER['HTTP_USER_AGENT'].$aolip); //IPsegmente und Borwser speichern
mysql_query("UPDATE users SET cookie = '".$atm."' WHERE id=1;"); //Zeit der Sessionerstellung in DB speichern
unset($username, $userpass, $aolip);
header ('Location: [url]https://[/url]'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
//Header setzen und exit um Reload zu verhindern
exit;
}
else
{
?>
Bitte loggen sie sich ein:<br><br>
<form action="<?php echo $_SERVER['REQUEST_URI'] ?>" method="post">
<input type="text" name="username" /><br>
<input type="password" name="userpass" /><br>
<input type="submit" />
</form>
<?php
die;
}
}
?>
Hier geht es weiter
Fabian
Kommentar