Codificação de caracteres

26 - Fevereiro - 2008

 Texto obtido de reportagem da Revista W (www.revistaw.com.br) Ano 7 Nº 82

A codificação de caracteres é o sistema pelo qual letras, dígitos e outros simbolos são expressos como valores numéricos que um computador pode entender. Um arquivo (como um documento HTML, por exemplo) é salvo com uma codificação específica. Essa informação é enviada para o navegador e outros agentes de usuário para que os bits e os bytes possam ser interpretados corretamente. Se a codificação declarada não bate com a que está sendo usada, o browser irá trocar vários caracteres de sua página, deixando-a ilegível - tanto para os internautas como para os mecanismos de busca.

Essa reportagem fala sobre as opções de codificação e sobre o que acontece quando é feita uma escolha errada. Essa decisão afeta a quantidade de caracteres que você pode usar em uma página. Letras latinas são normais raramente são um problema, mas algumas linguagens precisam de mais letras que outras. Há também idiomas, como o nosso português, que possuem vairações como acentos e cedilha. Além disso, é claro, existem linguagens que não usam nenhuma letra latina. Se você deseja qua a pontuação e símbolos especiais apareçam corretamente, a escolha da codificação se torna crítica.

DOCUMENTOS WEB

Alguns fatores devem ser levados em consideração antes de escolher uma forma de codificação para a sua página. Entre eles estão o conjunto de caracteres a ser usado, com que codificação o seu editor salva arquivos e quais codificações são suportadas pelos navegadores dos visitantes do site.
O primeiro parâmetro que deve ser considerado é a quantidade de caracteres que você irá precisar. Obviamente, um site escrito em uma única linguagem usa um conjunto de caracteres mais limitado que um multilíngüe - especialmente um que misture caracteres latinos com cirílicos, gregos, hebreus, arábicos e assim por diante.
Se você deseja usar aspas, traços e outros tipos de pontuação de modo tiporaficamente correto, as codificações “normais” irão falhar. O mesmo pode ser dito a respeito de símbolos matemáticos ou outros caracteres especiais.
Alguns desenvolvedores preferem usar editores como o Bloco de Notas ou o Vim (www.vim.org) para criar suas páginas. Outros optam por ferramentas WYSIWYG como o Dreamweaver. Indiferente de preferências pessoais, a escolha do editor afeta a escolha da codificação. Alguns deles podem salvar apenas com um tipo de codifivação e não vão nem mesmo lhe informar qual. Outros podem salvar em dezenas de codificações diferentes, mas requerem que você saiba qual delas irá preencher suas necessidades.
Mas o seu fluxo de publicação não consiste apenas em um editor. Sempre há um servidor web no final da corrente, mas podem existir outros componentes no meio: bancos de dados, linguagens de programação, frameworks e servidores de aplicação, por exemplo. Cada um desses componentes pode afetar a sua escolha de codificação. Talvez o banco de dados suporte apenas um tipo específico; o mesmo pode ocorrer com a linguagem de criação de scripts.
Não é possível aqui enumerar as capacidades de todos os diferentes editores, bancos de dados e outros aplicativos nesta reportagem, simplesmente porque há muitos deles. Você precisará olhar a documentação antes de escolher a codifivação az usar. Algumas delas, como US-ASCII, as séries ISO 8859 e UTF-8, são amplamente suportadas, outras não. É sempre melhor evitar codificações mais excêntricas, especialmente em sites que são direcionados a audiências internacionais.

BREVE HISTÓRIA DA CODIFICAÇÃO

