Ir para conteúdo

POWERED BY:

Arquivado

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

Paulo Mardson

Sessions

Recommended Posts

Boa tarde pessoal, é o seguinte estou com problemas que creio eu sejam na session do login, quando é feito o redirecionamento para a página principal ela retorna para tela de login. o problema que em meu servidor local roda tranquilamente, mas no servidor online empaca.

 

verificacao.php

<?php
	// INICIA SESSÃO
	session_start();
	
	// CONEXÃO COM O BANCO
	include_once("funcoes.php");
	conecta();

	// RECEPÇÃO DE VALORES
	$login = anti_injection($_POST["login"]);
	$senha = anti_injection(md5($_POST["senha"]));

	if((!empty($login)) and (!empty($senha))){

		// CONSULTA SE USUÁRIO EXISTE
		$sql = "SELECT * FROM tabela WHERE login='{$login}' AND senha='{$senha}'";
		$res = mysql_query($sql);
		$registros = mysql_num_rows($res);
			
			if($registros = 1){
				while($linha = mysql_fetch_array($res)){
					foreach($linha as $key => $val){
						$$key = stripslashes($val);
					}			
			
					$_SESSION["id"] 	 = $id_user;
					$_SESSION["nome"] 	 = $nome;
					$_SESSION["email"] 	 = $email;
					$_SESSION["nivel"] 	 = $nivel_user;	
					$_SESSION["ultimo"]  = $ultimo_acesso;
					
					// DATA O ÚLTIMO ACESSO
					include_once("_INC/data_acesso.php");					
					$lastAcess = "UPDATE tabela SET ultimo ='".$acessData."' WHERE id = '".$linha["id"]."'";
					$gravador = mysql_query($lastAcess);
			
					// REDIRECIONA PARA PÁGINA ADMINISTRATIVA
					header("Location: index.php");
				}
			}else{	
				include("login.php");
				echo "<script>erro('Ops! Seu acesso não foi permitido, verifique senha e login!');</script>";				
			}
	}else{
			include("login.php");
			echo "<script>erro('Todos os campos devem ser preenchidos.');</script>";
	}

?>	

bloqueio.php

<?php

	function session_checker(){
		if(!isset($_SESSION['id'])){
			header ("Location:login.php");
			exit();		
		}
	}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele está barrando nessa função?

 


        function session_checker(){
                if(!isset($_SESSION['id'])){
                        header ("Location:login.php");
                        exit();         
                }
        }


Você já tentou printar a váriavel $_SESSION['id'] pra ver se ela realmente está setada?

 

Bota ai dentra da função pra ver se ele retorna o id:

print $_SESSION['id'];

die();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:

 


// insere os valores da sessão no cookie
session_set_cookie_params(0,"/",$HTTP_SERVER_VARS["HTTP_HOST"],0);
// inicia-se a sessão
session_start();
// ID da sessão que cada navegador cria
$session_id = session_id();

e na sua função tente:

 


        function session_checker(){
                if(!isset($session_id)){
                        header ("Location:login.php");
                        exit();         
                }
        }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja o teu info.php e o info.php do servidor remoto, há uma "sessao sobre sessions".

Se estiverem iguais vamos nos ater aos codigos. Ja perdi bons tempos em codigos que estavam certos e meu problema era no php.ini

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Pierry Bos tem razão, compare as configurações no phpinfo e caso não esteja semelhante você pode usar a função ini_set no código:

 

//configurações do php.ini
ini_set("session.use_only_cookies","1");
ini_set("session.use_trans_sid","0");
ini_set("display_errors","on");
ini_set("allow_call_time_pass_reference","on");
ini_set("register_globals","off");
ini_set("register_long_arrays","off");

Compartilhar este post


Link para o post
Compartilhar em outros sites

SERVIDOR WEB

 

[table=web]

session.auto_start	Off	Off
session.bug_compat_42	Off	Off
session.bug_compat_warn	On	On
session.cache_expire	180	180
session.cache_limiter	nocache	nocache
session.cookie_domain	no value	no value
session.cookie_lifetime	0	0
session.cookie_path	/	/
session.cookie_secure	Off	Off
session.entropy_file	no value	no value
session.entropy_length	0	0
session.gc_divisor	1000	1000
session.gc_maxlifetime	1440	1440
session.gc_probability	1	1
session.name	PHPSESSID	PHPSESSID
session.referer_check	no value	no value
session.save_handler	files	files
session.save_path	/tmp	/tmp
session.serialize_handler	php	php
session.use_cookies	On	On
session.use_only_cookies	Off	Off
session.use_trans_sid	Off	Off
[/table]

 

SERVIDOR LOCAL

[table=web]

session.auto_start	Off	Off
session.bug_compat_42	On	On
session.bug_compat_warn	On	On
session.cache_expire	180	180
session.cache_limiter	nocache	nocache
session.cookie_domain	no value	no value
session.cookie_httponly	Off	Off
session.cookie_lifetime	0	0
session.cookie_path	/	/
session.cookie_secure	Off	Off
session.entropy_file	no value	no value
session.entropy_length	0	0
session.gc_divisor	100	100
session.gc_maxlifetime	1440	1440
session.gc_probability	1	1
session.hash_bits_per_character	5	5
session.hash_function	0	0
session.name	PHPSESSID	PHPSESSID
session.referer_check	no value	no value
session.save_handler	files	files
session.save_path	E:\xammp\xampplite\tmp	E:\xammp\xampplite\tmp
session.serialize_handler	php	php
session.use_cookies	On	On
session.use_only_cookies	Off	Off
session.use_trans_sid	0	0
[/table]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade, a informacao acima da que tu postaste:

 

session

 

Session Support ----------------- enabled

Registered save handler --------- files user sqlite

Registered serializer handlers -- php php_binary wddx

 

*conf do meu info

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já achei o problema, as variaveis das sessions:

 

Peguei isso:

$_SESSION["id"]          = $id_user;
$_SESSION["nome"]        = $nome;
$_SESSION["email"]       = $email;
$_SESSION["nivel"]       = $nivel_user; 
$_SESSION["ultimo"]      = $ultimo_acesso;

Troquei por isso:

$_SESSION["id"]          = $id;
$_SESSION["nome"]        = $nome;
$_SESSION["email"]       = $email;
$_SESSION["nivel"]       = $nivel; 
$_SESSION["ultimo"]      = $ultimo;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Otimo! Resolvido entao!

Já achei o problema, as variaveis das sessions:

 

Peguei isso:

$_SESSION["id"]          = $id_user;
$_SESSION["nome"]        = $nome;
$_SESSION["email"]       = $email;
$_SESSION["nivel"]       = $nivel_user; 
$_SESSION["ultimo"]      = $ultimo_acesso;

Troquei por isso:

$_SESSION["id"]          = $id;
$_SESSION["nome"]        = $nome;
$_SESSION["email"]       = $email;
$_SESSION["nivel"]       = $nivel; 
$_SESSION["ultimo"]      = $ultimo;

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.