Login Zeit Zugang wer kann helfen ?

Matthiasghh

Mitglied
Hallo User,

ich möchte gerne ein Zeit Login bauen wo ich z.B eine Zeit angeben kann wie lange der User das Login benutzen kann, ist die Zeit abgelaufen soll nach dem erneuten login der Zugang gesperrt werden.

Wer kann mir zeigen wie der Code aussehen muss.
Mein Login funktioniert auch super nur brauche ich eine Zeit Zone. z.B 3 Tage Zugang usw...

Vielen Dank im Voraus.

PHP:
$query = mysql_query("SELECT id FROM kunden WHERE benutzer='".$benutzername."' AND passwort='".md5($pw)."'");
$nums = mysql_num_rows($query);
if ($nums)
{
header("Location: login.php?login=startseite&SESSID=$PHPSESSID");
exit();
}
else
{
$ausgabe = "falsch";
header("Location: login.php?zugang=off");
exit();
}
 
Trag doch einfach den Timestamp in die DB ein, wann der User abläuft. Und im Login-Script fragst du dann einfach ab, ob der aktuelle Timestampt <= der in der DB ist..

PHP:
 $query = mysql_query("SELECT id FROM kunden WHERE benutzer='".$benutzername."' AND passwort='".md5($pw)."'");
$nums = mysql_num_rows($query);
$query = mysql_query("SELECT timestamp FROM kunden WHERE benutzer='".$benutzername."' AND passwort='".md5($pw)."'");
$timestamp = mysql_num_rows($query);
if ($nums and time()<=$timestamp)
{
header("Location: login.php?login=startseite&SESSID=$PHPSESSID");
exit();
}
else
{
$ausgabe = "falsch";
header("Location: login.php?zugang=off");
exit();
}
 
Zuletzt bearbeitet:
Vielen Dank für deine Mühe,

aber was soll ich für ein Feld anlegen in der DB ?
und wie trage ich den Timestamp ein ich möchte doch z.B 3 Tage Zugang vergeben ?

:)
 
Also mal ganz langsam: Der so genannte 'Timestamp' ist eine Dezimale Zahl, die die Anzahl der Sekunden angibt, die seit dem 1. Januar 1970 00:00:00 GMT vergangen sind...

Die rufst du mit der funktion time() ab.

In deine Datenbank fügst du jetzt ein feld z.B. 'timestamp' ein. Da schreibst du rein, wie lange der User noch gültig ist. Und Zwar rechnest du die Zeitspanne in Sekunden um, und zählst das dann zu dem aktuellen Timestamp dazu.

Für 24 Stunden z.B.:
PHP:
$timestamp = time()*86400

Und beim Login überprüfst du dann einfach, ob der Timestamp zum Zeitpunkt des Logins bereits den "ablaufstamp", also den in der DB eingetraenen Timestamp überschritten hat.
 
Hallo Rookie,

habe jetzt ein Feld namens "last" eingetragen da ist der Timestamp 0000-00-00 00:00:00

dazu habe ich in meiner Chech.php folgenden code nachgetragen :
PHP:
$query = mysql_query("SELECT id FROM kunden WHERE benutzer='".$benutzername."' AND passwort='".md5($pw)."'"); 
$nums = mysql_num_rows($query); 
$query = mysql_query("SELECT last FROM kunden WHERE benutzer='".$benutzername."' AND passwort='".md5($pw)."'"); 
$timestamp = mysql_num_rows($query); 
if ($nums and time()<=$timestamp) 
{ 
header("Location: login.php?login=startseite&SESSID=$PHPSESSID"); 
exit(); 
} 
else 
{ 
$ausgabe = "falsch"; 
header("Location: login.php?zugang=off"); 
exit(); 
}
kann mich aber trotzdem einlogen ?
 
Du musst den Timestamp unformatiert in die DB eintragen... Also wirklich nur die anzahl der Sekunden... (aktueller TS: 1115376930)
 
Versuch mal den akutellen Timestamp vorher in eine variable zu schreiben, und dann den TS aus der DB mit der Variabale zu vergleiche.

also $time=time(); if($time<=$timestamp) oder so... Und gib einfach mal beide Timestamps aus, dann kannst du ja sehen, wo was net ...
 
Habe jetzt einen neuen User angelegt aber der hat jetzt die Aktuelle Timestamp 12:58 usw. kann mich jetzt nicht anmelden.
 
hoffe das so hab gerade keine möglichkeit es zu testen...


PHP:
$now = time();
$three_days_ago = $now - time()*86400*3;
$query = mysql_query("SELECT id, last 
                                  FROM kunden 
                                  WHERE benutzer='".$benutzername."'  
                                  AND passwort='".md5($pw)."'
                                  AND last > $now 
                                  AND last < $three_days_ago"); 
$sql = mysql_query($query)
$anzahl_der_records = mysql_num_rows($query);

if($anzahl_der_records == 0){
// PW nicht richtig oder Account abgelaufen
}else{
// PW und Username richtig und Account gültig!
}
 
Zurück