Jump to content
Fórum Script Brasil
  • 0

Alterar senha em uma tela de login


Question

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 to post
Share on other sites

1 answer to this question

Recommended Posts

  • 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
Edited by AlexandreNSilva
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148681
    • Total Posts
      644509
×
×
  • Create New...