Os primeiros computadores não tinham uma codificação padronizada de caracteres. Isso, porém, não importava muito, já que os computadores raramente se comunicavam uns com os outros na época. Quando a comunicação entre computadores se tornou possível, a necessidade da criação de padrões tornou-se aparente. Um dos mais comuns era o EBCDIC. Outro que se popularizou foi o American Standard Code for Information Interchange, também conhecido como ASCII. A versão norte-americana, US-ASCII, foi padronizada como ISO-646.
O ASCII usa apenas sete bits (zeros e uns), o que significa que esse conjunto tem 128 posições, de 0 ao 127. A faixa 0-31 é reservada para controles C0 (quebras de linha e espaços, por exemplo) e a posição 127 é reservada para o DEL (delete). Isso deixa um total de 95 caracteres imprimíveis. Isso é o suficiente para o alfabeto do inglês em caixa alta e em caixa baixa, mais os dígitos e sinais comuns de pontuação (e alguns menos comuns). Mas não há espaço suficiente para conter caracteres acentuados necessários em muitas linguagens européias, deixando na mão qualquer idioma que não use letras latinas.
Assim foram criadas diversas versões do ASCII, mutuamente incompatíveis que não funcionam para trocas de dados internacionais.
A série ISO 8859 foi uma tentativa de fornecer alternativas para linguagens além do inglês. Trata-se de uma espécie de ASCII turbinado, com os mesmos 128 pontos de código iniciais em todas suas versões. O ISO 8859, porém, usa oito bits e assim pode representar 256 caracteres (0-255). A faixa que vai de 128 a 159 é reservada a caracteres de controle C1 (semelhantes aos controles C0, porém menos usados).
A versão mais comum para linguangens ocidentais, inclusive o português, é o ISO 8859-1, também conhecido como Latin-1. Ela contém uma série de versões acentuadas de vogais, além de diversos caracteres especiais. Os países da Europa aodtaram o ISO 8859-15, que acomoda o sinal do Euro.
A Microsoft - que normalmente não adota padrões de outros quando pode criar os próprios - também cunhou algumas codificações de caracteres. Essas eram chamados de “code pages” no DOS e CP850 era o padrão usado para linguagens ocidentais.
Um dos sistemas de codificação mais comuns da Microsoft é conhecido como Windows-1252. Mesmo sendo muito semelhante aos ISO 8859-1, ele não é idêntico. A faixa reservada para os caracteres de controle C1 nas codificações ISO é usada pela Microsoft para fornecer alguns caracteres úteis que não estão disponíveis nas séries ISO, como aspas e traços tipologicamente corretos.
Codificações específicas foram criadas para linguagens que não utilizam caracteres latinos. O problema é que não havia uma que pudesse ser usada para combinações dessas linguagens.

UNICODE

A solução para esse problema é chamada Unicode - um repertório que contém a maioria dos caracteres usados nas linguagens do mundo. Ele pode acomodar milhões de caracteres e já contém centenas de milhares. O Unicode é dividido em “planos” de 64K cada. O mais usado é o primeiro plano, conhecido como plano multilíngüe básico (BMP - Basic Multilingual Plane). Os primeiros 256 pontos de código no Unicode são compatíveis com o ISO 8859-1, o que também significa que seus primeiros 128 pontos são compatíveis com US-ASCII. Os pontos de código no unicode são escritos no formato hexadecimal, precedido um “U” maiúsculo e um sinal de mais. Por exemplo, U+0041 refere-se ao “A latino maiúsculo”.
A International Organization for Standarlization (ISO) padronizou uma versão do Unicode que foi chamada ISO 10646 (o número não é uma coincidência, compare-o com o ISO 646 do US-ASCII). Há algumas pequenas diferenças entre o Unicode e o ISO 10646.
O ISO 10646 é importante porque é usado pelo HTML. Mas ele é apenas um repertório, por isso é necessária uma codificação para companhá-lo. Como um repertório pode representar milhões de pontos de código, uma codificação um a um seria muito ineficiente. Seriam precisos 32 bits para cada caractere - um grande desperdício para linguagens ocidentais. Se 32 bits equivalem a quatro octetos, cada octeto é um agrupamento de 8 bits similar, mas não idêntico, a um byte.
Há uma codificação referente ao Unicode denominada UTF-32, que raramente é usada. Outra é o UTF-16, que usa dois octetos para cada caractere. Essa também não chegou nem perto de se tornar popular. Em vez disso, uma codificação mais eficiente, principalmente para linguagens ocidentais, conhecida como UTF-8 (8-bit Unicode Transformation Format), tornou-se muito utilizada. Ela usa um número variáveil de octetos para representar caracteres diferentes. A faixa ASCII (U+0000 até U+007F) usa uma codificação um a um. Para outros caracteres, dois, três ou quatro octetos são necessários. Na teoria, o UTF-8 pode empregar até seis octetos para codificar certos caracteres.

ESCOLHA SUA CODIFICAÇÃO

