Felipessz 0 Denunciar post Postado Novembro 20, 2016 Olá pessoal tudo bom? Estou criando um sisteminha simples para meu aprendizado nessa linda linguagem PHP (como dito em meu primeiro tópico), e estou tendo um probleminha com uma tela de atualização de dados. Estou trabalhando com sessão normalmente, com isso ali no quadrado vermelho exibi o ID na minha tela de atualização cadastral do usuário apenas para ver se estava funcionado, e está. Meus <Input> estão recebendo os dados corretamente dos usuários logado a partir do banco de dados e os exibindo neles: O intuito é, após edita-los e clicar no botão Atualizar executaria um script meu de UPDATE e os dados seriam modificados. Segue abaixo meu código da tela update.php (editado, contendo apenas os códigos relevantes) e do script de Update: <?php //Iniciando a sessão session_start(); if((!isset ($_SESSION['login']) == true) and (!isset ($_SESSION['senha']) == true)) { unset($_SESSION['login']); unset($_SESSION['senha']); header('Location:http://127.0.0.1/englishcourse/http/login.php'); } $login = $_SESSION["login"]; $email = $_SESSION["email"]; $nome = $_SESSION["nome"]; $id = $_SESSION['id']; ?> <!DOCTYPE html> <html class="no-js" lang="pt-BR"> <head> </head> <body> <div class="row"> <form action="http://127.0.0.1/englishcourse/http/script/update.php" method="post"> <div class="col-md-9 col-md-offset-2 paddingcadastro"> <div class="row"> Nome <input type="text" name="atualiza_nome" value="<?php echo $_SESSION['nome']; ?>" ><br> </div> </div> <div class="row"> <div class="col-md-9 col-md-offset-2 paddingcadastro"> <div class="row"> Usuário <input type="text" name="atualiza_usuario" value="<?php echo $_SESSION['login']; ?>" ><br> </div> </div><br> <div class=" col-md-2 col-md-offset-4"> <input type="submit" value="Atualizar" class="bt-info bt-sm"> </div> </div> </div> </body> </html> Update_script.php <?php //Conexão com o bando de Dados include_once "conexao.php"; $pdo=conectar(); //Recebendo dados $nome=(trim($_POST["atualiza_nome"])); $usuario=(trim($_POST["atualiza_usuario"])); $id = $_SESSION['id']; //Realizando a consulta $atualizarusuario=$pdo->prepare("UPDATE usuarios SET nome=:nome, usuario=:usuario WHERE ID=:id"); $atualizarusuario->bindValue(":nome",$nome); $atualizarusuario->bindValue(":usuario",$usuario); $atualizarusuario->bindValue(":id",$id); $atualizarusuario->execute(); //Informa quantos usuarios foram atualizados if($atualizarusuario->rowCount() > 0): echo "USUARIO ATUALIZADO COM SUCESSO!"; else: echo "<h2>NENHUM USUARIO ENCONTRADO, FAVOR INFORMAR OS DADOS!<h2/>"; endif; ?> Porém está sempre dando erro e caindo no echo de "Nenhum usuário encontrado...." Quando eu estava usando o $_GET estava de boa, acho que to pecando no modo de pegar o ID do user ON. Poderiam me dar um help por favor? Grato desde já e fiquem com Deus!! Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Novembro 20, 2016 Falta o session_start(); na página onde está ocorrendo a atualização dos dados, sempre que você desejar resgatar a sessão, você deverá utilizar o session_start(). Compartilhar este post Link para o post Compartilhar em outros sites
Felipessz 0 Denunciar post Postado Novembro 20, 2016 Falta o session_start(); na página onde está ocorrendo a atualização dos dados, sempre que você desejar resgatar a sessão, você deverá utilizar o session_start(). Oi, desculpa editei o código aqui e retire-o sem querer, porém o está incluído normalmente. session_start(); Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Novembro 20, 2016 Veja se retorna algum erro então na query: print_r($atualizarusuario->errorInfo()); Se não estiver retornando nenhum erro, dê echo em todas as variáveis que estão indo para a query para ter certeza de que elas não estão vazias. Compartilhar este post Link para o post Compartilhar em outros sites
Felipessz 0 Denunciar post Postado Novembro 20, 2016 Veja se retorna algum erro então na query: print_r($atualizarusuario->errorInfo()); Se não estiver retornando nenhum erro, dê echo em todas as variáveis que estão indo para a query para ter certeza de que elas não estão vazias. Deu esse erro. No caso o "Update.php" ali seria no meu script enviado aqui Notice: Undefined variable: _SESSION in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\englishcourse\http\script\update.php on line 8 Array ( [0] => 42S22 [1] => 1054 [2] => Unknown column 'usuario' in 'field list' ) Compartilhar este post Link para o post Compartilhar em outros sites
Felipessz 0 Denunciar post Postado Novembro 20, 2016 Consegui, estava chamando a coluna errada da tabela rsrs. Muito obrigado Só que tem um porém agora, atualizei, e ainda estando online no site os dados puxados pelo banco nos Forms continuas sendo os antigos. Só atualizam quando eu encerro a cessão e conecto de novo. Há algum modo de atualiza-los direto? Compartilhar este post Link para o post Compartilhar em outros sites
ociceromartins 3 Denunciar post Postado Novembro 21, 2016 Felipe, Nos inputs você não faz um select para resgatar os dados e traz o dado da sessão. Na sessão estão armazenados os dados que você registrou quando o cara fez o login, e se você não atualizar os dados na $_SESSION, eles não mudarão sozinhos! Solução 1: Ao invés de utilizar a variável $_SESSION nos inputs, fazer um select pelo ID do usuário e utilizar os dados retornados pelo select (sempre estarão atualizados). Solução 2: Ao realizar o UPDATE do usuário, atualizar a sessão gravando novamente os dados na $_SESSION. Um abraço! Compartilhar este post Link para o post Compartilhar em outros sites
Felipessz 0 Denunciar post Postado Novembro 22, 2016 Felipe, Nos inputs você não faz um select para resgatar os dados e traz o dado da sessão. Na sessão estão armazenados os dados que você registrou quando o cara fez o login, e se você não atualizar os dados na $_SESSION, eles não mudarão sozinhos! Solução 1: Ao invés de utilizar a variável $_SESSION nos inputs, fazer um select pelo ID do usuário e utilizar os dados retornados pelo select (sempre estarão atualizados). Solução 2: Ao realizar o UPDATE do usuário, atualizar a sessão gravando novamente os dados na $_SESSION. Um abraço! Muito obrigado, consegui!! Compartilhar este post Link para o post Compartilhar em outros sites