Ir ao conteúdo

PHP Erro ao atualizar senha


Ir à solução Resolvido por GabrielSennaMs,

Posts recomendados

Postado

Boa tarde, 

Estou com um problema que ja tentei solucionar de todas as formas e não obtive sucesso.

Tenho uma pagina para a atualização de senha ja existente. Para ter mais segurança, peço para o usuário confirmar a senha dele e então digitar a nova.

porém na hora de comparar a senha digitada com a senha do banco de dados, esta tendo algum erro.

 

Segue os codigo:

 

Formulário:

                                      <form method="post" enctype="multipart/form-data" class="form-horizontal">
                                        <div class="row form-group">
                                            <div class="col col-md-3">
                                            <label class=" form-control-label">ID</label>
                                        </div>
                                        <div class="col-12 col-md-5">
                                            <p class="form-control-static">#<?echo $id?></p>
                                        </div>
                                    </div>
                                          <div class="row form-group">
                                              <div class="col col-md-3">
                                              <label class=" form-control-label">Senha</label>
                                          </div>
                                          <div class="col-12 col-md-5">
                                              <p class="form-control-static">*******</p>
                                          </div>
                                      </div>
                                        <div class="row form-group">
                                          <div class="col col-md-3">
                                              <label for="disabled-input" class=" form-control-label">Digite sua senha:</label>
                                          </div>
                                          <div class="col-12 col-md-7">
                                              <input class="form-control" type="password" required="required" name="atual" placeholder="Senha atual">
                                          </div>
                                          <div class="col col-md-3">
                                              <label for="disabled-input" class=" form-control-label">Digite uma nova senha</label>
                                          </div>
                                          <div class="col-12 col-md-7">
                                              <input class="form-control" type="password" required="required" name="senha" placeholder="Nova senha">
                                          </div>
                                          <div class="col col-md-3">
                                              <label for="disabled-input" class=" form-control-label">Confirme sua nova senha</label>
                                          </div>
                                          <div class="col-12 col-md-7">
                                              <input class="form-control" type="password" required="required" name="senha2" placeholder="Repita a senha">
                                          </div><br /><br />
                                          <!--Botão-->
                                        <div class="card-footer">
                                        <button name="update" type="submit" class="btn btn-primary btn-sm" >
                                            <i class="fa fa-dot-circle-o"></i> Alterar
                                        </button>
                                        <button type="reset" class="btn btn-danger btn-sm">
                                            <i class="fa fa-ban"></i> Limpar
                                        </button>
                                    </div>
                                  </form>

 

Atualizador:

<div class="card-body card-block">
                                    <?php
                                    if(isset($_POST['update'])){
                                      $atual = sha1($_POST['atual']);
                                      #print_r ($atual);
                                      $velha = mysqli_query($con, "SELECT senha FROM registro WHERE id=$id") or print mysqli_error();
                                      #print_r ($velha);

                                      if($velha == $atual){

                                      if($_POST["senha"] == $_POST["senha2"]){
                                      $senha = sha1($_POST['senha']);



                                        $atualizar = mysqli_query($con, "UPDATE registro SET senha='$senha' WHERE id=$id ");


                                        if($atualizar):

                                            echo '<div class="alert alert-success">
                                                  <strong>Sucesso!</strong> Senha alterada com sucesso!.
                                                </div>';
                                        else:

                                            echo '<div class="alert alert-danger">
                                                  <strong>Opa!</strong> Tivemos um problema, contate o administrador!.
                                                </div>';
                                        endif;

                                        mysqli_close($con);
                                    }else{
                                      echo '<div class="alert alert-danger">
                                            <strong>Opa!</strong> As senhas não são identicas!.
                                          </div>';
                                    }
                                  }else{
                                    echo '<div class="alert alert-danger">
                                          <strong>Opa!</strong> Sua senha atual esta incorreta!.
                                        </div>';
                                  }
                                  }

                                    ?>

 

Perceba que coloquei os prints, para analisar onde estava o erro. E o erro esta justamente na varial $velha. Que retorna isso:

mysqli_result Object ( [current_field] => 0 [field_count] => 1 [lengths] => [num_rows] => 1 [type] => 0 )

 

Enquanto a variável $atual retorna a senha criptografada ja.

 

  • Solução
Postado

@Glouk

No arquivo php você faz a solicitação da senha atual ao banco de dados, porém você não obtêm o resultado como uma matriz na solicitação.

 

Pra fazer isso basta você utilizar o mysqli_fetch_assoc(), e depois você seleciona o campo da matriz que você quer pegar o valor.

 

O código ficaria assim.

$velha = mysqli_query($con, "SELECT senha FROM registro WHERE id=$id") or print mysqli_error();
$velha = mysqli_fetch_assoc($velha);
$velha = $velha['senha'];

 

 

 

  • Obrigado 1

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!