jun
30
2009
0

Minicurso de HTML: Parte VII – Caminhos de arquivos: relativo e absoluto

Olá Pessoal,

Para complementar o assunto LINKS e IMAGENS, vamos aprender a manipular o caminho dos arquivos a serem linkados ou inseridos em nossas páginas. É um assunto importante, e usuários iniciantes costumam ter alguma dificuldade. Por isso tenham atenção e pratiquem bastante.

Caminho relativo X Caminho absoluto

Podemos classificar os caminhos de arquivos em dois tipos: absoluto e relativo. O caminho absoluto utiliza toda a estrutura de pastas e diretórios, desde a raiz, para montar a URL do arquivo. Seria algo como:

C:/Documents and Settings/All Users/Meus Documentos/sites/site/home.html

Por questões de praticidade e flexibilidade, não usamos esse tipo de caminho para montar links internos, ou seja, aqueles que apontam para páginas e arquivos dentro do nosso próprio servidor. O caminho absoluto é usado em URL’s que apontem para arquivos dentro de outro servidor. Veja um exemplo:

http://www.google.com.br ou http://www.google.com.br/intl/pt-BR_br/images/logo.gif

Já os caminhos relativos são aqueles que tomam o próprio documento HTML como referência para encontrar outros artigos. Nos caminhos relativos, partimos do documento onde criamos o link, inserimos a imagem etc., e vamos navegando pela estrutura de pastas até achar o documento a ser linkado / inserido. Usamos caminhos relativos sempre que precisamos referenciar arquivos dentro do nosso próprio servidor: imagens, vídeos, links internos etc.

Vamos estudar no decorrer desse tutorial como trabalhar com caminhos relativos. Imaginemos que exista a seguinte de estrutura de pastas e arquivos:

  • Site
    • IMAGENS
      • logo.jpg
      • foto.jpg
    • CLIENTES
    • FLASH
    • home.html
    • perfil.html
    • servicos.html
    • contato.html
  • Site2
    • IMAGENS2
      • logo2.jpg
      • foto2.jpg
    • CLIENTES2
    • FLASH2
    • home2.html
    • perfil3.html
    • servicos4.html
    • contato5.html

Linkando arquivos na mesma pasta

Eu preciso criar um link para me levar da página HOME.HTML para CONTATO.HTML. Como eu faria isso?

1
<a href="contato.html" title="Ir para a página de contato">Contato</a>

Como HOME e CONTATO são arquivos dentro da mesma pasta, para estabelecer um link entre eles basta especificar o nome do arquivo e sua extensão.

Linkando arquivos em pastas diferentes

Agora, como eu faria para inserir a imagem LOGO.JPG na página HOME? A primeira coisa que vocês devem perceber: o arquivo LOGO.JPG está na pasta IMAGENS, logo para acessá-la precisarei especificar a pasta IMAGENS no meu caminho de arquivo. Veja como ficará:

1
<img src="IMAGENS/logo.jpg" alt="Logomarca do site X" title="Logomarca do site X" />

Para especificar uma ou mais pastas necessárias para se chegar a um arquivo, basta colocar o nome das pastas e subpastas (respeitando o uso de caixa alta e caixa baixa) separados por “/”. Ficaria algo assim: PASTA/SUBPASTA1/SUBPASTA2/arquivo.jpg.

Essa estrutura é usada tanto em links, quanto em imagens, ou qualquer outra situação onde seja necessário estabelecer um caminho para um arquivo qualquer (dentro de pastas e subpastas).

Linkando arquivos em níveis diferentes

No exemplo anterior, tanto a pasta IMAGENS, quanto o arquivo HOME.HTML estão no mesmo nível, por assim dizer. Percebam que ambos se encontram dentro da mesma pasta: SITE. Por esse motivo podemos acessar diretamente a pasta IMAGENS. Porém, como eu poderia linkar a página HOME2.HTML, dentro do arquivo HOME.HTML? Os dois arquivos estão em níveis diferentes: HOME está dentro da pasta SITE; HOME2 está na pasta SITE2.

Sempre que precisarmos subir um nível, ou seja sair da nossa pasta atual, e ir para uma pasta um nível acima (do mesmo modo que navegamos pelas pastas e diretórios do Windows), basta escrever “../” no caminho do arquivo. Veja como ficará o nosso link:

1
<a href="../Site2/home2.html" title="Link para o site2">Ir para o site 2</a>

Se for necessário subir três níveis de pastas, basta usar três “../”: ../../../PASTA/arquivo.html. Trabalhar com caminhos de arquivos não é difícil ou complicado, exige apenas um pouco de atenção para a hierarquia de arquivos e pastas no site. É normal se enrolar na contagem de pastas, quando precisamos subir vários níveis, e com a prática você irá se acostumar e errar cada vez menos. Uma dica importante: sempre que você errar um caminho com vários níveis, tente adicionar ou retirar “../”, para verificar se você não errou na contagem de pastas.

Bem, por hoje é só pessoal! Próximo tutorial abordará o assunto TABELAS. Até lá.

Abraços,
Diego.

jun
29
2009
0

Curso SEO: Otimizando sites para o Google e outros buscadores

Olá Pessoal,

Irei ministrar nos dias 06 a 09 de JULHO, no Rio de Janeiro (capital), um curso de SEO: Otimização de sites para buscadores. Esse é um curso totalmente modelado por mim, com material didático próprio e minha inteira responsabilidade, ou seja: modéstia às favas, O CURSO É MUITO BOM!!!! :-)

Acessem a página do curso: http://www.diegomarques.com

Para quem não sabe SEO corresponde a um conjunto de técnicas e práticas para obter bons resultados em buscadores (Google, Yahoo! etc.). Qualquer profissional web seja designers, programadores, pessoal de marketing, empresários, blogueiros etc., podem e devem participar. Qualquer pessoa que indicar um amigo (e esse amigo se inscrever) ganha 10% de desconto na inscrição, portanto procurem aquele colega/amigo/parceiro e façam o curso junto com ele.

