Fórum Login por email e sessão em PHP #586682
12/10/2017
0
Estou tentando criar um página com login em determinada parte do site apenas usando um email válido inexistente no banco de dados mysql, onde o email passará a integrar o banco e nunca mais poderá acessar o site - literalmente, é um acesso único por usuário/email cujos registros ficarão armazenados no banco e serão exibidos no site. Também quero determinar o período de permanência em área logada sem que o usuário possa ver quanto tempo resta para encerrar a sessão. Mas não estou conseguindo fazer nada disso em php. Tentei pelo post e request sem sucesso e não tive como avançar porque travei na parte do acesso. Vocês podem me orientar?
Roberta
Curtir tópico
+ 0
Responder
Post mais votado
13/10/2017
No banco de dados você pode colocar uma coluna com o seguinte nome (ou algo sugestivo).
nome, email, primeiro_acesso
Onde por padrão o valor será 0 ou 1.
Feito isso a sua função de login precisará buscar no seu banco de dados por valor de email e senha que sejam iguais aos que foram passados +- da seguinte forma:
$sql = "SELECT * FROM clientes WHERE email = $varEmail AND senha = $varSenha AND = primeiro_acesso = 0"; (neste caso, considerando que 0 represente usuários que nunca acessaram o link ou a função em questão).
Caso a $sql retorne um valor maior do que 0 significa que ele encontrou usuários com o email e senha solicitados e que nunca acessaram o seu link. Feito isso, na mesma função, mude o valor de primeiro_acesso desde cliente para 1 (assim você vai saber que ele já acessou).
Para armazenar o tempo em que este usuário ficou conectado você pode usar uma função do php:
$inicio = microtime(true);
//sua funçã ou página aqui
$fim = number_format((microtime(true) - $inicio), 2); //onde 2 representa duas casas após a virgula
$sql = "UPDATE cliente tempo_acesso = $fim WHERE id = $id"; (Daí passa a ID do usuário de alguma forma, sei lá, talvez você esteja usando uma session, caso sim, armazene o ID em session e passe para esta função).
Espero ter ajudado!
nome, email, primeiro_acesso
Onde por padrão o valor será 0 ou 1.
Feito isso a sua função de login precisará buscar no seu banco de dados por valor de email e senha que sejam iguais aos que foram passados +- da seguinte forma:
$sql = "SELECT * FROM clientes WHERE email = $varEmail AND senha = $varSenha AND = primeiro_acesso = 0"; (neste caso, considerando que 0 represente usuários que nunca acessaram o link ou a função em questão).
Caso a $sql retorne um valor maior do que 0 significa que ele encontrou usuários com o email e senha solicitados e que nunca acessaram o seu link. Feito isso, na mesma função, mude o valor de primeiro_acesso desde cliente para 1 (assim você vai saber que ele já acessou).
Para armazenar o tempo em que este usuário ficou conectado você pode usar uma função do php:
$inicio = microtime(true);
//sua funçã ou página aqui
$fim = number_format((microtime(true) - $inicio), 2); //onde 2 representa duas casas após a virgula
$sql = "UPDATE cliente tempo_acesso = $fim WHERE id = $id"; (Daí passa a ID do usuário de alguma forma, sei lá, talvez você esteja usando uma session, caso sim, armazene o ID em session e passe para esta função).
Espero ter ajudado!
Rafael Castro
Responder
Gostei + 1
Clique aqui para fazer login e interagir na Comunidade :)