Jump to content
Fórum Script Brasil
  • 0

Duas condições


Vanda
 Share

Question

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 to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.1k
×
×
  • Create New...