I'm developing a system and I have a problem with the user login, the session variables receive the data, but when I try to use them on other pages of the application, they are empty. I already used this feature on another system and I had no problems, but this time I do not understand why it does not work. Follow the code ...
Ajax
$('#btn_submit_login').click( function(){
var data = $('#login_form').serialize();
$.ajax({
url: 'php/usuario_login.php',
method: 'post',
data: data,
dataType: 'json',
success: function(response){
if(response.codigo == "1"){
window.location.href = "home.php";
}
else{
$('.mensagem-login').html(response.mensagem);
}
}
})
});
login_user.php
<?php
// Iniciando as variáveis de sessão
if(!isset($_SESSION)) {
session_start();
}
// Incluindo a classe de conexão ao BD
require_once('database.class.php');
// Recebendo os dados do formulário via POST
$usuario = $_POST['aut_usuario_login'];
$senha = md5($_POST['aut_usuario_senha']);
// Verificando se o camo usuário foi preenchido
if(empty($usuario)){
$retorno = array('mensagem' => 'Preencha o campo nome de usuário.');
echo json_encode($retorno);
exit();
}
// Verificando se campo senha foi preenchido, verificando POST por causa do md5
else if(empty($_POST['aut_usuario_senha'])){
$retorno = array('mensagem' => 'Preencha o campo senha.');
echo json_encode($retorno);
exit();
}
// Instanciando a classe Database / chamando o método de conexão com MySQL
$objdb = new Database();
$link = $objdb->conecta_mysql();
// Comando SQL
$sql = "SELECT * FROM usuario WHERE usuariologin = '$usuario' AND usuariosenha = '$senha' ";
// Executando a query e armazenando o retorno em uma variável
$resultado_id = mysqli_query($link, $sql);
// Caso haja registro, executa as seguintes instruções
if($resultado_id){
$dados_usuario = mysqli_fetch_array($resultado_id);
if(isset($dados_usuario['usuariologin'])){
// Recebendo e armazenando os dados da sessão
$_SESSION['idusuario'] = $dados_usuario['idusuario'];
$_SESSION['usuarionome'] = $dados_usuario['usuarionome'];
$_SESSION['usuariologin'] = $dados_usuario['usuariologin'];
// Retorno código '1' caso o usuário seja confirmado
$retorno = array('codigo' => '1');
echo json_encode($retorno);
exit();
header('Location: ../home.php');
}
else{
// Retorna mensagem de erro caso o usuário ou senha esteja incorreto
$retorno = array('mensagem' => 'Usuário e/ou senha inválidos.');
echo json_encode($retorno);
exit();
}
}
else{
echo 'Erro na execução da consulta.';
}
? >
On the pages I need to use the session, I'm starting like this:
<?php
if(!isset($_SESSION)) {
session_start();
}
echo 'Session: '. $_SESSION['usuarionome'];
? >
The error message I get is: Notice: Undefined index: usuarionome in C: \ xampp \ htdocs \ sistema_ged \ home.php on line 6
Thank you in advance!