Acessem a página do curso (http://www.diegomarques.com) e confiram a grade curricular, valores e façam sua inscrição online. Vocês podem pagar via Boleto Bancário, Transferência ou Cartão de Crédito – tudo pela plataforma PAGSEGURO, da UOL.  Aproveitem, experimentem e indiquem!!!

Qualquer dúvida estou à disposição de vocês.

Abraços,
Diego.

jun
26
2009
0

Minicurso de HTML: Parte VI – Inserindo e trabalhando com imagens na web

Olá Pessoal,

Antes de começar: o Projetista Digital está no Twitter! A partir de agora você pode me seguir e acessar diariamente os links de artigos, blogs, sites e tudo mais relacionado a nossa área, que eu leio e encontro na web. Achei um tutorial legal, um site maneiro, qualquer coisa interessante: vou postar o link no Twitter. Então me siga no Twitter, e receba atualizações diárias sobre novidades de Design e Desenvolvimento Web. Agora voltamos com a programação normal:

O tutorial de hoje refere-se ao uso de imagens. Incluir imagens em sites é um processo simples, sem maiores complicações. A possibilidade de inserir imagens e gráficos, ajudou, e muito, a enriquecer a experiência dos internautas. Podemos criar layouts sofisticados, além de inserir fotos, gráficos e qualquer outro tipo de informação. O bom uso de imagens é uma ferramenta essencial para o sucesso de um site. As imagens influenciam na acessibilidade, usabilidade, peso e rankeamento de um site nos buscadores: em resumo, o mal uso de imagens pode comprometer seu site em várias áreas.

Formatos de imagens

Todos vocês estão acostumados com imagens: são as fotos de aniversário, natal, álbuns do Orkut, a logomarca do Google… O tempo todo usamos e vemos imagens, seja no nosso computador, seja na web. Todo arquivo possui uma extensão (arquivo HTML possuem extensão .html, Word é .doc, Excel é .xls, PowerPoint é .ppt etc.), e imagens possuem várias extensões, sendo que na web são usadas apenas três:

  • GIF – Graphics Interchange Format
  • JPG / JPEG – Joint Photographic Experts Group
  • PNG – Portable Network Graphics

Qual a diferença entre elas? GIF é um formato que admite apenas 256 cores, sendo usado em desenhos e gráficos; JPG / JPEG admite milhões de cores, é ideal para fotografias; GIF admite fundo transparente; JPG / JPEG NÃO admite fundo transparente; GIF possui melhor compressão para imagens simples; JPG / JPEG possui melhor compressão para imagens complexas; quanto maior a compressão da imagem, menor o tamanho do arquivo, e mais rápido é o carregamento da imagem na página. E como todos sabem: páginas que demoram a carregar são um pé no saco…

E o formato PNG? Esse é um formato relativamente novo, que reúne o melhor dos dois mundos: alta compressão, fundo transparente e milhões de cores para detalhamento.

O que preciso para conseguir imagens?

O XHTML apenas insere as imagens na página: criá-las, editá-las e tratá-las é por conta de ferramentas específicas (editores de imagens). As ferramentas mais usadas: Adobe Fireworks, Adobe Photoshop e Gimp. O Gimp é uma ferramenta gratuita, enquanto as outras duas são pagas. Se você precisar usar um editor de imagens, e não tem dinheiro para comprar um software pago, use o Gimp ou Infran View (uma ferramenta simples e gratuita).

Você pode também baixar imagens diretamente da internet (lembre-se que existem direitos autorais sobre imagens, apesar de não ser o escopo desse tutorial debater o tema), basta clicar com o botão direito do mouse sobre a imagem, e clicar em “Salvar Imagem Como” (o texto varia de navegador para navegador, mas você conseguirá identificar a opção).

Inserindo imagens em uma página web

Para inserir imagens em um documento XHTML você usará a tag <img />. Essa tag possui um atributo chamado SRC, onde iremos declarar o caminho da imagem que desejamos inserir na página. Veja a tag <img /> em funcionamento:

1
<img src="imagem.jpg" />

Resultado:

Logo do Google

Simples, né? Não tem segredo: basta colocar o caminho correto da imagem e pronto. Percebam que a tag <img /> é um elemento vazio, ou seja, não possui tag de fechamento </img >; para fechar a tag de imagem usamos a barra (/) na própria tag de abertura: <img />.

Podemos também usar imagens hospedadas em outros sites, como por exemplo:

1
<img src="http://www.google.com.br/intl/pt-BR_br/images/logo.gif" />

Resultado:

Logo do Google

Imagens também podem servir de links. Veja como:

1
<a href="http://www.google.com.br" target="_blank"><img src="http://www.google.com.br/intl/pt-BR_br/images/logo.gif" /></a>

Resultado:

Atributos alt e title

Nosso site pode ser acessado por vários perfis de usuários: internautas com deficiência visual, sem deficiências, com dificuldades motoras, acessando a partir de celulares e dispositivos móveis, spiders, crawlers e outros robôs usados por buscadores para indexar sites etc. É importante desenvolver sites ACESSÍVEIS, ou seja, que permitam o acesso a qualquer perfil de usuário. Acessibilidade é um tópico à parte, e terá seu próprio minicurso. Mas desde agora podemos aprender a escrever um código XHTML visando a Acessibilidade. E em imagens temos dois atributos visando esse fim: alternativas para usuários que não podem visualizar imagens.

Se por algum motivo o usuário não visualizar imagem (caminho errado, dificuldade visual, configuração do navegador, ser um robô de busca etc.), podemos apresentar um texto alternativo. Esse texto alternativo é uma rápida descrição da imagem, inserida dentro da tag ALT. Veja o código abaixo:

1
2
<!-- Eu errei o nome da imagem propositalmente -->
<img src="http://www.google.com.br/intl/pt-BR_br/images/logoooooo.gif" alt="logomarca do Google - texto alternativo" />

Resultado:

logomarca do Google - texto alternativo

Repararam que o texto do ALT apareceu no lugar da imagem? Legal, né? Além de inserir uma descrição alternativa, eu posso inserir uma rápida descrição da imagem, a ser renderizada pelos navegadores sob a forma de uma caixinha amarela, quando passamos o mouse por cima de uma imagem. Essa descrição também será usada em leitores de tela, usados por usuários com deficiência visual; e robôs de buscadores. Veja como funciona:

1
<img src="http://www.google.com.br/intl/pt-BR_br/images/logo.gif" alt="Logo do Google" title="Logo do Google" />

Resultado:

Logo do Google

Pessoal, por hoje é só! No próximo tutorial falaremos sobre “caminhos de arquivos”, um assunto importante para complementar o uso de links e imagens (atributos HREF e SRC). Não percam!

Abraços,
Diego.

jun
25
2009
0

Minicurso de HTML: Parte V – Links e Atributos XHTML

Olá Pessoal,

Conforme adiantado no último post, hoje falaremos sobre links e atributos XHTML. Até agora criamos documentos XHTML com títulos, parágrafos, estilos em textos, listas etc. Contudo, esses documentos não estão ligados entre si e por esse motivo não podemos navegar entre eles. Não é exagero dizer que os links foram a base de toda a web. Com eles podemos interconectar todas as nossas páginas, criando sites tais como conhecemos. E mais do que interligar documentos, os links hoje possuem valor semântico, são critérios extremamente relevantes para posicionamento de sites em buscadores etc. Aprender a explorar ao máximo possível o uso de links é indispensável para essa nossa área, portanto estudem com atenção e afinco.

Criando Links

Podemos converter vários elementos HTML em links: textos, imagens, áreas etc. Esses links podem apontar para dentro da própria página (são os links âncoras) ou para documentos externos. Links para páginas externas ao próprio documento podem apontar para páginas fora do servidor, onde o site está hospedado, ou dentro do próprio servidor. Podemos também linkar outros arquivos de outros formatos, tais como: DOC, PDF, MP3, imagens em geral, XLS etc.

Para criar um link usaremos a tag <a></a>. Veja como fica o código abaixo:

1
2
3
<h4>Criando um link</h4>
 
<a>Link</a>

Ok, acabamos de marcar um link, porém como definir a página de destino, ou seja, a página para onde o link me levará, assim que eu clicar nele? Para adicionar essa funcionalidade à tag <a>, será necessário utilizar…

Atributos HTML, Atributos HREF e TARGET

Os atributos HTML são características de uma tag que adicionam funcionalidades a ela. Por exemplo: não basta criar um link, é preciso definir uma página destino. Como já vimos, a tag usada para linkar é <a></a>, para adicionar à essa tag a página de destino do link, usaremos um atributo dessa tag, chamado HREF. Todo atributo XHTML segue as seguintes regras:

  1. É escrito em letras minúsculas;
  2. É escrito dentro da tag de abertura;
  3. Respeita a seguinte sintaxe: nome_do_atributo=”valor_do_atributo”.

Vejamos como ficaria nosso link, usando o atributo HREF:

1
2
3
4
5
<h4>Link para uma página externa</h4>
<a href=”http://www.google.com.br”>Link</a>
 
<h4>Link para uma página dentro do próprio servidor</h4>
<a href=”pagina.html”>Link Interno</a>

Resultado:

Link para uma página externa

Link

Link para uma página dentro do próprio servidor
Link Interno

Perceberam que páginas dentro do nosso próprio servidor não precisam do caminho completo (http://www.dominio.com.br/etc…)? Basta apenas declarar o nome do arquivo, e sua hierarquia de pastas (quando necessário). O tema caminho de arquivos será tratado mais a frente.

Outra funcionalidade importante sobre links: escolher em qual janela o link será aberto. Temos duas opções: abrir links na mesma janela, obrigando o usuário a utilizar o botão VOLTAR, do navegador, para retornar a nossa página; abrir links em uma nova janela. Por padrão os links abrem na mesma janela, para forçar a abertura de links em uma nova janela precisaremos do atributo TARGET. Veja como funciona:

1
2
3
4
5
<h4>Link abrindo na mesma janela</h4>
<a href=”pagina.html”>Link</a>
 
<h4>Link abrindo em uma nova janela</h4>
<a href=”pagina.html” target=”_blank”>Link</a>

Basta adicionar o atributo TARGET com o valor “_blank” e o link abrirá em uma nova janela. Outra coisa importante a ser observado: se preciso utilizar mais de um atributo por tag, basta separá-los por um espaço em branco e escrevê-los normalmente, seguindo as regras expostas acima. Nesse exemplo utilizamos os atributo HREF e TARGET simultaneamente, mas da mesma forma podemos ter dez atributos (exagero meu :-) em uma mesma tag, a lógica da sintaxe é a mesma.

Links âncoras

Vimos como criar links para documentos externos (dentro e fora do nosso servidor), agora iremos criar links para dentro do próprio documento. Imagine uma página enorme, cheia de conteúdo dividido em seções e subseções: não seria útil criar um índice para o usuário avançar pela página sem precisar acionar a barra de rolagem indefinidamente? Facilitaria, e muito, a vida do internauta. Para isso criaremos links âncoras, ou seja, links que apontem para o próprio documento.

Para criar uma âncora precisamos de dois fatores:

  1. Definir um pedaço da página para ser o destino do link;
  2. Criar um link apontando para o pedaço da página selecionado como destino.

Para definir um trecho da página como destino do link âncora, será preciso envolvê-lo com as tags <a></a> acrescentando o atributo NAME. Veja como funciona:

1
2
<h4><a name=”ancora1”>Título 1</a></h4>
<p>Parágrafo 1...</p>

Bem, definimos um parágrafo de nossa página como uma âncora, agora é preciso criar um link apontando para essa âncora. Para isso basta criar um link normalmente, e no caminho da página de destino colocar o seguinte valor: #nome_da_ancora. Veja como ficará o nosso exemplo:

1
2
3
4
5
6
<h4><a name=”topo”>Topo</a></h4>
<a href=”#ancora1”>Parágrafo 1</>
 
<h4><a name=”ancora1”>Título 1</a></h4>
<p>Parágrafo 1...</p>
<a href=”#topo”>Voltar para o topo</a>

E se eu quiser criar um link para uma âncora que se encontra em outra página?

Simples! Basta criar um link como o especificado abaixo:

1
<a href=”pagina.html#nome_ancora”>Link para âncora em outra página</a>

Viram só, como é fácil trabalhar com links e âncoras? Agora é só praticar e criar suas primeiras páginas web linkadas entre si. Aproveitem e estudem bastante. No próximo tutorial falaremos sobre como inserir imagens em nossas páginas.

Forte abraço,
Diego.

jun
24
2009
1

Minicurso de HTML: Parte IV – Listas Mistas ou Aninhadas

Olá Pessoal,

Continuando com o tema listas em XHTML, vamos tratar hoje de listas mistas (lista com subníveis). Até agora vimos como criar listas de um único nível, porém podemos explorar ainda mais o recurso de listas seja criando subníveis, ou mesclando listas ordenadas com não-ordenadas.

Listas mistas não-ordenadas

Quando criamos subníveis em listas ordenadas, os itens de níveis inferiores são apresentados com um marcador diferenciado e um certo recuo em relação aos itens de nível superior. Veja o código abaixo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<h4>Lista não-ordenada simples</h4>
 
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
 
<h4>Lista mista não-ordenada</h4>
 
<ul>
<li>Item 1</li>
<li>Item 2
<ul>
<li>Item 2.1</li>
<li>Item 2.2</li>
<li>Item 2.3</li>
</ul>
</li>
<li>Item 3</li>
</ul>

Resultado:

Lista não-ordenada simples

  • Item 1
  • Item 2
  • Item 3

Lista mista não-ordenada

  • Item 1
  • Item 2
    • Item 2.1
    • Item 2.2
    • Item 2.3
      • Item 2.3.1
      • Item 2.3.2
  • Item 3

Para criar listas mistas ou aninhadas basta adicionar uma nova lista dentro de um elemento <li>. A cada nível adicionado percebemos um recuo em relação ao nível anterior; percebe-se também que os marcadores mudam: no primeiro nível temos um bolinha preenchida; no segundo nível temos uma bolinha vazia; no terceiro nível em diante temos um quadrado. Podemos criar listas com N níveis, dependendo apenas da nossa necessidade. Com essa marcação podemos criar menus dropdown (aqueles onde passamos o mouse por cima de um item para abrir um submenu). Aprenderemos, inclusive, a construir esse tipo de menu com CSS. É só seguir o blog! :-)

Listas mistas ordenadas

Podemos também criar listas aninhadas usando ordenação. Veja o caso de uma lista mista ordenada:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<h4>Lista ordenada simples</h4>
 
<ol>
<li>Alunos</li>
<li>Professores</li>
<li>Carros</li>
</ol>
 
<h4>Lista mista não-ordenada</h4>
 
<ol>
<li>Alunos
<ol>
<li>José</li>
<li>João</li>
<li>Maria</li>
</ol>
</li>
<li>Professores
<ol>
<li>Diego</li>
<li>Marcelo</li>
<li>Mike</li>
</ol>
</li>
<li>Carros
<ol>
<li>Palio</li>
<li>Gol</li>
<li>Uno</li>
</ol>
</li>
</ol>

Resultado:

Lista ordenada simples

  1. Alunos
  2. Professores
  3. Carros

Lista mista não-ordenada

  1. Alunos
    1. José
    2. João
    3. Maria
  2. Professores
    1. Diego
    2. Marcelo
    3. Mike
  3. Carros
    1. Palio
    2. Gol
    3. Uno

Como vocês podem perceber a numeração reinicia quando criamos subníveis, ou seja, nada de 2.1, 2.2, 2.3 etc. Não há como fazer esse tipo de alteração.

Listas mistas ordenadas e não-ordenadas

Para finalizar o post veremos como misturar listas ordenadas e não-ordenadas. Observe o código abaixo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<h4>Lista ordenada seguida de uma não-ordenada</h4>
 
<ol>
<li>Alunos
<ul>
<li>José</li>
<li>João</li>
<li>Maria</li>
</ul>
</li>
<li>Professores
<ul>
<li>Diego</li>
<li>Marcelo</li>
<li>Mike</li>
</ul>
</li>
<li>Carros
<ul>
<li>Palio</li>
<li>Gol</li>
<li>Uno</li>
</ul>
</li>
</ul>
 
<h4>Lista não-ordenada seguida de uma ordenada</h4>
<ul>
<li>Alunos
<ol>
<li>José</li>
<li>João</li>
<li>Maria</li>
</ol>
</li>
<li>Professores
<ol>
<li>Diego</li>
<li>Marcelo</li>
<li>Mike</li>
</ol>
</li>
<li>Carros
<ol>
<li>Palio</li>
<li>Gol</li>
<li>Uno</li>
</ol>
</li>
</ul>

Resultado:

Lista ordenada seguida de uma não-ordenada

  1. Alunos
    • José
    • João
    • Maria
  2. Professores
    • Diego
    • Marcelo
    • Mike
  3. Carros
    • Palio
    • Gol
    • Uno
  4. Lista não-ordenada seguida de uma ordenada

    • Alunos
      1. José
      2. João
      3. Maria
    • Professores
      1. Diego
      2. Marcelo
      3. Mike
    • Carros
      1. Palio
      2. Gol
      3. Uno

    Bem pessoal, com isso finalizamos o assunto LISTAS XHTML. No próximo tutorial falaremos sobre links e atributos. Bom estudo e até lá.

    Forte abraço,
    Diego.

jun
22
2009
0

Minicurso de HTML: Parte III – Listas HTML (XHTML)

Olá Pessoal,

Continuando com nosso minicurso, vamos tratar hoje do assunto LISTAS. O uso de listas em páginas web é muito mais comum do que imaginamos: menus, galerias de fotos, notícias e vídeos etc. Sempre que precisarmos agrupar conteúdo de forma ordenada ou não, e apresentá-lo sob a forma de uma listagem, usaremos listas. Qualquer designer, desenvolvedor ou programador de interfaces que deseja trabalhar livremente com menus e outras interfaces web, aplicando efeitos CSS e uma marcação XHTML válida e acessível, tem como obrigação conhecer a fundo o uso de listas. Dentro do XHTML podemos trabalhar com três tipos de listas: ordenadas, não-ordenadas e definições. Dentro desse tutorial trabalharemos apenas com os dois tipos mais utilizados, que irão atender a totalidade dos seus trabalhos atuais e futuros: listas com ordenação e sem ordenação.

Listas Ordenadas

Chamamos de listas ordenadas aquelas cuja a informação é apresentada seguindo uma dada ordem. Normalmente os itens desse tipo de lista são apresentados com numeradores, letras ou algarismos romanos. Para iniciarmos uma lista ordenada é preciso utilizar a tag <ol></ol>. Cada item da lista é marcado pelo elemento <li></li>. Veja o código abaixo:

1
2
3
4
5
6
<h4>Listas Ordenadas</h4>
<ol>
<li>Misture os ingredientes</li>
<li>Bata no liquidificador</li>
<li>Asse por 40 minutos</li>
</ol>

Resultado:

Listas Ordenadas

  1. Misture os ingredientes
  2. Bata no liquidificador
  3. Asse por 40 minutos

Percebam que cada item da lista possui sua própria marcação <li></li>. Se a sua lista possuir dez itens teremos um elemento <li> para cada um deles, ou seja dez elementos <li></li>. Sendo assim, a seguinte marcação não atenderia a nossa necessidade:

1
2
3
4
5
6
<h4>Listas Ordenadas</h4>
<ol>
<li>Misture os ingredientes
Bata no liquidificador
Asse por 40 minutos</li>
</ol>

Resultado:

Listas Ordenadas

  1. Misture os ingredientes
    Bata no liquidificador
    Asse por 40 minutos

Erros comuns entre iniciantes

É um erro comum entre iniciantes marcar apenas um elemento <li>, criando listas de apenas um único item. Por isso repito: cada elemento de uma lista deve possuir sua própria marcação <li>. Outro erro bastante comum é marcar itens de lista sem iniciar a lista propriamente dita, ou seja, criar elementos <li> sem antes marcar o elemento <ol>. Essa marcação estaria errada:

1
2
3
4
5
6
7
8
9
10
11
<h4>Marcação errada</h4>
 
<li>Misture os ingredientes</li>
<li>Bata no liquidificador</li>
<li>Asse por 40 minutos</li>
 
<h4>Outra marcação errada</h4>
 
<ol>
<p>Escrevendo um parágrafo</p>
</ol>

Além do erro mencionado acima, podemos ver um terceiro erro bem comum: escrever diretamente qualquer outro elemento além de um <li> dentro de uma lista. Uma lista só pode conter ITENS, ou seja tags <li></li>. Qualquer outra tag deve ser escrita dentro dos elementos <li></li>, sob pena de escrever uma marcação inválida. Veja como ficará o código acima, quando escrito corretamente:

1
2
3
4
5
6
7
8
9
10
11
12
13
<h4>Marcação correta</h4>
 
<ol>
<li>Misture os ingredientes</li>
<li>Bata no liquidificador</li>
<li>Asse por 40 minutos</li>
</ol>
 
<h4>Outra marcação correta</h4>
 
<ol>
<li><p>Escrevendo um parágrafo</p></li>
</ol>

Resultado:

Marcação correta

  1. Misture os ingredientes
  2. Bata no liquidificador
  3. Asse por 40 minutos

Outra marcação correta

  1. Escrevendo um parágrafo

Listas não-ordenadas

Existem listas cuja informação não necessita de ordenação, essas listas são chamadas de não-ordenadas. Os itens desse tipo de lista não apresentam numeradores ou qualquer outro elemento que remeta a idéia de ordem, seus marcadores são, normalmente, glifos (umas bolinhas pretas como essa abaixo).

  • Exemplo do marcador de uma lista não-ordenada

A tag que define uma lista não-ordenada é <ul></ul>, e seus elementos são marcados por <li></li> (assim como nas listas ordenadas). Tudo o que foi dito acima sobre listas ordenadas e erros de marcação, também é válido para listas não-ordenadas. Entre ambos os tipos de listas temos diferenças apenas do tipo de marcador e a questão da ordenação, de resto o funcionamento é o mesmo para ambas as listas. Vejamos a marcação de uma lista não-ordenada:

1
2
3
4
5
6
7
8
9
<h4>Lista não-ordenada</h4>
 
<ul>
<li>Maisena</li>
<li>Ovos</li>
<li>Leite</li>
<li>Farinha</li>
<li>Fermento</li>
</ul>

Resultado:

Lista não-ordenada

  • Maisena
  • Ovos
  • Leite
  • Farinha
  • Fermento

Sobre a obrigatoriedade da tag de fechamento </li>

Alguns de vocês devem estar se perguntando: “mas é obrigatório fechar a tag </li>?” Sim, é obrigatório. “Ah! Mas eu aprendi há alguns anos que não era preciso”, ou então “Eu li em outro site que não preciso fechar a tag”… É o seguinte: no HTML antigo e velho de guerra, realmente não era obrigatório o fechamento da tag. Já no XHTML é necessário fechar tudo quanto é tag, mesmo elementos vazios. Aliás, falamos disso no primeiro tutorial. :-)

