Pplware

ColdFusion – Aprender a programar

CFML – Parte 3 – Variáveis + Dump + Param + Operadores Lógicos

Olá pessoal, chegamos à 3ª parte sobre ColdFusion … nesta parte vamos trabalhar mais um pouco com variáveis, como nomeá-las correctamente, duas funções muito úteis (cfdump e cfparam), como enviar/receber as variáveis via FORM e URL.

1 – Nomenclatura de variáveis. Algo muito importante, mas que eu não citei antes, é como devemos chamar as variáveis que iremos utilizar. Existem algumas regras que devem ser seguídas.

A) Não iniciar o nome de uma variável utilizando NÚMEROS. B) Não utilizar caracteres especiais e/ou palavras reservadas. C) Não utilizar espaços nos nomes.

Alguns exemplos:

Correcto: – nome – variables.nome – Session.nome – Application.nome – url.nome – form. nome – variables.meu_nome

Errado: – variables.1nome – 1nome – variables.meu nome – cfelse – cfif

Então, sempre que forem criar as vossas variáveis, lembrem-se de seguir este padrão.

OBS: O alvo (target) irá variar dependendo do caso.

2 – Envio/Recebimento/Recuperação de variáveis. Como já foi mostrado anteriormente, nós podemos trabalhar com uma variável desta forma.

para criar <cfset variables.nome = ‘Marcos’> para mostrar o conteúdo <cfoutput> #variables.nome# </cfoutput>

No entanto, e se quisermos trabalhar com variáveis dinâmicas ao invés de fixas?

Com o exemplo a seguir, iremos criar algumas variáveis e enviá-las de diferentes formas.

URL: Variáveis viajam via URL através do endereço (querystring) da página, ou seja, a variável irá aparecer na barra de endereços.

crie um ficheiro chamado: P03_envia_variaveisURL_01.cfm e coloque o código abaixo:

<form name=”form01″ action=”P03_recebe_variaveisURL_01.cfm” method=”get”> Nome: <input type=”text” name=”txtNome” /> <input type=”submit” value=”Enviar” /> </form>

O código acima irá criar um formulário chamado ‘form01’, com a página ‘P03_recebe_variaveisURL_01.cfm’ como destino (‘action’) e com o método ‘get’.

Logo em seguida escrevemos a palavra ‘Nome’ e criamos um campo ‘input’ do tipo ‘text’ com o nome de ‘txtNome’.

De seguida criamos um campo ‘input’ do tipo ‘submit’ com o valor ‘Enviar’.

OBS: Existem dois métodos para formulários. – Get: envia os dados do formulário via URL. – Post: envia os dados do formulário via FORM.

Corra a página no navegador, o resultado será este:

Agora crie uma nova página chamada: P03_recebe_variaveisURL_01.cfm e coloque-lhe o seguinte código.

<cfoutput> Seu nome é: #url.txtNome# </cfoutput>

O resultado será este:

OBS: Notem no sublinhado a vermelho na URL o nome da nossa variável (txtNome) e o valor que lhe demos (neste exemplo: Marcos) – Este valor foi o nome que eu escrevi no campo da primeira página, antes de pressionar o botão Enviar.

Neste exemplo, o cfoutput agarrou na variável url.txtNome, txtNome foi o nome que demos para esta variável e, URL é o target da variável, ou seja, de onde esta vem.

Outra forma de criarmos uma variável de URL é durante a criação de um link, por exemplo, pode adicionar a linha abaixo no final do código da primeira página.

<a href=”P03_recebe_variaveisURL_01.cfm?txtNome=Marcos”>Enviar Página</a>

Ao clicar neste link o resultado será o mesmo, a única diferença é a criação da variável, que foi feita manualmente na própria URL do link.

Neste tipo de criação, as variáveis devem começar a sere criadas após o final do endereço desejado + o sinal ?. O ? significa que o endereço acabou e que a partir dali começarão a ser declaradas as variáveis. Pode declarar várias variáveis, que devem ser separadas pelo símbolo: &.

Exemplo:

<a href=”P03_recebe_variaveisURL_01.cfm?txtNome=Marcos&Site=Pplware&Ano=2007″>Enviar Página</a>

Desta forma estamos a enviar as seguintes variáveis/valores -txtNome = Marcos – Site =Pplware – Ano = 2007

Como recuperar estas novas variáveis? Da mesma forma que recuperamos a primeira, basta colocar o nome delas e o target dentro da tag <cfoutput>

