Opera acusa Microsoft e esta responde Nokia PC Suite 6.85 Release 14 Beta

ColdFusion - Aprender a programar

Criado por: Marcos Gramelich em 17 de Dezembro de 2007 Deixar um comentário

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


Arquivado na categoria: Tutoriais

6 comentários a “ColdFusion - Aprender a programar”

  1. Henrique diz:

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

  2. Hugo diz:

    parabens excelente tutorial… continua assim. ;)

  3. khannon diz:

    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. nrocha diz:

    @ khannon
    var_dump() em PHP :P

  5. Icewarp diz:

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

    Obrigado

  6. luis diz:

    muito bom

Deixe o seu comentário

Aviso: Todo e qualquer texto publicado na internet através deste sistema não reflete, necessariamente, a opinião deste weblog ou do(s) seu(s) autor(es). Os comentários publicados através deste sistema são de exclusiva e integral responsabilidade e autoria dos leitores que dele fizerem uso. O autor deste weblog reserva-se, desde já, o direito de excluir comentários e textos que julgar ofensivos, difamatórios, caluniosos, preconceituosos ou de alguma forma prejudiciais a terceiros. Textos de caráter promocional ou inseridos no sistema sem a devida identificação de seu autor (nome completo e endereço válido de email) também poderão ser excluídos.