Jump to content
Fórum Script Brasil
  • 0

Não faz update no BD - PHP Mysqli


Edilson Santiago

Question

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

2 answers to this question

Recommended Posts

  • 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'";

Edited by lowys
Link to comment
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
      152.1k
    • Total Posts
      652k
×
×
  • Create New...