Não faz update no BD - PHP Mysql

HTML

MySQL

PHP

01/08/2022

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>
Edilson Santiago

Edilson Santiago

Curtidas 0

Respostas

Leonardo Xavier

Leonardo Xavier

01/08/2022

Tente alterar o conteúdo de sua variável total para:

mysqli_num_rows($QuerySql);

$sql = "SELECT * FROM usuarios WHERE email='$email'";
$result = mysqli_query($conn, $sql);
$row = $result->fetch_assoc();
$total = count($row);

para:
$sql = "SELECT * FROM usuarios WHERE email='$email'";
$result = mysqli_query($conn, $sql);
$total = mysqli_num_rows($result);
//$row = $result->fetch_assoc();
//$total = count($row);
GOSTEI 0
POSTAR