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

ricardocoimbra

Campo Nome não poder levar arroba!

20 mensagens neste tópico

Assim como existe campos que verificam se o campo email tem @ para validar eu queria que qualquer pessoa que coloca-se no campo "Nome" uma @ ele quando fosse a enviar aparece-se a disser campo invalido.

Alguem sabe como poderei fazer isso?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se essa for a única verificação que queres fazer ao nome é só fazer um for a percorrer o nome, a ver se encontras uma @.

Mas se quiseres mais verificações é melhor usares expressões regulares.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Shumy utilizei "stripos" por acaso nunca tinha utilizado... Para o meu caso serve perfeitamente!

GOOGLE php Regular Expression

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Shumy utilizei "stripos" por acaso nunca tinha utilizado... Para o meu caso serve perfeitamente!

GOOGLE php Regular Expression

ia agora recomendar-te a strstr() :thumbsup:
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Shumy utilizei "stripos" por acaso nunca tinha utilizado... Para o meu caso serve perfeitamente!

GOOGLE php Regular Expression

OK, a solução mais simples normalmente é a melhor.

Não te esqueças é que stripos é só PHP5.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Shumy utilizei "stripos" por acaso nunca tinha utilizado... Para o meu caso serve perfeitamente!

GOOGLE php Regular Expression

OK, a solução mais simples normalmente é a melhor.

Não te esqueças é que stripos é só PHP5.

ya, enquanto que a strstr é >=3
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que procuras são expressões regulares. ;)

Não se justifica o seu uso :)
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Claro que justifica. Ele só quer permitir os caracteres habituais no nome, penso que não quer verificar tudo à mão... se tem números, símbolos.. etc... ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Claro que justifica. Ele só quer permitir os caracteres habituais no nome, penso que não quer verificar tudo à mão... se tem números, símbolos.. etc... :)

Neste caso ele só quer verificar o @. Se ele fizer 320456046540564 de verificações usando regex vai perder uns qts segundos de performance. é coisa mínima mas influencia.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

<?php

function retirar_arrobas( $nome )
{
    return str_replace("@", "", $nome);
}

retirar_arrobas( "Joao Carlos @@ Martins@" ) // Joao Carlos Martins

?>

;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

<?php

function retirar_arrobas( $nome )
{
    return str_replace("@", "", $nome);
}

retirar_arrobas( "Joao Carlos @@ Martins@" ) // Joao Carlos Martins

?>

:)

E se o Joao Carlos Martins não souber que o nome não pode ter @ e quiser substitui-las por outro caracter qualquer? O nome vai ser guardado sem @ sem ele saber, o que não é propriamente normal

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olha faz com regex. Não te faz mal nenhum aprender. Mais situações dessas vão aparecer em código. Alias... código como deve de ser tem de sofrer verificações. E não queiras deixar entrar caracteres tipo # ' para as tuas querys de mySQL.

E regex até é eficiente. Se estas a verificar só um caracter ele perde praticamente o mesmo tempo do que outra função qualquer.

Segue sempre os passos:

1. Mete a funcionar.

2. Mete seguro.

3. Optimiza.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tanto alarido. É só procurar um '@' numa variável?

$pos = strpos($mystring, '@');
if ($pos === false) {
   echo "Nao tem arroba";
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tanto alarido. É só procurar um '@' numa variável?

$pos = strpos($mystring, '@');
if ($pos === false) {
  echo "Nao tem arroba";
}

OU isso.. Existem sempre soluções mais fáceis.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ou isto (só para chatear) :)

if(!ereg('\@', $string )) {
echo "Nao tem arroba";
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ou isto (só para chatear ainda mais) :)

if(ereg("\@",$string)) return;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok, acho que já estão todos chateados... :)

O que vejo é que quem colocou a pergunta já se desenrascou.

Pode é optimizar.  :biggrin:

Cumps,

Pedantilva

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