Ir para conteúdo

POWERED BY:

Arquivado

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

DiegoEsteves

Problemas com valida sessão

Recommended Posts

Ola pessoal!!, estou com um probleminha em validar a sessão!

seguinte, tenho um sistema imobiliarioe está funcionando tudo local, fiz um up para o ar, e logo em seguido qndo clico em logout o úsuario não poderia voltar para o sistema sem autenticar novamente e não é isso q está acontecendo com o sistema no ar! local ele tá funcionando direitinho mais no ar não está alguem poderia me ajudar!

 

valida sessão.php

<?
session_start();

	if((empty($_SESSION["login"]) or empty($_SESSION["senha"]))){
	echo "<script>alert('Você não Autentico no Sistema')</script>"; 
	header("Location: ../index.php");
	}
	if((!empty($_SESSION["login"])) and (!empty($_SESSION["senha"]))){
	include '../persistencia/conecta.inc.php';
	$sql = "SELECT * FROM usuario INNER JOIN status ON status.idstatus = usuario.idstatus WHERE login='".$_SESSION["login"]."' and senha='".$_SESSION["senha"]." and status.tipostatus' = '".$_SESSION["status"]."'";
	$res = mysql_query($sql);
	$linha = mysql_num_rows($res);
	//teste para ver se a consulta retornou algum erro
	if($linha != 1)
	{
		echo "<script>alert('A autenticação não foi realizada porque os dados digitados estão incorretos.');history.back(-1);</script>";
		}
	}
?>

logout.php

<?	
	$_SESSION = array();
	session_destroy();
	header("Location: ../index.php");

?>
valeu aguardo ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

fera tenta fazer assim, para destruir uma sessao voce precisa cria-la e depois no session_destroy() precisa infrmar o nome dela para ela excluir caso contrario o session_destroy nao vai saber oq é para destruir.

 

<?

 

$usuario = addslashes(trim($_POST['usuario']));

$senha = addslashes(trim($_POST['senha']));

 

$sql = mysql_query("select usuario, senha FROM usuarios WHERE usuario='$usuario' and senha='$senha'") or die ("erro no select");

 

$sqlx=mysql_num_rows($sql);

 

if($sqlx==""){

echo "<script language='javascript'>

locatin.href='index.php';

</script>

";

}else{

session_start();

$_SESSION['usuario']=$_POST['usuario'];

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

session_register("loginEfetuado");

header("LOCATION:index2.php");

}

 

?>

 

 

 

e para destrir a sessao faz o seguinte

 

logout.

 

pronto sua sessao vai ser destruida

<?

session_destroy("loginEfetuado");

header("Location: ../index.php");

 

?>

 

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo,

 

para destruir uma session basta sar o codigo:

session_destroy();

 

assim como voce fez.

 

POREM ANTES DE DESTRUIR DEVE-SE INICIAR A MESMA

 

ENTÃO O CÓDIGO FICARIA:

 

session_start();

session_destroy();

header("Location: index.html");

 

 

Com isso essa página iria abrir as session, depois DESTRUIR as sessions e redirecionar para a index....

 

 

Espero ter ajudado....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo,

 

para destruir uma session basta sar o codigo:

session_destroy();

 

assim como voce fez.

 

POREM ANTES DE DESTRUIR DEVE-SE INICIAR A MESMA

 

ENTÃO O CÓDIGO FICARIA:

 

session_start();

session_destroy();

header("Location: index.html");

 

 

Com isso essa página iria abrir as session, depois DESTRUIR as sessions e redirecionar para a index....

 

 

Espero ter ajudado....

 

Cara não funcionou não já fiz todos os testes no localhost e funciona mais qndo coloco ele no ar(up) ele não funciona

 

já fiz desta forma:

 

logout

 

@session_start();

@session_destroy();

print("<script>alert('Você está logout!');history.go(-1);</script>");

header("Location: index.php");

 

 

valida_session:

 

<?

@session_start();

 

if((empty($_SESSION["login"]) or empty($_SESSION["senha"]))){

echo "<script>alert('Você não Autentico no Sistema')</script>";

header("Location: ../index.php");

}

