Ir para conteúdo
Fórum Script Brasil
  • 0

Duas condições


Vanda

Pergunta

Bom dia,

A questão é a seguinte: tenho um formulário onde escrevo 1 número e o resultado é ir acrescentando + 1 até ao valor que foi posto no formulário; se escrever texto dá mensagem que não é válido (ou seja se não for numérico). Até aqui tudo bem. O meu problema é que quero acrescentar uma condição - se for número negativo - deve dar mensagem de erro também. 

Gostava da vossa ajuda para este código php que escrevi:

<?php

$limite=$_POST['numero'];

if (is_numeric($limite))

{

  for($i=1;$i<=$limite;$i++)

  {

     echo($i . "<br>");

 }

}

elseif

($limite <0){

  echo "não é válido porque é nº negativo";

}

else{

echo"não é válido porque é texto";

}

?>

Quando executo e se escrevo um nº negativo não me dá resultado nenhum. Mas se escrevo texto dá a mensagem certa. O que estou a fazer de errado?

Obrigada

Vanda

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Olá!

Segue sugestão de solução:

<?php

$limite = $_POST['numero'];

if (is_numeric($limite)) { // se o valor postado for numérico, entra neste if
    if ($limite > 0) { // aqui dentro, verificar se o número é maior que zero
        for ($i = 1; $i <= $limite; $i++) {
            echo($i . "<br>");
        }
    } else { // se não for maior que zero:
        echo '<p>Não é válido porque é zero ou negativo</p>';
    }
} else { // se não for numérico
    echo '<p>Não é válido porque não é numérico</p>';
}

 

Link para o comentário
Compartilhar em outros sites

  • 0
21 horas atrás, lowys disse:

Olá!

Segue sugestão de solução:


<?php

$limite = $_POST['numero'];

if (is_numeric($limite)) { // se o valor postado for numérico, entra neste if
    if ($limite > 0) { // aqui dentro, verificar se o número é maior que zero
        for ($i = 1; $i <= $limite; $i++) {
            echo($i . "<br>");
        }
    } else { // se não for maior que zero:
        echo '<p>Não é válido porque é zero ou negativo</p>';
    }
} else { // se não for numérico
    echo '<p>Não é válido porque não é numérico</p>';
}

 

Obrigada Lowys! A questão está resolvida.

15 minutos atrás, Beraldo disse:

Se você quer garantir que o dado é numérico, recomendo fazer um simples casting antes dos if's:


$limite = (int) $_POST['numero'];

Veja mais detalhes neste link

 

Obrigada Beraldo, a questão já está resolvida!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...