<cfoutput> Nome: #url.txtNome# <br> Site: #url.Site# <br> Ano: #url.Ano# <cfoutput>

OBS: Este exemplo acima só funcionará pelo método do LINK pois estas variáveis não existem no formulário, logo, ao enviar o formulário, a próxima página irá procurar por variáveis que não existem, o que ocasionará em um ecrã de erro. Em breve mostrarei algumas soluções para este tipo de problema.

FORM O método de enviar/receber variáveis via form é praticamente igual ao via URL, a diferença é que os dados trafegam “escondidos” do utilizador.

Para utilizar o método form, crie duas novas páginas trocando a palavra URL dos nomes pela palavra FORM.

No código destas duas novas páginas, realize as seguintes mudanças

Página que envia: – Substituir o método (method) de ‘GET’ para ‘POST’. – Apagar a linha com o link que criamos por último.

Página que recebe: – Substituir a target ‘URL’ pela target ‘FORM’. – Deixar apenas a variável ‘txtNome’ dentro do <cfoutput> e apagar as outras.

Pronto.. o nosso novo método de envio/recuperação de variáveis está pronto.

Para criar novos campos, basta criar novos inputs com nomes diferentes dentro do formulário e preenchê-los. Para mostrá-los, basta adicionar os nomes das variáveis dentro do <cfoutput> que ele irá automaticamente buscar o valor das variáveis.

CFDUMP A tag <cfdump> é amplamente utilizada para “debugar” o que está acontece com uma variável ou targets de variáveis. Para visualizar o seu funcionamento realize o seguinte procedimento.

Abra a página que recebe as variáveis via URL (P03_recebe_variaveisURL_01.cfm) e no final adicione a seguinte linha de código.

<hr> <cfdump var=’#url.txtNome#’> <hr> <cfdump var=’#url#’>

OBS: A tag <hr> apenas adiciona uma linha na página.

Abaixo do nosso output aparecerão 2 quadrados coloridos representando o nosso dump.

O primeiro representa o dump da variável específica que pedimos (‘url.txtNome’).

O segundo representa o dump do target de variáveis que pedimos(‘url’).

Ecrã:

O dump também é utilizado em outras ocasiões, por exemplo para sabermos o que é devolvido de uma consulta à uma base de dados. Trabalharemos com ele novamente no futuro.

CFPARAM Voltando à nossa primeira página desta 3ª parte. Bom, como devem lembrar-se, devido ao facto do nosso formulário inicial somente possuir o campo ‘txtNome’¸ ao clicarmos no nosso link (que possui 3 variáveis), um ecrã de erro nos seria mostrado caso clicássemos no nosso botão de Enviar, no entanto, caso clicássemos no link, o erro não seria mostrado.

Qual razão? Unicamente por um motivo. A página que estamos a requerer espera que 3 variáveis existam. Caso cliquemos no link as 3 variáveis serão criadas e enviadas. Caso cliquemos no botão, apenas uma variável será criada e enviada.

Como contornar este problema? Bom, dentre os vários modos, um deles é a utilização da tag <cfparam>.

A tag CFPARAM funciona verificando se uma variável existe e, caso ela não exista, ela cria a variável e atribui um valor pré-definido.

Abra novamente a página (P03_recebe_variaveisURL_01.cfm) e adicione as seguintes linhas de código no COMEÇO da página.

<cfparam name=’url.Site’ default=’Site Não Informado’> <cfparam name=’url.Ano’ default=’Ano Não Informado’>

Corram novamente a primeira página, escreva seu nome e, desta vez, utilizem o botão para enviar os dados.

O resultado será este:

Ao carregarmos esta página, a mesma situação será encontrada, esta página irá pedir 3 variáveis mas só teremos uma, o ecrã de erro desapareceu porque utilizamos o cfparam.

Ao carregarmos esta página o que aconteceu? O primeiro CFPARAM verificou se a variável ‘url.Site’ existia, caso ela existisse, nada aconteceria, no entanto, como não existia, ele criou-a e atribuiu-lhe o valor ‘Site Não Informado’.

O mesmo aconteceu com a variável ‘url.Ano’.

Bom, por hoje é só pessoal, brinquem um pouco enviando variáveis via FORM e URL de uma página para a outra e utilizando o CFPARAM para tratar possíveis erros, bem como o CFDUMP para verificar o que está a vir de dentro das variáveis e targets.

A partir da próxima parte iremos tratar estes erros de outra forma, através de operadores lógicos.

Abraços

Exit mobile version