Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Guybrush

Asp + Javascript + Segurança e Outros

Recommended Posts

########## Indice ##########

 

#### 1. Introdução ####

 

#### 1.1 Introdução e Síntaxe ####

 

ASP é uma Linguagem Server-Side, ou seja, um Script ASP é executado em um servidor, que retornará o valor em HTML, o ASP pode ser usado de duas maneiras, por padrão o ASP usa vb script:

 

variavel = "Texto" 'Atribuindo um Valor de Texto

variavel = 10 'Atribuindo um Valor Númerico

Set variavel = Objeto 'Atribuindo um Objeto ou função, para uma variável

 

java script:

 

variavel = "Texto"; 'Atribuindo um Valor de Texto

variavel = 10; 'Atribuindo um Valor Númerico

variavel = Objeto(); 'Atribuindo um Objeto ou função, para uma variável

 

#### 1.3 Operadores (JavaScript) ####

 

+ Adição

- Subtração

* Multiplicação

/ Divisão

% Módulo

++ Incremento

-- Decremento

 

Operadores de Comparação:

 

== Igual

!= Diferente

> Maior que

< Menor que

 

Operadores Lógicos:

 

&& E

|| OU

! Não, Negação

 

#### 1.4 Condições e Repetição (JavaScript) ####

 

Bem, um fator que me levou a escolher javascript ao invés de vb script:

 

if(variavel1==variavel2) { faca_isso(); }

 

if(variavel1=="valor") { faca_isso(); }

 

if(variavel1==10) { faca_isso(); }

 

if(soma(5,10)==15) { faca_isso(); }

 

O if (se) compara duas variaveis, ou uma variavel a um valor(numérico ou texto), também pode fazer-se o if com funções.

 

Repetições (Do.. While / While / For):

 

Do{

faca_isso();

} while(terminar!=1);

 

while(terminar!=1)

{

faca_isso();

}

 

for(var contador=1; contador<=50; contador++)

{

faca_isso();

}

 

#### 1.5 Funções (JavaScript) ####

 

function somar(v1,v2,v3)

{

total = v1+v2+v3;

return total;

}

 

As funções não precisam retornar algum valor, podem apenas fazer um 'processamento' interno.

 

#### 2. Objetos ####

 

Os objetos são metódos de Receber/Enviar dados, ligando clientes e servidor.

Temos os Objetos Request (Solicitação), Response (Resposta), Application (Aplicação), Session (Sessão) e Server (Servidor), cada um possui uma caracteristica diferente, e esses objetos são a base de uma aplicação ASP, concerteza é a parte principal também.

 

#### 2.1 Objeto Request ####

 

O Objeto Request, "Pega" os dados, ele recebe algum valor seja ele um valor de algum formulário (seja pelo método post ou get), recebe algum valor de um Cookie préviamente criado, ou alguma informação sobre o Servidor.

 

* Request.Form();

 

Recebe Dados Enviados de um Formulário pelo método POST.

ex: Request.Form("nome_do_campo");

 

* Request.QueryString();

 

Recebe Dados de um Formulário usando o metódo GET, atráves da url.

Quando o usuário acessa um endereço assim www.marel.com/produto.asp?id=50 por exemplo:

 

Request.QueryString("id"); // Ele pegará o valor 50.

 

Podemos usar mais de um QueryString, ex: www.marel.com/produto.asp?id=50&nome="Sergio"

 

Request.QueryString("id"); // Ele pegará o valor 50.

Request.QueryString("nome"); // Ele pegará o valor Sergio

 

Repare que o & indica que terá mais um valor.

 

* Request.Cookies();

 

Recebe o valor que foi préviamente escrito em algum cookie.

 

Request.Cookies("marel"); // Recebe o Valor Escrito no cookie Marel

 

Request.Cookies("marel")("usuario"); // Recebe o Valor usuario do cookie Marel

Request.Cookies("marel")("senha"); // Recebe o Valor senha do cooki Marel

 

* Request.ServerVariables();

 

Recebe o Valor com Alguma informação sobre o Servidor, o Navegador e sobre o Pedido do Cliente.

 

Request.ServerVariables("HTTP_HOST"); // O Nome do Host do Servidor

Request.ServerVariables("REMOTE_ADDR"); // O Ip do Cliente