Para um site apenas em inglês, isso não importa muito. A menos que o autor queira usar alguma pontuação tipograficamente correta, como aspas francesas, o velho ASCII é suficiente. O ISO 8859-1, porém, acabou se tornando uma espécie de padrão para sites ocidentais e oferece maiores possibilidades.
Para sites em português e linguagens como francês, espanhol, italiano, alemão, norueguês, dinamarquês ou finlandê, o padrão ISO 8859-1 funciona satisfatoriamente. Os que precisam dos diacríticos do tcheco e do polonês, ou alfabetos completamente separados como grego ou cirílico, podem optar por outras versões da série ISO 8859.
Como foi mencionado anteriormente, codificações especializadas existem para o hebreu, arábico ou letras manuscritas orientais. Mas há casos em que você precisa misturar inglês, russo, grego e japonês no mesmo site oumesmo na mesma página.
É recomendável usar o UTF-8 sempre que for possível, já que ele pode representar qualquer caractere do repertório ISO 10646. Mesmo que você escreva apenas em inglês, o UTF-8 lhe dá acesso a diversos tipos de traços e marcações. E se você precisar escrever em grego ou japonês, com o UTF-8 é possível fazer isso sem precisar se preocupar com entidades e NCRs. Num site multilíngüe, é possível usar diferentes codificações nas páginas, mas a manutenção disso se tornaria um pesadelo. Por isso, é uma boa idéia usar o UTF-8 e parar de se aborrecer com o problema.

REFERENCIAS DE CARACTERES

Se precisar usar um caractere que não pode ser representado pela codificação que você escolheu, você pode recorrer a entidades HTML ou a referências numéricas de caracteres (NCR - Numeric Character References). Uma entidade é um nome simbólico para um caractere particular, como o © para o símbolo ©. Esse tipo de referência sempre deve começar com um ‘e comercial’ (&amp ;) e teminar com ponto-e-virgula (;). Já o NCR usa um número para referenciar o caractere. Assim, o NCR para o símbolo © é © (decimal) ou © (hexadecimal). Entidades e NCRs funcionam tão bem quanto caracteres literais, mas usam mais bytes e tornam o código fonte mais difícil de ler. Além disso, são mais propensos a erros.

REPERTÓRIO DE CARACTERES

Um conjunto de caracteres distintos, sem uma apresentação específica para computadores. O repertório por si nem mesmo define uma ordem para esses caracteres.

DIACRÍTICOS

Um diacrítico é um sinal ou acento que se coloca sobre, sob ou através de uma letra para alterar o seu som o upara marcar qualquer outra característica lingüística.


Fazer menu voltar

16 - Fevereiro - 2008

Uma grande dúvida aos que estão começando com o flash…
como fazer uma animação voltar, como um botão

explicarei como fazer uma animação de botão voltar… é bem simples

crie um botão animado, mas que seja convertido como movieclip
** A animação tem que ser feita dentro do MovieClip OK

depois de fazer a animação volte para a primeira cena e clique sobre o MovieClip
na barra de propriedades, mas especificamente no nome da instancia defina como “menu1″
sem as aspas!!

clique no primeiro quadro(da cena atual), aperte F9 para abrir o painel ações e cole o seguinte código

//menu1
_root.menu1.onRollOver = function() { _root.menu1o = true; }
_root.menu1.onRollOut = function() { _root.menu1o = fstartlse; }
_root.menu1.onRelease = function() { getURL("conheca.htm"); }//URL do botão

_root.menu1.onEnterFrame = function() {
if (menu1o) { _root.menu1.nextFrame();
} else { _root.menu1.prevFrame();}
};

Pronto!
Aperte CTRL+Enter e veja a mágica xp


Lista de ServerVariables

1 - Fevereiro - 2008

ServerVariables

A sintaxe para o uso dessa coleção é a mesma usada nas outras coleções do objeto request: (objeto.coleção(”elemento”)) - request.ServerVariables(”variável_de_ambiente”). A varável de ambiente é uma entre as várias existentes, como por exemplo: request.ServerVariables(”SCRIPT_NAME”). Este contém as informações sobre o PATH da raiz virtual do servidor até o nome do arquivo como: adm/arquivos/teste.asp. Abaixo listaremos as variáveis de ambiente dessa coleção e sua respectiva função.

ALL_HTTP - Lista todos os headers HTTP enviados pelo browser do cliente ao servidor. Informações tais como: host origem, página de origem, caracteristicas do navegador cliente, entre outras.

ALL_RAW - Retorna todas as informações enviadas por cabeçalho HTTP da página em seu estado original.

APPL_MD_PATH - Devolve o caminho lógico do arquivo ASP em questão (path do metabase).

APPL_PHYSICAL_PATH - Caminho físico do arquivo no disco. Este corresponde ao caminho lógico do APPL_MD_PATH (path do metabase).

AUTH_TYPE - Método de autenticação utilizado pelo servidor para validar usuários que solicitam um script.

