2009-08-16 10 views
1

Je viens de lire un article quelque part. Ils utilisent session_id stocker le temps de connexion et de déconnexion pour chaque utilisateur connecté avec succès dans une table temporaire. Ce qui signifie que la table serait supprimée une fois la session détruite. Alors pourquoi créent-ils les tableaux?PHP, le temps de connexion et de déconnexion dans la table temporaire?

Y a-t-il une utilisation des tables temporaires? Et pourquoi utiliser session_id ??

Quelles sont les autres utilisations de session_id dans la table temporaire de connexion et de déconnexion? (Je ne peux pas comprendre la connexion et l'utilisation de l'ID de session, de connexion et de déconnexion dans les tables temporaires.)

+0

Quel article voulez-vous dire? – Gumbo

+0

Un tutoriel php, je ne peux pas trouver l'URL maintenant :(Je pense que c'est lié aux choses de sécurité –

+0

Etes-vous sûr qu'ils ne signifient pas créer une ligne temporaire dans la table? –

Répondre

2

Au lieu d'utiliser une deuxième table, pourquoi ne pas utiliser la table des utilisateurs pour stocker ces informations?

Table des utilisateurs:

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 

Maintenant, lorsque l'utilisateur se connecte en magasin son id dans une variable $ _SESSION et mettre à jour l'horodatage de connexion:

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

puis quand il se déconnecte utilisent le même commande d'en haut mais sur Logout

0

"Une table TEMPORARY est visible uniquement pour la connexion en cours et est supprimée automatiquement lorsque la connexion est fermée." (original)

Les tables temporaires sont définitivement interdites. Je voterai pour la solution de Cris.

0

je parie qu'ils utilisent la table temporaire pour stocker des informations de session (en utilisant session_set_save_handler), ce qui est bon: les informations de session change très rapidement et souvent, les tables temporaires sont parfaits pour de telles solutions

et peut-être vous confondre temporaire avec de la mémoire? les tables de mémoire ne sont pas stockées sur votre disque dur et les données sont perdues lors du redémarrage, ce qui est faisable pour les informations de session

0

Les identifiants de session sont très utiles pour reconnaître si les utilisateurs sont connectés ou non.

Il suffit de créer une table de connexion avec le nom d'utilisateur, session-id, recentaccesstime.

Lorsque l'utilisateur demande une nouvelle page, vérifiez si les identifiants de session et le nom d'utilisateur correspondent ou non.

Si elles correspondent, il suffit de mettre à jour le recentaccesstime.

Si le paramètre recentaccesstime est> 60 minutes, vous pouvez définir l'utilisateur déconnecté de notre site et supprimer son entité de la table de connexion.

www.addressinformer.com

Questions connexes