Request.ServerVariables("REMOTE_METHOD"); // O Metódo que foi feito o pedido (Get/Post)

 

Temos algumas propriedades para o Objeto Request como por exemplo o Count:

 

ex:www.marel.com/produto.asp?id=50&nome="Sergio"&senha=123456

 

Request.QueryString.Count; // Numero de Valores da QueryString (no caso 3)

Request.Form.Count; // Numero de Campos de Formulários que foram Recebidos

Request.Cookies("nome_cookie").Count; // Numero de Valores do Cookie "nome_cookie"

 

#### 2.2 Objeto Response ####

 

O Objeto Response(Resposta) Serve para mostrar Dados, Cookies, Valores de Variáveis, entre várias outras coisas.

 

* Response.Write();

 

O Response.Write mostra Textos na página.

 

Response.Write("Olá Mundo!"); // Mostra o Texto Olá Mundo

Response.Write(variavel); // Mostra o Valor da Variavel

 

* Response.Cookies();

 

O Response.Cookies é responsável pela criação e adição de valores a um Cookie.

 

Response.Cookies("marel"); // Criando o Cookie Marel

Response.Cookies("marel"); = "Sérgio"; // ADicionando o Valor Sérgio ao Cookie Marel

 

Neste Exemplo acima, foi criado um Cookie de valor único, ele só pode ter um valor, caso você queira mais de um valor, faça assim:

 

Response.Cookies("marel")("usuario") = "Sergio";

Response.Cookies("marel")("senha") = "123456";

 

* Response.Redirect();

 

Redireciona par uma página, ou arquivo indicado.

 

Response.Redirect("www.google.com.br"); // Abrirá o Site indicado (*na mesma janela)

 

#### 2.3 Objeto Application e Session ####

 

O Objeto Application é usado para compartilhar informações entre os usuários, no servidor.

Por exemplo, um contador de usuários online, usa o Objeto Aplicação.

 

O Objeto Session, fica dentro do Application, e é responsável pela Sessão de cada usuário, quando um usuário entra em um site, ele pode compartilhar alguma informação com todas as páginas do site, por uma única Sessão, as sessões tem um tempo limite, e é recomendável destruir toda Sessão quando o usuário sair, para não sobrecarregar o servidor.

 

O ASP usa um arquivo chamado, global.asa que deve ficar no diretório principal, e será acessada por diversos usuários, nele terão as váriaveis dos Objetos Application e Session.

 

#### 2.4 Objeto Server ####

 

O Objeto Server (Servidor), é responsável pelo processamento dos pedidos dos clientes.

 

* Server.CreateObject();

 

Responsável pela criação dos componentes ActiveX que serão muito usados, tanto para acessar um banco de dados, quanto para enviar um e-mail por exemplo, ou criar um documento de texto, entre muitas outras funções.

 

Server.CreateObject("ADODB.Connection"); // Cria um objeto de conexão com o Objeto ADODB.

 

* Server.ScriptTimeout

 

Responsável para definir um limite máximo para que o Script seja executado.

 

Server.ScriptTimeout = 100;

 

* Server.HTMLEncode();

 

Este Comando é responsável por transformar Tags HTML em textos, quando você faz um Response.Write("<HTML></HTML>"); Ele Não mostra estas tags na página como texto, e sim considera elas como Tags, se você quiser mostrar o Texto <HTML> na tela faça o seguinte:

 

var tag = "<HTML> </HTML>";

tag = Server.HTMLEncode(tag);

Response.Write(tag);

 

* Server.URLEncode();

 

Funciona semelhante ao Server.HTMLEncode só que ele converte um texto comum, para uma URL, por exempo "Sergio Mendes" em Sergio+Mendes, visto que na Web não se deve usar espaços, o espaço é substituido por um +.

 

#### 3. Componentes Active X ####

 

Os Active X são uma forma do ASP acessar objetos externos, como por exemplo os Banco de Dados, ou um arquivo Txt, um Player de Video, um Documento do Word, ou seja executar, receber e enviar dados de outros tipos de aplicações.

 

#### 3.1 FileSystemObject ####

 

Usado para Manipulação de Arquivos, você pode Criar, Abrir, Excluir um Arquivo, pode Escrever, Adicionar informações também, vejamos como:

 