O XHTML é uma versão reformulada do HTML velho, seguindo as regras sintáticas de XML. E XML exige fechamento de TODAS as tags, por isso o XHTML exige também. Então a marcação é inválida (ainda que alguns navegadores interpretem corretamente):

1
2
3
4
5
6
7
8
9
<h4>Marcação inválida</h4>
 
<ul>
<li>Maisena
<li>Ovos
<li>Leite
<li>Farinha
<li>Fermento
</ul>

Pessoal, ainda temos bastante conteúdo sobre listas e esse tutorial já está enorme. Vou dividí-lo em duas partes, então amanhã falaremos sobre listas mistas ou aninhadas (uma lista dentro da outra, criando níveis diferentes de listas). Até lá!!!

Forte abraço,
Diego.

jun
18
2009
0

Minicurso de HTML: Parte II – Parágrafos, quebras de linha, cabeçalhos e tags de formatação

Olá Pessoal,

Continuando nosso minicurso de HTML vamos hoje conhecer um punhado de tags novas, com elas vocês poderão criar títulos, parágrafos e formatar textos. É um dos primeiros passos de uma longa jornada, então aproveitem e estudem com atenção e afinco.

Cabeçalhos ou títulos

Em HTML quando queremos criar títulos para seções, ou qualquer tipo de agrupamento de conteúdo, usamos tags apropriadas. O par de tags <h1></h1> fica responsável por criar um título de primeiro nível, onde o texto etiquetado tem sua fonte aumentada consideravelmente e fica em negrito. Outra característica dos cabeçalhos é o fato de forçarem uma quebra de linha, ou seja, todo o conteúdo após </h1> é jogado para linha de baixo; para ser mais exato o cabeçalho deixa uma linha em branco entre o seu conteúdo e o que vier depois de </h1>.

