Você está na página 1de 4

Manipulando dados de formulrios com PHP Parte 1 Uma das dvidas mais freqentes entre programadores PHP iniciantes

s como manipular os dados de formulrio enviados para os scripts PHP, principalmente dados de checkbox e upload de arquivos. Nessa primeira parte desse artigo, estarei mostrando como receber e manipular dados de campos comuns de formulrios.

Uma das dvidas mais freqentes entre programadores PHP iniciantes como manipular os dados de formulrio enviados para os scripts PHP, principalmente dados de "checkbox" e upload de arquivos. Nessa primeira parte desse artigo, estarei mostrando como receber e manipular dados de campos comuns de formulrios. Na prxima semana estarei mostrando como manipular o upload de arquivos atravs dos formulrios. Para facilitar, esta primeira parte est divida nos seguintes tpicos: 1 - Introduo 2 - Campos Hidden 3 - Campos Text e Textarea 4 - Campos Radio 5 - Campos Checkbox 6 - Campos Select 1 - Introduo Um formulrio HTML apenas um "rosto bonito" para onde os usurios podero inserir informaes que sero interpretados de alguma maneira por algum script do lado do servidor. E no nosso caso, esse script um script PHP. Primeiro: antes para poder enviar as informaes, seu formulrio deve conter um boto "submit", isso se consegue atravs do comando: <input type=submit value="Texto do Boto"> Segundo: todos os campos que sero tratados no script PHP devem conter o parmetro "NAME", caso contrrio, os dados no sero passados para o script PHP. Ex: <input type=text name=nome_do_campo> Como as informaes do formulrio so passadas para esse script PHP e como as informaes do formulrio enviado so tratadas, dependem de voc. Existem 2 mtodos como as informaes podem ser passadas: GET e POST. O recomendvel sempre, para todos os formulrios usar o mtodo POST, onde os dados enviados no so visveis nas URLs, ocultando possveis importantes informaes e permitindo o envio de longas informaes. O GET totalmente o contrrio disso. Como as informaes chegam para o script PHP? Assuma o seguinte formulrio: <form action="script.php" method="post"> Campo 1: <input type=text name=campo1><br> Campo 2: <input type=text name=campo2><br> <input type=submit value="OK"> </form> Esse formulrio usa o mtodo POST para envio das informaes, ento em "script.php": <?php echo "O valor de CAMPO 1 : " . $_POST["campo1"]; echo "<br>O valor de CAMPO 2 : " . $_POST["campo2"]; ?> Se o formulrio tivesse sido enviado usando o mtodo GET, voc simplesmente usaria $_GET no lugar de $_POST. Observaes: Em vez de usar $_GET ou $_POST voc pode escrever a varivel com o mesmo nome do campo do formulrio (no exemplo, $campo1 e $campo2). Mas, esse uso no recomendado, pois se a diretiva "register_globals" na configurao do seu PHP estiver desativada, as variveis com nome dos campos dos formulrios, tero um valor vazio. Uma soluo para isso usar a funo import_request_variables no comeo dos seus scripts que interpretam formulrios. Essa funo aceita 3 letras como argumentos: P, G e C, referentes a $_POST, $_GET e $_COOKIE respectivamente. Exemplo de uso: <?php import_request_variables("gP"); ?> O que acontece? Exemplo: Voc possui formulrio com os campos "nome", "endereo" e "idade". Assuma que a diretiva "register_globals" do seu PHP esteja desligada, mas, voc j havia programado o script usando as variveis no escopo global, no lugar de $_POST.

