Ir para conteúdo
Fórum Script Brasil
  • 0

Alterar senha em uma tela de login


Müller Pinto

Pergunta

bom dia, pessoa.. estou iniciando no php e estou criando uma tela de login, mas na parte de alterar a senha, não estou conseguindo concluir o processo.. ele apresenta a seguinte mensagem.. vou colocar o código da parte que estou passando os parâmetros e o código da função.. Desde já agradeço atenção de todos

Mensagem Erro: Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\xampp\htdocs\ProjetoLogin\classes\usuarios.php on line 75

Codigo:

if(isset($_POST['senha']))
    {
        
        $email = addslashes($_POST['email']);
        $senha = addslashes($_POST['senha']);
        $confsenha = addslashes($_POST['confsenha']);
        
            if(!empty($email) && !empty($senha) && !empty($confsenha))
            {
                $u->conectar("projetologin","127.0.0.1","root",""); 
                if($u-> msgErro == "")
                {
                    if($senha == $confsenha)
                    {
                        if($u->alterar($email, $senha))
                        {
                            ?> 
                            <div id="msg-sucesso">
                                Alterado com sucesso! Acesse para entrar!                                
                            </div> 
                            <?php                            
                        }else{
                            ?>
                            <div class="msg-erro">
                                Usuário não cadastrado!
                            </div>
                            <?php
                            
                        }
                    }else{
                        ?>
                        <div class="msg-erro">
                            Senha e Confirmar Senha não correspondem!
                        </div>
                        <?php                        
                    }                
                }else{
                    ?>
                    <div class="msg-erro">
                        <?php echo "Erro: ".$u->msgErro; ?> 
                    </div>
                    <?php                    
                }
            }
            else
            {
            ?>
            <div class="msg-erro">
                Preencha todos os campos!
            </div>
            <?php            
            }

Função Alterar

    public function alterar($email,$senha){
        global $pdo;
        
        $sql = $pdo->prepare("SELECT IdUsuario FROM Usuarios WHERE Email = :e"); 
        $sql->bindValue(":e", $email); 
        $sql->execute(); //executar comando
        if($sql-> rowCount() <= 0)
        { 
            return false; // não existe cadastrada
        }else{        

            $sql = $pdo->prepare("UPDATE Usuarios set Senha = s: where Email = :e");
            $sql-> bindValue(":s", md5($senha));
            $sql-> bindValue(":e", $email);            
            $sql-> execute();         
            
            return true;    
        }
    }

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

se não me engano, esta faltando a conexão com o MySQL,

tenta fazer isso e ve se resolve

 

 

   public function alterar($email,$senha){
 
    try {
          $hostname = "127.0.0.1";
          #$port = 10060;
          $dbname = "projetologin";
          $username = "xxxx";
          $pw = "123456";
          $dbh = new PDO ("dblib:host=$hostname;dbname=$dbname","$username","$pw");
        } catch (PDOException $e) {
          echo "Failed to get DB handle: " . $e->getMessage() . "\n";
          exit;
        }
             
$sql->bindValue(":e", $email);           
$sql = $pdo->prepare("SELECT IdUsuario FROM Usuarios WHERE Email = :e"); 
          
          $sql->execute(); //executar comando
          if($sql-> rowCount() <= 0)
          { 
              return false// não existe cadastrada
          }else{        
  
              $sql-> bindValue(":s", md5($senha));
              $sql-> bindValue(":e", $email);         
              $sql = $pdo->prepare("UPDATE Usuarios set Senha = s: where Email = :e");   
              $sql-> execute();         
              
              return true;    
          }
      }
 
apos isso você conseguira executar os selects updates e tal
Editado por AlexandreNSilva
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...