Agora algum leitor atento pergunta: “se H1 é um título de primeiro nível, significa que existem outros níveis”? Exatamente meu caro Padawan (rs!), ao todo são seis níveis de cabeçalhos, marcados por <h1> até </h6>. Conforme a numeração aumenta, o tamanho da fonte usada no título diminui. Devemos utilizar a hierarquia dos cabeçalhos (H1 é mais importante do que H2, e assim sucessivamente até H6) para aninhar nossos títulos: uma seção dentro de outra. Com isso fazemos uma marcação semântica.

Exemplo:

1
2
3
4
5
6
7
8
9
10
11
12
<html>
<head>
<title>Praticando com cabeçalhos</title>
</head>
<body>
<h1>Título de nível 1</h1>
<h2>Título de nível 2</h2>
<h3>Título de nível 3</h3>
<h4>Título de nível 4</h4>
<h5>Título de nível 5</h5>
<h6>Título de nível 6</h6>
</body>

Parágrafos e quebras de linha

Se você já brincou um pouco com HTML, deve ter percebido que para jogar o texto para a linha de baixo, não é tão simples quanto apertar ENTER. Ainda não viu? Faça o teste: crie uma página HTML e tente jogar o conteúdo abaixo em duas linhas:

Essa é a linha 1…<br />
Essa é a linha 2…