AUTH_USER
- Nome de usuário fornecido ao servidor em caso de não permitir acesso anônimo ao diretório. Este poderá ser o nome de um usuário de domínio ou usuário do Windows.

AUTH_PASSWORD - Senha referente ao usuário logado. Esta variável apenas se encontra disponível no modo básico de autenticação (basic authentication). Para este, é necessário o login ser feito pela caixa de diálogo ao requisitar a página.

CERT_COOKIE - ID do certificado digital do cliente.*

CERT_FLAGS - Valor de dois bits: bit 0 igual a 1 indica se o certificado do cliente está presente, bit 1 igual a 1, indica que a autoridade de certificação do certificado do cliente é inválida.*

CERT_ISSUER - Campo Issuer do certificado do cliente (O=MS, OU=IAS, CN=usuário, C=USA).*

CERT_KEYSIZE - Número de bits na chave de conexão Secure Sockets Layer - SSL. Ex.: 64, 128.*

CERT_SECRETKEYSIZE - Número de bits na chave do “Server certificate private” (chave privada).*

CERT_SERIALNUMBER - Campo Serial Number do certificado digital do cliente.*

CERT_SERVER_ISSUER - Campo Issuer do certificado do servidor.*

CERT_SERVER_SUBJECT - Campo Subject do certificado SSL do servidor.*

CERT_SUBJECT - Campo Subject do certificado do cliente.*

CONTENT_LENGTH - Tamanho em bytes, do conteúdo de uma requisição request ao servidor.

CONTENT_TYPE - Tipo de requisição enviada ao servidor pelo cliente.

GATEWAY_INTERFACE - Tipo de interface CGI usada no servidor web para manipular a solicitação (request).*

HTTP_nomeheader - Valor armazenado no header especificado. Podemos destacar os mais comuns: HTTP_ACCEPT, HTTP_ACCEPT_ENCODING, HTTP_ACCEPT_LANGUAGE, HTTP_COOKIE, HTTP_USER_AGENT, HTTP_REFERER.

HTTPS
- Retorna à uma solicitação request, dizendo se o canal é seguro (ON) ou não seguro (OFF).

HTTPS_KEYSIZE - Número de bits na chave de conexão Secure Sockets Layer - SSL.*

HTTPS_SECRETKEYSIZE - Número de bits na chaver do “server certificate private”.*

HTTPS_SERVER_ISSUER - Campo Issuer do certificado do servidor.*

HTTPS_SERVER_SUBJECT - Campo subject do certificado do servidor.*

INSTANCE_ID - ID, em formato texto, para a instância do Internet Information Server (IIS).*

INSTANCE_META_PATH - Path do metabase para a instância do Internet Information Server (IIS) que responde à solicitação (request).*

LOCAL_ADDR - Retorna o endereço lógico do servidor onde foi feito a requisição (o endereço do servidor onde se encontra o arquivo chamado).

LOGON_USER - Conta do usuário usada para efetuar o logon no Windows.*

PATH_INFO - Caminho virtual do arquivo que realizou a requisição, apartir da raiz do servidor. Ex.: /arquivos/documento.asp

PATH_TRANSLATED - Versão da variável “PATH_INFO” transformado em path físico.

QUERY_STRING - Retorna as variáveis passadas por cabeçalho HTTP à uma página via QueryString. Estes são apresentados apartir do ponto de interrogação - ? . Ex.: arquivo.asp?id=1&opcao=2=versao=a. Esta varável retorna: id=1&opcao=2=versao=a

REMOTE_ADDR - Retorna endereço IP da máquina cliente que requisitou algo ao servidor.

REMOTE_HOST - Nome do host que requisitou algo ao servidor.

REMOTE_USER - Nome da máquina que solicitou o arquivo asp ao servidor. Disponível somente se disponível.

REQUEST_METHOD - Método usado pela requisição ao servidor (GET ou POST)

SCRIPT_NAME - Path virtual do arquivo ASP requisitado ao servidor.

SERVER_NAME - Nome do servidor onde foi realizada a requisição (pode ser retornado o endereço IP, DNS alias ou nome do host).

SERVER_PORT - Retorna o número da porta onde foi realizada a requisição ao servidor.

SERVER_PORT_SECURE - Retorna 0 ou 1. Diz se a porta onde é recebida as solicitações pelo servidor é segura (1) ou não segura (0).

SERVER_PROTOCOL - Retorna nome e versão respectivamente do protocolo usado pelo servidor WEB para interpretar a solicitação. Ex.: HTTP/1.1

