PHP, login e logout tempo na tabela temporária?
Pergunta
Acabei de ler um artigo em algum lugar. Eles estão usando loja session_id o tempo de login e logout de todos os logged bem sucedido no usuário em uma tabela temporária. O que significa, a tabela seria eliminada assim que a sessão destruído. Então, por que eles estão criando as tabelas ??
Existe alguma utilização das tabelas temporárias? E por que deve utilizar session_id ??
Quais são os outros usos da session_id em login e logout tabela temporária ?? (Eu simplesmente não consigo descobri a conexão e uso do tempo session_id, login e sair em tabelas temporárias.)
Solução
Em vez de usar uma segunda tabela por que não usar a tabela de usuários para armazenar esta informação?
tabela de usuários:
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
Agora, quando o usuário fizer logon na loja o seu ID em uma variável $ _SESSION e atualizar o timestamp login:
UPDATE `Users` SET `Login` = NOW() WHERE `Id` = id_stored_in_session;
e, em seguida, quando ele fizer fora uso o mesmo comando de cima, mas em Logout
Outras dicas
Eu aposto que eles estão usando a tabela temporária para armazenar informações de sessão (utilizando session_set_save_handler
) e isso é bom: as informações da sessão muda muito rápido e, muitas vezes, as tabelas temporárias são perfeitos para tais soluções
e talvez você confundido temporária com a memória? tabelas de memória não são armazenados no seu disco rígido e os dados são perdidos na reinicialização, o que é factível para as informações da sessão
A sessão de identificação são muito userful reconhecer a se os usuários estão conectados ou não.
Apenas criar uma tabela de login com nome de usuário, sessão-id, recentaccesstime.
Sempre que o usuário solicita um novo cheque página se a sessões de ID e nome de usuário estão combinando ou não.
Se eles estavam combinando apenas atualizar o recentaccesstime.
Se o recentaccesstime é> 60 minutos você pode definir o usuário conectado fora do nosso site e apagar a sua entidade a partir da tabela de login.