Não deu, né? Para forçar um quebra de linha em HTML é preciso conhecer algumas tags próprias para isso. E tem mais, em HTML existem dois tipos de quebra de linha: simples (joga o conteúdo para uma linha abaixo, sem nenhum espaçamento entre elas) e parágrafo (deixa uma linha em branco entre cada bloco de texto). Para forçar uma quebra de linha simples basta usar a tag <br /> (ela fecha na própria tag de abertura mesmo). Tudo o que vier depois de BR será jogado para a linha de baixo. Sendo assim, para fazer a quebra de linha que eu pedi anteriormente, o código ficaria assim:

1
2
Essa é a linha 1...<br />
Essa é a linha 2...

Para formar parágrafos em HTML é bem simples: basta envolver o bloco de texto com as tags <p></p>, ou seja, devemos marcar o início do parágrafo com <p> e o fim com </p>. Veja como ficaria o código abaixo:

1
2
3
<p>Conteúdo do parágrafo 1...</p>
<p>Conteúdo do parágrafo 2...</p>
<p>Conteúdo do parágrafo 3...</p>

Perceberam que além de marcar o início e fim de cada parágrafo, eu usei <p></p> para cada parágrafo criado? É exatamente assim que vocês devem trabalhar: etiquetando cada parágrafo com seu próprio <p></p>. Veja abaixo exemplos errados de como trabalhar com parágrafos:

1
2
3
4
<p>Conteúdo do parágrafo 1... <!-- Esqueci da tag de fechamento -->
<p>Conteúdo do parágrafo 2...
Conteúdo do parágrafo 3...</p>
<!-- Supostamente eu deveria montar dois parágrafos aqui, ao invés de um apenas -->

Comentários

Perceberam que no código acima eu fiz anotações entre <!— e –>? Tudo o que eu escrevo entre <body></body> é entendido como conteúdo ou comandos HTML. Caso eu queira fazer anotações no código para futuramente eu encontrar uma certa seção etc., sem que esse conteúdo apareça para o usuário irei fazer uso de comentários HTML. Comentários são blocos de texto que não são interpretados pelo navegador: tudo o que estiver entre <!– e –> será ignorado pelo navegador e não aparecerá na tela do usuário.

1
2
<h1>Isso é um título</h1> <!-- Isso é um comentário, não será renderizado na tela do usuário -->
<!-- <p>Mesmo isso sendo um parágrafo, por estar dentro de um comentário ele não aparecerá no seu navegador. Eu posso utilizar comentários para inabilitar trechos de código HTML na minha página -->

Não há limite de tamanho para comentários: eles podem ter uma ou várias linhas.

Formatação de texto

Até agora aprendemos a criar e salvar nossas páginas web, usar cabeçalhos, quebras de linha e formar parágrafos. Para incrementar um pouco mais a lista de coisas que podemos fazer, vamos aprender algumas tags para formatação de texto. A primeira coisa é colocar texto em negrito: basta usar a tag <strong></strong>. Todo o texto entre as tags será apresentado em negrito.

Negrito

Outra tag importante é <em></em> responsável por colocar texto em itálico.

Itálico

A tag <sup></sup> coloca o texto em suspenso, ou seja um pouco recuado para cima. Já a tag <sub></sub> coloca o texto um pouco recuado para baixo. Veja o uso dessas tags

Esse texto está sobre efeito de SUP. Já esse é um texto normal. Esse texto aqui está sobre efeito de SUB.

A tag <small></small> apresenta o texto com o tamanho das letras reduzido.

Texto com small. Texto normal. Texto com small.

1
2
3
4
5
6
7
8
9
10
11
<!-- Texto em negrito -->
<strong>Negrito</strong> 
 
<!-- Texto em itálico -->
<em>Itálico</em>
 
<!-- Texto com SUP e SUB -->
<sup>Esse texto está sobre efeito de SUP.</sup> Já esse é um texto normal. <sub>Esse texto aqui está sobre efeito de SUB.</sub> 
 
<!-- Texto com SMALL -->
<small>Texto com small.</small> Texto normal. <small>Texto com small.</small>

Fechamos por hoje. No próximo tutorial iremos trabalhar com LISTAS em HTML. Até lá então!

Abraços,
Diego.

jun
17
2009
1

Minicurso de HTML: Parte I – Introdução ao HTML / O que é HTML? Quais as diferenças entre HTML e XHTML? O que são tags? Primeiras tags

(Graças ao pessoal da PredialNet não pude postar o conteúdo de ontem, por isso estou lançando um post único com o tutorial ontem e de hoje simultaneamente)

Olá Pessoal,

