<?
$REMOTE_ADDR=$_SERVER['REMOTE_ADDR'];
$username=$_POST['username'];
$pwd=$_POST['pwd'];
V.0.7.1
db_connect();
// Cookies checken, $linkzusatz & $skid definieren
$linkzusatz="";
if(isset($_COOKIE['cookietest']) || isset($_COOKIE['skid'])) {
if(isset($_COOKIE['skid'])) {
$skid=$_COOKIE['skid'];
}
$cookies=1;
}
else {
if(isset($_GET['skid'])) {
$skid=$_GET['skid'];
$linkzusatz="?skid=$skid";
}
$cookies=0;
}
// Bank Status
if ($bankoffen=="nein") {
// Fehlermeldung: Ungültige Session und Logon-Cookie löschen
setcookie("logon", "deleted", time()-3600, "/");
setcookie("skid", "deleted", time()-3600, "/");
$sessionerror="Das Spiel wurde geschlossen.<br>$bankoffeng";
$userfound=0;
$linkzusatz="";
}
else {
$now=time();
$bann=mysql_query("SELECT * FROM $table_ipsperre WHERE ip='$REMOTE_ADDR' AND sperrzeit>".($now-$bannzeit)." AND fehler>=$bannfehler");
if(mysql_num_rows($bann)) {
$sessionerror="Ihre IP-Adresse wurde wegen Mißbrauch gesperrt!";
}
// Automatischer Login (Auswertung Cookie "logon")
elseif(!isset($skid) && isset($_COOKIE['logon'])) {
list($username, $md5pwd)=split(":", $_COOKIE['logon'], 2);
$query=mysql_query("SELECT * FROM $table_kunden WHERE username='".mysql_escape_string($username)."' && status='aktiviert' && loginfehler=0", $db);
if(mysql_num_rows($query)==1) {
$userdaten=mysql_fetch_array($query);
if(md5($userdaten['pwd'])==$md5pwd) {
// Neue Session starten
$pwd=$userdaten['pwd'];
session_name("skid");
session_start();
$skid=session_id();
session_register("username");
session_register("pwd");
$userfound=1;
$update=mysql_query("UPDATE $table_kunden SET llogin=now(), lloginip='$REMOTE_ADDR' WHERE username='$username' && pwd='$pwd' && status='aktiviert'", $db);
$vergdate = date("Ymd");
}
else {
// IP loggen
mysql_query("UPDATE $table_kunden SET lloginf=now(), loginfehlerip='$REMOTE_ADDR', loginfehler=loginfehler+1 WHERE username='$username", $db);
ipsperre($REMOTE_ADDR);
// Logon-Cookie löschen und zur Startseite
setcookie("logon", "deleted", time()-3600, "/");
$userfound=0;
header("location: $domainroot/");
}
}
else {
// Logon-Cookie löschen und zur Startseite
setcookie("logon", "deleted", time()-3600, "/");
$userfound=0;
header("location: $domainroot/");
}
}
// Normaler Login
elseif(isset($_GET['step']) && $_GET['step']=="login") {
// Temporäre Sperrung
$query=mysql_query("SELECT loginfehler, UNIX_TIMESTAMP(lloginf) AS loginzeit FROM $table_kunden WHERE username='$_POST[username]' && status='aktiviert'", $db);
if(mysql_num_rows($query)==1) {
$login=mysql_fetch_array($query);
if($login['loginfehler']>=6) { $sperre=60*60; }
elseif($login['loginfehler']>=5) { $sperre=30*60; }
elseif($login['loginfehler']>=4) { $sperre=15*60; }
elseif($login['loginfehler']>=3) { $sperre=5*60; }
else { $sperre=0; }
if($now<=$login['loginzeit']+$sperre) {
$sessionerror="Ihr Account ist wegen mehrfacher Fehleingaben noch ".ceil(($login['loginzeit']+$sperre-$now)/60)." Minuten gesperrt!";
$userfound=0;
}
}
// Login
if(!isset($sessionerror)) {
$query=mysql_query("SELECT * FROM $table_kunden WHERE username='$_POST[username]' && pwd='$_POST[pwd]' && status='aktiviert'", $db);
if(mysql_num_rows($query)==1) {
// Neue Session starten
session_name("skid");
session_start();
$skid=session_id();
session_register("username");
session_register("pwd");
// Autologin Cookie setzen, falls gewünscht (24h)
if(isset($_POST['autologin']) && $_POST['autologin']="on") {
setcookie("logon", "$username:".md5($pwd), time()+60*60*24, "/");
}
$userdaten=mysql_fetch_array($query);
$llogin=$userdaten['llogin'];
$lloginip=$userdaten['lloginip'];
$loginfehler=$userdaten['loginfehler'];
if(!$cookies) {
$linkzusatz="?skid=$skid";
$ip=$REMOTE_ADDR;
session_register("ip");
}
$userfound=1;
$update=mysql_query("UPDATE $table_kunden SET llogin=now(), lloginip='$REMOTE_ADDR', loginfehler=0 WHERE username='$username' && pwd='$pwd' && status='aktiviert'", $db);
$vergdate = date("Ymd");
}
else {
// Fehlermeldung: Login fehlgeschlagen
$userfound=0;
$query=mysql_query("SELECT * FROM $table_kunden WHERE username='$_POST[username]'", $db);
if(mysql_num_rows($query)==1) {
$userdaten=mysql_fetch_array($query);
if($userdaten['status']=='gesperrt') {
$sessionerror="Ihr Account wurde gesperrt! Bitte wenden Sie sich an den Webmaster.";
}
elseif($userdaten['status']=='deaktiviert') {
$sessionerror="Ihr Account wurde deaktiviert! Bitte wenden Sie sich an den Webmaster.";
}
elseif($userdaten['status']=='wartend') {
$sessionerror="Ihr Account ist nicht noch nicht aktiviert!";
}
else {
$sessionerror="Die von Ihnen eingegebene ID - Passwortkombination wurde nicht gefunden!";
// IP loggen
mysql_query("UPDATE $table_kunden SET lloginf=now(), loginfehlerip='$REMOTE_ADDR', loginfehler=loginfehler+1 WHERE username='$_POST[username]'", $db);
ipsperre($REMOTE_ADDR);
}
}
else {
$sessionerror="Die von Ihnen eingegebene ID - Passwortkombination wurde nicht gefunden!";
}
}
}
}
// Session fortsetzen
elseif(isset($skid)) {
session_name("skid");
session_start();
if(!isset($_GET['step']) || $_GET['step']!="logout") {
// Normaler Seitenaufruf
$userfound=0;
if(isset($_SESSION['username']) && isset($_SESSION['pwd'])) {
// Session gültig
$query=mysql_query("SELECT * FROM $table_kunden WHERE username='$username' && pwd='$pwd' && status='aktiviert'", $db);
if(mysql_num_rows($query)==1 && (!isset($_SESSION['ip']) || $_SESSION['ip']==$REMOTE_ADDR)) {
$userdaten=mysql_fetch_array($query);
$userfound=1;
}
else {
$userfound=0;
}
}
if(!$userfound) {
// Automatischen Login versuchen, falls Session abgelaufen
if(!isset($_COOKIE['logon'])) {
// Fehlermeldung: Ungültige Session
setcookie("skid", "deleted", time()-3600, "/");
session_destroy();
$sessionerror="Die Session wurde aus Sicherheitsgründen beendet. Bitte logge Dich erneut ein.<br>";
$userfound=0;
$linkzusatz="";
}
else {
// Automatischer Login (Auswertung Cookie "logon")
list($username, $md5pwd)=split(":", $logon, 2);
$query=mysql_query("SELECT * FROM $table_kunden WHERE username='".mysql_escape_string($username)."' && status='aktiviert' && loginfehler=0", $db);
if(mysql_num_rows($query)==1) {
$userdaten=mysql_fetch_array($query);
if(md5($userdaten['pwd'])==$md5pwd) {
$pwd=$userdaten['pwd'];
$skid=session_id();
session_register("username");
session_register("pwd");
$userfound=1;
$update=mysql_query("UPDATE $table_kunden SET llogin=now(), lloginip='$REMOTE_ADDR' WHERE username='$username' && pwd='$pwd' && status='aktiviert'", $db);
$vergdate = date("Ymd");
}
else {
// Fehlermeldung: Ungültige Session und Logon-Cookie löschen
setcookie("logon", "deleted", time()-3600, "/");
setcookie("skid", "deleted", time()-3600, "/");
$sessionerror="Die Session wurde aus Sicherheitsgründen beendet. Bitte logge Dich erneut ein.<br>";
$userfound=0;
$linkzusatz="";
}
}
else {
setcookie("logon", "deleted", time()-3600, "/");
$userfound=0;
header("location: $domainroot/");
}
}
}
}
else {
// Logout: Session beenden und Logon-Cookie löschen
session_unset();
session_destroy();
setcookie("logon", "deleted", time()-3600, "/");
setcookie("skid", "deleted", time()-3600, "/");
$userfound=0;
$linkzusatz="";
// Redirect
header("location: $domainroot/");
}
}
// Aufruf ohne Parameter
else {
$userfound=0;
header("location: $domainroot/");
}
}
// Linkzusatz2 für weitere Parameter
if($linkzusatz) {
$linkzusatz2=$linkzusatz."&";
}
else {
$linkzusatz2="?";
}
mysql_close($db);
?>