Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom, eu faco o login da minha pagina, e deixo a ID armazenada na SESSION, ai beleza, uso essa SESSION para cadastrar em um tabela, tudo certo, só que depois que eu volto para pagina inicial, a SESSION parece que expirou, ela nao funciona mais..., mas isso só quando hospeda, pq testando pelo localhost isso não acontece, eu cadastro e volto e a SESSION ainda funciona, vou postar o codigo abaixo...
login.php
<?php
session_start();
//incluir a conex�o para todo o site
include "conexao.php";
?>
<!Doctype html>
<html>
<head>
<title>Login</title>
<meta charset="utf-8">
<!-- Chamada do framework jQuery -->
<script src="css/bootstrap/js/jquery-3.2.1.min.js"></script>
<!-- Chamada do framework bootstrap -->
<link rel="stylesheet" href="css/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="css/bootstrap/css/bootstrap-theme.min.css">
<script src="css/bootstrap/js/bootstrap.min.js"></script>
<script>
function showAlertaErro(){
//$("#alerta-erro").show(2000).delay(1000).hide(2000);
$("#alerta-erro").slideDown(400).delay(3000).slideUp(400);
//$("#alerta-erro").fadeIn(2000).delay(1000).fadeOut(2000);
}
</script>
<style>
.panel{
width: 60%;
margin: 0 auto;
margin-top: 20px;
}
#alerta-erro{
display: none;
}
</style>
</head>
<body>
<div id="alerta-erro" class="alert alert-danger" role="alert">
<h4>Falha no login</h4>
Usuário e/ou senha inválidos
</div>
<div class="container-fluid">
<div class="panel panel-warning">
<div class="panel-heading">
<h4>Acesso restrito</h4>
</div>
<div class="panel-body">
<form action="" method="post">
<div class="form-group">
<label for="nome">Login</label>
<input type="text" name="fnome" id="nome" class="form-control" placeholder="Digite seu login" required>
</div>
<div class="form-group">
<label for="senha">Senha</label>
<input type="password" name="fsenha" id="senha" class="form-control" placeholder="Digite sua senha" required>
</div>
<input type="submit" value="Acessar" class="btn btn-success">
<input type="reset" value="Limpar Campos" class="btn btn-default">
</form>
</div>
</div>
</div>
</body>
</html>
<?php
//Verificar se ele clicou em acessar
if(!empty($_POST)){
//REsgatar os dados do form
$nome = $_POST['fnome'];
$senha = $_POST['fsenha'];
//script para verificar se existe um e-mail com esta senha no banco
$sql = "SELECT
*
FROM
funcionarios
WHERE
nome = '$nome'
AND
senha = MD5('$senha')";
//Executar no banco de dados
$res = mysqli_query($con, $sql);
//Verificar se existe resultado em res
$dados = mysqli_fetch_array($res);
//Verificar se o usuário conseguiu logar
if($dados['id']==""){
echo "<script>";
echo "showAlertaErro();";
echo "</script>";
$_SESSION['logado'] = false;
}else{
$_SESSION['logado'] = true;
$_SESSION['id'] = $dados['id'];
header("location:index.php");
}
}
?>
inicio.php
<?php
$id = $_SESSION['id'];
$sql = "SELECT
f.id,
f.nome,
f.data_admissao,
f.salario
FROM
funcionarios f
WHERE
id = $id";
$res = mysqli_query($con, $sql);
while($linha = mysqli_fetch_array($res)){
?>
<div class="jumbotron">
<h1>Bem Vindo <?php echo $linha['nome'] ?></h1>
<?php } ?>
<p>
Gerencie todos os conteúdos do seu site nesta página.
Hoje é dia <?php echo date("d/m/Y"); ?>.
</p>
<p><a class="btn btn-primary btn-lg" href="logout.php" role="button">Sair</a></p>
</div>
cadastrar.php
<?php
$teste = $_SESSION ['id'];
//Verificar se o post n�o est� vazio
//Executa a��o para cadastrar
//Script de inser��o de estado
$sql = "INSERT INTO vendas
(total, data_hora, clientes_id, funcionarios_id, hora)
values(0, now(), 1, $teste , now())";
$res = mysqli_query($con, $sql) or die(mysqli_error($con));
//SELECT o ultimo id cadastado pela conexão atual
$sql = "SELECT max(id) as id FROM vendas";
$resMaxId = mysqli_query($con, $sql);
$dados = mysqli_fetch_array($resMaxId);
$ultimoIdVenda = $dados['id'];
if($res==1){
echo "<script>";
echo "alert('Cadastrado com sucesso');";
echo "window.location = 'index.php?pasta=vendas&acao=produtos&venda_id=$ultimoIdVenda';";
echo "</script>";
}else{
echo "Erro ao cadastrar";
}
?>
Detalher: quando eu deslogo e relogo, a SESSION funciona novamente...
Estou com um problema parecido (faltou tempo para corrigir :), pelo que pesquisei, quando nao definimos as configurações na sessão, recebemos as configurações default do php.ini, que pode variar de instalação para instalação, SO para SO, dando esses desgastes. Voce pode alterar essa configuração diretamente no php.ini (caso tenha acesso ao mesmo) ou entao (o que seria mais correto na minha opnião) definir as validades e as durações em cada página pois elas ficariam funcionais em qualquer local. Segue o link do php.net ensinando:
https://secure.php.net/manual/pt_BR/function.session-cache-expire.php