Ir ao conteúdo
  • Cadastre-se

PHP Ao redirecionar página não faz update na tabela do banco


Posts recomendados

Segue aqui meu código abaixo, o que ocorre é o seguinte, quando o usuário logar ele vai para a página de chat, quando ele vai para essa página é feito um update no banco de dados para status = 1 esse status igual a 1 é a minha condição para exibição na página usuários para então que o técnico da T.I escolha quem atender, todas que estão com status = 1 vão estar visíveis lá. Porém ao usuário clicar no botão sair na página de chat, quero que faça o update no banco de dados com status = 0 novamente, para então na página de usuários a ser atendido ele vai sair, vou colocar um refresh a cada 60s nessa página para ela atualizá-la. --

--CÓDIGO DO TRECHO DA PÁGINA CHAT ONDE TEM O BOTÃO SAIR---
<>    

<body>
        <div class="contact1">
            
            
            
            <div class="fundo_chat">
                <div class="janela_chat">
               
                </div>
               
                <form action="chat.php" method="post"  class="form-chat">  
                    <input type="text" name="mensagem" id="mensagem" placeholder="Mensagem">
                    <tr>
                        
                    <button class="btn btn-primary" type="submit" id="botao-enviar">Enviar</button>
            
                        <a class="btn btn-primary" href="logout.php" role="button" id="botao-sair">Sair</a>
                    </form>
                
            
        </div>
        </div>
    
    </body>
</html>

<>

--CÓDIGO ONDE É FEITO A VALIDAÇÃO DE LOGIN, REDIRECIONA PARA A PÁGINA DE USUÁRIOS QUEM É DA T.I, OS RESTANTES DE OUTROS SETORES VÃO DIRETO PARA A CHAT ONDE AGUARDA ATENDIMENTO E AO SER REDIRECIONADO MUDA STATUS PARA =1, ESTÁ MUDANDO PARA 1 PERFEITAMENTE.--

<>

<?php

session_start();
header('Content-Type: text/html; charset=utf-8');
include("conexao.php");

if(empty($_POST['nome']) || empty($_POST['senha'])){
    header('location:index.html');
    exit();
}

$nome = mysqli_real_escape_string($conn, $_POST['nome']);
$senha = mysqli_real_escape_string($conn, $_POST['senha']);

$query = "select * from usuarios where nome = '$nome' and senha = '$senha'";
$setor = "SELECT setor FROM usuarios";

$result = mysqli_query($conn, $query);
$row = mysqli_num_rows($result);

if($row == 1){
    $_SESSION['nome'] = $nome && $_SESSION['senha'] = $senha;
    
  
    
    while ($verifica_setor = mysqli_fetch_array($result)) {

            $setor = $verifica_setor['setor'];
            if ($setor == "Tecnologia da Informação") {
                header('location: usuarios.php');
            }else{
                mysqli_query($conn, "UPDATE usuarios set status = '1' WHERE nome = '$nome'");
            
                
                header('location: chat.php');
            }
        
    }
}
else {
    echo "<script>alert('USUÁRIO NÃO CADASTRADO OU DADOS INVÁLIDOS!');</script>";
    echo "<script>window.location='index.html';</script>";
    exit();
}
?>

<>



--AQUI É O MEU LOGOUT, ONDE EU INICIO A PARAMETRO SESSION PARA PEGAR O VALOR GLOBAL DELA QUE TINHA QUE SER O NOME PARA BUSCAR NA TABELA, FIZ UM OR DIE PARA TESTAR O QUERY E UM ECHO PARA VER O QUE ESTAVA SENDO EXIBIDO, E O QUE EXIBE NO ECHO É O VALOR = 1, POR ISSO A QUERY NAO FUNCIONA DO JEITO CERTO--

<>

<?php
include("conexao.php");

session_start();

echo $_SESSION['nome'];

mysqli_query($conn, "UPDATE usuarios SET status = '0' WHERE nome = '$nome'") or die ("PARAMETROS NAO ALTERADO");

/*
session_destroy();
header('location:index.html');
exit();*/
?>

<>

 

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Marcus_Sapeka Onde está o erro exatamente? qual a dúvida? 

Você explicou o que queria fazer, postou código, mas não disse o que está acontecendo... se é erro, ou se não sabe fazer.... 

e a propósito, quanto ao código, peço a gentileza que poste usando o botão code que tem no editor.

Link para o comentário
Compartilhar em outros sites

15 minutos atrás, DiF disse:

@Marcus_Sapeka Onde está o erro exatamente? qual a dúvida? 

Você explicou o que queria fazer, postou código, mas não disse o que está acontecendo... se é erro, ou se não sabe fazer.... 

e a propósito, quanto ao código, peço a gentileza que poste usando o botão code que tem no editor.

Na página logout o echo da session retorna o valor 1 e eu não sei onde estou errando

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Marcus_Sapeka Acredito que você esteja fazendo isso de forma equívoca.

Basicamente o login é melhor se você se basear no valor ID do registro e não no nome.

 

Quando efetua o login, você insere o valor ID do registro na session e usa ela para tudo. Porque digo isso?, Simples, podem existir centenas de pessoas com nomes iguais, mas o valor ID do registro é sempre único, ou seja, é uma PK da tabela.

Ademais, no momento do logout, você precisa destruir a sessão.

 

Leia este post, na qual eu explico com detalhes um sistema de login com níveis de acesso, mas você pode adapta-lo para seu projeto.

 

Ali no código há duas partes, uma que valida e outra que fica nas páginas restritas, ou seja, aquelas que serão mostradas depois de efetuar o login. 

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!