Problemas com o uso de sessão

Criei uma pagina index.php com o seguinte codigo:

<?php

session_start();  //iniciando sessao

$login = "teste";
$senha = "123";

if($login=="teste" and $senha=="123"){
	$_session['logado'] = true;
	echo "logado";
	
}else{
	echo "não logado";
	
}
?>

depois criei uma outra pagina chamada restrito.php com o código:

<?php 
session_start();


?>

<?php if($_SESSION['logado']) :?>



<h1>usuario logado</h1>
<?php else: ?>
Pagina restrita

<?php endif; ?>

porem a pagina restrito apresenta um o erro:

Notice: Undefined index: logado in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\phpmysqli\secoes\restrito.php on line 7

e alem disso ele mostra o texto da parte html: Pagina restrita, sendo que as variáveis login e senha estão batendo e na pagina index esta funcionando direito a simulação de login.

Alguém pode me ajudar a solucionar o problema.

Tem um pequeno problema na declaração da variável logado no arquivo index.php. Deveria ser assim:

<?php
session_start (); // iniciando sessao

$login = "teste";
$senha = "123";

if ($login == "teste" and $senha == "123") {
    //alterando $_session para $_SESSION
    $_SESSION ['logado'] = true;

    echo "logado";
} else {
    echo "não logado";
}
?>
1 curtida

Mas faz diferença a letra maiúscula pq $_SESSION n é só uma variável booleana?

Faz diferença sim. O $_session (minúsculo) não dá para acessar a partir de outras paginas (scripts), ou seja não é uma variável global que possa ser compartilhada entre varias paginas. A variável global que pode ser acessada é o > $_SESSION (maiúsculo).

1 curtida

Entendi.Obrigado cara