Login geschützer Bereich mit Warteschlange und Priorität

Hi,
hab den Code mal hier angehängt.

also wenn sich jedoch der Benutzer während der 20 Versuch sich richtig einloggt wird er komplett von der Tabelle reihenfolge gelöscht.
Nur wenn die 20 Versuche abgelaufen sind bleiben noch Teile der Daten von dem Benutzer in der MySQL Tabelle stehen.
 

Anhänge

Also in dem was du hier reingestellt hast ist keine SQL-Anweisung die den vorhandenen Datensatz so verändert.

Die Ursache muss wo anders liegen!!

Nimm doch einfach mal die Anweisung

PHP:
"DELETE FROM reihenfolge WHERE nachname = '" .$_SESSION["benutzer"] ."' LIMIT 1"

trage einen vorhandenen Namen für die SESSION-Variable ein und gib sie direkt bei phpmyAdmin ein. Dann wirst du sehen das der Datensatz komplett gelöscht wird.
 
Hi tombe,

ich habe es mal mit der Anweisung probiert verhält sich aber genauso wie davor.

Ich habe jetzt mal das automatisch refreshen rausgeholt und es über aktualisieren per Hand gemacht.
Wenn jetzt über 20 Versuche sind löscht er auch alles aus der Warteliste, aber danach wird ja nochmals der Zähler für die Anzahl der Versuche durchgelaufen und dann werden wieder uhrzeit und adminstatus in die Tabelle eingetragen.

Es wird dann ja eine andere Seite aufgerufen weil ja die Session zerstört wird, aber auf der Seite ist kein MySQL-Befehl durch den etwas in die Tabelle eingetragen wird.

Gibt es denn eine Möglichkeit das wenn die Anzahl erreicht ist man direkt auf eine vordefinierte Seite umgeleitet wird wo man dann denjenigen Eintrag auswählt bei dem der Nachname fehlt und dann einfach löschen lässt?
 
Hi,

das Problem liegt darin das wenn $_SESSION["anzahl"]++ hochzählt die Seite hierdurch
PHP:
$meta = '<meta http-equiv="refresh" content="5; URL=log.php">';
ja aktualisiert wird und dort habe ich eine Datei per include eingebunden die in die Tabelle Reihenfolge den Benutzer reinschreibt.
Wenn jetzt die Anzahl der maximalen Versuche erreicht ist wird anscheinend nochmals die Seite versucht aufzurufen und dadurch wird dann die include Datei nochmals eingebunden und so wird es dann in die Datenbank geschrieben.

Gibt es eine Möglichkeit das irgendwie zu umgehen?
Mit include_once und require_once führt es nicht zu dem gewünschten erfolg.
 
Wo bzw. an welcher Stelle der Seite hast du den:

PHP:
$meta = '<meta http-equiv="refresh" content="5; URL=log.php">';

eingebunden
Wenn es ganz am Anfang der Seite steht vor dem HTML Kopf der Seite wird die Refresh-Anweisung nicht mehr ausgeführt wenn der Zähler 20 erreicht hat und der Eintrag aus der Datenbank gelöscht wurde. Es wird ja:

PHP:
$meta = '';

gesetzt.

Ansonsten prüfe doch einfach ob die SESSION["benutzer"] vorhanden und mit gültigem Wert gefüllt ist bevor du einen neuen Eintrag in die Warteliste schreibst.

Denke aber das es daran liegt in welcher Reihenfolge die Dateien eingebunden bzw. der entsprechende Code ausgeführt wird.

Gruß Thomas
 
Hi tombe,

habe es jetzt so wie du beschrieben hast gemacht.
Ich prüfe ob SESSION["benutzer"] vorhanden ist und auch ob sie mit einem gültigen Wert gefüllt ist.
Erst dann schreibe ich es in die Datenbank.

Danke!
 
Hi,

es hat sich jetzt eine weitere Frage aufgetan.
Die Sortierung mit der Reihenfolge nach dem Status klappt wunderbar.

Aber das Problem besteht darin, wenn sich jemand anmeldet bzw. versucht anzumelden und jemand eingeloggt ist bekommt er die Mitteilung das bereits einer eingeloggt ist und er bekommt eine Uhrzeit angezeigt wann er sich einloggen kann.

Solange keiner mit Adminstatus dazwischenkommt passt alles.
Nur wenn ein User der Adminstatus hat sich versucht anzumelden stimmt die Anzeige der Zeit nicht mehr wenn sich die anderen User anmelden können.

Wie kann man es machen, dass wenn sich ein Admin in der Warteliste befindet, das alle anderen User ohne Adminstatus eine Zeit x zu ihrer ursprünglichen Zeit dazuaddiert bekommen?
 
Zurück