Redirecionamento indesejado PHP

14/10/2023

0

Estou começando a aprender PHP, montei um formulario simples de login e cadastro, porem toda vez que clico em registrar ou login sou redirecionado para o meu arquivo PHP. e as informações também não estão sendo adicionadas ao meu banco de dados em MySQL




$conn = new mysqli($servername, $username, $password, $dbname);


if ($conn->connect_error) {
die("Conexão falhou: " . $conn->connect_error);
}


if ($_SERVER["REQUEST_METHOD"] == "POST") {
var_dump($_POST);

if (isset($_POST['action'])) {
if ($_POST['action'] === 'register') {
$nome = $_POST['nome'];
$email = $_POST['email'];
$senha = password_hash($_POST['senha'], PASSWORD_DEFAULT);

$sql = "INSERT INTO usuarios (nome, email, senha) VALUES ('$nome', '$email', '$senha')";

if ($conn->query($sql) === TRUE) {
echo "Registro realizado com sucesso";
} else {
echo "Erro: " . $sql . "<br>" . $conn->error;
}
} elseif ($_POST['action'] === 'login') {
$email = $_POST['email'];
$senha = $_POST['senha'];

$sql = "SELECT * FROM usuarios WHERE email='$email'";
$result = $conn->query($sql);

if ($result && $result->num_rows == 1) {
$row = $result->fetch_assoc();
if (password_verify($senha, $row['senha'])) {

header('Location: index.html');
exit;
} else {
echo "Email ou senha incorretos";
}
} else {
echo "Email ou senha incorretos";
}
}
}
}

$conn->close();
?>

O formulário em html:

<!DOCTYPE html>
<html>
<head>
<title>Formulário de Registro e Login</title>
</head>
<body>
<h2>Registro</h2>
<form action="login.php" method="post">
<input type="hidden" name="action" value="register">
<label for="nome">Nome:</label><br>
<input type="text" id="nome" name="nome" required><br><br>
<label for="email">Email:</label><br>
<input type="email" id="email" name="email" required><br><br>
<label for="senha">Senha:</label><br>
<input type="password" id="senha" name="senha" required><br><br>
<input type="submit" value="Registrar" name="register">
</form>

<h2>Login</h2>
<form action="login.php" method="post">
<input type="hidden" name="action" value="login">
<label for="email">Email:</label><br>
<input type="email" id="email" name="email" required><br><br>
<label for="senha">Senha:</label><br>
<input type="password" id="senha" name="senha" required><br><br>
<input type="submit" value="Login" name="login">
</form>
</body>

</html>
João Donazan

João Donazan

Responder

Posts

16/10/2023

Fernando C

Olá. o código está OK. Verifique a conexão e se o campo do banco de dados que vai armazenar a senha "hasehada" é do tipo varchar com um mínimo d 60 caracteres, sem isso n rola. boa sorte.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar