Fórum Galera deu um erro na inserção #552317
25/04/2016
0
<form id="form1" name="form1" method="post" action="cadastro.php">
<p>Nome: <input name="email" type="text" id="nome" /></p>
<p>Email: <input name="email" type="text" id="email" /></p>
<p>Senha: <input type="text" name="senha" /></p>
<input type="submit" name="post_back" id="button" value="Cadastrar" />
</form>
<?php
session_start();
require("config.php");
if(isset($_REQUEST["post_back"])){
if(empty($_POST&["nome"]) || empty($_POST&["email"]) || empty($_POST&["senha"])){
echo "<script>alert('Preencha todos os campos antes de enviar seu cadastro!');</script>";
}else{
$tb = $conn->prepare("insert* into usuario(nm_usuario, email_usuario, senha_usuario) values(:nome, :email, :senha)");
$tb->bindParam(":nome", $_POST["nm_usuario"], PDO::PARAM_STR);
$tb->bindParam(":email", $_POST["email_usuario"], PDO::PARAM_STR);
$tb->bindParam(":senha", $_POST["senha_usuario"], PDO::PARAM_STR);
$tb->execute();
$tb = null;
echo "<script>alert('Cadastro efetuado com sucesso!\\nFaça seu login agora');document.location='index.php';</script>";
}
}
?>
Hiago Orneles
Curtir tópico
+ 1Posts
25/04/2016
Fabio Basso
ERRADO: insert* into usuario(nm_ usuario...
CERTO: insert into usuario(nm_usuario...
Gostei + 0
25/04/2016
Hiago Orneles
Gostei + 0
25/04/2016
Jothaz
Mas tem de tirar o *, senão não funciona.
Gostei + 0
25/04/2016
Hiago Orneles
Gostei + 0
25/04/2016
Jothaz
error_reporting(0);
Gostei + 0
25/04/2016
William
$retorno = $tb->execute();
if($retorno):
//sucesso
else:
//falha
endif;
Outra dúvida, é esse o nome do campo mesmo "nm_usuario" ?
Gostei + 0
25/04/2016
Hiago Orneles
error_reporting(0);
Gostei + 0
25/04/2016
Hiago Orneles
$retorno = $tb->execute();
if($retorno):
//sucesso
else:
//falha
endif;
Outra dúvida, é esse o nome do campo mesmo "nm_usuario" ?
Tiro akele null que tá no meu atual código, vc ta perguntado se existe o nm_usuario como o nome de uma coluna no banco de dados ?
Gostei + 0
25/04/2016
William
Tiro akele null que tá no meu atual código, vc ta perguntado se existe o nm_usuario como o nome de uma coluna no banco de dados ?
Sim e Sim
Gostei + 0
25/04/2016
Hiago Orneles
<?php
session_start();
require("config.php");
error_reporting(0);
if(isset($_REQUEST["post_back"])){
if(empty($_POST&["nome"]) || empty($_POST&["email"]) || empty($_POST&["senha"])){
echo "<script>alert('Preencha todos os campos antes de enviar seu cadastro!');</script>";
}else{
$tb = $conn->prepare("insert into usuario(nm_usuario, email_usuario, senha_usuario) values(:nome, :email, :senha)");
$tb->bindParam(":nome", $_POST["nm_usuario"], PDO::PARAM_STR);
$tb->bindParam(":email", $_POST["email_usuario"], PDO::PARAM_STR);
$tb->bindParam(":senha", $_POST["senha_usuario"], PDO::PARAM_STR);
$tb->execute();
$tb = null;
$retorno = $tb->execute();
if($retorno):
echo "<script>alert('Cadastro efetuado com sucesso!\\nFaça seu login agora');document.location='index.php';</script>";
else:
//falha
endif;
}
}
?>
<form id="form1" name="form1" method="post" action="cadastro.php">
<p>Nome: <input name="email" type="text" id="nome" /></p>
<p>Email: <input name="email" type="text" id="email" /></p>
<p>Senha: <input type="text" name="senha" /></p>
<input type="submit" name="post_back" id="button" value="Cadastrar" />
</form>
Gostei + 0
25/04/2016
William
É necessário apenas um "execute()".
$tb = $conn->prepare("insert into usuario(nm_usuario, email_usuario, senha_usuario) values(:nome, :email, :senha)");
$tb->bindParam(":nome", $_POST["nm_usuario"], PDO::PARAM_STR);
$tb->bindParam(":email", $_POST["email_usuario"], PDO::PARAM_STR);
$tb->bindParam(":senha", $_POST["senha_usuario"], PDO::PARAM_STR);
$tb->execute();
$tb = null;
$retorno = $tb->execute();
Gostei + 0
25/04/2016
Hiago Orneles
Gostei + 0
26/04/2016
William
1) Porque você está usando o sinal de valor por referência "&" nas variáveis "$_POST&["senha"]"?
if(empty($_POST&["nome"]) || empty($_POST&["email"]) || empty($_POST&["senha"])){
2) No seu form não tem nenhum campo com name "nome", porém tem 2 campos com name "email"?
<form id="form1" name="form1" method="post" action="cadastro.php"> <p>Nome: <input name="email" type="text" id="nome" /></p> <p>Email: <input name="email" type="text" id="email" /></p> <p>Senha: <input type="text" name="senha" /></p> <input type="submit" name="post_back" id="button" value="Cadastrar" /> </form>
3) Você está tentando inserir a partir de names errados no bindValue?
$tb->bindParam(":nome", $_POST["nm_usuario"], PDO::PARAM_STR); // Correto mas não existe $_POST["nome"]
$tb->bindParam(":email", $_POST["email_usuario"], PDO::PARAM_STR); // Correto $_POST["email"]
$tb->bindParam(":senha", $_POST["senha_usuario"], PDO::PARAM_STR); //Correto $_POST["senha"]
Gostei + 0
26/04/2016
Hiago Orneles
Gostei + 0
26/04/2016
Hiago Orneles
<?php
session_start();
require("config.php");
error_reporting(0);
?>
<form id="form1" name="form1" method="post" action="cadastro.php">
<p>Nome: <input name="nome" type="text" id="nome" /></p>
<p>Email: <input name="email" type="text" id="email" /></p>
<p>Senha: <input type="text" name="senha" /></p>
<input type="submit" name="post_back" id="button" value="Cadastrar" />
</form>
<?php
if(isset($_REQUEST["post_back"])){
if(empty($_POST["nome"]) || empty($_POST["email"]) || empty($_POST["senha"])){
echo "<script>alert('Preencha todos os campos antes de enviar seu cadastro!');</script>";
}else{
$tb = $conn->prepare("insert into usuario(nm_usuario, email_usuario, senha_usuario) values(:nome, :email, :senha)");
$tb->bindParam(":nome", $_POST["nm_usuario"], PDO::PARAM_STR);
$tb->bindParam(":email", $_POST["email_usuario"], PDO::PARAM_STR);
$tb->bindParam(":senha", $_POST["senha_usuario"], PDO::PARAM_STR);
$tb->execute();
$tb = null;
$retorno = $tb->execute();
echo "<script>alert('Cadastro efetuado com sucesso!\\nFaça seu login agora');document.location='index.php';</script>";
}
}
?>
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)