A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa

PHP rapidinho

Qui

20

Abr

2006


15:35

(155 votos, média 4.52 de 5) 


Com certeza você já se deparou com muitos formulários enquanto navegava na Internet: quando enviou um email usando serviços de webmail, fazendo algum tipo de cadastro, logando numa área reservada, etc. Um formulário, por si só, não tem muito sentido porque não faz absolutamente nada. Todo formulário precisa estar atrelado a um script que manipule os dados que ele venha a conter depois de preenchido pelo usuário. É aí que o PHP aparece, pois é um dos meios disponíveis.

O PHP lida com formulários de um modo muito flexível, facilitando a vida do programador. Veja um exemplo logo abaixo, onde criamos uma área de formulário com as tags <form ...> e </form> e atrelamos o formulário a um script PHP chamado "lidaForm.php":

<input type="text" name="PrimeiroElemento"> <input type="text" name="SegundoElemento"> <input type="submit" value="Enviar"> </form>

Formulários são escritos em HTML e o código HTML mostrado acima resulta no seguinte:


    
    
    

Este formulário contém duas áreas de texto, denominadas "PrimeiroElemento" e "SegundoElemento", além de um botão com o texto "Enviar". Como já foi dito acima, este formulário está atrelado a um script PHP chamado "lidaForm.php". Então vamos ao script:

info A variável $_POST, assim como a $_GET, foi introduzida no PHP a partir da versão 4.1.0, ou seja, se a sua versão de PHP for igual ou superior, para obter os valores dos campos do formulário, o script precisa ser modificado para

Crie o script de acordo com a sua versão do PHP e faça o upload ou salve o script como lidaForm.php no mesmo diretório onde se encontra o arquivo HTML que contém o formulário. Abra o HTML no navegador, digite alguns valores nas áreas de texto, clique no botão enviar e observe o resultado. E isso é tudo! Se quiser, utilize o formulário acima como teste. Uma nova página será aberta e, depois de observar o resultado, volte para o tutorial.

A esta altura do campeonato você já deve ter percebido que os nomes dos elementos do formulário se transformam em variáveis do script PHP e que os valores dos elementos do formulário são atribuídos a estas variáveis.

info CUIDADO: o PHP trata o nome das variáveis considerando maiúsculas e minúsculas. Isto significa que, por exemplo, "primeiroelemento" é considerado como nome de uma variável diferente de "PrimeiroElemento". Um erro muito comum de programação, que pode deixar qualquer um pirado, é a inobservância desta regra!

Checkbox

Observe o seguinte código HTML:

<input type="checkbox" name="PrimeiroCheckbox"> <input type="checkbox" name="SegundoCheckbox"> <input type="submit" value="Enviar"> </form>

Este código HTML gera o seguinte formulário:


    
    
    

Criamos um formulário com três elementos: dois checkboxes, "PrimeiroCheckbox" e "SegundoCheckbox", e um botão "Enviar". Agora queremos determinar qual dos dois checkboxes está ativado. Eis o script PHP se a versão for igual ou posterior à 4.1.0. Se a sua versão for anterior, pode deixar as duas primeiras linhas do script de fora:

\n"); } if($SegundoElemento) { echo("O segundo checkbox foi ativado!<br>\n"); } ?>

Áreas de Texto

Segue agora um exemplo que é um pouco mandrake e que costuma ser uma armadilha perigosa para os programadores desatentos. O código HTML é o seguinte:

<textarea cols="40" rows="5" name="areaDeTexto"> <input type="submit" value="Enviar">

o que resulta num formulário que contém uma área de texto com linhas múltiplas e um botão para enviar o texto digitado:

O script PHP para obter o valor da variável 'areaDeTexto' é muito simples:

só que o resultado é uma nhaca! A função echo() devolve o texto digitado numa ÚNICA linha! Bem, o problema é o seguinte: quando o texto é digitado na área de texto, o usuário faz quebras de linha digitando a tecla [Enter]. Acontece que o [Enter] insere um caracter de escape '\n' (lembra dos caracteres de escape?) e este caracter de escape NÃO formata o texto da página. Para forçar uma quebra de linha na tela é preciso usar a tag <br>. Como resolver este problema? Facinho, facinho...

A função nl2br() transforma caracteres de escape \n em tags <br>. Seu nome deriva de newline-to-br, ou seja, nova linha para br. Para aqueles que não têm a mínima noção de Inglês, '2' se escreve 'two' e se pronuncia 'tu'. 'Para' se escreve 'to' e também se pronuncia 'tu'. Portanto, nl2br é nl'tu'br :crazy:

Se assim o quiser, você pode observar o resultado dos dois métodos online usando o formulário acima. Depois volte para o tutorial. É claro que existe muito mais a respeito de formulários mas, o que foi visto aqui dá para o gasto. Agora está na hora de dar um trato nas matrizes.

Informações adicionais