Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

wtomtom

Dúvida login e logout

Recommended Posts

Pessoal estou com uma dúvida na parte de login e logout, criei uma pagina que para acessar ela tem que ter um cadastro só que não sei como que faço para criar uma sistema de logout, no sistema toda vez que recarrego a pagina ela volta para a pagina de login onde tenho que cadastrar os dados de login novamente não quero isso quero o sistema tipo igual desse site que só faz o logout depois que clico no link sair. segui o código. Desde já agradeço a todos que me ajudarem.

<?php

include("conecta/config.php");
include("conecta/restrito.php");
require 'conecta/conexao.php';

$login = $_POST['login'];
$senha = $_POST['senha'];

/* Verifica se existe usuario, o segredo ta aqui quando ele procupa uma 
linha q contenha o login e a senha digitada */
$sql_logar = "SELECT * FROM user WHERE login = '$login' && senha = '$senha'";
$exe_logar = mysql_query($sql_logar) or die (mysql_error());
$fet_logar = mysql_fetch_assoc($exe_logar);
$num_logar = mysql_num_rows($exe_logar);

//Verifica se n existe uma linha com o login e a senha digitado
if ($num_logar == 0){
 header("Location:login.php");
   echo "Login ou senha invalido.";
   echo "<br><a href='login.php'>Clique aqui para volta.</a>";   
} 
elseif($fet_logar['activo'] == "N"){
 header("Location:login.php");
   echo "Usuario não ativado, verifique seu e-mail para ativa a conta.";
   echo "<br><a href='login.php'>Clique aqui para volta.</a>";
}
else{
   //Cria a sessão e manda pra pagina principal.php
   session_start();
   $_SESSION['login'] = $login;
   $_SESSION['senha'] = $senha;
   
   $termo = (isset($_GET['termo'])) ? $_GET['termo'] : '';
   // Verifica se o termo de pesquisa está vazio, se estiver executa uma consulta completa
if (empty($termo)):

	$conexao = conexao::getInstance();
	$sql = 'SELECT id, nome, compra_venda, valor_moeda, valor_reais, email, carteira, telefone, status, foto FROM tab_clientes order by id DESC';
	$stm = $conexao->prepare($sql);
	$stm->execute();
	$clientes = $stm->fetchAll(PDO::FETCH_OBJ);

else:

	// Executa uma consulta baseada no termo de pesquisa passado como parâmetro
	$conexao = conexao::getInstance();
	$sql = 'SELECT id, nome, compra_venda, valor_moeda, valor_reais, email, carteira, telefone, status, foto FROM tab_clientes WHERE nome LIKE :nome OR email LIKE :email';
	$stm = $conexao->prepare($sql);
	$stm->bindValue(':nome', $termo.'%');
	$stm->bindValue(':email', $termo.'%');
	$stm->execute();
	$clientes = $stm->fetchAll(PDO::FETCH_OBJ);

endif;
   
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique se você está iniciando a session em todas as páginas que exibem login.

Se não usar session_start() nelas, a sessão não é reconhecida e o usuário é considerado não logado

 

Sugiro que siga este tutorial: http://blog.ultimatephp.com.br/sistema-de-login-php/

 

Seu sistema está vulnerável a SQL Injection. Veja como resolver: http://rberaldo.com.br/seguranca-em-sistemas-de-login-protecao-contra-sql-injection/

 

 

PS: funções mysql_* estão obsoletas desde o PHP 5.5 e já foram removidas no PHP 7. Prefira usar MySQLi ou PDO. Veja mais aqui: http://rberaldo.com.br/mysql-obsoleto-php/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você se refere à função de alterar senha?

Se for isso, é só uma tela onde o usuário digita a senha atual e a nova senha. Compare se a senha digitada é igual à salva no banco (lembre-se de usar hash). Se for igual, salve o hash da nova senha no banco e pronto :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existem inúmeros tutoriais sobre isso na Internet

Você só deixará de ser iniciante se estudar e se dedicar.

 

O propósito do fórum é orientar, não entregar código pronto. Estude, tente fazer. Se tiver dúvidas, volte aqui e pergunte, que ajudaremos sempre que possível

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.