RESOLVIDO Conexão de formulário php. com banco de dados
15 respostas
htmlphp
cpontes
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:
<divclass="input-with-icon-left"title="Should be at least 8 characters long"data-tippy-placement="bottom"><label>senha:</label><inputtype="text"name="text"placeholder="sua senha"><br><br><divclass="input-with-icon-left"><label>senha:</label><inputtype="text"name="nome"placeholder="repita sua senha"><br><br><inputtype="submit"value="Cadastrar"></form></body></html>
PROCESSA:
<?php$vemail=filter_input(INPUT_POST,'email');$senha=filter_input(INPUT_POST,'senha');$senha=filter_input(INPUT_POST,'senha');//echo "email: .$email.<br>";//echo "senha: .$senha.<br>";//echo "senha: .$senha.<br>";$result_usuario="INSERT INTO usuarios (nome, email, created) VALUES ('$email', '$senha', NOW())";$resultado_usuario=mysqli_query($conn,$result_usuario);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");}
<divclass="login-register-page"><!-- Welcome Text --><divclass="welcome-text"><h3style="font-size: 26px;">Vamoscriarsuaconta!</h3><span>Alreadyhaveanaccount?<ahref="pages-login.html">LogIn!</a></span></div><!-- Account Type --><divclass="account-type"><div><inputtype="radio"name="account-type-radio"id="freelancer-radio"class="account-type-radio"checked/><labelfor="freelancer-radio"class="ripple-effect-dark"><iclass="icon-material-outline-account-circle"></i>Freelancer</label></div><div><inputtype="radio"name="account-type-radio"id="employer-radio"class="account-type-radio"/><labelfor="employer-radio"class="ripple-effect-dark"><iclass="icon-material-outline-business-center"></i>Employer</label></div></div><!-- Form --><formmethod="POST"action="processa.php"><divclass="input-with-icon-left"><label>E-mail:</label><inputtype="email"name="email"placeholder="seu email"><br><br><divclass="input-with-icon-left"title="Should be at least 8 characters long"data-tippy-placement="bottom"><label>senha:</label><inputtype="text"name="text"placeholder="sua senha"><br><br><divclass="input-with-icon-left"><label>senha:</label><inputtype="text"name="nome"placeholder="repita sua senha"><br><br><inputtype="submit"value="Cadastrar"></form></body></html><!-- Button --><buttonclass="button full-width button-sliding-icon ripple-effect margin-top-10"type="submit"form="login-form">Cadastrar<iclass="icon-material-outline-arrow-right-alt"></i></button><!-- Social Login --><divclass="social-login-separator"><span>or</span></div><divclass="social-login-buttons"><buttonclass="facebook-login ripple-effect"><iclass="icon-brand-facebook-f"></i>RegisterviaFacebook</button><buttonclass="google-login ripple-effect"><iclass="icon-brand-google-plus-g"></i>RegisterviaGoogle+</button></div></div></div></div>
Já criei um segundo formulário ,mas é como se quando eu cadastrasse fosse, para index e não vai ao banco,esse cadastro.e não apresenta erro.
M
MatheusEdnei
Eu vou dar uma olhada e ver o que pode ser
cpontes
muito obrigada estou a horas tentando isso ,já vasculhei a internet toda.
M
MatheusEdnei
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 --><formmethod="POST"action="processa.php"><divclass="input-with-icon-left"><label>E-mail:</label><inputtype="email"name="email"placeholder="seu email"><br><br><divclass="input-with-icon-left"title="Should be at least 8 characters long"data-tippy-placement="bottom"><label>senha:</label><inputtype="text"name="senha"placeholder="sua senha"><br><br><divclass="input-with-icon-left"><label>senha:</label><inputtype="text"name="senha2"placeholder="repita sua senha"><br><br><inputtype="submit"value="Cadastrar"></form>`
processa.php
<?phpinclude('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 connectionif(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");}
conexao.php
<?php$servidor="localhost";$usuario="root";$senha="";$dbname="dados2";//Criar a conexao$conn=mysqli_connect($servidor,$usuario,$senha,$dbname);
cpontes
Caramba Matheus tuu é foda, deu super certo,muito obrigada pela ajuda,eu olhei todos os tópicos que me passou,para ver meus erros.
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?
M
MatheusEdnei
Estranho, esse erro não deu aqui. Você modificou mais algo?
cpontes
não mudei nada. veja esse é meu arquivo processa.php (943,Bytes)
vi esse post e alguem fala que existe um espaço mas ja olhei e não vi esse erro nessa linha