REMOTE_USER - Retorna nome e versão do servidor WEB. Ex.: Microsoft-IIS/5.1

URL - Endereço URL base requisitado (sem a QueryString) pelo browser cliente.*

**Lista retirada de vários sites


Flash Preloading com barra crescendo

26 - Janeiro - 2008
Olá galera…
depois de um bom tempo fora voltei a ativa… ou vou tentar ficar na ativa né xp
Dessa vez volto com o flash, nosso amigo para qualquer hora
Esse é um tutorial simples… bem simples
- Inicialmente crie um retangulo largo e de altura pequena
- Selecione-o todo e aperte F8 e converta-o em clipe de filme
- Após converter com ele selecionado, vá na barra de propriedade e na campo nome da instancia coloque “barra”, mas lógico que é sem aspas
- Confirme com um enter, e clique novamente sobre o clipe de filme e aperte F9
- Cole o código abaixo e feche a janela de ações
- Dê um duplo clique no Clipe de Filme e Crie uma caixa de texto do tipo dinamica
- Selecione a caixa de texto e na barra de propriedades terá um campo chamado “var”
- Nesse campo digite “pct” sem as aspas hein!!
Agora jogue para o ar e pronto!!
código:
onClipEvent (load) {
total
= _parent.getBytesTotal();
_parent.stop();
barra._xscale
= 0;
}
onClipEvent (enterFrame) {
loaded
= _parent.getBytesLoaded();
pct
= Math.floor((loaded/total)*100);
barra._xscale
= pct;
if (pct eq 100) {
_parent.play();
}
pct
= pct add %;
}

Function para remover acentos

10 - Setembro - 2007

Use a função abaixo:

Function RemoveAcentos(strTexto)
Dim strComAcentos
Dim strSemAcentos
Dim strResultado
‘Conjunto de Caracteres com acentos
strComAcentos = “ÁÍÓÚÉÄÏÖÜËÀÌÒÙÈÃÕÂÎÔÛÊáíóúéäïöüëàìòùèãõâîôûêÇç “
‘Conjunto de Caracteres sem acentos
strSemAcentos = “AIOUEAIOUEAIOUEAOAIOUEaioueaioueaioueaoaioueCc_”
intCont = 0
strResultado = strTexto
Do While intCont < Len(strComAcentos)
intCont = intCont + 1
strResultado = Replace(strResultado, Mid(strComAcentos, intCont, 1), Mid(strSemAcentos, intCont, 1))
Loop
RemoveAcentos = strResultado
End Function

Este código tem que estar na mesma página onde você usará a função. Quando quiser usar faça assimEx:

1 nome = MEU noMe É EsTe AQui
2 nomecurto = RemoveAcentos(nome)
3 nomecurto = Lcase(nomecurto)
o Lcase usado acima é para deixar tudo minusculo =)

Colocando scroll numa tag div

30 - Agosto - 2007

você ainda usa iframe???

Hoje vou apresentar uma dica que está sendo usada cada vez mais, ainda mais hoje onde a programação está mudando para web 2.0 onde o uso o ajax está dando uma nova cara para internet

o códido é simples

<div id=”conteudo”>texto</div>

crie primeiro uma tag div com um id. Exemplo:

Depois entre a tag head insira o codigo css:

1 <style>
2 #conteudo {
3 width:200px;
4 height:100px;
5 overflow: auto;
6 }
7 </style>
Traduzindo:#conteudo { => Define o estilo da id conteúdo, seja em qualquer tag
width:200px; => Define 200 pixels de largura para div
height:100px; => Define 100 pixels de altura para div
overflow: auto; => Aqui acontece a mágica. A função overflow é responsável por criar uma barra de rolagem na div, já o auto é para que apenas mostre a barra quando necessário
} => fecha o codigo css

Retirando acentos, espaços e caracteres especiais de um texto

27 - Agosto - 2007

Este é um exemplo simples de replace em PHP
Utilize-o para guardar o texto num BD ou onde você precisar


No código acima você pode usar a váriavel $frase pra pegar o texto de um campo de formulário usando o $_POST['nomedocampo']; e depois se quiser gravar no banco de dados apenas chame esta mesma váriavel


Saiba todos os componentes que rodam no seu servidor ASP

21 - Agosto - 2007

Olá pessoal!!!
Estou devolta depois de algum tempo fora, mas estou trazendo uma mão na roda para todos os usuários de ASP.