var arq = Server.CreateObject("Scripting.FileSystemObject"); // Criamos o Objeto Active X

 

Agora vamos aos comandos possíveis do FileSystemObject.

 

var test = arq.CreateTextFile("arquivo.txt",true);

 

Cria o Arquivo (Arquivo.txt), ele poderá ser regravado (true).

 

var txt = arq.OpenTextFile("arquivo.txt",1,true);

 

Abre O Arquivo (Arquivo.txt), para ESCRITA (1), caso Não exista ele Criará um novo (true).

Caso no lugar do 1 fosse 2 indicaria que o arquivo só poderia ser Lido, e se fosse 8 seria aberto para adicionar um valor ou texto, os dados São guardados na variavel txt.

 

var texto_inteiro = arq.ReadAll(); // Passa todo o Texto para variável

 

var linha1 = arq.ReadLine(); // Passa a primeira linha do arquivo para variável

 

arq.Write("Texto Aqui!"); // Escreve no Arquivo, o texto indicado

 

arq.WriteLine("TEXTO AQUI!"); // Escreve no Arquivo, e adiciona uma linha nova no final.

 

arq.Close();

 

Quando o arquivo Não for mais útil é importante fechá-lo, usando o Close();

 

#### 3.2 ADODB ####

 

Este é um dos Active X mais importantes, se não for o mais, responsável por acessar o Banco de Dados, é um objeto muito usado, e que é essencial conheçer.

 

#### 3.2.1 Connection ####

 

Antes de usar um Banco de Dados precisamos Conectar-se a ele, para posteriormente manipular os dados, em ASP isso é feito pelo objeto Connection.

 

var con = Server.CreateObject("ADODB.Connection"); // Criando o Objeto de Conexão com o BD.

 

Após Criarmos o Objeto de Conexão devemos nos conectar ao banco de dados:

 

con.Open("SERVIDOR","USUARIO","SENHA");

 

Sempre que uma conexão não for mais útil, devemos fecha-lá até mesmo para não carregar o servidor com diversas conexões, então usa-se o Close();

 

con.Close();

 

#### 3.2.2 RecordSet #####

 

O RecordSet é usado para executar e guardar dados do banco de dados.

 

var con = Server.CreateObject("ADODB.Connection"); // Criando o Objeto de Conexão com o BD.

var rset = Server.CreateObject("ADODB.RecordSet"); // Cria o Objeto de RecordSet

 

con.Open("SERVIDOR","USUARIO","SENHA"); // Conectando-se ao Banco de Dados

 

rset.Open("select * from tabela;",con); // Executa a Consulta SQL, utilizando a conexão (con)

 

rset.Open("tabela"); // Mostra o Valor Recebido da Consulta no campo tabela.

 

rset.Close(); // Fechando RecordSet

con.Close(); // Fechando Conexão

 

 

#### 3.2.3 Command e Execute #####

 

o Execute é usado para executar um comando SQL, normalmente, uma exclusão, atualização ou inserção de dados, quando for apenas selecionar dados, é recomendável usar o Open do recordset, lembre-se de criar o Objeto ADODB.Connection.

 

var sql = "Drop table tabela1";

con.Execute(sql);

 

O Command é utilizado também para executar um comando SQL, porém ele é normalmente usado para executar comandos "prontos" que não recebam nenhuma variável, apenas dados já definidos.

 

var con = Server.CreateObject("ADODB.Connection");

var cmd Server.CreateObject("ADODB.Command"); // Criando o Objeto Command

 

cmd.ActiveConnection = con; // Informa qual conexão usar

 

cmd.CommandText = "INSERT INTO TABELA1 VALUES('Sergio',123,'Gravatal')";

 

cmd.Execute(); // Executa o Comando, que foi definido no cmd.CommandText

 

con.Close();

 

#### 4. Padrões #####

 

Nesta parte vou colocar alguns padrões que eu uso em ASP, algumas funções que criei e explicarei ela e seu objetivo.

 

#### 4.1 Campo Vazio #####

 

É Importante verificar se os dados recebidos de um formulário não estão vazios, para posteriormente eles não serem cadastrados no banco de dados com valores nulos.

Como em um formulário normalmente há muitos campos que devem ser preenchidos, eu criei uma função que diminuirá uma parte do trabalho:

 