if((!empty($_SESSION["login"])) and (!empty($_SESSION["senha"]))){

include '../persistencia/conecta.php';

$sql = "SELECT * FROM usuario INNER JOIN status ON status.idstatus = usuario.idstatus WHERE login='".$_SESSION["login"]."' and senha='".$_SESSION["senha"]." and status.tipostatus' = '".$_SESSION["status"]."'";

$res = mysql_query($sql);

$linha = mysql_num_rows($res);

//teste para ver se a consulta retornou algum erro

if($linha == 0)

{

echo "<script>alert('A autenticação não foi realizada porque os dados digitados estão incorretos.');history.back(-1);</script>";

}

}

 

?>

 

e mesmo assim no ar não funciona, tentei tbm fazer da forma q o Guilhermerk falou e tbm não funcionou alguem saberia dizer o motivo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara,

 

primeiro o OR e o AND do php voce usa || e && respectivimanete.

 

outra coisa eu não sou muito fan do empty não...tenta adicionar o isset

 

eu estou usando no meu sistema esse mesmo código que te passei e esta funcionando....

ve ai amigo

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

pow cara então to fazendo mais de uam coisa errada pq não funcionou, já mudei o empty por isset como você sugeriu mudei os or por || and por && e nada continua voltando sem pedir a autenticação novamente! tem algum palpite ainda?

 

valeu

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

2 opções

 

<?    
    session_start();
    session_destroy();
    header("Location: ../index.php");

?>

 

ou

 

 

<?    
    session_start();
    unset($_SESSION);
    header("Location: ../index.php");

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Melhor opção:

 

<?php
session_start();
$_SESSION=array();
session_destroy();
if(isset($_SESSION)){
unset($_SESSION['nome_sessao']);
}
header('Location: index.php');
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Melhor opção:

 

<?php
session_start();
$_SESSION=array();
session_destroy();
if(isset($_SESSION)){
unset($_SESSION['nome_sessao']);
}
header('Location: index.php');
?>

 

pessoal me desculpem pois eu sei q já está ficando chato mais tbm não funcionou já olhei várias vezes o código troquei os includes das páginas q para require pensando q o erro poderia estar ai mais tbm não funcinou! já utilizei os exemplos q vcs me passaram e tbm não funcionou! alguem ainda tem alguma ideia o q poderia estar ocorrendo?

 

grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Ola espero que alguem possa me ajudar, estou com um site funcionando legal qd uso o chrome ou o mozilla, mas quando alguém usa o IE a sessão perde fácil fácil em um clique depois que a pessoa fez o logim, já pedi ajuda pra um milhão de pessoas, mas ta difícil resolver

 

Na pagina index eu tenho o formulário para o usuário inserir os dados

ai direciona para esta pagina de validação

 

<?php

 

if (!empty($_POST) AND (empty($_POST['Login']) OR empty($_POST['Senha']))) {

header("Location: index.php"); exit;

}

 

mysql_connect("ssssssssssss", "yyyyyyyy", "xxxxx") or trigger_error(mysql_error());

mysql_select_db("zzzzzzzzzz") or trigger_error(mysql_error());

 

$login = mysql_real_escape_string($_POST['Login']);

$senha = mysql_real_escape_string($_POST['Senha']);

 

$sql = "SELECT `Apto`, `Login`, `nivel` FROM `usuarios` WHERE (`Login` = '". $login ."') AND (`Senha` = '". sha1($senha) ."') AND (`ativo` = 1) LIMIT 1";

$query = mysql_query($sql);

if (mysql_num_rows($query) != 1) {

echo "Login invalido!"; exit;

} else {

$resultado = mysql_fetch_assoc($query);

 

if (!isset($_SESSION)) session_start();

 

$_SESSION['UsuarioApto'] = $resultado['Apto'];

$_SESSION['UsuarioLogin'] = $resultado['Login'];

$_SESSION['UsuarioNivel'] = $resultado['nivel'];

 

// Redireciona o visitante

header("Location: Joy_Principal.php"); exit;

}

 

?>

 

e este é o da sessão em cada pagina:

 

<?php

 

session_start();

 

if (!isset($_SESSION))

 

$nivel_necessario = 1;

 

 

if (!isset($_SESSION['UsuarioLogin']) OR ($_SESSION['UsuarioNivel'] < $nivel_necessario)) {

 

session_destroy();

 

header("Location: index.php"); exit;

}

echo "<b><font face='Times New Roman, Times, serif' color='red' size='5'> Olá, ". $_SESSION['UsuarioLogin']."!

<a href='Fechar1.php'></a></font></b>";

 

 

?>

 

Agradeço Muito qualquer ajuda é muito bem vinda

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.