Como saber quais os componentes que rodam no meu servidor??
- Ora! basta ver pelo plano que comprei…
- Mas existe um jeito mais fácil??

SIMM!!!

Abaixo tem um código para se saber quais são estes componentes.
Copie o código e cole em um arquivo limpo. Depois salve-o como verficar_componentes.asp

Boa sorte!!

1 <% @ Language="VBScript" %>
2 <% Option Explicit %>
3 <%
4 Dim theComponent(12)
5 Dim theComponentName(12)
6
7 componentes
8 theComponent(0) = "ADODB.Connection"
9 theComponent(1) = "SoftArtisans.FileUp"
10 theComponent(2) = "AspHTTP.Conn"
11 theComponent(3) = "AspImage.Image"
12 theComponent(4) = "LastMod.FileObj"
13 theComponent(5) = "Scripting.FileSystemObject"
14 theComponent(6) = "SMTPsvg.Mailer"
15 theComponent(7) = "CDONTS.NewMail"
16 theComponent(8) = "Jmail.smtpmail"
17 theComponent(9) = "SmtpMail.SmtpMail.1"
18 theComponent(10) = "Persits.Upload.1"
19 theComponent(11) = "UnitedBinary.AutoImageSize"
20 theComponent(12) = "aspSmartUpload.SmartUpload"
21
22 apelido do componente!
23 theComponentName(0) = "ADODB"
24 theComponentName(1) = "SA-FileUp"
25 theComponentName(2) = "AspHTTP"
26 theComponentName(3) = "AspImage"
27 theComponentName(4) = "LastMod"
28 theComponentName(5) = "FileSystemObject"
29 theComponentName(6) = "ASPMail"
30 theComponentName(7) = "CDONTS"
31 theComponentName(8) = "JMail"
32 theComponentName(9) = "SMTP"
33 theComponentName(10) = "Persits Upload"
34 theComponentName(11) = "AutoImageSize"
35 theComponentName(12) = "Smart Upload"
36
37 Function IsObjInstalled(strClassString)
38 On Error Resume Next
39 IsObjInstalled = False
40 Err = 0
41 Dim xTestObj
42 Set xTestObj = Server.CreateObject(strClassString)
43 If 0 = Err Then IsObjInstalled = True
44 Set xTestObj = Nothing
45 Err = 0
46 End Function
47 %>
48 <html>
49 <head>
50 <title>O q tem aqui nesse site?</title>
51 </head>
52 <body>
53 <table width="100%" border="1" cellspacing="0" cellpadding="0">
54 <tr>
55 <td align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><b>Componentes
56 instalados:</b></font></td>
57 </tr>
58 <tr>
59 <td> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
60 <table border="0" cellpadding="0" cellspacing="0" width="100%">
61 <%
62 Dim i
63 For i=0 to UBound(theComponent)
64 If Not IsObjInstalled(theComponent(i)) Then
65
66 Else
67 Response.Write "<tr>" & vbCrLf
68 Response.Write "<td width=""100%"">" & vbCrLf
69 Response.Write "<b>" & theComponentName(i) & "</b>" & vbCrLf
70 Response.Write "</td>" & vbCrLf
71 Response.Write "</tr>" & vbCrLf
72 End If
73 Next
74 %>
75 </table>
76 </font>
77 </td>
78 </tr>
79 </table>
80
81 </body>
82 </html>

Newsletter em arquivo de texto

6 - Agosto - 2007

Mais um simples código em php. Este será um simples exemplo de newsletter.
apenas gravando os dados em um arquivo de extensão txt

crie um formulário com um campo para pessoa digitar o e-mail dela

direcione o formulário para a página newsletter.php

crie um arquivo novo e salve-o como newsletter.php

Antes da tag <html> cole o código


 

bem o código está todo comentado, caso queira fazer alguma modificação fique à vontadeSalve as modificações feitas.

Crie um arquivo em branco no bloco de notas com o nome de email.txt

envie as 3 páginas para seu servidor. Defina um chmod de 777 no arquivo email.txt para que possa ser escrito textos no arquivo.

pronto, agora sempre que for mandar e-mail para quem se cadastrou no seu site basta acessar o arquivo email.txt e copiar os e-mails e colar no sua mensagem


e-mail em formatação html

6 - Agosto - 2007

Está tentando fazer um formulário de e-mail mas está com dificuldades pois as tag’sd html não funcionam ???

