PHP Índice indefinido com $_POST [Duplicado]
Em PHP, acessar um elemento de array não definido aciona um erro de tempo de execução, resultando no " Aviso de índice indefinido". Isso geralmente ocorre ao testar variáveis vazias em formulários, como scripts de login de usuário.
Seu código simplificado demonstra o problema:
$user = $_POST["username"];
if($user != null)
{
echo $user;
echo " is your username";
}
else
{
echo "no username supplied";
}
Embora o código funcione conforme esperado quando um nome de usuário está presente, ele falha com o erro "Índice indefinido: nome de usuário" quando nenhum é fornecido. Isso ocorre porque $_POST não possui uma chave "nome de usuário" quando nenhum dado é enviado.
Para resolver isso, use o operador isset() para verificar a existência de uma variável ou elemento do array antes de acessá-lo. Dessa forma, o erro é evitado antes de tentar recuperar o valor.
if (isset($_POST["username"]))
{
$user = $_POST["username"];
echo "$user is your username";
}
else
{
$user = null;
echo "no username supplied";
}
Neste código atualizado, isset() garante que a chave "nome de usuário" exista em $_POST antes de atribuir seu valor a $user. Isso elimina o erro de tempo de execução e permite que você lide corretamente com o caso de um nome de usuário vazio.
Vale a pena notar que os elementos ausentes da matriz são erros menores de tempo de execução (nível E_NOTICE). Ignorar avisos pode permitir que seu código seja executado conforme o esperado, mas é considerado uma prática inadequada, principalmente em ambientes de produção.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3