Ir para conteúdo

POWERED BY:

Arquivado

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

AllysonSouza

Problema com SESSION

Recommended Posts

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...

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera, tudo certo?
       
      Seguinte: No servidor A estou tentando fazer uma consulta com o servidor B, mas está dando erro.
      Estou usando o mesmo código de conexão do servidor B que funciona perfeitamente, mas no servidor A, dá erro.
      Segue código:
       
      $host = 'servidor B';
      $user = 'user';
      $pass = '********';
      $db   = 'banco';
       
      // conexão e seleção do banco de dados
      $conexao = mysqlI_connect($host, $user, $pass, $db);
      mysqlI_set_charset($conexao,"utf8");
      //print "Conexão rodando e OK!"; 
      //mysqlI_close($conexao);
       
      Alguém pode me ajudar?
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
    • Por violin101
      Caros amigos, saudações
       
      Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida.
       
      Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo:
       
      Data Atual: 15/11/2024
                                           Vencimento
      Fornecedor.....................Data.....................Valor
      Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja
      Fornecedor_1...........01/01/2025..........R$ 130,00
      Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo
      Fornecedor_2...........15/01/2025..........R$ 230,00
      Fornecedor_3...........20/12/2024..........R$ 150,00
       
      Alguém tem alguma dica ou leitura sobre este assunto ?

      Grato,
       
      Cesar
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.