bem com o código abaixo vocês poderão enviar do jeito que quiser o e-mail, podendo ate inserir imagens


    <?php
    //Pegando dados do formulário
    // crie váriaveis para pegar os dados do seu formulário
    $nome = $_POST[”nome”];
    $email = $_POST[”email”];
    $mensagem = $_POST[”mensagem”];
    //—————————————————

    $destino = “e-maildequemvaireceber@provedor.com.br“;
    $mailheaders = “From: $email\r\n”;
    $mailheaders .= “MIME-version: 1.0\r\n”;
    $mailheaders .= “Content-type: text/html; charset=iso-8859-1\r\n;

    $formatacao = “<b><h2><font color="\”#006699\”">Título do Form</font></h2></b>”;
    $formatacao .= “<b>Nome completo:</b> $nome<br>”;
    $formatacao .= “<b>Mensagem:</b> $mensagem<br>”;

    mail($destino,”Contato - seusite.com.br“,$formatacao,$mailheaders);
    ?>

O que estiver em verde é o que você pode mudar, como formatação do e-mail, variáveis e coisas do tipo

O restante mude apenas se souber o que está fazendo ok!?

Use este código antes da tag html da sua pagina que receberá os dados.
Lembre-se… está página terá de ser salva com extensão .php


Fazendo um pause de x segundos

3 - Agosto - 2007

Existe alguma maneira de fazer um pause no flash???
sim sim… e é bem simples…

vou dar um exemplo de action script que pode ser usado no quadro chave para fazer com que o flash pare o filme por alguns segundos quando o filme chegar no quadro que você quer que pare o filme e depois é dado um play para continuar a animação

Abra sua animação… clique no quadro chave que você quer que pare e pressione F9 para abrir a janela ações. Agora copie abaixo o código:

1 function esperar(){
2 clearInterval(tempo);
3 play();
4 }
5 tempo=setInterval(esperar,8000)
6 stop();

Percebeu o numero 8000?? no código eu definir que a animação irá parar por 8 segundos. O cálculo é simples… digite qnts segundos você quer que a animação pare e coloque 3 zeros no final… por exemplo 15s ficará 15000, 4s ficará 4000 e assim por diante

Você pode usar esse código para criar um slideshow, que é bastante simples usando esse recurso, ou usar em outra coisa

Tá dada a dica… boa sorte a todos


Fazendo uma simples Newsletter

3 - Agosto - 2007

Vou ensinar agora como se fazer uma simples newsletter, onde o usuário digitará o e-mail dele e o e-mail será gravado num txt. dai depois você pode usar esse txt e copiar os e-mails gravados e colar no seu outlook ou dentro do seu próprio painel de e-mail seja gmail, hotmail ou outro

vamos criar primeiro o formulário, um bem simples

- Crie uma area de formulário. Dentro dela insira um campo de texto.
- no nome da caixa defina email
- clique na area vermelha do formulário e defina a url newsletter.asp

Salve esse arquivo como newsletter.htm

Vamos agora criar a newsletter.asp

- Crie um arquivo novo e antes da tag <html> cole o código abaixo

1 <%
2 email = request.Form(email)
3 dim fs,fname
4 set fs=Server.CreateObject(Scripting.FileSystemObject)
5 set fname=fs.OpenTextFile(c:\sites\tutoriais\email.txt, 8, true)
6 fname.Write(email&;)
7 fname.Close
8 set fname=nothing
9 set fs=nothing
10 %>

Agora depois da Tag Body digite uma mensagem indicando para o usuário que o e-mail dele foi cadastrado

vou explicar no cod asp as linhas coloridas… pois apenas copiar num rola né =)

set fname=fs.OpenTextFile(”c:\sites\tutoriais\email.txt”, 8, true)

set fname=fs.OpenTextFile = seta a variável fname com a propriedade fs.OpenTextFile que é responsável para abrir o arquivo x

“c:\sites\tutoriais\email.txt” = diretorio real do arquivo email.txt. Lembrando que no asp os arquivos devem ser indicados pelo diretorio total, ou seja, desde a unidade ate o arquivo

8, true = 8 é o numero responsável por adicionar cada cadastro um ápos o outro, e true cria o arquivo caso ele não exista

fname.Write(email&”;”)

fname.Write = fname foi a variavel criada pra abrir o arquivo e Write é a função que escreve no arquivo

email&”;” = isso é oq ele vai escrever… ou seja… o que tem na várivel email mais o ponto-e-virgula

simples não???
Agora basta abrir o arquivo email.txt pelo proprio browser e copiar os e-mails cadastrados e mandar suas newsletters

lembrando… salve esse arquivo como newsletter.asp

