• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Rui Carlos

Verificar se o valor de um formulário é inteiro

17 mensagens neste tópico

existe alguma função em php para verificar se um valor introduzido num formulário é um inteiro? já experimentei o 'is_numeric' mas esta também devolve TRUE se forem números décimais.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

is_int()

não serve porque o valor devolvido por um formulário é sempre uma string.

o 'is_numeric' permite ver se a string corresponde a um número, mas não obriga a que seja inteiro. precisava de uma função do género da 'is_numeric' mas que devolvesse TRUE para inteiros.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

is_int()

não serve porque o valor devolvido por um formulário é sempre uma string.

o 'is_numeric' permite ver se a string corresponde a um número, mas não obriga a que seja inteiro. precisava de uma função do género da 'is_numeric' mas que devolvesse TRUE para inteiros.

is_int($var+0);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pelo que eu saiba não existe nenhuma função que faça isso...  Queres que os numeros introduzidos no formulario sejam apenas inteiros ? se queres que os numeros introduzidos no formulario sejam inteiros podes transforma-los em inteiros... (int), float(), ceil(), floor();...

Se explicares para que serve o código talvez eu te arrenje outra solução...

Experimenta

if(ereg(',', $_POST['xpto'])) { echo "O numero não é inteiro"; }

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

@kingless

isso nao devolve se for inteiro, mas sim se nao tiver virgulas.

1025,00000 tem virgula, mas no entanto e um numero inteiro...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Que tal olharem para o meu post anterior! É assim tão dificil?

^[0-9]*$

e esse número 1025,0000 pode muito bem ser rejeitado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Que tal olharem para o meu post anterior! É assim tão dificil?

^[0-9]*$

e esse número 1025,0000 pode muito bem ser rejeitado.

penso que isso já resolve o problema...

não vou aceitar valores com vírgulas ou pontos (mas também isso acho que era fácil de fazer com exp. regulares).


is_int($var+0);

não experimentei isso, mas penso que também não ia funcionar, pois o php consegue somar strings com inteiros...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Que tal olharem para o meu post anterior! É assim tão dificil?

^[0-9]*$

e esse número 1025,0000 pode muito bem ser rejeitado.

Nós reparamos no teu post :D nao fiques chateado por termos tambem falado em Exp. regulares lool :D;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quanto à questão de o 1025,0000 ser rejeitado... nada mais fácil...

^[0-9]*,0*$

E depois aproveitar só até à virgula. Mas nem sei se será relevante para este caso...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas.

ctype_digit($var) deve resultar.

Não conhecia :D Acenta que nem uma luva para aqui :D
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ctype_alnum e ctype_alpha tambem são muito úteis... o primeiro só aceita sequências de numeros e letras, sem espaços nem simbolos (por exemplo 15g7a4sd) e o segundo apenas aceita letras (sem acentuação)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ctype_alnum e ctype_alpha tambem são muito úteis... o primeiro só aceita sequências de numeros e letras, sem espaços nem simbolos (por exemplo 15g7a4sd) e o segundo apenas aceita letras (sem acentuação)

ya, eu vi lá isso :D são bastante uteis.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Por acaso já conhecia esta função mas nem me passou pela cabeça neste caso :D Bastente útil :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Utilizo muito para validar dados provenientes de formulários, como medida de segurança "extra".

Por exemplo, num campo onde se introduz um nome, se criares uma variável de confirmação, por exemplo $nome_confirm em que lhe removes todas as letras acentuadas e espaços, só te devem sobrar letras. Depois disso fazes uma condicional em que usas o comando ctype_alpha($nome_confirm)

Desta forma toda e qualquer tentativa de introduzir um comando através de um campo de formulário resulta num erro... Acho que são comandos extremamente úteis em termos de segurança.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora