Weekday() – Dia da semana em ASP

Estava fazendo umas rotinas para melhorar a auto-organização de algumas novidades do And After e lembrei como eu achava chato a manipulação de datas quando comecei a programar.

Hoje vou explicar como funciona apenas o weekday em ASP, que serve para pegar o dia da semana de uma data.

 

Pegando o dia de hoje

Para ter como resultado o dia da semana de hoje o código é

 weekday(now()) 

Isso vai resultar um número, equivalente ao dia da semana, segindo a ordem lógica (que coloquei aí abaixo):

  • 1 – Domingo
  • 2 – Segunda-feira
  • 3 – Terça-feira
  • 4 – Quarta-Feira
  • 5 – Quinta-Feira
  • 6 – Sexta-Feira
  • 7 – Sábado

 

Dia da semana de uma data qualquer

Bom, utilizando o weekday eu acabei de descobrir que nasci em uma Quinta-Feira, ao invés de usar now() que recupera a data atual inserimos a data que queremos lá.

  weekday("19/01/2007")  

 

Transformando o número em palavra (segunda, terça…)

Depois de recuperar o dia da semana você pode transformar o número retornado em palavra, para isso vamos utilizar um array

arrayDS = array("Domingo","Segunda-Feira","Terça-Feira","Quarta-Feira","Quinta-Feira","Sexta-Feira","Sábado")

diadasemana = arrayDS(weekday(now())-1)

Como o array começa em ZERO e a resposta do weekday começa em 1 faço a subtração por 1 para ajustar o numeral do dia da semana com o array.

 

Simples, fácil e nenhuma novidade para quem já programa.

Dedicado aos iniciantes!

 

Quer aprender mais?

Cookies em ASP

Dando uma quebra nos textos hard-developer do @chris, resolvi escrever um post simples e rápido sobre um assunto mais simples ainda: cookies em ASP.

Uma leitura rápida sobre:

  1. O que são cookies
  2. Porquê usar cookies?
  3. Programando
    1. Criar um Cookie
    2. Configurar um Cookie
    3. Ler um Cookie
  4.  Dicas e macetes

 

O que são cookies?


Isso são cookies.

 

"Cookies" são dados que ficam armazenados no computador do usuário em formato de texto e podem ser resgatados pelo servidor em outro momento, mesmo que o usuário saia do site e feche o navegador esses dados podem ficar armazenados.

Permitir ou não o uso de cookies é uma opção do usuário e a maioria dos navegadores por padrão aceita o uso deles.

 

Porquê usar cookies?

Usar cookies ou session? Vamos lá…

A session sempre é fechada quando o usuário não está navegando no seu site, para informações que podem ficar guardadas sempre você pode (e deve) utilizar cookies.

Por exemplo, o usuário fez um comentário no seu site, a próxima vez que ele for comentar já estará gravado no formulário o seu nome e e-mail pois estes foram armazenados em cookies quando ele executou essa ação pela primeira vez.

Escrevi aqui como fazer um sistema de login em ASP que utiliza apenas session, quando o usuário fica muito tempo sem nenhuma ação ou quando ele fecha a página ele automaticamente é deslogado, se as informações fossem gravadas através de cookies ele poderia permanecer logado.

Definir quando utilizar Cookies e Sessions depende da intenção e segurança que a aplicação que está sendo desenvolvida deve ter.

 

Programando

Agora que você já sabe como funciona e quando deve ser utilizado, vamos botar a mão na massa e descobrir como criar, ler e configurar cookies em ASP[bb] . 😀

Como criar um Cookie em ASP?

Para criar um cookie em ASP é extremamente simples, vamos ao código:

<%
Response.Cookies("usuario").item("apelido") = "Guilherme Serrano"
Response.Cookies("usuario").item("site") = "https://andafter.org"
%>

Neste caso foi armazenado um cookie chamado usuario que tem dois itens, um chamado apelido com valo de Guilherme Serrano e outro chamado site com valor de https://andafter.org

 

Como configurar um Cookie em ASP?

Cookies não tem muito o que configurar, mas você pode determinar o tempo de expiração, ou seja, até quando este cookie deve ficar armazenado no computador do usuário.

<%
Response.Cookies(“usuario”).Expires = “01/07/2008”
%>

Neste exemplo você tem uma data definida para que o cookie expire, e esta linha só serve para ilustrar como funciona pois dificilmente você determina datas fixas para um cookie expirar, né?

Então você pode usar o seguinte código:

<%
Response.Cookies(“usuario”).Expires = DateAdd("d",7,Now)
%>

Agora você definiu que o cookie usuário tem 7 dias de duração, através do DateAdd. O que você fez foi somar 7 dias "d",7 a data atual Now.

 

Como ler um Cookie em ASP?

Você gravou as informações no computador do usuário, vamos ao código para receber essas informações:

<%=Request.Cookies(“usuario”).item("apelido")%>

Simples assim, usando o exemplo anterior nesse caso você teria como retorno Guilherme Serrano. Um exemplo prático, no formulário de comentar deixar preenchido com o apelido do usuário:

<form action="comentar.asp" method="post">
<input type="text" value="<%=Request.Cookies(“usuario”).item("apelido")%>">
</form>

 

Dicas e macetes

Quando você não define data de expiração o cookir funciona como uma session (chamado cookie de sessão) e é apagado logo que o usuário sai da página.

Pense bem se é melhor usas cookies ou session, cookies não oferecem segurança: as informações gravadas podem ser acessadas a qualquer momento por qualquer usuário do computador que saiba (ou não!) o que está fazendo. Não grave senhas e dados confidenciais em cookies, se isso for necessário (nunca é, pois sempre existem outros métodos) utilize algum sistema de criptografia.

Em um sistema de login por exemplo, se o usuário estiver em um computador público ele ficará logado e a próxima pessoa que acessar o site terá acesso a conta da pessoa – para evitar isso o usuário deve ter a opção ao se logar de "lembrar de mim" ou não. 😉

Para gerar corretamente cookies que utilizam variáveis dinâmicas para o nome você precisa deixar a opção Buffer como true, pra isso insira no início da página a linha:

<%
´Torna o Buffer True
Response.Buffer = True
variavel = "apelido"
´Gera um cookie com uma variável, se o buffer não estivesse como true esse cookie não seria gerado corretamente.
Response.Cookies("usuario").item("" & variavel & "") = "Guilherme Serrano"
%>

 

Bom, se alguém tiver alguma coisa para adicionar comentem aí que eu atualizo o post, certo? 😉

Como fazer um login em ASP sem banco de dados

Buenas povo!

Aqui vai um exemplo prático de como fazer um sistema de login simples em ASP[bb] , com dois níveis de usuários (e apenas dois usuários) mas sem utilizar Banco de Dados[bb]

Vamos iniciar fazendo o formulário de login, que ficará no arquivo default.asp, e será assim:

 

<form action="login.asp?a=login" method="post" name="flogin" id="flogin">
<p>Usuário
<input type="text" name="usuario" id="usuario">
</p>
<p>Senha
<input type="text" name="senha" id="senha">
</p>
<input type="submit" name="Login" id="Login" value="Login">
</form>
<%
response.write session("mensagem")
session("mensagem") = ""
%>

 

 

Perceba que a página do formulário imprime a sessão "mensagem", logo você vai entender o motivo. Com o formulário criado, precisamos de uma página que vá:

  1. Receber os dados do formulário
  2. Verificar o usuário e a senha
  3. Criar os cookies ou sessões para autenticar o usuário

A página que fará isso se chamará login.asp, e o código dela:

<%
if request.querystring("a") = "login" then
    dim user
    dim senha
    user = request.form("usuario")
    senha = request.form("senha")
    ´Verifica se é o administrador
    if user = "andafter" then
        if senha = "senhaaqui" then
            ´ Se usuário e senha conferem cria as sessões e redireciona para a página logado.asp
            session("usuarioOD") = "andafter"
            session("nivelOD") = 10
            response.redirect "logado.asp"
        else
            ´ Se a senha não conferir manda devolta para o formulário, com a sessão mensagem informando erro no usuário ou senha
            session("mensagem") = "Usuário ou senha não encontrados"
            response.redirect "default.asp"
        end if
    end if
    if user = "odesenvolvedor" then
        if senha = "blabla" then
            session("usuarioOD") = "odesenvolvedor"
            session("nivelOD") = 5
            response.redirect "logado.asp"
        else
            session("mensagem") = "Usuário ou senha não encontrados"
            response.redirect "default.asp"
        end if
    end if
    ´Se não veio com ação nenhuma envia para o formulário
    session("mensagem") = "Usuário ou senha não encontrados"
    response.redirect "default.asp"
