Eu estou tendo dificuldades para concluir meu formulário de cadastro em php. Já revisei varias vezes e ele só não me confirma o cadastro para o banco de dados.e volta para pagina index,não me envia erros. E olhando no banco ele da como se não tivesse cadastrado nada.
AQUI É O FORMULÁRIO
E-mail:
<div class="input-with-icon-left" title="Should be at least 8 characters long" data-tippy-placement="bottom">
<label>senha: </label>
<input type="text" name="text" placeholder="sua senha"><br><br>
<div class="input-with-icon-left">
<label>senha: </label>
<input type="text" name="nome" placeholder="repita sua senha"><br><br>
<input type="submit" value="Cadastrar">
</form>
</body>
</html>
Olá, consegui fazer o seu código funcionar aqui utilizando o ambiente do xampp. Eu identifiquei alguns erros no seu código:
No processa.php você declarou a variavel com o nome de “vemail” e estava tentando utiliza-la como “email”. No código eu modifiquei e deixei ela como e-mail.
No formulário os input’s de senha não tinham names definidos, então defini eles como senha e senha2 e fiz essa modificação no processa.php pra que ele recebesse os valores de forma correta.
No processa.php você declarou a mesma variavel senha, recebendo dois valores distintos. Eu troquei a segunda para senha2.
No seu comando sql de insert você ta passando o valor do email para o campo de nome da tabela e o valor da senha para o campo e-mail. Eu modifiquei pra que o email e senha sejam passados no campo correto.
No processa.php você tenta utilizar a variavel conn definida em conexao.php mas não inclui esse arquivo. Eu coloquei o comando include para poder incluir esse arquivo.
No conexao.php você esta passando a senha duas vezes para o mysqli_connect. Eu modifiquei pra poder passar uma vez só.
Segue o código:
index.html (contendo o form)
` <!-- Form -->
<form method="POST" action="processa.php">
<div class="input-with-icon-left">
<label>E-mail: </label>
<input type="email" name="email" placeholder="seu email"><br><br>
<div class="input-with-icon-left" title="Should be at least 8 characters long" data-tippy-placement="bottom">
<label>senha: </label>
<input type="text" name="senha" placeholder="sua senha"><br><br>
<div class="input-with-icon-left">
<label>senha: </label>
<input type="text" name="senha2" placeholder="repita sua senha"><br><br>
<input type="submit" value="Cadastrar">
</form>`
processa.php
<?php
include('conexao.php');
$email = filter_input(INPUT_POST, 'email');
$senha = filter_input(INPUT_POST, 'senha');
$senha2 = filter_input(INPUT_POST, 'senha2');
echo "email: $email<br>";
echo "senha: $senha<br>";
echo "senha: $senha2<br>";
$result_usuario = "INSERT INTO usuarios (email, senha, created) VALUES ('$email', '$senha', NOW())";
$resultado_usuario = mysqli_query($conn, $result_usuario);
// Check connection
if (mysqli_connect_error()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit();
}
if ( false === $resultado_usuario ) {
printf("error: %s\n", mysqli_error($conn));
}
if(mysqli_insert_id($conn)){
$_SESSION['msg'] = "<p style='color:green;'>Usuário cadastrado com sucesso</p>";
header("Location: index-logged-out.html");
}else{
$_SESSION['msg'] = "<p style='color:red;'>Usuário não foi cadastrado com sucesso</p>";
header("Location: painel.html");
}
perceba que aqui o comando ta passando da variavel “email” para o campo “email” da tabela, da mesma forma que ta passando a variavel “senha” para o campo “senha” da tabela. Entende?