Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal estou com uma situação complicada para mim iniciante e preciso da ajuda de vocês, bom no meu formulário tem uma TextBox que só será preenchida opcionalmente, nessa TextBox minha ideia é que se a pessoa não preencher ela então ela será salva automaticamente com uma opção pré estabelecida por mim.
Ex: Se TextBox for igual a nada, então TextBox salvara no meu banco de dados o nome "Vazio".
Eu usei o seguinte código:
if($indicacao == ''){
$indicacao = 'Sem indicação';
}
Mas não está salvando como 'Sem indicação' no banco de dados.>
43 minutos atrás, RpgCoffee disse:
Se for método POST o formulário você provavelmente está declarando a variavel errada, teria que usar variavel global:
$_POST['indicacao']
Pra ser mais objetivo, as IFs deve ser usadas assim pra método POST:
if($_SERVER['REQUEST_METHOD'] === 'POST'){
if(isset($_POST['indicacao'])){
//caso exista a variavel
if(!empty($_POST['indicacao'])){
//preenchida
}else{
$_POST['indicacao'] = 'Sem indicação';
}
}
}
No Html
<form method="post" action="enviador.php">
<textarea name="indicacao"></textarea>
Pra ser franco eu faria a verificação se a textarea está vazia por JAVASCRIPT e autocompleria com o termo sem indicação automaticamente.
Por questão
no meu caso estou tendo o seguinte:
<?php
// Se o botão de cadastrar for clicado
if(isset($_POST['cadastrar'])){
$usuario = $_POST['usuario'];
$senha = md5($_POST['senha']);
$senhar = md5($_POST['senhar']);
$email = $_POST['email'];
$emailr = $_POST['emailr'];
$indicacao = $_POST['indicacao'];
// Se o usuario for igual a nada, então "echo"
if($usuario == ''){
echo 'Insira um usuario.';
}
// Se a senha for igual a nada, então "echo"
else if($senha == ''){
echo 'Insira uma senha.';
}
// Se Repetir Senha for diferente de senha, então "echo"
else if($senhar != $senha){
echo 'Senha incorreta.';
}
// Se email for igual a nada, então "echo"
else if($email == ''){
echo 'Insira um e-mail.';
}
// Se Repetir Email for diferente de Email, então "echo"
else if($emailr != $email){
echo 'E-mail incorreto';
}
else if($indicacao == ''){
$sensei =='Sem indicacao'
}
// Se não
else{
// Verifica se o Name e Email já foi cadastrado
$verificaUsuario = "SELECT usuario FROM usuarios WHERE usuario='$usuario'";
$verificaEmail = "SELECT usuario FROM usuarios WHERE usuario='$email'";
$verificaUsuario_res = mysqli_query($conexao,$verificaUsuario) or die(mysqli_error($conexao));
$verificaEmail_res = mysqli_query($conexao,$verificaEmail) or die(mysqli_error($conexao));
// Verificar se foi encontrado algum Usuario
if(mysqli_num_rows($verificaUsuario_res) > 0){
echo 'Login já cadastrado';
}
// Verifica se foi encontrado algum email
else if(mysqli_num_rows($verificaEmail_res) > 0){
echo 'E-mail já cadastrado';
}
//Se não
else{
//Insere o usuário
$inserirUsuario = "INSERT INTO usuarios (usuario, senha, email, indicacao) VALUES ('$usuario', '$senha', '$email', '$indicacao')";
mysqli_query($conexao,$inserirUsuario);
// Verifica se o usuário foi inserido com sucesso
if($inserirUsuario){
header("Location: confirmacao.php");
}
//Se não
else{
echo 'Ocorreu um erro no cadastro.';
}
}
}
}
?>
E no html:
<form action="" method="post">
<input type="text" name="indicacao" id="indicacao" class="input" size="30" maxlength="20" />
</form>Não precisava duplicar minha resposta toda, eu fui o único a comentar... então acho que eu sei que a resposta é pra mim
Você esqueceu de por ponto e virgula depois da variavel $sensei
$sensei =='Sem indicacao'
O certo:
$sensei =='Sem indicacao';
As ELSEIF não devem ser separadas:
}else if(){
E sim juntas
}elseif(){Eu não sei programar em javascript esse é o problema kk :c
Mas essa é área de suporte, é justamente para ajudar.
MAs aconselho que aprenda a enteder programação básica, algoritimos, vai ajudar.
Eu também sou novo no fórum.
Eu comecei a testar o código agora, você trocou o NAME do formulário que deveria ser indicação por $sensei no validador PHP.
Eu corrigi o código e funcionou.
<form action="" method="post">
<input type="text" name="indicacao" id="sensei" class="input" size="30" maxlength="20" />
</form>Realmente está funcionando, agora percebi meu erro obrigado pela ajuda.
Meu erro foi ter declarado esse comando antes do meu "else" que é a onde é inserido para a tabela, eu resolvi com um simples "if" dentro do meu "else".
Assim:
// Se não
else{
if($indicacao == ''){
$indicacao = 'Não tem indicacao';
//Se não
else{
//Insere o usuário
$inserirUsuario = "INSERT INTO usuarios (usuario, senha, email, indicacao) VALUES ('$usuario', '$senha', '$email', '$indicacao')";
mysqli_query($conexao,$inserirUsuario);
// Verifica se o usuário foi inserido com sucesso
if($inserirUsuario){
header("Location: confirmacao.php");
}
//Se não
else{
echo 'Ocorreu um erro no cadastro.';
}
}
}
}
Se for método POST o formulário você provavelmente está declarando a variavel errada, teria que usar variavel global: