Undefined index php post error

Asked

Viewed 27 times

-2

<form method="POST">
        <input type="text" placeholder="Nome completo" name="nome" maxlength="30">
        <input type="text" placeholder="Telefone" name="telefone" maxlength="30">
        <input type="email" placeholder="E-mail" name="email"maxlength="40">
        <input type="password" placeholder="Senha" name="senha" maxlength="15">
        <input type="password" placeholder="ConfirmarSenha" name="confSenha">
        <input type="submit" value="Cadastrar" name="">
    </form>
    </div>  <!-- fecha a div para pode centralizar o formulario-->
<?php // Abre a tag PHP
// verificar se clicou no botão
   if(isset($_POST['nome']));
{

    $nome = addslashes($_POST['nome']);
    $telefone = addslashes($_POST['telefone']);
    $email = addslashes($_POST['email']);
    $senha = addslashes($_POST['senha']);
    $confimarSenha = addslashes($_POST['confSenha']);


    //verificar se esta preenchido
    if(!empty($nome) && !empty($telefone) && !empty($email) && !empty($senha) && !empty($confSenha))
    {$u->conectar("projeto_login","localhost","root","");
        if($U->msgErro == "") // tudo certo
        {if($senha == $confirmarSenha )
            {if($u->cadastrar($nome,$telefone,$email,$senha))
                {echo "Cadrastrado com sucesso"; } 
                else{echo "Email já contem uma conta";}
            }
                else {echo "Senhas não correspondem!";}
        }
                else {echo "Erro: ".$U->msgErro;}
    }
                else {echo "Prencha todos os campos!";}
}

1 answer

0

The problem is that you are trying to look for an index that does not exist in the POST. This generates an error of undefined index. To avoid this, perform a check before assigning variables using the function array_key_exists and the ternary operator:

$nome = array_key_exists("nome", $_POST) ? addslashes($_POST['nome']) : null;
$telefone = array_key_exists("telefone", $_POST) ? addslashes($_POST['telefone']) : null;
$email = array_key_exists("email", $_POST) ? addslashes($_POST['email']) : null;
$senha = array_key_exists("senha", $_POST) ? addslashes($_POST['senha']) : null;
$confimarSenha = array_key_exists("confSenha", $_POST) ? addslashes($_POST['confSenha']) : null;

Browser other questions tagged

You are not signed in. Login or sign up in order to post.