————————————————————————————

Dúvidas, sugestões ou elogios ??? Deixe seu comentário!!


Validação de Formulários

25 - Julho - 2007

Vamos criar primeiro nossa função para poder verificar se os dados do formulários estão digitados certos.

Mas antes entenda como irá funcionar nossa função:

Teoria

- Cada campo do Formulário (campo de texto, área de texto) terá de ter um nome para que possamos saber qual a caixa vai receber o código pra ser validada.

- Cada campo terá uma verificação diferente, como por exemplo: No campo nome (aonde a pessoa entrará com seus dados) podemos verificar se a pessoa digitou no minimo de 3 letras, já no e-mail temos que verificar se a pessoa digita ” @ ” ou ” . “

O codigo funcionará assim:

document.nomedoformulario.nomedocampo.instruções

document: referente ao documento atual, ou seja, a página
nomedoformulario: nome do formulário aonde se encontra os campos
nomedocampo: nome do campo a ser verificado

Para verificarmos usamos um IF para fazer comparações para que possamos comparar se a pessoa está digitando os dados certos ou não.

Pratica

Vamos começar então!!

Vamos criar um formulário com os campos:
Nome / Telefone / Celular / E-mail / Endereço / Mensagem

Eu vou usar o Dreamweaver para criação, mas você pode usar outro programa qualquer, desde que saiba mexer

- Inicie Criando uma área de formulário (menu inserir/Formulário/formulário)

- Clique na área vermelha criada, e ele selecionará todo o formulário. Na barra de propriedades mude o nome do formulário(ele deixa padrão form1) para contato. Em Ação defina a página para onde os dados do formulário serão enviados.

- Clique dentro da área do formulário e insira uma tabela com 7 linhas e 2 colunas. Na tabela criada digite os campos que a pessoa terá de inserir, mas digite-os na coluna da esquerda um abaixo do outro. Os campos são: Nome, Telefone, Celular, E-mail, Endereço, Mensagem

Depois na frente de cada campo insira as caixas de texto (coloque-as na coluna da direita) , mas para mensagem coloque uma área de texto(ou textarea), pois a pessoa poderá digitar um texto grande, por isso não pode ser campo de texto, e sim área de texto

- Agora vamos por nome nas caixas de texto e na área de texto! Abaixo vão os nomes a serem postos:

Nome: nome
Telefone: telefone
Celular: celular
E-mail: email
Endereço: endereco
Mensagem: mensagem

Deu para ver né!?!? Os nomes dos campos são em minúsculos mesmo! Sem acento, nem espaço, sem ç, nada de caractere especial.

Agora vamos para o código!

Vá para o modo Código e depois encontre a Tag <head> onde ela fecha, ou seja, quando a tag estiver assim </head>

antes da tag head onde ela fecha digite ou copie o código: ^^

1 <script>
2 function validar(){
3 if(document.contato.nome.value.length < 3){
4 window.alert(”O campo nome está vazio ou incorreto\nPor Favor verifique o campo o novamente”);
5 document.contato.nome.focus();
6 return false;
7 }
8 if(document.contato.telefone.value.length < 8){
9 window.alert(”O campo telefone está vazio ou incorreto\nPor Favor verifique o campo novamente”);
10 document.contato.telefone.focus();
11 return false;
12 }
13 if(document.contato.celular.value.length < 8){
14 window.alert(”O campo celular está vazio ou incorreto\nPor Favor verifique o campo novamente”);
15 document.contato.celular.focus();
16 return false;
17 }
18 if(document.contato.email.value.indexOf(@)==-1 || document.contato.email.value.indexOf(.)==-1 || document.contato.email.value.length < 8){
19 window.alert(O campo email está vazio ou incorreto\nPor Favor verifique o campo novamente);
20 document.contato.email.focus();
21 return false;
22 }
23 if(document.contato.endereco.value.length < 10){
24 window.alert(O campo endereço está vazio ou incorreto\nPor Favor verifique o campo novamente);
25 document.contato.endereco.focus();
26 return false;
27 }
28 if(document.contato.mensagem.value.length < 5){
29 window.alert(O campo mensagem está vazio ou incorreto\nPor Favor verifique o campo novamente);
30 document.contato.mensagem.focus();
31 return false;
32 }
33 return true;
34 }
35 </script>

Depois de ter digitado/copiado ^^ procure a tag form. No final dela, mas ainda dentro da tah adicione onsubmit=”return validar();”

Salve a página e faça o teste =)