function vazio(campo,texto)

{

var flag=0;

if(campo == "" || campo == "undefined" || campo == null)

{

Response.Write("<br>O Campo:<b>"+texto+"</b> não foi preenchido.");

flag = 1;

}

return flag;

}

 

Na Linha 1 foi Criada a função vazio, que terá que ser usada com dois valores, estes valores são o campo, que será os dados recebidos do formulário, e o Texto que será apenas uma palavra indicando o nome do campo que não foi preenchido, caso ele esteja vazio.

Criamos a variavel flag com valor 0, um campo que não tenha sido preenchido pode vir com valor nulo (null), indefinido (undefined) ou simplesmente em branco (""), por isso testamos se o campo está vazio, nulo ou indefinido, caso ele esteja, a função mostrará a mensagem, indicando o nome do campo, e a flag será 1, indicado que o campo está vazio, vazio(1) é o retorno caso isso aconteça.

 

#### 4.2 Caracteres Inválidos #####

 

Quando recebemos um valor que será posteriormente executado por um comando SQL, devemos verificar se ele não possui alguns caracteres que poderão ser na verdade parte de um código malicioso, para tentar um "ataque" contra o sistema como as famosas "SQL injections" por exemplo.

Vamos a algumas funções que serão usadas, em qualquer sistema que fara uma consultará ao SQL.

 

# Cadastros de usuarios: #

 

function nochar(valor,campo)

{

if(valor.search(/[^a-zA-Z0-9_]/)!=-1)

{

Response.Write("<br>Erro! <b>"+campo+"</b> Permitido apenas Letras e Números.");

valor = "Inválido";

}

}

 

A Função verifica se o valor recebido do campo é alfa-numérico(Numero, ou Letras de A à Z), caso não seja retorna como valor Inválido.

 

# Procura de Dados / Login / QueryStrings: #

 

function badchar(valor)

