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

Não faz update no BD - PHP Mysqli


Edilson Santiago

Pergunta

Olá, amigos, estou tentando uma "redefinição de senha", onde a página gera uma nova senha, envia essa senha por e-mail e em seguida faz update no banco de dados.

Tá gerando a senha e enviando o email, mas não faz o update.

Alguém pode ajudar? Segue meu código:

<?php

require_once '../conecta.php';

if(isset($_POST[ok])){
$email = ($_POST['email']);

        $sql = "SELECT * FROM usuarios WHERE email='$email'";
        $result = mysqli_query($conn, $sql);
        $row = $result->fetch_assoc();
        $total = count($row);
      
            if($total == 0){
                echo '<script> alert ("Erro! E-mail não cadastrado.")</script>';
            }else{
                $novasenha = substr(sha1(time()), 0, 8);
                $nscriptografada = sha1(sha1($novasenha));
                $to      = $email;
                $subject = 'Nova Senha';
                $message = "A nova senha é: $novasenha";
                $headers = "MIME-Version: 1.1\r\n";
                $headers .= "Content-type: text/plain; charset=UTF-8\r\n";
                $headers .= "From: meuemail@dominio.com\r\n"; 
                $headers .= "Return-Path: meuemail@dominio.com\r\n";
                $envio = mail($to, $subject, $message, $headers);
                $sql = "UPDATE usuarios SET senha = $nscriptografada WHERE email = $email";
                    if ($conn->query($sql) === TRUE) {
                    echo  '<script> alert ("Sucesso")</script>';
                    } else {
                    echo '<script> alert ("Erro. ")</script>';
                    }
            }
}

         
?>
 
<html lang="pt-br">  
    <head>
        <meta charset="utf-8">
        <title>SGI - PAINEL DE CONTROLE - ALTERAR SENHA</title>
         <link type="text/css" rel="stylesheet" media="screen" href="estilos.css" />
         
         <script type="text/javascript" language="javascript">
            function valida_form(){
            if(document.getElementById("email").value == ""){
            alert('Por favor, digite o E-mail do usuário!');
            document.getElementById("email").focus();
            return false
            }
        }
</script>
     
    </head>
        <body>
        <div style="text-align:center"><h2><font color="#ffffff">ESQUECI MINHA SENHA...</h2></font><br><br></div>
                <div id="form">
                    <form method="POST" action="" onsubmit="return valida_form(this)">
                    <label>Informe seu e-mail:</label><input value="<?php echo $_POST[email]; ?>" type="email" id="email" name="email" placeholder="Seu E-mail" maxlength="520"><br>
                    <input type="submit" name="ok" value="SOLICITAR NOVA SENHA"><br>
            </form>

            </div>
        </body>

</html>

 

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 1
Em 29/07/2022 em 19:15, Edilson Santiago disse:
$sql = "UPDATE usuarios SET senha = $nscriptografada WHERE email = $email";

A senha é uma string.
Strings devem ficar entre aspas:
$sql = "UPDATE usuarios SET senha = '$nscriptografada' WHERE email = '$email'";

Editado por lowys
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
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...