end if
%>

Agora o usuário já está "logado" e o que falta é impedir o acesso as páginas restritas para quem não estiver logado. Vamos fazer isso verificando a existência da session "nivelOD".

Como essa verificação é necessária em todas as páginas, vamos criar um arquivo chamado seguro.asp que fará a verificação, depois usando include vocêd eve adicionar esse arquivo em todas as páginas restritas do site.

Código do seguro.asp:

<%
if session("nivelOD") = "" then
    session("mensagem") = "Você não está autorizado a acessar esta página."
    response.redirect "default.asp"
end if
%>

Pronto, os usuários que não estiverem logados serão redirecionados para a default.asp, tudo o que você precisa fazer é dar um include da página seguro.asp no início de todas as página protegidas.

Fácil, não?

Se tiverem dúvidas perguntem pro Chris Benseler, críticas e sugestões utilizem os comentários.

Como gerar números random em ASP?

Como sortear um número randômico em asp

Aqui vai uma função bem simples para gerar números randômicos em ASP sem complicação, possibilitando delimitar o máximo e o mínimo.

Dim menor, maior, sorteado
RANDOMIZE
meno = 1
maior = 5
sorteado = Int((maior-menor+1)*Rnd+menor)

 

Para aplicação prática do número sorteado para banners rotativos, por exemplo, você pode utilizar um SELECT CASE, como o exemplo abaixo:

SELECT Case sorteado

Case "1"
    banner = "banner1.swf"
Case "2"
    banner = "banner2.asp"

end select

 

Exemplo de aplicação

Estou usando esse random em asp para exibir os anúncios com a API Boo-Box (no Shopping a direita do texto).

Quando não existem tags cadastradas para aquela publicação um Random é usado para selecionar tags pré-definidas (com o select case) por mim para montar a vitrine.

Se existem tags são usadas, senão o random, então sempre existem produtos para visualizar.

 

Espero ter ajudado!
Dúvidas, críticas e contribuições nos comentários… 😉

Enviar trackback em ASP

Buenas povo.

Aqui vai o script que desenvolvi aqui para o And After para o envio de trackbacks. Simplifiquei ele, e a forma de pegar as variáveis que utilizei foram via formulário.

<%
url = "https://andafter.org/publicacoes/116.asp"
title = "Enviar trackback em ASP"
excerpt = "No And After já foi explicado como…"
blog_name = "And After"

dados = "url=" & url & "&title=" & title & "&excerpt=" & exerpt & "&blog_name=" & blog_name

dim xmlhttp
set xmlhttp = server.Createobject("MSXML2.ServerXMLHTTP")
urlenvia = "http://urlQUEvaiRECEBERtrackbak.com"

xmlhttp.Open "POST",urlenvia ,false
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlhttp.send DataToSend
%>

Bom, aí está bem simples e acredito que fácil de entender. A parte em vermelho somente monta a linha da variável dados, que contém as informações que serão enviadas para o site especificado na variável urlenvia.

Fiz diversos testes aqui e só consegui fazer o envio com o script colocado no início da p&aaacute;gina, acho que o Objeto MSXML2.ServerXMLHTTP tem que ser criado antes de qualquer outro, levei algum tempo para descobrir o que estava dando erro.

Como está o script não é dinâmico, mas resgatando todas variáveis através do request.form(str) você pode criar um formulário para o envio de trackback ou até criar uma ferramenta que envie trackback para diversas urls junto. Uma dica para quem quer fazer isso é usar o split para separar todas as urls e depois criar um loop, enviando uma trackback para cada url.

Tentei fazer isso com 2 urls e verifiquei que a primeira url foi enviada corretamente, mas a segunda não. Agora não sei se foi porque enviei duas trackbacks para um mesmo domínio e o WordPress bloqueou automaticamente ou se realmente foi algum erro de script. Quando eu testar, volto a escrever sobre o assunto. 😉