{

var flag=0;

if(valor.search(/\b['-*-%-\;-\|]/)!=-1)

{

Response.Write("<br>Erro! Permitido apenas Letras e Números.");

flag = 1;

}

return flag;

}

 

A função verifica se possui algum desses caracteres (' - * - % . ; |), caso tenha ela retorna badchar(1);

 

# QueryStrings Vazias: #

 

if(Request.QueryString.Count==0)

{

Response.Write("<br><b><center>Está Faltando Algum Argumento na URL</enter></b>");

Response.End();

}

 

Caso o página necessite de uma QueryString na Url, e o usuário por ventura tentar tirar a QueryString, então ele não mostrará a mensagem de Erro, e depois terminará a exibição da página com o Response.End().

 

#### 4.3 Sessões e Cookies ####

 

O Padrão que criei para manter informações de um usuário compartilhando com todas páginas foi Sessões e Cookies, utilizados em conjunto.

Eu Crio a Sessão para as páginas verificarem se o usuário está ou não logado no sistema, e os cookies são criados armazenando apenas o nome de usuário, em alguns casos também pode-se armazernar outros dados, porém deve-se evitar senhas, cartões de créditos, cpfs e dados que necessitam de mais segurança.

 

# Criação de Sessão: #

 

Session.Timeout = 3;

Session("Logado") = true;

 

Primeiro Definimos o Timeout da sessão, para não deixar um usuário inativo no servidor por muito tempo.

Depois definimos o nome da Sessão, por padrão usarei Logado.

 

# Verificar Existência da Sessão: #

 

if(Session("Logado")!=true) { faca_isso(); }

 

Se Existir a Sessão Logado então execute alguma função.

Normalmente, usa-se o Response.Redirect("pagina"); onde irá redirecionar (ir) para página indicada.

 

Por Enquanto é só, assim que ir fazendo as outras partes vou postando aqui!

Talvez o Tutorial seja util, sugestões, ajustes, e melhorias postem ae!

Compartilhar este post


Link para o post
Compartilhar em outros sites

legal cara, curti seu tutorial!

abs,

rodrigo

 

 

########## Indice ##########

 

#### 1. Introdução ####

 

#### 1.1 Introdução e Síntaxe ####

 

ASP é uma Linguagem Server-Side, ou seja, um Script ASP é executado em um servidor, que retornará o valor em HTML, o ASP pode ser usado de duas maneiras, por padrão o ASP usa vb script:

 

variavel = "Texto" 'Atribuindo um Valor de Texto

variavel = 10 'Atribuindo um Valor Númerico

Set variavel = Objeto 'Atribuindo um Objeto ou função, para uma variável

 

java script:

 

variavel = "Texto"; 'Atribuindo um Valor de Texto

variavel = 10; 'Atribuindo um Valor Númerico

variavel = Objeto(); 'Atribuindo um Objeto ou função, para uma variável

 

#### 1.3 Operadores (JavaScript) ####

 

+ Adição

- Subtração

* Multiplicação

/ Divisão

% Módulo

++ Incremento

-- Decremento

 

Operadores de Comparação:

 

== Igual

!= Diferente

> Maior que

< Menor que

 

Operadores Lógicos:

 

&& E

|| OU

! Não, Negação

 

#### 1.4 Condições e Repetição (JavaScript) ####

 

Bem, um fator que me levou a escolher javascript ao invés de vb script:

 

if(variavel1==variavel2) { faca_isso(); }

 

if(variavel1=="valor") { faca_isso(); }

 

if(variavel1==10) { faca_isso(); }

 

if(soma(5,10)==15) { faca_isso(); }

 

O if (se) compara duas variaveis, ou uma variavel a um valor(numérico ou texto), também pode fazer-se o if com funções.

 

Repetições (Do.. While / While / For):

 

Do{

faca_isso();

} while(terminar!=1);

 

while(terminar!=1)

{

faca_isso();

}

 

for(var contador=1; contador<=50; contador++)

{

faca_isso();

}

 

#### 1.5 Funções (JavaScript) ####

 

function somar(v1,v2,v3)

{

total = v1+v2+v3;

return total;

}

 

As funções não precisam retornar algum valor, podem apenas fazer um 'processamento' interno.

 

#### 2. Objetos ####

 

Os objetos são metódos de Receber/Enviar dados, ligando clientes e servidor.

Temos os Objetos Request (Solicitação), Response (Resposta), Application (Aplicação), Session (Sessão) e Server (Servidor), cada um possui uma caracteristica diferente, e esses objetos são a base de uma aplicação ASP, concerteza é a parte principal também.

 

#### 2.1 Objeto Request ####

 

O Objeto Request, "Pega" os dados, ele recebe algum valor seja ele um valor de algum formulário (seja pelo método post ou get), recebe algum valor de um Cookie préviamente criado, ou alguma informação sobre o Servidor.

 

* Request.Form();

 

Recebe Dados Enviados de um Formulário pelo método POST.

ex: Request.Form("nome_do_campo");

 

* Request.QueryString();

 

Recebe Dados de um Formulário usando o metódo GET, atráves da url.

Quando o usuário acessa um endereço assim www.marel.com/produto.asp?id=50 por exemplo:

 

Request.QueryString("id"); // Ele pegará o valor 50.

 

Podemos usar mais de um QueryString, ex: www.marel.com/produto.asp?id=50&nome="Sergio"

 

Request.QueryString("id"); // Ele pegará o valor 50.

Request.QueryString("nome"); // Ele pegará o valor Sergio

 

Repare que o & indica que terá mais um valor.

 

* Request.Cookies();

 

Recebe o valor que foi préviamente escrito em algum cookie.

 

Request.Cookies("marel"); // Recebe o Valor Escrito no cookie Marel

 

Request.Cookies("marel")("usuario"); // Recebe o Valor usuario do cookie Marel

Request.Cookies("marel")("senha"); // Recebe o Valor senha do cooki Marel

 

* Request.ServerVariables();

 

Recebe o Valor com Alguma informação sobre o Servidor, o Navegador e sobre o Pedido do Cliente.

 

Request.ServerVariables("HTTP_HOST"); // O Nome do Host do Servidor

Request.ServerVariables("REMOTE_ADDR"); // O Ip do Cliente

Request.ServerVariables("REMOTE_METHOD"); // O Metódo que foi feito o pedido (Get/Post)

 

Temos algumas propriedades para o Objeto Request como por exemplo o Count:

 

ex:www.marel.com/produto.asp?id=50&nome="Sergio"&senha=123456

 

Request.QueryString.Count; // Numero de Valores da QueryString (no caso 3)

Request.Form.Count; // Numero de Campos de Formulários que foram Recebidos

Request.Cookies("nome_cookie").Count; // Numero de Valores do Cookie "nome_cookie"

 

#### 2.2 Objeto Response ####

 

O Objeto Response(Resposta) Serve para mostrar Dados, Cookies, Valores de Variáveis, entre várias outras coisas.

 

* Response.Write();

 

O Response.Write mostra Textos na página.

 

Response.Write("Olá Mundo!"); // Mostra o Texto Olá Mundo

Response.Write(variavel); // Mostra o Valor da Variavel

 

* Response.Cookies();

 

O Response.Cookies é responsável pela criação e adição de valores a um Cookie.

 

Response.Cookies("marel"); // Criando o Cookie Marel

Response.Cookies("marel"); = "Sérgio"; // ADicionando o Valor Sérgio ao Cookie Marel

 

Neste Exemplo acima, foi criado um Cookie de valor único, ele só pode ter um valor, caso você queira mais de um valor, faça assim:

 

Response.Cookies("marel")("usuario") = "Sergio";

Response.Cookies("marel")("senha") = "123456";

 

* Response.Redirect();

 

Redireciona par uma página, ou arquivo indicado.

 

Response.Redirect("www.google.com.br"); // Abrirá o Site indicado (*na mesma janela)

 

#### 2.3 Objeto Application e Session ####

 

O Objeto Application é usado para compartilhar informações entre os usuários, no servidor.

Por exemplo, um contador de usuários online, usa o Objeto Aplicação.

 

O Objeto Session, fica dentro do Application, e é responsável pela Sessão de cada usuário, quando um usuário entra em um site, ele pode compartilhar alguma informação com todas as páginas do site, por uma única Sessão, as sessões tem um tempo limite, e é recomendável destruir toda Sessão quando o usuário sair, para não sobrecarregar o servidor.

 

O ASP usa um arquivo chamado, global.asa que deve ficar no diretório principal, e será acessada por diversos usuários, nele terão as váriaveis dos Objetos Application e Session.

 

#### 2.4 Objeto Server ####

 

O Objeto Server (Servidor), é responsável pelo processamento dos pedidos dos clientes.

 

* Server.CreateObject();

 

Responsável pela criação dos componentes ActiveX que serão muito usados, tanto para acessar um banco de dados, quanto para enviar um e-mail por exemplo, ou criar um documento de texto, entre muitas outras funções.

 

Server.CreateObject("ADODB.Connection"); // Cria um objeto de conexão com o Objeto ADODB.

 

* Server.ScriptTimeout

 

Responsável para definir um limite máximo para que o Script seja executado.

 

Server.ScriptTimeout = 100;

 

* Server.HTMLEncode();

 

Este Comando é responsável por transformar Tags HTML em textos, quando você faz um Response.Write("<HTML></HTML>"); Ele Não mostra estas tags na página como texto, e sim considera elas como Tags, se você quiser mostrar o Texto <HTML> na tela faça o seguinte:

 

var tag = "<HTML> </HTML>";

tag = Server.HTMLEncode(tag);

Response.Write(tag);

 

* Server.URLEncode();

 

Funciona semelhante ao Server.HTMLEncode só que ele converte um texto comum, para uma URL, por exempo "Sergio Mendes" em Sergio+Mendes, visto que na Web não se deve usar espaços, o espaço é substituido por um +.

 

#### 3. Componentes Active X ####

 

Os Active X são uma forma do ASP acessar objetos externos, como por exemplo os Banco de Dados, ou um arquivo Txt, um Player de Video, um Documento do Word, ou seja executar, receber e enviar dados de outros tipos de aplicações.

 

#### 3.1 FileSystemObject ####

 

Usado para Manipulação de Arquivos, você pode Criar, Abrir, Excluir um Arquivo, pode Escrever, Adicionar informações também, vejamos como:

 

var arq = Server.CreateObject("Scripting.FileSystemObject"); // Criamos o Objeto Active X

 

Agora vamos aos comandos possíveis do FileSystemObject.

 

var test = arq.CreateTextFile("arquivo.txt",true);

 

Cria o Arquivo (Arquivo.txt), ele poderá ser regravado (true).

 

var txt = arq.OpenTextFile("arquivo.txt",1,true);

 

Abre O Arquivo (Arquivo.txt), para ESCRITA (1), caso Não exista ele Criará um novo (true).

Caso no lugar do 1 fosse 2 indicaria que o arquivo só poderia ser Lido, e se fosse 8 seria aberto para adicionar um valor ou texto, os dados São guardados na variavel txt.

 

var texto_inteiro = arq.ReadAll(); // Passa todo o Texto para variável

 

var linha1 = arq.ReadLine(); // Passa a primeira linha do arquivo para variável

 

arq.Write("Texto Aqui!"); // Escreve no Arquivo, o texto indicado

 

arq.WriteLine("TEXTO AQUI!"); // Escreve no Arquivo, e adiciona uma linha nova no final.

 

arq.Close();

 

Quando o arquivo Não for mais útil é importante fechá-lo, usando o Close();

 

#### 3.2 ADODB ####

 

Este é um dos Active X mais importantes, se não for o mais, responsável por acessar o Banco de Dados, é um objeto muito usado, e que é essencial conheçer.

 

#### 3.2.1 Connection ####

 

Antes de usar um Banco de Dados precisamos Conectar-se a ele, para posteriormente manipular os dados, em ASP isso é feito pelo objeto Connection.

 

var con = Server.CreateObject("ADODB.Connection"); // Criando o Objeto de Conexão com o BD.

 

Após Criarmos o Objeto de Conexão devemos nos conectar ao banco de dados:

 

con.Open("SERVIDOR","USUARIO","SENHA");

 

Sempre que uma conexão não for mais útil, devemos fecha-lá até mesmo para não carregar o servidor com diversas conexões, então usa-se o Close();

 

con.Close();

 

#### 3.2.2 RecordSet #####

 

O RecordSet é usado para executar e guardar dados do banco de dados.

 

var con = Server.CreateObject("ADODB.Connection"); // Criando o Objeto de Conexão com o BD.

var rset = Server.CreateObject("ADODB.RecordSet"); // Cria o Objeto de RecordSet

 

con.Open("SERVIDOR","USUARIO","SENHA"); // Conectando-se ao Banco de Dados

 

rset.Open("select * from tabela;",con); // Executa a Consulta SQL, utilizando a conexão (con)

 

rset.Open("tabela"); // Mostra o Valor Recebido da Consulta no campo tabela.

 

rset.Close(); // Fechando RecordSet

con.Close(); // Fechando Conexão

 

 

#### 3.2.3 Command e Execute #####

 

o Execute é usado para executar um comando SQL, normalmente, uma exclusão, atualização ou inserção de dados, quando for apenas selecionar dados, é recomendável usar o Open do recordset, lembre-se de criar o Objeto ADODB.Connection.

 

var sql = "Drop table tabela1";

con.Execute(sql);

 

O Command é utilizado também para executar um comando SQL, porém ele é normalmente usado para executar comandos "prontos" que não recebam nenhuma variável, apenas dados já definidos.

 

var con = Server.CreateObject("ADODB.Connection");

var cmd Server.CreateObject("ADODB.Command"); // Criando o Objeto Command

 

cmd.ActiveConnection = con; // Informa qual conexão usar

 

cmd.CommandText = "INSERT INTO TABELA1 VALUES('Sergio',123,'Gravatal')";

 

cmd.Execute(); // Executa o Comando, que foi definido no cmd.CommandText

 

con.Close();

 

#### 4. Padrões #####

 

Nesta parte vou colocar alguns padrões que eu uso em ASP, algumas funções que criei e explicarei ela e seu objetivo.

 

#### 4.1 Campo Vazio #####

 

É Importante verificar se os dados recebidos de um formulário não estão vazios, para posteriormente eles não serem cadastrados no banco de dados com valores nulos.

Como em um formulário normalmente há muitos campos que devem ser preenchidos, eu criei uma função que diminuirá uma parte do trabalho:

 

function vazio(campo,texto)

{

var flag=0;

if(campo == "" || campo == "undefined" || campo == null)

{

Response.Write("<br>O Campo:<b>"+texto+"</b> não foi preenchido.");

flag = 1;

}

return flag;

}

 

Na Linha 1 foi Criada a função vazio, que terá que ser usada com dois valores, estes valores são o campo, que será os dados recebidos do formulário, e o Texto que será apenas uma palavra indicando o nome do campo que não foi preenchido, caso ele esteja vazio.

Criamos a variavel flag com valor 0, um campo que não tenha sido preenchido pode vir com valor nulo (null), indefinido (undefined) ou simplesmente em branco (""), por isso testamos se o campo está vazio, nulo ou indefinido, caso ele esteja, a função mostrará a mensagem, indicando o nome do campo, e a flag será 1, indicado que o campo está vazio, vazio(1) é o retorno caso isso aconteça.

 

#### 4.2 Caracteres Inválidos #####

 

Quando recebemos um valor que será posteriormente executado por um comando SQL, devemos verificar se ele não possui alguns caracteres que poderão ser na verdade parte de um código malicioso, para tentar um "ataque" contra o sistema como as famosas "SQL injections" por exemplo.

Vamos a algumas funções que serão usadas, em qualquer sistema que fara uma consultará ao SQL.

 

# Cadastros de usuarios: #

 

function nochar(valor,campo)

{

if(valor.search(/[^a-zA-Z0-9_]/)!=-1)

{

Response.Write("<br>Erro! <b>"+campo+"</b> Permitido apenas Letras e Números.");

valor = "Inválido";

}

}

 

A Função verifica se o valor recebido do campo é alfa-numérico(Numero, ou Letras de A à Z), caso não seja retorna como valor Inválido.

 

# Procura de Dados / Login / QueryStrings: #

 

function badchar(valor)

{

var flag=0;

if(valor.search(/\b['-*-%-\;-\|]/)!=-1)

{

Response.Write("<br>Erro! Permitido apenas Letras e Números.");

flag = 1;

}

return flag;

}

 

A função verifica se possui algum desses caracteres (' - * - % . ; |), caso tenha ela retorna badchar(1);

 

# QueryStrings Vazias: #

 

if(Request.QueryString.Count==0)

{

Response.Write("<br><b><center>Está Faltando Algum Argumento na URL</enter></b>");

Response.End();

}

 

Caso o página necessite de uma QueryString na Url, e o usuário por ventura tentar tirar a QueryString, então ele não mostrará a mensagem de Erro, e depois terminará a exibição da página com o Response.End().

 

#### 4.3 Sessões e Cookies ####

 

O Padrão que criei para manter informações de um usuário compartilhando com todas páginas foi Sessões e Cookies, utilizados em conjunto.

Eu Crio a Sessão para as páginas verificarem se o usuário está ou não logado no sistema, e os cookies são criados armazenando apenas o nome de usuário, em alguns casos também pode-se armazernar outros dados, porém deve-se evitar senhas, cartões de créditos, cpfs e dados que necessitam de mais segurança.

 

# Criação de Sessão: #

 

Session.Timeout = 3;

Session("Logado") = true;

 

Primeiro Definimos o Timeout da sessão, para não deixar um usuário inativo no servidor por muito tempo.

Depois definimos o nome da Sessão, por padrão usarei Logado.

 

# Verificar Existência da Sessão: #

 

if(Session("Logado")!=true) { faca_isso(); }

 

Se Existir a Sessão Logado então execute alguma função.

Normalmente, usa-se o Response.Redirect("pagina"); onde irá redirecionar (ir) para página indicada.

 

Por Enquanto é só, assim que ir fazendo as outras partes vou postando aqui!

Talvez o Tutorial seja util, sugestões, ajustes, e melhorias postem ae!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola, gostaria de saber se posso usar o request dentro de um <script> var1=Request.QueryString("teste")</script> por exemplo... ???agradeceria se alguem me ajudasse....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola, gostaria de saber se posso usar o request dentro de um <script> var1=Request.QueryString("teste")</script> por exemplo... ???agradeceria se alguem me ajudasse....

Eu tentei e não consegui... mandei o valor da variável como parâmetro da função...Mas se alguém souber como fazer isso ia ser bom aprender...T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode sim..Ao invés de usar assim<script> var1=Request.QueryString("teste")</script>Utilize assim :<script> var var1;var1=<%=Request.QueryString("teste")%></script>Espero ter ajudado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.