logoLog da Selva


“Forçando” a declaração de variáveis

Escrito em ASP por Rodrigo Fournier em 11 de Julho de 2007

Como meu segundo post resolvi fazer uma abordagem sobre uma única linha de código asp que deve ser colocada antes de todo código. Esta linha que aparentemente não tem muita importância e que muitos desconhecem (até pouco tempo eu também desconhecia), é de suma necessidade em códigos de muitas linhas.
Qual seria essa linha de código? Ai está ela: <% option explicit %>. Alguém sabe para que isso serve? Bom, espero que minha explicação seja a mais clara possível. Sem colocar esse comando, você pode simplesmente chamar e atribuir valores a uma variável sem nem ao menos tê-la declarado em parte alguma do código. Muitos poderiam pensar, isso não é bom? Daí eu digo, com certeza não é não!
Esse comando é usado exatamente para “forçar” o programador a declarar as variáveis, antes de atribuir qualquer valor a elas. Qual a vantagem disso? Eu explico. Imagine que você criou uma variável chamada StrSenha logo no início do código e que lá pro meio do código você queira usá-la novamente, e por um descuido, você atribua a uma variável StrSena (sem o H) o valor que você desejava atribuir a variável correta (StrSenha). Sem essa linha de código isso seria permitido e quando você fosse exibir o conteúdo da sua variável StrSenha, você perceberia que a mesma estava com o valor errado, ou nem perceberia, e causaria vários problemas posteriores. Pode parecer besteira para um código de umas 50 linhas, mas imagine procurar por um tipo de erro desses em um código com mais de 500 linhas.
Agora, vamos ao código com a linha descrita acima. É só colocá-la antes de todo código, e declarar as variáveis normalmente, Dim StrSenha, se lá embaixo você atribuir qualquer valor, por acidente, a variável StrSena, isso gerará um erro de variável não declarada.
Muito mais simples de achar o erro já que o próprio browser te dirá qual a linha que está
gerando o problema.

É isso galera, espero ter sido claro e espero mais uma vez ter feito um bom post.

Iframe - o AJAX do Paraguai

Escrito em ASP por Rodrigo Fournier em 27 de Junho de 2007

Bom galera, esse é meu primeiro post por aqui, e estou muito feliz por isso. Trabalho programando em ASP, por isso criei essa seção, e vou relatar em meu primeiro post, uma experiência vivida por mim no trabalho a pouco tempo.

Meu patrão me pediu que eu validasse upload de arquivos em todas as manutenções dos sites que damos suporte lá na empresa. Essa validação seria pra só deixar que upassem arquivos que tivessem extensões permitidas, Upload de img, não poderia upar música por exemplo. Eu já havia feito em todas as manutenções exceto em uma, que foi a que me causou grandes problemas.

Ao ver o código, eu tentava entendê-lo, e alterá-lo, mas nada acontecia. Tentarei explicar o que ocorria. Ao preencher os campos, nome e caminho da img, se estivesse certinho (reparem que até então certo era o carregamento de qualquer extensão) direcionava para uma página de confirmação e tal. Quem conhece asp sabe que pra se debugar um código, uma boa maneira, é colocarmos o response.Write pra escrever alguma coisa na tela e o response.end pro código parar por ali, somente mostrando o que vier após o response.write.

Como já disse nada acontecia quando eu fazia essas alterações, apenas a página não era mais direcionada a página de confirmação. Foi ai que perguntei a um amigo, e ele foi olhar o código comigo. Ele mostrou que a linha que fazia o direcionamento pra tal página de confirmação, tinha o seguinte detalhe target=”hidGrade”. O que isso significa?? Era um iframe que estava localizado abaixo de todo conteúdo da página, e estava setado pra ficar invisível, por isso eu mexia e debugava o código e nada acontecia, pois toda alteração ocorria dentro desse iframe. Foi a primeira vez que vi isso, eu já havia trabalhado com iframe mas não dessa maneira.

Daí foi só trocar o status dele pra visível e pronto, pude ver tudo o que não via. Ai comecei a pensar o por que de terem feito isso, e é simples. Quando se tem um iframe invisível que faz tudo dentro dele, sua página não é recarregada. Como disse meu primo Luã que também posta aqui no blog, um AJAX do Paraguai !!!

Bom o artigo ficou bem extenso mas espero que tenha passado um bom conteúdo.