Estamos iniciando nosso minicurso de HTML, onde abordaremos os principais tópicos dessa linguagem essencial para quem trabalha com internet. Hoje em dia todo mundo que trabalha na nossa área precisa aprender um pouco de HTML: redatores, jornalistas, designers, publicitários, profissionais de marketing, programadores, gerentes de projeto etc. Não importa se você precisa aprender o básico para montar o layout de um texto, ou ter noções avançadas para dominar uma ferramenta web do seu trabalho, configurar newsletters, desenvolver sites, hotsites, portais e todo e qualquer tipo de sistema web, esse tutorial irá introduzí-lo no fantástico mundo do desenvolvimento web.

Se você é aluno de algum curso técnico (WebDesigner, Programador Web etc.), ou está estudando para trabalhar nesse ramo, enfim, se você é um iniciante e não sabe por onde começar, me permita ajudá-lo: comece por aqui! Acompanhe o be-a-bá do HTML e a partir desse minicurso avance para outras áreas. Programação, PHP, banco de dados, JavaScript, CSS tudo isso vem depois. Vamos começar aqui uma jornada rumo ao desenvolvimento de sites completos e funcionais.

Lembrando que essa é o conteúdo que ministro em minhas turmas de WebDesigner e Programador Web, no SENAC e outros cursos. Portanto, o conteúdo tende ser o mais atualizado possível, assim como didaticamente separado e estruturado.

O que é HTML, afinal de contas?

HTML ou HyperText Markup Language é uma linguagem de marcação, utilizada para construir a camada visual de páginas web. Sua função é dar um valor semântico e estruturar todo o conteúdo de um documento. Toda vez que você abre o seu navegador e acessa algum site, o que você está vendo na verdade é um punhado de código HTML interpretado pelo browser, e convertido em formas, cores, gráficos e vídeos. Podemos dizer que o HTML é a linguagem por detrás de um site, é o que define o conteúdo visualizado na tela. Com HTML podemos definir o que é um conteúdo: parágrafos, listas, links, imagens, vídeos, tabelas, colunas etc. Toda linguagem de programação web interage com HTML, por esses motivos todo profissional que se preza (redatores, designers, programadores etc.) conhece bem a sua sintaxe. Não é exagero dizer que o HTML é a base de tudo, o ponto inicial da sua carreira futura.

Ok, entendi que HTML é importante demais! Mas… como funciona?

Trabalhar com HTML é bem simples, como vocês verão nos próximos dias. Essa linguagem de marcação baseia-se em etiquetas com valor semântica, englobando trechos de conteúdo dotando-os de sentido e valor. Essas etiquetas são chamadas <strong>tags</strong>. Uma tag nada mais é do que um comando HTML com um ponto inicial (abertura) e um ponto final (fechamento). Quando digitamos um texto no Word, por exemplo, para criar um parágrafo, simplesmente apertamos a tecla ENTER. Em HTML não é tão simples assim, é preciso especificar via código que queremos um parágrafo em dado lugar; precisamos também dizer onde começa e onde termina esse parágrafo. Veja abaixo como funciona:

<paragrafo>Conteúdo do parágrafo 1…</paragrafo>
Conteúdo fora do parágrafo…

Perceberam que um pedaço do texto está entre <paragrafo></paragrafo>? Esse texto formará um parágrafo, enquanto todo o resto do conteúdo ficará de fora. Tá, mas por que os símbolos <> e </>. É o seguinte: toda tag possui a seguinte sintaxe – <nome_da_tag>… Conteúdo a ser etiquetado…</nome_da_tag>, onde delimitamos um início para tag (<>) e um fim (</>). Chamamos isso de tag de abertura e tag de fechamento. O HTML possui dezenas de tags com nomes diferentes. A nomenclatura das tags é algo bem fácil de lidar, pois os nomes sempre tem a ver com a funcionalidade do comando. Por exemplo: <p></p>são tags de parágrafo; <table></table> correspondem a tabelas; <form></form> corresponde a formulários, e por aí vai.

Eu ouvi falar de um tal XHMTL… Que raios é isso? É HTML também?

No princípio era o caos… Desenvolver um site há uns 10 ou 15 anos era um inferno. Não tínhamos padronização, folhas de estilo em cascata (vamos estudar isso), cada navegador interpretava o mundo do seu jeito, são tempos ruins que devemos esquecer. Naquele período não havia regulamentação e padronização de desenvolvimento, e por conseqüência o próprio HTML era meio zoneado. Usava-se HTML para tudo: marcação de conteúdo (sua finalidade real), estilização, diagramação etc. E conforme a web foi evoluindo, novas tecnologias surgiram e o HTML velho de guerra apresentou uma série de limitações frente às novas necessidades. Por esse motivo refizeram o HTML de acordo com o padrão XML, uma linguagem de marcação rígida, compatível com qualquer sistema: surgiu então o XHTML (XML + HTML). O novo formato apresentava a rigidez sintática do XML, assim como sua compatibilidade, e a linguagem ganhava novos horizontes. XHTML então é uma versão reformulado do velho HTML, dentro do padrão XML de marcação. É uma melhoria. Outra vantagem a ser assinalada: marcações XHTML são compatíveis com aplicações XML (usadas a torto e direito nos sistemas web modernos).

Não se preocupem: aqui aprenderemos marcação XHTML, que é muito parecido com o velho e bom HTML de guerra.

Ainda não estou satisfeito… Quais são as reais diferenças entre HTML e XHTML?

Ok, caro estudante… Você tem que perguntar mesmo! O HTML por não ser padronizado, admitia uma série de falhas e inconsistências. O XHTML é muito rígido, e não deixa passar nenhum erro. Por esse motivo somos obrigados a ter atenção com algumas regrinhas básicas:

Documentos em XHTML devem ser bem formatados

Os navegadores tentam resolver erros e inconsistências em páginas HTML, e cada um faz alterações conforme sua lógica interna. Nem é preciso dizer que isso não pode dar certo… Em XHTML não são permitidos erros de sintaxe, tags sem fechamento, aninhamento inconsistente etc.

Tags devem ser escritas em letras minúsculas

XHTML é o que chamamos de linguagem case-sensitive, ou seja: diferencia letras maiúsculas de minúsculas. Em uma linguagem case-sensitive “BRASIL” é diferente de “brasil”, apesar da grafia ser a mesma, pois o tipo de caixa (alta e baixa) varia. Todas as tags e atributos XHTML usam letras minúsculas, em resumo: nada de escrever <P></P>…

As tags devem ser aninhadas corretamente

Uma coisa importante sobre o uso de tags em HTML: se você usa várias tags aninhadas (uma dentro da outra) na sua marcação, é importante respeitar a ordem de abertura e fechamento de tags – a primeira tag a ser aberta é a última a ser fechada, a segunda tag é a penúltima e por aí vai…

OK – <p><strong>Texto</strong></p>
ERRADO – <p><strong>Texto</p></strong>

É obrigatório o uso de tags de fechamento

No HTML algumas tags como <p>, <br> e <li> dispensam o uso da tag de fechamento. Legal, mas isso no HTML. O padrão XML (do qual o XHTML é derivado) diz claramente: TODA TAG OBRIGATORIAMENTE DEVE SER FECHADA. Como diz aquele comentarista esportivo: “a regra é clara”… Existem algumas tags que não possuem par de fechamento, são o que chamamos de elementos vazios. Esse tipo de elemento precisa ser fechado na própria tag de abertura, e sua estrutura é a seguinte: <nome_da_tag />

Veja algumas tags que podem ser fechadas no comando de abertura:

<br /> – Força quebra de linha
<img /> – Insere uma imagem
<input /> – Coloca um campo de formulário (entrada de dados)

