Jump to content
malainhocf

validação de campos de texto em PHP

Recommended Posts

malainhocf

Olá a todos, boa tarde,

Eu fiz uma validação de campos de texto de formulários mas a validação não ficou 100%

Fiz assim:

    // Não deixa o campo nome ficar vazio
    if ($nome=="") {
        $msg="O nome tem que ser preenchido";
        header("Location: index.php?msg=$msg");
    }

E se o utilizador deixar o campo nome em branco tudo ok

Mas se ele colocar um ou mais espaço ai a validação já não funciona

Como resolvo isso ?

Obrigado

Share this post


Link to post
Share on other sites
brunoais

Acho que assim serve

    // Não deixa o campo nome ficar vazio
    if (trim($nome)) === '') {
        $msg="O nome tem que ser preenchido";
        header("Location: index.php?msg=$msg");
    }


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
malainhocf

Pensei que a trim() ia funcionar

Mas não, não resolveu o meu problema

O sistema deixa-me continuar a preencher campos com espaços vazios

Como resolver isso ?

Share this post


Link to post
Share on other sites
malainhocf

Eu quero validar por exemplo o campo nome

Em que quer seja vazio quer contenha só espaços em branco não pode deixar passar

Vou experimentar a função empty()

Share this post


Link to post
Share on other sites
Rechousa

Desculpa, o trim() funciona, acabei de testar, deves estar a fazer qualquer coisa mal.

Tens aqui um exemplo:

<?
$nome = "   ";

// if(empty($nome)) -> Não funciona
if(trim($nome) == "")
    echo "preencha o nome";
else
    echo ">$nome<";
?>


Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Share this post


Link to post
Share on other sites
malainhocf

Olhem que estranho

Quando coloquei um exit; funcionou

Vejo o meu código

$x="cesar";

    if (Trim($x) =="") {

        $msg="O nome tem que ser preenchido";

        header("Location: zzz.php"); exit;

    }

Vejam o exit; depois do header()

Como se esplica isso ?

Share this post


Link to post
Share on other sites
mjamado

Vejam o exit; depois do header()

Como se esplica isso ?

Não é estranho, é suposto: a instrução header não cessa a execução do script, apenas envia o header. No caso em concreto da directiva Location, a única maneira dela ser posta a efeito, é parando a execução, via exit ou die.


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites
mjamado

Então, sempre que eu fizer um header() tenho que fazer também um exit;

Certo ?

Não. Só tens que fazer um exit (ou um die) quando queres que a execução do script pare. Nem sempre isso interessa. Por exemplo, quando envias um header de content-disposition, não podes parar a execução: tens de enviar o conteúdo.


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites
malainhocf

Então, para que fique claro para mim e quem sabe para mais alguém

Quando faço um header() de redireccionamento para outra pagina então devo usar um exit;

Certo ?

Share this post


Link to post
Share on other sites
mjamado

Então, para que fique claro para mim e quem sabe para mais alguém

Quando faço um header() de redireccionamento para outra pagina então devo usar um exit;

Certo ?

Duma forma genérica, é isso.


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites
malainhocf

Ok, mais uma coisa para o meu conhecimento sobre PHP

Não sabia que isso era necessário porque em ColdFusion isso não é necessário

Depois de fazer um cflocation nada mais era executado

Mas ok, cada maluco com as suas manias hehehehe

Se a PHP assim quer, assim será.

Share this post


Link to post
Share on other sites
mjamado

Não sabia que isso era necessário porque em ColdFusion isso não é necessário

Depois de fazer um cflocation nada mais era executado

Mas não tem rigorosamente nada a ver: essa instrução do CF é mesmo para fazer location redirects, enquanto o header do PHP é muito mais do que isso, para outros efeitos.


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites
malainhocf

Não existe em PHP uma maneira de fazer redireccionamento sem usar header() ?

Algo parecido com o que existe em ColdFusion

Share this post


Link to post
Share on other sites
mjamado

Não existe em PHP uma maneira de fazer redireccionamento sem usar header() ?

Algo parecido com o que existe em ColdFusion

Eventualmente, alguma extensão poderá ter isso; mas é um contra-senso: um redirect é um header da resposta e, como tal, deve ser lançado via header().

O ColdFusion é que complica o que é simples.


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.