Login System probleme

Matthiasghh

Mitglied
<b>Login System probleme</b>

Hallo User,

ich habe ein Loginsystem programmiert, dieses funktioniert auch wunderbar jetzt möchte ich aber einen Tage Zugang progammieren habe aber überhaupt keine Ahnung.

Dieses Login ist ohne Session aufgebaut.

Ich habe einen Javascript womit beim ausloggen oder verlassen der Seite der DB eintrag gelöscht wird, aber ich möchte nicht sofort löschen sondern nach bestimmten tagen z.B wen ich 3 Tage einstell soll der User 3 Tage sich auf der Seite einloggen sind die 3 Tage abgelaufen wird beim nächsten ausloggen der DB eintrag gelöscht oder gesperrt.

Wer kann mir helfen.?
 
Zuletzt bearbeitet:
Habe hier was gefunden habe aber keine Ahnung wie ich das für Tage nutzen kann.

hier der Code:
PHP:
class wannkundenrechnung 
{ 
var $naechsterechnung; 

function naechsterechnung($monate){ 
$a = mktime(0,0,0,date("m") + $monate, date("d"), date("y")); 
$this->naechsterechnung = strftime("%d.%m.%Y",$a); 
} 
} 
$wkd = new wannkundenrechnung; 
$wkd->naechsterechnung(12); // hier die Monate eintragen; 
echo "Nächste Rechnung des Kunden ".$wkd->naechsterechnung;

Vielen Dank ! :)
 
Ganz einfach, mach für die Logindaten in der DB ein Feld mit ner Timestamp, wann der User sich angemeldet hat. Dann ein zweites Wieviel Tage erlaubt sind fürs Login.
Dann liest du den User aus und prüfst ob time() <= (gepsiehcerte_time() + (tage * 259200))
Wenn ja login verweigern und Eintrag löschen oder ein Flag für enabled / disabled setzen. Dann musst du nur noch die entsprechenden Daten ändern wenn der User wieder ein Login haben soll.
Auf jeden Fall kannst du dir das mktime geraffel sparen wenn du mit timestamps arbeitest.

Alternativ könntest du dir auch ein DATETIME-Feld inder DB nehmen, beim Eintragen dort mit NOW() die Eintragszeit speichern und mit DATE_DIFF() o.ä. MySQL-Datumsfunktionen im Statement das schon rechnen lassen und die Rückgabewerte ähnlich wie oben prüfen.
Was dir lieber ist.
 
Na was heisst Anleitung, für die aus dem Stehgreif einfachere Variante brauchst du für den Logindatensatz des Users noch ein Datenfeld des typs Datetime.

Beim Anlegen eines neuen Logindatensatzes einfach das DATETIME Feld folgendes reinschreiben: `datumsfeld`=DATE_ADD(NOW(),INTERVAL 3 DAYS)

Beim Login liest du dann den Logindatensatz aus.
Wir gehen hierbei nich von einer Passwortprüfung aus, das hast du ja sicher bereits.
Dann erweiterst du ebim Auslesen einfach das WHERE um
WHERE `datumsfeld`>=NOW()
Dann bekommst du nur einen Datensatz aus der DB wenn das Ungütligkeitsdatum noch nicht erreicht ist.
Anschliessend könntest du in gewissen abständen ein
DELETE FROM `deinetabelle` WHERE `datumsfeld`<NOW()
laufen lassen um alle alten Logins zu löschen.
 
Hallo so sieht meine Passwort Prüfung aus.

PHP:
include("../config.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();
}
Was muss ich jetzt für eine Tabelle anlegen und wie bauche ich den z.B 3 Tage Zugang ein ?

Vielen Dank im voraus.
 

Neue Beiträge

Zurück