ColdFusion – Aprender a programar

6 Comentários

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

Partilhar:
Tags:

Comentários

6

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Henrique
    Henrique

    muito bom…. continue com o excelente trabalho, tem aqui um leitor assiduo. cumprimentos

  2. Avatar de Hugo
    Hugo

    parabens excelente tutorial… continua assim. 😉

  3. Avatar de khannon
    khannon

    Boas,

    Permitam-me que faça uma questão.
    Pelo limitado conhecimento que tenho de PHP consegue-se fazer isto tudo em PHP (menos provavelmente a parte do cfdump que não conheço em php).

    Assim, qual é a diferença de usar ColdFusion ou PHP?
    Pelo que vi até agora posso manter o meu server de PHP que faz o mesmo, ou não?

    Obrigado.

  4. Avatar de nrocha

    @ khannon
    var_dump() em PHP 😛

  5. Avatar de Icewarp
    Icewarp

    Olá, seria possível fazer um tutorial semelhante para MySQL?

    Obrigado