Logo Hardware.com.br
abz1n
abz1n Novo Membro Registrado
1 Mensagem 0 Curtidas

Cadastrar usuario/nome/email/senha em sha256

#1 Por abz1n 21/03/2022 - 08:30
Olá eu tenho um cadastrar e na senha ela ta em md5, eu tava tentando alterar ela para sha256 e adicionar o sha no usuario, senha e email tam´bem, porem eu já alterei de diversas formas e n adiantou


algumas formas que tentei: $senha = mysqli_real_escape_string($conexao, trim('sha256'($_POST['senha'])));
$senha = mysqli_real_escape_string($conexao, trim(sha256($_POST['senha'])));
$senha = mysqli_real_escape_string('sha256', $conexao, trim($_POST['senha']));


Codigo:
<?php
session_start();
include("db_connect.php");

$nome = mysqli_real_escape_string($conexao, trim($_POST['nome']));
$usuario = mysqli_real_escape_string($conexao, trim($_POST['usuario']));
$email = mysqli_real_escape_string($conexao, trim($_POST['email']));
$senha = mysqli_real_escape_string($conexao, trim(md5($_POST['senha'])));

$sql = "select count(*) as total from usuario where usuario = '$usuario'";
$result = mysqli_query($conexao, $sql);
$row = mysqli_fetch_assoc($result);

if($row['total'] == 1) {
$_SESSION['usuario_existe'] = true;
header('Location: ../cadastro.php');
exit;
}

$sql = "INSERT INTO usuario (nome, usuario, email, senha, dataCadastro, perfil, ativo) VALUES ('$nome', '$usuario', '$email', '$senha', NOW(), 'usuario', 'S')";

if($conexao->query($sql) === TRUE) {
$_SESSION['status_cadastro'] = true;
}

$conexao->close();

header('Location: ../index.php');
exit;
?>
esquiloesperto
esquiloesper... Cyber Highlander Moderador
7.1K Mensagens 2.2K Curtidas
#2 Por esquiloesper...
21/03/2022 - 10:41
A resposta é que depois de inserir faltou ali: $conexao->commit();

Mas profissionalmente pode melhorar muito... Para início, o código não verifica se a conexão sequer "existe" e está operacional: Em produção isso é uma falta grave.
Logo depois do include já deveria validar:
[php]if (mysqli_connect_errno()) {
header('Location: ../erroConnBD.php');
exit();
}[/php]




Dica matadora: Evite usar IF para certificar a persistência de dados. — Try-Catch é muito mais eficiente e eficaz, pois captura e permite o tratamento completo de erros.
Por exemplo:
[php]
$sql = "INSERT INTO usuario (nome, usuario, email, senha, dataCadastro, perfil, ativo) VALUES ('$nome', '$usuario', '$email', '$senha', NOW(), 'usuario', 'S')";
try {
$conexao->beginTransaction();
$conexao->query($sql)

// chegando aqui significa que a query funciona e pode ser persistida (commit)
$conexao->commit();

} catch (Exception $e) {
// êpaa... deu erro; melhor desfazer:
$conexao->rollback();

// e, se preferir, você pode exibir/ver (nalguma página) a descrição do erro presente em "$e"
}[/php]


Se desejar entender melhor a base do processo, <leia aqui>
wink.png Bom proveito.
Só é difícil enquanto estiver oculto! cool.png
Use a pesquisa


rolleyes.png  Navegar é preciso, viver... também.  smile.png
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal