Edição de Setembro... revistamensal de programação Open Source Apresentação Quem somos Submeter Pesquisar Serviços Contactos Artigo 4 / 58 Selecione o artigo pretendido Validação formulários com PHP Artigos : - Design Patterns - Cross Site Request - Optimização de código - Web Services Parceiros : - Yahoo - DRI - Adianti - PHPClasses Tags : validação PHP, validar formulários, php validation, forms validate, javascript alert, classe php validação Na maioria das validações tradicionais criadas apenas com PHP, ao processar-se os dados, é muito comum que a informação seja validada numa página diferente daquela onde indicamos os dados via formulário.neste artigo iremos aprender como validar formulários sem mudar de página, obtendo o erro de forma automática em modo texto ou em modo janela javascript. A classe abaixo comporta uma validação simples, analisando se os campos estão ou não vazios. Dado isto podemos implementá-la posteriormente para outros requesítos, como validação de email, palavras chave no texto... Pode ver o resultado da codificação aquí <?php class validacao var $aviso; var $erro; var $campo; function validacao($campos,$mode=null) foreach ($campos as $this->campo => $valor) if(empty($valor)) $this->aviso = $this->msg(10,$mode); $this->erro =1; function msg($num,$mode='win') if($mode=='win') $msg[10] = "<script>alert('o campo ". $this->campo." está vazio!')</script>"; else $msg[10] = "O campo <font color='#ff0000'>". $this->campo."</font> está vazio!"; return $msg[$num]; function ObtemMsg() return $this->aviso; function ObtemErro() return $this->erro;?> <?php global $erro; if(isset($_post['enviar'])) $nome = $_POST['nome']; $email = $_POST['email']; $msg = $_POST['mensagem']; if(@$_post['opcao1']=='on') http://www.revista-php.net/artigos.php 1/5
$eval = new validacao(array( "nome" => $nome, "email" =>$email, "mensagem" => $msg)); else $eval = new validacao(array( "nome" => $nome, "email" =>$email, "mensagem" => $msg),'win'); $erro = $eval->obtemerro();?> <html> <head> <title>validacao com PHP</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <head> <script type="text/javascript"> <!-- function sf()document.f.nome.focus(); --> </script> <style type="text/css"> margin:0px; padding:0px; font: bold 11px "Verdana"; text-decoration:none; p,#decricao color: black; font-family:arial; font-size:10; font-weight:bold; inputborder:1px solid #CCCCCC; cursor:pointer; padding:1px; textareaborder:1px solid #CCCCCC; cursor:pointer; padding:1px; fieldset,#inclusao margin:0px auto; width:25%; #inclusao width :50%; </style> </head> <body> <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" name="f" > <fieldset class="inclusao"> <legend>pedido de informação</legend> <label for="firstname" accesskey="f">nome: </label> <input size="40" type="text" id="nome" name="nome" tabindex="1" value="<?php (!empty($_post['nome']))? (print $nome) : (print "" )?>" title="o seu nome"> <label for="email" class="required" accesskey="e">email: </label> <input size="40" type="text" id="email" name="email" tabindex="4" title="email" value="<?php (!empty($_post['email']))? (print $email) : (print "" )?>"> <label for="mensagem" class="required" accesskey="e">mensagem: </label> <textarea name="mensagem" class="required" cols="30" tabindex="8" accesskey="e" title="mensagem" id="mensagem" rows="4"><?php (!empty($_post['mensagem']))? (print $msg) : (print "" )?> </textarea> <input type="submit" name="enviar" value="enviar ::"> <input type="reset" name="limpar" value="limpar ::"> http://www.revista-php.net/artigos.php 2/5
<input type="checkbox" name="opcao1" />Modo Texto <input type="checkbox" name="opcao2" > Modo Janela </fieldset> </form> <?php ($erro==1)? ($msg = $eval->obtemmsg()) :($msg ="")?> <p align="center"><?php echo $msg;?> </p> </body> </html> Nome Email Comentário 6 + 0 = Enviar Limpar Não existem comentários para este artigo Links patrocinados DRI Consulting Onidesk TI Adianti PHPClasses Sponsors Estão online 2 utilizadores! 201.52.58.128 Artigos deste mês Distribuir aplicações PHP-GTK2 Yahoo User Interface Library no PHP Criar um sistema Web SEO optimizado Configurar e usar MS SQL SERVER com PHP http://www.revista-php.net/artigos.php 3/5
Segurança - formulários PHP optimizados CMS - instalação passo a passo Metereologia Artigos publicados online em breve Publicidade Promove-te A Revista PHP, está a receber propostas para edição em edições seguintes. Os teus artigos serão revistos por uma equipa profissional, e publicados de acordo com o grau de profissionalismo. A revista tem um ISSN associado, o que significa que os artigos aquí publicados serão de interesse ciêntifico, podendo ser utilizados em trabalhos de pesquisa tecnologica desde que citada a fonte! Entradas recentes Video aula >> Cria base de dados e tabelas com MySQL EconomiaEmpresas em alta ProjecçãoInterioridade vs competividade TecnologiaSegredos revelados Quem é... José Franco tem formação em Engª Informática, pelo Instituto Politécnico da Guarda.Tem publicados trabalhos na área do Open Source,entre os quais SQLite DB, que lhe mereçeu um Inovation Award, pelo PHPClasses.org. Vive numa pequena cidade do interior de Portugal, onde trabalha como programador na empresa Euromember Mapa de participantes http://www.revista-php.net/artigos.php 4/5
Redactores Copyright 2007 Revista PHP Onidesk by Guto Ferreira http://www.revista-php.net/artigos.php 5/5