2009-08-16 10 views
1

Ich habe gerade irgendwo einen Artikel gelesen. Sie verwenden session_id, um die Anmelde- und Abmeldezeit für jeden erfolgreich angemeldeten Benutzer in einer temporären Tabelle zu speichern. Das heißt, die Tabelle würde gelöscht, sobald die Sitzung zerstört wurde. Warum also schaffen sie die Tische?PHP, Login und Logout-Zeit in temporäre Tabelle?

Gibt es eine Verwendung der temporären Tabellen? Und warum muss session_id ??

Was sind die anderen Anwendungen von session_id in der temporären Tabelle Login und Logout? (Ich konnte die Verbindung und Verwendung der Sitzungs-ID, der An- und Abmeldezeit in temporären Tabellen einfach nicht herausfinden.)

+0

Welche Artikel meinen Sie das? – Gumbo

+0

Einige php tutorial, ich kann die URL jetzt nicht finden :(Ich denke, es ist mit Sicherheit Dinge –

+0

Sind Sie sicher, dass sie nicht bedeuten, eine temporäre Zeile in der Tabelle zu erstellen? –

Antwort

2

Anstatt eine zweite Tabelle zu verwenden, warum nicht die Tabelle users verwenden, um diese Informationen zu speichern?

Tabelle Benutzer:

CREATE TABLE `Users` (
    `Id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, 
    `Username` VARCHAR(32) NOT NULL, 
    `Password` CHAR(32) NOT NULL, 
    `Login` TIMESTAMP DEFAULT 0, 
    `Logout` TIMESTAMP DEFAULT 0, 
    PRIMARY KEY (`Id`), 
    UNIQUE KEY (`Username`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 

Nun, wenn sich der Benutzer anmeldet Laden seine ID in eine Variable $ _SESSION und den Login-Zeitstempel aktualisieren:

UPDATE `Users` SET `Login` = NOW() WHERE `Id` = id_stored_in_session; 

und dann, wenn er den Einsatz aus der gleichen protokolliert Befehl von oben, aber auf Logout

0

"Eine TEMPORARY Tabelle ist nur für die aktuelle Verbindung sichtbar und wird automatisch gelöscht, wenn die Verbindung geschlossen wird."

So temporäre Tabellen ist definitiv ein No-Go. Ich werde für Cris Lösung stimmen.

0

Ich wette, sie sind die temporäre Tabelle mit Sitzungsinformationen speichern (mit session_set_save_handler) und das ist gut: Sitzungsinformationen ändert sich sehr schnell und oft, temporäre Tabellen sind perfekt für solche Lösungen

und vielleicht verwirrt Sie temporäre mit Speicher? Speichertabellen werden nicht auf Ihrer Festplatte gespeichert und Daten gehen beim Neustart verloren, was für Sitzungsinformationen möglich ist.

0

Sitzungs-IDs sind sehr benutzerfreundlich, um zu erkennen, ob die Benutzer angemeldet sind oder nicht.

Erstellen Sie einfach eine Login-Tabelle mit Benutzername, Session-ID, recentaccesstime.

Wenn der Benutzer eine neue Seite anfordert, überprüfen Sie, ob die Sitzungs-ID und der Benutzername übereinstimmen oder nicht.

Wenn sie übereinstimmten, aktualisieren Sie einfach die recentaccesstime.

Wenn die aktuelleZeit> 60 Minuten ist, können Sie den Benutzer von unserer Site abmelden und seine Entität aus der Login-Tabelle löschen.

www.addressinformer.com