Tá… Você me convenceu: quando começamos a brincar com HTML?

Bom, chega de papo introdutório e vamos por a mão na massa. Todo mundo aqui já entendeu o que são tags, como elas funcionam e para o que servem. Para fechar esse post vamos conhecer as primeiras tags HTML, formando o que chamamos de estrutura básica de uma página web. O browser/navegador (Internet Explorer, Firefox, Opera, Safari etc.) é um dispositivo que usamos para acessar a internet e navegar pela web a fora, ele é capaz de interpretar código HTML, CSS, JavaScript, applets Java, XML e mais algumas coisas. Os códigos são interpretados e juntos geram as páginas web que visitamos. Mas precisamos ajudar o navegador a diferenciar código HTML de CSS ou qualquer outra linguagem. Por isso temos tags específicas para marcar cada tipo de código. Por exemplo, para criar uma página web precisamos dizer ao browser qual é a linguagem usada, e se for um documento HTML/XHTML iremos utilizar a tag <html></html>. Toda a página deve ficar entre essas tags, e o navegador não irá considerar qualquer código fora dessas etiquetas. A idéia é mais ou menos essa:

<html>
Aqui entra todo o conteúdo da página web…
</html>

Todo documento HTML é dividido em duas partes: cabeçalho e corpo. No cabeçalho colocamos todas as informações referentes a página, mas que não serão exibidas na tela do usuário; no corpo colocamos o site propriamente dito, ou seja todo o conteúdo a ser visualizado no navegador do usuário. Essa divisão entre cabeçalho e corpo é efetivada pelo uso das tags <head></head> e <body></body>. Nossa página ficará da seguinte forma:

<html>
<head>
Aqui entram informações sobre o documento, mas que não serão visualizadas pelo usuário
</head>
<body>
Aqui entra todo o conteúdo do documento, ou seja a página propriamente dita…
</body>
</html>

O corpo da página é a parte mais fácil de compreender. Todos já perceberam que os parágrafos, imagens, tabelas, listas, vídeos, formulários e qualquer outro tipo de conteúdo do site, ficarão dentro das tags <body></body>. Mas e o cabeçalho?

“Informações sobre o documento que não serão visualizadas pelo usuário” é um tanto vago e abstrato para a maioria de vocês. Na verdade não adianta me prolongar em explicações sobre o tipo de conteúdo do cabeçalho, pois vocês precisam pegar alguma experiência primeiro. Só para exemplificar: dentro do cabeçalho colocamos o título da página, aquele texto no topo do seu navegador (na barra de títulos); meta-tags – informações gerais sobre o documento como o autor, idioma, padrão de codificação, palavras-chave (termos que indiquem do que trata o conteúdo, por muito tempo foram o ponto alto da indexação de conteúdo no Google, sendo hoje ainda um fator relevante) etc.; links para outros documentos (arquivos com programação JavaScript, comandos de diagramação e estilização CSS etc.) etc. Prometo que conforme você prosseguir em seus estudos, tudo isso fará mais sentido e será mais fácil de entender.

Por enquanto vejamos como colocar um título no documento. Para inserir um título em sua página web, basta adicionar dentro cabeçalho (<head></head>) a tag TITLE (<title></title>). O conteúdo entre as tags aparecerá na barra de títulos (barra azul no topo do navegador) do seu browser. Veja como fica a nossa página:

1
2
3
4
5
6
7
8
<html>
<head>
<title>Minha primeira página web</title>
</head>
<body>
Conteúdo da minha primeira página web...
</body>
</html>

Para visualizar esse arquivo faça o seguinte: abra o bloco de notas; escreva a estrutura HTML acima (sinta-se à vontade para fazer suas modificações livremente); salve o arquivo com o nome minhaPrimeiraPagina, e ao invés da extensão .txt, troque por .html (isso é undamental, pois se você não alterar a extensão para .html, a página não será visualizada); agora dê um duplo clique em cima do arquivo que você acabou de salvar e… voi lá, você está visualizando sua primeira página HTML.

Bem pessoal, por hoje é só. No próximo post vamos conhecer novas tags, e aprender a criar títulos, parágrafos, quebras de linha e a formatar texto (negrito, itálico, sublinhado etc.). Até breve.

Forte abraço,
Diego.

PS: Já que o blog tem ajudado muita gente e tudo mais, eu me comprometi a atualizá-lo diariamente (ou quase). Mas, como eu tenho uma produtora web pra cuidar e dou aulas no SENAC, fica meio complicado encontrar tempo. Então vamos oficializar: eu vou sempre postar os artigos e tutoriais à noite ou de madrugada. Durante o dia não dá mesmo.

jun
15
2009
3

Minicurso 8ª Parte: Funções para gerenciamento de sessão / session em PHP

Olá Pessoal,

Esse é o último texto do nosso minicurso. Durante esses meses (e pensar que meu plano inicial seria postar esse minicurso em um mês…) vimos os principais fundamentos do PHP, e foi dada a base necessária para avançarmos para outros tutoriais e aplicações. O que para mim é ótimo pois, sou obrigado a confessar, listar funções básicas do PHP é muito chato… :-P

Hoje vamos tratar das principais funções para gerenciamento de sessões em PHP, e com isso fechar um ciclo básico de aprendizado. Vamos em frente!

session_start()

Essa função inicia a sessão do usuário, e disponibiliza para a página todas as variáveis de sessão desse usuário. Em resumo: somente iniciando a sessão, poderemos trabalhar com sessão em uma página. Ela sempre retorna TRUE. Outra coisa importante: sempre utilize a função session_start() no topo da página, acima de qualquer outro elemento, caso contrário ela pode não funcionar. Veja um exemplo de session_start() em funcionamento:

1
2
3
4
5
6
7
<?php
//INICIO A SESSÃO
session_start();
 
$_SESSION["nome"] = "Diego";
echo $_SESSION["nome"];
?>

session_cache_expire()

Essa função modifica o tempo de expiração da sessão do usuário. Normalmente quando uma sessão fica inativa por mais de 180 minutos ela expira, apagando todas as variáveis gravadas nela. A função session_cache_expire() aumenta ou diminui o tempo de expiração de uma sessão. Recebe como parâmetro o tempo em minutos para expiração da sessão. Precisamos declarar essa função antes de session_start(). Veja um exemplo dessa função:

1
2
3
4
5
6
7
8
<?php
//INICIO A SESSÃO COM UM TEMPO DE EXPIRAÇÃO DE 10 MINUTOS
session_cache_expire(10);
session_start();
 
$_SESSION["nome"] = "Diego";
echo $_SESSION["nome"];
?>

session_id()

Essa função retorna o ID da sessão, ou seja, um código identificador único para cada sessão de usuário. Essa função retorna o ID da sessão de usuário. Veja session_id() em funcionamento:

1
2
3
4
5
6
7
<?php
//INICIO A SESSÃO
session_start();
 
$id = session_id();
echo $id;
?>

Essa função destrói a sessão e todos os dados associados a ela. Retorna TRUE em caso de sucesso, FALSE em caso de erro. Veja um exemplo da função em funcionamento:

1
2
3
4
5
6
7
8
9
10
11
<?php
//INICIO A SESSÃO
session_start();
 
if (session_destroy()) {
    echo "Sessão destruída";
}
else {
    echo "Não foi possível destruir a sessão";
}
?>