Adicionando aquela funo no comeo do script, as variveis do seu formulrio postado: $_POST["nome"], $_POST["endereco"] e $_POST["idade"] sero extradas cada para uma varivel diferente: $nome, $endereco e $idade. 2 - Campos Hidden Os campos hidden so usados para passar informaes que no podem ser alteradas pelo usurio que estar inserindo informaes no formulrio. Por exemplo: voc tem um site com sistema de login e o usurio quer alterar as informaes de login dele. O script que ir manipular esse formulrio, precisa saber o ID do usurio para poder alterar as informaes no banco de dados, ento esse ID um campo hidden. Cdigos Exemplos: hidden.html <form action="hidden.php" method="post"> <input type=hidden name=escondido value="valor do escondido"> <input type=hidden name=id value="111"> <input type=submit> </form> hidden.php <?php echo "Campo Hidden: " . $_POST["escondido"]; echo "<br>Oi, seu ID : " . $_POST["id"]; ?> 3 - Campos Text e Textarea Os campos text e textarea so os tipos mais simples, onde h somente um possvel valor por campo. Dispensam maiores explicaes. Cdigos Exemplos: texts.html <form action="texts.php" method="post"> Nome: <input type=text name=nome><br> Email: <input type=text name=email><br><br> Mensagem: <textarea name=mensagem cols=8 rows=3></textarea><br> <input type=submit> </form> texts.php <?php echo "Ol " . $_POST["nome"] . " (email: " . $_POST["email"] . ")<br><br>"; echo "Sua mensagem: " . $_POST["mensagem"]; ?> 4 - Campos Radio Campos Radio permitem um relacionamento de um para muitos entre identificador e valor, ou seja, eles tm mltiplos possveis valores, mas somente um pode ser pr-exibido ou selecionado. Por exemplo: voc tem um sistema de "quiz". Cada pergunta possui 5 possveis respostas. Cada resposta um radio, onde os 5 radios dessa pergunta possuem o mesmo identificador, mas cada com valores diferentes. Cdigos Exemplos: radio.html <form action="radio.php" method="post"> <B>Qual seu sistema operacional?</B><br> <input type=radio name=sistema value="Windows 98"> Win 98 <input type=radio name=sistema value="Windows XP"> Win XP <input type=radio name=sistema value="Linux"> Linux <input type=radio name=sistema value="Mac"> Mac <br><br> <B>Qual a marca de seu monitor?</B><br> <input type=radio name=monitor value="Samsung"> Samsung <input type=radio name=monitor value="LG"> LG <input type=radio name=monitor value="Desconhecido"> Desconhecido <br><br> <input type=submit> </form> radio.php <?php echo "Seu sistema operacional : " . $_POST["sistema"]; echo "<br>Seu monitor : " . $_POST["monitor"]; ?> 5 - Campos Checkbox O tipo Checkbox tem somente um possvel valor por entrada: on value (marcado) ou no value (desmarcado). No script voc deve fazer a verificao para saber se o campo foi marcado ou no.

Se possvel tambm utilizar grupos de checkbox com o mesmo nome. Para voc deve adicionar "[]" no final do nome, para o PHP interpretar como array, veja o cdigo exemplo. Cdigos Exemplos: checkbox.html <form action="checkbox.php" method="post"> <B>Escolha os numeros de sua preferncia:</B><br> <input type=checkbox name="numeros[]" value=10> 10<br> <input type=checkbox name="numeros[]" value=100> 100<br> <input type=checkbox name="numeros[]" value=1000> 1000<br> <input type=checkbox name="numeros[]" value=10000> 10000<br> <input type=checkbox name="numeros[]" value=90> 90<br> <input type=checkbox name="numeros[]" value=50> 50<br> <input type=checkbox name="numeros[]" value=30> 30<br> <input type=checkbox name="numeros[]" value=15> 15<br><BR> <input type=checkbox name="news" value=1> <B>Receber Newsletter?</B><br><BR> <input type=submit> </form> checkbox.php <?php // Verifica se usurio escolheu algum nmero if(isset($_POST["numeros"])) { echo "Os nmeros de sua preferncia so:<BR>"; // Faz loop pelo array dos numeros foreach($_POST["numeros"] as $numero) { echo "- " . $numero . "<BR>"; } } else { echo "Voc no escolheu nmero preferido!<br>"; } // Verifica se usurio quer receber newsletter if(isset($_POST["news"])) { echo "Voc deseja receber as novidades por email!"; } else { echo "Voc no quer receber novidades por email..."; } ?> 6 - Campos Select Os campos select permitem tratar uma variedade de opes, onde o usurio pode selecionar apenas uma opo ou mltiplas opes. Quando voc permite mltiplas selees, deve adicionar "[]" no final do nome, para o PHP interpretar como array. Nos exemplos, mostro o funcionamento e tratamento de ambas. Cdigos Exemplos: select.html <form action="select.php" method="post"> <B>Qual seu processador?</B><br> <select name=processador> <option value=Pentium>Pentium</option> <option value=AMD>AMD</option> <option value=Celeron>Celeron</option> </select><BR><BR> <B>Livros que deseja comprar?</B><br> Obs: segure "CTRL" para selecionar mais de um.<BR> <select name="livros[]" multiple> <option value="Biblia do PHP 4">Biblia do PHP 4</option> <option value="PHP Professional">PHP Professional</option> <option value="Iniciando em PHP">Iniciando em PHP</option> <option value="Novidades do PHP 5">Novidades do PHP 5</option>

<option value="Biblia do MySQL">Biblia do MySQL</option> </select><BR><BR> <input type=submit> </form> select.php <?php echo "Seu processador : " . $_POST["processador"] . "<BR>"; // Verifica se usurio escolheu algum livro if(isset($_POST["livros"])) { echo "O(s) livro(s) que voc deseja comprar:<br>"; // Faz loop para os livros foreach($_POST["livros"] as $livro) { echo "- " . $livro . "<br>"; } } else { echo "Voc no escolheu nenhum livro!"; } ?> Clique aqui para baixar os cdigos desse artigo Quaisquer dvidas que tiver, no hesite em contatar-me! At a prxima semana, onde estarei mostrando como manipular o upload de arquivos de formulrios e algumas boas tcnicas para com formulrios => PHP.

Read more: http://www.linhadecodigo.com.br/artigo/220/manipulando-dados-de-formularios-com-php-parte1.aspx#ixzz2WXiaFOVp