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

(Resolvido) Comparar Caracteres de Palavras


ReDNoS

Pergunta

Olá pessoal da Script Brasil!

Acho que minha dúvida possa até ser simples para vocês. Eu preciso comparar as letras de um <input> de meu formulário e se ficar constatado que há um caracter proíbido por min no input, então irá aparecer uma mensagem. Preciso de lago mais o menos assim:

Tenho meu input do formulário e preciso verificar letra pro letra desse input para ver se existe certos caracteres (A, B,C e ™)

Se meu input tiver alguma letra diferente de (A, B, C, ™) então mostra a mensagem echo"Título inválido". Caso meu input tenha apenas as letras (A, B, C ou ™), então mostra a mensagem echo"Título Válido".

PS: Não quero bloquear caracteres, quero fazer a comparação do input com letras existentes nele.

Desde já brigadão :rolleyes:

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

Use strstr... você cria um array com os caracteres que não podem existir, e ai testa esse array com o que foi enviado no form, se a função retornar true é porque encontrou algo, se retornar false é porque não encontrou nada (que é o que você quer).

Link para o comentário
Compartilhar em outros sites

  • 0

Eu fiz o seguinte:

<?php
$chars_blocks = array('a', 'B');
$email  = 'name@example.com';
$domain = strstr($email, $chars_blocks);

if ($domain == true){
echo $domain;
}else{
echo "Não encontramos";
}
?>

Mas a minha variável $chars_blocks não está funcionando, ela é reconhecida como "Array" ao em vez de "a ou B".

Como eu resolvo isso?

Link para o comentário
Compartilhar em outros sites

  • 0

Dá uma lida sobre arrays, você vai que arrays tem índices, logo se você der:

echo $chars_blocks, vai ser impresso "array", se você der

echo $chars_blocks['0'], vai ser impresso a

echo $chars_blocks['1'], vai ser impresso B

Você vai ter que jogar esse lanço dentro de um foreach pra ler todas as posições do array e ai a cada volta comparar com o strstr...

Link para o comentário
Compartilhar em outros sites

  • 0
Dá uma lida sobre arrays, você vai que arrays tem índices, logo se você der:

echo $chars_blocks, vai ser impresso "array", se você der

echo $chars_blocks['0'], vai ser impresso a

echo $chars_blocks['1'], vai ser impresso B

Você vai ter que jogar esse lanço dentro de um foreach pra ler todas as posições do array e ai a cada volta comparar com o strstr...

Ok, entendi, mas como eu procedo para fazer um foreach na minha variável $chars_blocks?

Link para o comentário
Compartilhar em outros sites

  • 0

Vlw cara, agora to quase. Mas ainda sim tem um probleminha.

Meu código agora está assim:

<?php
$chars_blocks = array('a', 'B');

foreach ($chars_blocks AS $chars_blocks => $chars_blocks2){

$email  = 'Testando';
$domain = strstr($email, $chars_blocks2);

if ($domain == true){
echo "Encontramos";
}else{
echo "Não encontramos";
}

}
?>

Só que ele mostra Se encontrou e se não encontrou as palavras.

No caso, ele procura as letras "a, B" da palavra "Testando". Então me retorna: "a Encontramos B Não Encontramos".

Eu preciso que ele me mostre apenas uma vez quando não encontra. Se a minha varíavel $email não conter nem "a nem B", então ele me mostra "a Não Encontramos B Não Encontramos", e eu preciso que ele me mostre apenas uma vez isso e não repita isso =/.

Link para o comentário
Compartilhar em outros sites

  • 0

É só mudar a lógica...

<?php
$chars_blocks = array('a', 'B');

foreach ($chars_blocks AS $chars_blocks => $chars_blocks2){

$email  = 'Testando';
$domain = strstr($email, $chars_blocks2);

if ($domain){
$erro = 1;
}
}

if($erro){
    echo 'caractere inválido achado';
}else{
    echo 'tudo ok';
}
?>

Link para o comentário
Compartilhar em outros sites

  • 0

Putz, surgiu outro problema, é que a varíavel $chars_blocks é aonde deverão estar os caractéres que PODEM ser usados!!!

Então agora a ógica fica diferente, tentei fazer $chars_blocks <> ('a', 'B'); e $chars_blocks != ('a', 'B'); mas n deu certo.

ESerra, você sabe como fazer isso?

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,2k
    • Posts
      652k
×
×
  • Criar Novo...