Bem pessoal, o minicurso de PHP acaba aqui. Recomendo que todos leiam meu tutorial de PHP e MySQL postado aqui. Entendam como a última etapa do minicurso. Vimos o be-a-bá do PHP, e com isso podemos avançar tranquilamente para outros tópicos. Estudem, revisem e se aprofundem nos assuntos já estudados. Lembrem-se que todo bom programador já soube o mesmo que você: nada ou muito pouco. O que vale é sua dedicação e empenho.

Nos próximos dias teremos algumas mudanças no Projetista: nova cara, novos assuntos, serviços novos etc. Então não se assustem se as coisas mudarem um pouco: eu resolvi profissionalizar a casa. Então, até mais.

Forte abraço,
Diego.

jun
13
2009
1

Minicurso 8ª Parte: Trabalhando com Sessão / Session em PHP

Olá Pessoal,

É eu sei, estou em dívida com os posts de quarta e sexta-feira. Mas tive uma infecção brava, e não consegui chegar perto do PC para postar o conteúdo. Então para compensá-los, vou postar o conteúdo que faltou no sábado e domingo. Assim não atrasamos a programação de segunda.

Essa é a última parte do nosso minicurso (na verdade a penúltima, pois a última fala sobre PHP e MySQL, porém esses foram os primeiros posts do blog). Vale lembrar que esse minicurso visa apresentar os fundamentos do PHP, é a base necessária para que muitos de vocês entendam os próximos tutoriais do blog. Assim sendo, todo o conteúdo aqui é voltado para quem nunca viu nada da linguagem, ou está começando a programar agora (exatamente o perfil de alunos que encontro nos cursos técnicos que ministro lá no SENAC). Portanto, se você ficou frustrado com algum tópico e achou que eu explorei pouco, lembro que a idéia é ser o mais básico possível, de maneira a introduzir o leigo nos pormenores da arte de programar. Bem, o assunto dessa última parte do curso são as famosas SESSÕES. Com elas poderemos montar carrinhos de compras, sistemas de login e autenticação de usuário etc. Portanto, estudem com afinco.

O que é sessão?

A sessão ou session nos permite passar dados de uma página para outra, sem que haja perda de informação ou necessidade usar os métodos POST ou GET. Cada visitante ao acessar o site recebe um identificador único, a ser propagado via URL ou armazenado em um cookie na máquina do usuário. Podemos declarar inúmeras variáveis e associá-las a sessão do usuário, criando ambientes personalizados para cada usuário do nosso site. Para não dificultar a compreensão do conceito, vamos assumir que as variáveis de sessão ficarão armazenadas na sessão do usuário enquanto o seu navegador continuar aberto, ou enquanto a mesma não for encerrada (seja por inatividade, ou por intermédio de alguma função própria para esse fim). Uma vez encerrada, as variáveis de sessão não eliminadas.

Uma sessão é iniciada pela função session_start(), a ser colocada no topo da página, antes de qualquer outro código. Veja o exemplo abaixo:

1
2
3
4
<?php
session_start();
//Resto do código.... <html>...</html>
?>

Salvo em alguns casos especiais, sempre usaremos a função session_start() no início da página e antes de qualquer outro código. O que essa função faz é habilitar o uso de todas as variáveis de sessão dentro da página onde foi chamada, ou seja, dizemos ao PHP que essa página poderá fazer uso de variáveis de sessão e funções para gerenciamento da mesma. Toda sessão pode expirar por inatividade, pois possui algo chamado “tempo de vida” definido em 180 minutos, por padrão. Se precisarmos alterar o tempo de vida de uma função podemos fazer uso de funções específicas como session_cache_expire(), a serem estudadas mais a frente.

Array $_SESSION

Ok! Já entendemos o que é uma sessão, como iniciá-la e para o que ela serve, agora vamos descobrir como armazenar dados na sessão. Todas as informações gravadas em sessão ficam armazenadas em uma variável superglobal definida pelo próprio PHP, chamada $_SESSION. Trata-se de um array onde, uma vez iniciada a sessão, temos acesso aos seus campos e podemos adicionar campos novos. Veja o exemplo abaixo:

LOGIN.PHP

1
2
3
4
5
<form action="validaLogin.php" method="post" id="form" name="form">
<label for="login">Login: <input type="text" name="login" id="login" /></label>
<label for="senha">Senha: <input type="password" name="senha" id="senha" /></label>
<button type="submit">LOGIN</button>
</form>

VALIDALOGIN.PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
//INICIO A SESSÃO
session_start();
 
$login = array("user01", "user02", "user03", "user04", "user05");
$senha = array("senha01", "senha02", "senha03", "senha04", "senha05");
 
//Calculo o tamanho do array $login
$tamArray = count($login);
//Crio uma variável auxiliar
$msg = FALSE;
//Uso um loop para percorrer o array
for ($i = 0; $i < $tamArray; $i++) {
if ($_POST["login"] == $login[$i] && $_POST["senha"] == $senha[$i]) {
$msg = TRUE;
break;
}
}
//Verifico se a variável auxiliar $msg saiu do loop com o valor TRUE (indicando login efetuado com sucesso)
if ($msg) {
//Armazeno duas informações na sessão do usuário: se ele está logado, e o login de acesso. A partir desse momento, qualquer página habilitada a trabalhar com variáveis de sessão, poderá resgatar essas variáveis, manipulá-las, sobreescrevê-las etc.
$_SESSION["logado"] = TRUE;
$_SESSION["user"] = $_POST["login"];
//Uso a função header() para fazer o redirecionamento para a página principal do site, uma vez que o login foi executado com sucesso
header ("Location: home.php");
}
else {
//Caso o login dê errado, devolvo o usuário para a página de login
header ("Location: login.php");
}
?>

A única novidade no script acima é o uso da função header() que, dentre outras coisas, permite o redirecionamento do usuário de uma página para outra. Bem, vimos que esse script funciona em três tempos: o usuário entra com os dados de login na página LOGIN.PHP, esses dados são recebidos e tratados em VALIDALOGIN.PHP e, em caso de sucesso armazenamos dois dados em variáveis de SESSÃO, caso contrário devolvemos o usuário para a tela de login. Já sabemos como armazenar dados na sessão do usuário, agora veremos como resgatá-los. Ao redirecionar o usuário para a página HOME.PHP, devemos verificar se ele de fato está logado no sistema. Sabemos disso através da variável de sessão $_SESSION["logado"], se ela existir e seu valor for TRUE, é porque o usuário fez login e senha corretamente. Vamos ao código:

HOME.PHP

1
2
3
4
5
6
7
8
9
10
11
12
<?php
//INICIO A SESSÃO
session_start();
 
//Verifico se o usuário está logado no sistema
if (!isset($_SESSION["logado"]) || $_SESSION["logado"] != TRUE) {
    header("Location: login.php");
}
else {
    echo "<h1>Seja bem-vindo, ".$_SESSION["user"]."</h1>";
}
?>

Viram? Basta iniciar session_start() e todas as variáveis de sessão declaradas em qualquer lugar da aplicação, estarão disponíveis na página de chamada. Maneiro, né? A novidade do script acima fica por conta da função isset(), que verifica se uma variável existe e, em caso afirmativo retorna TRUE, caso contrário retorna FALSE. E aí, gostaram do uso de sessões? Já conseguem imaginar algumas brincadeiras para se fazer com elas? Amanhã falamos das principais funções envolvendo o uso de sessões. Até lá.

Abraços,
Diego.

Powered by WordPress | Theme: Aeros 2.0 by TheBuckmaker.com