Prog web
Prog web
Curso Técnico em Informática
Programação para Web
Jean Eduardo Glazar
Programação para
Web
Jean Eduardo Glazar
2011
IFES – Instituto Federal do Espírito Santo
Presidência da República Federativa do Brasil
Ministério da Educação
Secretaria de Educação a Distância
Equipe de Elaboração
Instituto Federal do Espírito Santo – IFES
Coordenação Institucional
Guilherme Augusto de Morais Pinto/IFES
João Henrique Caminhas Ferreira/IFES
Coordenação Curso
Allan Francisco Forzza Amaral/IFES
Professor-autor
Jean Eduardo Glazar/IFES
Comissão de Acompanhamento e Validação
Universidade Federal de Santa Catarina – UFSC
Coordenação Institucional
Araci Hack Catapan/UFSC
Coordenação do Projeto
Silvia Modesto Nassar/UFSC
Coordenação de Design Instrucional
Beatriz Helena Dal Molin/UNIOESTE e UFSC
Coordenação de Design Gráfico
André Rodrigues/UFSC
Design Instrucional
Juliana Leonardi/UFSC
Web Master
Rafaela Lunardi Comarella/UFSC
Web Design
Beatriz Wilges/UFSC
Mônica Nassar Machuca/UFSC
Diagramação
André Rodrigues/UFSC
Bárbara Zardo/UFSC
Juliana Tonietto/UFSC
Marília C. Hermoso/UFSC
Revisão
Júlio César Ramos/UFSC
Projeto Gráfico
e-Tec/MEC
© Instituto Federal do Espírito Santo
Este Caderno foi elaborado em parceria entre o Instituto Federal do Espírito Santo
e a Universidade Federal de Santa Catarina para o Sistema Escola Técnica Aberta
do Brasil – e-Tec Brasil.
G553p	 Glazar, Jean Eduardo
	 Programação para web : Curso técnico em informática / Jean 	
Eduardo Glazar. – Colatina: IFES, 2011.
	 102 p. : il.
	
	 ISBN: 978-85-62934-37-7
	 1. PHP (Linguagem de programação de computador). 2. Banco
de dados. 3. Sites da Web – Desenvolvimento. I. Glazar, Jean Eduar-
do. II. Instituto Federal do Espírito Santo. III. Título.
	
		 CDD: 005.133
e-Tec Brasil33
Apresentação e-Tec Brasil
Prezado estudante,
Bem-vindo ao e-Tec Brasil!
Você faz parte de uma rede nacional pública de ensino, a Escola Técnica
Aberta do Brasil, instituída pelo Decreto nº 6.301, de 12 de dezembro 2007,
com o objetivo de democratizar o acesso ao ensino técnico público, na mo-
dalidade a distância. O programa é resultado de uma parceria entre o Minis-
tério da Educação, por meio das Secretarias de Educação a Distancia (SEED)
e de Educação Profissional e Tecnológica (SETEC), as universidades e escolas
técnicas estaduais e federais.
A educação a distância no nosso país, de dimensões continentais e grande
diversidade regional e cultural, longe de distanciar, aproxima as pessoas ao
garantir acesso à educação de qualidade, e promover o fortalecimento da
formação de jovens moradores de regiões distantes, geograficamente ou
economicamente, dos grandes centros.
O e-Tec Brasil leva os cursos técnicos a locais distantes das instituições de en-
sino e para a periferia das grandes cidades, incentivando os jovens a concluir
o ensino médio. Os cursos são ofertados pelas instituições públicas de ensino
e o atendimento ao estudante é realizado em escolas-polo integrantes das
redes públicas municipais e estaduais.
O Ministério da Educação, as instituições públicas de ensino técnico, seus
servidores técnicos e professores acreditam que uma educação profissional
qualificada – integradora do ensino médio e educação técnica, – é capaz de
promover o cidadão com capacidades para produzir, mas também com auto-
nomia diante das diferentes dimensões da realidade: cultural, social, familiar,
esportiva, política e ética.
Nós acreditamos em você!
Desejamos sucesso na sua formação profissional!
Ministério da Educação
Janeiro de 2010
Nosso contato
etecbrasil@mec.gov.br
Prog web
e-Tec Brasil5
Indicação de ícones
Os ícones são elementos gráficos utilizados para ampliar as formas de
linguagem e facilitar a organização e a leitura hipertextual.
Atenção: indica pontos de maior relevância no texto.
Saiba mais: oferece novas informações que enriquecem o
assunto ou “curiosidades” e notícias recentes relacionadas ao
tema estudado.
Glossário: indica a definição de um termo, palavra ou expressão
utilizada no texto.
Mídias integradas: sempre que se desejar que os estudantes
desenvolvam atividades empregando diferentes mídias: vídeos,
filmes, jornais, ambiente AVEA e outras.
Atividades de aprendizagem: apresenta atividades em
diferentes níveis de aprendizagem para que o estudante possa
realizá-las e conferir o seu domínio do tema estudado.
Prog web
e-Tec Brasil7
Sumário
Palavra do professor-autor	 9
Apresentação da disciplina	 11
Projeto instrucional	 13
Aula 1 – A linguagem PHP	 15
1.1 O que é PHP?	 15
1.2 Instalação	 16
1.3 Sintaxe básica	 19
1.4 Como testar uma página em PHP	 21
1.5 Variáveis e tipos	 23
1.6 Operadores	 24
1.7 Estruturas de controle	 25
1.8 Array	 28
1.9 Funções	 29
Aula 2 – Recebendo dados do formulário	 31
2.1 Métodos GET e POST	 31
2.2 Obtendo e validando os dados	 32
2.3 Upload de arquivos	 36
2.4 Headers	39
Aula 3 – Acesso, inserção e listagem no
banco de dados MySQL	 43
3.1 Criando o banco de dados	 44
3.2 Conectando ao banco de dados	 44
3.3 Inserindo dados	 47
3.4 Listando os dados	 52
3.4.1 Formulário dinâmico	 54
Aula 4 – Consulta, exclusão e alteração no
banco de dados MySQL	 57
4.1 Consultando no banco de dados MySQL	 57
4.2 Excluindo no banco de dados MySQL	 60
4.3 Alterando no banco de dados MySQL	 62
Aula 5 – Gerenciando sessões	 73
5.1 Criando uma sessão	 74
5.2 Manipulando as variáveis de uma sessão	 74
5.3 Excluindo a sessão	 75
5.4 Caso de uso: autenticando usuários	 75
5.4.3 Fazer logout	 78
Aula 6 – Caso de uso: aplicação utilizando o padrão MVC	 79
6.1 O que é MVC?	 79
6.2 Estrutura do MVC	 80
6.3 Alterando nosso sistema para o MVC	 81
Referências	 89
Currículo do professor-autor	 90
Programação para Webe-Tec Brasil 8
e-Tec Brasil9
Palavra do professor-autor
Olá! Estudante!
É um prazer tê-lo conosco.
Apesar de se tratar de um curso a distância, você não está sozinho nesta jor-
nada. É importante que você conheça toda a equipe envolvida neste curso:
coordenadores, professores especialistas, tutores a distância e tutores presen-
ciais, porque quando precisar de algum tipo de ajuda saberá a quem recorrer.
Além disso, temos à nossa disposição um ambiente virtual cheio de recursos
que podem nos auxiliar neste processo.
A Educação a Distância (EaD), pela sua característica de amplitude e pelo uso
de tecnologias modernas, representa uma nova forma de aprender, respei-
tando sempre o ritmo de aprendizado de cada aluno.
Na EaD você é o grande responsável pelo sucesso da aprendizagem. Seu
desempenho será mais proveitoso à medida que for resolvendo os exercícios
propostos e participando das discussões com os tutores e demais colegas de
curso. Aprender programação requer dedicação e tempo; portanto, organize
seu plano de estudo reservando um tempo todos os dias para os estudos,
para que as atividades não acumulem.
Desejo-lhe sucesso e dedicação!
Um grande abraço!
Prof. MSc. Jean Eduardo Glazar
Prog web
e-Tec Brasil11
Apresentação da disciplina
Nesta disciplina estudaremos programação para web sob o enfoque do servi-
dor, ou seja, depois de enviado algum dado a partir de uma página em HTML.
Esta disciplina é uma continuação de Fundamentos do Desenvolvimento
Web (FDW).
Várias são as linguagens para criação de sistemas web. Vamos nos focar na
linguagem PHP, por ser uma linguagem de fácil aprendizado, comparada
com as demais, e bastante popular.
Como é uma linguagem de programação, todos os conceitos aprendidos
até agora serão bastante utilizados. Também trabalharemos com banco de
dados, armazenando e manipulando as informações via páginas web. Nesse
momento, será muito útil o conhecimento adquirido da disciplina Banco de
Dados (BD).
Por fim, veremos uma arquitetura para sistemas web como forma de orga-
nizarmos melhor as páginas de um sistema, com a finalidade de obtermos
produtividade no desenvolvimento e facilitarmos a manutenção posterior.
Lembre-se, a melhor forma de aprender programação é praticando!
Prog web
e-Tec Brasil13
Disciplina: Programação para Web (carga horária: 60 h).
Ementa: Linguagem para estilos. Metalinguagem. Construção de páginas
dinâmicas. Integração com banco de dados.
AULA
OBJETIVOS DE
APRENDIZAGEM
MATERIAIS
CARGA
HORÁRIA
(horas)
1.A Linguagem
PHP
Comparar as vantagens e desvantagens
do PHP em relação a outras linguagens.
Instalar e configurar o ambiente de
desenvolvimento web.
Conhecer a sintaxe da linguagem PHP.
Construir páginas web com PHP.
Caderno impresso.
Ambiente Virtual de Ensino-
-aprendizagem (AVEA).
Sites dos programas de
instalação:
http://www.php.net/downloads
http://www.apache.org
http://www.wampserver.com
http://www.easyphp.org
http://netbeans.org
10
2. Recebendo da-
dos do formulário
Entender como os dados de um formu-
lário são manipulados em um servidor
com PHP.
Aprender e exercitar o envio de um
arquivo para o servidor a partir de uma
página web.
Conhecer a forma de gerenciar as infor-
mações de uma conexão com o servidor.
Caderno impresso.
Ambiente Virtual de Ensino-
-aprendizagem (AVEA).
Ambiente de programação web
(NetBeans).
10
3.Acesso, inserção
e listagem no
banco de dados
MySQL
Conhecer como o PHP interage com o
banco de dados.
Construir páginas web para inserir
dados em um banco de dados.
Construir páginas web para recuperar
informações do banco de dados.
Caderno impresso.
Ambiente Virtual de Ensino-
-aprendizagem (AVEA).
Ambiente de programação web
(NetBeans).
Gerenciador de banco de dados
(MySQL).
10
Projeto instrucional
AULA
OBJETIVOS DE
APRENDIZAGEM
MATERIAIS
CARGA
HORÁRIA
(horas)
4. Consulta, exclu-
são e alteração no
banco de dados
MySQL
Aprender como realizar uma consulta
filtrando por determinado campo.
Aprender a excluir e a alterar um registro
no banco de dados a partir de páginas
web em PHP.
Caderno impresso.
Ambiente Virtual de Ensino-
-aprendizagem (AVEA).
Ambiente de programação web
(NetBeans).
Gerenciador de banco de dados
(MySQL).
10
5. Gerenciando
sessões
Aprender para que serve uma sessão em
um sistema web e como programá-la.
Aprender a como utilizar a sessão para
autenticar usuários.
Construir páginas web para autenticar
os usuários.
Caderno impresso.
Ambiente Virtual de Ensino-
-aprendizagem (AVEA).
Ambiente de programação web
(NetBeans).
Gerenciador de banco de dados
(MySQL).
10
6. Caso de uso:
desenvolvendo
uma aplicação
utilizando o padrão
MVC
Conhecer o padrão de desenvolvimento
de sistemas web MVC.
Construir um sistema web no padrão
MVC.
Caderno impresso.
Ambiente Virtual de Ensino-
-aprendizagem (AVEA).
Ambiente de programação web
(NetBeans).
10
Programação para Webe-Tec Brasil 14
e-Tec Brasil
Aula 1 – A linguagem PHP
e-Tec BrasilAula 1 – A linguagem PHP 15
Objetivos
Comparar as vantagens e desvantagens do PHP em relação a ou-
tras linguagens.
Instalar e configurar o ambiente de desenvolvimento web.
Conhecer a sintaxe da linguagem PHP.
Construir páginas web com PHP.
1.1 O que é PHP?
PHP é uma linguagem que permite criar sites web dinâmicos, fundamentada
nos dados submetidos pelo usuário e derivada dos dados contidos no ban-
co de dados, que são alterados frequentemente. Vamos pegar o exemplo
de uma loja virtual. Os produtos estão sempre sofrendo alterações, seja no
preço, na quantidade em estoque, nos produtos em promoções, nos lança-
mentos, etc. Hoje, quando você entra em uma loja virtual, verá alguns pro-
dutos em promoção, outros em lançamentos, com um determinado preço.
Na próxima semana que você visitar o site, pode ser que os preços estejam
mais baixos, por causa de novas promoções, ou aquele produto que você
tinha visto não se encontre mais em estoque, já tenha sido vendido.
Passaremos a programar para web sob a visão do servidor. Para isso, utiliza-
remos a linguagem PHP. Como pré-requisito, é necessário o conhecimento
de HTML, principalmente de formulário, que será utilizado para enviar dados
para o servidor. Portanto é extremamente importante que você revise o con-
teúdo visto em Fundamentos do Desenvolvimento Web.
O código PHP é executado no servidor, sendo enviado para o cliente apenas
HTML. Dessa maneira é possível interagir com bancos de dados e aplicações exis-
tentes no servidor, com a vantagem de não expor o código fonte para o cliente.
Programação para Webe-Tec Brasil 16
O PHP foi criado em 1995 por Rasmus Lerdorf com o nome de Personal Home
Page Tools (Ferramentas Para Página Pessoal), para auxiliar no desenvolvimen-
to de páginas simples. Como teve boa aceitação e muitos programadores
utilizando-as, novas versões foram desenvolvidas com cada vez mais recursos.
Existem outras linguagens de programação que podemos utilizar para criar
as páginas dinâmicas, como Java, Perl, ASP, etc.
1.2 Instalação
Para testar as páginas PHP, não basta dar um duplo clique nos “arquivos.
php”, como se faz com os .htm ou .html. É necessário ter um servidor web
configurado para isso. Um dos servidores web mais utilizados é o Apache.
1.2.1 Instalação no Windows
Você pode instalar o Apache e o PHP separados. Para isso basta pegar os
arquivos de instalação nos respectivos sites oficiais.
Porém, configurações manuais deverão ser feitas para os dois funcionarem
perfeitamente.
A forma mais fácil de instalar é utilizar pacotes que instalam e configuram
todos os programas necessários para o desenvolvimento de páginas web de
uma única vez. Um conjunto muito utilizado consiste do Apache (servidor
web), MySQL (banco de dados) e PHP (linguagem para as páginas web
dinâmicas), conhecido como AMP (inicial de cada produto). Quando esses
produtos são instalados no Linux, chamamos de LAMP. Quando são instala-
dos no Windows, chamamos de WAMP.
1.2.2 Instalação no Linux (Ubuntu)
No Ubuntu também podemos instalar os programas separados, usando al-
gum instalador, como o apt-get. Na mesma linha de comando é possível
instalar todos os pacotes necessários, basta digitar:
sudo apt-get install apache2 php5 libapache2-mod-php5 mysql-server
libapache2-mod-auth-mysql php5-mysql
Nas versões mais novas do Ubuntu, também é possível instalar um pacote
com todos os programas. O comando é:
sudo tasksel install lamp-server
Pesquise sobre as outras
linguagens de programação
web e discuta com os colegas
e tutores, no ambiente virtual
de ensino-aprendizagem,
destacando as vantagens e
desvantagens de cada uma.
servidor web
É um programa de computador
responsável por aceitar pedidos
HTTP de clientes, geralmente
os navegadores, e servi-los
com páginas de respostas (em
HTML) incluindo dados, imagens,
sons e links. Esse programa
disponibiliza um local específico
no computador servidor (site)
para armazenar e processar as
páginas de resposta.
Apache
É o resultado de um esforço
coletivo de vários colaboradores,
para o desenvolvimento de um
software gratuito, robusto e com
qualidade, para a implementação
de um servidor HTTP. É o servidor
web mais usado no mundo. É
capaz de executar códigos em
PHP, Perl, Shell Script,ASP, dentre
outros. Sua utilização mais
conhecida é a que combina o
Apache com a linguagem PHP e
o banco de dados MySQL.
Para mais detalhes sobre o
Apache, acesse o site oficial:
http://www.apache.org
Os principais instaladores
são:WAMP5 (http://www.
wampserver.com) e EasyPHP
(http://www.easyphp.org).
Faça o download do Apache
e instale o software em seu
computador:
http://www.apache.org
Após instalar o Apache, faça o
download do PHP e instale-o:
http://www.php.net/downloads
e-Tec BrasilAula 1 – A linguagem PHP 17
Depois da instalação será necessário reinicializar o Apache. Para isso digite:
sudo /etc/init.d/apache2 restart
1.2.3 Testando o ambiente
Em qualquer instalação, seja no Windows ou no Linux, um diretório específico
será criado para colocar as páginas em PHP, chamado www. Quando o Apache
recebe uma solicitação para exibir uma página, ele irá buscar nesse diretório.
No Windows, o diretório www fica dentro do diretório de instalação do
produto. Por exemplo, se você usou o EasyPHP, o diretório é:
C:Arquivos de programasEasyPHP-5.3.2www
O diretório “EasyPHP” pode mudar de nome de acordo com a versão instalada.
No Linux, o diretório é:
/var/www
Podem ser criados subdiretórios dentro do diretório www. É até recomen-
dado que se faça isso, para organizar melhor as páginas.
Para testar o ambiente, primeiro devemos verificar se os programas estão
em execução. Você pode configurá-los para iniciar automaticamente, quan-
do o computador for ligado, ou manualmente. Tanto o WAMP5 quanto o
EasyPHP colocam um ícone próximo ao relógio que contém as opções para
inicializar (start) ou parar (stop) os processos. No WAMP5, o ícone é parecido
com um velocímetro de um carro. No EasyPHP, o ícone é o desenho de letra
‘E’. Na Figura 1.1 vemos o exemplo do WAMP5 e na Figura 1.2 vemos o
exemplo do EasyPHP.
Figura 1.1: Exemplo do menu de opções do WAMP5
Fonte:WAMP5 (2010) instalado no Microsoft Windows XP
Para mais detalhes sobre
instalação no Linux: https://
help.ubuntu.com/community/
ApacheMySQLPHP
Programação para Webe-Tec Brasil 18
Figura 1.2: Exemplo do menu de opções do EasyPHP
Fonte: EasyPHP 5.3.2 (2010) instalado no Microsoft Windows XP
Agora vamos criar um arquivo com extensão .php (teste.php, por exemplo)
na pasta base www. Abra-o com qualquer editor de texto e digite:
<?php phpinfo(); ?>
Salve-o e em seguida digite em seu navegador favorito o seguinte endereço:
http://localhost/teste.php.
teste.php é o nome do arquivo PHP que você criou. localhost significa que
o seu navegador irá procurar o arquivo no seu próprio computador, no dire-
tório www configurado na instalação. Na internet, como o servidor está em
outro local, substitui-se localhost pelo endereço web da empresa, como por
exemplo: http://www.empresaxyz.com.br/cadastro.php
Se a instalação estiver correta, uma tela com informações sobre a configura-
ção do PHP deverá ser exibida, como indicado pela Figura 1.3 a seguir.
Figura 1.3: Instalação do PHP com sucesso
Fonte: EasyPHP 5.3.2 instalado no Microsoft Windows XP, exibido pelo Mozilla Firefox 3.5
e-Tec BrasilAula 1 – A linguagem PHP 19
1.3 Sintaxe básica
O código do PHP é embutido dentro de um arquivo HTML, quando for ne-
cessário algum processamento pelo servidor. Depois que o servidor processar
o código PHP, apenas o que for gerado em HTML será enviado de volta para
o usuário; assim, o usuário não conseguirá ver o código em PHP, que ficará
apenas no servidor. A Figura 1.4 ilustra o funcionamento de uma página
web dinâmica.
Navegador HTTP
HTML
Executa Banco de
Dados
Módulo PHP
Páginas .PHP
Servidor Web
APACHE
1
2
4
3
5
Figura 1.4: Funcionamento de uma página dinâmica PHP
Fonte: Equipe produção CEAD/IFES (2011)
Passo 1 – O usuário em seu navegador solicita uma página em PHP, por
exemplo, consulta.php. Essa solicitação é enviada pelo protocolo HTTP ao
servidor web da empresa (por exemplo, o Apache).
Passo 2 – O Apache chama a página PHP que foi solicitada e a executa.
Passo 3 – A página PHP pode ou não fazer acesso ao banco de dados.
Passo 4 – Ao final da execução do programa PHP, uma página de resposta
em HTML é enviada ao Apache.
Passo 5 – O Servidor web Apache repassa a página de resposta para o na-
vegador que a solicitou, que a exibe.
Para diferenciar o código PHP dentro da página em HTML, podem ser utili-
zados os delimitadores descritos na Figura 1.5 a seguir.
1) <?php
Comandos;
?>
2) <?
Comandos;
?>
3) <script
language=”php”>
Comandos;
</script>
4) <%
Commandos;
%>
Figura 1.5: Delimitadores de código em PHP
Fonte: Elaborada pelo autor
Programação para Webe-Tec Brasil 20
O primeiro delimitador da Figura 1.5 é o padrão. O segundo é uma simpli-
ficação do primeiro. Esses são os mais usados. O terceiro segue o estilo de
scripts em HTML. O quarto segue o estilo do ASP.
Para utilizar a forma simplificada, bem como o estilo ASP, o arquivo de configu-
ração php.ini deve ser alterado, pelos campos short_open_tags e asp_tags,
respectivamente.
A Figura 1.6 mostra a estrutura de uma página HTML com o código PHP
embutido.
Figura 1.6: Exemplo de estrutura de uma programação de uma página em PHP
Fonte: Elaborada pelo autor
Pode haver vários blocos de PHP misturados com vários trechos de HTML.
1.3.1 Gerando código em HTML
Como o código PHP é processado no servidor e apenas o HTML é enviado
como resposta, utilizaremos o comando echo para gerar esse HTML. Veja o
exemplo da Figura 1.7 a seguir.
Figura 1.7: Exemplo de programa utilizando o comando echo
Fonte: Elaborada pelo autor
comando echo
É a instrução que envia para a
página de saída, em HTML, as
informações processadas em
PHP, podendo ser texto, números
ou variáveis. Essas informações,
na maioria das vezes, são
mescladas com os comandos
HTML.
e-Tec BrasilAula 1 – A linguagem PHP 21
1.4 Como testar uma página em PHP
Existem vários editores de PHP. Dentre os gratuitos, recomenda-se o PHPEditor.
Porém, vamos utilizar um ambiente de desenvolvimento mais moderno, que
engloba várias linguagens e que está sempre em atualização, o NetBeans.
Para verificar se o seu NetBeans possui o módulo PHP instalado, basta aces-
sar “Ferramentas->Plug-ins” e verificar, na aba “Instalado”, se o PHP se
encontra ativado; senão, ative-o.
Se não estiver na aba “Instalado”, procure-o na aba “Plug-ins disponíveis”
e instale-o (é preciso estar conectado à internet).
Todos os arquivos devem ser salvos com a extensão .php no diretório www
da instalação do servidor web. Crie subdiretórios dentro do www para me-
lhor organizar seus arquivos.
Os subdiretórios dentro do diretório www devem ter permissão de gravação
e escrita.
O primeiro passo é abrirmos o NetBeans e criarmos um novo projeto. Para
isso, realize os seguintes passos:
1.	 Clique em “Arquivo” > “Novo Projeto”.
2.	 Dentre as opções “Categorias” da janela aberta, escolha “PHP”. Dentro
de “Projetos”, escolha “Aplicativo PHP”. Clique em “Próximo”.
3.	 Escolha um nome para o projeto (por exemplo, MeuSitePHP).
4.	 Na “Pasta de códigos-fonte”, escolha o diretório www, ou algum
subdiretório dentro deste, por exemplo, C:/Arquivos de Programas/
EasyPHP/www/ProgWeb. No Linux seria /var/www/ProgWeb. Cli-
que em “Finalizar”.
Após criarmos o projeto, ele passa a ser exibido na aba “Projetos”, que
fica no canto esquerdo do NetBeans. Para criar os arquivos em PHP, siga os
seguintes passos:
Para mais detalhes sobre
o NetBeans e para fazer o
download da sua instalação,
acesse: http://netbeans.org
Programação para Webe-Tec Brasil 22
1.	 Na aba de “Projetos”, clique com o botão direito do mouse no nome de
nosso projeto.
2.	 Escolha as opções “Novo” > “Página da Web do PHP”.
3.	 Escolha um nome para a página com a extensão .php (por exemplo,
PrimeiraPagina.php). Clique em “Finalizar”.
PRONTO!!! Você já pode programar em PHP. A Figura 1.8 apresenta um
trecho da tela mostrada após a realização dos passos acima.
Figura 1.8: Criando uma página PHP no NetBeans
Fonte: NetBeans IDE 6.8 instalado no Microsoft Windows XP
Você também pode, e deve, criar subdiretórios dentro do seu projeto, para
organizar melhor as suas páginas.
Para criar subdiretórios no NetBeans, siga os passos:
1.	 Clique com o botão direito do mouse no nome do projeto.
2.	 Escolha as opções “Novo” > “Diretório”.
3.	 Escolha um nome para o diretório. Clique em “Finalizar”.
Quando for criar novas páginas PHP, clique em cima do diretório no qual
deseja colocar as páginas.
Uma arquitetura para
desenvolvimento web que
organiza a programação
das páginas de um sistema,
com o objetivo de aumentar
a produtividade e facilitar a
manutenção, será vista na Aula 6.
e-Tec BrasilAula 1 – A linguagem PHP 23
Depois de programar e salvar o arquivo, vamos testá-lo. Para isso, abra seu na-
vegador favorito e digite: http://localhost/nomedoarquivo.php, em que:
localhost – corresponde ao seu computador local; e
nomedoarquivo.php – nome que você deu no seu arquivo PHP (no nosso
exemplo, PrimeiraPagina.php).
Se o servidor web estiver em outro computador, então troque localhost pelo
IP (ou hostname) desse servidor.
Caso tenha criado subdiretórios, então acrescente no endereço do navegador
os subdiretórios criados. Exemplo: http://localhost/ProgWeb/cadcliente.php
Nesse exemplo foi criado o subdiretório ProgWeb e dentro dele foi colocada
a página cadcliente.php.
1.5 Variáveis e tipos
As variáveis em PHP não precisam ser declaradas. Quando atribuímos algum
valor para elas, o tipo é automaticamente reconhecido. Os tipos suportados são:
•	 Inteiros (integer ou long);
•	 Reais (float ou double);
•	 Strings;
•	 Array (vetores);
•	 Objetos*.
* Como se trata de um curso básico, a programação orientada a objetos em
PHP não será vista.
Os nomes das variáveis devem ser criados com um ‘$’ seguido de uma string
que deve ser inicializada por uma letra ou ‘_’. Exemplos:
$x = 10.4;
$frase = “Exemplo de variável string”;
$_cont = 0;
Programação para Webe-Tec Brasil 24
O PHP é case sensitive, ou seja, letras maiúsculas são diferentes de minúscu-
las. Portanto, para facilitar, criem as variáveis sempre em minúsculo.
Os comentários podem ser de uma linha, utilizando o símbolo //, ou de mais
linhas, delimitado pelos símbolos /* e */. Exemplos:
$cont = 0; // Exemplo de comentário de uma linha
/* Exemplo de comentário com mais de uma linha. Preste atenção nos
símbolos delimitadores. */
1.6 Operadores
Os principais operadores em PHP estão descritos nos quadros a seguir: os
operadores aritméticos podem ser vistos no Quadro 1.4, os operadores
lógicos estão descritos no Quadro 1.5, os operadores de comparação
são mostrados no Quadro 1.6 e demais operadores importantes estão no
Quadro 1.7 a seguir.
Quadro 1.4: Operadores aritméticos
+ Adição
- Subtração
* Multiplicação
/ Divisão
% Módulo (resto da divisão)
Fonte: Elaborado pelo autor
Quadro 1.5: Operadores lógicos
And E
Or Ou
Xor Ou exclusivo
! Negação
&& E
|| Ou
Fonte: Elaborado pelo autor
e-Tec BrasilAula 1 – A linguagem PHP 25
Quadro 1.6: Operadores de comparação
== Igual a
!= Diferente de
< Menor que
> Maior que
<= Menor ou igual a
>= Maior ou igual a
Fonte: Elaborado pelo autor
Quadro 1.7: Outros operadores importantes
• Concatenação de strings
= Atribuição
++ Incremento (soma 1)
-- Decremento (subtrai 1)
Fonte: Elaborado pelo autor
1.7 Estruturas de controle
As estruturas de controle servem para controlar a ordem de execução das
instruções de um programa. As principais são as de seleção e repetição.
1.7.1 Comandos de seleção
Os comandos de seleção servem para escolher um determinado bloco de
comandos a partir da avaliação de uma expressão. Os comandos de seleção
são: if (e suas variações) e o switch.
Um bloco de comandos é delimitado pelos símbolos: ‘{‘ e ‘}’.
if – executa um bloco de comando caso a expressão seja verdadeira (se..
então). Veja um exemplo na Figura 1.9.
Figura 1.9: Exemplo do comando if
Fonte: Elaborada pelo autor
if...else – executa o primeiro bloco de comandos se a expressão for verda-
deira e o bloco do else caso a expressão seja falsa. (se...então...senão). A
Figura 1.10 mostra um exemplo.
Programação para Webe-Tec Brasil 26
Figura 1.10: Exemplo do comando if...else
Fonte: Elaborada pelo autor
if...elseif...else – o elseif é utilizado quando várias condições precisam ser
analisadas. Para cada elseif, uma nova expressão deve ser analisada. Quan-
do todas as expressões forem falsas, então o último bloco else será executa-
do. Exemplo na Figura 1.11 a seguir.
Figura 1.11: Exemplo do comando if... elseif... else
Fonte: Elaborada pelo autor
switch – funciona semelhante a vários if juntos. Uma expressão ou variável
é analisada e, de acordo com o valor, um entre vários blocos de comandos é
executado. Diferentemente do if, cuja expressão somente retorna verdadeiro
ou falso, no switch o valor retornado pode ser diverso. A expressão é compa-
rada com cada uma das cláusulas case até que uma coincida. Quando isso
acontece, o bloco de comandos correspondente é executado até encontrar o
comando break, que interrompe a execução daquele bloco e finaliza o swi-
tch. Se nenhuma cláusula coincidir, então o bloco delimitado pelo comando
default é executado. Na Figura 1.12 temos um exemplo do switch.
Figura 1.12: Exemplo do comando switch
Fonte: Elaborada pelo autor
e-Tec BrasilAula 1 – A linguagem PHP 27
1.7.2 Comandos de repetição
Os comandos de repetição servem para executar repetidas vezes o mesmo
bloco de comandos, até que uma condição de parada seja atingida. Os co-
mandos são: while,do...while e for. A diferença entre eles está na condi-
ção de parada das repetições e no contador de iteração.
while – a condição de parada é testada no início da iteração. Se for verda-
deira, repete o bloco de comandos; se for falsa, interrompe as repetições.
Exemplo na Figura 1.13.
Figura 1.13: Exemplo do while
Fonte: Elaborada pelo autor
do...while – funciona de maneira semelhante ao while; a diferença é que
a condição é testada depois do bloco de comandos. Isso garante que pelo
menos uma vez o bloco de comandos será executado. Veja um exemplo na
Figura 1.14 a seguir.
Figura 1.14: Exemplo do do...while
Fonte: Elaborada pelo autor
for – é utilizado quando se conhece a quantidade total de iterações ou
quando se pretende contar essas iterações. Sua sintaxe é:
for (inicialização; condição; incremento) { . . }
Em que:
•	 Inicialização – é uma instrução de atribuição executada apenas uma
vez, no início do laço. Geralmente utilizada para inicializar a variável que
irá controlar o número de repetições do laço.
•	 Condição – é a expressão que controla a parada das repetições. Se for ver-
dadeira, o bloco de comandos é executado novamente; se for falsa, termina.
Programação para Webe-Tec Brasil 28
•	 Incremento – define a maneira como a variável de controle do laço será
alterada a cada vez que o laço for repetido. Ela é executada ao final da
execução de cada repetição do corpo do laço.
Veja exemplo na Figura 1.15 a seguir.
Figura 1.15: Exemplo do for
Fonte: Elaborada pelo autor
Atividades de aprendizagem 1.1: Crie um código em PHP que exiba uma
sequência de números de 1 a 100. Os números pares devem ser formatados
em negrito e os números ímpares em itálico.
1.8 Array
Os arrays são estruturas para armazenar valores que precisam ser indexados.
Diferentemente do C, em que os índices são apenas números inteiros e con-
secutivos, em PHP os índices podem ser de vários tipos. Mesmo se forem in-
teiros não precisam ser consecutivos. Os valores armazenados não precisam
ser do mesmo tipo. Veja um exemplo na Figura 1.16, onde print_r mostra
todos os elementos do array.
Figura 1.16: Exemplo do array
Fonte: Elaborada pelo autor
Perceba que podemos trabalhar com índices diferentes em um mesmo array.
Outra forma semelhante para inicializar o array pode ser vista na Figura 1.17,
que é idêntica a da Figura 1.16 a seguir.
e-Tec BrasilAula 1 – A linguagem PHP 29
Figura 1.17: Outra forma de inicializar o array
Fonte: Elaborada pelo autor
Crie um array e preencha com alguns estados, indexados pela sigla, como
no programa na Figura 1.16. Faça uma função que receba esse array e uma
sigla como parâmetro e mostre o nome do estado.
1.9 Funções
As funções em PHP seguem o mesmo princípio das de outras linguagens. A
diferença é que como não precisamos declarar os tipos, a lista de parâmetros
possui apenas o nome das variáveis. As funções que retornam valor também
não precisam informar o tipo de retorno. A sintaxe é:
function nome_função (lista de parâmetros) { ... }
Para organizar melhor o código, as declarações das funções ficam dentro do
bloco <HEAD>, em uma página HTML. As chamadas das funções ficam no
<BODY>. Veja exemplos de funções na Figura 1.18 a seguir.
Figura 1.18: Exemplos de funções
Fonte: Elaborada pelo autor
Para mais detalhes sobre funções
para manipulação de arrays,
consulte:
SOARES,Walace. PHP 5:
conceitos, programação e
integração com banco de dados.
3ª ed. São Paulo: Érica, 2007.
Programação para Webe-Tec Brasil 30
Por definição, a passagem de parâmetros é por valor. Caso se queira passar
os parâmetros por referência, para alterar uma variável dentro da função,
utiliza-se o símbolo ’&’ antes do parâmetro. Veja a Figura 1.19 a seguir.
Figura 1.19: Exemplo de função com passagem de parâmetro por referência
Fonte: Elaborada pelo autor
Com os conceitos e comandos aprendidos nesta aula é possível criar páginas
web básicas em PHP. O conhecimento desses comandos é de extrema im-
portância para os demais recursos que serão abordados nas próximas aulas.
Portanto, somente passe para a próxima aula se todos esses conceitos e
comandos foram entendidos e bem praticados.
Resumo
Nesta primeira aula vimos como instalar e configurar o servidor web Apache
e o módulo PHP. Aprendemos a sintaxe do PHP e com isso criamos nossa
primeira página web, ainda sem muitos recursos e sem interatividade. Na
próxima aula entenderemos como os dados de um formulário são manipu-
lados em um servidor com PHP, aprenderemos a enviar um arquivo para o
servidor a partir de uma página web e conheceremos a forma de gerenciar
as informações de uma conexão com o servidor.
Atividade de aprendizagem
1.	 Pesquise nos livros os comandos para pegar a data do sistema. Faça uma
função de saudação da sua página. Essa função deverá pegar a hora
corrente e mostrar na tela a mensagem abaixo, com sua respectiva for-
matação.
0 <= Hora < 12 à “BOM DIA” (em vermelho)
12 <= Hora < 18 à “BOA TARDE” (em verde)
18 <= Hora < 24 à “BOA NOITE” (em azul)
Leituras complementares:
SOARES,Walace. PHP 5:
conceitos, programação e
integração com banco de dados.
3ª ed. São Paulo: Érica, 2007.
GUTMANS,Andi; BAKKEN, Stig
Saether; RETHANS, Derick.
PHP 5: programação ponderosa.
Rio de Janeiro:Alta Books, 2005.
Links interessantes:
http://www.php.net
http://www.apache.org
http://pt.wikipedia.org/wiki/PHP
e-Tec Brasil
Aula 2 – Recebendo dados
do formulário
Objetivos
Entender como os dados de um formulário são manipulados em
um servidor com PHP.
Aprender e exercitar o envio de um arquivo para o servidor a partir
de uma página web.
Conhecer a forma de gerenciar as informações de uma conexão
com o servidor.
Após o conhecimento da sintaxe dos comandos em PHP, vamos agora criar
as páginas dinâmicas tratando as informações obtidas de outras páginas,
como por exemplo, de formulários.
A partir de um formulário em HTML em um navegador, o usuário envia da-
dos para uma página no servidor. Aprenderemos os comandos em PHP para
capturar esses dados e fazer sua validação.
É extremamente importante que vocês revisem o conteúdo de formulários
HTML vistos na disciplina Fundamentos do Desenvolvimento Web.
2.1 Métodos GET e POST
Na definição de um formulário em HTML, três atributos serão importantes
para a criação de páginas em PHP no servidor: action, method e enctype.
Vejamos um exemplo na Figura 2.1 a seguir.
Figura 2.1: Exemplo de definição de um formulário em HTML
Fonte: Elaborada pelo autor
e-Tec BrasilAula 2 – Recebendo dados do formulário 31
•	 name– nome do formulário. Útil para referência em funções javascript.
•	 action – arquivo no servidor que será chamado para tratar os dados do
formulário. A página em HTML com o formulário irá passar os dados para
o programa PHP especificado por este campo.
•	 method – método de envio de dados para o servidor. Dois tipos são per-
mitidos GET e POST. Mais detalhes a seguir.
•	 enctype – define o formato de como os dados serão enviados para o ser-
vidor. Necessário para o envio de arquivos, que será tratado mais adiante.
Por enquanto, nem precisamos especificar nada. O exemplo acima mos-
tra o valor padrão, que pode ser omitido.
A diferença entre GET e POST está na forma como os dados são enviados
para o servidor. No método POST, os dados são enviados ocultos. É o método
recomendado quando se utiliza formulário.
Já no método GET, os dados são enviados de forma aberta, na URL, na forma do
par ‘campo=valor’. Para isso, utiliza-se o símbolo ‘?’ depois do nome do arqui-
vo. Os pares ‘campo=valor’ são separados pelo símbolo ‘&’. Essa forma de envio
é utilizada quando temos poucas informações a serem passadas, e elas podem
ser especificadas direto na URL. Utiliza-se principalmente quando queremos pas-
sar dados através de um link, sem os campos de um formulário. Exemplo:
http://www.xxx.com/cons.php?nome=João&cidade=Colatina
Nesse exemplo foi utilizado o método GET, que chama o programa cons.php,
passando o campo nome igual a ‘João’ e o campo cidade igual a ‘Colatina’.
2.2 Obtendo e validando os dados
Para enviar dados para o servidor, vamos criar um formulário como o da
Figura 2.2 a seguir. Preste atenção no nome de cada campo. Esse nome será
usado no programa PHP. Veja também o atributo action do <FORM>, ele
informa o nome do arquivo PHP.
Um exemplo mais real pode
ser visto no site do Google.
Depois que você fizer uma
pesquisa qualquer, verifique
o endereço que aparece.
Perceba que existem vários
pares ‘campo=valor’ que
são passados para o servidor,
mas que não têm formulário
para digitar.
Programação para Webe-Tec Brasil 32
Figura 2.2: Exemplo de formulário para envio dos dados
Fonte: Elaborada pelo autor
e-Tec BrasilAula 2 – Recebendo dados do formulário 33
Seja passando os dados via POST ou GET, o programa no servidor para cap-
turar e tratar os dados será o mesmo. Os dados enviados para o programa
PHP serão transformados em um array, $_POST, se o método de envio for o
POST, e $_GET, se o método de envio foi o GET. Esses vetores são indexados
pelos nomes dos campos.
Se o método de envio for o POST, os nomes dos campos serão aqueles in-
formados no atributo name dos comandos HTML. Se o envio for por GET,
então o nome dos campos serão aqueles especificados no endereço pelo
par ‘campo=valor’.
Vamos agora criar um arquivo PHP com o mesmo nome dado no action do
formulário (no exemplo cadcliente.php). Nessa página, vamos capturar os da-
dos enviados e mostrar uma página de resposta com esses dados. Para pegar
cada campo, devemos informar qual o array que contém os dados ($_POST ou
$_GET) e entre colchetes [ ] o nome do campo, definido no formulário HTML.
Depois de pegar os dados, podemos verificar se foram preenchidos e se
estão corretos. Por exemplo: verificar se o campo foi preenchido, verificar
datas, validar CPF, verificar se o e-mail é válido, etc.
A Figura 2.3 mostra o código que recebe os dados e verifica se alguns cam-
pos estão preenchidos; caso não estejam, mostra uma mensagem de erro e,
por último, exibe na tela os dados informados. Mais adiante aprenderemos
a inserir esses dados no banco de dados.
Programação para Webe-Tec Brasil 34
Figura 2.3: Página PHP que recebe os dados
Fonte: Elaborada pelo autor
A Figura 2.4 mostra a página exibida pelo programa acima, com os valores
digitados no formulário.
Figura 2.4: Resultado do envio de dados
Fonte: Página exibida pelo Mozilla Firefox 3.5
Funções para validar datas,
CPF, e-mail, etc. são facilmente
encontradas na internet.Veja
alguns links:
http://codigofonte.uol.com.br/
codigos/php/validacao
http://www.revistaphp.com.br
http://www.criarweb.com/php
http://phpbrasil.com
http://www.codigofonte.net/
scripts/php.
e-Tec BrasilAula 2 – Recebendo dados do formulário 35
Note que os valores dos campos do tipo ComboBoxe ListBox são os valores
definidos no atributo value da opção escolhida (<option>) e não o nome
que aparece no formulário. No exemplo acima, o estado é ‘ES’.
O valor do campo do tipo RadioButton também é o valor do atributo va-
lue. No exemplo acima, o sexo é ‘M’ ou ‘F’.
Campos do tipo CheckBox retornam true(verdadeiro) se foram marcados e
false (falso), caso contrário.
Pesquise na internet as funções para validar data e CPF. Acrescente essas
funções ao programa da Figura 2.3 para validar nosso campo CPF e data de
nascimento. Informe as mensagens de erro em vermelho.
2.3 Upload de arquivos
Para enviar um arquivo para o servidor, como por exemplo uma foto, pre-
cisamos inserir um campo apropriado no formulário. Esse campo exibe um
botão “Procurar” que abre a janela para escolher um arquivo. O comando é:
<INPUT type=”file” name=”nome_do_campo”>
Para testar, vamos acrescentar um campo ao formulário da Figura 2.2 para
fazer o upload de uma foto. Precisamos mudar a tag <FORM>, adicionando
o atributo enctype e colocar mais uma linha, depois da confirmação da
senha, para fazer o upload da foto. Os comandos alterados e acrescentados
estão na Figura 2.5 a seguir.
Para o upload funcionar é necessário acrescentar o atributo enctype dentro
da tag <FORM>, assim: enctype=”multipart/form-data”.
Figura 2.5: Formulário com campo para upload de arquivo
Fonte: Elaborada pelo autor
Programação para Webe-Tec Brasil 36
Quando o arquivo é enviado para o servidor, várias informações são armazena-
das em um vetor chamado $_FILES, como o nome, o tipo, o tamanho, etc. Para
obter esses dados, devemos informar o nome do campo entre colchetes, assim:
$arquivo = $_FILES[‘nome_do_campo’];
A variável $arquivo foi utilizada para receber o arquivo. A partir desse comando,
sempre que pretendermos trabalhar com o arquivo, utilizaremos a variável $ar-
quivo. Diversas informações podem ser obtidas a partir dessa variável, como:
códigos de erros, se ocorrerem, tamanho, tipo e o nome temporário do arquivo.
Se ocorrer algum erro no upload, o código de erro fica armazenado no atri-
buto ‘error’. O código zero significa que não ocorreu nenhum erro. Para
obter esse código, utilize o seguinte comando:
$arquivo[‘error’]
As verificações que podemos fazer são em relação ao tamanho, ao tipo do
arquivo, etc. No nosso exemplo, vamos verificar se o arquivo é uma imagem
(gif, jpg, png, bmp) e se o tamanho é menor que 100.000 bytes. Os coman-
dos para pegar o tipo e o tamanho do arquivo, respectivamente, são:
		 $arquivo[‘type’]	 e 	 $arquivo[‘size’]
O arquivo, propriamente dito, quando chega ao servidor, é colocado em um
diretório temporário, configurado no arquivo php.ini. Para mover para o
diretório definitivo, usa-se o seguinte comando:
move_uploaded_file($arquivo[‘tmp_name’], destino)
em que:
$arquivo[‘tmp_name’] – pega o nome do arquivo temporário; e
destino – diretório de destino do arquivo.
O diretório de destino deve existir e com permissão para escrita.
Se a cópia for realizada com sucesso, esse comando retorna true. Caso ocor-
ra algum erro, como por exemplo, o diretório de destino não existe ou não
tem permissão de gravação, essa função retornará false.
e-Tec BrasilAula 2 – Recebendo dados do formulário 37
A última etapa é mostrar a foto que foi enviada. Para isso basta colocar a tag
<IMG> com o diretório destino para onde o arquivo foi copiado. A Figura 2.6
mostra o trecho de código para lidar com o upload do arquivo. Esse código deve
ser colocado no programa da Figura 2.3, antes da parte que mostra os dados na
tela. A Figura 2.7 mostra o resultado do envio dos dados com a imagem.
Figura 2.6: Página PHP que trata um arquivo recebido
Fonte: Elaborada pelo autor
Programação para Webe-Tec Brasil 38
Figura 2.7: Resultado do envio de dados com foto
Fonte: Página exibida pelo Mozilla Firefox 3.5
Teste o programa da Figura 2.6.
2.4 Headers
Os headers servem para o gerenciamento da conexão entre o PHP e o
navegador do usuário, podendo trocar informações contidas no cabeçalho
HTTP de uma página.
Os headers são informações trocadas entre o navegador e o servidor de
maneira transparente ao usuário, e podem conter dados sobre o tipo e a
versão do navegador, a página de onde partiu a requisição (link), os tipos de
arquivos aceitos como resposta, e uma série de outras informações.
e-Tec BrasilAula 2 – Recebendo dados do formulário 39
A sintaxe da função header:
header(cabeçalho)
Em que: cabeçalho é um comando já definido para indicar o tipo de cabe-
çalho HTTP a ser usado.
Por exemplo, o cabeçalho “HTTP/” indica que um código de retorno é envia-
do para o navegador do cliente. O exemplo na Figura 2.8 mostra o envio de
uma mensagem de “Página não encontrada”:
Figura 2.8: Exemplo do envio de uma mensagem usando o header
Fonte: Elaborada pelo autor
Uma segunda forma de usar o header é para redirecionar para outra página.
Esse comando é muito útil para, ao final de uma página puramente em PHP,
redirecionar para outra página padronizada de resposta ou de erro. Usa-se o
comando “Location” e logo em seguida o nome da página que se pretende
redirecionar. Veja um exemplo na Figura 2.9:
Figura 2.9: Exemplo de redirecionamento de página usando o header
Fonte: Elaborada pelo autor
O comando header deve ser usado antes de qualquer comando de exibição
(echo, tags HTML, include).
Usaremos o header mais adiante como forma de redirecionamento de página.
Com os conhecimentos desta aula você tem a capacidade de criar páginas web
dinâmicas, nas quais, a partir de um formulário em HTML em um navegador, o
usuário possa enviar dados para um programa no servidor e receber uma men-
sagem. Esse fluxo de informação é a base de todas as páginas web dinâmicas.
Programação para Webe-Tec Brasil 40
Resumo
Nesta aula programamos nossa primeira página dinâmica com recebimento
e validação de dados. Também aprendemos a enviar um arquivo junto com
os dados. Porém, nossas páginas ainda não estão completas. Falta salvar os
dados para que eles não se percam. Para isso é preciso acessar banco de
dados a partir no PHP, que será nossa próxima Aula.
Atividade de aprendizagem
Acrescente no formulário da Figura 2.2 mais um campo para fazer o upload
de um arquivo do tipo PDF, como se fosse o envio do currículo da pessoa.
Altere o programa da Figura 2.3 para receber esse arquivo, fazer as suas va-
lidações (tipo e tamanho) e coloque um link para esse arquivo, com o nome
da pessoa, para quando clicar no link, abrir o arquivo PDF.
Leituras complementares:
SOARES,Walace. PHP 5:
conceitos, programação e
integração com banco de dados.
3ª ed. São Paulo: Érica, 2007.
GUTMANS,Andi; BAKKEN, Stig
Saether; RETHANS, Derick. HP 5:
programação ponderosa. Rio de
Janeiro:Alta Books, 2005.
MELO,Alexandre Altair de;
NASCIMENTO, Maurício G. F.
PHP profissional. 2ª ed. São
Paulo: Novatec, 2007.
e-Tec BrasilAula 2 – Recebendo dados do formulário 41
Prog web
e-Tec Brasil
Aula 3 – Acesso, inserção e listagem
no banco de dados MySQL
Objetivos
Conhecer como o PHP interage com o banco de dados.
Construir páginas web para inserir dados em um banco de dados.
Construir páginas web para recuperar informações do banco de
dados.
Até agora já aprendemos a criar páginas dinâmicas que recebem e validam os
dados, mas essas informações estão se perdendo. Precisamos armazená-las
em algum lugar. Esse local é o banco de dados.
Como pré-requisito, é fundamental que você revise a linguagem SQL, estudada
na disciplina de Banco de Dados, por ser essa a linguagem universal dos ban-
cos de dados. É por meio dela que o PHP irá “conversar” com o banco de dados.
A maioria dos sites dinâmicos acessa algum banco de dados. Em alguns
casos, somente para tarefas simples, como cadastrar usuários e senhas. Em
outros casos, o banco de dados é vital para o funcionamento do sistema
web, como uma loja virtual.
Com o PHP podemos acessar diversos banco de dados, como o MySQL,
PostgreSQL, Oracle, SQL Server, Firebird, Sysbase, Informix, SQLite e outros
mais. Para os bancos de dados que o PHP não tem um módulo específico,
podemos utilizar os drivers ODBC.
Um dos bancos de dados mais utilizados com o PHP é o MySQL. O PHP pos-
sui um módulo específico para esse banco. Utilizaremos o MySQL em nossos
exemplos por ser um banco simples de operar e utilizar pouco processamen-
to e memória, em comparação com os outros.
e-Tec BrasilAula 3 – Acesso, inserção e listagem no banco de dados MySQL 43
3.1 Criando o banco de dados
Antes de construir o site, devemos modelar os dados a serem manipulados
pelas páginas, porque assim teremos uma melhor visão das informações a
serem acessadas em cada página. Veja a seção sobre “Modelagem de Da-
dos” da disciplina Banco de Dados.
Para usarmos em nossos exemplos, vamos criar um banco de dados no MySQL
com o nome ProgWebBD e construir as tabelas descritas na Figura 3.1 a seguir.
Clientes
idClientes: INTEGER
Estados_sigla: CHAR(2) (FK)
nome:VARCHAR(100)
sigla: CHAR(2)
nome:VARCHAR(50)
cpf:VARCHAR(14)
Rel_01 Estadosendereço:VARCHAR(100)
dtNasc: DATE
sexo: CHAR(1)
login:VARCHAR(20)
senha:VARCHAR(50)
cinema:TINYINT(1)
musica:TINYINT(1)
info:TINYINT(1)
Figura 3.1: Tabelas a serem utilizadas nos exemplos
Fonte: Equipe produção CEAD/IFES (2011)
O campo idClientes é do tipo “autoincremento”.
Os campos cinema, musica e info armazenam 1 se aquela opção foi mar-
cada, e 0 caso contrário.
3.2 Conectando ao banco de dados
Em uma página PHP, o primeiro passo é conectar com o banco de dados.
Utilizaremos o comando mysql_connect para criar essa conexão.
A conexão é a “estrada” por onde trafegarão os dados da sua página até o
banco de dados, e vice-versa.
Programação para Webe-Tec Brasil 44
mysql_connect – abre a conexão de uma página em PHP com o banco de
dados. Sua sintaxe é:
mysql_connect(servidor, usuário, senha)
onde:
•	 servidor – IP (ou hostname) é a porta do servidor onde está o banco
de dados, no formato servidor: porta. Se o banco de dados estiver no
mesmo computador, pode usar localhost. Se a porta não for informada,
será utilizada a porta padrão, que no MySQL é a 3306.
•	 Usuário e senha cadastrados no banco de dados.
Podem ocorrer alguns erros ao se tentar abrir a conexão. Os casos mais co-
muns são: não encontrar o servidor ou o usuário e a senha não terem permis-
são de acesso ao banco. Caso ocorra algum erro, o ideal seria mostrar uma
mensagem de erro e interromper a execução da página, já que sem a conexão
não poderemos acessar o banco de dados. Para isso usaremos a função die.
die – função que exibe uma mensagem e interrompe a execução da página.
Sua sintaxe é:
die(“mensagem”)
A mensagem pode ser concatenada com a função mysql_error, que infor-
ma a mensagem original do erro. Exemplo:
die(“Erro ao conectar. ” . mysql_error() );
O ponto ‘.’ serve para juntar as duas mensagens, ou seja, ele é o operador
que concatena strings.
O die pode ser usado junto com outra função. Se der erro nessa função, o
die é chamado automaticamente. Utiliza-se o operador or para associar o
die a alguma função. O exemplo abaixo chama a função mysql_connect;
se der erro, automaticamente o die é executado para mostrar a mensagem
e interromper a execução da página.
mysql_connect(localhost,”root”,”root”) or die(“Erro ao conectar. ” .
mysql_error() );
e-Tec BrasilAula 3 – Acesso, inserção e listagem no banco de dados MySQL 45
Caso a abertura da conexão ocorra normalmente, o segundo passo é escolher o
nome do banco de dados que será utilizado. Em um servidor de banco de dados
podem existir vários bancos. Usaremos para isso a função mysql_select_db.
mysql_select_db – seleciona o banco a ser utilizado no servidor conectado
anteriormente. Sua sintaxe é:
mysql_select_db(“nome_banco”)
Exemplo: Selecionar o banco de dados criado anteriormente para os exemplos.
mysql_select_db(“ProgWebBD”);
O programa da Figura 3.2 mostra o exemplo de conexão com o nosso banco
de dados de exemplo. O servidor de banco de dados MySQL está no servi-
dor com IP 172.16.43.10, usuário “root”, senha “root” e o nome do banco
criado foi “ProgWebBD”.
Figura 3.2: Exemplo de conexão com o banco de dados
Fonte: Elaborada pelo autor
Cada página que necessitar acessar o banco de dados deverá ter esses dois
comandos no início.
Como um sistema web geralmente possui várias páginas, replicar esses co-
mandos não será uma boa solução. Caso tenha que mudar algum parâme-
tro, como por exemplo o IP do servidor, todas as página sofrerão modifica-
ções. Um trabalho e tanto!
Para evitar esse trabalho de manutenção, colocam-se os comandos de cone-
xão com o banco em um único arquivo e todas as páginas fazem acesso a
esse arquivo utilizando o comando:
Programação para Webe-Tec Brasil 46
include ou include_once
include – insere pedaços de códigos PHP de um determinado arquivo na
página atual.
include_once – a diferença é que este comando verifica se o arquivo já foi
inserido anteriormente, ou seja, insere somente uma única vez.
Sua sintaxe é:
include(“nome_arquivo.php”) ou
include_once(“nome_arquivo.php”)
Então, o código da Figura 3.2 ficará em um arquivo, por exemplo, “conexao-
bd.php”, e todas as outras páginas incluirão esse código da seguinte forma:
include_once(“conexaobd.php”)
PRONTO!!! Uma vez conectado com o banco de dados, podemos realizar todas
as operações para manipulação dos dados: inserir, pesquisar, alterar e excluir. O
que precisaremos saber para realizar essas operações é sobre a linguagem SQL.
Uma conexão estabelecida com o comando mysql_connect é encerrada,
automaticamente, ao final da execução da página. Caso queira encerrá-la
antes disso, deve ser utilizado o comando mysql_close.
mysql_close – fecha a conexão com o banco de dados. Sua sintaxe é:
mysql_close(identificador)
em que: identificador é a variável que indica a conexão criada. Se o iden-
tificador não for fornecido, a última conexão estabelecida será encerrada.
3.3 Inserindo dados
A linguagem padrão de comunicação com os bancos de dados é a lingua-
gem SQL. Para fazer com que o PHP execute os comandos SQL no banco de
dados MySQL, utiliza-se a função mysql_query.
e-Tec BrasilAula 3 – Acesso, inserção e listagem no banco de dados MySQL 47
mysql_query – função que executa um comando SQL no banco de dados
MySQL. Retorna verdadeiro (true) em caso de sucesso e falso (false) caso
contrário. Sua sintaxe é:
mysql_query(comando, conexao)
em que:
•	 comando – é o comando na linguagem SQL, como: INSERT, SELECT,
UPDATE, DELETE, etc.
•	 conexão – parâmetro opcional que indica a conexão com o banco de
dados. Se não for informada, utiliza a última conexão aberta.
Portanto, para inserir os dados no banco, o comando em SQL que é utilizado
é o INSERT. Para testarmos, vamos criar duas páginas: uma em HTML com o
formulário para digitar os dados e a outra em PHP, que irá receber os dados,
verificar se estão corretos e depois inserir no banco.
O formulário conterá os mesmos campos que a tabela Clientes do nosso
banco de dados de teste da Figura 3.1. Esse formulário será o mesmo utiliza-
do na Figura 2.2, da Aula 2, com a inclusão de mais um campo para o login,
chamado “txtLogin”. Esse formulário enviará os dados para a página em PHP
no servidor chamada “cadclientebd.php” (atributo action da tag <FORM>).
O programa em PHP no servidor será semelhante ao programa da Figura
2.3, da Aula 2. A diferença ficará por conta da inclusão dos dados no banco,
ao invés de mostrar os dados na página. Para isso, vamos criar uma variável
($sql) que receberá o comando INSERT com os dados do formulário. Logo
após, essa variável será passada para o mysql_query.
Na sintaxe do INSERT, a parte do VALUES é em que passamos os valores para
o banco de dados. É nesse ponto que usaremos as variáveis com os valores
obtidos dos formulários. A Figura 3.3 apresenta este comando:
Figura 3.3: Exemplo de montagem do comando SQL
Fonte: Elaborada pelo autor
Programação para Webe-Tec Brasil 48
Lembre-se que na linguagem SQL, os campos do tipo string e data devem
estar entre aspas simples (‘ ’). No exemplo acima, os campos $cinema, $mu-
sica e $info não estão entre aspas porque são do tipo inteiro.
Logo em seguida chamaremos o comando em PHP para executar esse SQL no
banco de dados. Esse comando é o mysql_query e pode ser visto na Figura 3.4.
Figura 3.4: Exemplo de chamada para executar o comando SQL no MySQL
Fonte: Elaborada pelo autor
Os campos no banco de dados do tipo “autonumeração” (ou “autoincre-
mento”) não devem ser passados para o comando INSERT.
Verifique que em nossa tabela de exemplo, o campo idClientes é um campo
autoincremento e ele não foi passado para o INSERT.
Caso queira obter o último número inserido de um campo “autoincremen-
to”, utiliza-se a função mysql_insert_id.
mysql_insert_id – retorna o último número inserido de um campo do tipo
“autoincremento”. Sua sintaxe é:
mysql_insert_id(conexao)
em que: conexão é um parâmetro opcional que indica a conexão com o
banco de dados. Se não for informada, utiliza a última conexão aberta.
Em nosso exemplo, poderíamos criar a variável $cod para receber o código
do cliente inserido, conforme exemplo na Figura 3.5 a seguir.
Figura 3.5: Obtendo o último código “autoincremento” inserido
Fonte: Elaborada pelo autor
Os campos do formulário do tipo checkbox enviam para a página PHP o valor
true se estiverem marcados e “ ” (vazio) se não estiverem marcados. Portanto,
antes de passar essa variável para o comando INSERT, devemos substituir o “
” (vazio) por zero, já que em nosso banco esses campos armazenam 0 ou 1.
O valor true corresponde ao 1; portanto, não teria problema ao passar para o SQL.
e-Tec BrasilAula 3 – Acesso, inserção e listagem no banco de dados MySQL 49
Os comandos para substituir o “ ” (vazio) por zero pode ser visto na Figura 3.6:
Figura 3.6: Substituindo o “ ” (vazio) por zero
Fonte: Elaborada pelo autor
3.3.1 Inserindo datas no banco
O MySQL trabalha com o tipo data no formato americano, ou seja, “ano-mês-
-dia”. Portanto é preciso converter o nosso formato de data (“dia-mês-ano”)
para o formato americano, antes de passar a data para o comando INSERT.
Admitindo que a data recebida esteja no formato “dd/mm/aaaa”, sepa-
ram-se os campos dia, mês e ano utilizando a função substr.
substr – retorna uma parte de uma string. Sua sintaxe é:
substr(texto, pos_inicial, tamanho
onde:
•	 texto – string original.
•	 pos_inicial – posição onde inicia o pedaço da string que se deseja. A
primeira letra está na posição zero.
•	 tamanho – da substring a partir da posição inicial.
Logo, o dia é o pedaço da data que inicia na posição 0 e tem tamanho 2. O mês
é o pedaço da data que inicia na posição 3 e tem tamanho 2. O ano é o pedaço
da data que inicia na posição 6 e tem tamanho 4. O exemplo da Figura 3.7 mos-
tra o código em PHP, em que $dtNasc é a variável com a data a ser modificada.
Figura 3.7: Exemplo de separação dos campos de uma data
Fonte: Elaborada pelo autor
Em seguida, concatenam-se os campos no formato desejado, no nosso caso
“ano-mês-dia”, como mostrada na Figura 3.8 a seguir.
Figura 3.8: Concatenando a data no padrão do MySQL: “ano-mês-dia”
Fonte: Elaborada pelo autor
Programação para Webe-Tec Brasil 50
Podemos também verificar se essa é uma data válida. Para isso, usa-se o
comando checkdate.
checkdate – retorna verdadeiro (true) se a data é válida e falso (false) caso
contrário. Sua sintaxe é:
checkdate(mes, dia, ano)
Para testar nossa data, o exemplo ficaria conforme Figura 3.9 a seguir.
Figura 3.9: Função que verifica se uma data é válida
Fonte: Elaborada pelo autor
O programa da Figura 3.10 mostra todo o código da página cadclientebd.php,
que recebe os dados do formulário, verifica se os campos estão corretos, conver-
te e verifica a data e depois insere no banco de dados.
e-Tec BrasilAula 3 – Acesso, inserção e listagem no banco de dados MySQL 51
Figura 3.10: Página em PHP que insere os dados do cliente no banco
Fonte: Elaborada pelo autor
Crie a tabela Produtos no banco de dados MySQL com os seguintes campos:
idProduto – inteiro autoincremento (chave primária)
descrição – varchar(100)
preço – float
qtdeEstoque – inteiro
dataValidade – date
Crie o formulário para entrar com esses dados e a página em PHP para rece-
ber, validar e inserir os dados no banco de dados.
3.4 Listando os dados
Após inserir os dados no banco, temos a possibilidade de recuperá-los e
mostrá-los para o usuário. O comando em SQL que faz isso é o SELECT.
O comando em PHP para recuperar os dados é o mesmo usado no inserir, o
mysql_query. O que muda é o comando SQL passado para o banco, que
agora é o SELECT.
O retorno de um SELECT no banco é um conjunto de registros. Precisamos
percorrer todos esses registros, pegando o primeiro, passando para o pró-
ximo, e assim por diante até ao último. O comando em PHP que faz isso é
o mysql_fetch_assoc.
Programação para Webe-Tec Brasil 52
mysql_fetch_assoc – retorna um registro de uma consulta e aponta para
o próximo registro. Retorna false quando não existir mais registros, ou seja,
quando chegar ao último. Retorna o registro em forma de array, em que os
índices são os nomes das colunas da tabela no banco de dados. Sua sintaxe é:
mysql_fetch_assoc(identificador)
em que: identificador é o resultado do SELECT, ou seja, o conjunto de registros.
Como o mysql_fetch_assoc retorna um registro por vez, e para quando
chegar ao último (false), podemos colocá-lo como condição de parada em
um comando while, para percorrer todos os registros.
O registro retornado a cada laço do while é guardado em uma variável do
tipo array. Cada posição do array é um campo da tabela. Para pegar o
valor, usa-se como índice do array o nome do campo definido na tabela
do banco, desta forma:
$variavel_registro[“nome_campo”]
O nome do campo deve ser o mesmo usado no banco de dados. Letras mai-
úsculas são diferentes de minúsculas.
Para saber o total de registros retornados por uma consulta ao banco, usa-
mos o comando mysql_num_rows.
mysql_num_rows – retorna a quantidade de registros da última consulta
ao banco. Sua sintaxe é:
mysql_num_rows(identificador);
em que: identificador é o resultado do SELECT, ou seja, o conjunto de registros.
e-Tec BrasilAula 3 – Acesso, inserção e listagem no banco de dados MySQL 53
O programa da Figura 3.11 mostra o exemplo de uma página que consulta
todos os dados da tabela Clientes, do nosso banco de dados de teste. Para
cada registro obtido, uma linha de uma tabela em HTML é criada para mos-
trar os resultados. Perceba que dentro do while ficam apenas os comandos
para criar uma linha da tabela (<TR>). Os comandos para abrir e fechar a ta-
bela ficam antes e depois do while, respectivamente (<TABLE> e </TABLE>).
A primeira linha da tabela, com os nomes dos campos, também fica fora do
while, porque não pode ser repetida.
Figura 3.11: Página em PHP que exibe todos os clientes
Fonte: Elaborada pelo autor
3.4.1 Formulário dinâmico
O procedimento de listar todos os registros pode ser útil quando queremos pre-
encher algum objeto da página com os dados da tabela, como por exemplo,
preencher as opções de um combobox a partir do banco de dados. Nesse caso,
o formulário é dinâmico, porque qualquer alteração no banco de dados, auto-
maticamente, é refletida no formulário. Situações nas quais isso pode ocorrer
são inúmeras, como: preencher um combobox com todos os cursos cadastrados
no banco; ou exibir as opções cadastradas no banco de dados para que um
cliente possa escolher a cor de um produto; ou selecionar uma das cidades ca-
dastradas para realizar a prova de um concurso; e assim por diante.
Todos esses exemplos podem ser obtidos com o procedimento do progra-
ma da Figura 3.11. Dentro do while é que ficam os comandos HTML para
cada opção desejada.
Programação para Webe-Tec Brasil 54
Como exemplo, vamos mostrar como preencher o combobox do campo
listEstado do nosso formulário da Figura 2.2, da Aula 2. Naquele formu-
lário, as opções foram definidas no próprio código HTML. Vamos agora ler
os estados a partir do nosso banco de dados.
Utilizaremos o programa da Figura 3.11 dentro do formulário da Figura 2.2,
da Aula 2, na região onde é montado o combobox listEstados. Nosso SELECT
será na tabela Estados (veja Figura 3.1). Dentro do while vamos colocar os
comandos para criar as opções do combobox, que é o <OPTION>. Para cada
registro da tabela será criado um comando <OPTION>, mostrando o nome do
estado. Para o atributo value, será usada a sigla do estado. Quando o usuário
escolhe uma opção de um combobox, apenas o atributo value é enviado para
o servidor; em nosso caso, somente a sigla do estado será enviada. A Figura
3.12 mostra o trecho de programa alterado do formulário para cadastro.
Figura 3.12: Montando um formulário dinâmico
Fonte: Elaborada pelo autor
Toda página que contiver códigos em PHP deve ter a extensão .PHP. Portan-
to, o formulário de cadastro de clientes que antes era apenas HTML, deve ser
renomeado para a extensão PHP.
Antes de testar, você deve preencher a tabela Estados com algumas informações.
Com o conhecimento adquirido até agora, você é capaz de criar sites que
armazenam dados em um banco de dados. Você também tem a capacidade
de recuperar as informações do banco de dados e mostrá-las para o usuário.
A grande maioria dos sites utiliza algum banco de dados para manipular as
informações. Vimos um exemplo com o banco de dados MySQL, mas você
pode trabalhar com qualquer banco de dados.
e-Tec BrasilAula 3 – Acesso, inserção e listagem no banco de dados MySQL 55
Essa é a base de toda a interação de páginas web com o banco de dados.
Portanto, pratique! Teste os exemplos apresentados e faça os exercícios pro-
postos. A próxima aula dependerá muito destes conceitos. Somente passe
para a próxima aula quando não existir mais nenhuma dúvida.
Resumo
Nesta aula aprendemos a conectar com o banco de dados e a realizar as
operações para inserir e listar dados. Para realizar essas operações, vimos
exemplos de páginas web dinâmicas com os comandos PHP. Na próxima aula
continuaremos trabalhando com bancos de dados. Aprenderemos a alterar
e excluir dados do banco.
Atividades de aprendizagem
1.	 Crie uma página em PHP para listar todos os produtos da tabela criada na
terceira Atividade de aprendizagem ( Atividade 3.1) desta aula.
2.	 Crie a tabela Vendas no banco de dados MySQL com os seguintes campos:
idVenda – inteiro autoincremento (chave primária)
idCliente – chave estrangeira da tabela Clientes
idProduto – chave estrangeira da tabela Produtos
qtdeVendida – inteiro
preçoTotal – float
dataVenda – date
formaPagto – inteiro (pode ser chave estrangeira de outra tabela com
as formas de pagamento)
Crie o formulário para entrar com os dados de uma venda. Preencha um
combobox com todos os clientes cadastrados e outro com os produtos.
Lembre-se de colocar no atributo value o id do cliente e do produto. Os
demais campos serão do tipo texto.
Se a forma de pagamento estiver em uma tabela separada, coloque um
combobox para ela também.
Depois crie uma página em PHP para receber os dados do formulário e inserir
na tabela Vendas
Leituras complementares
DAVIS, Michele E.; PHILLIPS,
Jon A. Aprendendo PHP e
MySQL. Rio de Janeiro:Alta
Books, 2008.
MILANI,André. Construindo
aplicações web com PHP e
MySQL. São Paulo: Novatec,
2010.
NIEDERAUER, Juliano.
Desenvolvendo websites com
PHP. 2ª ed. São Paulo: Novatec,
2004.
WELLING, Luke;THOMSON,
Laura. PHP e MySQL:
desenvolvimento web. 3ª ed. Rio
de Janeiro: Elsevier, 2005.
Programação para Webe-Tec Brasil 56
e-Tec Brasil
Aula 4 – Consulta, exclusão e alteração
no banco de dados MySQL
e-Tec BrasilAula 4 – Consulta, exclusão e alteração no banco de dados MySQL 57
Objetivos
Aprender como realizar uma consulta filtrando por determinado
campo.
Aprender a excluir e a alterar um registro no banco de dados a
partir de páginas web em PHP.
Vamos continuar interagindo com o banco de dados. Como pré-requisito, é
fundamental que vocês tenham assimilado o conteúdo da aula anterior; sem
ele não será possível se conectar com o banco de dados.
4.1 Consultando no banco de dados MySQL
Em muitas situações, listar todas as informações de uma tabela do banco de
dados não é uma boa opção. Tabelas que possuem grande quantidade de
dados aumentam o tráfego da internet para trazer todas essas informações
para a página.
Vamos aprender agora como filtrar os dados de um consulta. Podemos rea-
lizar uma consulta no banco de dados escolhendo qualquer um dos campos
para pesquisar, ou uma combinação deles. Por exemplo, podemos listar to-
dos os clientes que nasceram em um determinado mês, ou listar todos os
funcionários com salário maior que um determinado valor, ou ainda, listar
todas as vendas do último mês que ainda não foram pagas.
Para selecionar determinadas informações do banco de dados, usaremos
a cláusula WHERE dentro do SELECT, como vocês já viram na disciplina de
Banco de Dados. O que veremos aqui é como pegar os campos de um
formulário para fornecer como limite para a consulta e exibir a resposta na
mesma página.
Então, a nossa página terá o formulário em HTML para a consulta, e outra
parte com o código em PHP para exibir o resultado, que pode ser em forma
de tabela.
Programação para Webe-Tec Brasil 58
Como exemplo, nosso formulário terá um combobox para escolher o tipo de
consulta, chamado comboTipo. As opções serão por nome ou por mês de
aniversário. Terá também um campo para digitarmos o valor que queremos pes-
quisar, chamado txtPesquisa. Ao enviar os dados, esse formulário chamará a
mesma página, para que o PHP possa exibir os dados da pesquisa. Portanto o
atributo action do <FORM> apontará para o mesmo arquivo. O programa da
Figura 4.1 mostra essa página, que chamaremos de “pesqclientes.php”.
Figura 4.1: Programa de um formulário para pesquisar os clientes (pesqclientes.php)
Fonte: Elaborada pelo autor
Quando o usuário clicar no botão Enviar, os dados para pesquisar serão en-
viados para a mesma página, que agora executará o PHP na parte de baixo
e mostrará o mesmo formulário, mais a tabela de resposta.
Porém, na primeira vez que chamarmos essa página, o PHP não pode ser
executado. Ele somente será executado da segunda vez em diante, ou seja,
quando ele receber os dados para a pesquisa. Para distinguir quando uma
página está recebendo uma informação ou não, usaremos o comando isset.
isset – retorna verdadeiro (true) se uma certa variável já foi declarada, e falso
(false), em caso contrário. Sua sintaxe é:
isset(variavel)
Na primeira vez que a página é chamada, não temos nenhuma variável. Na se-
gunda vez em diante, a página recebe as variáveis comboTipo e txtPesquisa
do formulário (via método POST ou GET). Podemos utilizar qualquer uma dessas
duas variáveis para testar quando o PHP será executado.
Dentro do PHP, obtém-se o tipo de pesquisa que será feita, por nome ou por
mês (comboTipo), e monta-se o SQL correspondente com o valor digitado em
txtPesquisa. O resultado é mostrado em forma de tabela. O programa da Fi-
gura 4.2 mostra o código completo da página de pesquisa pesqclientes.php.
e-Tec BrasilAula 4 – Consulta, exclusão e alteração no banco de dados MySQL 59
Figura 4.2: Programa de uma página para pesquisar os clientes (pesqclientes.php)
Fonte: Elaborada pelo autor
Quando a pesquisa é com um campo do tipo string, como o nome do exem-
plo anterior, usa-se a palavra LIKE no lugar da igualdade, dentro da cláusula
WHERE do SELECT. O símbolo ‘%’ dentro do valor a ser pesquisado serve
como curinga. Significa que pode vir qualquer caracter naquela posição. O
exemplo anterior busca no banco de dados qualquer cliente que começa
com o valor digitado pelo usuário.
O que muda de uma pesquisa para outra são os campos e as tabelas do
banco de dados, como, por exemplo, pesquisar produtos, vendas, locações,
reservas, etc. Portanto, as modificações no código para realizar outro tipo de
pesquisa seriam alterar o SELECT e a forma de exibir os dados.
Crie uma página em PHP para pesquisar os produtos da tabela criada na
Atividade de aprendizagem da aula 3. Você deve permitir pesquisar pela
descrição, código e data de validade.
Programação para Webe-Tec Brasil 60
4.2 Excluindo no banco de dados MySQL
Na grande maioria dos sistemas, não se usa muito excluir informações do
banco de dados, porque isso faz com que a empresa perca o histórico dos
dados. O que se faz é colocar um campo na tabela que informa o estado
da informação como, por exemplo: “ativo”, “inativo”, “em andamento”,
“finalizado”, “aguardando resposta”, etc.
Em vez de excluir o cliente do banco de dados, a empresa pode apenas
mudar seu estado para inativo, para que no futuro possa realizar alguma
campanha para recuperar os clientes perdidos.
Mesmo não sendo muito utilizado, em algumas situações pode ser necessá-
rio excluir informações do banco. Então vamos aprender a fazer isso: para a
operação de excluir do banco, mais uma vez o que muda é o comando SQL.
Os comandos em PHP são os mesmos: abrir a conexão, selecionar o banco e
executar o comando SQL.
Na maioria dos sistemas, ao excluir, é necessário conhecer pelo menos um
dado da tabela. Dificilmente iremos excluir vários dados de uma vez. O ideal
seria obter a informação que corresponde à chave primária da tabela, por ser
uma informação única. Uma das formas de fazer isso é usar algum mecanis-
mo de pesquisa para escolher a informação a ser pesquisada.
Em nosso exemplo, vamos utilizar a página já criada de pesquisa. Na tabela
que exibe as informações, podemos colocar em cada linha uma palavra, uma
imagem ou algum outro objeto que, quando clicado, chama a página em
PHP para excluir. A Figura 4.3 mostra a página resultante da pesquisa com
uma imagem que corresponde à operação de excluir.
Para facilitar a visualização da imagem, alguns campos da tabela de resulta-
dos foram omitidos. Para o seu teste, use todos os campos da tabela.
Essa imagem possui um link (tag <A> do HTML) que aponta para a página
do excluir, chamada em nosso exemplo de “excluircliente.php”. Em cada
imagem devemos passar o código da informação que será excluída. Usare-
mos o método GET para envio de informações para a outra página (vejam
a seção 2.1). O dado que passaremos será o código do cliente. Essa variável
será chamada de “codigo”. O programa da Figura 4.4 mostra a página
“pesqclientes.php” alterada para adicionar na tabela de resultado, mais
uma coluna, que corresponde a imagem para a operação excluir. Percebam
que em cada linha da tabela, o link passará via GET, a variável codigo, que
receberá o id de cada cliente no banco de dados.
e-Tec BrasilAula 4 – Consulta, exclusão e alteração no banco de dados MySQL 61
Figura 4.3: Exemplo de pesquisa com uma imagem para o excluir
Fonte: Página exibida pelo Mozilla Firefox 3.5
Figura 4.4: Resultado da pesquisa com link para o “excluircliente.php”
Fonte: Elaborada pelo autor
Altere e execute a página “pesqclientes.php”, para colocar o link para o
excluir cliente, como mostrado acima. Ao passar o mouse em cima da ima-
gem do excluir, mas sem clicar, olhe na barra de status, na parte de baixo do
navegador, o link de cada imagem. Perceba que o que muda de um para o
outro é o código do cliente.
A página “excluircliente.php” será a responsável por executar o comando
SQL no banco de dados. Essa página recebe o código passado via GET, pelo
link da imagem excluir, e executa o comando DELETE no banco, com a cláu-
sula WHERE informando o id do cliente que será excluído. Ao final, a página
é redirecionada novamente para a página de pesquisa (você poderia redire-
cionar para qualquer outra página do seu sistema). O programa da Figura
4.5 mostra o código PHP completo dessa página.
Figura 4.5: Programa em PHP para excluir um cliente
Fonte: Elaborada pelo autor
Programação para Webe-Tec Brasil 62
Implemente a página “excluircliente.php”, como mostrada acima, e teste
suas páginas.
4.3 Alterando no banco de dados MySQL
A operação de alterar dados no banco segue o mesmo princípio que as demais
informações. Novamente o que muda é o comando SQL passado para o banco.
Porém, o que torna uma página web um pouco mais trabalhosa para alterar
dados, mas nem tanto, é que devemos ter as informações que serão altera-
das. Essas informações podem estar dispostas de diversas formas em uma
página. O mecanismo mais fácil e apropriado para isso é o formulário em
HTML. Então, ao escolher uma determinada informação para alterar, vamos
chamar uma página com o formulário já preenchido com as informações
anteriores. O usuário altera no formulário os dados que deseja e depois os
envia para outra página em PHP que atualizará o banco de dados.
Antes de chamar o formulário com os dados, na maioria das vezes, é interes-
sante usar algum mecanismo de busca, como uma página de pesquisa. Em
nosso exemplo, vamos utilizar três passos para alterar os dados de um cliente:
Passo 1 – usar a página “pesqclientes.php” para pesquisar o cliente de
quem queremos modificar os dados. Colocar um link em cada cliente para
que, ao clicar, a página “formaltcli.php” seja chamada, enviando o código
do cliente via GET;
Passo 2 – a página “formaltcli.php” exibirá um formulário já preenchido
com os dados do cliente escolhido. Após alterar os dados clicaremos em um
botão para enviá-los para a página “alterarclibd.php”;
Passo 3 – a página “alterarclibd.php” atualizará o banco de dados com as
informações atuais oriundas do formulário. Ao final, será redirecionado para
a página com o formulário, que exibirá a mensagem de sucesso ou erro.
A Figura 4.6 mostra o diagrama de navegação desse mecanismo.
e-Tec BrasilAula 4 – Consulta, exclusão e alteração no banco de dados MySQL 63
Pesquisar
Formulário PHP
para alterar
Banco de
Dados
GET
(código)
POST
GET
(mensagem)
UPDATE
Figura 4.6: Diagrama de navegação das páginas para alterar dados
Fonte: Equipe produção CEAD/IFES (2011)
4.3.1 Passo 1 – link no pesquisar
Assim, como colocamos um link para a página que exclui os dados, vamos
fazer de forma semelhante para a operação de alterar. Colocaremos um link
no nome de cada cliente, que chamará a página com o formulário, passando
o código do cliente via GET.
Poderíamos também usar uma imagem ou qualquer outro mecanismo para
chamar o formulário, desde que passe o código do cliente que se deseja alterar.
A linha na página “pesqclientes.php” que será alterada é o comando echo
que monta cada linha da tabela, dentro do while. Perceba que a coluna re-
ferente ao nome passa a ter um link para o formulário do alterar e a coluna
referente à imagem do excluir continua com o link para a página de excluir.
Ambos os links passam o código do cliente via método GET. A nova linha é
mostrada na Figura 4.7 a seguir.
Figura 4.7: Comando com o link no campo nome para chamar o alterar
Fonte: Elaborada pelo autor
4.3.2 Passo 2 – exibir o formulário
Na página “formaltcli.php”, antes de exibir o formulário, é necessário ob-
ter os demais dados do banco, uma vez que temos somente o código do
cliente passado como GET. Então, executaremos o SELECT para isso. Após,
colocaremos os dados do banco em variáveis PHP que serão utilizadas para
preencher o formulário.
O campo do tipo data, obtido no banco de dados, está no formato “Y-m-d”
(padrão do MySQL). Então temos que convertê-lo para o nosso formato
“d/m/Y”, para exibir no formulário. Usaremos para isso duas funções, a
strtotime e a date.
Programação para Webe-Tec Brasil 64
strtotime – converte uma data no formato string para o formato timestamp
(usado pelo PHP). Sua sintaxe é:
strtotime(string_data)
date – converte uma data no formato timestamp para algum formato em
string. Sua sintaxe é:
date(formato, timestamp)
Portanto, para converter de “Y-m-d” para “d/m/Y” usaremos os seguintes
comandos:
$varData = date(“d/m/Y”, strtotime($varData));
Em que: $varData é a data no formato “Y-m-d”.
Em cada campo do formulário colocaremos a variável PHP, correspondente
ao dado obtido do banco. Como temos campos de tipos diferentes, cada um
terá uma forma diferente de preencher os dados. Em todas elas, alternare-
mos entre códigos HTML e PHP.
a)	 Campos do tipo “text”
Coloca o atributo value e, entre aspas duplas, abre o PHP e pega a variável
correspondente com o echo. Veja a Figura 4.8 desta forma:
Figura 4.8: Atribuindo valor para campos do tipo “text”
Fonte: Elaborada pelo autor
A expressão <?php echo $nome; ?> abre o código em PHP, pega a variável
$nome com o dado obtido do banco e coloca no atributo value do campo
do formulário.
Todo o código PHP deve ficar dentro das aspas duplas do atributo value.
b)	 Campos do tipo “textarea”
O conteúdo desse campo fica entre as tags <TEXTAREA> e </TEXTAREA>.
Então, colocaremos o código PHP com o valor a ser preenchido entre essas
tags. Segue o exemplo na Figura 4.9 para o campo endereço.
e-Tec BrasilAula 4 – Consulta, exclusão e alteração no banco de dados MySQL 65
Figura 4.9: Atribuindo valor para campos do tipo “textarea”
Fonte: Elaborada pelo autor
c) Campos do tipo “radio” e “checkbox”
Coloca-se a palavra checked na opção que ficará marcada. Portanto, é ne-
cessário testar com o comando if qual será essa opção. O exemplo na Figura
4.10 com o campo sexo ficaria assim:
Figura 4.10: Atribuindo valor para campos do tipo “radio” e “checkbox”
Fonte: Elaborada pelo autor
d) Campos do tipo “combobox” (<SELECT>)
Nesses campos, a opção marcada recebe o atributo selected. Então, uma
das soluções seria semelhante a dos campos do tipo “radio”. Testa com o if
e coloca o atributo selected na opção correspondente. Porém, muitas vezes,
as opções de uma caixa de seleção são obtidas do banco de dados. Nesse
caso, no PHP que obtém as opções do banco, coloca-se o if para testar qual
opção será a selecionada. Se for a que queremos que fique marcada, então
o comando <OPTION> fica com o atributo selected, como o exemplo na
Figura 4.11, com o campo que lista os estados.
Figura 4.11: Atribuindo valor para campos do tipo “combobox”
Fonte: Elaborada pelo autor
A variável $estado é obtida da tabela de Clientes, ou seja, é o estado que
deverá ficar marcado. A variável $sigla é obtida de cada registro da tabela
com todos os estados.
A partir do formulário preenchido, o usuário poderá alterar os dados que lhe
convêm. Ao clicar no botão para enviar os dados, o formulário enviará as no-
vas informações para a página “alterarclibd.php”, que realizará o UPDATE
Programação para Webe-Tec Brasil 66
no banco. Portanto, a declaração do formulário (<FORM>) ficará como no
exemplo na Figura 4.12 a seguir.
Figura 4.12: Definição do action para a página “alterarclibd.php”
Fonte: Elaborada pelo autor
O valor da chave primária de uma tabela não pode ser alterado, porque pode
causar inconsistência nos dados. Porém, ela é fundamental para o processo
de alterar, porque será por meio dela que o sistema identificará o registro a
ser alterado.
Em nosso exemplo, a chave primária é o código do cliente. Então colocare-
mos um campo no formulário para esse código. Para que o usuário não pos-
sa alterar esse valor, esse campo ficará oculto. Para criar um campo oculto,
basta usar o atributo type com o valor hidden, como no exemplo na Figura
4.13 a seguir.
Figura 4.13: Campo oculto (hidden) com o código do cliente
Fonte: Elaborada pelo autor
e) Mensagem de erro
Os dados serão enviados para a página PHP que atualizará o banco de da-
dos. Para saber se ocorreu erro ou não, redirecionaremos para a página com
o formulário novamente, informando a mensagem de erro ou sucesso. Essa
mensagem será enviada via o método GET, com o nome mensagem. Então,
em nossa página com o formulário, colocaremos o código PHP abaixo para
pegar a mensagem, caso tenha, e exibir junto com os dados. A Figura 4.14
mostra esta programação.
Figura 4.14: Exibindo a mensagem de resposta
Fonte: Elaborada pelo autor
O programa da Figura 4.15 mostra o código completo da página “formaltcli.
php”.
e-Tec BrasilAula 4 – Consulta, exclusão e alteração no banco de dados MySQL 67
Programação para Webe-Tec Brasil 68
Figura 4.15: Página com o formulário preenchido (“formaltcli.php”)
Fonte: Elaborada pelo autor
4.3.3 Passo 3 – atualizar o banco
A página “alterarclibd.php” receberá os novos dados do formulário do
programa da Figura 4.15, via POST, e atualizará o banco de dados com o
comando UPDATE. O programa da Figura 4.16 mostra essa página.
A página para atualizar o banco é semelhante à de inserir. A diferença é que
é utilizado o comando UPDATE, ao invés de INSERT. Também foram tirados
os comandos echo e colocadas as mensagens em uma única variável, cha-
mada $mensagem, que será enviada para a página anterior mostrá-la.
e-Tec BrasilAula 4 – Consulta, exclusão e alteração no banco de dados MySQL 69
Figura 4.16: Página que atualiza o banco de dados (“alterarclibd.php”)
Fonte: Elaborada pelo autor
Após realizar uma alteração no banco de dados, como por exemplo, com o
comando UPDATE, é possível obter quantos registros foram alterados. Para
isso basta utilizar a função mysql_affected_rows.
mysql_affected_rows – retorna a quantidade de registros que foram afe-
tados por um comando SQL, como por exemplo o UPDATE. Sua sintaxe é:
mysql_affected_rows(conexao)
em que: conexão é um parâmetro opcional que indica a conexão com o
banco de dados. Se não for informado, utiliza a última conexão aberta.
Com isso, concluímos o assunto sobre banco de dados. Vimos que o proces-
so de acesso e manipulação de dados independe da operação a ser feita. O
que define a operação que faremos com o banco de dados é o comando em
SQL, como o INSERT, SELECT, UPDATE, DELETE e outros mais. Pronto! Agora
você é capaz de criar um site completo, armazenando e recuperando dados
do banco de dados.
Programação para Webe-Tec Brasil 70
Resumo
Nesta aula aprendemos a realizar uma consulta filtrando por determinado
campo, a excluir e a alterar um registro no banco de dados a partir de pági-
nas web em PHP. Na próxima aula aprenderemos a trabalhar com sessões,
o que nos permitirá, por exemplo, implementar a validação de usuário no
sistema, bem como trocar dados entre as páginas de uma sessão.
Encontra-se a seguir a Tabela 4.1 com o resumo dos comandos aprendidos
até agora para manipulação do PHP com o banco de dados MySQL.
Tabela 4.1: Resumo dos principais comandos
FUNÇÃO DESCRIÇÃO PARÂMETROS
mysql_connect Abre a conexão com o banco de dados.
IP do servidor onde está o banco de dados.
Usuário e senha com permissão de acesso
ao banco de dados.
mysql_select_db Seleciona o banco a ser utilizado. Nome do banco.
mysql_close Fecha a conexão com o banco de dados. Conexão criada anteriormente.
mysql_query
Função que executa um comando SQL
no banco de dados MySQL. Retorna
verdadeiro (true) em caso de sucesso e
falso (false) caso contrário.
Comando na sintaxe SQL.
mysql_insert_id
Retorna o último número inserido de um
campo do tipo “autoincremento”
Parâmetro opcional que indica a conexão
com o banco de dados.
mysql_fetch_assoc
Retorna um registro de uma consulta, em
forma de array, e aponta para o próximo
registro. Retorna false quando chegar ao
último.
Conjunto de registros resultante de uma
consulta.
mysql_num_rows
Retorna a quantidade de registros da
última consulta ao banco.
Conjunto de registros resultante de uma
consulta.
mysql_affected_rows
Retorna a quantidade de registros que
foram afetados por um comando SQL.
Parâmetro opcional que indica a conexão.
mysql_error
Retorna uma mensagem caso ocorra
algum erro no acesso ao banco de dados
isset
Retorna verdadeiro (true) se uma certa
variável já foi declarada, e falso (false),
em caso contrário
Variável a ser verificada.
include e include_once Insere pedaços de códigos PHP de um
determinado arquivo na página atual
Nome do arquivo PHP.
die
Função que exibe uma mensagem e
interrompe a execução da página.
Mensagem a ser exibida.
substr Retorna uma parte de uma string
String original.
Posição inicial.
Tamanho da substring.
continua
e-Tec BrasilAula 4 – Consulta, exclusão e alteração no banco de dados MySQL 71
checkdate
Retorna verdadeiro (true) se a data é
válida, e falso (false), em caso contrário
Mês, dia e ano.
strtotime
Converte uma data no formato string para
o formato timestamp.
Data no formato string (padrão americano:
Y-m-d).
date
Converte uma data no formato timestamp
para algum formato em string.
Formato final da data.
Data original do tipo timestamp.
conclusão
Fonte:Adaptado de Soares (2007)
Atividades de aprendizagem
1.	 Crie uma página em PHP para pesquisar as vendas da tabela criada
na segunda atividade dentre as Atividades de aprendizagem propostas
ao final da Aula 3. Você deve permitir pesquisar todas as vendas de um
determinado cliente e todas as vendas de um determinado produto.
Obs.:Como na tabela Vendas tem apenas o código do cliente e do produto,
será necessário pesquisar pelo nome usando as tabelas Clientes e Produtos,
ou seja, no SELECT será preciso juntar (JOIN) a tabela Vendas com as tabelas
Clientes e Produtos, de acordo com o tipo da pesquisa. Veja a apostila da
disciplina de Bancos de Dados sobre como realizar a pesquisa unindo mais
de uma tabela.
2.	 Implemente uma página para excluir os produtos da tabela criada na ter-
ceira Atividade de aprendizagem da Aula 3. Altere a página do pesquisar
produtos, criada na primeira Atividade de aprendizagem desta Aula, e
implemente o PHP para excluir o produto do banco.
3.	 Implemente as páginas para alterar os dados do cliente, como mostrada
acima e teste.
4.	 Faça o mesmo procedimento para alterar os dados dos produtos. Altere a
página do pesquisar produtos, criada na primeira Atividade de aprendiza-
gem desta Aula, para colocar o link para a página de formulário com os
dados do produto preenchidos. Implemente o PHP para atualizar o banco.
Leituras complementares:
DAVIS, Michele E.; PHILLIPS,
Jon A. Aprendendo PHP e
MySQL. Rio de Janeiro:Alta
Books, 2008.
MILANI,André. Construindo
aplicações web com PHP e
MySQL. São Paulo: Novatec,
2010.
NIEDERAUER, Juliano.
Desenvolvendo websites
com PHP. 2ª ed. São Paulo:
Novatec, 2004.
WELLING, Luke;THOMSON,
Laura.PHP e MySQL:
desenvolvimento web. 3 ª ed. Rio
de Janeiro: Elsevier, 2005.
Prog web
e-Tec Brasil
Aula 5 – Gerenciando sessões
Objetivos
Aprender para que serve uma sessão em um sistema web e como
programá-la.
Aprender a como utilizar a sessão para autenticar usuários.
Construir páginas web para autenticar os usuários.
Esta Aula é voltada para o gerenciamento de sessões em sistemas web. O
uso de sessões permitirá que informações sejam trocadas entre páginas web
de uma mesma sessão. Com isso, será possível fazer a validação do usuário
em uma página e verificar em todas as outras se o usuário foi autenticado
ou não. E ainda mais, de posse do tipo do usuário (administrador, gerente,
caixa, operador, etc.), é possível fazer controle de acesso, programando em
cada página os tipos de usuários que podem acessá-las.
A cada página visitada por um usuário, uma nova conexão é criada pelo
HTTP do navegador ao servidor. As informações da conexão anterior não são
mantidas. Entretanto, em diversas situações é desejável que certas informa-
ções sejam armazenadas temporariamente, entre uma página e outra.
Como exemplo, pode-se citar a autenticação de login, que é feita em uma
página e em todas as outras é necessário verificar se o usuário está logado,
além de permitir obter os dados desse usuário em todas as páginas.
Para testar o uso de sessões, vamos utilizar o login e senha cadastrados na
tabela de Clientes, como o modelo de dados da Figura 3.1, da Aula 3.
Outro exemplo é o carrinho de compras. Enquanto o usuário visita várias
páginas, o carrinho de compras armazena os produtos comprados.
Sessão
Uma sessão é basicamente
um meio de mantermos dados
durante a navegação por várias
páginas de um site. Quando uma
sessão é aberta, ela recebe um
identificador único, o que per-
mite ao PHP recuperar os dados
vinculados àquela sessão.
e-Tec BrasilAula 5 – Gerenciando sessões 73
5.1 Criando uma sessão
Para criar uma sessão, usa-se o comando:
session_start();
Após esse comando, um array, chamado $_SESSION, é criado para manipu-
larmos as informações armazenadas. Com esse array é possível incluir uma
nova variável, alterar as existentes e excluir uma ou todas as variáveis.
As páginas em que for preciso acessar informações do array $_SESSION, deve-
-se usar também o comando session_start(), para acessar a sessão criada.
5.2 Manipulando as variáveis de uma sessão
Os dados armazenados em uma sessão são armazenados no array $_SESSION.
O índice desse array, entre colchetes, é o nome da variável de sessão.
Para criar uma nova variável na sessão, basta colocar seu nome como índice
do array $_SESSION. O exemplo da Figura 5.1 mostra a criação da sessão
e das variáveis login, tipo e nome, obtidas do banco de dados, depois de
validar o login 3 e a senha do usuário.
Figura 5.1: Criação da sessão e suas variáveis
Fonte: Elaborada pelo autor
O procedimento para acessar uma variável já presente no <IT>array<IT> $_
SESSION é o mesmo. Em nosso exemplo acima, poderíamos obter o nome e
o login do usuário em qualquer página. Para eliminar uma variável de uma
sessão, utiliza-se o comando:
unset($_SESSION[“nome_da_variável”])
Programação para Webe-Tec Brasil 74
5.3 Excluindo a sessão
Uma sessão é automaticamente eliminada quando o navegador do usuário
é fechado. Caso queira destruir a sessão antes disso, como por exemplo,
ao clicar em um botão do tipo “sair” ou “logout”, devem ser realizadas
três etapas. A primeira é acessar a sessão com o comando session_start().
A segunda é a liberação de todas as variáveis da sessão com o comando
session_unset(). A última é a destruição da sessão com o comando:
session_destroy();
O programa da Figura 5.2 mostra o exemplo de um código PHP chamado a
partir de um botão “sair” ou “logout”, para finalizar a sessão. Após encerrar
a sessão, a página é redirecionada para o formulário inicial de login.
Figura 5.2: Página que finaliza uma sessão (“logout.php”)
Fonte: Elaborada pelo autor
5.4 Caso de uso: autenticando usuários
Para testarmos o uso de sessões, vamos criar as páginas para fazer a autenticação
do usuário. No nosso banco de dados de exemplo, na tabela Clientes, já temos
o login e a senha dos usuários. Vamos utilizar essa tabela para validar o usuário.
5.4.1 Formulário de login
Vamos criar um formulário, chamado “formlogin.php”, com os campos de
login e senha. Esse formulário enviará os dados para o PHP “login.php”,
via POST, que consultará o banco de dados verificando se o login e a senha
estão corretos. Se estiverem corretos, então cria a sessão, coloca as variáveis
login e nome,e redireciona para a página inicial do sistema. Se o login e a
senha não conferem, então redireciona para o formulário de login, passan-
do uma mensagem de erro via GET, isso para que no próprio formulário de
login o usuário possa ver a mensagem de erro e digitar novamente o login
e a senha. A Figura 5.3 mostra o diagrama de navegação desse processo.
e-Tec BrasilAula 5 – Gerenciando sessões 75
Pesquisa
Principal
PHP para
conferir no banco
Banco de
Dados
Formulário
Login
POST
ERRO: GET
(mensagem)
validado
SELECT
Figura 5.3: Diagrama de navegação para realizar o login
Fonte: Equipe produção CEAD/IFES (2011)
No formulário de login, vamos colocar o código PHP para exibir a mensagem
de erro, caso ocorra. A mensagem ficará acima dos campos. Você pode
colocar a mensagem em outro local, caso deseje. O programa da Figura 5.4
mostra o código do formulário “formlogin.php” e o programa da Figura
5.5 mostra o PHP “login.php”.
Figura 5.4: Formulário de login (“formlogin.php”)
Fonte: Elaborada pelo autor
Programação para Webe-Tec Brasil 76
Figura 5.5: PHP para conferir login e senha no banco (“login.php”)
Fonte: Elaborada pelo autor
A página principal é o ponto de entrada do seu sistema. Crie essa página
com links para todas as operações que implementamos, como cadastrar e
pesquisar cliente, cadastrar e pesquisar produtos, cadastrar e pesquisar ven-
das, e assim por diante.
5.4.2 Verificar a sessão
Uma vez autenticado o usuário e criada a sessão, todas as outras páginas, no
seu início, irão validar se a sessão foi criada, para evitar que uma página seja
acessada sem passar pelo processo de login. Uma página somente é acessada
se existe uma sessão. Uma sessão existe somente se o usuário foi autenticado.
Para verificar se o usuário foi autenticado, basta verificar se a variável login
está registrada na sessão, pois ela somente é adicionada quando o login e
a senha são validados. Se não estiver, é porque o usuário não está logado;
nesse caso, redirecione para o formulário de login.
Como todas as páginas devem verificar se o usuário está logado, vamos
colocar esse código em um arquivo separado, e todas as páginas incluem-
-no com o comando include_once. O programa da Figura 5.6 mostra esse
código, chamado “validar.php”.
Figura 5.6: Verificar se o usuário está logado (“validar.php”)
Fonte: Elaborada pelo autor
e-Tec BrasilAula 5 – Gerenciando sessões 77
Em todas as páginas do seu sistema, basta incluir o “validar.php” no início,
antes de qualquer coisa, e da seguinte forma, conforme Figura 5.7.
Figura 5.7: Incluir o programa de validação de sessão em cada página
Fonte: Elaborada pelo autor
5.4.3 Fazer logout
Para sair do seu sistema, basta colocar um link “sair” ou “logout” na página
principal, que aponte para o PHP do programa da Figura 5.2.
Com essas páginas, completamos nosso site com a autenticação de usuários,
muito utilizada nos sites de hoje em dia. Mas a sessão não serve apenas para
isso. Ela pode ser usada para a troca de informação entre as páginas. Uma
página adiciona uma informação na sessão e outra página a recupera. Isso
pode ser feito nas páginas de alteração de dados, na Aula 4, para transmitir
o código do cliente e seus dados para as páginas que exibirão e alterarão os
dados do cliente. Tente você fazer essa mudança.
Resumo
Nesta aula, você viu tudo o que precisava para criar sistemas web com aces-
so a banco de dados e autenticação de usuários. Porém a programação que
fizemos misturou várias linguagens em um único arquivo. Na próxima aula,
veremos uma metodologia para organizar melhor os arquivos, separando a
programação da parte visual (HTML e CSS), regras do negócio (PHP) e mani-
pulação do banco de dados (SQL). A seguir, você encontra na Tabela 5.1 os
principais comandos para trabalhar com sessões.
Tabela 5.1: Principais comandos para trabalhar com sessões
FUNÇÃO DESCRIÇÃO PARÂMETROS
session_start Cria uma nova sessão ou acessa uma já criada.
session_destroy Destrói a sessão.
$_SESSION Array com os dados compartilhados pela sessão. Nome da variável entre colchetes.
unset Elimina UMA variável da sessão. Nome da variável da sessão.
session_unset Eliminam TODAS as variáveis da sessão.
Fonte:Adaptado Soares (2007)
Atividades de aprendizagem
Implemente o processo de autenticação do usuário para todas as páginas
do seu sistema, como mostrado acima. Crie a página principal com os links
para todas as suas operações e para a operação sair (logout). Tente acessar
diretamente uma página, sem se logar, para ver o que acontece.
Programação para Webe-Tec Brasil 78
e-Tec Brasil
Aula 6 – Caso de uso: aplicação
utilizando o padrão MVC
Objetivos
Conhecer o padrão de desenvolvimento de sistemas web MVC.
Construir um sistema web no padrão MVC.
Chegamos à nossa última aula de nossa disciplina. Esta Aula é voltada, prin-
cipalmente, para aqueles que irão trabalhar com desenvolvimento de siste-
mas, seja web ou não.
Vamos aprender a organizar melhor o código para que o processo de desen-
volvimento seja produtivo, com melhor qualidade e com menos erros. E caso
tenha erros, que sejam de fácil correção. Para isso, vamos aprender uma
metodologia que separa o sistema em camadas, o MVC.
6.1 O que é MVC?
O padrão MVC (do inglês Model-View-Controller) separa os dados (Model)
do layout (View). Dessa forma, alterações feitas no layout não afetam a ma-
nipulação de dados, que por sua vez poderão ser reorganizados sem alterar
o layout. O problema é resolvido introduzindo-se um componente entre a
manipulação dos dados e a apresentação: o fluxo da aplicação (Controller).
O MVC é usado em padrões de projeto de software, mas abrange mais a
arquitetura de uma aplicação do que é típico para um padrão de projeto.
6.1.1 Vantagens
Como o modelo MVC gerencia múltiplos visualizadores usando o mesmo
modelo, é fácil manter, testar e atualizar sistemas múltiplos. Como a parte
visual é separada do modelo de negócio, é possível alterar a parte visual
sem alterar o sistema todo.
É muito simples adicionar novas funcionalidades apenas incluindo seus
visualizadores e controles sem alterar o que já foi feito, tornando a aplicação
Controller
O controller (controlador) é
responsável por transformar
eventos gerados pela interface
em ação de negócios.
e-Tec BrasilAula 6 – Caso de uso: aplicação utilizando o padrão MVC 79
escalável. É possível ter desenvolvimento em paralelo para o modelo, visu-
alizador e controle, pois são independentes, ganhando em produtividade.
Dentre as principais vantagens podemos destacar:
•	 reaproveitamento de código;
•	 facilidade de manutenção;
•	 integração de equipes e/ou divisão de tarefas;
•	 camada de persistência independente;
•	 implementação de segurança;
•	 facilidade na alteração da interface da aplicação;
•	 aplicação escalável.
6.1.2 Desvantagens
As vantagens superam em muito as desvantagens, mas mesmo assim pode-
mos citar alguns pontos desfavoráveis:
•	 requer uma quantidade maior de tempo para analisar e modelar o sistema;
•	 requer pessoal especializado;
•	 não é aconselhável para pequenas aplicações.
6.2 Estrutura do MVC
O MVC possui três componentes: modelo, visão e controlador (veja Figura 6.1).
a)	 Modelo – representa os dados da aplicação e as regras de negócio que
governam o acesso e a modificação dos dados. O modelo fornece ao
controlador a capacidade de acessar as funcionalidades da aplicação en-
capsuladas pelo próprio modelo. Pode ainda ser subdividido em “regras
do negócio” e “persistência dos dados”.
b)	 Visão – renderiza o conteúdo de uma parte particular do modelo e enca-
minha para o controlador as ações do usuário; acessa também os dados do
modelo via controlador e define como esses dados devem ser apresentados.
Apresenta os dados para o usuário sem se preocupar com a origem deles.
c)	 Controlador – define o comportamento da aplicação. É ele que inter-
preta as ações do usuário e as mapeia para chamadas do modelo. Com
base na ação do usuário e no resultado do processamento do modelo,
Programação para Webe-Tec Brasil 80
o controlador seleciona uma visualização a ser exibida como parte da
resposta à solicitação do usuário. Há, normalmente, um controlador para
cada conjunto de funcionalidades relacionadas.
VISÃO
(Navegador)
CONTROLADOR
MODELO
(Regras de
Negócio)
Figura 6.1: Estrutura do MVC
Fonte: Equipe produção CEAD/IFES (2011)
6.3 Alterando nosso sistema para o MVC
As páginas do nosso sistema estão todas misturadas. Temos páginas com
a interface visual, regras de negócio e manipulação de dados em um único
local. Isso dificulta a produtividade do processo de desenvolvimento e, caso
tenha erro, fica mais difícil encontrá-lo.
Como vocês mesmo podem ter observado, algumas páginas possuem várias
linguagens misturadas, como: o HTML para a parte visual; o PHP para a vali-
dação e regras de negócio; e o SQL para a persistência de dados.
Nossos exemplos foram desenvolvidos dessa forma de propósito. Primeiro,
para mostrar como seria o raciocínio lógico do processo de páginas web. E
depois para que você possa comparar com uma arquitetura comprovada-
mente melhor para desenvolvimento de sistemas.
Portanto, vamos agora separar nossos códigos. Tudo que for para a interface
visual, seja para entrada de dados ou para a saída de dados (por exemplo,
mensagens de erro), será separado na camada da visão. Criaremos um ar-
quivo, chamado “controlador.php” que irá receber todas as requisições
da interface gráfica, fazer a validação dos dados e chamar as funções cor-
respondentes à camada do modelo, que por sua vez, ficarão em arquivos
separados. Na camada do modelo ficarão as funções em PHP referentes ao
que o sistema faz, ou seja, as suas operações.
Para que o sistema fique independente do banco de dados a ser usado, criare-
mos uma camada, chamada persistência, que fará o mapeamento das funções
do modelo para o banco de dados MySQL. Se o banco de dados mudar, o que
pode acontecer com qualquer sistema, basta alterarmos apenas as funções da
camada de persistência, sem ter que alterar todas as páginas do sistema.
e-Tec BrasilAula 6 – Caso de uso: aplicação utilizando o padrão MVC 81
6.3.1 Persistência dos dados
Vamos começar separando as funções referente ao acesso ao banco de da-
dos MySQL. Essas funções são todas aquelas que começam com “mysql_”.
Vamos mapear as funções da camada do modelo nas funções do MySQL.
Poderíamos fazer uma camada de persistência para cada tipo de banco de
dados. O programa da Figura 6.2 mostra como seria essa persistência.
Figura 6.2: Camada de persistência dos dados (“persistencia.php”)
Fonte: Elaborada pelo autor
Se for usar outro banco de dados, basta implementar outra camada, alterando o
código dentro de cada função. Por exemplo, se o banco fosse o PostgreSQL, as fun-
ções seriam: pq_connect, pg_select_bd, pg_query, etc.
6.3.2 Modelo de negócio
Nesta camada ficam as funções referentes aos casos de uso do sistema, ou
seja, as funcionalidades que o sistema terá. Por exemplo, as operações que
fazemos com o cliente são: incluir, alterar, excluir e pesquisar. Então, cada uma
dessas operações será transformada em uma função. Podemos separar as fun-
ções de acordo com os elementos do sistema. Por exemplo, todas as opera-
ções referentes ao cliente ficarão em um arquivo chamado de “clientes.php”.
As operações sobre os produtos ficarão em outro arquivo, e assim por diante.
Programação para Webe-Tec Brasil 82
A camada do modelo de negócio não gera nenhum comando em HTML.
O retorno, sucesso ou fracasso é retornado para o controlador que será res-
ponsável por montar a página de resposta.
O programa da Figura 6.3 mostra como ficarão as operações com os clientes.
É o mesmo código já visto, porém em nova arquitetura. Perceba que quando
for necessário acessar o banco de dados, as funções chamadas serão as da
camada de persistência do programa da Figura 6.2.
e-Tec BrasilAula 6 – Caso de uso: aplicação utilizando o padrão MVC 83
Figura 6.3: Operações com os Clientes (“clientes.php”)
Fonte: Elaborada pelo autor
A função validarCampos foi separada porque é repetida no incluir e alte-
rar, que ficaram mais simples e muito parecidas. Todas as funções seguem o
mesmo padrão: validar os campos, criar a conexão com o banco de dados e
chamar a função da camada de persistência.
6.3.3 Controlador
O controlador será apenas um arquivo PHP. Ele receberá da interface visual o
código da operação e os dados, e chamará a função correspondente da ca-
mada do modelo, retornando a mensagem de erro ou sucesso para a página
que originou a requisição.
Todas as páginas de interface visual deverão ter um campo que informa qual
operação o controlador chamará.
Em nossos exemplos, esse campo será chamado de operação. As possíveis
operações serão todas aquelas da camada do modelo, por exemplo, as fun-
ções do arquivo clientes.php do programa da Figura 6.3: incluirCliente,
alterarCliente, excluirCliente, etc.
O inserir e alterar – enviam os dados para o servidor com o método POST
e o excluir envia com o método GET. Para padronizar o controlador, vamos
adotar o método GET. Portanto, os formulários deverão ser alterados. O pro-
grama da Figura 6.4 mostra um exemplo da estrutura do controlador.
Programação para Webe-Tec Brasil 84
Figura 6.4: Estrutura do controlador (“controlador.php”)
Fonte: Elaborada pelo autor
e-Tec BrasilAula 6 – Caso de uso: aplicação utilizando o padrão MVC 85
6.3.4 Camada da visão
Páginas COM formulário – para as páginas com formulário (em nosso
exemplo: formclientes.php, formaltcli.php e login.php) as mudanças
serão as seguintes: a primeira é passar a enviar os dados para o controlador.
Para padronizar o controlador, os formulários também passarão os dados
via GET. A segunda é colocar um campo escondido para definir qual a ope-
ração que o controlador fará. A terceira é colocar a mensagem de resposta
fornecida de volta pelo controlador. Para enviar os dados para o controlador
com o método GET, basta alterar os atributos action e method, da seguinte
forma, conforme a Figura 6.5.
Figura 6.5: Alterando o método de envio do formulário para GET
Fonte: Elaborada pelo autor
A segunda mudança, conforme já mencionado, é colocar um campo escon-
dido para indicar ao controlador qual a operação ele fará. Como exemplo,
chamaremos esse campo de operação. O valor a ser passado (atributo value)
deverá ser o mesmo valor com o qual o controlador fará a comparação. Cada
operação deverá ter um valor diferente. Por exemplo: “incluirCliente”, “alte-
rarCliente”, “excluirCliente”, etc., conforme a Figura 6.6.
Figura 6.6: Campo operação oculto (hidden)
Fonte: Elaborada pelo autor
A terceira mudança, conforme já mencionado, é colocar em algum lugar
da sua página a mensagem de resposta, caso tenha, de sucesso ou falha da
operação. Essa mensagem será enviada do controlador para a página, usan-
do o método GET. Em nosso exemplo, veja o controlador, o nome do campo
foi chamado de mensagem. O código em PHP a ser inserido será como o
apresentado na Figura 6.7 a seguir.
Figura 6.7: Exibindo a mensagem de resposta
Fonte: Elaborada pelo autor
Programação para Webe-Tec Brasil 86
Páginas SEM formulário –para as páginas que não possuem formulário,
apenas links para outras páginas, enviando os campos via método GET, as
mudanças serão apenas alterar o link para o controlador e adicionar o campo
que corresponde à operação. Em nosso exemplo, a única mudança será no
link do excluir da página de pesquisa “pesqclientes.php” (veja a Figura 6.8).
Figura 6.8: Link do excluir apontando para o controlador
Fonte: Elaborada pelo autor
As operações de consulta ao banco também podem ser colocadas no contro-
lador, porém o processo é mais complicado, requer um estudo mais aprofun-
dado do MVC. Por enquanto deixe da forma que se encontra, dentro de pá-
ginas da camada da visão. Para quem for trabalhar com desenvolvimento de
sistemas web, será muito importante apronfudar-se mais nessa metodologia.
Perceba que antes, a cada página de formulário, tínhamos uma página em
PHP para realizar aquela operação. Em um sistema maior, a quantidade de
arquivos para organizar seria muito grande.
Com o MVC, continuamos com as páginas da interface gráfica, porém as pá-
ginas em PHP no servidor ficaram bastante reduzidas. Temos o controlador,
o arquivo de persitência e arquivos nos quais podemos agrupar as funções
de cada elemento do sistema. Por exemplo, todas as operações referentes a
“produto” ficariam em um arquivo, as operações referentes a “vendas” em
outro arquivo, e assim por diante.
Resumo
Nesta Aula, conhecemos o padrão de desenvolvimento de sistemas web
MVC. Vimos como organizar melhor o código para que o processo de de-
senvolvimento seja mais produtivo, com melhor qualidade e com menos er-
ros. Aprendemos a separar a programação da parte visual (HTML e CSS),
regras do negócio (PHP) e manipulação do banco de dados (SQL). No fim,
alteramos uma parte do nosso sistema web de exemplo para o padrão MVC.
Caro estudante, chegamos ao final desta disciplina. Espero que você tenha
gostado e que seja capaz de desenvolver sistemas web. Diverti-me criando
Aprender mais sobre MVC
é muito importante caso
você pretenda trabalhar com
programação web. Seguem
alguns links:
http://www.dsc.ufcg.edu.
br/~jacques/cursos/map/html/
arqu/mvc/mvc.htm
http://codeigniterbrasil.com/
passos-iniciais/mvc-model-
view-controller/
http://www.tiagolemos.com.
br/2009/07/10/o-que-e-o-mvc-
model-view-controller/
http://msdn.microsoft.com/en-
us/library/ms978748.aspx.
e-Tec BrasilAula 6 – Caso de uso: aplicação utilizando o padrão MVC 87
essas páginas e também aprendi um pouquinho mais sobre PHP. Mas isso
não é tudo! Temos muito mais recursos em PHP que não daria tempo de
estudar nesta disciplina. Caso você se interesse, veja as referências no final
de cada aula e na seção “Referências”.
Atividades de aprendizagem
1.	 Faça as alterações do seu sistema para o MVC. Comece com as opera-
ções sobre os clientes, como descrito acima.
2.	 Acrescente no MVC as operações com os “produtos”. Comece criando o
arquivo com as funções referentes a “produtos”. Depois altere o contro-
lador para fazer a ligação das páginas visuais com essas funções.
3.	 Acrescente no MVC as operações de login. No controlador teremos mais um
else if para a validação do login e senha e criação da sessão. Nas demais
páginas, coloque o PHP para verificar se a sessão foi criada, como na Aula 5.
Programação para Webe-Tec Brasil 88
Referências
DAVIS, Michele E.; PHILLIPS, Jon A. Aprendendo PHP e MySQL. Rio de Janeiro: Alta
Books, 2008.
SOARES,Walace. PHP 5: conceitos, programação e integração com banco de dados. 3ª ed.
São Paulo: Érica, 2007.
GUTMANS,Andi; BAKKEN, Stig Saether; RETHANS, Derick. PHP 5: programação ponderosa.
Rio de Janeiro:Alta Books, 2005.
MELO, Alexandre Altair de; NASCIMENTO, Maurício G. F. PHP profissional. 2ª ed. São
Paulo: Novatec, 2007.
MILANI, André. Construindo aplicações web com PHP e MySQL. São Paulo:
Novatec, 2010.
NIEDERAUER, Juliano. Desenvolvendo websites com PHP. 2ª ed. São Paulo: Novatec, 2004.
WELLING, Luke; THOMSON, Laura. PHP e MySQL: desenvolvimento web. 3. ed. Rio
de Janeiro: Elsevier, 2005.
e-Tec Brasil89Referências
Currículo do professor-autor
Graduado em Ciência da Computação pela Universidade Federal de Viçosa-MG
(1997) e mestre em Engenharia de Produção/Pesquisa Operacional pela UFRJ/
COPPE (2000). Trabalhou três anos como Analista de Sistemas e líder de projeto
pela DBA Engenharia de Sistemas prestando serviços de desenvolvimento de
sistemas para a Caixa Econômica Federal, no Rio de Janeiro. Foi professor do
Curso de Ciência da Computação da Faculdade de Aracruz (FACHA, hoje FAA-
CZ) de 2002 a 2007. É professor efetivo do Instituto Federal do Espírito Santo
(IFES) desde 2006, lecionando disciplinas para os cursos: Técnico em Informática,
Superior de Tecnologia em Redes de Computadores e Sistemas de Informação,
onde atua como coordenador. Na EaD, trabalha desde 2008 como professor-
-autor-formador e tutor a distância nos cursos do IFES: Tecnólogo em Análise e
Desenvolvimento de Sistemas e Técnico em Informática. Para mais informações,
veja o currículo completo na Plataforma Lattes:
http://lattes.cnpq.br/4033155608776526
Programação para Webe-Tec Brasil 90
Curso Técnico em Informática
Programação para Web
Jean Eduardo Glazar
Curso Técnico em Informática
Fundamentos do
Desenvolvimento Web
Keila Brito
Fundamentos do
Desenvolvimento Web
Keila Brito
2011
Colatina - ES
Presidência da República Federativa do Brasil
Ministério da Educação
Secretaria de Educação a Distância
Equipe de Elaboração
Instituto Federal do Espírito Santo – IFES
Coordenação Institucional
Guilherme Augusto De Morais Pinto/IFES
João Henrique Caminhas Ferreira/IFES
Coordenação do Curso
Allan Francisco Forzza Amaral/IFES
Professora-autora
Keila Brito/IFES
Comissão de Acompanhamento e Validação
Universidade Federal de Santa Catarina – UFSC
Coordenação Institucional
Araci HackCatapan/UFSC
Coordenação do Projeto
Silvia Modesto Nassar/UFSC
Coordenação de Design Instrucional
Beatriz Helena Dal Molin/UNIOESTE e UFSC
Coordenação de Design Gráfico
André Rodrigues/UFSC
Design Instrucional
Gustavo Pereira Mateus/UFSC
Web Master
Rafaela Lunardi Comarella/UFSC
Web Design
Beatriz Wilges/UFSC
Mônica Nassar Machuca/UFSC
Diagramação
Bárbara Zardo/UFSC
Juliana Tonietto/UFSC
Marília C. Hermoso/UFSC
Revisão
Júlio César Ramos/UFSC
Projeto Gráfico
e-Tec/MEC
© Instituto Federal do Espírito Santo
Este Caderno foi elaborado em parceria entre o Instituto Federal do Espírito Santo
e a Universidade Federal de Santa Catarina para o Sistema Escola Técnica Aberta
do Brasil – e-Tec Brasil.
B862f Brito, Keila
	 Fundamentos do Desenvolvimento Web: Curso Técnico em
Informática / Keila Brito. – Colatina: CEAD / Ifes, 2011.
	 124 p. : il.
	 Inclui Bibliografia
	 ISBN: 978-85-62934-04-9
	 1. Sites da Web - Desenvolvimento. 2. HTML (Linguagem) de
marcação de documento). 3. Folhas de estilo. 4. Material didático. I.
Instituto Federal do Espírito Santo. II. Título.
	
	 CDD: 004.678
e-Tec Brasil33
Apresentação e-Tec Brasil
Prezado estudante,
Bem-vindo ao e-Tec Brasil!
Você faz parte de uma rede nacional pública de ensino, a Escola Técnica
Aberta do Brasil, instituída pelo Decreto nº 6.301, de 12 de dezembro 2007,
com o objetivo de democratizar o acesso ao ensino técnico público, na mo-
dalidade a distância. O programa é resultado de uma parceria entre o Minis-
tério da Educação, por meio das Secretarias de Educação a Distancia (SEED)
e de Educação Profissional e Tecnológica (SETEC), as universidades e escolas
técnicas estaduais e federais.
A educação a distância no nosso país, de dimensões continentais e grande
diversidade regional e cultural, longe de distanciar, aproxima as pessoas ao
garantir acesso à educação de qualidade, e promover o fortalecimento da
formação de jovens moradores de regiões distantes, geograficamente ou
economicamente, dos grandes centros.
O e-Tec Brasil leva os cursos técnicos a locais distantes das instituições de en-
sino e para a periferia das grandes cidades, incentivando os jovens a concluir
o ensino médio. Os cursos são ofertados pelas instituições públicas de ensino
e o atendimento ao estudante é realizado em escolas-polo integrantes das
redes públicas municipais e estaduais.
O Ministério da Educação, as instituições públicas de ensino técnico, seus
servidores técnicos e professores acreditam que uma educação profissional
qualificada – integradora do ensino médio e educação técnica, – é capaz de
promover o cidadão com capacidades para produzir, mas também com auto-
nomia diante das diferentes dimensões da realidade: cultural, social, familiar,
esportiva, política e ética.
Nós acreditamos em você!
Desejamos sucesso na sua formação profissional!
Ministério da Educação
Janeiro de 2010
Nosso contato
etecbrasil@mec.gov.br
Prog web
e-Tec Brasil5
Indicação de ícones
Os ícones são elementos gráficos utilizados para ampliar as formas de
linguagem e facilitar a organização e a leitura hipertextual.
Atenção: indica pontos de maior relevância no texto.
Saiba mais: oferece novas informações que enriquecem o
assunto ou “curiosidades” e notícias recentes relacionadas ao
tema estudado.
Glossário: indica a definição de um termo, palavra ou expressão
utilizada no texto.
Mídias integradas: sempre que se desejar que os estudantes
desenvolvam atividades empregando diferentes mídias: vídeos,
filmes, jornais, ambiente AVEA e outras.
Atividades de aprendizagem: apresenta atividades em
diferentes níveis de aprendizagem para que o estudante possa
realizá-las e conferir o seu domínio do tema estudado.
Prog web
e-Tec Brasil7
Sumário
Palavra do professor-autor	 9
Apresentação da disciplina	 11
Projeto instrucional	 13
Aula 1 – Interface web	 15
1.1 Diferenças entre os usuários	 15
1.2 O espaço da página	 17
1.3 Navegação	 18
1.4 Características a considerar na página principal	 19
1.5 Usabilidade	 21
1.6 Acessibilidade	 23
1.7 Legibilidade	 25
Aula 2 – Fundamentos do HTML	 35
2.1 Editor de texto Notepad++	 35
2.2 O que é HTML?	 37
2.3 Marcadores	 39
2.4 Tabelas	 40
2.5 Imagens em HTML	 42
2.6 Atributos ALT e ALIGN	 43
2.7 Atributos width e height	 45
2.8 Atributo background	 46
2.9 Formatação de textos	 47
2.10 Vínculos ou links	 49
Aula 3 – Cascading Style Sheets (CSS)	 53
3.1 Criando estilos	 54
3.2 Método de aplicação do CSS no documento HTML	 55
3.3 Pseudoclasses e pseudoelementos	 58
Aula 4 – Tipos de imagens	 61
4.1 Imagens bitmaps	 61
4.2 Imagens vetoriais	 63
4.3 Formatos de imagens	 64
4.4 CorelDRAW	 67
Aula 5 – Software de edição de imagem (GIMP)	 73
5.1 Abas e janelas	 74
5.2 Caixa de ferramentas	 74
5.3 Para abrir uma nova imagem	 79
5.4 Recortando uma imagem	 81
5.5 Removendo o fundo da imagem	 83
5.6 Captura de tela	 85
5.7 Camadas	 86
Aula 6 – Software de animação de imagens
Macromedia Adobe Flash	 89
6.1 Caixa de ferramentas e painéis auxiliares	 90
6.2 Biblioteca de objetos (Library)	 92
6.3 Objetos geométricos	 93
6.4 Transformação de textos	 94
6.5 Trabalhando com camadas	 98
6.6 Animações	 101
6.7 Publicando documentos do Flash	 110
Referências	 121
Currículo da professora-autora	 123
Fundamentos de Desenvolvimento Webe-Tec Brasil 8
e-Tec Brasil9
Palavra do professor-autor
Olá, estudante!
Estamos iniciando mais uma etapa do Curso Técnico em Informática a dis-
tância e estudaremos a disciplina Fundamentos do Desenvolvimento Web.
No decorrer das aulas, você conhecerá conteúdos que o farão refletir sobre
aspectos como acessibilidade, usabilidade, design, além conhecer softwares
para tratamento de imagens e animações, entre outros, e perceberá a im-
portância de estudar esses conceitos para aplicá-los de maneira coerente na
construção de páginas para web.
Nessa nova jornada, fica o desafio de concluirmos este estudo com êxito.
Para que você alcance esse objetivo, a equipe instrucional do curso elaborou
todo conteúdo para auxiliá-lo nessa caminhada, mas lembre-se que o desen-
volvimento de cada atividade, cada avaliação nesta disciplina depende exclu-
sivamente de você, que deve reservar um período para navegar no ambiente
do nosso curso, conhecer e explorar os recursos disponíveis, fazer a leitura
do material e realizar as atividades. Conte sempre com o apoio dos tutores,
que estarão prontos para ajudá-lo.
No mais, desejo sucesso e um excelente estudo!
Profª. Keila Brito
Prog web
e-Tec Brasil11
Apresentação da disciplina
Olá, caro estudante!
Nesta disciplina, você descobrirá a importância de conhecer os fundamentos
de desenvolvimento para web, visando uma melhor compreensão do uso
dos aplicativos e softwares para a elaboração de sites.
O objetivo deste material é auxiliá-lo no conhecimento de conteúdos dos
fundamentos do desenvolvimento web. Com ele, você perceberá a impor-
tância de conhecer esses conceitos para aplicá-los de maneira coerente na
construção de páginas para internet.
Desenvolver e analisar sites requer uma visão sistêmica e abrangente com
relação a aspectos inerentes a diversas áreas de conhecimento.
É importante ressaltar que a aprendizagem é um processo contínuo e di-
ferenciado para cada estudante, o que possibilita a ampla diversidade de
interação com o conteúdo.
Para que você obtenha sucesso, será necessário que se envolva com as ati-
vidades prescritas desta disciplina, buscando cumprir as tarefas, seguir as
instruções, agir com organização e controle sobre o tempo previsto. Será
preciso, também, participar de forma ética e comprometida nos fóruns e
encontros presenciais, com os colegas da turma e com o tutor presencial.
Lembre-se que estamos começando uma longa e desafiadora jornada! Cada
texto, cada atividade, cada avaliação nesta disciplina depende exclusivamen-
te de você, mas você não está sozinho; por isso, compartilhe seus conheci-
mentos nos fóruns e chats disponibilizados em sua sala de aula virtual.
Fica aqui o desafio de concluirmos este estudo com SUCESSO!
Profª. Keila Brito
Prog web
e-Tec Brasil13
Disciplina: Fundamentos do Desenvolvimento Web (carga horária: 60h).
Ementa: Conceitos fundamentais de aplicações web. Arquitetura cliente-servidor
para web. Linguagem de marcação.
AULA
OBJETIVOS DE
APRENDIZAGEM
MATERIAIS
CARGA
HORÁRIA
(horas)
1. Interface web
– Conhecer conceitos básicos tais como:
• os diferentes tipos de usuários da web;
• o espaço de uma página web;
• navegação nas páginas da internet;
• características da página principal e
páginas internas de um website;
• usabilidade;
• acessibilidade; e
• legibilidade.
Vídeo:Acessibilidade web: custo
ou benefício
Artigos: http://acessodigital.net
10
2. Fundamentos do
HTML
– Entender os conceitos e funciona-
mentos do HTML, como atributos, marca-
dores, tabelas, inserção de imagens, sons
e vídeos.
– Conhecer o editor de texto: Notepad e
suas características.
Vídeo: HTML Básico
Software Notepad ++ 10
3. Cascading Style
Sheets (CSS)
– Compreender o conceito de CSS.
– Entender a criação de estilos.
– Conhecer o método de aplicação do
CSS no documento HTML.
– Conhecer o conceito de pseudoclasses
e pseudoelementos.
Software Notepad ++ 10
4.Tipos de
imagens
Conhecer os tipos de imagens.
– Conhecer o software CorelDRAW e
suas ferramentas básicas.
Vídeo: Criando imagens com
CorelDRAW
Software CorelDRAW
10
5. Software de
edição de imagem
(GIMP)
– Conhecer o software GIMP e suas
ferramentas.
Vídeo: Ferramenta Contígua
Vídeo: Fusão de imagens
Software GIMP
10
6. Flash
– Conhecer o software Flash e suas
ferramentas de animação.
Vídeo:Tutorial: Flash – timeline
Vídeo:Tutorial: Interpolação
no Flash
Software Adobe Flash CS3
10
Projeto instrucional
Prog web
e-Tec Brasil
Aula 1 – Interface web
Objetivos
Conhecer conceitos básicos sobre os diferentes tipos de usuários
da web.
Identificar, no espaço de uma página web, elementos tais como
a navegação nas páginas da internet, características da página
principal e das páginas internas de um website.
Compreender os conceitos de usabilidade, acessibilidade e legibili-
dade aplicados ao desenvolvimento de website.
Conhecer os conceitos para utilização de fontes e cores websites.
Fazem parte da interface web informações gráficas, textuais e au-
ditivas, apresentadas ao usuário quando acessa uma página. Seu
desenvolvimento ocorre, conforme requisitos levantados, durante
a execução do projeto.
1.1 Diferenças entre os usuários
Os grandes avanços tecnológicos ocorridos nos últimos anos proporcionaram
o barateamento da tecnologia e fizeram com que o computador deixasse de
ser exclusividade de especialistas e de indivíduos mais abastados, para fazer
parte também do dia a dia das mais variadas pessoas.
Além da diversidade de pessoas com acesso ao computador, houve também
uma grande variedade de formas de acessar a rede: em casa, LAN house,
trabalho, dispositivo móvel, notebooks, entre outros.
Devido à diferença de usuários e de formas de acesso, é necessário e
importante que os recursos tecnológicos empregados e os layouts de páginas
sejam adaptados a essas variações.
e-Tec BrasilAula 1 – Interface web 15
Não é necessário que as configurações sejam decoradas, porém é importante
que tenhamos conhecimento delas para saber aplicá-las quando necessário.
Algumas configurações podem afetar a visualização e o uso de interfaces
web; são elas:
Tamanho da página e resolução: é a quantidade de pixels que compõem
a imagem vista na tela. A qualidade dessa imagem vai depender da relação
do número de pontos por polegada quadrada, com a configuração da tela,
o tamanho do monitor e sua resolução.
Espaço do browser na página: o espaço ocupado pelo browser na página
do dispositivo utilizado, seja dispositivo móvel, sejam notebooks, seja TV, sejam
outros, variam de acordo com a resolução da tela do dispositivo utilizado.
As resoluções de tela mais utilizadas atualmente pelos usuários de PCs, segundo
estatísticas do Market Share (http://marketshare.hitslink.com), são:
•	 1024x768 pixels – serve de referência para o desenvolvimento de
websites. Em julho de 2010, foi usada por 23,63% dos usuários mundiais.
•	 1280x800 pixels – no desenvolvimento de layout para interfaces web, a
proporção entre a largura e a altura dos monitores apresenta variações.
Desde 4:3, padrão dos aparelhos de TV e computadores, comum nas
larguras de 1024 a 1280 pixels, até a proporção dos monitores de HDTV,
wide screen (16:9, resolução 1280x720 ou 16:10, resolução 1280x800,
chegando a 1680x1050 e 2560x1600). Estas diferenças de resolução
e proporção aumentam ainda mais quando se consideram as telas dos
dispositivos móveis.
•	 1280x1024 pixels – também utilizada por um número crescente de
usuários. Em julho de 2010, foi usada por 10,86% dos usuários mundiais.
•	 640x840 pixels – pouco utilizada. Em julho de 2010, foi usada por ape-
nas 2,35% dos usuários mundiais.
Navegadores (browsers) utilizados: existe uma variedade de navegado-
res disponíveis para os usuários web; por isso é importante sabermos que
Conheça as resoluções
indicadas para monitores LCD e
Laptops, conforme o tamanho
do monitor.Acesse: http://
windows.microsoft.com/pt-BR/
windows7/Getting-the-best-
display-on-your-monitor
Fundamentos do Desenvolvimento Webe-Tec Brasil 16
o mesmo conteúdo pode aparecer de maneira diferente em cada um dos
navegadores. Isso ocorre porque há uma inconsistência entre os programas,
na forma como interpretam os estilos CSS.
Velocidade de conexão e tamanho do arquivo da página em Kb: a
velocidade de conexão varia muito, porém, ao desenvolvermos uma página,
é necessário ter em mente que o tempo de download das páginas não deve
exceder 10 segundos, conforme as 10 Heurísticas de Jakob Nielsen.
1.2 O espaço da página
O espaço da página é definido como a forma e como os olhos do usuário a
percorrem. Existem estudos que descrevem que a maior parte dos usuários
de cultura ocidental vê a página no sentindo diagonal, a partir do alto à
esquerda, em direção à parte inferior direita, e depois retorna ao alto, como
mostrado na Figura 1.1 a seguir.
Figura 1.1: Visão do usuário na página
Fonte:Adaptado de Nielsen (2000)
Jakob Nielsen, um dos maiores especialistas na área de usabilidade na web,
afirma que os usuários, de um modo geral, leem as páginas de acordo com
um padrão de movimentos que desenham um “F”: duas linhas horizontais da
esquerda para a direita e uma linha vertical de cima para baixo, à esquerda,
conforme demonstra a Figura 1.2 a seguir.
Acesse o site http://www.
inf.puc-rio.br/~inf1403/
docs/alberto2011_1/09_
AvHeuristica.pdf e conheça as
10 Heurísticas de Nielsen.
e-Tec BrasilAula 1 – Interface web 17
Priority 1 Priority 2 Priority 3
Figura 1.2: Visão do usuário na página
Fonte:Adaptado de Nielsen (2000)
Esses estudos mostram formas de leituras diferentes, concordam que as
informações mais importantes devem ser localizadas sem que o usuário
precise utilizar a barra de rolagem.
1.3 Navegação
Segundo o Dicionário Aurélio (FERREIRA, 2009), navegação é o ato ou efeito
de percorrer um hipertexto, determinando a sequência em que os diversos
documentos são consultados, ou percorrer páginas web, indo de um link a outro.
A navegação pode se tornar difícil, sendo necessário dar aos usuários
suporte que vá além dos simples hyperlinks “vá para”. As interfaces precisam
responder aos usuários três perguntas fundamentais da navegação:
Onde estou? / Onde estive? / Onde posso ir?
•	 Onde estou?
É a localização do usuário em relação à estrutura do site e à web em geral. É
importante a consciência do usuário de onde esteja para que consiga encon-
trar as informações que procura, ou desenvolver as atividades que deseja.
•	 Onde estive?
É a localização do usuário em relação às páginas já visitadas.
•	 Onde posso ir?
É a localização do usuário em relação à estrutura de informações, que irá
levá-lo a encontrar o que está procurando, seja um produto para comprar,
uma notícia, um texto acadêmico, entre outros.
Fundamentos do Desenvolvimento Webe-Tec Brasil 18
1.4 Características a considerar
na página principal
É importante conhecermos algumas características que devem ser levadas em
consideração ao criar uma página. Nesta seção você verá as características
da página principal.
Podemos destacar as seguintes características:
•	 Identificar claramente a localização do usuário e atividade/conteúdo mais
importante do site e o que ele pode oferecer.
•	 Oferecer suporte aos usuários para encontrar o que procuram.
•	 Estar permanentemente atualizada.
•	 Marcar a localização do usuário em relação às outras páginas e guiar seus
percursos.
•	 Ter mais área para navegação do que para conteúdo.
•	 Informar os assuntos de maneira concisa e direta.
•	 Ser dividida em diferentes seções.
•	 Ter uma seção ou menu com links para as áreas mais acessadas pelos
usuários (se conveniente).
1.4.1 Páginas internas
É importante conhecermos estudos recentes a respeito da forma como os
usuários têm acessado a web, além das características necessárias para man-
tê-los na página que irão visitar. A seguir você conhecerá as características
importantes de uma página interna.
Hoje é cada vez maior o número de usuários que buscam ir direto às páginas
internas, sem necessariamente ter que passar pela página principal. Segundo
estudos, o usuário gasta 80% a mais de tempo nessas páginas do que na
página principal. Por isso, é importante sabermos as características que
podem contribuir para que elas o prendam por mais tempo.
e-Tec BrasilAula 1 – Interface web 19
Podemos destacar as seguintes características para as páginas internas:
•	 Apresentar em destaque o nome da página principal.
•	 Mostrar, em local bem visível, a marca da empresa ou organização.
•	 Manter o mesmo estilo das outras páginas, pelo menos das páginas da
mesma camada.
•	 Manter o foco em aspectos mais específicos do que na página principal.
•	 Prover o sentido de localização do usuário em relação ao resto do site e
à página principal.
•	 Manter as informações estruturais de navegação (ferramenta de busca,
data de atualização, links relacionados, mapa do site) – essas informações
costumam ficar localizadas em lugares fixos em todas as páginas.
•	 Se o conteúdo for muito extenso, dividir o assunto em um resumo geral
numa página e detalhar o assunto em outra.
•	 Prover mais informações sobre o assunto da página.
Além da página principal e das páginas internas, também é necessário con-
siderarmos a importância das páginas de apoio ao usuário; elas são respon-
sáveis por orientá-lo. Entre elas podemos citar:
•	 Página de abertura.
•	 Mapa do site.
•	 Entre em contato ou “Fale conosco”.
•	 Política de privacidade.
•	 Perguntas frequentes.
•	 Páginas de erro.
Fundamentos do Desenvolvimento Webe-Tec Brasil 20
1.5 Usabilidade
“Existe uma forte evidência de que a preocupação com usabilidade no
projeto de interfaces diminui drasticamente os custos e aumenta a produti-
vidade” - Brad Myers.
O termo usabilidade surgiu na década de 1980, em substituição à expressão
“user-friendly”, que, em português, significa amigável, e era usada princi-
palmente por profissionais da área de ergonomia e psicologia.
Esse termo é definido por diversos autores sob diferentes pontos de vista,
mas foi a ISO/IEC 9126-1991 quem definiu pela primeira vez o termo usabi-
lidade sobre qualidade de software, como:
“Um conjunto de atributos de software relacionado ao esforço necessário
para seu uso e para o julgamento individual de tal uso por determinado
conjunto de usuários.”
Foi a partir dessa norma que o termo usabilidade deixou de ser utilizado
apenas pela ergonomia e pela psicologia e passou a fazer parte de áreas do
conhecimento, como tecnologia da informação.
O conceito de usabilidade vem evoluindo e, em 1998, a norma ISO/IEC o
redefiniu, incluindo as necessidades dos usuários e outras caracteristicas de
qualidade de software, como funcionalidade, confiabilidade, eficiência, pos-
sibilidade de manutenção e portabilidade.
A norma ISO 9241/11 definiu conceitos importantes que devem ser levados
em conta quando se pensa em usabilidade.
•	 Usuário – pessoa que interage com o produto.
•	 Contexto de uso – usuários, tarefas, equipamentos (hardware, software
e materiais), ambiente físico e social em que o produto é usado.
•	 Eficácia – precisão e totalidade com que os usuários atingem objetivos
específicos, acessando a informação correta ou gerando os resultados
esperados.
•	 Eficiência – precisão e totalidade com que os usuários atingem seus
objetivos em relação à quantidade de recursos gastos.
Usabilidade
Segundo a ISO 9841/11, 1998,
usabilidade é a capacidade
de um produto ser usado por
usuários específicos para atingir
objetivos específicos com
eficácia, eficiência e satisfação
em um contexto específico de
uso.
e-Tec BrasilAula 1 – Interface web 21
•	 Satisfação – conforto e aceitabilidade do produto, medidos por meio de
métodos subjetivos e/ou objetivos.
Segundo Dias (2003),
A usabilidade pode ser considerada uma qualidade de uso, isto é, qua-
lidade de interação entre usuários e sistema, que depende das caracte-
rísticas tanto do sistema quanto do usuário. Além disso, a usabilidade
também depende das tarefas específicas que os usuários realizam, as-
sim como do ambiente físico (incidência de luz, barulho, interrupções
da tarefa, disposição do equipamento).
No que se refere a projeto de websites, alguns fatores devem ser considerados
para que se consiga desenvolver um site com características de usabilidade;
são eles: qualidade do layout, funcionalidade dos recursos interativos,
arquitetura da informação, conceito editorial, aderência às tecnologias e
dispositivos digitais. Além desses fatores, devemos conhecer e considerar
diversos outros que contribuem para a autonomia da ação dos usuários
durante a navegação; são eles:
•	 Grau de familiaridade do usuário médio do site com o uso da internet e
suas ferramentas.
•	 Uso de convenções já aceitas em grandes sites e portais.
•	 Orientação visual dos percursos a seguir, dos caminhos percorridos e
pontos de chegada.
•	 Sinalização do status de uma tarefa durante a sua realização.
•	 Possibilidade de opção sobre a instalação de plug-ins e programas no compu-
tador ou no browser do usuário para a visualização de imagens e animações.
•	 Inclusão de “links relacionados”.
•	 Informação ao usuário de uma tarefa a realizar.
•	 Oferta de suporte à navegação e ao uso, por meio de mensagens claras
e objetivas.
Fundamentos do Desenvolvimento Webe-Tec Brasil 22
•	 Inclusão de pequenos resumos próximos aos links.
•	 Permissão de reversibilidade das ações.
•	 Visibilidade informativa – a aparência de ícones, boxes, setas, sinaliza seu uso.
•	 Consistência do layout e das funcionalidades do programa (padronização
da malha, telas, logotipos, cores, tipologias).
•	 Oferta de áreas de informações relacionadas às expectativas dos usuários
quanto ao conteúdo principal, entre outros.
1.6 Acessibilidade
Inúmeras são as razões para tornar a web acessível; entre elas, pode-se citar
as vantagens competitivas, ao atingir no mercado eletrônico, milhões de
pessoas com e sem necessidades especiais; benefícios de usabilidade aos
outros usuários da web, tornando mais fácil e agradável o acesso às infor-
mações online; e ainda, a vantagem de estar de acordo com políticas gover-
namentais de inclusão digital, que buscam a inserção de todos na sociedade
da informação
A inclusão digital visa contribuir para que as pessoas de baixa visão tenham
acesso a computador e acesso à rede; porém, ter apenas acessibidade não é
suficiente, é preciso que a população receba treinamento sobre como utilizar
essas ferramentas. Ser incluído digitalmente não é apenas saber trocar e-mail,
é saber utilizar o suporte tecnológico oferecido de forma mais ampla, a fim
de promover melhoria na condição de vida.
Para que a inclusão digital seja possível, ações e projetos vêm sendo criados
para facilitar o acesso das pessoas de baixa renda às tecnologias, para que a
acessibilidade desses usuários seja facilitada.
Com essas ações e projetos, é possivel que a população tenha acesso a infor-
mações disponíveis na internet e, com isso, passe a produzir e divulgar conhe-
cimento, contribuindo, assim, com a inclusão social dos portadores de neces-
sidades especiais e idosos, como o exemplo observado na Figura 1.3 a seguir.
Acesse http://acessodigital.net/
art_fred_o_que_e_usabilidade.
html e faça a leitura desse
artigo, e contribua com sua
reflexão sobre o assunto no
fórum da disciplina no AVEA.
e-Tec BrasilAula 1 – Interface web 23
Figura 1.3: Portador de necessidades especiais e idoso utilizando notebooks
Fonte: http://www.sxc.hu/browse.phtml?f=download&id=1114180
Conforme Dias (2003), a web deve poder ser usada por pessoas, em diferen-
tes contextos, que:
•	 Sejam incapazes de ver, ouvir, se deslocar ou interpretar determinados
tipos de informação.
•	 Tenham dificuldade em ler ou compreender textos.
•	 Não tenham um teclado ou mouse convencionais, ou não sejam capazes
de utilizá-los.
•	 Possuam tela que apresenta apenas texto, com dimensões reduzidas ou
baixa resolução, ou ainda conexão lenta com a internet.
•	 Não falem ou compreendam fluentemente o idioma em que o documento
foi escrito.
•	 Estejam com seus olhos, mãos ou ouvidos ocupados, por exemplo,
quando ao volante ou em um ambiente barulhento.
•	 Possuam uma versão ultrapassada de navegador web, diferente dos habitu-
ais, um navegador por voz ou um sistema operacional pouco convencional.
Um projeto de web que desconsidere os princípios de acessibilidade prova-
velmente exclui os usuários que não possuem as tecnologias mais recentes.
É importante conhecermos algumas recomendações importantes para a
acessibilidade dos projetos de web. Elas visam contribuir com as ações e
projetos desenvolvidos, com o intuito de permitir a inclusão digital.
Fundamentos do Desenvolvimento Webe-Tec Brasil 24
Recomendações sobre acessibilidade em projeto para web:
•	 Fornecer alternativas equivalentes ao conteúdo sonoro ou visual.
•	 Não recorrer apenas à cor.
•	 Utilizar corretamente marcações e folhas de estilo.
•	 Assegurar que as páginas dotadas de novas tecnologias sejam transfor-
madas harmoniosamente.
•	 Assegurar o controle do usúario sobre as alterações temporais do conteúdo.
•	 Assegurar a acessibilidade direta de interfaces de usuários integradas.
•	 Projetar páginas considerando a independência de dispositivos.
•	 Fornecer informações de contexto e orientações.
•	 Fornecer mecanismos de navegação claros.
•	 Assegurar a clareza e a simplicidade dos documentos, entre outros.
O avaliador de acessibilidade DaSilva é um site nacional que testa,
considerando num ranking de prioridades, as condições para que um site
seja classificado como acessível. Pode-se fazer o download da ferramenta3
ou usar a versão online em http://www.dasilva.org.br/
Descreva os fundamentos e as diferenças entre acessibilidade e usabilidade.
1.7 Legibilidade
Segundo Marmion (2006) o campo de percepção visual reduz-se à metade
a uma distância de 2.5 graus do ponto de fixação do olho, quando fazemos
uma leitura. Observe que, conforme a Figura 1.4 se o ponto de fixação fosse o
número 0, eis o bloco de informação que nosso cérebro conseguiria processar:
Legibilidade
Legibilidade é a facilidade
com que um leitor consegue
discernir a fonte numa página,
e baseia-se na relação da forma
com o fundo e na capacidade de
distinguir as letras entre si. Para
que possam ser lidas, as letras
terão que ser bem identificadas.
e-Tec BrasilAula 1 – Interface web 25
Figura 1.4: Legibilidade
Fonte: Marmion (2006)
A apresentação texto em colunas minimiza o “escaneamento” horizontal e
consequentemente reduz o movimento dos olhos e a fadiga ocular, segundo
Jerome Nadel, da empresa Human Factors International Inc., conforme
demonstra dona Figura 1.5 a seguir.
Figura 1.5: Colunas
Fonte: Marmion (2006)
Segundo Jakob Nielsen (apud MARMION, 2006), 79% dos usuários da web
“escaneiam” texto. Apenas 21% leem palavra por palavra. Para incrementar
a facilidade de leitura e tornar seu texto “escaneável”, Nielsen recomenda
a utilização de:
•	 Tabelas.
•	 Cabeçalhos.
•	 Negrito.
•	 Gráficos.
•	 Marcadores (bullets).
Fundamentos do Desenvolvimento Webe-Tec Brasil 26
Vejamos, na prática, a aplicação dos princípios das teorias acima mencionadas.
Suponhamos que devemos apresentar ao usuário uma receita, como a seguir:
Ingredientes para a massa: 6 ovos à temperatura ambiente, 7 colheres (sopa)
de açúcar, 6 colheres (sopa) de chocolate em pó, 1 xícara (chá) de farinha de
trigo, 1 colher (chá) de fermento em pó, açúcar para polvilhar. Ingredientes
para o recheio: 2 latas de leite condensado, 2 pacotes (100 g cada) de coco
ralado, 1 xícara (chá) de uva-passa. Modo de preparo da massa: Forre uma
assadeira nº 3 com papel-alumínio ou papel-manteiga. Unte muito bem e
polvilhe com farinha. Reserve. Bata as claras em neve e reserve. Bata as
gemas com o açúcar até obter um creme claro e fofo. Adicione o chocolate,
a farinha e, por último, o fermento. Acrescente as claras em neve mexendo
delicadamente. Modo de preparo do recheio: Despeje o leite condensado
na fôrma preparada. Distribua por cima os demais ingredientes do recheio.
Cubra com a massa e leve ao forno médio (180ºC), pré-aquecido, para assar
por cerca de 30 minutos. Desenforme ainda quente sobre um pano de prato
polvilhado com açúcar. Enrole imediatamente com o auxílio do pano de
prato. Polvilhe com açúcar, espere esfriar e leve à geladeira. Atenção: Tome
cuidado ao desenformar porque o leite condensado ainda está mole.
Você notou como está difícil de compreender estas informações. Que tal
tentar melhorá-las? Veja:
Rocambole
Ingredientes para a massa
•	 6 ovos à temperatura ambiente
•	 7 colheres (sopa) de açúcar
•	 6 colheres (sopa) de chocolate em pó
•	 1 xícara (chá) de farinha de trigo
•	 1 colher (chá) de fermento em pó
•	 Açúcar para polvilhar
e-Tec BrasilAula 1 – Interface web 27
Ingredientes para o recheio
•	 2 latas de leite condensado
•	 2 pacotes (100 g cada) de coco ralado
•	 1 xícara (chá) de uva-passa
Modo de preparo
Modo de preparo da massa
Forre uma assadeira nº 3 com papel-alumínio ou papel-manteiga. Unte
muito bem e polvilhe com farinha. Reserve. Bata as claras em neve e reserve.
Bata as gemas com o açúcar até obter um creme claro e fofo. Adicione o
chocolate, a farinha e, por último, o fermento. Acrescente as claras em neve
mexendo delicadamente.
Modo de preparo do recheio
Despeje o leite condensado na forma preparada. Distribua por cima os demais
ingredientes do recheio. Cubra com a massa e leve ao forno médio (180ºC),
pré-aquecido, para assar por cerca de 30 minutos. Desenforme ainda quente
sobre um pano de prato polvilhado com açúcar. Enrole imediatamente com o
auxílio do pano de prato. Polvilhe com açúcar, espere esfriar e leve à geladeira.
Atenção
Tome cuidado ao desenformar porque o leite condensado ainda está mole.
Ficou bem mais claro, não ficou? Mas dependendo da configuração da tela,
pode ser necessário clicar a barra de rolagem, algo indesejável. Note que
mesmo assim aprece um espaço em branco, totalmente, desaproveitado à
direita dos ingredientes. Podemos então sugerir um formato alternativo?
Agora é a sua vez de tentar, vamos lá!!!
Fundamentos do Desenvolvimento Webe-Tec Brasil 28
1.7.1 Fonte
A escolha da fonte a ser utilizada no projeto de um site influencia diretamente
o seu resultado final. Existem basicamente dois tipos de fontes: as com serifa
e as sem serifa.
As fontes serifadas geralmente se perdem na resolução dos monitores,
tornando-se inadequada a sua utilização. Seu contraste é máximo para
compensar problemas de resolução e para que não haja confusão de
legibilidade. O texto sem serifa não perde resolução e tem mais potencial
de velocidade de leitura. A tipografia escolhida para o corpo do texto é
Verdana, por se tratar de uma tipografia comumente utilizada, largamente
distribuída e de leitura rápida e simples. A variação dos tamanhos, de acordo
com a finalidade do texto, também auxilia na hierarquização da informação.
Todas as escolhas são baseadas no conhecimento e questionamento ao
público-alvo, também pertencente ao grupo de pesquisa. Veja a diferença
entre fontes com serifa e sem serifa nas Figuras 1.6 e 1.7 a seguir.
AaBbCcFigura 1.6: Tipo com serifa
Fonte: http://pt.wikipedia.org/w/index.php?title=Serifa&oldid=2734811
AaBbCcFigura 1.7: Tipo sem serifa
Fonte: http://pt.wikipedia.org/w/index.php?title=Serifa&oldid=2734811
Segundo Faria, Ferreira e Lemos (2010) para assegurar uma boa usabilidade
a um website, um texto legível é um dos fatores de grande importância,
pois devemos sempre considerar o público-alvo.
Devemos lembrar que para que a fonte seja apresentada, ela deverá estar
instalada no computador do usuário. Algumas fontes têm mais chances de
estarem instaladas, por serem mais comumente utilizadas. Ao escolhê-las,
defina uma ou mais fontes alternativas. Evite misturar fontes serifadas e sem
serifa no mesmo texto.
Serifas
São os pequenos traços e
prolongamentos que ocorrem no
fim das hastes das letras.
Para a maioria do público-alvo, o
tamanho ideal de fonte transita
entre 10 e 12 pts (NIELSEN apud
GUIMARÃES, 2007).
e-Tec BrasilAula 1 – Interface web 29
1.7.2 Cores
1.7.2.1 Modos de cor
Existem duas classificações para as cores primárias:
•	 RGB (Red = vermelho – Green = verde – Blue = azul): sistema utilizado
nos monitores de computador, televisões, espetáculos e data show. É
formado pelo processo aditivo, em que pigmentos e suas combinações
geram a cor branca. Cada uma dessas cores possui uma variação de 0 a
255, que geram mais ou menos 16 milhões de cores.
•	 CMYK (Cyan = ciano – Magenta – Yellow = amarelo – Black = preto):
sistema utilizado para impressões. É gerado pela absorção de luz pelas
cores, processo denominado de subtrativos, em que a adição das três
principais cores gera a cor preta.
Segundo o Instituto de Pesquisa da Cor (Institute for Color Research) há
estudos que revelam que “os seres humanos julgam subconscientemente uma
pessoa, um ambiente ou um item nos primeiros 90 segundos, e nesse lapso
de tempo entre 62% e 90%do julgamento é baseado unicamente na cor”.
O olho humano pode detectar quase todas as graduações de cores, quando
as luzes monocromáticas como: vermelho, verde e azul são misturadas apro-
priadamente, segundo as muitas teorias que procuram explicar o fenômeno
da visão cromática.
As cores se dividem em três grupos:
1.	 Cores Primárias: são as cores que não podem ser formadas por nenhuma
mistura. Segundo Tavares (2007), são elas: Vermelho, verde, azul, no
sistema RGB; e no sistema CMYK, são elas: azul, magenta e amarelo.
2.	 Cores Secundárias: são formadas por duas cores primárias misturadas em
partes iguais (PEDROSA, 1982 apud SCHUHMACHER, 2007).
3.	 Cores Terciárias: são as intermediárias entre uma cor secundária e
qualquer das duas primárias que lhe dão origem (PEDROSA, 1982 apud
SCHUHMACHER, 2007).
Para a leitura eficiente de
um texto, principalmente, um
website, em que essa leitura
ocorrerá na tela do monitor,
devemos procurar sempre uma
combinação harmoniosa das
cores, procurando contrastar a
cor da fonte e do fundo.
Fundamentos do Desenvolvimento Webe-Tec Brasil 30
Ainda segundo Pedrosa (1982 apud SCHUHMACHER, 2007), na Figura
1.8 construída por Fabris em 1973, as cores primárias estão no centro, as
secundárias (verde, laranja e violeta) no segundo triângulo. O terceiro ciclo
se complementa com as cores terciárias.
Figura 1.8: Círculo das cores
Fonte: Fabris (1973 apud SCHUHMACHER, 2007)
E as cores complementares são aquelas opostas no disco de cores. Assim
temos como complementares os seguintes pares de cores: vermelho e ciano,
verde e magenta, azul e amarelo, conforme a Figura 1.9 a seguir.
Figura 1.9: Cores complementares
Fonte: Schuhmacher (2007)
e-Tec BrasilAula 1 – Interface web 31
As cores são análogas porque há nelas uma mesma cor básica e estão
posicionadas lado a lado no disco de cores. São muito utilizadas para dar
a sensação de uniformidade, profundidade, movimento, luz e sombra.
Podemos considerar análogas três cores que se apresentam em sequência
no círculo das cores como o amarelo, amarelo-laranja e laranja, como
observamos na Figura 1.10 a seguir.
Figura 1.10: Cores análogas
Fonte: Schuhmacher (2007)
As cores contrastantes são diretamente opostas no disco das cores, como
por exemplo: o azul e o amarelo.
Acesse o esquema de cores em http://wellstyled.com/tools/ e faça algu-
mas combinações de cores para utilizar posteriormente no seu site.
Segundo Robertson apud Parizotto (1997), recomenda-se que as cores de
uma página na web não sejam selecionadas separadamente, e sim, dentro
de um contexto geral e que sejam respeitadas as diferenças culturais e fisio-
lógicas entre os indivíduos.
Resumo
Nesta Aula, você pôde ver pontos importantes que devem ser considera-
dos ao desenvolver o layout para um website. Para que a navegação em
um website seja eficiente, precisamos responder aos usuários três perguntas
fundamentais da navegação: Onde estou? Onde estive? Onde posso ir?
Em uma página principal de website podemos destacar as seguintes carac-
terísticas: identificar a localização do usuário, oferecer suporte aos usuários,
atualização permanente, marcar a localização do usuário em relação às ou-
tras páginas e guiar seus percursos, ter mais área para navegação do que
para conteúdo e informar os assuntos de maneira concisa e direta.
Nas páginas internas: apresentar em destaque o nome da página principal,
mostrar em local bem visível a marcada empresa ou organização, manter
Conheça a utilização de cor
no mecanismo de interação
com o usuário, disponível em
http://www.ibrau.com.br/
artigoutilizacaodecor.htm
Ao escolher um padrão de cores
para um site devemos sempre
observar alguns aspectos:
Assunto da página, Público-alvo
e Ambiente.
Vamos experimentar um
aplicativo que gere esquemas
e combinações de cores. Cada
esquema se baseia em uma
cor usada como base, que é
combinada e complementada
por cores adicionais calculadas
por meio de algoritmos que
permitem a melhor combinação
ótica. Esta ferramenta, Color
Scheme, está disponível em
http://wellstyled.com/tools/
Vamos aprender sobre as
cores de forma lúdica e
divertida? Acesse o site Color
in Motionno endereço http://
www.mariaclaudiacortes.
com/. O site é uma experiência
interativa sobre a comunicação e
o simbolismo da cor.
Fundamentos do Desenvolvimento Webe-Tec Brasil 32
o mesmo estilo das outras páginas, manter o foco em aspectos mais espe-
cíficos, prover o sentido de localização do usuário, manter as informações
estruturais, entre outros.
Entendemos que um website tem que possibilitar aos mais diferentes usuá-
rios a experiência de navegação na internet, incluindo os que são portadores
de necessidades especiais; por isso a necessidade de adotarmos os conceitos
de: usabilidade, acessibilidade e legibilidade.
Atividades de aprendizagem
A partir do conteúdo até aqui estudado, faça uma análise da interface dos sites:
www.vw.com.br
www.ford.com.br
www.honda.com.br
www.fiat.com.br
Pontos a serem analisados:
•	 Tamanho de tela, resolução do monitor e adaptações.
•	 Tempo de carregamento da página.
•	 Layout das páginas.
•	 Navegação.
•	 Usabilidade.
•	 Acessibilidade.
•	 Legibilidade.
e-Tec BrasilAula 1 – Interface web 33
Prog web
e-Tec Brasil
Aula 2 – Fundamentos do HTML
Objetivos
Entender os conceitos e funcionamentos do HTML, como atribu-
tos, marcadores, tabelas, inserção de imagens, sons e vídeos.
Conhecer o editor de texto Notepad++.
Aprender a utilizar o editor de texto Notepad ++.
Para que possamos criar arquivos HTML é necessária a utilização de um editor de
texto. No decorrer desta aula utilizaremos o editor Notepad++, do qual você pode
fazer o download no site http://notepad-plus.sourceforge.net/br/site.htm;
é gratuito. Caso não queira ou não possa instalar o software no computador que
utiliza para estudar, você pode fazer o download do formato portátil.
2.1 Editor de texto Notepad++
Notepad++ é um editor de código livre que substitui o Notepad. Ele funciona
em ambiente Windows e suporta várias linguagens de programação; veja o
logotipo do Notepad++ na Figura 2.1 a seguir.
Figura 2.1: Logotipo Notepad ++
Fonte: http://notepad-plus-plus.org/
e-Tec BrasilAula 2 – Fundamentos do HTML 35
Foi desenvolvido com base no Scintilla, um editor escrito em linguagem C++.
O código-fonte tem marcações coloridas, o que contribui para sua melhor
visualização. Conheça a interface do software na Figura 2.2 a seguir.
Figura 2.2: Interface do editor de texto Notepad++
Fonte: Notepad++, v. 5.9.3
2.1.1 Características do Notepad ++
Autocompletar: para quase todas as linguagens suportadas, é possível que
o usuário crie sua própria lista de autocompletar (api). Para que o Notepad a
execute, digite Ctrl+Espaço.
Destaque de sintaxe: permite que o usuário crie sua própria linguagem,
tanto de síntese de palavras-chave quanto de blocos.
Marcadores: para inserir um marcador, basta clicar na margem (no lado direito
da margem junto ao nº da linha) ou digitar Ctrl+F2 para inverter o marcador. Para
excluir todos os marcadores, clique no Menu Localizar->Excluir Marcadores.
Múltiplasvisualizações:vocêpodeeditarváriosdocumentosaomesmotempo.
Chaves, colchetes e parênteses com destaque: quando o cursor se aproxi-
ma de um desses símbolos { } [ ] ( ), o símbolo que está próximo ao cursor e o
símbolo simetricamente oposto são destacados, assim como sua guia de inden-
tação, se houver, fazendo com que a localização de um bloco seja mais fácil.
Você conheceu o editor de texto
que utilizaremos nos exercícios e
no andamento desta disciplina;
caso não o tenha instalado em
seu computador, entre no site:
http://notepad-plus.
sourceforge.net/br/site.htm,
o download é gratuito. Porém,
caso tenha preferência por outro
editor de texto, ele poderá ser
utilizado.
Fundamentos do Desenvolvimento Webe-Tec Brasil 36
2.2 O que é HTML?
O Hypertext Markup Language (HTML) é uma linguagem de formatação e
não de programação. Essa linguagem tem a função de enviar para o nave-
gador (Internet Explorer, Firefox, Chrome, etc.), informações que definem de
que maneira textos, imagens e outros itens deverão aparecer na tela.
Essas informações são chamadas tags (etiquetas) e estão inseridas nos do-
cumentos originais (documento-fonte) que criaram as páginas. Essas tags
normalmente aparecem em pares, iniciando e encerrando um bloco. Existem
quatro tags básicas são elas:
<html></html>, <head></head>,<title></title>, <body></body>
Para se obter um documento escrito em HTML é necessária a utilização do
editor de texto e de, no mínimo, essas quatro tags. Veja o exemplo 1 e o seu
resultado na Figura 2.3 a seguir.
Exemplo 1:
Resultado:
Figura 2.3: Exemplo de utilização das tags básicas
Fonte: CEAD/Ifes © (2010)
e-Tec BrasilAula 2 – Fundamentos do HTML 37
<html>... </hmtl>: abre e encerra uma página. Essas tags são as mais im-
portantes, pois informam ao browser que o documento está escrito em html.
<head> …</head>: a tag <head>vem abaixo da tag <html>, indica os co-
mandos que o navegador precisa carregar antes que a página seja carregada. É
utilizada no cabeçalho para inibir o título a ser inserido na janela do navegador.
<title>… </title>: espaço para definição do título do documento. A tag
<title> deve estar sempre contida na tag <head>.
<body></body>: essa tag contém o corpo da página. A tag <body> deve
ser inserida após a tag <head>; já a tag </body> vem antes da tag </html>.
1.	 Escolha o tipo de site que deseja desenvolver durante o andamento desta
disciplina. É importante que seja um site pelo qual você tenha, além de
interesse, material para executá-lo, pois cada etapa desenvolvida nesta
disciplina será para a composição do layout desse site. Exemplos:
( ) site pessoal
( ) site corporativo
( ) site institucional
( ) site profissional
( ) outro: ____________________
Responda às questões:
a)	 O que é HTML?
b)	 Qual a definição das tags <title> e <body>?
2.	 Quais são as tags mínimas necessárias para criar uma pagina web? Utili-
zando essas tags, faça uma página pessoal. Salve o arquivo com o nome
que escolheu para o site. Digite nome do site.html e clique em salvar. Crie
uma pasta denominada site XXX, salve todas as atividades desenvolvidas
nesta disciplina nessa pasta.
Fundamentos do Desenvolvimento Webe-Tec Brasil 38
2.3 Marcadores
São comandos da linguagem HTML que permitem a formatação do texto.
Um marcador deve ser apresentado entre os sinais “<” e “>”. A maioria dos
marcadores funciona como chave de liga e desliga. Isso quer dizer que um
marcador é utilizado para indicar o início da formatação e outro para infor-
mar o fim dela; no caso do fechamento, é inserido “/”, antes do nome do
marcador (ALVES, 2009).
2.3.1 Body
São os marcadores existentes entre as tags <body>...</body>.
2.3.2 Bgcolor – backgrounding color
Aplica cor de fundo a uma determinada seção. Pode ser definida por uma
constante (nome em inglês da cor) ou um número hexadecimal (#xxxxxx)
que corresponde ao valor da cor em RGB. Observe no Quadro 2.1 as cores e
números hexadecimais correspondentes.
Quadro 2.1: Relação de cores e números hexadecimais
Cor Hexadecimal Cores Claras Hexadecinal
Branco #FFFFFF Branco-neve #F4F4F4
Preto #000000 Cinza-claro #C0C0C0
Azul #0000FF Azul-claro #D9FFFF
Verde #008000 Verde-claro #DEFEDA
Vermelho #FF0000 Rosa-claro #FFD5D5
Cinza #808080 Amarelo-claro #FFFFF5
Amarelo #FFFF00 Roxo-claro #EFDFFF
Fonte: CEAD/Ifes © (2010)
Agora observe o exemplo 2 e o resultado da utilização do atributo bgcolor
está mostrado na Figura 2.4 a seguir.
Exemplo 2:
Veja o link que fala de alguns
tipos de websites
http://daniellesimoes.com/
Tipos%20de%20Web%20Sites.
pps
e-Tec BrasilAula 2 – Fundamentos do HTML 39
Resultado:
Figura 2.4: Fundo da página em verde
Fonte: CEAD/Ifes © (2010)
Acrescente cor ao arquivo executado na atividade de aprendizagem 2.
Execute a tarefa e depois visualize, é importante a escolha de uma cor que
não interfira na legibilidade do conteúdo.
2.4 Tabelas
É por meio de tabelas que imagens e textos são posicionados dentro da
página. A tabela do HTML não tem apenas a função de exibir dados, como
a tabela do Excel, por exemplo, mas é uma importante ferramenta para
definir onde as informações, imagens, etc. serão organizadas. O conteúdo
de cada célula poderá ter textos, imagens e até mesmo outras tabelas. As
tags <table>...</table> delimitam a tabela; dentro dessas tags são inseridas
outras que definem número de linhas, colunas e outras características que se
fizerem necessárias. Na Figura 2.5 temos um exemplo de tabela em HTML.
Colunas
CélulaLinhasCélula que pode
conter outra tabela
Figura 2.5: Exemplo de tabela em HTML
Fonte:Adaptado de Oliviero (2000)
Segundo Ferreira (2009), tabela
é substantivo feminino; significa
pequena tábua ou quadro em
que se registram nomes de
pessoas ou coisas.
Fundamentos do Desenvolvimento Webe-Tec Brasil 40
Veja o exemplo 3 e o resultado na criação de uma tabela na Figura 2.6 a seguir.
Exemplo 3:
Resultado:
Figura 2.6: Exemplo de tabelas
Fonte: CEAD/Ifes © (2010)
Crie uma tabela com três colunas e quatro linhas no arquivo em que você
vem executando seu site.
2.4.1 Atributos da tabela
Existem diversos atributos que podem ser incorporados à tabela, os quais
são opcionais, sendo utilizados apenas se necessário. São eles:
Border: configura a borda da tabela. Nesse caso, pode vir assim definido:
border=“n”, em que n define a espessura da borda. Se “n” for zero, signifi-
ca que a tabela é sem borda; alterando o “n” para qualquer outro número,
este definirá a borda que se deseja naquela tabela.
Align: define o alinhamento horizontal do conteúdo dentro da tabela. Os
valores determinados para esse alinhamento são:
e-Tec BrasilAula 2 – Fundamentos do HTML 41
Left – à esquerda
Center – no centro
Right – à direita
Se esses valores forem inseridos entre as tags <td>...</td> define o alinha-
mento dentro da célula. Caso queira definir o alinhamento de toda a tabela,
é necessário inserir os valores entre as tags <table>...</table>.
Valign: define o alinhamento vertical do conteúdo dentro da tabela. Os va-
lores definidos para esse alinhamento são:
Top – ao alto
Middle – ao meio
Bottom – embaixo
Como acontece com o align, se esses valores forem inseridos entre as tags
<td>...</td>, será definido o alinhamento dentro da célula. Para definir o
alinhamento de toda a tabela, é necessário inserir os valores entre as tags
<table>...</table>.
Na tabela criada na atividade anterior, exercite os atributos vistos até aqui.
São eles: border, align e valign.
2.5 Imagens em HTML
•	 As imagens utilizadas na página da web são, em sua maioria, nos forma-
tos GIF, JPEG ou PNG, sendo GIF e JPEG os mais comuns.
•	 É importante que o tamanho da imagem esteja entre 15KB e 80KB, pois
imagens muito grandes demoram mais para carregar.
•	 Caso a imagem que deseja inserir não esteja em nenhum desses forma-
tos, é necessário convertê-la com a ajuda de software, como CorelDRAW
ou GIMP, entre outros, como veremos à frente.
Fundamentos do Desenvolvimento Webe-Tec Brasil 42
•	 Há vários sites que disponibilizam imagens de botões (imagens utilizadas
nos websites para indicar o caminho de uma página ou link), texturas,
fotos, animações (arquivo GIF animado) para download gratuito, como
os botões exemplificados na Figura 2.7 a seguir.
Figura 2.7: Exemplo de imagens de botões
Fonte: http://office.microsoft.com/pt-br/images/results.aspx?qu=bot%C3%A3o#ai:MC900432679|
2.6 Atributos ALT e ALIGN
Atributos são características de determinadas tags; a maior parte das tags do
HTML possui atributos. Nesta seção abordaremos as tags que têm a função
de alinhar as imagens na página.
2.6.1 Sons e vídeos
Para inserir vídeo ou som, é utilizado o marcador <EMBED>.
É preciso especificar o nome do arquivo por meio do atributo SRC; veja no
exemplo 4 e o resultado na Figura 2.8 a seguir.
Exemplo 4:
e-Tec BrasilAula 2 – Fundamentos do HTML 43
Resultado:
Figura 2.8: Exemplo de inserção de som na página
Fonte: CEAD/Ifes ©(2010)
Para inserir um vídeo, é importante levar em consideração o formato do arquivo,
já que esse recurso depende de extensões ou plugins instalados no navegador.
O vídeo possui também outros atributos que podem alterar o modo de visu-
alização; como exemplo podemos citar:
Loop: ajustado com o valor TRUE, o vídeo é configurado para tocar indefini-
damente; isso quer dizer que, enquanto você estiver acessando a página, o
vídeo passará sem que o usuário tenha a opção de pará-lo.
Controller: permite mostrar ou não o controle do vídeo.
–– False: não mostra o controle.
–– True: mostra o controle.
Autoplay: permite executar o vídeo, automaticamente, após ser carregado.
–– False: não executa o vídeo.
–– True: executa o vídeo.
Width e Height: define a área de apresentação do vídeo.
Observe com atenção o exemplo 5 e o resultado de um exemplo de inserção
de vídeo em uma página web na Figura 2.9 a seguir.
Fundamentos do Desenvolvimento Webe-Tec Brasil 44
Exemplo 5:
Resultado:
Figura 2.9: Exemplo de inserção de vídeo na página
Fonte: CEAD/Ifes ©(2010)
No arquivo desenvolvido até aqui, acrescente uma imagem correspondente
ao tema escolhido para desenvolver seu site.
2.7 Atributos width e height
Esses atributos permitem alterar as dimensões da imagem, independente-
mente do seu tamanho real, observe como utilizá-los no exemplo 6.
Width= “n” – n é o número que determina a largura da figura, definido em
pixels ou em porcentagem.
Heigth= “n” – n é o número que determina a altura da figura, definido em
pixels ou em porcentagem.
No exemplo 6 temos o código para alteração das dimensões; a imagem e o
resultado dessa alteração são visualizados na Figura 2.10 a seguir.
Exemplo 6:
É interessante que o arquivo
da imagem esteja no mesmo
diretório que o documento
HTML; caso não esteja, é
necessário passar o caminho
completo.
e-Tec BrasilAula 2 – Fundamentos do HTML 45
Resultado:
Figura 2.10: Exemplo de alteração das dimensões da imagem
Fonte: CEAD/Ifes © (2010)
2.8 Atributo background
É o atributo usado em HTML para inserir imagens de segundo plano; se esse
atributo estiver inserido na tag <td>, a imagem de segundo plano será inse-
rida na célula. Quando o atributo for inserido na tag <table>, a imagem será
inserida na tabela e, quando estiver contido na tag <body>, a imagem será
inserida na página como um todo. No exemplo 7 a seguir vemos a utilização
do atributo background, e o seu resultado na Figura 2.11 a seguir.
Background= “[caminho][nome da figura]”
Exemplo 7:
Resultado:
Figura 2.11: Exemplo de segundo plano
Fonte: CEAD/Ifes ©(2010)
caminho
Indica em qual diretório está
localizada a figura a ser exibida.
Caso a imagem se encontre no
mesmo diretório da página que
conterá essa figura, seu caminho
poderá ser suprimido.
Fundamentos do Desenvolvimento Webe-Tec Brasil 46
Responda às questões:
Qual a definição da tag <table>?
Qual o atributo utilizado para definir espaçamento entre as células de uma
tabela?
Qual a definição do atributo width=“n” da tag <table>?
Utilizando o arquivo desenvolvido, crie um texto e aplique os quatro tipos de
alinhamento (align=”right”, “left”, “center”, “justify”).
2.9 Formatação de textos
Para formatar o texto do HTML, conheceremos algumas tags importantes;
elas nos ajudarão a definir tipo de fonte, tamanho, cor, quebra de parágrafo,
entre outros.
A tag <font>: é usada para definir qual o tipo de fonte o navegador irá usar.
A tag <font> abre e a </font> fecha o trecho a ser formatado. Essa tag tem
os atributos size, color e face, que definem o tamanho da fonte, cor e a
fonte que será utilizada, respectivamente.
A tag <br>: tem por função inserir a quebra de linha no ponto em que foi
inserida. O navegador entende que, ao encontrar a tag <br>, deve ir, ime-
diatamente, para a margem esquerda da outra linha, como mostrado no
exemplo 8 e o resultado da formatação de texto na Figura 2.12 a seguir.
Exemplo 8:
e-Tec BrasilAula 2 – Fundamentos do HTML 47
Resultado:
Figura 2.12: Exemplo de formatação de texto
Fonte: CEAD/Ifes © (2010)
Tags de estilo são usadas para definir os estilos de formatação em um texto.
Entre as tags de estilo, podemos citar:
<strong>...</strong>: o texto será exibido em negrito;
<em>...</em>: o texto será apresentado em itálico;
<u>...<u>: o texto será exibido no modo sublinhado;
<S>...<S>: o texto será exibido no modo tachado;
<big>...</big>: o texto será exibido em tamanho maior do que o texto ao
seu redor;
<small>...</small>: o texto será exibido em tamanho menor do que o texto
ao seu redor;
<sub>...</sub>: o texto será exibido subscrito;
<tt>...</tt>: o texto será exibido em formato de máquina de escrever.
Agora observe o exemplo 9 e o resultado de formatação de estilo de texto
na Figura 2.13 a seguir.
Fundamentos do Desenvolvimento Webe-Tec Brasil 48
Exemplo 9:
Resultado:
Figura 2.13: Exemplo de formatação de estilo de texto
Fonte: CEAD/Ifes © (2010)
Pratique a formatação de texto e estilos de fontes, conforme descrito no
exemplo 9. Lembre-se de utilizar o arquivo que vem desenvolvendo até aqui.
Qual a tag utilizada na quebra de parágrafos? Qual a definição sentença <p
align= “center”>.... texto do exercício </p>?
2.10 Vínculos ou links
Vínculos ou links são maneiras como podem ser criadas ligações entre dois
ou mais documentos HTML.
A tag responsável pela criação vínculos é denominada <a>...</a>, sendo
<a> a tag de abertura e </a> a de fechamento, veja na Figura 2.14 a seguir.
e-Tec BrasilAula 2 – Fundamentos do HTML 49
A HREF= “vínculo”>texto destaque</A>
Texto a ser
mostrado
na páginaArquivo a ser
carregado
Tag de abertura
Tag de fechamento
1 2 3 4 5
Figura 2.14: Partes que compõem um vínculo
Fonte:Adaptado de Alves (2009)
1.	 Tag de abertura.
2.	 Atributo.
3.	 Nome do arquivo a ser carregado.
4.	 Texto a ser mostrado na página; geralmente, ganha destaque por estar
na cor azul.
5.	 Tag de fechamento.
Fundamentos do Desenvolvimento Webe-Tec Brasil 50
Resumo
Com a conclusão desta Aula, você deverá estar apto a reconhecer a lingua-
gem HTML e a utilizá-la. Nela você descobriu que HTML é uma linguagem
utilizada para criar páginas web. HTML é a abreviação de Hyper Text Markup
Language (linguagem de criação de hipertexto) e é usada para estruturar
uma página web. Descobriu também que, usando HTML, marcamos o con-
teúdo com tags para oferecer a estrutura e que chamamos as tags corres-
pondentes e seu conteúdo de “elementos”.
Um elemento é composto por três partes: uma tag de abertura, conteúdo e
uma tag de fechamento. Há alguns elementos, como <img>, que são uma
exceção a essa regra. Suas páginas sempre deverão possuir um elemento
<HTML> em conjunto com um elemento <head> e um elemento <body>.
Enfim, os diversos conhecimentos adquiridos até aqui serão importantes
para o bom andamento da próxima Aula, que discutirá o CSS, uma lingua-
gem de estilo que define o layout de documentos HTML.
Atividades de aprendizagem
1.	 Qual o principal atributo da tag <img>?
2.	 Quais atributos servem para definir largura e altura de uma imagem?
e-Tec BrasilAula 2 – Fundamentos do HTML 51
Prog web
e-Tec Brasil
Aula 3 – Cascading Style Sheets (CSS)
Objetivos
Compreender o conceito de CSS.
Entender a criação de estilos.
Conhecer o método de aplicação do CSS no documento HTML.
Conhecer o conceito de pseudoclasses e pseudoelementos.
O CSS é uma linguagem de estilo que foi desenvolvida para controlar cores,
margens, fontes, linhas, alturas, larguras, imagens de fundo, entre outros.
Pode parecer estranho aprender a controlar todos esses itens, vimos isso
quando estudamos HTML. Realmente, o HTML tem algumas tags com essas
funções; porém, nem sempre serão suficientes para suprir a necessidade de
encontrar meios de construir layouts para os documentos online.
Para suprir a necessidade de novas possibilidades de criação de layouts foi
criado o CSS. Dessa forma, o HTML passou a ser utilizado apenas como lin-
guagem de marcação e estruturação, ficando com o CSS a função de aplicar
estilos necessários para a aparência da página desenvolvida.
Com a criação do CSS, houve alguns benefícios para o desenvolvimento de
websites, entre eles: a precisão no controle do layout, a criação da folha
de estilos, possibilitando o controle de vários documentos a partir de um, a
possibilidade de criar layouts específicos para determinadas mídias, telões e
dispositivos móveis, entre outros.
Para aplicação do CSS são criadas folhas de estilos, documento com extensão
CSS que conterá os códigos de definição de estilo de determinado documen-
to, que pode ser de extensão HTML. Essa folha pode ser um documento se-
parado, contendo apenas os códigos de estilos, vinculado ao arquivo HTML;
ou, então, esses códigos podem ser digitados diretamente no arquivo HTML.
Existem três maneiras de aplicar o CSS em um documento, mostradas a seguir.
Para o estudo e desenvolvimento
das atividades deste capítulo,
continuaremos a usar o
Notepad++; porém, os arquivos
desenvolvidos serão salvos agora
na extensão .css.
e-Tec BrasilAula 3 – Cascading Style Sheets (CSS) 53
3.1 Criando estilos
Os estilos definidos pelo CSS são aplicados conforme a seguinte síntese:
elemento {atributo1: valor; atributo2: valor...}
Podemos descrever cada item dessa síntese como:
•	 Elemento: descreve o elemento de design ao qual o estilo será aplicado.
Essa é a mesma tag HTML, mas sem os sinais de maior e menor. Essa
parte da regra é, às vezes, chamada de selector.
•	 Atributo: aspecto específico do elemento que se quer usar como estilo.
Deve ser um nome de atributo CSS válido, como o atributo font-size.
•	 Valor: esse item configura a aplicação do atributo. Deve ser uma configura-
ção válida para o atributo em questão, como 20 pt (20 pontos) para font-size.
•	 Atributo valor: nesse item da síntese pode-se atribuir múltiplas declara-
ções que podem ser separadas com ponto e vírgula (;). Porém, no último
item não coloque ponto e vírgula.
Veja um exemplo de regra que diz que todos os títulos de nível 2 (tags <H2>)
devem ter tamanho de 24 pontos e cor azul:
H2 {font-size: 24pt; color: blue}
Para que fique claro e visível que você colocou todos os sinais de ponto e
vírgula e chavetas nos lugares corretos, utilize quebras de linha e espaços em
branco na regra. Exemplo:
P {font-family: Times;
Font-size: 12pt;
color: blue;
margin-left: 0.5in}
O exemplo acima descreve que os parágrafos deverão aparecer em fonte Times,
12 pontos, azul, recuada meia polegada, a partir da margem esquerda da página.
Fundamentos do Desenvolvimento Webe-Tec Brasil 54
3.2 Método de aplicação do CSS
no documento HTML
Existem três métodos de aplicação do CSS; são eles:
3.2.1 Método inline
Método inline: é aplicado usando o atributo style do HTML, acrescenta-se
dentro do atributo style a característica que se deseja obter naquele docu-
mento. Com esse método, é possível conseguir poucos efeitos. Os estilos
criados por esse método só afetam a tag na qual ele está inserido, não afeta
outras tags e nem mesmo outros documentos.
Ao utilizar a tag style, não é necessário utilizar os colchetes, nem acrescentar
a tag </style> de fechamento; no CSS as regras devem ser colocadas entre
aspas, separando-as com o ponto e vírgula. Observe o exemplo 10 e o resul-
tado da inserção da tag style inline da Figura 3.1 a seguir.
Exemplo 10:
Resultado:
Figura 3.1: Exemplo de inserção da tag style inline
Fonte: CEAD/Ifes © (2010)
3.2.2 Método interno
Este método também é aplicado utilizando a tag <style> do HTML; porém
nesse método a tag é colocada na própria página HTML, ao invés de separa-
do como no método inline.
e-Tec BrasilAula 3 – Cascading Style Sheets (CSS) 55
Veja no exemplo 11, como utilizar o método interno e o resultado na Figura
3.2 a seguir.
Exemplo 11:
Resultado:
Figura 3.2: Exemplo de inserção da tag style método interno
Fonte: CEAD/Ifes © (2010)
3.2.3 Método externo
Nesse método é criado um arquivo separado com os estilos. Esse arquivo deve
ser salvo com a extensão .CSS. Deve-se salvar o arquivo no mesmo diretório
que o arquivo em HTML, como mostra o exemplo na Figura 3.3 a seguir.
Figura 3.3: Exemplo de organização do diretório
Fonte: CEAD/Ifes ©(2010)
Fundamentos do Desenvolvimento Webe-Tec Brasil 56
Para aplicar os estilos em uma nova página HTML, basta inserir uma tag <link>
no cabeçalho que faça referência ao arquivo .CSS, conforme exemplo12 a seguir.
Note que o caminho para a folha de estilos é indicado no atributo href.
Veja que a Figura 3.4 e o exemplo 12 mostram um exemplo da tag style
método externo.
Exemplo 12:
Figura 3.4: Exemplo de inserção da tag style método externo
Fonte: CEAD/Ifes © (2010)
Figura 3.5: Exemplo de inserção da tag style método interno
Fonte: CEAD/Ifes © (2010)
Observe na Figura 3.6 o exemplo de um menu com aplicação da CSS.
No Anexo “Atalhos e atributos
do CSS” , você tem acesso a um
quadro com vários atributos CSS
e a descrição do que cada um
formata.
e-Tec BrasilAula 3 – Cascading Style Sheets (CSS) 57
Resultado:
Figura 3.6: Exemplo de menu com aplicação do CSS
Fonte: CEAD/Ifes © (2010)
3.3 Pseudoclasses e pseudoelementos
Podem ser usados como seletores no CSS, mas não existem dentro do HTML,
e sim no browser, sob certas condições, para serem usados como ligação
com as folhas de estilo.
São denominados “classes” e “elementos” por ser essa a maneira con-
veniente de descrever seu comportamento. E são usados para especificar
subpartes de elementos; enquanto pseudoclasses permitem às folhas de es-
tilo diferenciar entre tipos diferentes de elementos.
Síntese das pseudoclasses:
selector:pseudo-class {property: value}
Síntese dos pseudoelementos:
selector:pseudo-element {property: value}
O Quadro 3.1 a seguir foi extraído do livro - Use a cabeça! HTML com CSS e
XHTML (FREEMAN; FREEMAN, 2008), e mostra, por meio de uma conversa en-
tre o HTML e o CSS, as suas principais diferenças, qualidades e características.
Fundamentos do Desenvolvimento Webe-Tec Brasil 58
Quadro 3.1: HTML e CSS sobre conteúdo e estilo
HTML CSS
Saudações, CSS; estou feliz que você esteja aqui porque
quero esclarecer algumas confusões sobre nós.
É mesmo? Que tipo de confusão?
Muitas pessoas pensam que minhas tags dizem ao
browser como exibir o conteúdo. Isso não é verdade! Eu
trabalho com a estrutura e não com a apresentação
Ah! É. Eu não gostaria de ver as pessoas te dando crédito
pelo meu trabalho
Bem, você pode ver como as pessoas podem ficar confu-
sas; afinal é possível utilizar HTML, sem CSS e ainda obter
uma página com visual decente.
“Decente” soa um pouco exagerado, você não acha?
Quero dizer, a maneira como a maioria dos browsers exi-
be o HTML puro parece um pouco ordinária.As pessoas
precisam aprender o poder do CSS e como nós podemos
facilmente dar um ótimo estilo às páginas Web.
Ei, eu também sou muito poderoso.Ter seu conteúdo
estruturado é muito mais importante do que ter algo
bonitinho. O estilo é muito superficial; é a estrutura do
conteúdo que interessa.
Fala sério! Sem mim as páginas Web seriam muito
chatas. E não apenas isso, tire a capacidade de adicionar
estilo às suas páginas e ninguém as levará a sério.Tudo
parecerá malfeito e nada profissional.
Nossa, que ego, heim? Acho que eu não poderia esperar
outra coisa de você. Você está apenas tentando fazer
uma declaração da moda com todo o estilo sobre o qual
está falando.
Declaração da moda? Um bom design e uma boa
apresentação podem ter um efeito enorme na legibilidade
e usabilidade das páginas. E você deveria estar contente
porque minhas regras de estilo flexíveis permitem que
os designers façam qualquer tipo de coisas interessantes
com seus elementos sem bagunçar sua estrutura.
Certo. Na verdade, somos linguagens totalmente diferen-
tes, o que é bom, porque eu não gostaria de ter nenhum
dos seus designers de estilo bagunçando meus elementos
de estrutura.
Não se preocupe, vivemos em universos separados.
E isso é obvio para mim, todas às vezes que olho para
CSS, essa linguagem alienígena.
Tá! HTML pode ser considerada uma linguagem? Alguém
já viu algo mais desajeitado do que aquelas tags?
Milhões de escritores Web discordariam de você. Eu
tenho uma linguagem boa e limpa que se encaixa perfei-
tamente ao conteúdo.
Dê só uma olhada no CSS; são elegantes e simples, e não
sinais de menor e maior patéticos<em><to><torno><d
e><tudo>. <Olha><gente><,><eu><posso><falar><
como><o><Sr.><HTML><!>
Ei, que estupidez, já ouviu falar de tags de fechamento? Rá! Eu vou te mostrar...Sabe por quê? Eu posso escapar...
Veja bem, não importa aonde você for, está cercado por
tags <style>. Boa sorte! Ao tentar escapar delas.
Fonte: FREEMAN; FREEMAN, 2008, p. 28
e-Tec BrasilAula 3 – Cascading Style Sheets (CSS) 59
Resumo
No decorrer desta Aula você pôde descobrir que o CSS contém declarações
simples, chamadas regras. Cada regra fornece um estilo para uma seleção
de elementos HTML. Uma das maneiras mais fáceis de incluir estilo no HTML
é por meio da tag <style>. O CSS oferece muito controle sobre a aparência
de suas fontes, incluindo as propriedades “font-family”, “font-weight” e
“font-style”. A partir da próxima Aula, você conhecerá os tipos de imagens
e seus formatos e saberá onde aplicá-las.
Atividades de aprendizagem
Você se lembra do site que fez na Aula anterior? Agora, crie uma Folha de
Estilo (um arquivo CSS) pra esse site, e “linke” todas as páginas. Não se
esqueça de definir estilos para os cabeçalhos, os parágrafos, as tabelas, etc.
Use todas as propriedades que você viu até agora. O outro ponto que vai
ser avaliado aqui é a legibilidade; lembre-se do uso adequado das cores e
fontes. Ao término, lembre-se de salvar sua atividade.
Fundamentos do Desenvolvimento Webe-Tec Brasil 60
e-Tec Brasil
Aula 4 – Tipos de imagens
Objetivos
Conhecer os tipos de imagens e suas aplicações.
Conhecer o software CorelDRAW.
Conhecer as ferramentas básicas do CorelDRAW.
Existem dois tipos de imagens: bitmaps ou vetorial. O tipo do arquivo de
imagem é definido conforme o armazenamento desta, isto é, definido con-
forme a extensão em que será salva a imagem. Nesta Aula veremos os
formatos.GIF, JPG e.BMP.
4.1 Imagens bitmaps
As imagens obtidas por fotografia digital ou escaneadas são bitmap, ou seja,
mapeadas por bits. Quer dizer que a imagem está organizada em uma série
de linhas e colunas formadas por pontos conhecidos como pixels.
Os pontos são distribuídos em x pixels de altura, y pixels de largura e z pixels
de profundidade.
Y
Pixel
Z
X
Figura 4.1: Pixels de uma imagem bitmap
Fonte: CEAD/Ifes © (2010)
Pixek
É o menor elemento de uma
imagem.
e-Tec BrasilAula 4 – Tipos de imagens 61
Profundidade é a quantidade de cores por pixel, ou seja, é o número de cores
que uma imagem é capaz de reproduzir, sendo medidas em bits. Assim, uma
imagem de apenas 2 bits exibe apenas 2 cores (21) preto e branco. Quanto
maior a quantidade de bits de uma imagem por pixel, maior será a quantidade
de cores exibida pela imagem. Veja o Quadro 4.1 a seguir.
Quadro 4.1: Número de cores por bits de imagem
Profundidade da cor Número de cores Bits de imagem (expoente)
1 2 21
2 4 22
4 16 24
6 64 26
7 128 27
8 256 28
16 16 – bit (true– color), 65.536 cores 216
24 24 – bit (true – color), 16.777.216 cores 224
32
24 – bit (true – color), canal alfa, 16.777.216 de
cores
232
Fonte:Adaptada de Oliviero (2001)
A resolução da imagem é proporcional à quantidade de pixels contida em uma
polegada quadrada. Normalmente, a resolução é medida em dpi – dots per inch
(pontos por polegadas). Quanto maior a resolução da imagem, maior será o
tamanho deste arquivo.
Figura 4.2: Resolução da imagem
Fonte: CEAD/Ifes © (2010)
Fundamentos do Desenvolvimento Webe-Tec Brasil 62
As imagens criadas para serem inseridas em websites não precisam ter mais que
72 dpi, pois, além de ser uma resolução satisfatória para esse tipo de aplicação,
a maioria dos monitores que estão no mercado não suporta resoluções maiores.
Resoluções maiores que 72 dpi são necessárias apenas quando o objetivo é
imprimir a imagem; as impressoras laser ou jato de tinta disponíveis no mer-
cado suportam resoluções que variam de 150 a 1.200 dpi. Conforme pode
ser notado na Figura 4.2, as dimensões de uma imagem podem ser definidas
pela sua largura e altura em pixels.
4.2 Imagens vetoriais
Imagens vetoriais ou ilustrações vetoriais são construídas por intermédio de cál-
culos matemáticos, coordenadas cartesianas e denominadas vetores. As imagens
vetoriais podem ser redimensionadas em qualquer escala, sem perda de quali-
dade; independentemente de serem impressas ou de estarem sendo vistas em
monitores, elas também ocupam um espaço menor que as imagens bitmaps.
A imagem vetorial é composta por elementos sobrepostos e independentes
um do outro, o que permite a sua edição. Porém, as imagens não possuem
qualidade fotográfica.
Na web essas imagens são muito utilizadas na construção de elementos
gráficos e botões.
Figura 4.3: Exemplo de imagem vetorial
Fonte: http://office.microsoft.com/pt-br/clipart/download.aspx
Para utilizarmos imagens vetoriais na web, é necessário convertê-las para bit-
map, o que pode ser feito no mesmo software utilizado para criação da imagem.
e-Tec BrasilAula 4 – Tipos de imagens 63
4.3 Formatos de imagens
4.3.1 GIF – CompuServe® Graphics
Interchange Format
Formato muito utilizado no ambiente da internet. Tem como formato pa-
drão o uso de 256 cores que correspondem a 8 bits; além disso, suas combi-
nações simulam outras cores.
Tem a vantagem de não perder qualidade quando alterado o seu tamanho
original e ocupa pouco espaço no computador; por isso é considerado per-
feito para o desenvolvimento de páginas para internet.
O GIF pode ser utilizado para a criação de imagens animadas; porém, GIFS
animados são mais pesados e, por isso, levam mais tempo para serem carre-
gados pelo navegador.
Segundo Olivero (2001), o formato GIF usa técnica de compressão denomi-
nada LZW (Lempel-Ziv-Welsch), que comprime uma imagem sem perdas em
sua qualidade. Assim, um navegador, ao descomprimir uma imagem do tipo
GIF, vai exibi-la com a mesma aparência da imagem original.
Figura 4.4: Exemplo de imagem em formato .GIF
Fonte: Office Microsoft, 2011
Fundamentos do Desenvolvimento Webe-Tec Brasil 64
4.3.2 BMP – Bitmap
É uma imagem bitmap sem compressão da informação, o que a torna gran-
de para ser utilizada na web.
É um formato comum, o qual todos os programas gráficos conseguem abrir e ler.
4.3.3 JPG (ou JPEG) - Joint Photographic
Experts Group
O JPG é muito utilizado em trabalhos para o ambiente da internet; porém,
ao ter o seu tamanho alterado, perde qualidade.
Trabalha com 24 bits, o que corresponde a milhões de cores, o que o torna
um excelente formato para imagens fotográficas. Geralmente são arquivos
pequenos, sendo possível ter um formato menor que em formato GIF.
Esses são os principais tipos de imagens utilizados na web. No Quadro 4.2
é possível ver seus formatos e suas principais características, vantagens e
desvantagens.
Quadro 4.2: Características dos formatos de imagens
Formato da
imagem
Características Vantagens Desvantagens Observações
GIF
Graphics Inter-
change Format
Nº de cores: até 256
cores (8 bits).
Compressão: Sim.
Perda de informação:
Não.
Transparência: Sim.
Tem compressão,
sem perda de
informação. Indicado
para esquemas, grá-
ficos de barras, etc.
Só permite um arma-
zenamento máximo de
256 cores. Não indicado
para fotografias nem
imagens fotorrealistas
(muitas cores).
Com compressão
LZW.
BMP Bitmap
Nº máximo de cores:
até 16 milhões de
cores (24 bits).
Compressão: Não tem.
Perda de informação:
Não aplicável.
Transparência: Não.
Não tem perda de
informação.
Por não ter compres-
são, os ficheiros são
muito grandes. Caso
a imagem tenha 16
milhões de cores, cada
pixel ocupa sempre 24
bits (3 bytes).
Sem compressão.
Continua
e-Tec BrasilAula 4 – Tipos de imagens 65
JPG (ou JPEG)
Joint Photographic
Experts Group
Nº de cores: Sempre 16
milhões de cores (mes-
mo que a imagem tenha
menos cor) (24 bits).
Compressão: Sim.
Perda de informação:
Sim
Transparência: Não.
Armazena sempre
informação referen-
te a 16 milhões de
cores.Algoritmo de
compressão muito
eficaz. Indicado para
fotografias e ima-
gens fotorrealistas.
Como o algoritmo
de compressão, tem
perda de informa-
ção. Cada vez que
fazemos guardar o
ficheiro, volta a perder
informação. Não indi-
cado para esquemas e
gráficos de barras (por
exemplo) porque o
algoritmo não está oti-
mizado para transições
abruptas de cor.
Muito pequeno. Ide-
al para colocar em
páginas de internet
e enviar por e-mail.
Conclusão
Fonte:Adaptada de Oliviero (2001)
O Quadro 4.3 foi extraído do livro Use a cabeça! HTML com CSS e XHTML
(FREEMAN; FREEMAN, 2008), e mostra, por meio de uma conversa entre o
JPG e o GIF, suas principais diferenças e qualidades.
Quadro 4.3: JPG e GIF comparam suas imagens
JPG G IF
Olá, GIF. Não foi você que eu vi agora mesmo em
uma página web?
Ahã! Assim que você se tornar bom em representar
imagens complexas, como fotos, tenho certeza de
que as pessoas ficarão felizes em escolher você, mas
você ainda não sabe como representar nada que
precise de mais de insignificantes 256 cores.
Você quer falar comigo sobre qualidade? Eu deixo
meus usuários utilizarem exatamente a qualidade
que eles desejam.
Isso é verdade, mas a maior parte das pessoas está
mais do que satisfeitas com isso. Nem todo mundo
precisa de imagens de altíssima resolução em suas
páginas. Comigo, os usuários normalmente podem
escolher uma configuração de qualidade baixa ou
média se estiverem satisfeitos com a qualidade das
imagens. E, se utilizassem você, teriam arquivos
imensos para a mesma imagem.
Ah, claro, GIF funciona muito bem nesses casos, mas
apenas se houver um pequeno número de cores.Você
é apenas uma versão minha menos equipada. Eu
posso fazer tudo o que você faz.
O que? GIF? Estamos no meio de um programa aqui.
Aonde você foi?
É... Não seria ótimo se as pessoas ficassem somente com
o GIF? Então, eu não precisaria encontrar você com tanta
frequência. Ei, representar fotos é fácil, se você quer perder
qualidade. Mas eu sou todo qualidade. Se eu não puder
representar totalmente uma, não farei isso. Dê uma olhada
em alguns dos logos que você tentou representar ... Eca!
Tá, mas a que custo? Encare a verdade: para fazer com que
uma foto fique de um tamanho razoável para ser transmitida
pela web, você precisa perder um pouco de qualidade na
imagem.
Certo, certo, mas você já olhou para as linhas, logos, peque-
nos textos, cores sólidas? Eles não ficam tão bem em JPG.
(GIF literalmente desaparece).
(GIF reaparece).
Não precisa entrar em pânico. Estou apenas mostrando algo
a você. Se JPG é tão genial, como é que você não consegue
tornar partes de suas imagens transparentes como eu? Com
a transparência, o que está atrás da imagem pode ser visto.
Se meus usuários quiserem um logo em uma página web, e a
página tiver um fundo colorido, eles me utilizarão, pois sabem
que eu deixarei o fundo aparecer através de partes do logo
que não possuem cor.
Claro, e então alguém altera a cor da página web. Sem
chance.A transparência é o caminho e, para usá-lo, você
precisa de mim.
Continua
Fundamentos do Desenvolvimento Webe-Tec Brasil 66
Eu acho que você supervaloriza essa coisa de trans-
parência – digo, você precisa apenas colocar aquela
cor de fundo na imagem.
Bem, não estou muito preocupado com isso; não há
muitas fotos sem fundo.
E quando isso aconteceria?
Ah, tá. Fique com seus logos e imagens de texto
simples, e eu ficarei com as fotos e as imagens
complexas.Todo mundo sabe que eu sou melhor para
lidar com a complexidade.
Ah, é? E que tal se você quiser recortar a foto de alguém, ou
mesmo de uma árvore, e colocá-la em uma página web sem
um fundo?
Você ficaria surpreso com a quantidade de vezes em que
sou usado para representar fotos, só porque meus usuários
desejam um fundo transparente.
Ei, alguém está me pedindo para fazer uma transparência ...
Tenho que correr.
Conclusão
Fonte: FREEMAN; FREEMAN, 2008, p. 29
Quais os padrões de imagens mais utilizados na web e por quê?
4.4 CorelDRAW
É um programa de desenho vetorial bidimensional para design gráfico, de-
senvolvido pela Corel Corporation, Canadá. É um aplicativo de ilustração
vetorial e layout de página que possibilita a criação e a manipulação de
vários produtos, como: desenhos artísticos, publicitários, logotipos, capas de
revistas, livros, CDs, imagens de objetos para aplicação nas páginas de in-
ternet (botões, ícones, animações gráficas, etc.), confecção de cartazes, etc.
Segundo Oliviero (2001), o CorelDraw é um software que permite a criação
de gráficos vetoriais compactos para web, dentre outras funcionalidades,
podemos reduzir o tamanho final de um arquivo para dowloand mais rápido
de páginas da web, através do uso de filtros JPG, GIF e PNG.
Ao ser executado, o Corel apresenta a tela da Figura 4.5, que permite que
você escolha: abrir novo desenho, abrir os últimos arquivos editados, abrir
arquivo salvo em disco, abrir template, ou seja, modelo predefinido, abrir
tutorial e ver as atualizações dessa versão do software em relação à anterior.
Nesta tela escolheremos a opção novo, o que nos levará à tela principal do
CorelDRAW.
Saiba mais sobre o CorelDRAW
em: www.corel.com.
e-Tec BrasilAula 4 – Tipos de imagens 67
Figura 4.5: Tela de abertura do CorelDRAW X3
Fonte: CorelDRAW X3
As Figuras 4.6 e 4.7 mostram, respectivamente, a tela do ambiente de tra-
balhocom a página para criação de um novo arquivo, ou com arquivo já
criado. Como você pode notar, o ambiente de trabalho do CorelDRAW X3 é
composto por diversas janelas, cada uma com sua função específica.
Figura 4.6: Ambiente de trabalho do CorelDRAW X3
Fonte: CorelDRAW X3
Fundamentos do Desenvolvimento Webe-Tec Brasil 68
Figura 4.7: Tela do ambiente de trabalho com imagem já criada
Fonte: CEAD/Ifes ©(2010)
Figura 4.8: Janela de aplicativos do CorelDRAW X3
Fonte: CorelDRAW X3
e-Tec BrasilAula 4 – Tipos de imagens 69
Quadro 4.4: Descrição dos aplicativos do CorelDRAW
Parte Descrição
Caixa de ferramentas
Uma barra flutuante com ferramentas para criação, preenchimento e modificação de
objetos no desenho.
Barra de título A área que exibe o título do desenho aberto no momento.
Barra de menus A área que contém opções de menu pull-down.
Barra de ferramentas Uma barra de encaixe que contém atalhos para menus e outros comandos.
Janela de desenho
A área fora da página de desenho circundada por barras de rolagem e controle dos
aplicativos.
Barra de propriedades
Uma barra de encaixe com comandos relacionados à ferramenta ou ao objeto ativo. Por
exemplo, quando a ferramenta texto está ativa, a barra de propriedades de texto exibe
comandos que criam e editam texto.
Janela de encaixes
Uma janela que contém os comandos disponíveis e as configurações relevantes para uma
ferramenta ou tarefa específica.
Réguas
Bordas horizontais e verticais que são utilizadas para determinar o tamanho e a posição
dos objetos em um desenho.
Navegador de docu-
mentos
A área na parte inferior esquerda da janela do aplicativo, que contém controles para a
movimentação entre as páginas e a adição de páginas.
Página de desenho
A área retangular dentro da janela de desenho.Trata-se da parte da área de trabalho que
pode ser impressa.
Barra de status
Uma área na parte inferior da janela do aplicativo que contém informações sobre proprie-
dades do objeto, como tipo, tamanho, cor, preenchimento e resolução.A barra de status
também mostra a posição atual do mouse.
Navegador
Um botão no canto inferior direito que abre uma pequena exibição para ajudá-lo a se
mover em um desenho.
Paleta de cores Uma barra de encaixe que contém amostras de cores.
Fonte:Adaptado do Guia do usuário da suíte de aplicativos gráficos – CorelDRAW
4.4.1 Caixa de ferramentas
Do lado esquerdo da tela é possível ver a caixa de ferramentas. Lá você encontra
as ferramentas necessárias para a edição e vetorização de imagens. É importan-
te conhecermos uma a uma, pois este é o conjunto de ferremantas mais impor-
tante do Corel. Com elas podemos modificar, criar e preeencher desenhos.
4.4.2 Menus desdobráveis
Você pode notar que algumas ferramentas têm uma pequena seta em sua parte
inferior; ao clicarmos ali, é possível vermos o menu desdobrável, ferramentas
que possuem funções relacionadas ou interligadas à ferramenta que está visível.
Fundamentos do Desenvolvimento Webe-Tec Brasil 70
Como exemplo, podemos citar a ferramenta editar forma; quando aces-
samos o menu, encontramos as ferramentas: forma, pincel borrar, pincel
áspero e transformação.
No Quadro 4.5 veremos cada ferramenta e suas respectivas funções.
Quadro 4.5: Descrição das ferramentas do CorelDRAW
Ferramenta Função
Seleção Ferramenta usada para selecionar, dimensionar, inclinar e girar os objetos no programa.
Editar forma
Forma: editar a forma dos objetos.
Pincel borrar: distorcer um objeto em vetor sendo arrastado sobre ele.
Pincel áspero: distorcer o contorno quando arrastado sobre o objeto.
Transformação: transformar os objetos usando recursos na barra de propriedades rotação
livre, reflexão angular livre, escala livre e inclinação livre.
Cortar
Cortar: permite mover áreas indesejadas dos objetos.
Faca: permite cortar objetos.
Borracha: permite apagar áreas do desenho.
Excluir segmento virtual: permite excluir as partes de objetos entre inserções.
Zoom
Zoom: altera nível de ampliação na janela de desenho.
Mão: controla que parte do desenho fica visível na janela do desenho.
Curva
Mão livre: permite desenhar segmentos de linhas únicos e curvas.
Bézier: permite desenhar curvas, um segmento de cada vez.
Mídia artística: fornece acesso às ferramentas pincel, espalhador, caligráfico e pressão.
Caneta: permite desenhar linhas curvas no modo de visualização.
Curva de 3 pontos: permite desenhar curvas e definir os pontos iniciais, final e central.
Conexão: une dois objetos por uma linha.
Dimensão: desenha linhas de dimensões verticais, horizontais, inclinadas ou em ângulo.
Ferramentas inteligentes
Preenchimento inteligente: permite criar objetos, a partir de áreas contornadas para,
então, aplicar um preenchimento.
Desenho inteligente: converte pinceladas à mão livre, em formas básicas e curvas suaves.
Retângulo
Retângulo: permite criar quadrados e retângulos;
Retângulo com 3 pontos: permite desenhar retângulos em ângulo.
Elipse
Elipse: permite desenhar elipses e círculos.
Elipse com 3 pontos: permite deenhar elipses em ângulo.
Objeto
Polígono: permite criar estrelas e polígonos simétricos.
Estrela: permite criar estrelas perfeitas.
Estrela complexa: estrelas complexas que apresentam lados com inserção.
Papel gráfico: simula um papel quadriculado.
Espiral: permite desenhar espirais simétricas e logarítmicas.
Formas perfeitas
Formas básicas: traz várias formas básicas que podem ser usadas em nossos trabalhos.
Formas de seta: setas de diversas formas, direção e número de pontas.
Formas de fluxograma: permite desenhar símbolos de fluxograma.
Formas de banner: modelos de objetos de fita e formas de explosões.
Formas de legenda: permite desenhar legendas e etiquetas.
Texto: Permite a digitação de palavras como texto artístico ou de parágrafo.
Tabela Permite desenhar e editar tabelas.
Continua
e-Tec BrasilAula 4 – Tipos de imagens 71
Ferramentas interativas
Mistura: mistura dois objetos.
Contorno: aplica contorno a um objeto.
Distorcer: distorção do tipo empurrar e puxar, zíper e torcer (na barra de propriedades).
Sombreamento: aplica sombras aos objetos.
Envelope: dá forma a um objeto arrastando os nós do envelope.
Extrusão: aplica a ilusão de profundidade a objetos.
Transparência: aplica transparências aos objetos.
Conta-gotas
Conta-gotas: copia as propriedades do objeto.
Balde de tinta: permite aplicar as propriedades copiadas com o conta-gotas aos objetos.
Contorno Abre menu desdobrável para acesso rápido às configurações de contorno.
Preenchimento Menu desdobrável para acesso às caixas de diálogo Preenchimento.
Preenchimento interativo
Preenchimento interativo: permite aplicar vários preenchimentos.
Preenchimento de malha: Permite aplicar uma grade de malha a um objeto.
Conclusão
Fonte:Adaptado do Guia do usuário da suíte de aplicativos gráficos – CorelDRAW
Resumo
No decorrer deste capítulo você pôde descobrir que:
Um pixel é o menor ponto que pode ser representado na tela. Cada imagem
é composta por milhares de pixels. Dependendo de seu monitor, pode haver
algo em torno de 72 a 120 pixels em uma polegada.
JPG e GIF são os dois formatos para imagens, amplamente, suportados por
browsers web. O formato JPG é o melhor para fotografia e o formato GIF é o
melhor para logos e outras figuras simples com cores sólidas, linhas ou texto.
Você conheceu o CorelDRAW, um programa de desenho vetorial bidimen-
sional, utilizado para fazer ilustração vetorial e layout de página, que possi-
bilita a criação e a manipulação de vários produtos. Na próxima aula, você
conhecerá o Photoshop, software caracterizado como editor de imagens
bidimensionais do tipo raster.
Atividades de aprendizagem
1.	 Faça a vetorização de uma imagem simples, um boneco de neve, por
exemplo. Nesta primeira atividade, você terá o passo a passo para facili-
tar sua familiarização com as ferramentas. As imagens e o passo a passo
para o desenvolvimento dessa atividade encontram-se no Apêndice 1.
2.	 Depois de concluída a atividade do boneco de neve, vamos construir um
botão. Este é um objeto muito utilizado em páginas da internet. Você
encontrará a imagem e o passo a passo no Apêndice 2.
Fundamentos do Desenvolvimento Webe-Tec Brasil 72
e-Tec Brasil
Aula 5 – Software de edição
de imagem (GIMP)
Objetivos
Conhecer o software GIMP.
Aprender a utilizar as principais ferramentas do GIMP.
No decorrer desta aula utilizaremos um programa de código aberto, o GIMP
(GNU Image Manipulation Program). Você poderá fazer o download gratui-
tamente do GIMP, no site http://www.gimp.org/. Ou, se preferir, poderá
fazer o download no formato portátil, caso não queria instalar o programa
no computador que utiliza para estudar.
Figura 5.1: Wilber, mascote oficial do GIMP
Fonte: GIMP v.2.6.11, 2011
O GIMP é um software para criação e edição de imagens de bitmap e também
suporta formatos vetoriais. Na primeira vez que o GIMP for aberto, você será
levado ao ambiente de trabalho padrão. Esse ambiente poderá ser customizado.
e-Tec BrasilAula 5 – Software de edição de imagem (GIMP) 73
Figura 5.2: Área de trabalho do GIMP
Fonte: GIMP v.2.6.11, 2011
Conforme pode ser visto na Figura 5.3, ao iniciar o GIMP você verá uma cai-
xa de ferramentas, camadas e os menus de acesso a operações como salvar
arquivo, editar, exibir janelas, etc.
5.1 Abas e janelas
O GIMP já vem com o recurso de abas ativo. Assim como as abas, as janelas
funcionam como caixas de diálogo que nos permitem selecionar opções e
fazer uso dos seus recursos.
5.2 Caixa de ferramentas
Na caixa de ferramentas estão disponíveis as ferramentas necessárias para
trabalhar com o GIMP. Observe que em todas as ferramentas, o diálogo
“opções de ferramentas” exibe as opções da ferramenta selecionada, que
permite customizá-la.
Fundamentos do Desenvolvimento Webe-Tec Brasil 74
Figura 5.3: Caixa de ferramentas do GIMP
Fonte: GIMP v.2.6.11, 2011
e-Tec BrasilAula 5 – Software de edição de imagem (GIMP) 75
5.2.1 Ferramentas de seleção
As ferramentas a seguir são destinadas à seleção, não fazem qualquer alte-
ração na imagem:
Figura 5.4: Ferramentas de seleção
Fonte: GIMP v.2.6.11, 2011
Quadro 5.1: Descrição das ferramentas de seleção do GIMP
Ferramenta Função
Seleção retangular
Para utilizar a ferramenta seleção retangular, basta selecioná-la na caixa de
ferramentas, em seguida clicar na janela da imagem arrastando o mouse (com
o botão pressionado), criando uma seleção, que é indicada por um contorno
tracejado intermitente.
Na caixa de diálogo “opções de ferramentas” temos as opções de “modo”
que indicam como a seleção que está sendo criada poderá ser combinada com
alguma outra.As opções para esse modo são:
Substituir a seleção atual: o retângulo criado na imagem se torna uma
nova seleção, e a seleção que existia anteriormente é descartada.
Adicionar à seleção: um novo retângulo passa a fazer parte da seleção já
existente, adicionando-se a ela.
Subtrair da seleção: faz com que o retângulo desenhado seja excluído da
seleção. Só tem efeito se já existir uma seleção,
Intersecção com a seleção atual: faz com que apenas as áreas previa-
mente selecionadas que estavam dentro do retângulo desenhado permaneçam
selecionadas, mas só tem efeito se já existir uma seleção anterior.
Seleção elíptica
Esta ferramenta de seleção usa as mesmas opções que a ferramenta de seleção
retangular, só que desenha uma elipse.
Seleção livre
Essa ferramenta permite uma seleção mais refinada, traçando-se diretamente
com o mouse os contornos da seleção.
Seleção contígua
A seleção contígua, também é chamada de ‘varinha mágica’. Com ela é possí-
vel selecionar todas as cores similares à cor da região em que foi clicada.
Ainda podemos usar a opção de menu “Seleção->Inverter” para ter os objetos,
em vez do fundo, selecionados.
A opção mais importante para esta ferramenta é o “limite” – ela indica o
quanto as cores similares têm que ser próximas da cor original.
Continua
Fundamentos do Desenvolvimento Webe-Tec Brasil 76
Seleção de cor
Funciona de forma bem similar à seleção de regiões contíguas, selecionando
simultaneamente cores similares em toda a imagem.
Tesoura
Esta ferramenta também serve para seleções em torno de objetos; nesse caso,
a ferramenta tesoura tenta adivinhar o contorno do objeto que se quer recortar.
Mantém as mesmas opções que a ferramenta de seleção retangular.
Vetores
Também utilizada como ferramenta de seleção, clicando nos pontos de controle
desejados – o GIMP unirá esses pontos de controle com segmentos de reta.
Podemos ainda clicar em cada segmento e arrastá-los em forma de curva para
ter o contorno desejado.
Nessa ferramenta temos os seguintes modos de edição:
Criação: modo padrão.
Editar: quando se clica no ponto inicial de um componente do vetor, aquele
componente é fechado, podendo ser convertido para uma seleção, ou simples-
mente iniciar outro componente do vetor.
Mover: move o vetor selecionado, mantendo-se todo o restante da imagem.
Seleção de cores
Seleciona a cor da região escolhida, exibindo seus valores e colocando-a como
cor ativa do GIMP.
Zoom
Permite a visualização na tela em escala diferente. Um arquivo aberto não faz
qualquer alteração na imagem.
Medidas
Informa a distância entre dois pontos na imagem, e o ângulo formado entre
a linha que une esses dois pontos e a horizontal. Esta ferramenta não faz
nenhuma alteração na imagem.
Mover
Esta ferramenta permite que uma parte da imagem, ou uma camada, seja ar-
rastada com o mouse para qualquer outro ponto do espaço da imagem.Ao ser
usado sobre uma seleção ativa, deve-se clicar e arrastar o mouse. O conteúdo
da seleção é movido para outra parte da imagem.
Alinhamento
Com esta ferramenta você pode alinhar ou arranjar camadas e outros objetos.
Nas opções da ferramenta, você pode optar por alinhar: primeiro item, imagem,
seleção, camada ativa, vetor ativo ou canal ativo, e os alinhamentos podem ser:
à esquerda, à direita ou centralizado, além de distribuir em cima, embaixo ou
no meio do objeto.
Corte
Sua utilização é bem simples: basta traçar-se um retângulo na imagem e em
seguida apertar a tecla Enter para confirmar a ação.
Nas suas opções podemos optar por cortar somente na camada atual, ou seja,
o corte será efetuado somente na camada ativa, e não na imagem toda.
Poderemos também utilizar a ferramenta para permitir o aumento, fazendo com
que a ferramenta de “cortar” também possa adicionar espaço para que sejam inse-
ridas mais informações na imagem, além dos limites da imagem ou camada atuais.
Conclusão
Fonte:Adaptado de Calligaris, 2005
e-Tec BrasilAula 5 – Software de edição de imagem (GIMP) 77
5.2.2 Ferramentas de transformação
As ferramentas a seguir partilham opções em comum e de fato causam al-
terações na imagem.
Figura 5.5: Ferramentas de transformação
Quadro 5.2: Descrição das ferramentas de transformação do GIMP
Ferramenta Função
Rotacionar
Permite rotacionar livremente, ao redor de um centro arbitrário, uma camada ou seleção.Ao
clicar na imagem, automaticamente a camada que tem o primeiro pixel visível na região clicada
é selecionada para rotação. Uma caixa de dialogo é aberta em seguida e pode-se digitar a
angulação em que se deseja rotacionar a imagem.
Redimensionar
Permite que se redimensionem partes ou detalhes de uma imagem. Uma caixa de diálogo é
aberta em seguida e pode-se digitar as medidas em que se deseja redimensionara imagem.
Inclinar
Essa ferramenta permite distorcer um objeto para obtenção de um efeito. Uma caixa de diálogo
é aberta em seguida e pode-se digitar as medidas em que se deseja inclinar a imagem.
Perspectiva
Permite que se posicione, de forma independente, os quatro pontos dos cantos do retângulo a
ser transformado, de forma que a imagem final se ajuste nesses quatro pontos Esta ferramenta
pode também ser utilizada para rotação, espelhamento, redimensionamento, inclinação – bas-
tando-se posicionar os quatro cantos do objeto a ser transformado de acordo com o desejado.
Espelhar Esta ferramenta espelha na horizontal ou na vertical os conteúdos da seleção.
Texto
Esta ferramenta cria ou edita camadas de texto. Para usá-la, basta clicar-se na imagem; em
seguida, abrir-se-á uma caixa de diálogo, onde se poderá digitar o texto desejado. No menu de
opções é possível escolher a fonte desejada, tamanho e cor da fonte.
Fonte:Adaptado de Calligaris, 2005
5.2.3 Ferramentas de pintura
A seguir apresentam-se as ferramentas de pintura.
Figura 5.6: Ferramentas de pintura
Fundamentos do Desenvolvimento Webe-Tec Brasil 78
Quadro 5.3: Descrição das ferramentas de pintura do GIMP
Ferramenta Função
Preenchimento
O uso desta ferramenta permite que uma área da imagem seja preenchida com
uma cor sólida ou com uma textura. Basta clicar no ponto da imagem em que se
deseja iniciar o preenchimento, e este acontecerá, na camada ativa, e selecionar
nas opções da ferramenta o tipo do preenchimento: cor de frente, cor de fundo
ou textura.Ainda selecionar em quais áreas será aplicado o preenchimento.
Mistura
Ou preenchimento com degradê. Para usar a ferramenta, basta clicar na imagem,
segurar o botão do mouse pressionado, e arrastar o cursor até um ponto mais
ou menos distante. O degradê recobrirá a imagem de forma que a primeira cor
seja atribuída ao ponto de origem, e esta cor vá variando até que a última cor do
degradê coincida com o ponto onde o botão foi liberado.A forma e variação das
cores do degradê vai depender das opções selecionadas para a ferramenta.
Fonte:Adaptado de Calligaris, 2005
5.2.4 Ferramentas de desenho
Figura 5.7: Ferramentas de desenho
Fonte:Adaptado de Calligaris (2005)
5.3 Para abrir uma nova imagem
Para abrir uma nova imagem basta clicar em Arquivo > Novo.
Figura 5.9: Abrir uma nova imagem
Fonte: GIMP v.2.6.11, 2011
e-Tec BrasilAula 5 – Software de edição de imagem (GIMP) 79
Observe que será aberta uma caixa de diálogo “Criar uma nova imagem”.
Você poderá alterar aspectos básicos, como tamanho, formato de paisagem
ou retrato, entre outros.
Figura 5.10: Criar uma nova imagem
Fonte: GIMP v.2.6.11, 2011
No menu de opções avançadas podemos alterar a resolução, sistema de co-
res e inserir comentários que poderão ser lidos como uma assinatura digital.
Figura 5.11: Menu Opções Avançadas
Fonte: GIMP v.2.6.11, 2011
Fundamentos do Desenvolvimento Webe-Tec Brasil 80
Porém se quiser abrir uma imagem já existente então:
1.	 Clique em “Arquivo” navegue até a opção “Abrir” e clique nela.
2.	 Aparecerá um menu no qual você deverá navegar pelos diretórios até en-
contrar a imagem desejada. Quando a encontrar, basta clicar em “OK”.
5.4 Recortando uma imagem
Para recortar partes da imagem, é necessário realize os seguintes passos:
1.	 Localize na caixa de ferramentas a ferramenta corte.
Figura 5.12: Ferramenta Corte
Fonte: GIMP v.2.6.11, 2011
2.	 Agora, clique e arraste sobre a área que será mantida.
Figura 5.13: Caixa de ferramentas do GIMP – Área de corte
Fonte: GIMP v.2.6.11, 2011
e-Tec BrasilAula 5 – Software de edição de imagem (GIMP) 81
3.	 Utilize as alças laterais para ajustar o tamanho e formato do corte. Para
desfazer a seleção da área, pressione a tecla Esc.
Figura 5.14: Caixa de ferramentas do GIMP
Fonte: GIMP v.2.6.11, 2011
4.	 Pressione a tecla Enter para recortar.
Figura 5.15: Imagem recortada
Fonte: GIMP v.2.6.11, 2011
Fundamentos do Desenvolvimento Webe-Tec Brasil 82
5.5 Removendo o fundo da imagem
A ferramenta ideal para esse trabalho é a Seleção Contígua. Com ela você
pode selecionar pixels com tom ou cores semelhantes. Veja como remover
as cores de fundo de uma imagem.
1.	 Na caixa de ferramenta, selecione a ferramenta Seleção Contígua.
Figura 5.16: Ferramenta Contígua
Fonte: GIMP v.2.6.11, 2011
2.	 Clique na área desejada. Serão selecionados os pixels com cor e tons
semelhantes.
Figura 5.17: Fundo selecionado
Fonte: GIMP v.2.6.11, 2011
e-Tec BrasilAula 5 – Software de edição de imagem (GIMP) 83
3.	 Determine o grau de tolerância no campo “Limite” da paleta opções.
Figura 5.18: Diferença de cor
Fonte: GIMP v.2.6.11, 2011
4.	 Para selecionar várias áreas da imagem, mantenha a tecla Shift pressio-
nada enquanto clica sobre as áreas.
5.	 Pressione a tecla Delete para retirar o fundo da imagem.
Figura 5.19: Imagem com fundo retirado
Fonte: GIMP v.2.6.11, 2011
Fundamentos do Desenvolvimento Webe-Tec Brasil 84
Agora é sua vez de tentar. Que tal escolher uma imagem do seu arquivo e
seguir os passos descritos para praticar a remoção de fundo de imagens? E
que tal inserir um texto nessa imagem? Vamos lá, boa sorte!
5.6 Captura de tela
Você também capturar uma imagem da sua área de trabalho ou de uma
janela específica:
1.	 Com menu aberto, clique em “Arquivos” até a opção “Capturar”.
Figura 5.20: Captura de janela
Fonte: GIMP v.2.6.11, 2011
2.	 Depois clique em “Capturar tela”, e em seguida escolha uma das opções:
Capturar em uma única janela ou Capturar tela inteira, conforme a
Figura 5.21ª seguir.
Figura 5.21: Captura de tela inteira
Fonte: GIMP v.2.6.11, 2011
e-Tec BrasilAula 5 – Software de edição de imagem (GIMP) 85
3.	 Clique em capturar
Figura 5.22: Tela capturada
Fonte: GIMP v.2.6.11, 2011
5.7 Camadas
As camadas também são conhecidas como layers. Com elas podemos dividir
um trabalho, dando tratamento diferente em cada layer.
5.7.1 Efeitos de camadas
Para trabalhar com as camadas, devemos abrir um arquivo e realizar os
seguintes passos:
1.	 Clique em Arquivo e em seguida em Abrir. Essa camada passará a ser a
camada oficial.
2.	 Em seguida abra uma nova imagem, clique em Abrir como camadas.
Figura 5.23: Abrir como camadas
Fonte: GIMP v.2.6.11, 2011
Fundamentos do Desenvolvimento Webe-Tec Brasil 86
3.	 Ative a caixa de diálogo, clicando em Janelas, em seguida em diálogos de
encaixes e depois em camadas.
Figura 5.24: Diálogos de encaixes
Fonte: GIMP v.2.6.11, 2011
4.	 A caixa de diálogo Camada se abrirá e você poderá explorar as suas
muitas possibilidades.
Figura 5.25: Camadas sobrepor
Fonte: GIMP v.2.6.11, 2011
Resumo
Nesta aula você conheceu o GIMP, que é um software de código aberto, ou
seja, livre e de download gratuito. O GIMP é software que tem diversas ferra-
mentas que permitem criar e editar imagens bitmaps e também suporta ve-
tores. Com esse software você viu que é possível também recortar uma ima-
gem, remover o fundo de uma figura, trabalhar com camadas, dentre outras
funcionalidades. Na próxima aula, você conhecerá o Adobe Flash CS3, um
software utilizado para produção de animações, entre outras possibilidades,
que você poderá praticar durante o andamento da disciplina.
e-Tec BrasilAula 5 – Software de edição de imagem (GIMP) 87
Atividades de aprendizagem
Agora que já conhecemos o GIMP, que tal exercitar um pouco mais os recur-
sos desse software tão interessante?
Primeiramente, vamos escrever e configurar um texto, seguindo os passos
descritos abaixo:
1.	 Abra uma imagem ou documento já existente.
2.	 Em seguida, para editar uma palavra ou um texto, primeiro abra uma
nova camada.
3.	 Depois clique na ferramenta de texto, observe que uma janela abre e
você define o que irá digitar.
4.	 Em seguida, digite um texto à sua escolha, aumente o tamanho do texto,
altere a fonte e a cor. Essas opções estão disponíveis no menu quando a
ferramenta texto estiver ativa.
5.	 Clique com o botão direito sobre a camada do texto e duplique: teremos duas
camadas com o texto nome. Na nova camada criada, dê uma cor diferente.
6.	 Agora sobreponha a imagem criada (texto) dando a impressão de serem duas.
7.	 No campo “Nome do arquivo”, digite um nome para o arquivo.
8.	 Clique no botão Salvar.
Fundamentos do Desenvolvimento Webe-Tec Brasil 88
e-Tec Brasil
Aula 6 – Software de animação de
imagens Macromedia
Adobe Flash
Objetivos
Conhecer o software Macromedia Adobe Flash.
Aprender a utilizar suas ferramentas de animação.
Ao executarmos o Flash, veremos uma imagem, como mostra a Figura 6.1
a seguir.
1 2 3
4
Figura 6.1: Janela de Abertura do Adobe Flash
Fonte:Adobe Flash CS3, 2011
Essa é a janela de abertura do Flash CS3, na qual você pode observar os
seguintes itens:
•	 Open a Recent Item: permite abrir documentos recentemente usados.
•	 Create New: abre uma página para criação de um novo documento.
•	 Create from Template: abre uma página para criação de um documento
baseado em um modelo pronto (banners, aplicativos para celulares, etc.).
•	 Extend: abre página de acesso ao site de extensões do Adobe Flash CS3.
Flash
Segundo Alves (2009), o Flash é
uma excelente ferramenta para
desenvolvimento de animações
HTML.Além de animações, ele
também permite a criação de
gráficos estáticos, interfaces
com o usurário, formulários
de entrada ou mesmo páginas
inteiras. Há programadores que o
utilizam até no desenvolvimento
de jogos. Portanto, podemos
concluir que esse fantástico
aplicativo possui enorme
versatilidade.
e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 89
Escolheremos a opção nova, que mostrará o “palco”, conforme pode ser
visto na Figura 6.2 a seguir.
Figura 6.2 Palco do Flash CS3
Fonte:Adobe Flash CS3, 2011
6.1 Caixa de ferramentas e
painéis auxiliares
Do lado esquerdo da tela, é possível ver a caixa de ferramentas. Lá você encon-
tra as ferramentas necessárias para a edição e criação de animações. É impor-
tante conhecermos uma a uma, pois esse é o conjunto de ferremantas mais im-
portantes do Flash. Com elas podemos modificar, criar e preeencher desenhos.
Fundamentos do Desenvolvimento Webe-Tec Brasil 90
1 2
4
6
8
10
12
14
16
d
e
15
17
18
19 / 20 / 21
a
b
c
3
5
7
9
11
13
}Controles modificadores
Figura 6.3: Caixa de ferramentas do Flash CS3
Fonte:Adobe Flash CS3, 2011
e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 91
Quadro 6.1: Descrição das ferramentas do Macromedia Adobe Flash CS3
Ferramenta Função
Seleção
Tem a função de selecionar e arrastar
elementos de desenho e texto.
Podemos
selecionar uma parte ou o contorno
de uma forma.Também é possível
alterarmos a forma do objeto com a
sua ajuda.
Subselecionar
Usada para ajustar os pontos de uma
curva, alterar segmentos de reta de
uma figura, etc. Com esta ferramenta
é possível termos um controle maior
sobre o contorno do objeto.
Linha Desenha linhas retas.
Laço
Permite selecionar figuras irregulares,
bastando utilizá-la para contornar a
figura.
Caneta
Desenha figuras, a partir de segmentos
de retas ou curvas entre dois vértices.
Texto
Permite a criação de textos a serem
exibidos na apresentação.
Oval Permite o desenho de círculos e elipses.
Retângulo
Permite desenhar quadrados ou
retângulos.
Lápis
Permite o traçado de linhas, define a
trajetória dos objetos de uma anima-
ção, divide áreas pintadas, etc.
Pincel
Permite o desenho de pontos amplos
na tela.
Nanquim ou tinteiro
Permite modificar as linhas de contorno
de uma figura, aplicando cor, espessura
e estilos.
Balde de tinta
Permite pintar o interior de objetos
fechados.
Conta-gotas ou sombreador
Permite capturar as informações de
cores e estilos de um determinado
objeto, para que possam ser aplicados
em outro objeto.
Borracha ou apagador
Apaga os desenhos que se encontram
no “palco” do Flash, podendo assumir
diversos formatos e funções.
Mão
Permite deslocar toda a área de dese-
nho até um ponto desejado.
Zoom
Permite ampliar ou reduzir os desenhos
que se encontram no “palco”.
Continua
Fundamentos do Desenvolvimento Webe-Tec Brasil 92
Traço
Permite escolher a cor do contorno de
uma figura.
Preenchimento
Permite escolher a cor do preenchimen-
to de uma figura.
Padrão
Altera a cor de preenchimento para
branco e o contorno para preto, de um
ou mais objetos selecionados.
Sem cor
Desliga o preenchimento ou o contorno
de uma figura.
Trocar cores
Inverte as cores de preenchimento e de
contorno de uma figura selecionada.
Controles modificadores
A - Encaixar: liga/desliga o ajuste de
objetos na grade e a conexão de linhas.
B - Suavizar: suaviza linhas sele-
cionadas, deixando-as com cantos
arredondados.
C - Acertar: corrige imperfeições em
linhas selecionadas, deixando-as mais
retas.
Conclusão
Fonte:Adaptado de Alves (2009)
6.2 Biblioteca de objetos (Library)
O painel denominado Biblioteca é o local que contém todos os objetos gráfi-
cos, sejam geométricos, sejam textos, vídeos ou sons definidos na animação.
O objeto selecionado na parte inferior da biblioteca é apresentado na sua
parte superior, como pode ser visto na Figura 6.4 a seguir.
Figura 6.4: Biblioteca do Flash
Fonte: CEAD/Ifes © (2010)
e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 93
Você pode adicionar novos itens simplesmente clicando no elemento no
Painel Library e arrastando-o em seguida para o palco. Uma vez no palco,
esses elementos podem ser instanciados (ganhar um nome exclusivo que os
identifique). Por exemplo: arrastar diversos círculos para o palco e atribuir-
lhes nomes distintos que os identifique, como “círculo1”, círculo2, etc.
Renomear as cópias com nomes exclusivos (círculo1, círculo12, círculo13,...,
círculo1n) nos possibilita alterar determinadas propriedades sem afetar o
símbolo original.
Agora que você já conhece o ambiente de trabalho do Flash, o próximo
passo é aprender a criar objetos gráficos. Veremos como construir formas
geométricas, linhas, retângulos e círculos.
6.3 Objetos geométricos
Para criar formas básicas use as ferramentas oval e retângulo, que permitem
a criação de círculos e quadrados, preenchimentos e ajustes na linha de tra-
ços. A primeira ferramenta que utilizaremos é a Linha. Para ativá-la, clique
na ferramenta Linha. É possível definir a espessura e a cor da linha, na caixa
de propriedades que aparece na parte inferior da tela.
Figura 6.5: Exemplo de linha desenhada no Flash
Fonte: CEAD/Ifes © (2010)
Assim como o CorelDRAW, o Flash também possui menus desdobráveis, e
um desses menus é o que possui formas básicas como círculos, retângulos,
estrelas, etc.
Fundamentos do Desenvolvimento Webe-Tec Brasil 94
É possível alterar cor, espessura de linha e outras propriedades, na caixa de
propriedades, como mostra a Figura 6.6 a seguir.
Figura 6.6: Caixa de propriedades do retângulo
Fonte:Adobe Flash CS3, 2011
Para fixar o conteúdo visto até aqui, faça as seguintes atividades:
1.	 Crie um retângulo e faça as seguintes alterações em suas propriedades:
a)	 Para a ferramenta Retângulo, na seção opções da Caixa de Ferramentas,
clique no botão Raio do Retângulo Arredondado, para definir um núme-
ro para arredondar os cantos do retângulo.
b)	 Mude a cor da linha e a cor de preenchimento do retângulo.
2.	 Faça o mesmo com a ferramenta Oval.
Aproveite esta atividade simples para conhecer as ferramentas citadas no
Quadro 6.1.
Além de objetos geométricos, é possível inserir textos em ilustrações e ani-
mações feitas no Flash.
6.4 Transformação de textos
Para criar textos no Flash, clique na ferramenta Texto, na caixa de ferramen-
tas, e siga este procedimento:
•	 Clique no local em que o texto deve iniciar e comece a digitar.
•	 Clique e arraste para definir a largura do bloco de texto; assim criará um
bloco de texto de largura fixa.
Ao clicar na alça do texto e arrastá-lo, você poderá redimensioná-lo. Também
é possível fazer alterações na formatação do texto. Quando você seleciona
a ferramenta texto, o painel de propriedades mostra opções, como se pode
observar a seguir.
e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 95
Na caixa de propriedades, você poderá alterar tipo e tamanho da fonte e
também alterar os estilos negrito, itálico e regular. Há também as seguintes
opções:
•	 Texto Estático: utilize esse tipo de caixa de texto para inserir textos está-
ticos no palco.
Figura 6.7 Caixa de propriedades do Texto Estático
Fonte:Adobe Flash CS3, 2011
•	 Texto Dinâmico: utilizado para textos dinâmicos, que podem ser alterados
por código ActionScript.
Figura 6.8: Caixa de propriedades do Texto Dinâmico
Fonte:Adobe Flash CS3, 2011
•	 Campos de Texto: tipo que permite a entrada de texto por parte do usu-
ário, inclusive campos de senha.
Figura 6.9: Caixa de propriedades dos Campos de Texto
Fonte:Adobe Flash CS3, 2011
Você também poderá transformar blocos de texto da mesma maneira que
transforma outros objetos. Pode dimensionar, girar, inclinar e inverter blocos
de texto para criar efeitos interessantes. Quando você dimensiona um bloco
de texto como objeto, os aumentos ou reduções do tamanho do ponto não
são refletidos no Inspetor de Propriedades. O texto contido em um bloco de
texto transformado ainda pode ser editado. É ainda possível desmembrar
texto para colocar cada caractere em um bloco de texto separado. Para isso,
siga os seguintes passos:
•	 Selecione a ferramenta Seleção e clique em um bloco de texto.
Adobe Actionscript
É uma linguagem de
programação da plataforma
Adobe Flash. Originalmente
desenvolvida como um meio
para os desenvolvedores
programarem dinamicamente,
melhorando a eficiência do
desenvolvimento de aplicacões
na plataforma Flash, desde uma
imagem simples à uma complexa
animação
Fundamentos do Desenvolvimento Webe-Tec Brasil 96
•	 Selecione Modificar e depois Desmembrar. Cada caractere no texto sele-
cionado é colocado em um bloco de texto separado.
Figura 6.10: Caixa de propriedades dos Campos de Texto em bloco
Fonte:Adobe Flash CS3, 2011
O texto permanece na mesma posição no palco.
Figura 6.11: Caixa de propriedades dos Campos de Texto - modificar e desmembrar
Fonte:Adobe Flash CS3, 2011
e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 97
•	 Selecione novamente Modificar, Desmembrar, para converter os caracte-
res em formas no Palco.
6.4.1 Para desmembrar texto
•	 Selecione a ferramenta Seleção e clique em um bloco de texto.
•	 Selecione Modificar e depois Desmembrar. Cada caractere no texto sele-
cionado é colocado em um bloco de texto separado. O texto permanece
na mesma posição no palco.
•	 Selecione novamente Modificar, Desmembrar para converter os caracte-
res em formas no palco.
Figura 6.12: Caixa de propriedades dos Campos de Texto - conversão em formas
Fonte:Adobe Flash CS3, 2011
Crie um texto no bloco de notas:
Segundo Martins e Merino (2008) “o design sustentável desenvolve
projetos que se preocupam com o descarte ou reuso de produtos, com
a utilização de materiais que não prejudiquem o meio ambiente e sejam
economicamente viáveis.” Isso é de extrema importância, porque nos últimos
50 anos, o consumo exagerado, a busca pelo alto padrão de conforto e
o desenvolvimento tecnológico teve como consequência a degradação do
meio ambiente.
Fundamentos do Desenvolvimento Webe-Tec Brasil 98
Salve-o com o nome texto.txt na mesma pasta onde está o arquivo.fla.
Terminada a edição do arquivo de texto, abra o Flash e crie um arquivo com
o tamanho de 550px X 400px e salve-o com o nome de lendo_texto.fla.
Clique na ferramenta Texto, na barra de ferramentas, e, antes de inserir o
texto no palco, vá a propriedades e altere de acordo com:
–– Tipo: Texto Dinâmico
–– Fonte: Trebuchet MS
–– Tamanho: 14
–– Cor: Verde
–– Tipo de linha: Multiline
Ative as opções Selecionar e Renderizar texto como HTML; essas opções per-
mitirão que o texto possa ser selecionado e que seja possível ler textos em
formato HTML, respectivamente. Após alterar essas propriedades, crie uma
caixa de texto pouco menor que o tamanho do painel.
Agora, selecione a caixa de texto e altere a propriedade Valor, inserindo o
valor texto, pois ela vai indicar que dentro da caixa de texto irá aparecer o
texto do arquivo externo, que também teve a variável definida como texto.
Depois de concluída essa primeira parte, vamos criar mais uma camada para
aplicarmos o script que fará a leitura da variável que arquivará o texto.
Crie mais uma camada e clique com o botão direito do mouse sobre a posi-
ção 1 na timeline e vá em Actions. Em Actions, vá em Global Functions
> Browser/Network > loadVariables e dê um duplo clique nessa opção.
Isso irá adicionar o script de leitura de variáveis.
Para concluir, na propriedade URL, ainda dentro de Actions, digite o nome
do arquivo de texto e a extensão (texto.txt).
Pronto, para ver o sistema funcionando, dê um Ctrl+Enter.
6.5 Trabalhando com camadas
As camadas são níveis de conteúdos dispostos um sobre o outro. Ao
trabalhar com camadas, evitamos que textos e imagens colocados sobre o
fundo se mesclem.
e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 99
Sempre que abrimos um novo documento no Flash, ele cria, automaticamen-
te, uma camada chamada Layer. Para inserir novas camadas, clicamos em:
Insert -> Timeline -> Layer
Figura 6.13: Inserindo Layer
Fonte:Adobe Flash CS3, 2011
Também podemos usar o ícone Insert Layer do Painel Layer para inserir
camadas adicionais. Para renomear uma camada, clicamos duas vezes
nela e inserir um nome.
6.5.1 Criando pastas para organizar camadas
Para criar pastas para organizar as camadas, clicamos no ícone Insert>Layer
Folder no Painel Layer. Para apagar uma camada, selecione a camada e
arraste-a para lixeira. O mesmo se aplica às pastas.
Figura 6.14: Inserindo Folder Layer
Fonte:Adobe Flash CS3, 2011
Fundamentos do Desenvolvimento Webe-Tec Brasil 100
Cada cena em um documento do Flash pode conter qualquer quantidade de
camadas. Ao criar uma animação, você usará camadas e pastas de camadas
para organizar os componentes de uma sequência de animação e para se-
parar os objetos animados, para que não sejam apagados, não se conectem
nem segmentem uns aos outros.
Quando você adiciona um efeito de Linha de tempo a um objeto, o Flash
cria uma nova camada e transfere o objeto para ela. O objeto é colocado
dentro do gráfico do efeito e todas as interpolações e transformações exigi-
das para o efeito residem no próprio gráfico, na camada recém-criada.
A nova camada recebe, automaticamente, o mesmo nome do efeito e um
sufixo numérico que representa a ordem em que o efeito é aplicado, em
relação a todos os efeitos do documento. Quando você adiciona um efeito
de Linha do tempo, o programa acrescenta à biblioteca uma pasta (com o
nome do efeito) que contém os elementos usados na criação desse efeito.
Figura 6.15: Linha do tempo
Fonte: CEAD/Ifes © (2010)
6.5.2 Adicionando quadros-chave (Keyframes) à
timeline
Um quadro-chave é um tipo de quadro no qual adicionamos símbolos ou
outras propriedades a uma timeline de determinada camada. Ao inserir um
quadro-chave em novos quadros, a propriedade do quadro-chave anterior é
copiada para o novo quadro-chave. Ao abrirmos um novo arquivo no Flash®
CS3, automaticamente é inserido um quadro-chave no frame (quadro) 1 da
Layer 1 (Camada 1). Para inserirmos outros quadros-chave em outros locais da
timeline, selecionamos o quadro desejado e no menu principal clicamos em
Insert -> Timeline -> Keyframe
e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 101
Figura 6.16: Inserindo frame
Fonte:Adobe Flash CS3, 2011
Podemos usar a tecla de atalho F5 para a inserção de quadros (frames).
6.6 Animações
Animação é uma ilusão de movimento criada pela movimentação de ima-
gens gráficas em sequência.
6.6.1 Linha do tempo (timeline)
Na timeline são geradas as animações. Dividida em quadros e por padrão, a
reprodução começa sempre no quadro 1 e se move pelos quadros em sequ-
ência até alcançar o último.
Figura 6.17: Timeline
Fonte:Adobe Flash CS3, 2011
Cada timeline tem sua própria camada.
Fundamentos do Desenvolvimento Webe-Tec Brasil 102
6.6.2 Interpolação
Para que o Flash interpole o movimento de mais de um grupo ou símbolo de
uma só vez, cada um deles deve estar em uma camada separada. Normal-
mente, a camada de fundo contém arte estática e cada camada adicional
contém um objeto animado independente. Quando um documento contém
várias camadas, o controle e a edição dos objetos em uma ou duas delas
pode ser difícil. Essa tarefa será mais fácil se você trabalhar com o conteúdo
de cada camada isoladamente. As pastas de camadas ajudam a organizar
camadas em grupos controláveis, que podem ser expandidos e recolhidos
para exibir somente as camadas relevantes à tarefa atual.
Para se criar animações no Flash® CS3, normalmente utilizamos uma das
opções abaixo:
Usadas para alterar a posição de um objeto ao longo de um tempo determi-
nado, pela definição dos pontos iniciais (aqueles onde ocorrerão alterações)
e do ponto final nos quadros-chave. Ao ser aplicado o Flash desenha as
etapas intermediárias, produzindo um efeito de movimento. Como a seguir:
•	 Selecionamos o quadro-chave onde começará a animação em uma
timeline da camada e arrastamos uma instância de um símbolo da
biblioteca até o quadro-chave, ou criamos diretamente um símbolo nesse
quadro.
•	 Fazemos as modificações nas propriedades da instância do símbolo para
descrever a forma como queremos que se inicie a animação, também
conhecida como começo da posição de interpolação de movimento.
•	 Clicamos no quadro onde a animação deve terminar e no menu principal
selecionamos Insert -> Timeline -> Keyframe.
•	 Fazemos as modificações nas propriedades da instância do símbolo para
descrever a forma como queremos que termine a animação.
•	 Voltamos ao quadro-chave onde a animação começará e clicamos nele.
•	 No painel de propriedades na caixa Tween, selecionamos Motion para
aplicar a interpolação de movimento.
e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 103
6.6.2.1 Interpolação de forma
Usadas para alterar a forma de um objeto ao longo de um tempo determi-
nado, pela definição dos pontos iniciais (aqueles onde ocorrerão alterações)
e do ponto final nos quadros-chave. Ao ser aplicado o Flash desenha as eta-
pas intermediárias, produzindo um efeito de alteração de forma do objeto.
Veja o exemplo a seguir:
•	 Selecionamos a ferramenta de desenho no painel Tools e desenhamos
uma forma.
•	 Selecionamos outro quadro na linha do tempo (exemplo quadro 20) e
clicamos em Insert > Timeline > Keyframe.
•	 Ativamos o marcador de transparência pressionando o botão Onion Skin
no painel Timeline.
•	 Arrastamos o Onion Skin Marker esquerdo para sobrepor os quadros
anteriores.
•	 Selecionamos novamente a ferramenta de desenho no painel Tools e
desenhamos outra forma no quadro 20.
•	 Alinhamos a nova forma sobre a forma apresentada pelo Onion Skin.
•	 Desativamos o Onion Skin, pressionando o botão Onion Skin na Timeline.
•	 Clicamos na ferramenta Selection no painel Tools e selecionamos o
quadro-chave 1.
•	 No painel de propriedades na caixa com o rótulo Tween, selecionamos
Shape para aplicar a interpolação de forma.
•	 Clicamos em Control -> Test Movie para ver a animação (opcionalmente
podemos usar teclas de atalho Ctrl + Enter).
Fundamentos do Desenvolvimento Webe-Tec Brasil 104
Atividades de aprendizagem:
1.	 Crie um novo arquivo no Flash CS3/CS4 e salve-o. Usando o painel de
propriedades, altere as dimensões do palco para 450x400 pixels e atribua
cor preta ao background. Altere o frame rate para 20 fps.
2.	 Dê duplo clique sobre Layer1 e altere o nome para “animação”.
3.	 Insira uma nova camada (Insert > Timeline > Layer) e altere seu nome
para “texto”.
4.	 Na camada “texto” clique sobre o frame 80 e pressione F5 para inserir
quadros até essa posição. Repita esse procedimento na camada “anima-
cao” para inserir quadros até a posição 80 da timeline.
5.	 No frame (quadro) 1 da camada “texto”, usando a ferramenta Text es-
creva Interpolação de Forma (Shape Tween) e posicione o texto na parte
superior do palco e centralizado.
6.	 No frame1 da camada “animacao” usando a ferramenta PolyStar Tool,
no painel de propriedades na opção Options... altere o estilo para star,
número de lados 5 e star point size para 0.50 e dê OK.
7.	 Ainda no painel de propriedades da PolyStar tool altere a opção para
“sem traço” e preenchimento gradiente azul (acessível também pelo
painel Color Swatches). Desenhe a estrela redimensione-a para 50x50
pixels e a centralize no palco.
8.	 Insira um quadro-chave no frame 20 (pressione a tecla F6) e nesse qua-
dro altere as dimensões da estrela para 394x394 pixels. Centralize-a no
palco;
9.	 Clique entre o frame 1 e 20 da camada “animacao” e no painel de pro-
priedades na opção Tween, selecione Shape. Os frames de 1 a 20 ficarão
na cor verde. Até esse passo você já gerou a primeira animação de forma.
10.	Clique no frame 25 da camada “animacao”. Insira um novo quadro-chave
nessa posição. Em seguida redimensione a forma da estrela para 5x5
pixels, com posição X em 229 e posição Y em 196 de forma a mantê-la
centralizada no palco.
e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 105
11.	Clique com o botão direito do mouse entre o frame 20 e 25 e selecione Cre-
ate Shape Tween no menu pop up. Já criamos a segunda parte da animação.
12.	Insira um novo quadro-chave no frame 35. Em seguida redimensione
novamente a estrela para 50x50 pixels, com X=206 e Y=176 de forma a
mantê-la centralizada no palco. 
13.	Clique com o botão direito do mouse entre o frame 25 e 35 e selecione Cre-
ate Shape Tween no menu pop up. Já criamos a terceira parte da animação.
14.	Clique no frame 45 da camada “animacao” e insira um novo quadro-
-chave (F6) nessa posição; em seguida, mantendo a tecla Alt pressionada,
clique na estrela e arraste para criarmos cópias. Repita a operação de
forma a criar várias estrelas no palco (oriente-se pela figura abaixo). Uma
vez criadas as estrelas, altere a cor de algumas delas usando o painel
Color Swatches e escolhendo gradientes cinza, vermelho verde e azul.
Por fim, clique com o botão direito do mouse entre os frames 35 e 45 e
escolha Create Shape Tween.
15.	Clique no frame 80 e insira um novo quadro-chave. Apague todas as
estrelas,deixando o palco vazio! Em seguida, clique no frame 35, copie
a estrela que está nesse frame e cole-a no frame 80 usando as teclas
CTRL+Shift+V para colá-la na mesma posição do frame 35. Em seguida
clique com o botão direito do mouse entre o frame 45 e 80 e selecione
Create Shape Tween.
16.	Finalmente, salve o trabalho e pressione Ctrl+Enter para observar a animação.
6.6.2.2 Animação quadro a quadro
(frame to frame transition)
Usadas para alterar a posição e/ou a forma de um objeto ao longo de de-
terminado período de tempo, pela criação manual de cada um dos quadros,
tendo como efeito final a produção de movimento e/ou alteração de forma,
só que de maneira mais controlada e com efeitos mais sofisticados.
6.6.3 Reconhecendo as interpolações na timeline
O Flash diferencia a animação interpolada da animação quadro a quadro na
Linha de tempo, da seguinte forma:
Fundamentos do Desenvolvimento Webe-Tec Brasil 106
•	 As interpolações de movimento são indicadas por um ponto preto no
quadro-chave inicial; os quadros interpolados intermediários apresentam
uma seta preta com fundo azul-claro.
•	 As interpolações de forma são indicadas por um ponto preto no quadro-
-chave inicial; os quadros intermediários apresentam uma seta preta com
fundo verde-claro.
•	 Uma linha tracejada indica que a interpolação está partida ou in-
completa, como no caso de um quadro-chave final ausente.
•	 Um quadro-chave único é indicado por um ponto preto. Os quadros
cinza-claros, após um quadro-chave único, contêm o mesmo conteúdo,
sem alterações, e apresentam uma linha preta com um retângulo vazio
no último quadro da sequência.
•	 Um a pequeno indica que uma ação foi atribuída ao quadro por meio do
painel Actions (Ações).
•	 Uma bandeira vermelha indica que o quadro contém um rótulo ou
um comentário.
•	 Uma âncora dourada indica que o quadro é uma âncora identificada.
6.6.4 Símbolos
Símbolos são objetos especiais criados no Flash para auxiliar na criação de
animações (ALVES, 2009).
Existem três tipos de símbolos no Flash: gráfico, botão e clipe de vídeo.
Figura 6.18: Convertendo símbolo
Fonte:Adobe Flash CS3, 2011
e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 107
•	 Botão
Os símbolos de botões possuem eventos predefinidos que são transmitidos
quando algo ocorre em seu arquivo SWF. A linha do tempo de um símbolo
botão possui quatro quadros (frames):
–– Up: Primeiro quadro da timeline do botão. Aparece independente-
mente de qualquer ocorrência.
–– Over: Segundo quadro da timeline do botão. Refere-se ao comporta-
mento do botão quando o mouse está sobre ele.
–– Down: Terceiro quadro da timeline do botão. Refere-se ao estado do
botão quando ele é clicado.
–– Hit: Quarto quadro da timeline do botão. Refere-se à área ativa do
botão. Esse estado não é visível ao usuário.
Figura 6.19: Botão
Fonte: CEAD/Ifes © (2011)
Por convenção recomenda-se, ao criar um símbolo de botão, usar o prefixo
btn antes do nome do símbolo.
•	 Movie clip
Usado para conter animações para elementos da interface com o usuário,
pode ser considerado mini aplicativos; cada movie clip ou clipe de filme pos-
sui sua própria linha do tempo que funciona independente da linha de tem-
po principal.
Fundamentos do Desenvolvimento Webe-Tec Brasil 108
Por convenção recomenda-se, ao criar um símbolo movie clip, usar o prefixo
mc antes do nome do símbolo.
•	 Gráfico
Usado para criar imagens estáticas e para criar objetos reutilizáveis. Normal-
mente os símbolos gráficos são imagens.
Por convenção recomenda-se, ao criar um símbolo gráfico, usar o prefixo gr
antes do nome do símbolo.
6.6.5 Máscaras
Para revelar porções de uma imagem ou gráfico na camada abaixo, pode-
mos utilizar uma máscara. Para criar uma máscara, você deve especificar que
essa camada é uma camada de máscara clicando com o botão direito do
mouse sobre a camada e selecionando Mask. Pode-se usar qualquer forma
preenchida, textos e símbolos como uma máscara. A camada de máscara
revela a área das camadas abaixo. Para criar uma máscara devemos realizar
os seguintes passos:
1.	 Começamos criando uma camada acima da imagem que desejamos
mascarar. Essa será a camada de máscara. Criamos ou importamos um
gráfico na camada de máscara e a convertemos em um símbolo.
2.	 Criamos uma animação na camada de máscara.
3.	 Clicamos com o botão direito do mouse na camada de máscara e selecio-
namos Mask no menu contextual.
4.	 Bloqueamos as camadas para ver o efeito de máscara ainda no ambiente
de criação.
5.	 Selecionamos Control > Test Movie para visualizar a animação (opcional-
mente podemos clicar Ctrl + Enter).
e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 109
6.	
Figura 6.20: Máscara
Fonte:Adobe Flash CS3, 2011
1.	 Inicie um novo arquivo Flash, altere o palco para 400x400 pixels, importe
uma imagem para o palco. Altere o tamanho dessa imagem no palco
para 400x400 pixels de forma a coincidir com o tamanho do palco. Dê a
essa camada o nome de “Imagem”.
2.	 Crie uma segunda camada, certifique-se de que ela está acima da camada
“Imagem” e atribua a essa nova camada o nome de “Camada de máscara”.
Clique com o botão direito do mouse e escolha a opção “Mask”.
3.	 Desbloqueie as camadas clicando uma vez em cada ícone de cadeado
e crie um quadro de 50x50 pixels na cor verde-claro (mais à frente você
verá que a cor não importa).
4.	 Ainda na camada de máscara, clique no frame 20 e pressione F6 para inserir
um quadro-chave nessa posição. Clique na camada chamada “Imagem” e
clique no frame 20 e pressione F5 para inserir quadros.
Fundamentos do Desenvolvimento Webe-Tec Brasil 110
5.	 Entre os frames1 e 20 da “Camada de máscara”, clique com o botão
direito do mouse e selecione Create Motion Tween. No painel de Proprie-
dades na caixa Rotate, escolha CW e mantenha as demais configurações
como estão.
6.	 Clique no frame20. Selecione o quadrado e modifique seu tamanho para
400x400 pixels e posicione-o sobre a imagem de forma que toda a ima-
gem fique oculta.
7.	 Clique no frame30 da camada de máscara e insira um novo quadro-chave
clicando em F6. Repita a operação na camada Imagem com a diferença de
que nela você inserirá quadros (frames) comuns até o frame 30.
8.	 Clique na camada de mascara, em seguida no frame 30, clique no quadrado
verde e, usando o painel de propriedades, altere sua largura (width) para 1,
mantenha a altura em 400 pixels, de forma que ele se torne uma linha.
9.	 Entre os frames20 e 30 da “Camada de máscara”, clique com o botão
direito do mouse e selecione Create Motion Tween
10.	Clique na camada de mascara, clique no frame 60 e insira um novo qua-
dro-chave; aproveite e insira quadros normais na camada imagem tam-
bém. Clique na linha verde e, usando o painel de propriedades, altere
sua largura (width) para 400 pixels novamente de forma que ele volte a
ocultar a imagem.
11.	Entre os frames30 e 60 da “Camada de máscara”, clique com o botão
direito do mouse e selecione Create Motion Tween.
12.	Finalmente clique em Control > Test Movie para ver a animação.
e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 111
6.7 Publicando documentos do Flash
Figura 6.21: Publish Settings
Fonte:Adobe Flash CS3, 2011
Para publicar um documento do Flash, selecione os formatos e as configurações
dos formatos de arquivo com a caixa de diálogo Publish Settings. Em seguida,
publique o documento do Flash, usando o comando Publish (Publicar). A confi-
guração de publicação especificada na caixa de diálogo Publish Settings é salva
com o documento. Você pode também criar e atribuir nome a um perfil de pu-
blicação para que as configurações de publicação estabelecidas estejam sempre
disponíveis.
Dependendo das opções especificadas na caixa de diálogo Publish Settings,
o comando Publish criará os seguintes arquivos:
•	 Arquivo SWF do Flash.
•	 Imagens alternativas em diversos formatos, que serão exibidas, automatica-
mente, se o Flash Player não estiver disponível (GIF, JPEG, PNG e QuickTime).
•	 O(s) documento(s) HTML de suporte necessário(s) para mostrar o conte-
údo SWF (ou uma imagem alternativa) em um navegador e controlar a
configuração do navegador.
•	 Três arquivos HTML, se a opção Detect Flash Version (Detectar versão do
Flash) for selecionada: o arquivo de detecção, o arquivo de conteúdo e o
Fundamentos do Desenvolvimento Webe-Tec Brasil 112
arquivo alternativo.
•	 Arquivos de projetores independentes para os sistemas Windows e
Macintosh e vídeos do QuickTime de conteúdo do Flash (arquivos
EXE, HQX ou MOV, respectivamente).
Resumo
Nesta aula você conheceu o Flash, um software utilizado para produção de
animação, entre outras aplicações, como biblioteca de objetos onde pode-
mos armazenar imagens, símbolos e mover clipes. Aprendeu que no Flash
podemos trabalhar com camadas, que são níveis de conteúdos dispos-
tos um sobre o outro, onde criamos as animações, inserimos vídeos
e áudio; que ainda podemos trabalhar com máscaras, que são animações
que revelam porções de uma imagem ou gráfico na camada abaixo. O uso
do Flash dispõe de várias aplicações de acordo com o projeto de cada site,
proporcionando ao usuário a experiência de animaçõesinterativas.
Chegamos ao final desta disciplina e espero que você tenha obtido sucesso.
Meu objetivo foi passar os conceitos básicos e importantes para o desenvol-
vimento de um website, sabendo que esse é o apenas o início de um longo
caminho. Os conceitos aprendidos neste caderno são a base para o desen-
volvimento de sites; contudo, o estudo não deve se ater somente a este
material. Continue suas pesquisas e realizações.
Sucesso e um grande abraço!
Atividades de aprendizagem
Siga os passos abaixo para praticar as formas de configurações de publica-
ções gerais para um documento do Flash:
–– Abra a caixa de diálogo Publish Settings. Siga um destes procedimentos:
a)	 Selecione File> Publish Settings (Configurações de publicação).
b)	 No inspetor Properties (Propriedades) do documento (disponível quando ne-
nhum objeto está selecionado), clique no botão Settings (Configurações).
c)	 Na caixa de diálogo Publish Settings, selecione a opção para cada forma-
to de arquivo que deseja criar.
O formato SWF do Flash é selecionado por padrão. O formato HTML tam-
bém é selecionado por padrão. Você precisa de um arquivo HTML para que
e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 113
o arquivo SWF apareça em um navegador. As guias correspondentes aos
formatos de arquivo selecionados aparecem acima do painel atual na caixa
de diálogo (exceto em formatos do projetor Windows ou Macintosh, que
não têm configurações).
Na caixa de diálogo File de cada formato selecionado, aceite o nome de ar-
quivo padrão (que corresponde ao nome do documento) ou insira um novo
nome de arquivo com a extensão adequada (como .gif para um arquivo GIF
e .jpg para um arquivo em JPEG).
Decida onde deseja publicar os arquivos. Por padrão, os arquivos são publi-
cados no mesmo local que o arquivo FLA. Pra alterar o local onde os arquivos
são publicados, clique na pasta ao lado do nome do arquivo e navegue até
o local em que deseja publicar o arquivo.
Para criar um arquivo de projetor independente, selecione Windows Projector
(Projetor do Windows).
Clique na guia das opções de formato a serem alteradas. Especifique as con-
figurações de publicação para cada formato, conforme descrito nas seções
a seguir.
Quando você terminar de configurar as opções, siga estes procedimentos:
–– Para gerar todos os arquivos especificados, clique em Publish.
–– Para salvar as configurações com o arquivo FLA e fechar a caixa de
diálogo sem publicá-lo, clique em OK.
Para publicar um documento do Flash sem selecionar novas configurações
de publicação:
–– Selecione File > Publish para criar os arquivos nos formatos e no local
especificado na caixa de diálogo Publish Settings (as configurações
padrão, as configurações anteriormente selecionadas ou o perfil de
publicação selecionado).
Fundamentos do Desenvolvimento Webe-Tec Brasil 114
ANEXO e APÊNDICES
ANEXO – Atalhos e atributos do CSS
Atributo de CSS O que ele formata
background Cor de fundo, imagem, transparência.
background-attachment Rolagem do fundo / Marca d’água.
background-image Imagem de fundo.
background-color Cor de fundo ou transparência.
background-position Posicionamento da imagem de fundo.
background-repeat Configuração lado a lado da imagem de fundo.
border Largura, estilo e cor de todas as quatro bordas.
border-bottom Largura, estilo e cor da borda inferior.
border-bottom-color Cor da borda citada.
border-bottom-style Estilo da borda citada.
border-bottom-width Largura da borda citada.
border-color Cor das quatro bordas.
border-left Largura, estilo e cor da borda esquerda.
border-left-color Cor da borda citada.
border-left-style Estilo da borda citada.
border-left-width Largura da borda citada.
border-right Largura, estilo e cor da borda direita.
border-right-color Cor da borda citada.
border-right-style Estilo da borda citada.
border-right-width Largura da borda citada.
border-style Estilo de todas as quatro bordas.
border-top Largura, estilo e cor da borda superior.
border-top-color Cor da borda citada.
border-top-style Estilo da borda citada.
border-top-width Largura da borda citada.
border-width Largura de todas as quatro bordas.
clear
Elementos flutuantes à esquerda ou à direita de um
elemento.
clip Parte visível de um elemento.
color Cor de primeiro plano.
cursor Tipo de ponteiro do mouse.
display Se o elemento é exibido e o espaço é reservado para ele.
filter Tipo de filtro aplicado ao elemento.
Continua
e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 115
float Se o elemento flutua.
font
Estilo, variante, peso, tamanho e altura da linha do tipo
de fonte.
@font-face Incorporação da fonte ao arquivo HTML.
font-family Tipo de fonte.
font-size Tamanho da fonte.
font-style Fonte itálico.
Fonte-variant Fonte <IT>bold<IT>.
font-weight Peso da fonte de claro a negrito.
height Altura exibida ao elemento.
@import Folha de estilo a importar.
left
Posição do elemento em relação à margem esquerda da
página.
letter-spacing Distância entre as letras.
line-height Distância entre linhas de base.
list-style Tipo, imagem e posição do estilo da lista.
list-style-image Marcador de item de lista.
list-style-position Posição do marcador de item da lista.
list-style-type Marcador de item de lista alternativo.
margin Tamanho de todas as quatro margens.
margin-left Tamanho da margem esquerda.
margin-right Tamanho da margem direita.
margin-bottom Tamanho da margem inferior.
margin-top Tamanho da margem superior.
overflow
Exibição de imagens que são maiores do que suas
molduras.
padding Espaço em torno de um elemento em todos os lados.
padding-bottom Espaço a partir da margem inferior de um elemento.
padding-left Espaço à esquerda do elemento.
padding-right Espaço à direita do elemento.
padding-top Espaço a partir da margem superior do elemento.
page-break-after Inserir quebra de página depois de um elemento.
page-break-before Inserir quebra de página antes de um elemento.
position Como o elemento é posicionado na página.
text-align Alinhamento do texto.
text-decoration Sublinhado, sobrelinha do texto ou riscado.
Continua
Fundamentos do Desenvolvimento Webe-Tec Brasil 116
text-indent Recuo da primeira linha do parágrafo.
text-transform
Transformação para todas maiúsculas, minúsculas ou
inicial maiúscula.
top
Posição do elemento em relação à parte superior da
página.
vertical-align Alinhamento vertical do elemento.
visibility Se o elemento é visível ou invisível.
width Largura do elemento.
z-index Posição do elemento na pilha.
Conclusão
APÊNDICE 1 – Atividades do CorelDRAW: Boneco de Neve
1º passo: Copie a imagem do boneco de neve acima e cole na área de tra-
balho do CorelDRAW.
2º passo: Depois de colar, dê um clique com o botão direito do mouse
em cima da imagem (Boneco de Neve) e no menu que aparecer clique
em Bloquear Objeto; isso impedirá que a imagem se mova e dificulte o
processo de vetorização.
3º passo: Existem algumas ferramentas que produzem formas predefinidas
muito úteis (retângulos, triângulos, círculos, etc.). Faça uso delas nessa lição;
clique na ferramenta Elipse localizada na caixa de ferramentas.
4º passo: Para facilitar, tente seguir as medidas do boneco, colocando os
e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 117
objetos por cima da imagem. Leve o cursor do mouse até a bola embaixo
do corpo do boneco e clique no botão esquerdo; segure e arraste sem soltar
o botão do mouse até que o tamanho do círculo esteja parecido com o ori-
ginal; se precisar de um círculo perfeito, pressione Ctrl no teclado quando
estiver criando o objeto.
5º passo: Quando você soltar o botão do mouse, note que o círculo que foi
criado ficou selecionado. Sabemos que um objeto está selecionado quando
aparecem alguns pontos ao seu redor; esses pontos servem para redimen-
sionar o seu tamanho.
6º passo: Clique na ferramenta Seleção na caixa de ferramentas, ela serve
para mover e redimensionar os objetos; portanto, se o primeiro círculo não
estiver no lugar certo, clique bem no meio dele, onde aparece um X; com
essa ferramenta, segure o botão e arraste para o local desejado. Se o tama-
nho não ficou certo, você pode redimensionar o objeto clicando em alguns
dos pontos ao redor do círculo com a ferramenta seleção; segure o botão e
arraste na direção em que o círculo precisa aumentar ou diminuir.
7º passo: Quando conseguir deixar o primeiro círculo no lugar certo, volte e
clique novamente na ferramenta Elipse e faça a bola do meio do boneco, o
corpo, seguindo os mesmos passos. Faça também a terceira bola que corres-
ponde à cabeça do boneco, a aba do chapéu por fora, os olhos, os botões e o
nariz. Para fazer o nariz, crie três círculos: primeiro um para ser a base do na-
riz; depois, outro um pouco menor para ser o meio e, por último, um menor
ainda, para ser a ponta do nariz. Seguindo esses passos, quando colorirmos,
o nariz do boneco vai realmente parecer com uma cenoura.
8º passo: Agora, vamos precisar de outra ferramenta chamada Polilinha,
que também está na caixa de ferramentas ao lado. Você pode procurar, co-
locando o cursor do mouse em cima de cada ferramenta, que logo vai apa-
recer o nome de cada uma em forma de legenda. A ferramenta Polilinha
produz linhas retas; ela vai servir pra fazer os braços do boneco.
9º passo: Depois de encontrar, clique na ferramenta. Vá até o primeiro bra-
ço e clique em alguma das suas extremidades, arraste e clique novamente,
sempre onde a linha muda de direção, como se estivesse contornando o
braço, até “fechar” o objeto; quando se juntam os pontos por onde come-
çou e terminou.
Fundamentos do Desenvolvimento Webe-Tec Brasil 118
10º passo: Já temos um dos braços do boneco. Para fazer o outro, é muito
fácil: escolha a ferramenta Seleção e clique com o botão direito do mouse
no braço feito há pouco; escolha a opção Copiar no menu que aparecer;
clique fora da página, também com o botão direito do mouse, e escolha
Colar; note que a cópia de qualquer objeto sempre fica exatamente em
cima do objeto de origem; clique no objeto copiado e arraste-o para o outro
lado; ainda com ele selecionado, na barra propriedades, clique em Espelhar
horizontalmente; isso fará o objeto virar na direção contrária, ficando os
dois braços perfeitos. Use a Polilinha para fazer a parte de cima do chapéu.
11º passo: Nessa parte da vetorização, você usará a Paleta de Cores. Com
a ferramenta Seleção, clique no objeto e depois na cor que desejar. Se a cor
que quiser não estiver à vista, clique na seta abaixo da paleta para expandir,
depois é só escolher a cor. Vá preenchendo todos os objetos do desenho
com suas respectivas cores e depois compare com a imagem original.
12ºpasso: Tem alguma coisa errada, não é? Não! Quando você está crian-
do os objetos do desenho no Corel, tudo que fizer depois sempre vai ficar
“por cima” do objeto anterior, só notamos agora por causa do preenchi-
mento, mas isso se resolve facilmente, alterando a ordem dos objetos no
menu Organizar e depois em Ordenar. Lá você encontrará as opções
necessárias para essa tarefa. Selecione a aba do chapéu, clique no menu
Organizar, escolha Ordenar, clique em Atrás... e clique novamente em
algum lugar visível da cabeça do boneco, ela será o ponto de referência.
Repita esses passos, selecionando a parte de cima do chapéu e tenha como
referência, agora, a aba do chapéu; isso fará com que os objetos fiquem na
ordem desejada. Se ainda houver algo errado na ordem dos objetos, use
o menu Organizar, depois Ordenar e alguma das opções autoexplicativas
desse menu.
13° passo: Clique com o botão direito do mouse sobre a imagem original
do Boneco de Neve e escolha a opção Desbloquear Objeto; isso vai liberar
a imagem para ser movida; clique e arraste a imagem para o lado do seu
desenho e compare os dois; pode-se notar a grande diferença na qualidade.
Depois de comparar, selecione a imagem original e pressione no teclado
Delete para excluir.
14º passo: Terminado o trabalho, você vai precisar Salvar, a fim de usá-lo
sempre que precisar.
e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 119
APÊNDICE 2 - Atividades do CorelDRAW: Construção de um botão
1º passo: Faça um retângulo e, com a ferramenta Forma, arredonde os can-
tos o máximo possível; depois, faça uma cópia desse objeto e redimensione-
-o, para que fique menor que o primeiro, posicione-o na parte de baixo do
retângulo maior. Faça agora uma cópia do retângulo menor e arraste-o para
a parte de cima do objeto maior.
2º passo: Selecione no objeto maior e preencha-o com azul-marinho; o re-
tângulo menor de baixo com azul-celeste e o de cima com branco, Para usar
o efeito sombra e explorar a impressão do objeto em 3D, use a ferramenta
Sombreamento. Com o objeto maior selecionado, clique na ferramenta
Sombreamento, e em Predefinições; lá na barra de propriedades, escolha
Incandescente pequeno, a cor do sombreamento também é alterada na
barra de propriedades; então, escolha a cor azul-claro.
3º passo: Para dar essa impressão de uma cor misturando com outra, você
vai precisar misturar dois objetos: o objeto maior e o objeto menor de baixo;
para isso, é necessário usar a ferramenta Mistura. Selecione na ferramenta
Mistura, clique com ela no retângulo menor de baixo, segure, arraste até o
meio do retângulo maior e solte.
4º passo: No objeto menor de cima, você vai usar a ferramenta Transparência.
Com ele selecionado, clique na ferramenta Transparência, e, com ela, clique e ar-
raste segurando o botão do mouse, começando um pouco acima dele e soltando
o botão antes do seu final; tente conseguir o melhor resultado possível.
5º passo: Com a ferramenta Texto, clique e digite CLIQUE; depois, com a
ferramenta Seleção, procure e aplique o tipo de fonte usada, deixe no ta-
manho, posição e cores certas. Quando terminar, salve o documento.
Fundamentos do Desenvolvimento Webe-Tec Brasil 120
Referências
ALVES, William Pereira. Crie, anime e publique seu site utilizando Fireworks CS3,
Flasch CS3, e Dreamweaver CS3 para Windows. 2ªed. São Paulo: Érica, 2009.
CALLIGARIS, João Sebastião de Oliveira Bueno. GIMP: documentação das ferramentas.
2005. Disponível em: <http://www.ufpel.edu.br/lpd/ferramentas/gimp.pdf>. Acesso em:
20 abr. 2011.
DIAS, Cláudia. Usabilidade na Web. Rio de Janeiro:Alta Books, 2003.
FARIA, Helena; FERREIRA, Rafael; LEMOS, Rosemar. Design de Web: elementos gráficos
que influem em uma boa usabilidade. 2010. Disponível em: <http://www.ufpel.edu.br/
cic/2010/cd/pdf/LA/LA_01036.pdf>.Acesso em: 2 fev. 2011.
FERREIRA, Aurélio Buarque de Holanda. Novo Dicionário Aurélio da Língua
Portuguesa. 4ª Ed. – Curitiba. PR: Editora Positivo, 2009.
FRABRIS, S; GERMANI, R. Color: proyecto y estética en las artes gráficas. Editorial Edebe.
Madrid, Barcelona 1973.
FREEMAN, Elisabeth; FREEMAN, Eric. Use a cabeça HTML com CSS e XHTML. 2ªed.
Rio de Janeiro:Alta Books, 2008.
GOMES FILHO, João. Gestalt do objeto: sistema de leitura visual da forma. São Paulo:
Escrituras Editora, 2008.
KALBACH, James. Designer de navegação: otimizando a experiência do usuário. Porto
Alegre: Bookman, 2009.
KRUG, Steve. Não me faça pensar: uma abordagem de bom senso à usabilidade na
web. Rio de Janeiro:Alta Books, 2008.
MARMION, Jorge. A utilização de cor no mecanismo de interação com o usuário.
Disponível em: <http://www.ibrau.com.br/artigoutilizacaodecor.htm>. Acesso em: 8 fev.
2011.
MARMION, Jorge. Como maximizar a legibilidade de um texto. Disponível em:
<http://www.ibrau.com.br/aumentandoalegibilidade.htm>.Acesso em: 7 jul. 2011.
MICROSOFT OFFICE. Inverno. Disponível em: <http://office.microsoft.com/pt-br/images/
results.aspx?ex=2&qu=boneco%20de%20neve&Download=MC900022861&ext=WMF
&AxInstalled=1&c=0#ai:MC900022861|mt:1|> Acesso em: 12 set. 2011.
MICROSOFT OFFICE. MP900422339. Disponível em:<http://office.microsoft.com/pt-br/
images/results.aspx?qu=idoso#ai:MP900422339|>.Acesso em: 7 jul. 2011c.
MORAES, Ana Maria de; Santo Rosa, José Guilherme. Avaliação e projeto no design
de interfaces. – 1ª ed. – Teresópolis, RJ: 2AB, 2008.
e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 121
NETMARKETSHARE. Market share for mobile and desktop. Disponível em: <http://
marketshare.hitslink.co>.Acesso em: 7 jul. 2011.
NIELSEN, Jakob, Designing Web Usability, New Riders Publishing, 2000, USA.
OFFICE. MICROSOFT. Casa antiga destruída. Disponível em: <http://office.microsoft.com/
pt-br/images/results.aspx?qu=casa&origin=FX010132103#ai:MP900433081|>. Acesso
em: 7 jul. 2011a.
OFFICE.MICROSOFT. MC900432679. Disponível em: <http://office.microsoft.com/pt-br/
images/results.aspx?qu=bot%C3%A3o#ai:MC900432679|> .Acesso em: 7 jul. 2011b.
OFFICE MICROSOFT. Obter a melhor imagem no monitor. Disponível em:http://
windows.microsoft.com/pt-BR/windows7/Getting-the-best-display-on-your-monitor.
Acesso em: 5 nov. 2011.
OLIVIERO, Carlos Antonio José. Crie imagens para a construção de sites: (com
Fireworks 4). São Paulo: Érica, 2001.
OLIVIERO, Carlos Antonio José. Faça um site HTML 4.0: orientado por projeto. São
Paulo: Érica, 2000.
PARIZOTTO, Rosamelia. Guia de Estilos para Serviços de Informação em Ciência
e Tecnologia via Web. < http://www.cefet-to.org/~focking/Projeto%20de%20
Interfaces/Ergonomia_guiaweb.pdf>.Acesso em 10 jul. 2011.
RAPOSO, Alberto Barbosa. Introdução à interação humano-computador (IHC).
Disponível em: <http://www.inf.puc-rio.br/~inf1403/docs/alberto2011_1/09_
AvHeuristica.pdf>.Acesso em: 7 jul. 2011.
SERIFA. In: WIKIPÉDIA, a enciclopédia livre. Flórida: Wikimedia Foundation, 2011.
Disponível em: <http://pt.wikipedia.org/w/index.php?title=Serifa&oldid=27348115>.
Acesso em: 10 fev. 2011.
SCHUHMACHER, Vera N. Comunicação visual para web I. 2007. Disponível em:
<http://busca.unisul.br/pdf/88286_Vera.pdf>.Acesso em: 10 fev. 2011.
TAVARES,Angélica Pereira Marsicano. Aplicação da teoria das cores em ambientes
virtuais para arquitetura e design de interiores. 2007. Disponível em:<http://
www.bdtd.ufu.br/tde_arquivos/11/TDE-2007-04-17T083740Z-514/Publico/
APMTavares1DISSPRT.pdf> Acesso em: 9 nov. 2011.
Fundamentos do Desenvolvimento Webe-Tec Brasil 122
Currículo da professora-autora
Meu nome é Keila Brito, professora especialista responsável pela disciplina
Fundamentos do Desenvolvimento Web. Para que você me conheça melhor,
seguem algumas informações a meu respeito: graduada em Desenho
Industrial com ênfase em Programação Visual pela Universidade Federal
do Espírito Santo (UFES); pós-graduada em Administração e Marketing
e em Planejamento, Implementação e Gestão da Educação a Distância
pela Universidade Federal Fluminense; também me formei em cursos de
capacitação e formação como Webmaster. Leciono na área desde 2006,
além de atuar diretamente no mercado de agências digitais como gerente de
projetos, o que me permite vivenciar os desafios da Web. Atualmente, sou
professora do Instituto Federal do Amazonas e colaboradora do Centro de
Educação a Distância do IFES, como professora especialista.
e-Tec Brasil123Currículo da professora-autora
Prog web
Curso Técnico em Informática
Fundamentos do
Desenvolvimento Web
Keila Brito
Prog web
Prog web

Mais conteúdo relacionado

PDF
Arquitetura computadores cor_capa_ficha_20110126.pdf
PDF
Programas aplicativos
PDF
Apostila sistema operacional cor capa ficha 2011 02 04
PPT
Aluno integrado apresentacao
PPT
A Utilização da Plataforma Joomla! na Escola
PDF
Artefato PETIC dcomp v3
PDF
Projeto: Moodle no CEM Paulo Freire-DF
PDF
Normas lieds
Arquitetura computadores cor_capa_ficha_20110126.pdf
Programas aplicativos
Apostila sistema operacional cor capa ficha 2011 02 04
Aluno integrado apresentacao
A Utilização da Plataforma Joomla! na Escola
Artefato PETIC dcomp v3
Projeto: Moodle no CEM Paulo Freire-DF
Normas lieds

Mais procurados (19)

PDF
Arquitetura de Computadores
PDF
Multimida na educação
PDF
Curso Básico de CAD: Projeto Auxiliado por Computador
PDF
Curso de Multimídia na Educação.
PDF
Apostila criação de web sites
PDF
67286679 web-sites
PDF
Curso de Computação Gráfica 3D
PDF
Manual de procedimentos Acessa Escola
PDF
Curso de Banco de Dados
PDF
Curso de Construção de Web Sites.
PDF
Curso de Produção Fonografica
PDF
Curso de Sistema Operacional Linux
PPS
Acessa Escola
PPT
ApresentaçãO1 2ª
PPT
Cursotecnologiaecidadaniajailze2011
PDF
Plano de ensino para ead
PDF
O E-Learning e as Novas Tecnologias EducacionaIs
PPT
O Que é E Learning
PDF
Arquitetura de Computadores
Multimida na educação
Curso Básico de CAD: Projeto Auxiliado por Computador
Curso de Multimídia na Educação.
Apostila criação de web sites
67286679 web-sites
Curso de Computação Gráfica 3D
Manual de procedimentos Acessa Escola
Curso de Banco de Dados
Curso de Construção de Web Sites.
Curso de Produção Fonografica
Curso de Sistema Operacional Linux
Acessa Escola
ApresentaçãO1 2ª
Cursotecnologiaecidadaniajailze2011
Plano de ensino para ead
O E-Learning e as Novas Tecnologias EducacionaIs
O Que é E Learning
Anúncio

Semelhante a Prog web (20)

PDF
arte_informatica_basica.pdfpara disciplina de comunicação
DOC
Programacao para Web I Plano de Ensinodoc
PPT
Aula 01 - Programação Web - PHP
PDF
Introdução a Multimídia
PPS
Apresentação do curso técnico de informática modalidade EAD
PDF
Linguagem de Programação Comercial
PDF
Caderno de Linguagem de Programação para Web
PDF
Atualmente, os cursos técnicos, em geral, estão tendo uma procura muito gran...
PDF
Introducao informatica
PDF
Apostila iniciacao programacao - scratch
PDF
Treinamentos Avançados em Informática
PDF
Cursos Season
PDF
Cursos Season
PDF
Java swing
PDF
Screen
PDF
Intro micro software
PPTX
Aula 1 - Apresentação da Disciplinatec.pptx
PDF
Drupal
PDF
O mercado de trabalho para a T.I.
PDF
J2me
arte_informatica_basica.pdfpara disciplina de comunicação
Programacao para Web I Plano de Ensinodoc
Aula 01 - Programação Web - PHP
Introdução a Multimídia
Apresentação do curso técnico de informática modalidade EAD
Linguagem de Programação Comercial
Caderno de Linguagem de Programação para Web
Atualmente, os cursos técnicos, em geral, estão tendo uma procura muito gran...
Introducao informatica
Apostila iniciacao programacao - scratch
Treinamentos Avançados em Informática
Cursos Season
Cursos Season
Java swing
Screen
Intro micro software
Aula 1 - Apresentação da Disciplinatec.pptx
Drupal
O mercado de trabalho para a T.I.
J2me
Anúncio

Último (10)

PPTX
slide preparativo para lingua portuguesa
PPTX
SLIDE 1 PARTE 1 Fund da Informatica .pptx
PPTX
SLIDE 1 PARTE 2 Fund da Informatica .pptx
DOCX
Cópia de ACOMPANHAMENTO PARA A RECOMPOSIÇÃO DA APRENDIZAGEM 8 ano História.docx
PPTX
organizaoefuncionamentodeunidadedeenfermagem-240414190344-a21272a1 (1).pptx
PDF
PROJETO DE PESQUISA PRONTO FONOAUDIOLOGIA 2025 ABNT.pdf
PDF
Pinealle - Aceleradora de Negócios em Canais Digitais
PPTX
Questionario-Fundamentos-de-Informatica-e-Design.pptx
PPTX
AULA_12_BASQUETE CAPACIDADE FÍSICA_171023.pptx
PPT
Aula_15.pptssssssssssssssssssssssssssssssssssssss
slide preparativo para lingua portuguesa
SLIDE 1 PARTE 1 Fund da Informatica .pptx
SLIDE 1 PARTE 2 Fund da Informatica .pptx
Cópia de ACOMPANHAMENTO PARA A RECOMPOSIÇÃO DA APRENDIZAGEM 8 ano História.docx
organizaoefuncionamentodeunidadedeenfermagem-240414190344-a21272a1 (1).pptx
PROJETO DE PESQUISA PRONTO FONOAUDIOLOGIA 2025 ABNT.pdf
Pinealle - Aceleradora de Negócios em Canais Digitais
Questionario-Fundamentos-de-Informatica-e-Design.pptx
AULA_12_BASQUETE CAPACIDADE FÍSICA_171023.pptx
Aula_15.pptssssssssssssssssssssssssssssssssssssss

Prog web

  • 3. Curso Técnico em Informática Programação para Web Jean Eduardo Glazar
  • 4. Programação para Web Jean Eduardo Glazar 2011 IFES – Instituto Federal do Espírito Santo
  • 5. Presidência da República Federativa do Brasil Ministério da Educação Secretaria de Educação a Distância Equipe de Elaboração Instituto Federal do Espírito Santo – IFES Coordenação Institucional Guilherme Augusto de Morais Pinto/IFES João Henrique Caminhas Ferreira/IFES Coordenação Curso Allan Francisco Forzza Amaral/IFES Professor-autor Jean Eduardo Glazar/IFES Comissão de Acompanhamento e Validação Universidade Federal de Santa Catarina – UFSC Coordenação Institucional Araci Hack Catapan/UFSC Coordenação do Projeto Silvia Modesto Nassar/UFSC Coordenação de Design Instrucional Beatriz Helena Dal Molin/UNIOESTE e UFSC Coordenação de Design Gráfico André Rodrigues/UFSC Design Instrucional Juliana Leonardi/UFSC Web Master Rafaela Lunardi Comarella/UFSC Web Design Beatriz Wilges/UFSC Mônica Nassar Machuca/UFSC Diagramação André Rodrigues/UFSC Bárbara Zardo/UFSC Juliana Tonietto/UFSC Marília C. Hermoso/UFSC Revisão Júlio César Ramos/UFSC Projeto Gráfico e-Tec/MEC © Instituto Federal do Espírito Santo Este Caderno foi elaborado em parceria entre o Instituto Federal do Espírito Santo e a Universidade Federal de Santa Catarina para o Sistema Escola Técnica Aberta do Brasil – e-Tec Brasil. G553p Glazar, Jean Eduardo Programação para web : Curso técnico em informática / Jean Eduardo Glazar. – Colatina: IFES, 2011. 102 p. : il. ISBN: 978-85-62934-37-7 1. PHP (Linguagem de programação de computador). 2. Banco de dados. 3. Sites da Web – Desenvolvimento. I. Glazar, Jean Eduar- do. II. Instituto Federal do Espírito Santo. III. Título. CDD: 005.133
  • 6. e-Tec Brasil33 Apresentação e-Tec Brasil Prezado estudante, Bem-vindo ao e-Tec Brasil! Você faz parte de uma rede nacional pública de ensino, a Escola Técnica Aberta do Brasil, instituída pelo Decreto nº 6.301, de 12 de dezembro 2007, com o objetivo de democratizar o acesso ao ensino técnico público, na mo- dalidade a distância. O programa é resultado de uma parceria entre o Minis- tério da Educação, por meio das Secretarias de Educação a Distancia (SEED) e de Educação Profissional e Tecnológica (SETEC), as universidades e escolas técnicas estaduais e federais. A educação a distância no nosso país, de dimensões continentais e grande diversidade regional e cultural, longe de distanciar, aproxima as pessoas ao garantir acesso à educação de qualidade, e promover o fortalecimento da formação de jovens moradores de regiões distantes, geograficamente ou economicamente, dos grandes centros. O e-Tec Brasil leva os cursos técnicos a locais distantes das instituições de en- sino e para a periferia das grandes cidades, incentivando os jovens a concluir o ensino médio. Os cursos são ofertados pelas instituições públicas de ensino e o atendimento ao estudante é realizado em escolas-polo integrantes das redes públicas municipais e estaduais. O Ministério da Educação, as instituições públicas de ensino técnico, seus servidores técnicos e professores acreditam que uma educação profissional qualificada – integradora do ensino médio e educação técnica, – é capaz de promover o cidadão com capacidades para produzir, mas também com auto- nomia diante das diferentes dimensões da realidade: cultural, social, familiar, esportiva, política e ética. Nós acreditamos em você! Desejamos sucesso na sua formação profissional! Ministério da Educação Janeiro de 2010 Nosso contato etecbrasil@mec.gov.br
  • 8. e-Tec Brasil5 Indicação de ícones Os ícones são elementos gráficos utilizados para ampliar as formas de linguagem e facilitar a organização e a leitura hipertextual. Atenção: indica pontos de maior relevância no texto. Saiba mais: oferece novas informações que enriquecem o assunto ou “curiosidades” e notícias recentes relacionadas ao tema estudado. Glossário: indica a definição de um termo, palavra ou expressão utilizada no texto. Mídias integradas: sempre que se desejar que os estudantes desenvolvam atividades empregando diferentes mídias: vídeos, filmes, jornais, ambiente AVEA e outras. Atividades de aprendizagem: apresenta atividades em diferentes níveis de aprendizagem para que o estudante possa realizá-las e conferir o seu domínio do tema estudado.
  • 10. e-Tec Brasil7 Sumário Palavra do professor-autor 9 Apresentação da disciplina 11 Projeto instrucional 13 Aula 1 – A linguagem PHP 15 1.1 O que é PHP? 15 1.2 Instalação 16 1.3 Sintaxe básica 19 1.4 Como testar uma página em PHP 21 1.5 Variáveis e tipos 23 1.6 Operadores 24 1.7 Estruturas de controle 25 1.8 Array 28 1.9 Funções 29 Aula 2 – Recebendo dados do formulário 31 2.1 Métodos GET e POST 31 2.2 Obtendo e validando os dados 32 2.3 Upload de arquivos 36 2.4 Headers 39 Aula 3 – Acesso, inserção e listagem no banco de dados MySQL 43 3.1 Criando o banco de dados 44 3.2 Conectando ao banco de dados 44 3.3 Inserindo dados 47 3.4 Listando os dados 52 3.4.1 Formulário dinâmico 54 Aula 4 – Consulta, exclusão e alteração no banco de dados MySQL 57 4.1 Consultando no banco de dados MySQL 57 4.2 Excluindo no banco de dados MySQL 60 4.3 Alterando no banco de dados MySQL 62
  • 11. Aula 5 – Gerenciando sessões 73 5.1 Criando uma sessão 74 5.2 Manipulando as variáveis de uma sessão 74 5.3 Excluindo a sessão 75 5.4 Caso de uso: autenticando usuários 75 5.4.3 Fazer logout 78 Aula 6 – Caso de uso: aplicação utilizando o padrão MVC 79 6.1 O que é MVC? 79 6.2 Estrutura do MVC 80 6.3 Alterando nosso sistema para o MVC 81 Referências 89 Currículo do professor-autor 90 Programação para Webe-Tec Brasil 8
  • 12. e-Tec Brasil9 Palavra do professor-autor Olá! Estudante! É um prazer tê-lo conosco. Apesar de se tratar de um curso a distância, você não está sozinho nesta jor- nada. É importante que você conheça toda a equipe envolvida neste curso: coordenadores, professores especialistas, tutores a distância e tutores presen- ciais, porque quando precisar de algum tipo de ajuda saberá a quem recorrer. Além disso, temos à nossa disposição um ambiente virtual cheio de recursos que podem nos auxiliar neste processo. A Educação a Distância (EaD), pela sua característica de amplitude e pelo uso de tecnologias modernas, representa uma nova forma de aprender, respei- tando sempre o ritmo de aprendizado de cada aluno. Na EaD você é o grande responsável pelo sucesso da aprendizagem. Seu desempenho será mais proveitoso à medida que for resolvendo os exercícios propostos e participando das discussões com os tutores e demais colegas de curso. Aprender programação requer dedicação e tempo; portanto, organize seu plano de estudo reservando um tempo todos os dias para os estudos, para que as atividades não acumulem. Desejo-lhe sucesso e dedicação! Um grande abraço! Prof. MSc. Jean Eduardo Glazar
  • 14. e-Tec Brasil11 Apresentação da disciplina Nesta disciplina estudaremos programação para web sob o enfoque do servi- dor, ou seja, depois de enviado algum dado a partir de uma página em HTML. Esta disciplina é uma continuação de Fundamentos do Desenvolvimento Web (FDW). Várias são as linguagens para criação de sistemas web. Vamos nos focar na linguagem PHP, por ser uma linguagem de fácil aprendizado, comparada com as demais, e bastante popular. Como é uma linguagem de programação, todos os conceitos aprendidos até agora serão bastante utilizados. Também trabalharemos com banco de dados, armazenando e manipulando as informações via páginas web. Nesse momento, será muito útil o conhecimento adquirido da disciplina Banco de Dados (BD). Por fim, veremos uma arquitetura para sistemas web como forma de orga- nizarmos melhor as páginas de um sistema, com a finalidade de obtermos produtividade no desenvolvimento e facilitarmos a manutenção posterior. Lembre-se, a melhor forma de aprender programação é praticando!
  • 16. e-Tec Brasil13 Disciplina: Programação para Web (carga horária: 60 h). Ementa: Linguagem para estilos. Metalinguagem. Construção de páginas dinâmicas. Integração com banco de dados. AULA OBJETIVOS DE APRENDIZAGEM MATERIAIS CARGA HORÁRIA (horas) 1.A Linguagem PHP Comparar as vantagens e desvantagens do PHP em relação a outras linguagens. Instalar e configurar o ambiente de desenvolvimento web. Conhecer a sintaxe da linguagem PHP. Construir páginas web com PHP. Caderno impresso. Ambiente Virtual de Ensino- -aprendizagem (AVEA). Sites dos programas de instalação: http://www.php.net/downloads http://www.apache.org http://www.wampserver.com http://www.easyphp.org http://netbeans.org 10 2. Recebendo da- dos do formulário Entender como os dados de um formu- lário são manipulados em um servidor com PHP. Aprender e exercitar o envio de um arquivo para o servidor a partir de uma página web. Conhecer a forma de gerenciar as infor- mações de uma conexão com o servidor. Caderno impresso. Ambiente Virtual de Ensino- -aprendizagem (AVEA). Ambiente de programação web (NetBeans). 10 3.Acesso, inserção e listagem no banco de dados MySQL Conhecer como o PHP interage com o banco de dados. Construir páginas web para inserir dados em um banco de dados. Construir páginas web para recuperar informações do banco de dados. Caderno impresso. Ambiente Virtual de Ensino- -aprendizagem (AVEA). Ambiente de programação web (NetBeans). Gerenciador de banco de dados (MySQL). 10 Projeto instrucional
  • 17. AULA OBJETIVOS DE APRENDIZAGEM MATERIAIS CARGA HORÁRIA (horas) 4. Consulta, exclu- são e alteração no banco de dados MySQL Aprender como realizar uma consulta filtrando por determinado campo. Aprender a excluir e a alterar um registro no banco de dados a partir de páginas web em PHP. Caderno impresso. Ambiente Virtual de Ensino- -aprendizagem (AVEA). Ambiente de programação web (NetBeans). Gerenciador de banco de dados (MySQL). 10 5. Gerenciando sessões Aprender para que serve uma sessão em um sistema web e como programá-la. Aprender a como utilizar a sessão para autenticar usuários. Construir páginas web para autenticar os usuários. Caderno impresso. Ambiente Virtual de Ensino- -aprendizagem (AVEA). Ambiente de programação web (NetBeans). Gerenciador de banco de dados (MySQL). 10 6. Caso de uso: desenvolvendo uma aplicação utilizando o padrão MVC Conhecer o padrão de desenvolvimento de sistemas web MVC. Construir um sistema web no padrão MVC. Caderno impresso. Ambiente Virtual de Ensino- -aprendizagem (AVEA). Ambiente de programação web (NetBeans). 10 Programação para Webe-Tec Brasil 14
  • 18. e-Tec Brasil Aula 1 – A linguagem PHP e-Tec BrasilAula 1 – A linguagem PHP 15 Objetivos Comparar as vantagens e desvantagens do PHP em relação a ou- tras linguagens. Instalar e configurar o ambiente de desenvolvimento web. Conhecer a sintaxe da linguagem PHP. Construir páginas web com PHP. 1.1 O que é PHP? PHP é uma linguagem que permite criar sites web dinâmicos, fundamentada nos dados submetidos pelo usuário e derivada dos dados contidos no ban- co de dados, que são alterados frequentemente. Vamos pegar o exemplo de uma loja virtual. Os produtos estão sempre sofrendo alterações, seja no preço, na quantidade em estoque, nos produtos em promoções, nos lança- mentos, etc. Hoje, quando você entra em uma loja virtual, verá alguns pro- dutos em promoção, outros em lançamentos, com um determinado preço. Na próxima semana que você visitar o site, pode ser que os preços estejam mais baixos, por causa de novas promoções, ou aquele produto que você tinha visto não se encontre mais em estoque, já tenha sido vendido. Passaremos a programar para web sob a visão do servidor. Para isso, utiliza- remos a linguagem PHP. Como pré-requisito, é necessário o conhecimento de HTML, principalmente de formulário, que será utilizado para enviar dados para o servidor. Portanto é extremamente importante que você revise o con- teúdo visto em Fundamentos do Desenvolvimento Web. O código PHP é executado no servidor, sendo enviado para o cliente apenas HTML. Dessa maneira é possível interagir com bancos de dados e aplicações exis- tentes no servidor, com a vantagem de não expor o código fonte para o cliente.
  • 19. Programação para Webe-Tec Brasil 16 O PHP foi criado em 1995 por Rasmus Lerdorf com o nome de Personal Home Page Tools (Ferramentas Para Página Pessoal), para auxiliar no desenvolvimen- to de páginas simples. Como teve boa aceitação e muitos programadores utilizando-as, novas versões foram desenvolvidas com cada vez mais recursos. Existem outras linguagens de programação que podemos utilizar para criar as páginas dinâmicas, como Java, Perl, ASP, etc. 1.2 Instalação Para testar as páginas PHP, não basta dar um duplo clique nos “arquivos. php”, como se faz com os .htm ou .html. É necessário ter um servidor web configurado para isso. Um dos servidores web mais utilizados é o Apache. 1.2.1 Instalação no Windows Você pode instalar o Apache e o PHP separados. Para isso basta pegar os arquivos de instalação nos respectivos sites oficiais. Porém, configurações manuais deverão ser feitas para os dois funcionarem perfeitamente. A forma mais fácil de instalar é utilizar pacotes que instalam e configuram todos os programas necessários para o desenvolvimento de páginas web de uma única vez. Um conjunto muito utilizado consiste do Apache (servidor web), MySQL (banco de dados) e PHP (linguagem para as páginas web dinâmicas), conhecido como AMP (inicial de cada produto). Quando esses produtos são instalados no Linux, chamamos de LAMP. Quando são instala- dos no Windows, chamamos de WAMP. 1.2.2 Instalação no Linux (Ubuntu) No Ubuntu também podemos instalar os programas separados, usando al- gum instalador, como o apt-get. Na mesma linha de comando é possível instalar todos os pacotes necessários, basta digitar: sudo apt-get install apache2 php5 libapache2-mod-php5 mysql-server libapache2-mod-auth-mysql php5-mysql Nas versões mais novas do Ubuntu, também é possível instalar um pacote com todos os programas. O comando é: sudo tasksel install lamp-server Pesquise sobre as outras linguagens de programação web e discuta com os colegas e tutores, no ambiente virtual de ensino-aprendizagem, destacando as vantagens e desvantagens de cada uma. servidor web É um programa de computador responsável por aceitar pedidos HTTP de clientes, geralmente os navegadores, e servi-los com páginas de respostas (em HTML) incluindo dados, imagens, sons e links. Esse programa disponibiliza um local específico no computador servidor (site) para armazenar e processar as páginas de resposta. Apache É o resultado de um esforço coletivo de vários colaboradores, para o desenvolvimento de um software gratuito, robusto e com qualidade, para a implementação de um servidor HTTP. É o servidor web mais usado no mundo. É capaz de executar códigos em PHP, Perl, Shell Script,ASP, dentre outros. Sua utilização mais conhecida é a que combina o Apache com a linguagem PHP e o banco de dados MySQL. Para mais detalhes sobre o Apache, acesse o site oficial: http://www.apache.org Os principais instaladores são:WAMP5 (http://www. wampserver.com) e EasyPHP (http://www.easyphp.org). Faça o download do Apache e instale o software em seu computador: http://www.apache.org Após instalar o Apache, faça o download do PHP e instale-o: http://www.php.net/downloads
  • 20. e-Tec BrasilAula 1 – A linguagem PHP 17 Depois da instalação será necessário reinicializar o Apache. Para isso digite: sudo /etc/init.d/apache2 restart 1.2.3 Testando o ambiente Em qualquer instalação, seja no Windows ou no Linux, um diretório específico será criado para colocar as páginas em PHP, chamado www. Quando o Apache recebe uma solicitação para exibir uma página, ele irá buscar nesse diretório. No Windows, o diretório www fica dentro do diretório de instalação do produto. Por exemplo, se você usou o EasyPHP, o diretório é: C:Arquivos de programasEasyPHP-5.3.2www O diretório “EasyPHP” pode mudar de nome de acordo com a versão instalada. No Linux, o diretório é: /var/www Podem ser criados subdiretórios dentro do diretório www. É até recomen- dado que se faça isso, para organizar melhor as páginas. Para testar o ambiente, primeiro devemos verificar se os programas estão em execução. Você pode configurá-los para iniciar automaticamente, quan- do o computador for ligado, ou manualmente. Tanto o WAMP5 quanto o EasyPHP colocam um ícone próximo ao relógio que contém as opções para inicializar (start) ou parar (stop) os processos. No WAMP5, o ícone é parecido com um velocímetro de um carro. No EasyPHP, o ícone é o desenho de letra ‘E’. Na Figura 1.1 vemos o exemplo do WAMP5 e na Figura 1.2 vemos o exemplo do EasyPHP. Figura 1.1: Exemplo do menu de opções do WAMP5 Fonte:WAMP5 (2010) instalado no Microsoft Windows XP Para mais detalhes sobre instalação no Linux: https:// help.ubuntu.com/community/ ApacheMySQLPHP
  • 21. Programação para Webe-Tec Brasil 18 Figura 1.2: Exemplo do menu de opções do EasyPHP Fonte: EasyPHP 5.3.2 (2010) instalado no Microsoft Windows XP Agora vamos criar um arquivo com extensão .php (teste.php, por exemplo) na pasta base www. Abra-o com qualquer editor de texto e digite: <?php phpinfo(); ?> Salve-o e em seguida digite em seu navegador favorito o seguinte endereço: http://localhost/teste.php. teste.php é o nome do arquivo PHP que você criou. localhost significa que o seu navegador irá procurar o arquivo no seu próprio computador, no dire- tório www configurado na instalação. Na internet, como o servidor está em outro local, substitui-se localhost pelo endereço web da empresa, como por exemplo: http://www.empresaxyz.com.br/cadastro.php Se a instalação estiver correta, uma tela com informações sobre a configura- ção do PHP deverá ser exibida, como indicado pela Figura 1.3 a seguir. Figura 1.3: Instalação do PHP com sucesso Fonte: EasyPHP 5.3.2 instalado no Microsoft Windows XP, exibido pelo Mozilla Firefox 3.5
  • 22. e-Tec BrasilAula 1 – A linguagem PHP 19 1.3 Sintaxe básica O código do PHP é embutido dentro de um arquivo HTML, quando for ne- cessário algum processamento pelo servidor. Depois que o servidor processar o código PHP, apenas o que for gerado em HTML será enviado de volta para o usuário; assim, o usuário não conseguirá ver o código em PHP, que ficará apenas no servidor. A Figura 1.4 ilustra o funcionamento de uma página web dinâmica. Navegador HTTP HTML Executa Banco de Dados Módulo PHP Páginas .PHP Servidor Web APACHE 1 2 4 3 5 Figura 1.4: Funcionamento de uma página dinâmica PHP Fonte: Equipe produção CEAD/IFES (2011) Passo 1 – O usuário em seu navegador solicita uma página em PHP, por exemplo, consulta.php. Essa solicitação é enviada pelo protocolo HTTP ao servidor web da empresa (por exemplo, o Apache). Passo 2 – O Apache chama a página PHP que foi solicitada e a executa. Passo 3 – A página PHP pode ou não fazer acesso ao banco de dados. Passo 4 – Ao final da execução do programa PHP, uma página de resposta em HTML é enviada ao Apache. Passo 5 – O Servidor web Apache repassa a página de resposta para o na- vegador que a solicitou, que a exibe. Para diferenciar o código PHP dentro da página em HTML, podem ser utili- zados os delimitadores descritos na Figura 1.5 a seguir. 1) <?php Comandos; ?> 2) <? Comandos; ?> 3) <script language=”php”> Comandos; </script> 4) <% Commandos; %> Figura 1.5: Delimitadores de código em PHP Fonte: Elaborada pelo autor
  • 23. Programação para Webe-Tec Brasil 20 O primeiro delimitador da Figura 1.5 é o padrão. O segundo é uma simpli- ficação do primeiro. Esses são os mais usados. O terceiro segue o estilo de scripts em HTML. O quarto segue o estilo do ASP. Para utilizar a forma simplificada, bem como o estilo ASP, o arquivo de configu- ração php.ini deve ser alterado, pelos campos short_open_tags e asp_tags, respectivamente. A Figura 1.6 mostra a estrutura de uma página HTML com o código PHP embutido. Figura 1.6: Exemplo de estrutura de uma programação de uma página em PHP Fonte: Elaborada pelo autor Pode haver vários blocos de PHP misturados com vários trechos de HTML. 1.3.1 Gerando código em HTML Como o código PHP é processado no servidor e apenas o HTML é enviado como resposta, utilizaremos o comando echo para gerar esse HTML. Veja o exemplo da Figura 1.7 a seguir. Figura 1.7: Exemplo de programa utilizando o comando echo Fonte: Elaborada pelo autor comando echo É a instrução que envia para a página de saída, em HTML, as informações processadas em PHP, podendo ser texto, números ou variáveis. Essas informações, na maioria das vezes, são mescladas com os comandos HTML.
  • 24. e-Tec BrasilAula 1 – A linguagem PHP 21 1.4 Como testar uma página em PHP Existem vários editores de PHP. Dentre os gratuitos, recomenda-se o PHPEditor. Porém, vamos utilizar um ambiente de desenvolvimento mais moderno, que engloba várias linguagens e que está sempre em atualização, o NetBeans. Para verificar se o seu NetBeans possui o módulo PHP instalado, basta aces- sar “Ferramentas->Plug-ins” e verificar, na aba “Instalado”, se o PHP se encontra ativado; senão, ative-o. Se não estiver na aba “Instalado”, procure-o na aba “Plug-ins disponíveis” e instale-o (é preciso estar conectado à internet). Todos os arquivos devem ser salvos com a extensão .php no diretório www da instalação do servidor web. Crie subdiretórios dentro do www para me- lhor organizar seus arquivos. Os subdiretórios dentro do diretório www devem ter permissão de gravação e escrita. O primeiro passo é abrirmos o NetBeans e criarmos um novo projeto. Para isso, realize os seguintes passos: 1. Clique em “Arquivo” > “Novo Projeto”. 2. Dentre as opções “Categorias” da janela aberta, escolha “PHP”. Dentro de “Projetos”, escolha “Aplicativo PHP”. Clique em “Próximo”. 3. Escolha um nome para o projeto (por exemplo, MeuSitePHP). 4. Na “Pasta de códigos-fonte”, escolha o diretório www, ou algum subdiretório dentro deste, por exemplo, C:/Arquivos de Programas/ EasyPHP/www/ProgWeb. No Linux seria /var/www/ProgWeb. Cli- que em “Finalizar”. Após criarmos o projeto, ele passa a ser exibido na aba “Projetos”, que fica no canto esquerdo do NetBeans. Para criar os arquivos em PHP, siga os seguintes passos: Para mais detalhes sobre o NetBeans e para fazer o download da sua instalação, acesse: http://netbeans.org
  • 25. Programação para Webe-Tec Brasil 22 1. Na aba de “Projetos”, clique com o botão direito do mouse no nome de nosso projeto. 2. Escolha as opções “Novo” > “Página da Web do PHP”. 3. Escolha um nome para a página com a extensão .php (por exemplo, PrimeiraPagina.php). Clique em “Finalizar”. PRONTO!!! Você já pode programar em PHP. A Figura 1.8 apresenta um trecho da tela mostrada após a realização dos passos acima. Figura 1.8: Criando uma página PHP no NetBeans Fonte: NetBeans IDE 6.8 instalado no Microsoft Windows XP Você também pode, e deve, criar subdiretórios dentro do seu projeto, para organizar melhor as suas páginas. Para criar subdiretórios no NetBeans, siga os passos: 1. Clique com o botão direito do mouse no nome do projeto. 2. Escolha as opções “Novo” > “Diretório”. 3. Escolha um nome para o diretório. Clique em “Finalizar”. Quando for criar novas páginas PHP, clique em cima do diretório no qual deseja colocar as páginas. Uma arquitetura para desenvolvimento web que organiza a programação das páginas de um sistema, com o objetivo de aumentar a produtividade e facilitar a manutenção, será vista na Aula 6.
  • 26. e-Tec BrasilAula 1 – A linguagem PHP 23 Depois de programar e salvar o arquivo, vamos testá-lo. Para isso, abra seu na- vegador favorito e digite: http://localhost/nomedoarquivo.php, em que: localhost – corresponde ao seu computador local; e nomedoarquivo.php – nome que você deu no seu arquivo PHP (no nosso exemplo, PrimeiraPagina.php). Se o servidor web estiver em outro computador, então troque localhost pelo IP (ou hostname) desse servidor. Caso tenha criado subdiretórios, então acrescente no endereço do navegador os subdiretórios criados. Exemplo: http://localhost/ProgWeb/cadcliente.php Nesse exemplo foi criado o subdiretório ProgWeb e dentro dele foi colocada a página cadcliente.php. 1.5 Variáveis e tipos As variáveis em PHP não precisam ser declaradas. Quando atribuímos algum valor para elas, o tipo é automaticamente reconhecido. Os tipos suportados são: • Inteiros (integer ou long); • Reais (float ou double); • Strings; • Array (vetores); • Objetos*. * Como se trata de um curso básico, a programação orientada a objetos em PHP não será vista. Os nomes das variáveis devem ser criados com um ‘$’ seguido de uma string que deve ser inicializada por uma letra ou ‘_’. Exemplos: $x = 10.4; $frase = “Exemplo de variável string”; $_cont = 0;
  • 27. Programação para Webe-Tec Brasil 24 O PHP é case sensitive, ou seja, letras maiúsculas são diferentes de minúscu- las. Portanto, para facilitar, criem as variáveis sempre em minúsculo. Os comentários podem ser de uma linha, utilizando o símbolo //, ou de mais linhas, delimitado pelos símbolos /* e */. Exemplos: $cont = 0; // Exemplo de comentário de uma linha /* Exemplo de comentário com mais de uma linha. Preste atenção nos símbolos delimitadores. */ 1.6 Operadores Os principais operadores em PHP estão descritos nos quadros a seguir: os operadores aritméticos podem ser vistos no Quadro 1.4, os operadores lógicos estão descritos no Quadro 1.5, os operadores de comparação são mostrados no Quadro 1.6 e demais operadores importantes estão no Quadro 1.7 a seguir. Quadro 1.4: Operadores aritméticos + Adição - Subtração * Multiplicação / Divisão % Módulo (resto da divisão) Fonte: Elaborado pelo autor Quadro 1.5: Operadores lógicos And E Or Ou Xor Ou exclusivo ! Negação && E || Ou Fonte: Elaborado pelo autor
  • 28. e-Tec BrasilAula 1 – A linguagem PHP 25 Quadro 1.6: Operadores de comparação == Igual a != Diferente de < Menor que > Maior que <= Menor ou igual a >= Maior ou igual a Fonte: Elaborado pelo autor Quadro 1.7: Outros operadores importantes • Concatenação de strings = Atribuição ++ Incremento (soma 1) -- Decremento (subtrai 1) Fonte: Elaborado pelo autor 1.7 Estruturas de controle As estruturas de controle servem para controlar a ordem de execução das instruções de um programa. As principais são as de seleção e repetição. 1.7.1 Comandos de seleção Os comandos de seleção servem para escolher um determinado bloco de comandos a partir da avaliação de uma expressão. Os comandos de seleção são: if (e suas variações) e o switch. Um bloco de comandos é delimitado pelos símbolos: ‘{‘ e ‘}’. if – executa um bloco de comando caso a expressão seja verdadeira (se.. então). Veja um exemplo na Figura 1.9. Figura 1.9: Exemplo do comando if Fonte: Elaborada pelo autor if...else – executa o primeiro bloco de comandos se a expressão for verda- deira e o bloco do else caso a expressão seja falsa. (se...então...senão). A Figura 1.10 mostra um exemplo.
  • 29. Programação para Webe-Tec Brasil 26 Figura 1.10: Exemplo do comando if...else Fonte: Elaborada pelo autor if...elseif...else – o elseif é utilizado quando várias condições precisam ser analisadas. Para cada elseif, uma nova expressão deve ser analisada. Quan- do todas as expressões forem falsas, então o último bloco else será executa- do. Exemplo na Figura 1.11 a seguir. Figura 1.11: Exemplo do comando if... elseif... else Fonte: Elaborada pelo autor switch – funciona semelhante a vários if juntos. Uma expressão ou variável é analisada e, de acordo com o valor, um entre vários blocos de comandos é executado. Diferentemente do if, cuja expressão somente retorna verdadeiro ou falso, no switch o valor retornado pode ser diverso. A expressão é compa- rada com cada uma das cláusulas case até que uma coincida. Quando isso acontece, o bloco de comandos correspondente é executado até encontrar o comando break, que interrompe a execução daquele bloco e finaliza o swi- tch. Se nenhuma cláusula coincidir, então o bloco delimitado pelo comando default é executado. Na Figura 1.12 temos um exemplo do switch. Figura 1.12: Exemplo do comando switch Fonte: Elaborada pelo autor
  • 30. e-Tec BrasilAula 1 – A linguagem PHP 27 1.7.2 Comandos de repetição Os comandos de repetição servem para executar repetidas vezes o mesmo bloco de comandos, até que uma condição de parada seja atingida. Os co- mandos são: while,do...while e for. A diferença entre eles está na condi- ção de parada das repetições e no contador de iteração. while – a condição de parada é testada no início da iteração. Se for verda- deira, repete o bloco de comandos; se for falsa, interrompe as repetições. Exemplo na Figura 1.13. Figura 1.13: Exemplo do while Fonte: Elaborada pelo autor do...while – funciona de maneira semelhante ao while; a diferença é que a condição é testada depois do bloco de comandos. Isso garante que pelo menos uma vez o bloco de comandos será executado. Veja um exemplo na Figura 1.14 a seguir. Figura 1.14: Exemplo do do...while Fonte: Elaborada pelo autor for – é utilizado quando se conhece a quantidade total de iterações ou quando se pretende contar essas iterações. Sua sintaxe é: for (inicialização; condição; incremento) { . . } Em que: • Inicialização – é uma instrução de atribuição executada apenas uma vez, no início do laço. Geralmente utilizada para inicializar a variável que irá controlar o número de repetições do laço. • Condição – é a expressão que controla a parada das repetições. Se for ver- dadeira, o bloco de comandos é executado novamente; se for falsa, termina.
  • 31. Programação para Webe-Tec Brasil 28 • Incremento – define a maneira como a variável de controle do laço será alterada a cada vez que o laço for repetido. Ela é executada ao final da execução de cada repetição do corpo do laço. Veja exemplo na Figura 1.15 a seguir. Figura 1.15: Exemplo do for Fonte: Elaborada pelo autor Atividades de aprendizagem 1.1: Crie um código em PHP que exiba uma sequência de números de 1 a 100. Os números pares devem ser formatados em negrito e os números ímpares em itálico. 1.8 Array Os arrays são estruturas para armazenar valores que precisam ser indexados. Diferentemente do C, em que os índices são apenas números inteiros e con- secutivos, em PHP os índices podem ser de vários tipos. Mesmo se forem in- teiros não precisam ser consecutivos. Os valores armazenados não precisam ser do mesmo tipo. Veja um exemplo na Figura 1.16, onde print_r mostra todos os elementos do array. Figura 1.16: Exemplo do array Fonte: Elaborada pelo autor Perceba que podemos trabalhar com índices diferentes em um mesmo array. Outra forma semelhante para inicializar o array pode ser vista na Figura 1.17, que é idêntica a da Figura 1.16 a seguir.
  • 32. e-Tec BrasilAula 1 – A linguagem PHP 29 Figura 1.17: Outra forma de inicializar o array Fonte: Elaborada pelo autor Crie um array e preencha com alguns estados, indexados pela sigla, como no programa na Figura 1.16. Faça uma função que receba esse array e uma sigla como parâmetro e mostre o nome do estado. 1.9 Funções As funções em PHP seguem o mesmo princípio das de outras linguagens. A diferença é que como não precisamos declarar os tipos, a lista de parâmetros possui apenas o nome das variáveis. As funções que retornam valor também não precisam informar o tipo de retorno. A sintaxe é: function nome_função (lista de parâmetros) { ... } Para organizar melhor o código, as declarações das funções ficam dentro do bloco <HEAD>, em uma página HTML. As chamadas das funções ficam no <BODY>. Veja exemplos de funções na Figura 1.18 a seguir. Figura 1.18: Exemplos de funções Fonte: Elaborada pelo autor Para mais detalhes sobre funções para manipulação de arrays, consulte: SOARES,Walace. PHP 5: conceitos, programação e integração com banco de dados. 3ª ed. São Paulo: Érica, 2007.
  • 33. Programação para Webe-Tec Brasil 30 Por definição, a passagem de parâmetros é por valor. Caso se queira passar os parâmetros por referência, para alterar uma variável dentro da função, utiliza-se o símbolo ’&’ antes do parâmetro. Veja a Figura 1.19 a seguir. Figura 1.19: Exemplo de função com passagem de parâmetro por referência Fonte: Elaborada pelo autor Com os conceitos e comandos aprendidos nesta aula é possível criar páginas web básicas em PHP. O conhecimento desses comandos é de extrema im- portância para os demais recursos que serão abordados nas próximas aulas. Portanto, somente passe para a próxima aula se todos esses conceitos e comandos foram entendidos e bem praticados. Resumo Nesta primeira aula vimos como instalar e configurar o servidor web Apache e o módulo PHP. Aprendemos a sintaxe do PHP e com isso criamos nossa primeira página web, ainda sem muitos recursos e sem interatividade. Na próxima aula entenderemos como os dados de um formulário são manipu- lados em um servidor com PHP, aprenderemos a enviar um arquivo para o servidor a partir de uma página web e conheceremos a forma de gerenciar as informações de uma conexão com o servidor. Atividade de aprendizagem 1. Pesquise nos livros os comandos para pegar a data do sistema. Faça uma função de saudação da sua página. Essa função deverá pegar a hora corrente e mostrar na tela a mensagem abaixo, com sua respectiva for- matação. 0 <= Hora < 12 à “BOM DIA” (em vermelho) 12 <= Hora < 18 à “BOA TARDE” (em verde) 18 <= Hora < 24 à “BOA NOITE” (em azul) Leituras complementares: SOARES,Walace. PHP 5: conceitos, programação e integração com banco de dados. 3ª ed. São Paulo: Érica, 2007. GUTMANS,Andi; BAKKEN, Stig Saether; RETHANS, Derick. PHP 5: programação ponderosa. Rio de Janeiro:Alta Books, 2005. Links interessantes: http://www.php.net http://www.apache.org http://pt.wikipedia.org/wiki/PHP
  • 34. e-Tec Brasil Aula 2 – Recebendo dados do formulário Objetivos Entender como os dados de um formulário são manipulados em um servidor com PHP. Aprender e exercitar o envio de um arquivo para o servidor a partir de uma página web. Conhecer a forma de gerenciar as informações de uma conexão com o servidor. Após o conhecimento da sintaxe dos comandos em PHP, vamos agora criar as páginas dinâmicas tratando as informações obtidas de outras páginas, como por exemplo, de formulários. A partir de um formulário em HTML em um navegador, o usuário envia da- dos para uma página no servidor. Aprenderemos os comandos em PHP para capturar esses dados e fazer sua validação. É extremamente importante que vocês revisem o conteúdo de formulários HTML vistos na disciplina Fundamentos do Desenvolvimento Web. 2.1 Métodos GET e POST Na definição de um formulário em HTML, três atributos serão importantes para a criação de páginas em PHP no servidor: action, method e enctype. Vejamos um exemplo na Figura 2.1 a seguir. Figura 2.1: Exemplo de definição de um formulário em HTML Fonte: Elaborada pelo autor e-Tec BrasilAula 2 – Recebendo dados do formulário 31
  • 35. • name– nome do formulário. Útil para referência em funções javascript. • action – arquivo no servidor que será chamado para tratar os dados do formulário. A página em HTML com o formulário irá passar os dados para o programa PHP especificado por este campo. • method – método de envio de dados para o servidor. Dois tipos são per- mitidos GET e POST. Mais detalhes a seguir. • enctype – define o formato de como os dados serão enviados para o ser- vidor. Necessário para o envio de arquivos, que será tratado mais adiante. Por enquanto, nem precisamos especificar nada. O exemplo acima mos- tra o valor padrão, que pode ser omitido. A diferença entre GET e POST está na forma como os dados são enviados para o servidor. No método POST, os dados são enviados ocultos. É o método recomendado quando se utiliza formulário. Já no método GET, os dados são enviados de forma aberta, na URL, na forma do par ‘campo=valor’. Para isso, utiliza-se o símbolo ‘?’ depois do nome do arqui- vo. Os pares ‘campo=valor’ são separados pelo símbolo ‘&’. Essa forma de envio é utilizada quando temos poucas informações a serem passadas, e elas podem ser especificadas direto na URL. Utiliza-se principalmente quando queremos pas- sar dados através de um link, sem os campos de um formulário. Exemplo: http://www.xxx.com/cons.php?nome=João&cidade=Colatina Nesse exemplo foi utilizado o método GET, que chama o programa cons.php, passando o campo nome igual a ‘João’ e o campo cidade igual a ‘Colatina’. 2.2 Obtendo e validando os dados Para enviar dados para o servidor, vamos criar um formulário como o da Figura 2.2 a seguir. Preste atenção no nome de cada campo. Esse nome será usado no programa PHP. Veja também o atributo action do <FORM>, ele informa o nome do arquivo PHP. Um exemplo mais real pode ser visto no site do Google. Depois que você fizer uma pesquisa qualquer, verifique o endereço que aparece. Perceba que existem vários pares ‘campo=valor’ que são passados para o servidor, mas que não têm formulário para digitar. Programação para Webe-Tec Brasil 32
  • 36. Figura 2.2: Exemplo de formulário para envio dos dados Fonte: Elaborada pelo autor e-Tec BrasilAula 2 – Recebendo dados do formulário 33
  • 37. Seja passando os dados via POST ou GET, o programa no servidor para cap- turar e tratar os dados será o mesmo. Os dados enviados para o programa PHP serão transformados em um array, $_POST, se o método de envio for o POST, e $_GET, se o método de envio foi o GET. Esses vetores são indexados pelos nomes dos campos. Se o método de envio for o POST, os nomes dos campos serão aqueles in- formados no atributo name dos comandos HTML. Se o envio for por GET, então o nome dos campos serão aqueles especificados no endereço pelo par ‘campo=valor’. Vamos agora criar um arquivo PHP com o mesmo nome dado no action do formulário (no exemplo cadcliente.php). Nessa página, vamos capturar os da- dos enviados e mostrar uma página de resposta com esses dados. Para pegar cada campo, devemos informar qual o array que contém os dados ($_POST ou $_GET) e entre colchetes [ ] o nome do campo, definido no formulário HTML. Depois de pegar os dados, podemos verificar se foram preenchidos e se estão corretos. Por exemplo: verificar se o campo foi preenchido, verificar datas, validar CPF, verificar se o e-mail é válido, etc. A Figura 2.3 mostra o código que recebe os dados e verifica se alguns cam- pos estão preenchidos; caso não estejam, mostra uma mensagem de erro e, por último, exibe na tela os dados informados. Mais adiante aprenderemos a inserir esses dados no banco de dados. Programação para Webe-Tec Brasil 34
  • 38. Figura 2.3: Página PHP que recebe os dados Fonte: Elaborada pelo autor A Figura 2.4 mostra a página exibida pelo programa acima, com os valores digitados no formulário. Figura 2.4: Resultado do envio de dados Fonte: Página exibida pelo Mozilla Firefox 3.5 Funções para validar datas, CPF, e-mail, etc. são facilmente encontradas na internet.Veja alguns links: http://codigofonte.uol.com.br/ codigos/php/validacao http://www.revistaphp.com.br http://www.criarweb.com/php http://phpbrasil.com http://www.codigofonte.net/ scripts/php. e-Tec BrasilAula 2 – Recebendo dados do formulário 35
  • 39. Note que os valores dos campos do tipo ComboBoxe ListBox são os valores definidos no atributo value da opção escolhida (<option>) e não o nome que aparece no formulário. No exemplo acima, o estado é ‘ES’. O valor do campo do tipo RadioButton também é o valor do atributo va- lue. No exemplo acima, o sexo é ‘M’ ou ‘F’. Campos do tipo CheckBox retornam true(verdadeiro) se foram marcados e false (falso), caso contrário. Pesquise na internet as funções para validar data e CPF. Acrescente essas funções ao programa da Figura 2.3 para validar nosso campo CPF e data de nascimento. Informe as mensagens de erro em vermelho. 2.3 Upload de arquivos Para enviar um arquivo para o servidor, como por exemplo uma foto, pre- cisamos inserir um campo apropriado no formulário. Esse campo exibe um botão “Procurar” que abre a janela para escolher um arquivo. O comando é: <INPUT type=”file” name=”nome_do_campo”> Para testar, vamos acrescentar um campo ao formulário da Figura 2.2 para fazer o upload de uma foto. Precisamos mudar a tag <FORM>, adicionando o atributo enctype e colocar mais uma linha, depois da confirmação da senha, para fazer o upload da foto. Os comandos alterados e acrescentados estão na Figura 2.5 a seguir. Para o upload funcionar é necessário acrescentar o atributo enctype dentro da tag <FORM>, assim: enctype=”multipart/form-data”. Figura 2.5: Formulário com campo para upload de arquivo Fonte: Elaborada pelo autor Programação para Webe-Tec Brasil 36
  • 40. Quando o arquivo é enviado para o servidor, várias informações são armazena- das em um vetor chamado $_FILES, como o nome, o tipo, o tamanho, etc. Para obter esses dados, devemos informar o nome do campo entre colchetes, assim: $arquivo = $_FILES[‘nome_do_campo’]; A variável $arquivo foi utilizada para receber o arquivo. A partir desse comando, sempre que pretendermos trabalhar com o arquivo, utilizaremos a variável $ar- quivo. Diversas informações podem ser obtidas a partir dessa variável, como: códigos de erros, se ocorrerem, tamanho, tipo e o nome temporário do arquivo. Se ocorrer algum erro no upload, o código de erro fica armazenado no atri- buto ‘error’. O código zero significa que não ocorreu nenhum erro. Para obter esse código, utilize o seguinte comando: $arquivo[‘error’] As verificações que podemos fazer são em relação ao tamanho, ao tipo do arquivo, etc. No nosso exemplo, vamos verificar se o arquivo é uma imagem (gif, jpg, png, bmp) e se o tamanho é menor que 100.000 bytes. Os coman- dos para pegar o tipo e o tamanho do arquivo, respectivamente, são: $arquivo[‘type’] e $arquivo[‘size’] O arquivo, propriamente dito, quando chega ao servidor, é colocado em um diretório temporário, configurado no arquivo php.ini. Para mover para o diretório definitivo, usa-se o seguinte comando: move_uploaded_file($arquivo[‘tmp_name’], destino) em que: $arquivo[‘tmp_name’] – pega o nome do arquivo temporário; e destino – diretório de destino do arquivo. O diretório de destino deve existir e com permissão para escrita. Se a cópia for realizada com sucesso, esse comando retorna true. Caso ocor- ra algum erro, como por exemplo, o diretório de destino não existe ou não tem permissão de gravação, essa função retornará false. e-Tec BrasilAula 2 – Recebendo dados do formulário 37
  • 41. A última etapa é mostrar a foto que foi enviada. Para isso basta colocar a tag <IMG> com o diretório destino para onde o arquivo foi copiado. A Figura 2.6 mostra o trecho de código para lidar com o upload do arquivo. Esse código deve ser colocado no programa da Figura 2.3, antes da parte que mostra os dados na tela. A Figura 2.7 mostra o resultado do envio dos dados com a imagem. Figura 2.6: Página PHP que trata um arquivo recebido Fonte: Elaborada pelo autor Programação para Webe-Tec Brasil 38
  • 42. Figura 2.7: Resultado do envio de dados com foto Fonte: Página exibida pelo Mozilla Firefox 3.5 Teste o programa da Figura 2.6. 2.4 Headers Os headers servem para o gerenciamento da conexão entre o PHP e o navegador do usuário, podendo trocar informações contidas no cabeçalho HTTP de uma página. Os headers são informações trocadas entre o navegador e o servidor de maneira transparente ao usuário, e podem conter dados sobre o tipo e a versão do navegador, a página de onde partiu a requisição (link), os tipos de arquivos aceitos como resposta, e uma série de outras informações. e-Tec BrasilAula 2 – Recebendo dados do formulário 39
  • 43. A sintaxe da função header: header(cabeçalho) Em que: cabeçalho é um comando já definido para indicar o tipo de cabe- çalho HTTP a ser usado. Por exemplo, o cabeçalho “HTTP/” indica que um código de retorno é envia- do para o navegador do cliente. O exemplo na Figura 2.8 mostra o envio de uma mensagem de “Página não encontrada”: Figura 2.8: Exemplo do envio de uma mensagem usando o header Fonte: Elaborada pelo autor Uma segunda forma de usar o header é para redirecionar para outra página. Esse comando é muito útil para, ao final de uma página puramente em PHP, redirecionar para outra página padronizada de resposta ou de erro. Usa-se o comando “Location” e logo em seguida o nome da página que se pretende redirecionar. Veja um exemplo na Figura 2.9: Figura 2.9: Exemplo de redirecionamento de página usando o header Fonte: Elaborada pelo autor O comando header deve ser usado antes de qualquer comando de exibição (echo, tags HTML, include). Usaremos o header mais adiante como forma de redirecionamento de página. Com os conhecimentos desta aula você tem a capacidade de criar páginas web dinâmicas, nas quais, a partir de um formulário em HTML em um navegador, o usuário possa enviar dados para um programa no servidor e receber uma men- sagem. Esse fluxo de informação é a base de todas as páginas web dinâmicas. Programação para Webe-Tec Brasil 40
  • 44. Resumo Nesta aula programamos nossa primeira página dinâmica com recebimento e validação de dados. Também aprendemos a enviar um arquivo junto com os dados. Porém, nossas páginas ainda não estão completas. Falta salvar os dados para que eles não se percam. Para isso é preciso acessar banco de dados a partir no PHP, que será nossa próxima Aula. Atividade de aprendizagem Acrescente no formulário da Figura 2.2 mais um campo para fazer o upload de um arquivo do tipo PDF, como se fosse o envio do currículo da pessoa. Altere o programa da Figura 2.3 para receber esse arquivo, fazer as suas va- lidações (tipo e tamanho) e coloque um link para esse arquivo, com o nome da pessoa, para quando clicar no link, abrir o arquivo PDF. Leituras complementares: SOARES,Walace. PHP 5: conceitos, programação e integração com banco de dados. 3ª ed. São Paulo: Érica, 2007. GUTMANS,Andi; BAKKEN, Stig Saether; RETHANS, Derick. HP 5: programação ponderosa. Rio de Janeiro:Alta Books, 2005. MELO,Alexandre Altair de; NASCIMENTO, Maurício G. F. PHP profissional. 2ª ed. São Paulo: Novatec, 2007. e-Tec BrasilAula 2 – Recebendo dados do formulário 41
  • 46. e-Tec Brasil Aula 3 – Acesso, inserção e listagem no banco de dados MySQL Objetivos Conhecer como o PHP interage com o banco de dados. Construir páginas web para inserir dados em um banco de dados. Construir páginas web para recuperar informações do banco de dados. Até agora já aprendemos a criar páginas dinâmicas que recebem e validam os dados, mas essas informações estão se perdendo. Precisamos armazená-las em algum lugar. Esse local é o banco de dados. Como pré-requisito, é fundamental que você revise a linguagem SQL, estudada na disciplina de Banco de Dados, por ser essa a linguagem universal dos ban- cos de dados. É por meio dela que o PHP irá “conversar” com o banco de dados. A maioria dos sites dinâmicos acessa algum banco de dados. Em alguns casos, somente para tarefas simples, como cadastrar usuários e senhas. Em outros casos, o banco de dados é vital para o funcionamento do sistema web, como uma loja virtual. Com o PHP podemos acessar diversos banco de dados, como o MySQL, PostgreSQL, Oracle, SQL Server, Firebird, Sysbase, Informix, SQLite e outros mais. Para os bancos de dados que o PHP não tem um módulo específico, podemos utilizar os drivers ODBC. Um dos bancos de dados mais utilizados com o PHP é o MySQL. O PHP pos- sui um módulo específico para esse banco. Utilizaremos o MySQL em nossos exemplos por ser um banco simples de operar e utilizar pouco processamen- to e memória, em comparação com os outros. e-Tec BrasilAula 3 – Acesso, inserção e listagem no banco de dados MySQL 43
  • 47. 3.1 Criando o banco de dados Antes de construir o site, devemos modelar os dados a serem manipulados pelas páginas, porque assim teremos uma melhor visão das informações a serem acessadas em cada página. Veja a seção sobre “Modelagem de Da- dos” da disciplina Banco de Dados. Para usarmos em nossos exemplos, vamos criar um banco de dados no MySQL com o nome ProgWebBD e construir as tabelas descritas na Figura 3.1 a seguir. Clientes idClientes: INTEGER Estados_sigla: CHAR(2) (FK) nome:VARCHAR(100) sigla: CHAR(2) nome:VARCHAR(50) cpf:VARCHAR(14) Rel_01 Estadosendereço:VARCHAR(100) dtNasc: DATE sexo: CHAR(1) login:VARCHAR(20) senha:VARCHAR(50) cinema:TINYINT(1) musica:TINYINT(1) info:TINYINT(1) Figura 3.1: Tabelas a serem utilizadas nos exemplos Fonte: Equipe produção CEAD/IFES (2011) O campo idClientes é do tipo “autoincremento”. Os campos cinema, musica e info armazenam 1 se aquela opção foi mar- cada, e 0 caso contrário. 3.2 Conectando ao banco de dados Em uma página PHP, o primeiro passo é conectar com o banco de dados. Utilizaremos o comando mysql_connect para criar essa conexão. A conexão é a “estrada” por onde trafegarão os dados da sua página até o banco de dados, e vice-versa. Programação para Webe-Tec Brasil 44
  • 48. mysql_connect – abre a conexão de uma página em PHP com o banco de dados. Sua sintaxe é: mysql_connect(servidor, usuário, senha) onde: • servidor – IP (ou hostname) é a porta do servidor onde está o banco de dados, no formato servidor: porta. Se o banco de dados estiver no mesmo computador, pode usar localhost. Se a porta não for informada, será utilizada a porta padrão, que no MySQL é a 3306. • Usuário e senha cadastrados no banco de dados. Podem ocorrer alguns erros ao se tentar abrir a conexão. Os casos mais co- muns são: não encontrar o servidor ou o usuário e a senha não terem permis- são de acesso ao banco. Caso ocorra algum erro, o ideal seria mostrar uma mensagem de erro e interromper a execução da página, já que sem a conexão não poderemos acessar o banco de dados. Para isso usaremos a função die. die – função que exibe uma mensagem e interrompe a execução da página. Sua sintaxe é: die(“mensagem”) A mensagem pode ser concatenada com a função mysql_error, que infor- ma a mensagem original do erro. Exemplo: die(“Erro ao conectar. ” . mysql_error() ); O ponto ‘.’ serve para juntar as duas mensagens, ou seja, ele é o operador que concatena strings. O die pode ser usado junto com outra função. Se der erro nessa função, o die é chamado automaticamente. Utiliza-se o operador or para associar o die a alguma função. O exemplo abaixo chama a função mysql_connect; se der erro, automaticamente o die é executado para mostrar a mensagem e interromper a execução da página. mysql_connect(localhost,”root”,”root”) or die(“Erro ao conectar. ” . mysql_error() ); e-Tec BrasilAula 3 – Acesso, inserção e listagem no banco de dados MySQL 45
  • 49. Caso a abertura da conexão ocorra normalmente, o segundo passo é escolher o nome do banco de dados que será utilizado. Em um servidor de banco de dados podem existir vários bancos. Usaremos para isso a função mysql_select_db. mysql_select_db – seleciona o banco a ser utilizado no servidor conectado anteriormente. Sua sintaxe é: mysql_select_db(“nome_banco”) Exemplo: Selecionar o banco de dados criado anteriormente para os exemplos. mysql_select_db(“ProgWebBD”); O programa da Figura 3.2 mostra o exemplo de conexão com o nosso banco de dados de exemplo. O servidor de banco de dados MySQL está no servi- dor com IP 172.16.43.10, usuário “root”, senha “root” e o nome do banco criado foi “ProgWebBD”. Figura 3.2: Exemplo de conexão com o banco de dados Fonte: Elaborada pelo autor Cada página que necessitar acessar o banco de dados deverá ter esses dois comandos no início. Como um sistema web geralmente possui várias páginas, replicar esses co- mandos não será uma boa solução. Caso tenha que mudar algum parâme- tro, como por exemplo o IP do servidor, todas as página sofrerão modifica- ções. Um trabalho e tanto! Para evitar esse trabalho de manutenção, colocam-se os comandos de cone- xão com o banco em um único arquivo e todas as páginas fazem acesso a esse arquivo utilizando o comando: Programação para Webe-Tec Brasil 46
  • 50. include ou include_once include – insere pedaços de códigos PHP de um determinado arquivo na página atual. include_once – a diferença é que este comando verifica se o arquivo já foi inserido anteriormente, ou seja, insere somente uma única vez. Sua sintaxe é: include(“nome_arquivo.php”) ou include_once(“nome_arquivo.php”) Então, o código da Figura 3.2 ficará em um arquivo, por exemplo, “conexao- bd.php”, e todas as outras páginas incluirão esse código da seguinte forma: include_once(“conexaobd.php”) PRONTO!!! Uma vez conectado com o banco de dados, podemos realizar todas as operações para manipulação dos dados: inserir, pesquisar, alterar e excluir. O que precisaremos saber para realizar essas operações é sobre a linguagem SQL. Uma conexão estabelecida com o comando mysql_connect é encerrada, automaticamente, ao final da execução da página. Caso queira encerrá-la antes disso, deve ser utilizado o comando mysql_close. mysql_close – fecha a conexão com o banco de dados. Sua sintaxe é: mysql_close(identificador) em que: identificador é a variável que indica a conexão criada. Se o iden- tificador não for fornecido, a última conexão estabelecida será encerrada. 3.3 Inserindo dados A linguagem padrão de comunicação com os bancos de dados é a lingua- gem SQL. Para fazer com que o PHP execute os comandos SQL no banco de dados MySQL, utiliza-se a função mysql_query. e-Tec BrasilAula 3 – Acesso, inserção e listagem no banco de dados MySQL 47
  • 51. mysql_query – função que executa um comando SQL no banco de dados MySQL. Retorna verdadeiro (true) em caso de sucesso e falso (false) caso contrário. Sua sintaxe é: mysql_query(comando, conexao) em que: • comando – é o comando na linguagem SQL, como: INSERT, SELECT, UPDATE, DELETE, etc. • conexão – parâmetro opcional que indica a conexão com o banco de dados. Se não for informada, utiliza a última conexão aberta. Portanto, para inserir os dados no banco, o comando em SQL que é utilizado é o INSERT. Para testarmos, vamos criar duas páginas: uma em HTML com o formulário para digitar os dados e a outra em PHP, que irá receber os dados, verificar se estão corretos e depois inserir no banco. O formulário conterá os mesmos campos que a tabela Clientes do nosso banco de dados de teste da Figura 3.1. Esse formulário será o mesmo utiliza- do na Figura 2.2, da Aula 2, com a inclusão de mais um campo para o login, chamado “txtLogin”. Esse formulário enviará os dados para a página em PHP no servidor chamada “cadclientebd.php” (atributo action da tag <FORM>). O programa em PHP no servidor será semelhante ao programa da Figura 2.3, da Aula 2. A diferença ficará por conta da inclusão dos dados no banco, ao invés de mostrar os dados na página. Para isso, vamos criar uma variável ($sql) que receberá o comando INSERT com os dados do formulário. Logo após, essa variável será passada para o mysql_query. Na sintaxe do INSERT, a parte do VALUES é em que passamos os valores para o banco de dados. É nesse ponto que usaremos as variáveis com os valores obtidos dos formulários. A Figura 3.3 apresenta este comando: Figura 3.3: Exemplo de montagem do comando SQL Fonte: Elaborada pelo autor Programação para Webe-Tec Brasil 48
  • 52. Lembre-se que na linguagem SQL, os campos do tipo string e data devem estar entre aspas simples (‘ ’). No exemplo acima, os campos $cinema, $mu- sica e $info não estão entre aspas porque são do tipo inteiro. Logo em seguida chamaremos o comando em PHP para executar esse SQL no banco de dados. Esse comando é o mysql_query e pode ser visto na Figura 3.4. Figura 3.4: Exemplo de chamada para executar o comando SQL no MySQL Fonte: Elaborada pelo autor Os campos no banco de dados do tipo “autonumeração” (ou “autoincre- mento”) não devem ser passados para o comando INSERT. Verifique que em nossa tabela de exemplo, o campo idClientes é um campo autoincremento e ele não foi passado para o INSERT. Caso queira obter o último número inserido de um campo “autoincremen- to”, utiliza-se a função mysql_insert_id. mysql_insert_id – retorna o último número inserido de um campo do tipo “autoincremento”. Sua sintaxe é: mysql_insert_id(conexao) em que: conexão é um parâmetro opcional que indica a conexão com o banco de dados. Se não for informada, utiliza a última conexão aberta. Em nosso exemplo, poderíamos criar a variável $cod para receber o código do cliente inserido, conforme exemplo na Figura 3.5 a seguir. Figura 3.5: Obtendo o último código “autoincremento” inserido Fonte: Elaborada pelo autor Os campos do formulário do tipo checkbox enviam para a página PHP o valor true se estiverem marcados e “ ” (vazio) se não estiverem marcados. Portanto, antes de passar essa variável para o comando INSERT, devemos substituir o “ ” (vazio) por zero, já que em nosso banco esses campos armazenam 0 ou 1. O valor true corresponde ao 1; portanto, não teria problema ao passar para o SQL. e-Tec BrasilAula 3 – Acesso, inserção e listagem no banco de dados MySQL 49
  • 53. Os comandos para substituir o “ ” (vazio) por zero pode ser visto na Figura 3.6: Figura 3.6: Substituindo o “ ” (vazio) por zero Fonte: Elaborada pelo autor 3.3.1 Inserindo datas no banco O MySQL trabalha com o tipo data no formato americano, ou seja, “ano-mês- -dia”. Portanto é preciso converter o nosso formato de data (“dia-mês-ano”) para o formato americano, antes de passar a data para o comando INSERT. Admitindo que a data recebida esteja no formato “dd/mm/aaaa”, sepa- ram-se os campos dia, mês e ano utilizando a função substr. substr – retorna uma parte de uma string. Sua sintaxe é: substr(texto, pos_inicial, tamanho onde: • texto – string original. • pos_inicial – posição onde inicia o pedaço da string que se deseja. A primeira letra está na posição zero. • tamanho – da substring a partir da posição inicial. Logo, o dia é o pedaço da data que inicia na posição 0 e tem tamanho 2. O mês é o pedaço da data que inicia na posição 3 e tem tamanho 2. O ano é o pedaço da data que inicia na posição 6 e tem tamanho 4. O exemplo da Figura 3.7 mos- tra o código em PHP, em que $dtNasc é a variável com a data a ser modificada. Figura 3.7: Exemplo de separação dos campos de uma data Fonte: Elaborada pelo autor Em seguida, concatenam-se os campos no formato desejado, no nosso caso “ano-mês-dia”, como mostrada na Figura 3.8 a seguir. Figura 3.8: Concatenando a data no padrão do MySQL: “ano-mês-dia” Fonte: Elaborada pelo autor Programação para Webe-Tec Brasil 50
  • 54. Podemos também verificar se essa é uma data válida. Para isso, usa-se o comando checkdate. checkdate – retorna verdadeiro (true) se a data é válida e falso (false) caso contrário. Sua sintaxe é: checkdate(mes, dia, ano) Para testar nossa data, o exemplo ficaria conforme Figura 3.9 a seguir. Figura 3.9: Função que verifica se uma data é válida Fonte: Elaborada pelo autor O programa da Figura 3.10 mostra todo o código da página cadclientebd.php, que recebe os dados do formulário, verifica se os campos estão corretos, conver- te e verifica a data e depois insere no banco de dados. e-Tec BrasilAula 3 – Acesso, inserção e listagem no banco de dados MySQL 51
  • 55. Figura 3.10: Página em PHP que insere os dados do cliente no banco Fonte: Elaborada pelo autor Crie a tabela Produtos no banco de dados MySQL com os seguintes campos: idProduto – inteiro autoincremento (chave primária) descrição – varchar(100) preço – float qtdeEstoque – inteiro dataValidade – date Crie o formulário para entrar com esses dados e a página em PHP para rece- ber, validar e inserir os dados no banco de dados. 3.4 Listando os dados Após inserir os dados no banco, temos a possibilidade de recuperá-los e mostrá-los para o usuário. O comando em SQL que faz isso é o SELECT. O comando em PHP para recuperar os dados é o mesmo usado no inserir, o mysql_query. O que muda é o comando SQL passado para o banco, que agora é o SELECT. O retorno de um SELECT no banco é um conjunto de registros. Precisamos percorrer todos esses registros, pegando o primeiro, passando para o pró- ximo, e assim por diante até ao último. O comando em PHP que faz isso é o mysql_fetch_assoc. Programação para Webe-Tec Brasil 52
  • 56. mysql_fetch_assoc – retorna um registro de uma consulta e aponta para o próximo registro. Retorna false quando não existir mais registros, ou seja, quando chegar ao último. Retorna o registro em forma de array, em que os índices são os nomes das colunas da tabela no banco de dados. Sua sintaxe é: mysql_fetch_assoc(identificador) em que: identificador é o resultado do SELECT, ou seja, o conjunto de registros. Como o mysql_fetch_assoc retorna um registro por vez, e para quando chegar ao último (false), podemos colocá-lo como condição de parada em um comando while, para percorrer todos os registros. O registro retornado a cada laço do while é guardado em uma variável do tipo array. Cada posição do array é um campo da tabela. Para pegar o valor, usa-se como índice do array o nome do campo definido na tabela do banco, desta forma: $variavel_registro[“nome_campo”] O nome do campo deve ser o mesmo usado no banco de dados. Letras mai- úsculas são diferentes de minúsculas. Para saber o total de registros retornados por uma consulta ao banco, usa- mos o comando mysql_num_rows. mysql_num_rows – retorna a quantidade de registros da última consulta ao banco. Sua sintaxe é: mysql_num_rows(identificador); em que: identificador é o resultado do SELECT, ou seja, o conjunto de registros. e-Tec BrasilAula 3 – Acesso, inserção e listagem no banco de dados MySQL 53
  • 57. O programa da Figura 3.11 mostra o exemplo de uma página que consulta todos os dados da tabela Clientes, do nosso banco de dados de teste. Para cada registro obtido, uma linha de uma tabela em HTML é criada para mos- trar os resultados. Perceba que dentro do while ficam apenas os comandos para criar uma linha da tabela (<TR>). Os comandos para abrir e fechar a ta- bela ficam antes e depois do while, respectivamente (<TABLE> e </TABLE>). A primeira linha da tabela, com os nomes dos campos, também fica fora do while, porque não pode ser repetida. Figura 3.11: Página em PHP que exibe todos os clientes Fonte: Elaborada pelo autor 3.4.1 Formulário dinâmico O procedimento de listar todos os registros pode ser útil quando queremos pre- encher algum objeto da página com os dados da tabela, como por exemplo, preencher as opções de um combobox a partir do banco de dados. Nesse caso, o formulário é dinâmico, porque qualquer alteração no banco de dados, auto- maticamente, é refletida no formulário. Situações nas quais isso pode ocorrer são inúmeras, como: preencher um combobox com todos os cursos cadastrados no banco; ou exibir as opções cadastradas no banco de dados para que um cliente possa escolher a cor de um produto; ou selecionar uma das cidades ca- dastradas para realizar a prova de um concurso; e assim por diante. Todos esses exemplos podem ser obtidos com o procedimento do progra- ma da Figura 3.11. Dentro do while é que ficam os comandos HTML para cada opção desejada. Programação para Webe-Tec Brasil 54
  • 58. Como exemplo, vamos mostrar como preencher o combobox do campo listEstado do nosso formulário da Figura 2.2, da Aula 2. Naquele formu- lário, as opções foram definidas no próprio código HTML. Vamos agora ler os estados a partir do nosso banco de dados. Utilizaremos o programa da Figura 3.11 dentro do formulário da Figura 2.2, da Aula 2, na região onde é montado o combobox listEstados. Nosso SELECT será na tabela Estados (veja Figura 3.1). Dentro do while vamos colocar os comandos para criar as opções do combobox, que é o <OPTION>. Para cada registro da tabela será criado um comando <OPTION>, mostrando o nome do estado. Para o atributo value, será usada a sigla do estado. Quando o usuário escolhe uma opção de um combobox, apenas o atributo value é enviado para o servidor; em nosso caso, somente a sigla do estado será enviada. A Figura 3.12 mostra o trecho de programa alterado do formulário para cadastro. Figura 3.12: Montando um formulário dinâmico Fonte: Elaborada pelo autor Toda página que contiver códigos em PHP deve ter a extensão .PHP. Portan- to, o formulário de cadastro de clientes que antes era apenas HTML, deve ser renomeado para a extensão PHP. Antes de testar, você deve preencher a tabela Estados com algumas informações. Com o conhecimento adquirido até agora, você é capaz de criar sites que armazenam dados em um banco de dados. Você também tem a capacidade de recuperar as informações do banco de dados e mostrá-las para o usuário. A grande maioria dos sites utiliza algum banco de dados para manipular as informações. Vimos um exemplo com o banco de dados MySQL, mas você pode trabalhar com qualquer banco de dados. e-Tec BrasilAula 3 – Acesso, inserção e listagem no banco de dados MySQL 55
  • 59. Essa é a base de toda a interação de páginas web com o banco de dados. Portanto, pratique! Teste os exemplos apresentados e faça os exercícios pro- postos. A próxima aula dependerá muito destes conceitos. Somente passe para a próxima aula quando não existir mais nenhuma dúvida. Resumo Nesta aula aprendemos a conectar com o banco de dados e a realizar as operações para inserir e listar dados. Para realizar essas operações, vimos exemplos de páginas web dinâmicas com os comandos PHP. Na próxima aula continuaremos trabalhando com bancos de dados. Aprenderemos a alterar e excluir dados do banco. Atividades de aprendizagem 1. Crie uma página em PHP para listar todos os produtos da tabela criada na terceira Atividade de aprendizagem ( Atividade 3.1) desta aula. 2. Crie a tabela Vendas no banco de dados MySQL com os seguintes campos: idVenda – inteiro autoincremento (chave primária) idCliente – chave estrangeira da tabela Clientes idProduto – chave estrangeira da tabela Produtos qtdeVendida – inteiro preçoTotal – float dataVenda – date formaPagto – inteiro (pode ser chave estrangeira de outra tabela com as formas de pagamento) Crie o formulário para entrar com os dados de uma venda. Preencha um combobox com todos os clientes cadastrados e outro com os produtos. Lembre-se de colocar no atributo value o id do cliente e do produto. Os demais campos serão do tipo texto. Se a forma de pagamento estiver em uma tabela separada, coloque um combobox para ela também. Depois crie uma página em PHP para receber os dados do formulário e inserir na tabela Vendas Leituras complementares DAVIS, Michele E.; PHILLIPS, Jon A. Aprendendo PHP e MySQL. Rio de Janeiro:Alta Books, 2008. MILANI,André. Construindo aplicações web com PHP e MySQL. São Paulo: Novatec, 2010. NIEDERAUER, Juliano. Desenvolvendo websites com PHP. 2ª ed. São Paulo: Novatec, 2004. WELLING, Luke;THOMSON, Laura. PHP e MySQL: desenvolvimento web. 3ª ed. Rio de Janeiro: Elsevier, 2005. Programação para Webe-Tec Brasil 56
  • 60. e-Tec Brasil Aula 4 – Consulta, exclusão e alteração no banco de dados MySQL e-Tec BrasilAula 4 – Consulta, exclusão e alteração no banco de dados MySQL 57 Objetivos Aprender como realizar uma consulta filtrando por determinado campo. Aprender a excluir e a alterar um registro no banco de dados a partir de páginas web em PHP. Vamos continuar interagindo com o banco de dados. Como pré-requisito, é fundamental que vocês tenham assimilado o conteúdo da aula anterior; sem ele não será possível se conectar com o banco de dados. 4.1 Consultando no banco de dados MySQL Em muitas situações, listar todas as informações de uma tabela do banco de dados não é uma boa opção. Tabelas que possuem grande quantidade de dados aumentam o tráfego da internet para trazer todas essas informações para a página. Vamos aprender agora como filtrar os dados de um consulta. Podemos rea- lizar uma consulta no banco de dados escolhendo qualquer um dos campos para pesquisar, ou uma combinação deles. Por exemplo, podemos listar to- dos os clientes que nasceram em um determinado mês, ou listar todos os funcionários com salário maior que um determinado valor, ou ainda, listar todas as vendas do último mês que ainda não foram pagas. Para selecionar determinadas informações do banco de dados, usaremos a cláusula WHERE dentro do SELECT, como vocês já viram na disciplina de Banco de Dados. O que veremos aqui é como pegar os campos de um formulário para fornecer como limite para a consulta e exibir a resposta na mesma página. Então, a nossa página terá o formulário em HTML para a consulta, e outra parte com o código em PHP para exibir o resultado, que pode ser em forma de tabela.
  • 61. Programação para Webe-Tec Brasil 58 Como exemplo, nosso formulário terá um combobox para escolher o tipo de consulta, chamado comboTipo. As opções serão por nome ou por mês de aniversário. Terá também um campo para digitarmos o valor que queremos pes- quisar, chamado txtPesquisa. Ao enviar os dados, esse formulário chamará a mesma página, para que o PHP possa exibir os dados da pesquisa. Portanto o atributo action do <FORM> apontará para o mesmo arquivo. O programa da Figura 4.1 mostra essa página, que chamaremos de “pesqclientes.php”. Figura 4.1: Programa de um formulário para pesquisar os clientes (pesqclientes.php) Fonte: Elaborada pelo autor Quando o usuário clicar no botão Enviar, os dados para pesquisar serão en- viados para a mesma página, que agora executará o PHP na parte de baixo e mostrará o mesmo formulário, mais a tabela de resposta. Porém, na primeira vez que chamarmos essa página, o PHP não pode ser executado. Ele somente será executado da segunda vez em diante, ou seja, quando ele receber os dados para a pesquisa. Para distinguir quando uma página está recebendo uma informação ou não, usaremos o comando isset. isset – retorna verdadeiro (true) se uma certa variável já foi declarada, e falso (false), em caso contrário. Sua sintaxe é: isset(variavel) Na primeira vez que a página é chamada, não temos nenhuma variável. Na se- gunda vez em diante, a página recebe as variáveis comboTipo e txtPesquisa do formulário (via método POST ou GET). Podemos utilizar qualquer uma dessas duas variáveis para testar quando o PHP será executado. Dentro do PHP, obtém-se o tipo de pesquisa que será feita, por nome ou por mês (comboTipo), e monta-se o SQL correspondente com o valor digitado em txtPesquisa. O resultado é mostrado em forma de tabela. O programa da Fi- gura 4.2 mostra o código completo da página de pesquisa pesqclientes.php.
  • 62. e-Tec BrasilAula 4 – Consulta, exclusão e alteração no banco de dados MySQL 59 Figura 4.2: Programa de uma página para pesquisar os clientes (pesqclientes.php) Fonte: Elaborada pelo autor Quando a pesquisa é com um campo do tipo string, como o nome do exem- plo anterior, usa-se a palavra LIKE no lugar da igualdade, dentro da cláusula WHERE do SELECT. O símbolo ‘%’ dentro do valor a ser pesquisado serve como curinga. Significa que pode vir qualquer caracter naquela posição. O exemplo anterior busca no banco de dados qualquer cliente que começa com o valor digitado pelo usuário. O que muda de uma pesquisa para outra são os campos e as tabelas do banco de dados, como, por exemplo, pesquisar produtos, vendas, locações, reservas, etc. Portanto, as modificações no código para realizar outro tipo de pesquisa seriam alterar o SELECT e a forma de exibir os dados. Crie uma página em PHP para pesquisar os produtos da tabela criada na Atividade de aprendizagem da aula 3. Você deve permitir pesquisar pela descrição, código e data de validade.
  • 63. Programação para Webe-Tec Brasil 60 4.2 Excluindo no banco de dados MySQL Na grande maioria dos sistemas, não se usa muito excluir informações do banco de dados, porque isso faz com que a empresa perca o histórico dos dados. O que se faz é colocar um campo na tabela que informa o estado da informação como, por exemplo: “ativo”, “inativo”, “em andamento”, “finalizado”, “aguardando resposta”, etc. Em vez de excluir o cliente do banco de dados, a empresa pode apenas mudar seu estado para inativo, para que no futuro possa realizar alguma campanha para recuperar os clientes perdidos. Mesmo não sendo muito utilizado, em algumas situações pode ser necessá- rio excluir informações do banco. Então vamos aprender a fazer isso: para a operação de excluir do banco, mais uma vez o que muda é o comando SQL. Os comandos em PHP são os mesmos: abrir a conexão, selecionar o banco e executar o comando SQL. Na maioria dos sistemas, ao excluir, é necessário conhecer pelo menos um dado da tabela. Dificilmente iremos excluir vários dados de uma vez. O ideal seria obter a informação que corresponde à chave primária da tabela, por ser uma informação única. Uma das formas de fazer isso é usar algum mecanis- mo de pesquisa para escolher a informação a ser pesquisada. Em nosso exemplo, vamos utilizar a página já criada de pesquisa. Na tabela que exibe as informações, podemos colocar em cada linha uma palavra, uma imagem ou algum outro objeto que, quando clicado, chama a página em PHP para excluir. A Figura 4.3 mostra a página resultante da pesquisa com uma imagem que corresponde à operação de excluir. Para facilitar a visualização da imagem, alguns campos da tabela de resulta- dos foram omitidos. Para o seu teste, use todos os campos da tabela. Essa imagem possui um link (tag <A> do HTML) que aponta para a página do excluir, chamada em nosso exemplo de “excluircliente.php”. Em cada imagem devemos passar o código da informação que será excluída. Usare- mos o método GET para envio de informações para a outra página (vejam a seção 2.1). O dado que passaremos será o código do cliente. Essa variável será chamada de “codigo”. O programa da Figura 4.4 mostra a página “pesqclientes.php” alterada para adicionar na tabela de resultado, mais uma coluna, que corresponde a imagem para a operação excluir. Percebam que em cada linha da tabela, o link passará via GET, a variável codigo, que receberá o id de cada cliente no banco de dados.
  • 64. e-Tec BrasilAula 4 – Consulta, exclusão e alteração no banco de dados MySQL 61 Figura 4.3: Exemplo de pesquisa com uma imagem para o excluir Fonte: Página exibida pelo Mozilla Firefox 3.5 Figura 4.4: Resultado da pesquisa com link para o “excluircliente.php” Fonte: Elaborada pelo autor Altere e execute a página “pesqclientes.php”, para colocar o link para o excluir cliente, como mostrado acima. Ao passar o mouse em cima da ima- gem do excluir, mas sem clicar, olhe na barra de status, na parte de baixo do navegador, o link de cada imagem. Perceba que o que muda de um para o outro é o código do cliente. A página “excluircliente.php” será a responsável por executar o comando SQL no banco de dados. Essa página recebe o código passado via GET, pelo link da imagem excluir, e executa o comando DELETE no banco, com a cláu- sula WHERE informando o id do cliente que será excluído. Ao final, a página é redirecionada novamente para a página de pesquisa (você poderia redire- cionar para qualquer outra página do seu sistema). O programa da Figura 4.5 mostra o código PHP completo dessa página. Figura 4.5: Programa em PHP para excluir um cliente Fonte: Elaborada pelo autor
  • 65. Programação para Webe-Tec Brasil 62 Implemente a página “excluircliente.php”, como mostrada acima, e teste suas páginas. 4.3 Alterando no banco de dados MySQL A operação de alterar dados no banco segue o mesmo princípio que as demais informações. Novamente o que muda é o comando SQL passado para o banco. Porém, o que torna uma página web um pouco mais trabalhosa para alterar dados, mas nem tanto, é que devemos ter as informações que serão altera- das. Essas informações podem estar dispostas de diversas formas em uma página. O mecanismo mais fácil e apropriado para isso é o formulário em HTML. Então, ao escolher uma determinada informação para alterar, vamos chamar uma página com o formulário já preenchido com as informações anteriores. O usuário altera no formulário os dados que deseja e depois os envia para outra página em PHP que atualizará o banco de dados. Antes de chamar o formulário com os dados, na maioria das vezes, é interes- sante usar algum mecanismo de busca, como uma página de pesquisa. Em nosso exemplo, vamos utilizar três passos para alterar os dados de um cliente: Passo 1 – usar a página “pesqclientes.php” para pesquisar o cliente de quem queremos modificar os dados. Colocar um link em cada cliente para que, ao clicar, a página “formaltcli.php” seja chamada, enviando o código do cliente via GET; Passo 2 – a página “formaltcli.php” exibirá um formulário já preenchido com os dados do cliente escolhido. Após alterar os dados clicaremos em um botão para enviá-los para a página “alterarclibd.php”; Passo 3 – a página “alterarclibd.php” atualizará o banco de dados com as informações atuais oriundas do formulário. Ao final, será redirecionado para a página com o formulário, que exibirá a mensagem de sucesso ou erro. A Figura 4.6 mostra o diagrama de navegação desse mecanismo.
  • 66. e-Tec BrasilAula 4 – Consulta, exclusão e alteração no banco de dados MySQL 63 Pesquisar Formulário PHP para alterar Banco de Dados GET (código) POST GET (mensagem) UPDATE Figura 4.6: Diagrama de navegação das páginas para alterar dados Fonte: Equipe produção CEAD/IFES (2011) 4.3.1 Passo 1 – link no pesquisar Assim, como colocamos um link para a página que exclui os dados, vamos fazer de forma semelhante para a operação de alterar. Colocaremos um link no nome de cada cliente, que chamará a página com o formulário, passando o código do cliente via GET. Poderíamos também usar uma imagem ou qualquer outro mecanismo para chamar o formulário, desde que passe o código do cliente que se deseja alterar. A linha na página “pesqclientes.php” que será alterada é o comando echo que monta cada linha da tabela, dentro do while. Perceba que a coluna re- ferente ao nome passa a ter um link para o formulário do alterar e a coluna referente à imagem do excluir continua com o link para a página de excluir. Ambos os links passam o código do cliente via método GET. A nova linha é mostrada na Figura 4.7 a seguir. Figura 4.7: Comando com o link no campo nome para chamar o alterar Fonte: Elaborada pelo autor 4.3.2 Passo 2 – exibir o formulário Na página “formaltcli.php”, antes de exibir o formulário, é necessário ob- ter os demais dados do banco, uma vez que temos somente o código do cliente passado como GET. Então, executaremos o SELECT para isso. Após, colocaremos os dados do banco em variáveis PHP que serão utilizadas para preencher o formulário. O campo do tipo data, obtido no banco de dados, está no formato “Y-m-d” (padrão do MySQL). Então temos que convertê-lo para o nosso formato “d/m/Y”, para exibir no formulário. Usaremos para isso duas funções, a strtotime e a date.
  • 67. Programação para Webe-Tec Brasil 64 strtotime – converte uma data no formato string para o formato timestamp (usado pelo PHP). Sua sintaxe é: strtotime(string_data) date – converte uma data no formato timestamp para algum formato em string. Sua sintaxe é: date(formato, timestamp) Portanto, para converter de “Y-m-d” para “d/m/Y” usaremos os seguintes comandos: $varData = date(“d/m/Y”, strtotime($varData)); Em que: $varData é a data no formato “Y-m-d”. Em cada campo do formulário colocaremos a variável PHP, correspondente ao dado obtido do banco. Como temos campos de tipos diferentes, cada um terá uma forma diferente de preencher os dados. Em todas elas, alternare- mos entre códigos HTML e PHP. a) Campos do tipo “text” Coloca o atributo value e, entre aspas duplas, abre o PHP e pega a variável correspondente com o echo. Veja a Figura 4.8 desta forma: Figura 4.8: Atribuindo valor para campos do tipo “text” Fonte: Elaborada pelo autor A expressão <?php echo $nome; ?> abre o código em PHP, pega a variável $nome com o dado obtido do banco e coloca no atributo value do campo do formulário. Todo o código PHP deve ficar dentro das aspas duplas do atributo value. b) Campos do tipo “textarea” O conteúdo desse campo fica entre as tags <TEXTAREA> e </TEXTAREA>. Então, colocaremos o código PHP com o valor a ser preenchido entre essas tags. Segue o exemplo na Figura 4.9 para o campo endereço.
  • 68. e-Tec BrasilAula 4 – Consulta, exclusão e alteração no banco de dados MySQL 65 Figura 4.9: Atribuindo valor para campos do tipo “textarea” Fonte: Elaborada pelo autor c) Campos do tipo “radio” e “checkbox” Coloca-se a palavra checked na opção que ficará marcada. Portanto, é ne- cessário testar com o comando if qual será essa opção. O exemplo na Figura 4.10 com o campo sexo ficaria assim: Figura 4.10: Atribuindo valor para campos do tipo “radio” e “checkbox” Fonte: Elaborada pelo autor d) Campos do tipo “combobox” (<SELECT>) Nesses campos, a opção marcada recebe o atributo selected. Então, uma das soluções seria semelhante a dos campos do tipo “radio”. Testa com o if e coloca o atributo selected na opção correspondente. Porém, muitas vezes, as opções de uma caixa de seleção são obtidas do banco de dados. Nesse caso, no PHP que obtém as opções do banco, coloca-se o if para testar qual opção será a selecionada. Se for a que queremos que fique marcada, então o comando <OPTION> fica com o atributo selected, como o exemplo na Figura 4.11, com o campo que lista os estados. Figura 4.11: Atribuindo valor para campos do tipo “combobox” Fonte: Elaborada pelo autor A variável $estado é obtida da tabela de Clientes, ou seja, é o estado que deverá ficar marcado. A variável $sigla é obtida de cada registro da tabela com todos os estados. A partir do formulário preenchido, o usuário poderá alterar os dados que lhe convêm. Ao clicar no botão para enviar os dados, o formulário enviará as no- vas informações para a página “alterarclibd.php”, que realizará o UPDATE
  • 69. Programação para Webe-Tec Brasil 66 no banco. Portanto, a declaração do formulário (<FORM>) ficará como no exemplo na Figura 4.12 a seguir. Figura 4.12: Definição do action para a página “alterarclibd.php” Fonte: Elaborada pelo autor O valor da chave primária de uma tabela não pode ser alterado, porque pode causar inconsistência nos dados. Porém, ela é fundamental para o processo de alterar, porque será por meio dela que o sistema identificará o registro a ser alterado. Em nosso exemplo, a chave primária é o código do cliente. Então colocare- mos um campo no formulário para esse código. Para que o usuário não pos- sa alterar esse valor, esse campo ficará oculto. Para criar um campo oculto, basta usar o atributo type com o valor hidden, como no exemplo na Figura 4.13 a seguir. Figura 4.13: Campo oculto (hidden) com o código do cliente Fonte: Elaborada pelo autor e) Mensagem de erro Os dados serão enviados para a página PHP que atualizará o banco de da- dos. Para saber se ocorreu erro ou não, redirecionaremos para a página com o formulário novamente, informando a mensagem de erro ou sucesso. Essa mensagem será enviada via o método GET, com o nome mensagem. Então, em nossa página com o formulário, colocaremos o código PHP abaixo para pegar a mensagem, caso tenha, e exibir junto com os dados. A Figura 4.14 mostra esta programação. Figura 4.14: Exibindo a mensagem de resposta Fonte: Elaborada pelo autor O programa da Figura 4.15 mostra o código completo da página “formaltcli. php”.
  • 70. e-Tec BrasilAula 4 – Consulta, exclusão e alteração no banco de dados MySQL 67
  • 71. Programação para Webe-Tec Brasil 68 Figura 4.15: Página com o formulário preenchido (“formaltcli.php”) Fonte: Elaborada pelo autor 4.3.3 Passo 3 – atualizar o banco A página “alterarclibd.php” receberá os novos dados do formulário do programa da Figura 4.15, via POST, e atualizará o banco de dados com o comando UPDATE. O programa da Figura 4.16 mostra essa página. A página para atualizar o banco é semelhante à de inserir. A diferença é que é utilizado o comando UPDATE, ao invés de INSERT. Também foram tirados os comandos echo e colocadas as mensagens em uma única variável, cha- mada $mensagem, que será enviada para a página anterior mostrá-la.
  • 72. e-Tec BrasilAula 4 – Consulta, exclusão e alteração no banco de dados MySQL 69 Figura 4.16: Página que atualiza o banco de dados (“alterarclibd.php”) Fonte: Elaborada pelo autor Após realizar uma alteração no banco de dados, como por exemplo, com o comando UPDATE, é possível obter quantos registros foram alterados. Para isso basta utilizar a função mysql_affected_rows. mysql_affected_rows – retorna a quantidade de registros que foram afe- tados por um comando SQL, como por exemplo o UPDATE. Sua sintaxe é: mysql_affected_rows(conexao) em que: conexão é um parâmetro opcional que indica a conexão com o banco de dados. Se não for informado, utiliza a última conexão aberta. Com isso, concluímos o assunto sobre banco de dados. Vimos que o proces- so de acesso e manipulação de dados independe da operação a ser feita. O que define a operação que faremos com o banco de dados é o comando em SQL, como o INSERT, SELECT, UPDATE, DELETE e outros mais. Pronto! Agora você é capaz de criar um site completo, armazenando e recuperando dados do banco de dados.
  • 73. Programação para Webe-Tec Brasil 70 Resumo Nesta aula aprendemos a realizar uma consulta filtrando por determinado campo, a excluir e a alterar um registro no banco de dados a partir de pági- nas web em PHP. Na próxima aula aprenderemos a trabalhar com sessões, o que nos permitirá, por exemplo, implementar a validação de usuário no sistema, bem como trocar dados entre as páginas de uma sessão. Encontra-se a seguir a Tabela 4.1 com o resumo dos comandos aprendidos até agora para manipulação do PHP com o banco de dados MySQL. Tabela 4.1: Resumo dos principais comandos FUNÇÃO DESCRIÇÃO PARÂMETROS mysql_connect Abre a conexão com o banco de dados. IP do servidor onde está o banco de dados. Usuário e senha com permissão de acesso ao banco de dados. mysql_select_db Seleciona o banco a ser utilizado. Nome do banco. mysql_close Fecha a conexão com o banco de dados. Conexão criada anteriormente. mysql_query Função que executa um comando SQL no banco de dados MySQL. Retorna verdadeiro (true) em caso de sucesso e falso (false) caso contrário. Comando na sintaxe SQL. mysql_insert_id Retorna o último número inserido de um campo do tipo “autoincremento” Parâmetro opcional que indica a conexão com o banco de dados. mysql_fetch_assoc Retorna um registro de uma consulta, em forma de array, e aponta para o próximo registro. Retorna false quando chegar ao último. Conjunto de registros resultante de uma consulta. mysql_num_rows Retorna a quantidade de registros da última consulta ao banco. Conjunto de registros resultante de uma consulta. mysql_affected_rows Retorna a quantidade de registros que foram afetados por um comando SQL. Parâmetro opcional que indica a conexão. mysql_error Retorna uma mensagem caso ocorra algum erro no acesso ao banco de dados isset Retorna verdadeiro (true) se uma certa variável já foi declarada, e falso (false), em caso contrário Variável a ser verificada. include e include_once Insere pedaços de códigos PHP de um determinado arquivo na página atual Nome do arquivo PHP. die Função que exibe uma mensagem e interrompe a execução da página. Mensagem a ser exibida. substr Retorna uma parte de uma string String original. Posição inicial. Tamanho da substring. continua
  • 74. e-Tec BrasilAula 4 – Consulta, exclusão e alteração no banco de dados MySQL 71 checkdate Retorna verdadeiro (true) se a data é válida, e falso (false), em caso contrário Mês, dia e ano. strtotime Converte uma data no formato string para o formato timestamp. Data no formato string (padrão americano: Y-m-d). date Converte uma data no formato timestamp para algum formato em string. Formato final da data. Data original do tipo timestamp. conclusão Fonte:Adaptado de Soares (2007) Atividades de aprendizagem 1. Crie uma página em PHP para pesquisar as vendas da tabela criada na segunda atividade dentre as Atividades de aprendizagem propostas ao final da Aula 3. Você deve permitir pesquisar todas as vendas de um determinado cliente e todas as vendas de um determinado produto. Obs.:Como na tabela Vendas tem apenas o código do cliente e do produto, será necessário pesquisar pelo nome usando as tabelas Clientes e Produtos, ou seja, no SELECT será preciso juntar (JOIN) a tabela Vendas com as tabelas Clientes e Produtos, de acordo com o tipo da pesquisa. Veja a apostila da disciplina de Bancos de Dados sobre como realizar a pesquisa unindo mais de uma tabela. 2. Implemente uma página para excluir os produtos da tabela criada na ter- ceira Atividade de aprendizagem da Aula 3. Altere a página do pesquisar produtos, criada na primeira Atividade de aprendizagem desta Aula, e implemente o PHP para excluir o produto do banco. 3. Implemente as páginas para alterar os dados do cliente, como mostrada acima e teste. 4. Faça o mesmo procedimento para alterar os dados dos produtos. Altere a página do pesquisar produtos, criada na primeira Atividade de aprendiza- gem desta Aula, para colocar o link para a página de formulário com os dados do produto preenchidos. Implemente o PHP para atualizar o banco. Leituras complementares: DAVIS, Michele E.; PHILLIPS, Jon A. Aprendendo PHP e MySQL. Rio de Janeiro:Alta Books, 2008. MILANI,André. Construindo aplicações web com PHP e MySQL. São Paulo: Novatec, 2010. NIEDERAUER, Juliano. Desenvolvendo websites com PHP. 2ª ed. São Paulo: Novatec, 2004. WELLING, Luke;THOMSON, Laura.PHP e MySQL: desenvolvimento web. 3 ª ed. Rio de Janeiro: Elsevier, 2005.
  • 76. e-Tec Brasil Aula 5 – Gerenciando sessões Objetivos Aprender para que serve uma sessão em um sistema web e como programá-la. Aprender a como utilizar a sessão para autenticar usuários. Construir páginas web para autenticar os usuários. Esta Aula é voltada para o gerenciamento de sessões em sistemas web. O uso de sessões permitirá que informações sejam trocadas entre páginas web de uma mesma sessão. Com isso, será possível fazer a validação do usuário em uma página e verificar em todas as outras se o usuário foi autenticado ou não. E ainda mais, de posse do tipo do usuário (administrador, gerente, caixa, operador, etc.), é possível fazer controle de acesso, programando em cada página os tipos de usuários que podem acessá-las. A cada página visitada por um usuário, uma nova conexão é criada pelo HTTP do navegador ao servidor. As informações da conexão anterior não são mantidas. Entretanto, em diversas situações é desejável que certas informa- ções sejam armazenadas temporariamente, entre uma página e outra. Como exemplo, pode-se citar a autenticação de login, que é feita em uma página e em todas as outras é necessário verificar se o usuário está logado, além de permitir obter os dados desse usuário em todas as páginas. Para testar o uso de sessões, vamos utilizar o login e senha cadastrados na tabela de Clientes, como o modelo de dados da Figura 3.1, da Aula 3. Outro exemplo é o carrinho de compras. Enquanto o usuário visita várias páginas, o carrinho de compras armazena os produtos comprados. Sessão Uma sessão é basicamente um meio de mantermos dados durante a navegação por várias páginas de um site. Quando uma sessão é aberta, ela recebe um identificador único, o que per- mite ao PHP recuperar os dados vinculados àquela sessão. e-Tec BrasilAula 5 – Gerenciando sessões 73
  • 77. 5.1 Criando uma sessão Para criar uma sessão, usa-se o comando: session_start(); Após esse comando, um array, chamado $_SESSION, é criado para manipu- larmos as informações armazenadas. Com esse array é possível incluir uma nova variável, alterar as existentes e excluir uma ou todas as variáveis. As páginas em que for preciso acessar informações do array $_SESSION, deve- -se usar também o comando session_start(), para acessar a sessão criada. 5.2 Manipulando as variáveis de uma sessão Os dados armazenados em uma sessão são armazenados no array $_SESSION. O índice desse array, entre colchetes, é o nome da variável de sessão. Para criar uma nova variável na sessão, basta colocar seu nome como índice do array $_SESSION. O exemplo da Figura 5.1 mostra a criação da sessão e das variáveis login, tipo e nome, obtidas do banco de dados, depois de validar o login 3 e a senha do usuário. Figura 5.1: Criação da sessão e suas variáveis Fonte: Elaborada pelo autor O procedimento para acessar uma variável já presente no <IT>array<IT> $_ SESSION é o mesmo. Em nosso exemplo acima, poderíamos obter o nome e o login do usuário em qualquer página. Para eliminar uma variável de uma sessão, utiliza-se o comando: unset($_SESSION[“nome_da_variável”]) Programação para Webe-Tec Brasil 74
  • 78. 5.3 Excluindo a sessão Uma sessão é automaticamente eliminada quando o navegador do usuário é fechado. Caso queira destruir a sessão antes disso, como por exemplo, ao clicar em um botão do tipo “sair” ou “logout”, devem ser realizadas três etapas. A primeira é acessar a sessão com o comando session_start(). A segunda é a liberação de todas as variáveis da sessão com o comando session_unset(). A última é a destruição da sessão com o comando: session_destroy(); O programa da Figura 5.2 mostra o exemplo de um código PHP chamado a partir de um botão “sair” ou “logout”, para finalizar a sessão. Após encerrar a sessão, a página é redirecionada para o formulário inicial de login. Figura 5.2: Página que finaliza uma sessão (“logout.php”) Fonte: Elaborada pelo autor 5.4 Caso de uso: autenticando usuários Para testarmos o uso de sessões, vamos criar as páginas para fazer a autenticação do usuário. No nosso banco de dados de exemplo, na tabela Clientes, já temos o login e a senha dos usuários. Vamos utilizar essa tabela para validar o usuário. 5.4.1 Formulário de login Vamos criar um formulário, chamado “formlogin.php”, com os campos de login e senha. Esse formulário enviará os dados para o PHP “login.php”, via POST, que consultará o banco de dados verificando se o login e a senha estão corretos. Se estiverem corretos, então cria a sessão, coloca as variáveis login e nome,e redireciona para a página inicial do sistema. Se o login e a senha não conferem, então redireciona para o formulário de login, passan- do uma mensagem de erro via GET, isso para que no próprio formulário de login o usuário possa ver a mensagem de erro e digitar novamente o login e a senha. A Figura 5.3 mostra o diagrama de navegação desse processo. e-Tec BrasilAula 5 – Gerenciando sessões 75
  • 79. Pesquisa Principal PHP para conferir no banco Banco de Dados Formulário Login POST ERRO: GET (mensagem) validado SELECT Figura 5.3: Diagrama de navegação para realizar o login Fonte: Equipe produção CEAD/IFES (2011) No formulário de login, vamos colocar o código PHP para exibir a mensagem de erro, caso ocorra. A mensagem ficará acima dos campos. Você pode colocar a mensagem em outro local, caso deseje. O programa da Figura 5.4 mostra o código do formulário “formlogin.php” e o programa da Figura 5.5 mostra o PHP “login.php”. Figura 5.4: Formulário de login (“formlogin.php”) Fonte: Elaborada pelo autor Programação para Webe-Tec Brasil 76
  • 80. Figura 5.5: PHP para conferir login e senha no banco (“login.php”) Fonte: Elaborada pelo autor A página principal é o ponto de entrada do seu sistema. Crie essa página com links para todas as operações que implementamos, como cadastrar e pesquisar cliente, cadastrar e pesquisar produtos, cadastrar e pesquisar ven- das, e assim por diante. 5.4.2 Verificar a sessão Uma vez autenticado o usuário e criada a sessão, todas as outras páginas, no seu início, irão validar se a sessão foi criada, para evitar que uma página seja acessada sem passar pelo processo de login. Uma página somente é acessada se existe uma sessão. Uma sessão existe somente se o usuário foi autenticado. Para verificar se o usuário foi autenticado, basta verificar se a variável login está registrada na sessão, pois ela somente é adicionada quando o login e a senha são validados. Se não estiver, é porque o usuário não está logado; nesse caso, redirecione para o formulário de login. Como todas as páginas devem verificar se o usuário está logado, vamos colocar esse código em um arquivo separado, e todas as páginas incluem- -no com o comando include_once. O programa da Figura 5.6 mostra esse código, chamado “validar.php”. Figura 5.6: Verificar se o usuário está logado (“validar.php”) Fonte: Elaborada pelo autor e-Tec BrasilAula 5 – Gerenciando sessões 77
  • 81. Em todas as páginas do seu sistema, basta incluir o “validar.php” no início, antes de qualquer coisa, e da seguinte forma, conforme Figura 5.7. Figura 5.7: Incluir o programa de validação de sessão em cada página Fonte: Elaborada pelo autor 5.4.3 Fazer logout Para sair do seu sistema, basta colocar um link “sair” ou “logout” na página principal, que aponte para o PHP do programa da Figura 5.2. Com essas páginas, completamos nosso site com a autenticação de usuários, muito utilizada nos sites de hoje em dia. Mas a sessão não serve apenas para isso. Ela pode ser usada para a troca de informação entre as páginas. Uma página adiciona uma informação na sessão e outra página a recupera. Isso pode ser feito nas páginas de alteração de dados, na Aula 4, para transmitir o código do cliente e seus dados para as páginas que exibirão e alterarão os dados do cliente. Tente você fazer essa mudança. Resumo Nesta aula, você viu tudo o que precisava para criar sistemas web com aces- so a banco de dados e autenticação de usuários. Porém a programação que fizemos misturou várias linguagens em um único arquivo. Na próxima aula, veremos uma metodologia para organizar melhor os arquivos, separando a programação da parte visual (HTML e CSS), regras do negócio (PHP) e mani- pulação do banco de dados (SQL). A seguir, você encontra na Tabela 5.1 os principais comandos para trabalhar com sessões. Tabela 5.1: Principais comandos para trabalhar com sessões FUNÇÃO DESCRIÇÃO PARÂMETROS session_start Cria uma nova sessão ou acessa uma já criada. session_destroy Destrói a sessão. $_SESSION Array com os dados compartilhados pela sessão. Nome da variável entre colchetes. unset Elimina UMA variável da sessão. Nome da variável da sessão. session_unset Eliminam TODAS as variáveis da sessão. Fonte:Adaptado Soares (2007) Atividades de aprendizagem Implemente o processo de autenticação do usuário para todas as páginas do seu sistema, como mostrado acima. Crie a página principal com os links para todas as suas operações e para a operação sair (logout). Tente acessar diretamente uma página, sem se logar, para ver o que acontece. Programação para Webe-Tec Brasil 78
  • 82. e-Tec Brasil Aula 6 – Caso de uso: aplicação utilizando o padrão MVC Objetivos Conhecer o padrão de desenvolvimento de sistemas web MVC. Construir um sistema web no padrão MVC. Chegamos à nossa última aula de nossa disciplina. Esta Aula é voltada, prin- cipalmente, para aqueles que irão trabalhar com desenvolvimento de siste- mas, seja web ou não. Vamos aprender a organizar melhor o código para que o processo de desen- volvimento seja produtivo, com melhor qualidade e com menos erros. E caso tenha erros, que sejam de fácil correção. Para isso, vamos aprender uma metodologia que separa o sistema em camadas, o MVC. 6.1 O que é MVC? O padrão MVC (do inglês Model-View-Controller) separa os dados (Model) do layout (View). Dessa forma, alterações feitas no layout não afetam a ma- nipulação de dados, que por sua vez poderão ser reorganizados sem alterar o layout. O problema é resolvido introduzindo-se um componente entre a manipulação dos dados e a apresentação: o fluxo da aplicação (Controller). O MVC é usado em padrões de projeto de software, mas abrange mais a arquitetura de uma aplicação do que é típico para um padrão de projeto. 6.1.1 Vantagens Como o modelo MVC gerencia múltiplos visualizadores usando o mesmo modelo, é fácil manter, testar e atualizar sistemas múltiplos. Como a parte visual é separada do modelo de negócio, é possível alterar a parte visual sem alterar o sistema todo. É muito simples adicionar novas funcionalidades apenas incluindo seus visualizadores e controles sem alterar o que já foi feito, tornando a aplicação Controller O controller (controlador) é responsável por transformar eventos gerados pela interface em ação de negócios. e-Tec BrasilAula 6 – Caso de uso: aplicação utilizando o padrão MVC 79
  • 83. escalável. É possível ter desenvolvimento em paralelo para o modelo, visu- alizador e controle, pois são independentes, ganhando em produtividade. Dentre as principais vantagens podemos destacar: • reaproveitamento de código; • facilidade de manutenção; • integração de equipes e/ou divisão de tarefas; • camada de persistência independente; • implementação de segurança; • facilidade na alteração da interface da aplicação; • aplicação escalável. 6.1.2 Desvantagens As vantagens superam em muito as desvantagens, mas mesmo assim pode- mos citar alguns pontos desfavoráveis: • requer uma quantidade maior de tempo para analisar e modelar o sistema; • requer pessoal especializado; • não é aconselhável para pequenas aplicações. 6.2 Estrutura do MVC O MVC possui três componentes: modelo, visão e controlador (veja Figura 6.1). a) Modelo – representa os dados da aplicação e as regras de negócio que governam o acesso e a modificação dos dados. O modelo fornece ao controlador a capacidade de acessar as funcionalidades da aplicação en- capsuladas pelo próprio modelo. Pode ainda ser subdividido em “regras do negócio” e “persistência dos dados”. b) Visão – renderiza o conteúdo de uma parte particular do modelo e enca- minha para o controlador as ações do usuário; acessa também os dados do modelo via controlador e define como esses dados devem ser apresentados. Apresenta os dados para o usuário sem se preocupar com a origem deles. c) Controlador – define o comportamento da aplicação. É ele que inter- preta as ações do usuário e as mapeia para chamadas do modelo. Com base na ação do usuário e no resultado do processamento do modelo, Programação para Webe-Tec Brasil 80
  • 84. o controlador seleciona uma visualização a ser exibida como parte da resposta à solicitação do usuário. Há, normalmente, um controlador para cada conjunto de funcionalidades relacionadas. VISÃO (Navegador) CONTROLADOR MODELO (Regras de Negócio) Figura 6.1: Estrutura do MVC Fonte: Equipe produção CEAD/IFES (2011) 6.3 Alterando nosso sistema para o MVC As páginas do nosso sistema estão todas misturadas. Temos páginas com a interface visual, regras de negócio e manipulação de dados em um único local. Isso dificulta a produtividade do processo de desenvolvimento e, caso tenha erro, fica mais difícil encontrá-lo. Como vocês mesmo podem ter observado, algumas páginas possuem várias linguagens misturadas, como: o HTML para a parte visual; o PHP para a vali- dação e regras de negócio; e o SQL para a persistência de dados. Nossos exemplos foram desenvolvidos dessa forma de propósito. Primeiro, para mostrar como seria o raciocínio lógico do processo de páginas web. E depois para que você possa comparar com uma arquitetura comprovada- mente melhor para desenvolvimento de sistemas. Portanto, vamos agora separar nossos códigos. Tudo que for para a interface visual, seja para entrada de dados ou para a saída de dados (por exemplo, mensagens de erro), será separado na camada da visão. Criaremos um ar- quivo, chamado “controlador.php” que irá receber todas as requisições da interface gráfica, fazer a validação dos dados e chamar as funções cor- respondentes à camada do modelo, que por sua vez, ficarão em arquivos separados. Na camada do modelo ficarão as funções em PHP referentes ao que o sistema faz, ou seja, as suas operações. Para que o sistema fique independente do banco de dados a ser usado, criare- mos uma camada, chamada persistência, que fará o mapeamento das funções do modelo para o banco de dados MySQL. Se o banco de dados mudar, o que pode acontecer com qualquer sistema, basta alterarmos apenas as funções da camada de persistência, sem ter que alterar todas as páginas do sistema. e-Tec BrasilAula 6 – Caso de uso: aplicação utilizando o padrão MVC 81
  • 85. 6.3.1 Persistência dos dados Vamos começar separando as funções referente ao acesso ao banco de da- dos MySQL. Essas funções são todas aquelas que começam com “mysql_”. Vamos mapear as funções da camada do modelo nas funções do MySQL. Poderíamos fazer uma camada de persistência para cada tipo de banco de dados. O programa da Figura 6.2 mostra como seria essa persistência. Figura 6.2: Camada de persistência dos dados (“persistencia.php”) Fonte: Elaborada pelo autor Se for usar outro banco de dados, basta implementar outra camada, alterando o código dentro de cada função. Por exemplo, se o banco fosse o PostgreSQL, as fun- ções seriam: pq_connect, pg_select_bd, pg_query, etc. 6.3.2 Modelo de negócio Nesta camada ficam as funções referentes aos casos de uso do sistema, ou seja, as funcionalidades que o sistema terá. Por exemplo, as operações que fazemos com o cliente são: incluir, alterar, excluir e pesquisar. Então, cada uma dessas operações será transformada em uma função. Podemos separar as fun- ções de acordo com os elementos do sistema. Por exemplo, todas as opera- ções referentes ao cliente ficarão em um arquivo chamado de “clientes.php”. As operações sobre os produtos ficarão em outro arquivo, e assim por diante. Programação para Webe-Tec Brasil 82
  • 86. A camada do modelo de negócio não gera nenhum comando em HTML. O retorno, sucesso ou fracasso é retornado para o controlador que será res- ponsável por montar a página de resposta. O programa da Figura 6.3 mostra como ficarão as operações com os clientes. É o mesmo código já visto, porém em nova arquitetura. Perceba que quando for necessário acessar o banco de dados, as funções chamadas serão as da camada de persistência do programa da Figura 6.2. e-Tec BrasilAula 6 – Caso de uso: aplicação utilizando o padrão MVC 83
  • 87. Figura 6.3: Operações com os Clientes (“clientes.php”) Fonte: Elaborada pelo autor A função validarCampos foi separada porque é repetida no incluir e alte- rar, que ficaram mais simples e muito parecidas. Todas as funções seguem o mesmo padrão: validar os campos, criar a conexão com o banco de dados e chamar a função da camada de persistência. 6.3.3 Controlador O controlador será apenas um arquivo PHP. Ele receberá da interface visual o código da operação e os dados, e chamará a função correspondente da ca- mada do modelo, retornando a mensagem de erro ou sucesso para a página que originou a requisição. Todas as páginas de interface visual deverão ter um campo que informa qual operação o controlador chamará. Em nossos exemplos, esse campo será chamado de operação. As possíveis operações serão todas aquelas da camada do modelo, por exemplo, as fun- ções do arquivo clientes.php do programa da Figura 6.3: incluirCliente, alterarCliente, excluirCliente, etc. O inserir e alterar – enviam os dados para o servidor com o método POST e o excluir envia com o método GET. Para padronizar o controlador, vamos adotar o método GET. Portanto, os formulários deverão ser alterados. O pro- grama da Figura 6.4 mostra um exemplo da estrutura do controlador. Programação para Webe-Tec Brasil 84
  • 88. Figura 6.4: Estrutura do controlador (“controlador.php”) Fonte: Elaborada pelo autor e-Tec BrasilAula 6 – Caso de uso: aplicação utilizando o padrão MVC 85
  • 89. 6.3.4 Camada da visão Páginas COM formulário – para as páginas com formulário (em nosso exemplo: formclientes.php, formaltcli.php e login.php) as mudanças serão as seguintes: a primeira é passar a enviar os dados para o controlador. Para padronizar o controlador, os formulários também passarão os dados via GET. A segunda é colocar um campo escondido para definir qual a ope- ração que o controlador fará. A terceira é colocar a mensagem de resposta fornecida de volta pelo controlador. Para enviar os dados para o controlador com o método GET, basta alterar os atributos action e method, da seguinte forma, conforme a Figura 6.5. Figura 6.5: Alterando o método de envio do formulário para GET Fonte: Elaborada pelo autor A segunda mudança, conforme já mencionado, é colocar um campo escon- dido para indicar ao controlador qual a operação ele fará. Como exemplo, chamaremos esse campo de operação. O valor a ser passado (atributo value) deverá ser o mesmo valor com o qual o controlador fará a comparação. Cada operação deverá ter um valor diferente. Por exemplo: “incluirCliente”, “alte- rarCliente”, “excluirCliente”, etc., conforme a Figura 6.6. Figura 6.6: Campo operação oculto (hidden) Fonte: Elaborada pelo autor A terceira mudança, conforme já mencionado, é colocar em algum lugar da sua página a mensagem de resposta, caso tenha, de sucesso ou falha da operação. Essa mensagem será enviada do controlador para a página, usan- do o método GET. Em nosso exemplo, veja o controlador, o nome do campo foi chamado de mensagem. O código em PHP a ser inserido será como o apresentado na Figura 6.7 a seguir. Figura 6.7: Exibindo a mensagem de resposta Fonte: Elaborada pelo autor Programação para Webe-Tec Brasil 86
  • 90. Páginas SEM formulário –para as páginas que não possuem formulário, apenas links para outras páginas, enviando os campos via método GET, as mudanças serão apenas alterar o link para o controlador e adicionar o campo que corresponde à operação. Em nosso exemplo, a única mudança será no link do excluir da página de pesquisa “pesqclientes.php” (veja a Figura 6.8). Figura 6.8: Link do excluir apontando para o controlador Fonte: Elaborada pelo autor As operações de consulta ao banco também podem ser colocadas no contro- lador, porém o processo é mais complicado, requer um estudo mais aprofun- dado do MVC. Por enquanto deixe da forma que se encontra, dentro de pá- ginas da camada da visão. Para quem for trabalhar com desenvolvimento de sistemas web, será muito importante apronfudar-se mais nessa metodologia. Perceba que antes, a cada página de formulário, tínhamos uma página em PHP para realizar aquela operação. Em um sistema maior, a quantidade de arquivos para organizar seria muito grande. Com o MVC, continuamos com as páginas da interface gráfica, porém as pá- ginas em PHP no servidor ficaram bastante reduzidas. Temos o controlador, o arquivo de persitência e arquivos nos quais podemos agrupar as funções de cada elemento do sistema. Por exemplo, todas as operações referentes a “produto” ficariam em um arquivo, as operações referentes a “vendas” em outro arquivo, e assim por diante. Resumo Nesta Aula, conhecemos o padrão de desenvolvimento de sistemas web MVC. Vimos como organizar melhor o código para que o processo de de- senvolvimento seja mais produtivo, com melhor qualidade e com menos er- ros. Aprendemos a separar a programação da parte visual (HTML e CSS), regras do negócio (PHP) e manipulação do banco de dados (SQL). No fim, alteramos uma parte do nosso sistema web de exemplo para o padrão MVC. Caro estudante, chegamos ao final desta disciplina. Espero que você tenha gostado e que seja capaz de desenvolver sistemas web. Diverti-me criando Aprender mais sobre MVC é muito importante caso você pretenda trabalhar com programação web. Seguem alguns links: http://www.dsc.ufcg.edu. br/~jacques/cursos/map/html/ arqu/mvc/mvc.htm http://codeigniterbrasil.com/ passos-iniciais/mvc-model- view-controller/ http://www.tiagolemos.com. br/2009/07/10/o-que-e-o-mvc- model-view-controller/ http://msdn.microsoft.com/en- us/library/ms978748.aspx. e-Tec BrasilAula 6 – Caso de uso: aplicação utilizando o padrão MVC 87
  • 91. essas páginas e também aprendi um pouquinho mais sobre PHP. Mas isso não é tudo! Temos muito mais recursos em PHP que não daria tempo de estudar nesta disciplina. Caso você se interesse, veja as referências no final de cada aula e na seção “Referências”. Atividades de aprendizagem 1. Faça as alterações do seu sistema para o MVC. Comece com as opera- ções sobre os clientes, como descrito acima. 2. Acrescente no MVC as operações com os “produtos”. Comece criando o arquivo com as funções referentes a “produtos”. Depois altere o contro- lador para fazer a ligação das páginas visuais com essas funções. 3. Acrescente no MVC as operações de login. No controlador teremos mais um else if para a validação do login e senha e criação da sessão. Nas demais páginas, coloque o PHP para verificar se a sessão foi criada, como na Aula 5. Programação para Webe-Tec Brasil 88
  • 92. Referências DAVIS, Michele E.; PHILLIPS, Jon A. Aprendendo PHP e MySQL. Rio de Janeiro: Alta Books, 2008. SOARES,Walace. PHP 5: conceitos, programação e integração com banco de dados. 3ª ed. São Paulo: Érica, 2007. GUTMANS,Andi; BAKKEN, Stig Saether; RETHANS, Derick. PHP 5: programação ponderosa. Rio de Janeiro:Alta Books, 2005. MELO, Alexandre Altair de; NASCIMENTO, Maurício G. F. PHP profissional. 2ª ed. São Paulo: Novatec, 2007. MILANI, André. Construindo aplicações web com PHP e MySQL. São Paulo: Novatec, 2010. NIEDERAUER, Juliano. Desenvolvendo websites com PHP. 2ª ed. São Paulo: Novatec, 2004. WELLING, Luke; THOMSON, Laura. PHP e MySQL: desenvolvimento web. 3. ed. Rio de Janeiro: Elsevier, 2005. e-Tec Brasil89Referências
  • 93. Currículo do professor-autor Graduado em Ciência da Computação pela Universidade Federal de Viçosa-MG (1997) e mestre em Engenharia de Produção/Pesquisa Operacional pela UFRJ/ COPPE (2000). Trabalhou três anos como Analista de Sistemas e líder de projeto pela DBA Engenharia de Sistemas prestando serviços de desenvolvimento de sistemas para a Caixa Econômica Federal, no Rio de Janeiro. Foi professor do Curso de Ciência da Computação da Faculdade de Aracruz (FACHA, hoje FAA- CZ) de 2002 a 2007. É professor efetivo do Instituto Federal do Espírito Santo (IFES) desde 2006, lecionando disciplinas para os cursos: Técnico em Informática, Superior de Tecnologia em Redes de Computadores e Sistemas de Informação, onde atua como coordenador. Na EaD, trabalha desde 2008 como professor- -autor-formador e tutor a distância nos cursos do IFES: Tecnólogo em Análise e Desenvolvimento de Sistemas e Técnico em Informática. Para mais informações, veja o currículo completo na Plataforma Lattes: http://lattes.cnpq.br/4033155608776526 Programação para Webe-Tec Brasil 90
  • 94. Curso Técnico em Informática Programação para Web Jean Eduardo Glazar
  • 95. Curso Técnico em Informática Fundamentos do Desenvolvimento Web Keila Brito
  • 96. Fundamentos do Desenvolvimento Web Keila Brito 2011 Colatina - ES
  • 97. Presidência da República Federativa do Brasil Ministério da Educação Secretaria de Educação a Distância Equipe de Elaboração Instituto Federal do Espírito Santo – IFES Coordenação Institucional Guilherme Augusto De Morais Pinto/IFES João Henrique Caminhas Ferreira/IFES Coordenação do Curso Allan Francisco Forzza Amaral/IFES Professora-autora Keila Brito/IFES Comissão de Acompanhamento e Validação Universidade Federal de Santa Catarina – UFSC Coordenação Institucional Araci HackCatapan/UFSC Coordenação do Projeto Silvia Modesto Nassar/UFSC Coordenação de Design Instrucional Beatriz Helena Dal Molin/UNIOESTE e UFSC Coordenação de Design Gráfico André Rodrigues/UFSC Design Instrucional Gustavo Pereira Mateus/UFSC Web Master Rafaela Lunardi Comarella/UFSC Web Design Beatriz Wilges/UFSC Mônica Nassar Machuca/UFSC Diagramação Bárbara Zardo/UFSC Juliana Tonietto/UFSC Marília C. Hermoso/UFSC Revisão Júlio César Ramos/UFSC Projeto Gráfico e-Tec/MEC © Instituto Federal do Espírito Santo Este Caderno foi elaborado em parceria entre o Instituto Federal do Espírito Santo e a Universidade Federal de Santa Catarina para o Sistema Escola Técnica Aberta do Brasil – e-Tec Brasil. B862f Brito, Keila Fundamentos do Desenvolvimento Web: Curso Técnico em Informática / Keila Brito. – Colatina: CEAD / Ifes, 2011. 124 p. : il. Inclui Bibliografia ISBN: 978-85-62934-04-9 1. Sites da Web - Desenvolvimento. 2. HTML (Linguagem) de marcação de documento). 3. Folhas de estilo. 4. Material didático. I. Instituto Federal do Espírito Santo. II. Título. CDD: 004.678
  • 98. e-Tec Brasil33 Apresentação e-Tec Brasil Prezado estudante, Bem-vindo ao e-Tec Brasil! Você faz parte de uma rede nacional pública de ensino, a Escola Técnica Aberta do Brasil, instituída pelo Decreto nº 6.301, de 12 de dezembro 2007, com o objetivo de democratizar o acesso ao ensino técnico público, na mo- dalidade a distância. O programa é resultado de uma parceria entre o Minis- tério da Educação, por meio das Secretarias de Educação a Distancia (SEED) e de Educação Profissional e Tecnológica (SETEC), as universidades e escolas técnicas estaduais e federais. A educação a distância no nosso país, de dimensões continentais e grande diversidade regional e cultural, longe de distanciar, aproxima as pessoas ao garantir acesso à educação de qualidade, e promover o fortalecimento da formação de jovens moradores de regiões distantes, geograficamente ou economicamente, dos grandes centros. O e-Tec Brasil leva os cursos técnicos a locais distantes das instituições de en- sino e para a periferia das grandes cidades, incentivando os jovens a concluir o ensino médio. Os cursos são ofertados pelas instituições públicas de ensino e o atendimento ao estudante é realizado em escolas-polo integrantes das redes públicas municipais e estaduais. O Ministério da Educação, as instituições públicas de ensino técnico, seus servidores técnicos e professores acreditam que uma educação profissional qualificada – integradora do ensino médio e educação técnica, – é capaz de promover o cidadão com capacidades para produzir, mas também com auto- nomia diante das diferentes dimensões da realidade: cultural, social, familiar, esportiva, política e ética. Nós acreditamos em você! Desejamos sucesso na sua formação profissional! Ministério da Educação Janeiro de 2010 Nosso contato etecbrasil@mec.gov.br
  • 100. e-Tec Brasil5 Indicação de ícones Os ícones são elementos gráficos utilizados para ampliar as formas de linguagem e facilitar a organização e a leitura hipertextual. Atenção: indica pontos de maior relevância no texto. Saiba mais: oferece novas informações que enriquecem o assunto ou “curiosidades” e notícias recentes relacionadas ao tema estudado. Glossário: indica a definição de um termo, palavra ou expressão utilizada no texto. Mídias integradas: sempre que se desejar que os estudantes desenvolvam atividades empregando diferentes mídias: vídeos, filmes, jornais, ambiente AVEA e outras. Atividades de aprendizagem: apresenta atividades em diferentes níveis de aprendizagem para que o estudante possa realizá-las e conferir o seu domínio do tema estudado.
  • 102. e-Tec Brasil7 Sumário Palavra do professor-autor 9 Apresentação da disciplina 11 Projeto instrucional 13 Aula 1 – Interface web 15 1.1 Diferenças entre os usuários 15 1.2 O espaço da página 17 1.3 Navegação 18 1.4 Características a considerar na página principal 19 1.5 Usabilidade 21 1.6 Acessibilidade 23 1.7 Legibilidade 25 Aula 2 – Fundamentos do HTML 35 2.1 Editor de texto Notepad++ 35 2.2 O que é HTML? 37 2.3 Marcadores 39 2.4 Tabelas 40 2.5 Imagens em HTML 42 2.6 Atributos ALT e ALIGN 43 2.7 Atributos width e height 45 2.8 Atributo background 46 2.9 Formatação de textos 47 2.10 Vínculos ou links 49 Aula 3 – Cascading Style Sheets (CSS) 53 3.1 Criando estilos 54 3.2 Método de aplicação do CSS no documento HTML 55 3.3 Pseudoclasses e pseudoelementos 58
  • 103. Aula 4 – Tipos de imagens 61 4.1 Imagens bitmaps 61 4.2 Imagens vetoriais 63 4.3 Formatos de imagens 64 4.4 CorelDRAW 67 Aula 5 – Software de edição de imagem (GIMP) 73 5.1 Abas e janelas 74 5.2 Caixa de ferramentas 74 5.3 Para abrir uma nova imagem 79 5.4 Recortando uma imagem 81 5.5 Removendo o fundo da imagem 83 5.6 Captura de tela 85 5.7 Camadas 86 Aula 6 – Software de animação de imagens Macromedia Adobe Flash 89 6.1 Caixa de ferramentas e painéis auxiliares 90 6.2 Biblioteca de objetos (Library) 92 6.3 Objetos geométricos 93 6.4 Transformação de textos 94 6.5 Trabalhando com camadas 98 6.6 Animações 101 6.7 Publicando documentos do Flash 110 Referências 121 Currículo da professora-autora 123 Fundamentos de Desenvolvimento Webe-Tec Brasil 8
  • 104. e-Tec Brasil9 Palavra do professor-autor Olá, estudante! Estamos iniciando mais uma etapa do Curso Técnico em Informática a dis- tância e estudaremos a disciplina Fundamentos do Desenvolvimento Web. No decorrer das aulas, você conhecerá conteúdos que o farão refletir sobre aspectos como acessibilidade, usabilidade, design, além conhecer softwares para tratamento de imagens e animações, entre outros, e perceberá a im- portância de estudar esses conceitos para aplicá-los de maneira coerente na construção de páginas para web. Nessa nova jornada, fica o desafio de concluirmos este estudo com êxito. Para que você alcance esse objetivo, a equipe instrucional do curso elaborou todo conteúdo para auxiliá-lo nessa caminhada, mas lembre-se que o desen- volvimento de cada atividade, cada avaliação nesta disciplina depende exclu- sivamente de você, que deve reservar um período para navegar no ambiente do nosso curso, conhecer e explorar os recursos disponíveis, fazer a leitura do material e realizar as atividades. Conte sempre com o apoio dos tutores, que estarão prontos para ajudá-lo. No mais, desejo sucesso e um excelente estudo! Profª. Keila Brito
  • 106. e-Tec Brasil11 Apresentação da disciplina Olá, caro estudante! Nesta disciplina, você descobrirá a importância de conhecer os fundamentos de desenvolvimento para web, visando uma melhor compreensão do uso dos aplicativos e softwares para a elaboração de sites. O objetivo deste material é auxiliá-lo no conhecimento de conteúdos dos fundamentos do desenvolvimento web. Com ele, você perceberá a impor- tância de conhecer esses conceitos para aplicá-los de maneira coerente na construção de páginas para internet. Desenvolver e analisar sites requer uma visão sistêmica e abrangente com relação a aspectos inerentes a diversas áreas de conhecimento. É importante ressaltar que a aprendizagem é um processo contínuo e di- ferenciado para cada estudante, o que possibilita a ampla diversidade de interação com o conteúdo. Para que você obtenha sucesso, será necessário que se envolva com as ati- vidades prescritas desta disciplina, buscando cumprir as tarefas, seguir as instruções, agir com organização e controle sobre o tempo previsto. Será preciso, também, participar de forma ética e comprometida nos fóruns e encontros presenciais, com os colegas da turma e com o tutor presencial. Lembre-se que estamos começando uma longa e desafiadora jornada! Cada texto, cada atividade, cada avaliação nesta disciplina depende exclusivamen- te de você, mas você não está sozinho; por isso, compartilhe seus conheci- mentos nos fóruns e chats disponibilizados em sua sala de aula virtual. Fica aqui o desafio de concluirmos este estudo com SUCESSO! Profª. Keila Brito
  • 108. e-Tec Brasil13 Disciplina: Fundamentos do Desenvolvimento Web (carga horária: 60h). Ementa: Conceitos fundamentais de aplicações web. Arquitetura cliente-servidor para web. Linguagem de marcação. AULA OBJETIVOS DE APRENDIZAGEM MATERIAIS CARGA HORÁRIA (horas) 1. Interface web – Conhecer conceitos básicos tais como: • os diferentes tipos de usuários da web; • o espaço de uma página web; • navegação nas páginas da internet; • características da página principal e páginas internas de um website; • usabilidade; • acessibilidade; e • legibilidade. Vídeo:Acessibilidade web: custo ou benefício Artigos: http://acessodigital.net 10 2. Fundamentos do HTML – Entender os conceitos e funciona- mentos do HTML, como atributos, marca- dores, tabelas, inserção de imagens, sons e vídeos. – Conhecer o editor de texto: Notepad e suas características. Vídeo: HTML Básico Software Notepad ++ 10 3. Cascading Style Sheets (CSS) – Compreender o conceito de CSS. – Entender a criação de estilos. – Conhecer o método de aplicação do CSS no documento HTML. – Conhecer o conceito de pseudoclasses e pseudoelementos. Software Notepad ++ 10 4.Tipos de imagens Conhecer os tipos de imagens. – Conhecer o software CorelDRAW e suas ferramentas básicas. Vídeo: Criando imagens com CorelDRAW Software CorelDRAW 10 5. Software de edição de imagem (GIMP) – Conhecer o software GIMP e suas ferramentas. Vídeo: Ferramenta Contígua Vídeo: Fusão de imagens Software GIMP 10 6. Flash – Conhecer o software Flash e suas ferramentas de animação. Vídeo:Tutorial: Flash – timeline Vídeo:Tutorial: Interpolação no Flash Software Adobe Flash CS3 10 Projeto instrucional
  • 110. e-Tec Brasil Aula 1 – Interface web Objetivos Conhecer conceitos básicos sobre os diferentes tipos de usuários da web. Identificar, no espaço de uma página web, elementos tais como a navegação nas páginas da internet, características da página principal e das páginas internas de um website. Compreender os conceitos de usabilidade, acessibilidade e legibili- dade aplicados ao desenvolvimento de website. Conhecer os conceitos para utilização de fontes e cores websites. Fazem parte da interface web informações gráficas, textuais e au- ditivas, apresentadas ao usuário quando acessa uma página. Seu desenvolvimento ocorre, conforme requisitos levantados, durante a execução do projeto. 1.1 Diferenças entre os usuários Os grandes avanços tecnológicos ocorridos nos últimos anos proporcionaram o barateamento da tecnologia e fizeram com que o computador deixasse de ser exclusividade de especialistas e de indivíduos mais abastados, para fazer parte também do dia a dia das mais variadas pessoas. Além da diversidade de pessoas com acesso ao computador, houve também uma grande variedade de formas de acessar a rede: em casa, LAN house, trabalho, dispositivo móvel, notebooks, entre outros. Devido à diferença de usuários e de formas de acesso, é necessário e importante que os recursos tecnológicos empregados e os layouts de páginas sejam adaptados a essas variações. e-Tec BrasilAula 1 – Interface web 15
  • 111. Não é necessário que as configurações sejam decoradas, porém é importante que tenhamos conhecimento delas para saber aplicá-las quando necessário. Algumas configurações podem afetar a visualização e o uso de interfaces web; são elas: Tamanho da página e resolução: é a quantidade de pixels que compõem a imagem vista na tela. A qualidade dessa imagem vai depender da relação do número de pontos por polegada quadrada, com a configuração da tela, o tamanho do monitor e sua resolução. Espaço do browser na página: o espaço ocupado pelo browser na página do dispositivo utilizado, seja dispositivo móvel, sejam notebooks, seja TV, sejam outros, variam de acordo com a resolução da tela do dispositivo utilizado. As resoluções de tela mais utilizadas atualmente pelos usuários de PCs, segundo estatísticas do Market Share (http://marketshare.hitslink.com), são: • 1024x768 pixels – serve de referência para o desenvolvimento de websites. Em julho de 2010, foi usada por 23,63% dos usuários mundiais. • 1280x800 pixels – no desenvolvimento de layout para interfaces web, a proporção entre a largura e a altura dos monitores apresenta variações. Desde 4:3, padrão dos aparelhos de TV e computadores, comum nas larguras de 1024 a 1280 pixels, até a proporção dos monitores de HDTV, wide screen (16:9, resolução 1280x720 ou 16:10, resolução 1280x800, chegando a 1680x1050 e 2560x1600). Estas diferenças de resolução e proporção aumentam ainda mais quando se consideram as telas dos dispositivos móveis. • 1280x1024 pixels – também utilizada por um número crescente de usuários. Em julho de 2010, foi usada por 10,86% dos usuários mundiais. • 640x840 pixels – pouco utilizada. Em julho de 2010, foi usada por ape- nas 2,35% dos usuários mundiais. Navegadores (browsers) utilizados: existe uma variedade de navegado- res disponíveis para os usuários web; por isso é importante sabermos que Conheça as resoluções indicadas para monitores LCD e Laptops, conforme o tamanho do monitor.Acesse: http:// windows.microsoft.com/pt-BR/ windows7/Getting-the-best- display-on-your-monitor Fundamentos do Desenvolvimento Webe-Tec Brasil 16
  • 112. o mesmo conteúdo pode aparecer de maneira diferente em cada um dos navegadores. Isso ocorre porque há uma inconsistência entre os programas, na forma como interpretam os estilos CSS. Velocidade de conexão e tamanho do arquivo da página em Kb: a velocidade de conexão varia muito, porém, ao desenvolvermos uma página, é necessário ter em mente que o tempo de download das páginas não deve exceder 10 segundos, conforme as 10 Heurísticas de Jakob Nielsen. 1.2 O espaço da página O espaço da página é definido como a forma e como os olhos do usuário a percorrem. Existem estudos que descrevem que a maior parte dos usuários de cultura ocidental vê a página no sentindo diagonal, a partir do alto à esquerda, em direção à parte inferior direita, e depois retorna ao alto, como mostrado na Figura 1.1 a seguir. Figura 1.1: Visão do usuário na página Fonte:Adaptado de Nielsen (2000) Jakob Nielsen, um dos maiores especialistas na área de usabilidade na web, afirma que os usuários, de um modo geral, leem as páginas de acordo com um padrão de movimentos que desenham um “F”: duas linhas horizontais da esquerda para a direita e uma linha vertical de cima para baixo, à esquerda, conforme demonstra a Figura 1.2 a seguir. Acesse o site http://www. inf.puc-rio.br/~inf1403/ docs/alberto2011_1/09_ AvHeuristica.pdf e conheça as 10 Heurísticas de Nielsen. e-Tec BrasilAula 1 – Interface web 17
  • 113. Priority 1 Priority 2 Priority 3 Figura 1.2: Visão do usuário na página Fonte:Adaptado de Nielsen (2000) Esses estudos mostram formas de leituras diferentes, concordam que as informações mais importantes devem ser localizadas sem que o usuário precise utilizar a barra de rolagem. 1.3 Navegação Segundo o Dicionário Aurélio (FERREIRA, 2009), navegação é o ato ou efeito de percorrer um hipertexto, determinando a sequência em que os diversos documentos são consultados, ou percorrer páginas web, indo de um link a outro. A navegação pode se tornar difícil, sendo necessário dar aos usuários suporte que vá além dos simples hyperlinks “vá para”. As interfaces precisam responder aos usuários três perguntas fundamentais da navegação: Onde estou? / Onde estive? / Onde posso ir? • Onde estou? É a localização do usuário em relação à estrutura do site e à web em geral. É importante a consciência do usuário de onde esteja para que consiga encon- trar as informações que procura, ou desenvolver as atividades que deseja. • Onde estive? É a localização do usuário em relação às páginas já visitadas. • Onde posso ir? É a localização do usuário em relação à estrutura de informações, que irá levá-lo a encontrar o que está procurando, seja um produto para comprar, uma notícia, um texto acadêmico, entre outros. Fundamentos do Desenvolvimento Webe-Tec Brasil 18
  • 114. 1.4 Características a considerar na página principal É importante conhecermos algumas características que devem ser levadas em consideração ao criar uma página. Nesta seção você verá as características da página principal. Podemos destacar as seguintes características: • Identificar claramente a localização do usuário e atividade/conteúdo mais importante do site e o que ele pode oferecer. • Oferecer suporte aos usuários para encontrar o que procuram. • Estar permanentemente atualizada. • Marcar a localização do usuário em relação às outras páginas e guiar seus percursos. • Ter mais área para navegação do que para conteúdo. • Informar os assuntos de maneira concisa e direta. • Ser dividida em diferentes seções. • Ter uma seção ou menu com links para as áreas mais acessadas pelos usuários (se conveniente). 1.4.1 Páginas internas É importante conhecermos estudos recentes a respeito da forma como os usuários têm acessado a web, além das características necessárias para man- tê-los na página que irão visitar. A seguir você conhecerá as características importantes de uma página interna. Hoje é cada vez maior o número de usuários que buscam ir direto às páginas internas, sem necessariamente ter que passar pela página principal. Segundo estudos, o usuário gasta 80% a mais de tempo nessas páginas do que na página principal. Por isso, é importante sabermos as características que podem contribuir para que elas o prendam por mais tempo. e-Tec BrasilAula 1 – Interface web 19
  • 115. Podemos destacar as seguintes características para as páginas internas: • Apresentar em destaque o nome da página principal. • Mostrar, em local bem visível, a marca da empresa ou organização. • Manter o mesmo estilo das outras páginas, pelo menos das páginas da mesma camada. • Manter o foco em aspectos mais específicos do que na página principal. • Prover o sentido de localização do usuário em relação ao resto do site e à página principal. • Manter as informações estruturais de navegação (ferramenta de busca, data de atualização, links relacionados, mapa do site) – essas informações costumam ficar localizadas em lugares fixos em todas as páginas. • Se o conteúdo for muito extenso, dividir o assunto em um resumo geral numa página e detalhar o assunto em outra. • Prover mais informações sobre o assunto da página. Além da página principal e das páginas internas, também é necessário con- siderarmos a importância das páginas de apoio ao usuário; elas são respon- sáveis por orientá-lo. Entre elas podemos citar: • Página de abertura. • Mapa do site. • Entre em contato ou “Fale conosco”. • Política de privacidade. • Perguntas frequentes. • Páginas de erro. Fundamentos do Desenvolvimento Webe-Tec Brasil 20
  • 116. 1.5 Usabilidade “Existe uma forte evidência de que a preocupação com usabilidade no projeto de interfaces diminui drasticamente os custos e aumenta a produti- vidade” - Brad Myers. O termo usabilidade surgiu na década de 1980, em substituição à expressão “user-friendly”, que, em português, significa amigável, e era usada princi- palmente por profissionais da área de ergonomia e psicologia. Esse termo é definido por diversos autores sob diferentes pontos de vista, mas foi a ISO/IEC 9126-1991 quem definiu pela primeira vez o termo usabi- lidade sobre qualidade de software, como: “Um conjunto de atributos de software relacionado ao esforço necessário para seu uso e para o julgamento individual de tal uso por determinado conjunto de usuários.” Foi a partir dessa norma que o termo usabilidade deixou de ser utilizado apenas pela ergonomia e pela psicologia e passou a fazer parte de áreas do conhecimento, como tecnologia da informação. O conceito de usabilidade vem evoluindo e, em 1998, a norma ISO/IEC o redefiniu, incluindo as necessidades dos usuários e outras caracteristicas de qualidade de software, como funcionalidade, confiabilidade, eficiência, pos- sibilidade de manutenção e portabilidade. A norma ISO 9241/11 definiu conceitos importantes que devem ser levados em conta quando se pensa em usabilidade. • Usuário – pessoa que interage com o produto. • Contexto de uso – usuários, tarefas, equipamentos (hardware, software e materiais), ambiente físico e social em que o produto é usado. • Eficácia – precisão e totalidade com que os usuários atingem objetivos específicos, acessando a informação correta ou gerando os resultados esperados. • Eficiência – precisão e totalidade com que os usuários atingem seus objetivos em relação à quantidade de recursos gastos. Usabilidade Segundo a ISO 9841/11, 1998, usabilidade é a capacidade de um produto ser usado por usuários específicos para atingir objetivos específicos com eficácia, eficiência e satisfação em um contexto específico de uso. e-Tec BrasilAula 1 – Interface web 21
  • 117. • Satisfação – conforto e aceitabilidade do produto, medidos por meio de métodos subjetivos e/ou objetivos. Segundo Dias (2003), A usabilidade pode ser considerada uma qualidade de uso, isto é, qua- lidade de interação entre usuários e sistema, que depende das caracte- rísticas tanto do sistema quanto do usuário. Além disso, a usabilidade também depende das tarefas específicas que os usuários realizam, as- sim como do ambiente físico (incidência de luz, barulho, interrupções da tarefa, disposição do equipamento). No que se refere a projeto de websites, alguns fatores devem ser considerados para que se consiga desenvolver um site com características de usabilidade; são eles: qualidade do layout, funcionalidade dos recursos interativos, arquitetura da informação, conceito editorial, aderência às tecnologias e dispositivos digitais. Além desses fatores, devemos conhecer e considerar diversos outros que contribuem para a autonomia da ação dos usuários durante a navegação; são eles: • Grau de familiaridade do usuário médio do site com o uso da internet e suas ferramentas. • Uso de convenções já aceitas em grandes sites e portais. • Orientação visual dos percursos a seguir, dos caminhos percorridos e pontos de chegada. • Sinalização do status de uma tarefa durante a sua realização. • Possibilidade de opção sobre a instalação de plug-ins e programas no compu- tador ou no browser do usuário para a visualização de imagens e animações. • Inclusão de “links relacionados”. • Informação ao usuário de uma tarefa a realizar. • Oferta de suporte à navegação e ao uso, por meio de mensagens claras e objetivas. Fundamentos do Desenvolvimento Webe-Tec Brasil 22
  • 118. • Inclusão de pequenos resumos próximos aos links. • Permissão de reversibilidade das ações. • Visibilidade informativa – a aparência de ícones, boxes, setas, sinaliza seu uso. • Consistência do layout e das funcionalidades do programa (padronização da malha, telas, logotipos, cores, tipologias). • Oferta de áreas de informações relacionadas às expectativas dos usuários quanto ao conteúdo principal, entre outros. 1.6 Acessibilidade Inúmeras são as razões para tornar a web acessível; entre elas, pode-se citar as vantagens competitivas, ao atingir no mercado eletrônico, milhões de pessoas com e sem necessidades especiais; benefícios de usabilidade aos outros usuários da web, tornando mais fácil e agradável o acesso às infor- mações online; e ainda, a vantagem de estar de acordo com políticas gover- namentais de inclusão digital, que buscam a inserção de todos na sociedade da informação A inclusão digital visa contribuir para que as pessoas de baixa visão tenham acesso a computador e acesso à rede; porém, ter apenas acessibidade não é suficiente, é preciso que a população receba treinamento sobre como utilizar essas ferramentas. Ser incluído digitalmente não é apenas saber trocar e-mail, é saber utilizar o suporte tecnológico oferecido de forma mais ampla, a fim de promover melhoria na condição de vida. Para que a inclusão digital seja possível, ações e projetos vêm sendo criados para facilitar o acesso das pessoas de baixa renda às tecnologias, para que a acessibilidade desses usuários seja facilitada. Com essas ações e projetos, é possivel que a população tenha acesso a infor- mações disponíveis na internet e, com isso, passe a produzir e divulgar conhe- cimento, contribuindo, assim, com a inclusão social dos portadores de neces- sidades especiais e idosos, como o exemplo observado na Figura 1.3 a seguir. Acesse http://acessodigital.net/ art_fred_o_que_e_usabilidade. html e faça a leitura desse artigo, e contribua com sua reflexão sobre o assunto no fórum da disciplina no AVEA. e-Tec BrasilAula 1 – Interface web 23
  • 119. Figura 1.3: Portador de necessidades especiais e idoso utilizando notebooks Fonte: http://www.sxc.hu/browse.phtml?f=download&id=1114180 Conforme Dias (2003), a web deve poder ser usada por pessoas, em diferen- tes contextos, que: • Sejam incapazes de ver, ouvir, se deslocar ou interpretar determinados tipos de informação. • Tenham dificuldade em ler ou compreender textos. • Não tenham um teclado ou mouse convencionais, ou não sejam capazes de utilizá-los. • Possuam tela que apresenta apenas texto, com dimensões reduzidas ou baixa resolução, ou ainda conexão lenta com a internet. • Não falem ou compreendam fluentemente o idioma em que o documento foi escrito. • Estejam com seus olhos, mãos ou ouvidos ocupados, por exemplo, quando ao volante ou em um ambiente barulhento. • Possuam uma versão ultrapassada de navegador web, diferente dos habitu- ais, um navegador por voz ou um sistema operacional pouco convencional. Um projeto de web que desconsidere os princípios de acessibilidade prova- velmente exclui os usuários que não possuem as tecnologias mais recentes. É importante conhecermos algumas recomendações importantes para a acessibilidade dos projetos de web. Elas visam contribuir com as ações e projetos desenvolvidos, com o intuito de permitir a inclusão digital. Fundamentos do Desenvolvimento Webe-Tec Brasil 24
  • 120. Recomendações sobre acessibilidade em projeto para web: • Fornecer alternativas equivalentes ao conteúdo sonoro ou visual. • Não recorrer apenas à cor. • Utilizar corretamente marcações e folhas de estilo. • Assegurar que as páginas dotadas de novas tecnologias sejam transfor- madas harmoniosamente. • Assegurar o controle do usúario sobre as alterações temporais do conteúdo. • Assegurar a acessibilidade direta de interfaces de usuários integradas. • Projetar páginas considerando a independência de dispositivos. • Fornecer informações de contexto e orientações. • Fornecer mecanismos de navegação claros. • Assegurar a clareza e a simplicidade dos documentos, entre outros. O avaliador de acessibilidade DaSilva é um site nacional que testa, considerando num ranking de prioridades, as condições para que um site seja classificado como acessível. Pode-se fazer o download da ferramenta3 ou usar a versão online em http://www.dasilva.org.br/ Descreva os fundamentos e as diferenças entre acessibilidade e usabilidade. 1.7 Legibilidade Segundo Marmion (2006) o campo de percepção visual reduz-se à metade a uma distância de 2.5 graus do ponto de fixação do olho, quando fazemos uma leitura. Observe que, conforme a Figura 1.4 se o ponto de fixação fosse o número 0, eis o bloco de informação que nosso cérebro conseguiria processar: Legibilidade Legibilidade é a facilidade com que um leitor consegue discernir a fonte numa página, e baseia-se na relação da forma com o fundo e na capacidade de distinguir as letras entre si. Para que possam ser lidas, as letras terão que ser bem identificadas. e-Tec BrasilAula 1 – Interface web 25
  • 121. Figura 1.4: Legibilidade Fonte: Marmion (2006) A apresentação texto em colunas minimiza o “escaneamento” horizontal e consequentemente reduz o movimento dos olhos e a fadiga ocular, segundo Jerome Nadel, da empresa Human Factors International Inc., conforme demonstra dona Figura 1.5 a seguir. Figura 1.5: Colunas Fonte: Marmion (2006) Segundo Jakob Nielsen (apud MARMION, 2006), 79% dos usuários da web “escaneiam” texto. Apenas 21% leem palavra por palavra. Para incrementar a facilidade de leitura e tornar seu texto “escaneável”, Nielsen recomenda a utilização de: • Tabelas. • Cabeçalhos. • Negrito. • Gráficos. • Marcadores (bullets). Fundamentos do Desenvolvimento Webe-Tec Brasil 26
  • 122. Vejamos, na prática, a aplicação dos princípios das teorias acima mencionadas. Suponhamos que devemos apresentar ao usuário uma receita, como a seguir: Ingredientes para a massa: 6 ovos à temperatura ambiente, 7 colheres (sopa) de açúcar, 6 colheres (sopa) de chocolate em pó, 1 xícara (chá) de farinha de trigo, 1 colher (chá) de fermento em pó, açúcar para polvilhar. Ingredientes para o recheio: 2 latas de leite condensado, 2 pacotes (100 g cada) de coco ralado, 1 xícara (chá) de uva-passa. Modo de preparo da massa: Forre uma assadeira nº 3 com papel-alumínio ou papel-manteiga. Unte muito bem e polvilhe com farinha. Reserve. Bata as claras em neve e reserve. Bata as gemas com o açúcar até obter um creme claro e fofo. Adicione o chocolate, a farinha e, por último, o fermento. Acrescente as claras em neve mexendo delicadamente. Modo de preparo do recheio: Despeje o leite condensado na fôrma preparada. Distribua por cima os demais ingredientes do recheio. Cubra com a massa e leve ao forno médio (180ºC), pré-aquecido, para assar por cerca de 30 minutos. Desenforme ainda quente sobre um pano de prato polvilhado com açúcar. Enrole imediatamente com o auxílio do pano de prato. Polvilhe com açúcar, espere esfriar e leve à geladeira. Atenção: Tome cuidado ao desenformar porque o leite condensado ainda está mole. Você notou como está difícil de compreender estas informações. Que tal tentar melhorá-las? Veja: Rocambole Ingredientes para a massa • 6 ovos à temperatura ambiente • 7 colheres (sopa) de açúcar • 6 colheres (sopa) de chocolate em pó • 1 xícara (chá) de farinha de trigo • 1 colher (chá) de fermento em pó • Açúcar para polvilhar e-Tec BrasilAula 1 – Interface web 27
  • 123. Ingredientes para o recheio • 2 latas de leite condensado • 2 pacotes (100 g cada) de coco ralado • 1 xícara (chá) de uva-passa Modo de preparo Modo de preparo da massa Forre uma assadeira nº 3 com papel-alumínio ou papel-manteiga. Unte muito bem e polvilhe com farinha. Reserve. Bata as claras em neve e reserve. Bata as gemas com o açúcar até obter um creme claro e fofo. Adicione o chocolate, a farinha e, por último, o fermento. Acrescente as claras em neve mexendo delicadamente. Modo de preparo do recheio Despeje o leite condensado na forma preparada. Distribua por cima os demais ingredientes do recheio. Cubra com a massa e leve ao forno médio (180ºC), pré-aquecido, para assar por cerca de 30 minutos. Desenforme ainda quente sobre um pano de prato polvilhado com açúcar. Enrole imediatamente com o auxílio do pano de prato. Polvilhe com açúcar, espere esfriar e leve à geladeira. Atenção Tome cuidado ao desenformar porque o leite condensado ainda está mole. Ficou bem mais claro, não ficou? Mas dependendo da configuração da tela, pode ser necessário clicar a barra de rolagem, algo indesejável. Note que mesmo assim aprece um espaço em branco, totalmente, desaproveitado à direita dos ingredientes. Podemos então sugerir um formato alternativo? Agora é a sua vez de tentar, vamos lá!!! Fundamentos do Desenvolvimento Webe-Tec Brasil 28
  • 124. 1.7.1 Fonte A escolha da fonte a ser utilizada no projeto de um site influencia diretamente o seu resultado final. Existem basicamente dois tipos de fontes: as com serifa e as sem serifa. As fontes serifadas geralmente se perdem na resolução dos monitores, tornando-se inadequada a sua utilização. Seu contraste é máximo para compensar problemas de resolução e para que não haja confusão de legibilidade. O texto sem serifa não perde resolução e tem mais potencial de velocidade de leitura. A tipografia escolhida para o corpo do texto é Verdana, por se tratar de uma tipografia comumente utilizada, largamente distribuída e de leitura rápida e simples. A variação dos tamanhos, de acordo com a finalidade do texto, também auxilia na hierarquização da informação. Todas as escolhas são baseadas no conhecimento e questionamento ao público-alvo, também pertencente ao grupo de pesquisa. Veja a diferença entre fontes com serifa e sem serifa nas Figuras 1.6 e 1.7 a seguir. AaBbCcFigura 1.6: Tipo com serifa Fonte: http://pt.wikipedia.org/w/index.php?title=Serifa&oldid=2734811 AaBbCcFigura 1.7: Tipo sem serifa Fonte: http://pt.wikipedia.org/w/index.php?title=Serifa&oldid=2734811 Segundo Faria, Ferreira e Lemos (2010) para assegurar uma boa usabilidade a um website, um texto legível é um dos fatores de grande importância, pois devemos sempre considerar o público-alvo. Devemos lembrar que para que a fonte seja apresentada, ela deverá estar instalada no computador do usuário. Algumas fontes têm mais chances de estarem instaladas, por serem mais comumente utilizadas. Ao escolhê-las, defina uma ou mais fontes alternativas. Evite misturar fontes serifadas e sem serifa no mesmo texto. Serifas São os pequenos traços e prolongamentos que ocorrem no fim das hastes das letras. Para a maioria do público-alvo, o tamanho ideal de fonte transita entre 10 e 12 pts (NIELSEN apud GUIMARÃES, 2007). e-Tec BrasilAula 1 – Interface web 29
  • 125. 1.7.2 Cores 1.7.2.1 Modos de cor Existem duas classificações para as cores primárias: • RGB (Red = vermelho – Green = verde – Blue = azul): sistema utilizado nos monitores de computador, televisões, espetáculos e data show. É formado pelo processo aditivo, em que pigmentos e suas combinações geram a cor branca. Cada uma dessas cores possui uma variação de 0 a 255, que geram mais ou menos 16 milhões de cores. • CMYK (Cyan = ciano – Magenta – Yellow = amarelo – Black = preto): sistema utilizado para impressões. É gerado pela absorção de luz pelas cores, processo denominado de subtrativos, em que a adição das três principais cores gera a cor preta. Segundo o Instituto de Pesquisa da Cor (Institute for Color Research) há estudos que revelam que “os seres humanos julgam subconscientemente uma pessoa, um ambiente ou um item nos primeiros 90 segundos, e nesse lapso de tempo entre 62% e 90%do julgamento é baseado unicamente na cor”. O olho humano pode detectar quase todas as graduações de cores, quando as luzes monocromáticas como: vermelho, verde e azul são misturadas apro- priadamente, segundo as muitas teorias que procuram explicar o fenômeno da visão cromática. As cores se dividem em três grupos: 1. Cores Primárias: são as cores que não podem ser formadas por nenhuma mistura. Segundo Tavares (2007), são elas: Vermelho, verde, azul, no sistema RGB; e no sistema CMYK, são elas: azul, magenta e amarelo. 2. Cores Secundárias: são formadas por duas cores primárias misturadas em partes iguais (PEDROSA, 1982 apud SCHUHMACHER, 2007). 3. Cores Terciárias: são as intermediárias entre uma cor secundária e qualquer das duas primárias que lhe dão origem (PEDROSA, 1982 apud SCHUHMACHER, 2007). Para a leitura eficiente de um texto, principalmente, um website, em que essa leitura ocorrerá na tela do monitor, devemos procurar sempre uma combinação harmoniosa das cores, procurando contrastar a cor da fonte e do fundo. Fundamentos do Desenvolvimento Webe-Tec Brasil 30
  • 126. Ainda segundo Pedrosa (1982 apud SCHUHMACHER, 2007), na Figura 1.8 construída por Fabris em 1973, as cores primárias estão no centro, as secundárias (verde, laranja e violeta) no segundo triângulo. O terceiro ciclo se complementa com as cores terciárias. Figura 1.8: Círculo das cores Fonte: Fabris (1973 apud SCHUHMACHER, 2007) E as cores complementares são aquelas opostas no disco de cores. Assim temos como complementares os seguintes pares de cores: vermelho e ciano, verde e magenta, azul e amarelo, conforme a Figura 1.9 a seguir. Figura 1.9: Cores complementares Fonte: Schuhmacher (2007) e-Tec BrasilAula 1 – Interface web 31
  • 127. As cores são análogas porque há nelas uma mesma cor básica e estão posicionadas lado a lado no disco de cores. São muito utilizadas para dar a sensação de uniformidade, profundidade, movimento, luz e sombra. Podemos considerar análogas três cores que se apresentam em sequência no círculo das cores como o amarelo, amarelo-laranja e laranja, como observamos na Figura 1.10 a seguir. Figura 1.10: Cores análogas Fonte: Schuhmacher (2007) As cores contrastantes são diretamente opostas no disco das cores, como por exemplo: o azul e o amarelo. Acesse o esquema de cores em http://wellstyled.com/tools/ e faça algu- mas combinações de cores para utilizar posteriormente no seu site. Segundo Robertson apud Parizotto (1997), recomenda-se que as cores de uma página na web não sejam selecionadas separadamente, e sim, dentro de um contexto geral e que sejam respeitadas as diferenças culturais e fisio- lógicas entre os indivíduos. Resumo Nesta Aula, você pôde ver pontos importantes que devem ser considera- dos ao desenvolver o layout para um website. Para que a navegação em um website seja eficiente, precisamos responder aos usuários três perguntas fundamentais da navegação: Onde estou? Onde estive? Onde posso ir? Em uma página principal de website podemos destacar as seguintes carac- terísticas: identificar a localização do usuário, oferecer suporte aos usuários, atualização permanente, marcar a localização do usuário em relação às ou- tras páginas e guiar seus percursos, ter mais área para navegação do que para conteúdo e informar os assuntos de maneira concisa e direta. Nas páginas internas: apresentar em destaque o nome da página principal, mostrar em local bem visível a marcada empresa ou organização, manter Conheça a utilização de cor no mecanismo de interação com o usuário, disponível em http://www.ibrau.com.br/ artigoutilizacaodecor.htm Ao escolher um padrão de cores para um site devemos sempre observar alguns aspectos: Assunto da página, Público-alvo e Ambiente. Vamos experimentar um aplicativo que gere esquemas e combinações de cores. Cada esquema se baseia em uma cor usada como base, que é combinada e complementada por cores adicionais calculadas por meio de algoritmos que permitem a melhor combinação ótica. Esta ferramenta, Color Scheme, está disponível em http://wellstyled.com/tools/ Vamos aprender sobre as cores de forma lúdica e divertida? Acesse o site Color in Motionno endereço http:// www.mariaclaudiacortes. com/. O site é uma experiência interativa sobre a comunicação e o simbolismo da cor. Fundamentos do Desenvolvimento Webe-Tec Brasil 32
  • 128. o mesmo estilo das outras páginas, manter o foco em aspectos mais espe- cíficos, prover o sentido de localização do usuário, manter as informações estruturais, entre outros. Entendemos que um website tem que possibilitar aos mais diferentes usuá- rios a experiência de navegação na internet, incluindo os que são portadores de necessidades especiais; por isso a necessidade de adotarmos os conceitos de: usabilidade, acessibilidade e legibilidade. Atividades de aprendizagem A partir do conteúdo até aqui estudado, faça uma análise da interface dos sites: www.vw.com.br www.ford.com.br www.honda.com.br www.fiat.com.br Pontos a serem analisados: • Tamanho de tela, resolução do monitor e adaptações. • Tempo de carregamento da página. • Layout das páginas. • Navegação. • Usabilidade. • Acessibilidade. • Legibilidade. e-Tec BrasilAula 1 – Interface web 33
  • 130. e-Tec Brasil Aula 2 – Fundamentos do HTML Objetivos Entender os conceitos e funcionamentos do HTML, como atribu- tos, marcadores, tabelas, inserção de imagens, sons e vídeos. Conhecer o editor de texto Notepad++. Aprender a utilizar o editor de texto Notepad ++. Para que possamos criar arquivos HTML é necessária a utilização de um editor de texto. No decorrer desta aula utilizaremos o editor Notepad++, do qual você pode fazer o download no site http://notepad-plus.sourceforge.net/br/site.htm; é gratuito. Caso não queira ou não possa instalar o software no computador que utiliza para estudar, você pode fazer o download do formato portátil. 2.1 Editor de texto Notepad++ Notepad++ é um editor de código livre que substitui o Notepad. Ele funciona em ambiente Windows e suporta várias linguagens de programação; veja o logotipo do Notepad++ na Figura 2.1 a seguir. Figura 2.1: Logotipo Notepad ++ Fonte: http://notepad-plus-plus.org/ e-Tec BrasilAula 2 – Fundamentos do HTML 35
  • 131. Foi desenvolvido com base no Scintilla, um editor escrito em linguagem C++. O código-fonte tem marcações coloridas, o que contribui para sua melhor visualização. Conheça a interface do software na Figura 2.2 a seguir. Figura 2.2: Interface do editor de texto Notepad++ Fonte: Notepad++, v. 5.9.3 2.1.1 Características do Notepad ++ Autocompletar: para quase todas as linguagens suportadas, é possível que o usuário crie sua própria lista de autocompletar (api). Para que o Notepad a execute, digite Ctrl+Espaço. Destaque de sintaxe: permite que o usuário crie sua própria linguagem, tanto de síntese de palavras-chave quanto de blocos. Marcadores: para inserir um marcador, basta clicar na margem (no lado direito da margem junto ao nº da linha) ou digitar Ctrl+F2 para inverter o marcador. Para excluir todos os marcadores, clique no Menu Localizar->Excluir Marcadores. Múltiplasvisualizações:vocêpodeeditarváriosdocumentosaomesmotempo. Chaves, colchetes e parênteses com destaque: quando o cursor se aproxi- ma de um desses símbolos { } [ ] ( ), o símbolo que está próximo ao cursor e o símbolo simetricamente oposto são destacados, assim como sua guia de inden- tação, se houver, fazendo com que a localização de um bloco seja mais fácil. Você conheceu o editor de texto que utilizaremos nos exercícios e no andamento desta disciplina; caso não o tenha instalado em seu computador, entre no site: http://notepad-plus. sourceforge.net/br/site.htm, o download é gratuito. Porém, caso tenha preferência por outro editor de texto, ele poderá ser utilizado. Fundamentos do Desenvolvimento Webe-Tec Brasil 36
  • 132. 2.2 O que é HTML? O Hypertext Markup Language (HTML) é uma linguagem de formatação e não de programação. Essa linguagem tem a função de enviar para o nave- gador (Internet Explorer, Firefox, Chrome, etc.), informações que definem de que maneira textos, imagens e outros itens deverão aparecer na tela. Essas informações são chamadas tags (etiquetas) e estão inseridas nos do- cumentos originais (documento-fonte) que criaram as páginas. Essas tags normalmente aparecem em pares, iniciando e encerrando um bloco. Existem quatro tags básicas são elas: <html></html>, <head></head>,<title></title>, <body></body> Para se obter um documento escrito em HTML é necessária a utilização do editor de texto e de, no mínimo, essas quatro tags. Veja o exemplo 1 e o seu resultado na Figura 2.3 a seguir. Exemplo 1: Resultado: Figura 2.3: Exemplo de utilização das tags básicas Fonte: CEAD/Ifes © (2010) e-Tec BrasilAula 2 – Fundamentos do HTML 37
  • 133. <html>... </hmtl>: abre e encerra uma página. Essas tags são as mais im- portantes, pois informam ao browser que o documento está escrito em html. <head> …</head>: a tag <head>vem abaixo da tag <html>, indica os co- mandos que o navegador precisa carregar antes que a página seja carregada. É utilizada no cabeçalho para inibir o título a ser inserido na janela do navegador. <title>… </title>: espaço para definição do título do documento. A tag <title> deve estar sempre contida na tag <head>. <body></body>: essa tag contém o corpo da página. A tag <body> deve ser inserida após a tag <head>; já a tag </body> vem antes da tag </html>. 1. Escolha o tipo de site que deseja desenvolver durante o andamento desta disciplina. É importante que seja um site pelo qual você tenha, além de interesse, material para executá-lo, pois cada etapa desenvolvida nesta disciplina será para a composição do layout desse site. Exemplos: ( ) site pessoal ( ) site corporativo ( ) site institucional ( ) site profissional ( ) outro: ____________________ Responda às questões: a) O que é HTML? b) Qual a definição das tags <title> e <body>? 2. Quais são as tags mínimas necessárias para criar uma pagina web? Utili- zando essas tags, faça uma página pessoal. Salve o arquivo com o nome que escolheu para o site. Digite nome do site.html e clique em salvar. Crie uma pasta denominada site XXX, salve todas as atividades desenvolvidas nesta disciplina nessa pasta. Fundamentos do Desenvolvimento Webe-Tec Brasil 38
  • 134. 2.3 Marcadores São comandos da linguagem HTML que permitem a formatação do texto. Um marcador deve ser apresentado entre os sinais “<” e “>”. A maioria dos marcadores funciona como chave de liga e desliga. Isso quer dizer que um marcador é utilizado para indicar o início da formatação e outro para infor- mar o fim dela; no caso do fechamento, é inserido “/”, antes do nome do marcador (ALVES, 2009). 2.3.1 Body São os marcadores existentes entre as tags <body>...</body>. 2.3.2 Bgcolor – backgrounding color Aplica cor de fundo a uma determinada seção. Pode ser definida por uma constante (nome em inglês da cor) ou um número hexadecimal (#xxxxxx) que corresponde ao valor da cor em RGB. Observe no Quadro 2.1 as cores e números hexadecimais correspondentes. Quadro 2.1: Relação de cores e números hexadecimais Cor Hexadecimal Cores Claras Hexadecinal Branco #FFFFFF Branco-neve #F4F4F4 Preto #000000 Cinza-claro #C0C0C0 Azul #0000FF Azul-claro #D9FFFF Verde #008000 Verde-claro #DEFEDA Vermelho #FF0000 Rosa-claro #FFD5D5 Cinza #808080 Amarelo-claro #FFFFF5 Amarelo #FFFF00 Roxo-claro #EFDFFF Fonte: CEAD/Ifes © (2010) Agora observe o exemplo 2 e o resultado da utilização do atributo bgcolor está mostrado na Figura 2.4 a seguir. Exemplo 2: Veja o link que fala de alguns tipos de websites http://daniellesimoes.com/ Tipos%20de%20Web%20Sites. pps e-Tec BrasilAula 2 – Fundamentos do HTML 39
  • 135. Resultado: Figura 2.4: Fundo da página em verde Fonte: CEAD/Ifes © (2010) Acrescente cor ao arquivo executado na atividade de aprendizagem 2. Execute a tarefa e depois visualize, é importante a escolha de uma cor que não interfira na legibilidade do conteúdo. 2.4 Tabelas É por meio de tabelas que imagens e textos são posicionados dentro da página. A tabela do HTML não tem apenas a função de exibir dados, como a tabela do Excel, por exemplo, mas é uma importante ferramenta para definir onde as informações, imagens, etc. serão organizadas. O conteúdo de cada célula poderá ter textos, imagens e até mesmo outras tabelas. As tags <table>...</table> delimitam a tabela; dentro dessas tags são inseridas outras que definem número de linhas, colunas e outras características que se fizerem necessárias. Na Figura 2.5 temos um exemplo de tabela em HTML. Colunas CélulaLinhasCélula que pode conter outra tabela Figura 2.5: Exemplo de tabela em HTML Fonte:Adaptado de Oliviero (2000) Segundo Ferreira (2009), tabela é substantivo feminino; significa pequena tábua ou quadro em que se registram nomes de pessoas ou coisas. Fundamentos do Desenvolvimento Webe-Tec Brasil 40
  • 136. Veja o exemplo 3 e o resultado na criação de uma tabela na Figura 2.6 a seguir. Exemplo 3: Resultado: Figura 2.6: Exemplo de tabelas Fonte: CEAD/Ifes © (2010) Crie uma tabela com três colunas e quatro linhas no arquivo em que você vem executando seu site. 2.4.1 Atributos da tabela Existem diversos atributos que podem ser incorporados à tabela, os quais são opcionais, sendo utilizados apenas se necessário. São eles: Border: configura a borda da tabela. Nesse caso, pode vir assim definido: border=“n”, em que n define a espessura da borda. Se “n” for zero, signifi- ca que a tabela é sem borda; alterando o “n” para qualquer outro número, este definirá a borda que se deseja naquela tabela. Align: define o alinhamento horizontal do conteúdo dentro da tabela. Os valores determinados para esse alinhamento são: e-Tec BrasilAula 2 – Fundamentos do HTML 41
  • 137. Left – à esquerda Center – no centro Right – à direita Se esses valores forem inseridos entre as tags <td>...</td> define o alinha- mento dentro da célula. Caso queira definir o alinhamento de toda a tabela, é necessário inserir os valores entre as tags <table>...</table>. Valign: define o alinhamento vertical do conteúdo dentro da tabela. Os va- lores definidos para esse alinhamento são: Top – ao alto Middle – ao meio Bottom – embaixo Como acontece com o align, se esses valores forem inseridos entre as tags <td>...</td>, será definido o alinhamento dentro da célula. Para definir o alinhamento de toda a tabela, é necessário inserir os valores entre as tags <table>...</table>. Na tabela criada na atividade anterior, exercite os atributos vistos até aqui. São eles: border, align e valign. 2.5 Imagens em HTML • As imagens utilizadas na página da web são, em sua maioria, nos forma- tos GIF, JPEG ou PNG, sendo GIF e JPEG os mais comuns. • É importante que o tamanho da imagem esteja entre 15KB e 80KB, pois imagens muito grandes demoram mais para carregar. • Caso a imagem que deseja inserir não esteja em nenhum desses forma- tos, é necessário convertê-la com a ajuda de software, como CorelDRAW ou GIMP, entre outros, como veremos à frente. Fundamentos do Desenvolvimento Webe-Tec Brasil 42
  • 138. • Há vários sites que disponibilizam imagens de botões (imagens utilizadas nos websites para indicar o caminho de uma página ou link), texturas, fotos, animações (arquivo GIF animado) para download gratuito, como os botões exemplificados na Figura 2.7 a seguir. Figura 2.7: Exemplo de imagens de botões Fonte: http://office.microsoft.com/pt-br/images/results.aspx?qu=bot%C3%A3o#ai:MC900432679| 2.6 Atributos ALT e ALIGN Atributos são características de determinadas tags; a maior parte das tags do HTML possui atributos. Nesta seção abordaremos as tags que têm a função de alinhar as imagens na página. 2.6.1 Sons e vídeos Para inserir vídeo ou som, é utilizado o marcador <EMBED>. É preciso especificar o nome do arquivo por meio do atributo SRC; veja no exemplo 4 e o resultado na Figura 2.8 a seguir. Exemplo 4: e-Tec BrasilAula 2 – Fundamentos do HTML 43
  • 139. Resultado: Figura 2.8: Exemplo de inserção de som na página Fonte: CEAD/Ifes ©(2010) Para inserir um vídeo, é importante levar em consideração o formato do arquivo, já que esse recurso depende de extensões ou plugins instalados no navegador. O vídeo possui também outros atributos que podem alterar o modo de visu- alização; como exemplo podemos citar: Loop: ajustado com o valor TRUE, o vídeo é configurado para tocar indefini- damente; isso quer dizer que, enquanto você estiver acessando a página, o vídeo passará sem que o usuário tenha a opção de pará-lo. Controller: permite mostrar ou não o controle do vídeo. –– False: não mostra o controle. –– True: mostra o controle. Autoplay: permite executar o vídeo, automaticamente, após ser carregado. –– False: não executa o vídeo. –– True: executa o vídeo. Width e Height: define a área de apresentação do vídeo. Observe com atenção o exemplo 5 e o resultado de um exemplo de inserção de vídeo em uma página web na Figura 2.9 a seguir. Fundamentos do Desenvolvimento Webe-Tec Brasil 44
  • 140. Exemplo 5: Resultado: Figura 2.9: Exemplo de inserção de vídeo na página Fonte: CEAD/Ifes ©(2010) No arquivo desenvolvido até aqui, acrescente uma imagem correspondente ao tema escolhido para desenvolver seu site. 2.7 Atributos width e height Esses atributos permitem alterar as dimensões da imagem, independente- mente do seu tamanho real, observe como utilizá-los no exemplo 6. Width= “n” – n é o número que determina a largura da figura, definido em pixels ou em porcentagem. Heigth= “n” – n é o número que determina a altura da figura, definido em pixels ou em porcentagem. No exemplo 6 temos o código para alteração das dimensões; a imagem e o resultado dessa alteração são visualizados na Figura 2.10 a seguir. Exemplo 6: É interessante que o arquivo da imagem esteja no mesmo diretório que o documento HTML; caso não esteja, é necessário passar o caminho completo. e-Tec BrasilAula 2 – Fundamentos do HTML 45
  • 141. Resultado: Figura 2.10: Exemplo de alteração das dimensões da imagem Fonte: CEAD/Ifes © (2010) 2.8 Atributo background É o atributo usado em HTML para inserir imagens de segundo plano; se esse atributo estiver inserido na tag <td>, a imagem de segundo plano será inse- rida na célula. Quando o atributo for inserido na tag <table>, a imagem será inserida na tabela e, quando estiver contido na tag <body>, a imagem será inserida na página como um todo. No exemplo 7 a seguir vemos a utilização do atributo background, e o seu resultado na Figura 2.11 a seguir. Background= “[caminho][nome da figura]” Exemplo 7: Resultado: Figura 2.11: Exemplo de segundo plano Fonte: CEAD/Ifes ©(2010) caminho Indica em qual diretório está localizada a figura a ser exibida. Caso a imagem se encontre no mesmo diretório da página que conterá essa figura, seu caminho poderá ser suprimido. Fundamentos do Desenvolvimento Webe-Tec Brasil 46
  • 142. Responda às questões: Qual a definição da tag <table>? Qual o atributo utilizado para definir espaçamento entre as células de uma tabela? Qual a definição do atributo width=“n” da tag <table>? Utilizando o arquivo desenvolvido, crie um texto e aplique os quatro tipos de alinhamento (align=”right”, “left”, “center”, “justify”). 2.9 Formatação de textos Para formatar o texto do HTML, conheceremos algumas tags importantes; elas nos ajudarão a definir tipo de fonte, tamanho, cor, quebra de parágrafo, entre outros. A tag <font>: é usada para definir qual o tipo de fonte o navegador irá usar. A tag <font> abre e a </font> fecha o trecho a ser formatado. Essa tag tem os atributos size, color e face, que definem o tamanho da fonte, cor e a fonte que será utilizada, respectivamente. A tag <br>: tem por função inserir a quebra de linha no ponto em que foi inserida. O navegador entende que, ao encontrar a tag <br>, deve ir, ime- diatamente, para a margem esquerda da outra linha, como mostrado no exemplo 8 e o resultado da formatação de texto na Figura 2.12 a seguir. Exemplo 8: e-Tec BrasilAula 2 – Fundamentos do HTML 47
  • 143. Resultado: Figura 2.12: Exemplo de formatação de texto Fonte: CEAD/Ifes © (2010) Tags de estilo são usadas para definir os estilos de formatação em um texto. Entre as tags de estilo, podemos citar: <strong>...</strong>: o texto será exibido em negrito; <em>...</em>: o texto será apresentado em itálico; <u>...<u>: o texto será exibido no modo sublinhado; <S>...<S>: o texto será exibido no modo tachado; <big>...</big>: o texto será exibido em tamanho maior do que o texto ao seu redor; <small>...</small>: o texto será exibido em tamanho menor do que o texto ao seu redor; <sub>...</sub>: o texto será exibido subscrito; <tt>...</tt>: o texto será exibido em formato de máquina de escrever. Agora observe o exemplo 9 e o resultado de formatação de estilo de texto na Figura 2.13 a seguir. Fundamentos do Desenvolvimento Webe-Tec Brasil 48
  • 144. Exemplo 9: Resultado: Figura 2.13: Exemplo de formatação de estilo de texto Fonte: CEAD/Ifes © (2010) Pratique a formatação de texto e estilos de fontes, conforme descrito no exemplo 9. Lembre-se de utilizar o arquivo que vem desenvolvendo até aqui. Qual a tag utilizada na quebra de parágrafos? Qual a definição sentença <p align= “center”>.... texto do exercício </p>? 2.10 Vínculos ou links Vínculos ou links são maneiras como podem ser criadas ligações entre dois ou mais documentos HTML. A tag responsável pela criação vínculos é denominada <a>...</a>, sendo <a> a tag de abertura e </a> a de fechamento, veja na Figura 2.14 a seguir. e-Tec BrasilAula 2 – Fundamentos do HTML 49
  • 145. A HREF= “vínculo”>texto destaque</A> Texto a ser mostrado na páginaArquivo a ser carregado Tag de abertura Tag de fechamento 1 2 3 4 5 Figura 2.14: Partes que compõem um vínculo Fonte:Adaptado de Alves (2009) 1. Tag de abertura. 2. Atributo. 3. Nome do arquivo a ser carregado. 4. Texto a ser mostrado na página; geralmente, ganha destaque por estar na cor azul. 5. Tag de fechamento. Fundamentos do Desenvolvimento Webe-Tec Brasil 50
  • 146. Resumo Com a conclusão desta Aula, você deverá estar apto a reconhecer a lingua- gem HTML e a utilizá-la. Nela você descobriu que HTML é uma linguagem utilizada para criar páginas web. HTML é a abreviação de Hyper Text Markup Language (linguagem de criação de hipertexto) e é usada para estruturar uma página web. Descobriu também que, usando HTML, marcamos o con- teúdo com tags para oferecer a estrutura e que chamamos as tags corres- pondentes e seu conteúdo de “elementos”. Um elemento é composto por três partes: uma tag de abertura, conteúdo e uma tag de fechamento. Há alguns elementos, como <img>, que são uma exceção a essa regra. Suas páginas sempre deverão possuir um elemento <HTML> em conjunto com um elemento <head> e um elemento <body>. Enfim, os diversos conhecimentos adquiridos até aqui serão importantes para o bom andamento da próxima Aula, que discutirá o CSS, uma lingua- gem de estilo que define o layout de documentos HTML. Atividades de aprendizagem 1. Qual o principal atributo da tag <img>? 2. Quais atributos servem para definir largura e altura de uma imagem? e-Tec BrasilAula 2 – Fundamentos do HTML 51
  • 148. e-Tec Brasil Aula 3 – Cascading Style Sheets (CSS) Objetivos Compreender o conceito de CSS. Entender a criação de estilos. Conhecer o método de aplicação do CSS no documento HTML. Conhecer o conceito de pseudoclasses e pseudoelementos. O CSS é uma linguagem de estilo que foi desenvolvida para controlar cores, margens, fontes, linhas, alturas, larguras, imagens de fundo, entre outros. Pode parecer estranho aprender a controlar todos esses itens, vimos isso quando estudamos HTML. Realmente, o HTML tem algumas tags com essas funções; porém, nem sempre serão suficientes para suprir a necessidade de encontrar meios de construir layouts para os documentos online. Para suprir a necessidade de novas possibilidades de criação de layouts foi criado o CSS. Dessa forma, o HTML passou a ser utilizado apenas como lin- guagem de marcação e estruturação, ficando com o CSS a função de aplicar estilos necessários para a aparência da página desenvolvida. Com a criação do CSS, houve alguns benefícios para o desenvolvimento de websites, entre eles: a precisão no controle do layout, a criação da folha de estilos, possibilitando o controle de vários documentos a partir de um, a possibilidade de criar layouts específicos para determinadas mídias, telões e dispositivos móveis, entre outros. Para aplicação do CSS são criadas folhas de estilos, documento com extensão CSS que conterá os códigos de definição de estilo de determinado documen- to, que pode ser de extensão HTML. Essa folha pode ser um documento se- parado, contendo apenas os códigos de estilos, vinculado ao arquivo HTML; ou, então, esses códigos podem ser digitados diretamente no arquivo HTML. Existem três maneiras de aplicar o CSS em um documento, mostradas a seguir. Para o estudo e desenvolvimento das atividades deste capítulo, continuaremos a usar o Notepad++; porém, os arquivos desenvolvidos serão salvos agora na extensão .css. e-Tec BrasilAula 3 – Cascading Style Sheets (CSS) 53
  • 149. 3.1 Criando estilos Os estilos definidos pelo CSS são aplicados conforme a seguinte síntese: elemento {atributo1: valor; atributo2: valor...} Podemos descrever cada item dessa síntese como: • Elemento: descreve o elemento de design ao qual o estilo será aplicado. Essa é a mesma tag HTML, mas sem os sinais de maior e menor. Essa parte da regra é, às vezes, chamada de selector. • Atributo: aspecto específico do elemento que se quer usar como estilo. Deve ser um nome de atributo CSS válido, como o atributo font-size. • Valor: esse item configura a aplicação do atributo. Deve ser uma configura- ção válida para o atributo em questão, como 20 pt (20 pontos) para font-size. • Atributo valor: nesse item da síntese pode-se atribuir múltiplas declara- ções que podem ser separadas com ponto e vírgula (;). Porém, no último item não coloque ponto e vírgula. Veja um exemplo de regra que diz que todos os títulos de nível 2 (tags <H2>) devem ter tamanho de 24 pontos e cor azul: H2 {font-size: 24pt; color: blue} Para que fique claro e visível que você colocou todos os sinais de ponto e vírgula e chavetas nos lugares corretos, utilize quebras de linha e espaços em branco na regra. Exemplo: P {font-family: Times; Font-size: 12pt; color: blue; margin-left: 0.5in} O exemplo acima descreve que os parágrafos deverão aparecer em fonte Times, 12 pontos, azul, recuada meia polegada, a partir da margem esquerda da página. Fundamentos do Desenvolvimento Webe-Tec Brasil 54
  • 150. 3.2 Método de aplicação do CSS no documento HTML Existem três métodos de aplicação do CSS; são eles: 3.2.1 Método inline Método inline: é aplicado usando o atributo style do HTML, acrescenta-se dentro do atributo style a característica que se deseja obter naquele docu- mento. Com esse método, é possível conseguir poucos efeitos. Os estilos criados por esse método só afetam a tag na qual ele está inserido, não afeta outras tags e nem mesmo outros documentos. Ao utilizar a tag style, não é necessário utilizar os colchetes, nem acrescentar a tag </style> de fechamento; no CSS as regras devem ser colocadas entre aspas, separando-as com o ponto e vírgula. Observe o exemplo 10 e o resul- tado da inserção da tag style inline da Figura 3.1 a seguir. Exemplo 10: Resultado: Figura 3.1: Exemplo de inserção da tag style inline Fonte: CEAD/Ifes © (2010) 3.2.2 Método interno Este método também é aplicado utilizando a tag <style> do HTML; porém nesse método a tag é colocada na própria página HTML, ao invés de separa- do como no método inline. e-Tec BrasilAula 3 – Cascading Style Sheets (CSS) 55
  • 151. Veja no exemplo 11, como utilizar o método interno e o resultado na Figura 3.2 a seguir. Exemplo 11: Resultado: Figura 3.2: Exemplo de inserção da tag style método interno Fonte: CEAD/Ifes © (2010) 3.2.3 Método externo Nesse método é criado um arquivo separado com os estilos. Esse arquivo deve ser salvo com a extensão .CSS. Deve-se salvar o arquivo no mesmo diretório que o arquivo em HTML, como mostra o exemplo na Figura 3.3 a seguir. Figura 3.3: Exemplo de organização do diretório Fonte: CEAD/Ifes ©(2010) Fundamentos do Desenvolvimento Webe-Tec Brasil 56
  • 152. Para aplicar os estilos em uma nova página HTML, basta inserir uma tag <link> no cabeçalho que faça referência ao arquivo .CSS, conforme exemplo12 a seguir. Note que o caminho para a folha de estilos é indicado no atributo href. Veja que a Figura 3.4 e o exemplo 12 mostram um exemplo da tag style método externo. Exemplo 12: Figura 3.4: Exemplo de inserção da tag style método externo Fonte: CEAD/Ifes © (2010) Figura 3.5: Exemplo de inserção da tag style método interno Fonte: CEAD/Ifes © (2010) Observe na Figura 3.6 o exemplo de um menu com aplicação da CSS. No Anexo “Atalhos e atributos do CSS” , você tem acesso a um quadro com vários atributos CSS e a descrição do que cada um formata. e-Tec BrasilAula 3 – Cascading Style Sheets (CSS) 57
  • 153. Resultado: Figura 3.6: Exemplo de menu com aplicação do CSS Fonte: CEAD/Ifes © (2010) 3.3 Pseudoclasses e pseudoelementos Podem ser usados como seletores no CSS, mas não existem dentro do HTML, e sim no browser, sob certas condições, para serem usados como ligação com as folhas de estilo. São denominados “classes” e “elementos” por ser essa a maneira con- veniente de descrever seu comportamento. E são usados para especificar subpartes de elementos; enquanto pseudoclasses permitem às folhas de es- tilo diferenciar entre tipos diferentes de elementos. Síntese das pseudoclasses: selector:pseudo-class {property: value} Síntese dos pseudoelementos: selector:pseudo-element {property: value} O Quadro 3.1 a seguir foi extraído do livro - Use a cabeça! HTML com CSS e XHTML (FREEMAN; FREEMAN, 2008), e mostra, por meio de uma conversa en- tre o HTML e o CSS, as suas principais diferenças, qualidades e características. Fundamentos do Desenvolvimento Webe-Tec Brasil 58
  • 154. Quadro 3.1: HTML e CSS sobre conteúdo e estilo HTML CSS Saudações, CSS; estou feliz que você esteja aqui porque quero esclarecer algumas confusões sobre nós. É mesmo? Que tipo de confusão? Muitas pessoas pensam que minhas tags dizem ao browser como exibir o conteúdo. Isso não é verdade! Eu trabalho com a estrutura e não com a apresentação Ah! É. Eu não gostaria de ver as pessoas te dando crédito pelo meu trabalho Bem, você pode ver como as pessoas podem ficar confu- sas; afinal é possível utilizar HTML, sem CSS e ainda obter uma página com visual decente. “Decente” soa um pouco exagerado, você não acha? Quero dizer, a maneira como a maioria dos browsers exi- be o HTML puro parece um pouco ordinária.As pessoas precisam aprender o poder do CSS e como nós podemos facilmente dar um ótimo estilo às páginas Web. Ei, eu também sou muito poderoso.Ter seu conteúdo estruturado é muito mais importante do que ter algo bonitinho. O estilo é muito superficial; é a estrutura do conteúdo que interessa. Fala sério! Sem mim as páginas Web seriam muito chatas. E não apenas isso, tire a capacidade de adicionar estilo às suas páginas e ninguém as levará a sério.Tudo parecerá malfeito e nada profissional. Nossa, que ego, heim? Acho que eu não poderia esperar outra coisa de você. Você está apenas tentando fazer uma declaração da moda com todo o estilo sobre o qual está falando. Declaração da moda? Um bom design e uma boa apresentação podem ter um efeito enorme na legibilidade e usabilidade das páginas. E você deveria estar contente porque minhas regras de estilo flexíveis permitem que os designers façam qualquer tipo de coisas interessantes com seus elementos sem bagunçar sua estrutura. Certo. Na verdade, somos linguagens totalmente diferen- tes, o que é bom, porque eu não gostaria de ter nenhum dos seus designers de estilo bagunçando meus elementos de estrutura. Não se preocupe, vivemos em universos separados. E isso é obvio para mim, todas às vezes que olho para CSS, essa linguagem alienígena. Tá! HTML pode ser considerada uma linguagem? Alguém já viu algo mais desajeitado do que aquelas tags? Milhões de escritores Web discordariam de você. Eu tenho uma linguagem boa e limpa que se encaixa perfei- tamente ao conteúdo. Dê só uma olhada no CSS; são elegantes e simples, e não sinais de menor e maior patéticos<em><to><torno><d e><tudo>. <Olha><gente><,><eu><posso><falar>< como><o><Sr.><HTML><!> Ei, que estupidez, já ouviu falar de tags de fechamento? Rá! Eu vou te mostrar...Sabe por quê? Eu posso escapar... Veja bem, não importa aonde você for, está cercado por tags <style>. Boa sorte! Ao tentar escapar delas. Fonte: FREEMAN; FREEMAN, 2008, p. 28 e-Tec BrasilAula 3 – Cascading Style Sheets (CSS) 59
  • 155. Resumo No decorrer desta Aula você pôde descobrir que o CSS contém declarações simples, chamadas regras. Cada regra fornece um estilo para uma seleção de elementos HTML. Uma das maneiras mais fáceis de incluir estilo no HTML é por meio da tag <style>. O CSS oferece muito controle sobre a aparência de suas fontes, incluindo as propriedades “font-family”, “font-weight” e “font-style”. A partir da próxima Aula, você conhecerá os tipos de imagens e seus formatos e saberá onde aplicá-las. Atividades de aprendizagem Você se lembra do site que fez na Aula anterior? Agora, crie uma Folha de Estilo (um arquivo CSS) pra esse site, e “linke” todas as páginas. Não se esqueça de definir estilos para os cabeçalhos, os parágrafos, as tabelas, etc. Use todas as propriedades que você viu até agora. O outro ponto que vai ser avaliado aqui é a legibilidade; lembre-se do uso adequado das cores e fontes. Ao término, lembre-se de salvar sua atividade. Fundamentos do Desenvolvimento Webe-Tec Brasil 60
  • 156. e-Tec Brasil Aula 4 – Tipos de imagens Objetivos Conhecer os tipos de imagens e suas aplicações. Conhecer o software CorelDRAW. Conhecer as ferramentas básicas do CorelDRAW. Existem dois tipos de imagens: bitmaps ou vetorial. O tipo do arquivo de imagem é definido conforme o armazenamento desta, isto é, definido con- forme a extensão em que será salva a imagem. Nesta Aula veremos os formatos.GIF, JPG e.BMP. 4.1 Imagens bitmaps As imagens obtidas por fotografia digital ou escaneadas são bitmap, ou seja, mapeadas por bits. Quer dizer que a imagem está organizada em uma série de linhas e colunas formadas por pontos conhecidos como pixels. Os pontos são distribuídos em x pixels de altura, y pixels de largura e z pixels de profundidade. Y Pixel Z X Figura 4.1: Pixels de uma imagem bitmap Fonte: CEAD/Ifes © (2010) Pixek É o menor elemento de uma imagem. e-Tec BrasilAula 4 – Tipos de imagens 61
  • 157. Profundidade é a quantidade de cores por pixel, ou seja, é o número de cores que uma imagem é capaz de reproduzir, sendo medidas em bits. Assim, uma imagem de apenas 2 bits exibe apenas 2 cores (21) preto e branco. Quanto maior a quantidade de bits de uma imagem por pixel, maior será a quantidade de cores exibida pela imagem. Veja o Quadro 4.1 a seguir. Quadro 4.1: Número de cores por bits de imagem Profundidade da cor Número de cores Bits de imagem (expoente) 1 2 21 2 4 22 4 16 24 6 64 26 7 128 27 8 256 28 16 16 – bit (true– color), 65.536 cores 216 24 24 – bit (true – color), 16.777.216 cores 224 32 24 – bit (true – color), canal alfa, 16.777.216 de cores 232 Fonte:Adaptada de Oliviero (2001) A resolução da imagem é proporcional à quantidade de pixels contida em uma polegada quadrada. Normalmente, a resolução é medida em dpi – dots per inch (pontos por polegadas). Quanto maior a resolução da imagem, maior será o tamanho deste arquivo. Figura 4.2: Resolução da imagem Fonte: CEAD/Ifes © (2010) Fundamentos do Desenvolvimento Webe-Tec Brasil 62
  • 158. As imagens criadas para serem inseridas em websites não precisam ter mais que 72 dpi, pois, além de ser uma resolução satisfatória para esse tipo de aplicação, a maioria dos monitores que estão no mercado não suporta resoluções maiores. Resoluções maiores que 72 dpi são necessárias apenas quando o objetivo é imprimir a imagem; as impressoras laser ou jato de tinta disponíveis no mer- cado suportam resoluções que variam de 150 a 1.200 dpi. Conforme pode ser notado na Figura 4.2, as dimensões de uma imagem podem ser definidas pela sua largura e altura em pixels. 4.2 Imagens vetoriais Imagens vetoriais ou ilustrações vetoriais são construídas por intermédio de cál- culos matemáticos, coordenadas cartesianas e denominadas vetores. As imagens vetoriais podem ser redimensionadas em qualquer escala, sem perda de quali- dade; independentemente de serem impressas ou de estarem sendo vistas em monitores, elas também ocupam um espaço menor que as imagens bitmaps. A imagem vetorial é composta por elementos sobrepostos e independentes um do outro, o que permite a sua edição. Porém, as imagens não possuem qualidade fotográfica. Na web essas imagens são muito utilizadas na construção de elementos gráficos e botões. Figura 4.3: Exemplo de imagem vetorial Fonte: http://office.microsoft.com/pt-br/clipart/download.aspx Para utilizarmos imagens vetoriais na web, é necessário convertê-las para bit- map, o que pode ser feito no mesmo software utilizado para criação da imagem. e-Tec BrasilAula 4 – Tipos de imagens 63
  • 159. 4.3 Formatos de imagens 4.3.1 GIF – CompuServe® Graphics Interchange Format Formato muito utilizado no ambiente da internet. Tem como formato pa- drão o uso de 256 cores que correspondem a 8 bits; além disso, suas combi- nações simulam outras cores. Tem a vantagem de não perder qualidade quando alterado o seu tamanho original e ocupa pouco espaço no computador; por isso é considerado per- feito para o desenvolvimento de páginas para internet. O GIF pode ser utilizado para a criação de imagens animadas; porém, GIFS animados são mais pesados e, por isso, levam mais tempo para serem carre- gados pelo navegador. Segundo Olivero (2001), o formato GIF usa técnica de compressão denomi- nada LZW (Lempel-Ziv-Welsch), que comprime uma imagem sem perdas em sua qualidade. Assim, um navegador, ao descomprimir uma imagem do tipo GIF, vai exibi-la com a mesma aparência da imagem original. Figura 4.4: Exemplo de imagem em formato .GIF Fonte: Office Microsoft, 2011 Fundamentos do Desenvolvimento Webe-Tec Brasil 64
  • 160. 4.3.2 BMP – Bitmap É uma imagem bitmap sem compressão da informação, o que a torna gran- de para ser utilizada na web. É um formato comum, o qual todos os programas gráficos conseguem abrir e ler. 4.3.3 JPG (ou JPEG) - Joint Photographic Experts Group O JPG é muito utilizado em trabalhos para o ambiente da internet; porém, ao ter o seu tamanho alterado, perde qualidade. Trabalha com 24 bits, o que corresponde a milhões de cores, o que o torna um excelente formato para imagens fotográficas. Geralmente são arquivos pequenos, sendo possível ter um formato menor que em formato GIF. Esses são os principais tipos de imagens utilizados na web. No Quadro 4.2 é possível ver seus formatos e suas principais características, vantagens e desvantagens. Quadro 4.2: Características dos formatos de imagens Formato da imagem Características Vantagens Desvantagens Observações GIF Graphics Inter- change Format Nº de cores: até 256 cores (8 bits). Compressão: Sim. Perda de informação: Não. Transparência: Sim. Tem compressão, sem perda de informação. Indicado para esquemas, grá- ficos de barras, etc. Só permite um arma- zenamento máximo de 256 cores. Não indicado para fotografias nem imagens fotorrealistas (muitas cores). Com compressão LZW. BMP Bitmap Nº máximo de cores: até 16 milhões de cores (24 bits). Compressão: Não tem. Perda de informação: Não aplicável. Transparência: Não. Não tem perda de informação. Por não ter compres- são, os ficheiros são muito grandes. Caso a imagem tenha 16 milhões de cores, cada pixel ocupa sempre 24 bits (3 bytes). Sem compressão. Continua e-Tec BrasilAula 4 – Tipos de imagens 65
  • 161. JPG (ou JPEG) Joint Photographic Experts Group Nº de cores: Sempre 16 milhões de cores (mes- mo que a imagem tenha menos cor) (24 bits). Compressão: Sim. Perda de informação: Sim Transparência: Não. Armazena sempre informação referen- te a 16 milhões de cores.Algoritmo de compressão muito eficaz. Indicado para fotografias e ima- gens fotorrealistas. Como o algoritmo de compressão, tem perda de informa- ção. Cada vez que fazemos guardar o ficheiro, volta a perder informação. Não indi- cado para esquemas e gráficos de barras (por exemplo) porque o algoritmo não está oti- mizado para transições abruptas de cor. Muito pequeno. Ide- al para colocar em páginas de internet e enviar por e-mail. Conclusão Fonte:Adaptada de Oliviero (2001) O Quadro 4.3 foi extraído do livro Use a cabeça! HTML com CSS e XHTML (FREEMAN; FREEMAN, 2008), e mostra, por meio de uma conversa entre o JPG e o GIF, suas principais diferenças e qualidades. Quadro 4.3: JPG e GIF comparam suas imagens JPG G IF Olá, GIF. Não foi você que eu vi agora mesmo em uma página web? Ahã! Assim que você se tornar bom em representar imagens complexas, como fotos, tenho certeza de que as pessoas ficarão felizes em escolher você, mas você ainda não sabe como representar nada que precise de mais de insignificantes 256 cores. Você quer falar comigo sobre qualidade? Eu deixo meus usuários utilizarem exatamente a qualidade que eles desejam. Isso é verdade, mas a maior parte das pessoas está mais do que satisfeitas com isso. Nem todo mundo precisa de imagens de altíssima resolução em suas páginas. Comigo, os usuários normalmente podem escolher uma configuração de qualidade baixa ou média se estiverem satisfeitos com a qualidade das imagens. E, se utilizassem você, teriam arquivos imensos para a mesma imagem. Ah, claro, GIF funciona muito bem nesses casos, mas apenas se houver um pequeno número de cores.Você é apenas uma versão minha menos equipada. Eu posso fazer tudo o que você faz. O que? GIF? Estamos no meio de um programa aqui. Aonde você foi? É... Não seria ótimo se as pessoas ficassem somente com o GIF? Então, eu não precisaria encontrar você com tanta frequência. Ei, representar fotos é fácil, se você quer perder qualidade. Mas eu sou todo qualidade. Se eu não puder representar totalmente uma, não farei isso. Dê uma olhada em alguns dos logos que você tentou representar ... Eca! Tá, mas a que custo? Encare a verdade: para fazer com que uma foto fique de um tamanho razoável para ser transmitida pela web, você precisa perder um pouco de qualidade na imagem. Certo, certo, mas você já olhou para as linhas, logos, peque- nos textos, cores sólidas? Eles não ficam tão bem em JPG. (GIF literalmente desaparece). (GIF reaparece). Não precisa entrar em pânico. Estou apenas mostrando algo a você. Se JPG é tão genial, como é que você não consegue tornar partes de suas imagens transparentes como eu? Com a transparência, o que está atrás da imagem pode ser visto. Se meus usuários quiserem um logo em uma página web, e a página tiver um fundo colorido, eles me utilizarão, pois sabem que eu deixarei o fundo aparecer através de partes do logo que não possuem cor. Claro, e então alguém altera a cor da página web. Sem chance.A transparência é o caminho e, para usá-lo, você precisa de mim. Continua Fundamentos do Desenvolvimento Webe-Tec Brasil 66
  • 162. Eu acho que você supervaloriza essa coisa de trans- parência – digo, você precisa apenas colocar aquela cor de fundo na imagem. Bem, não estou muito preocupado com isso; não há muitas fotos sem fundo. E quando isso aconteceria? Ah, tá. Fique com seus logos e imagens de texto simples, e eu ficarei com as fotos e as imagens complexas.Todo mundo sabe que eu sou melhor para lidar com a complexidade. Ah, é? E que tal se você quiser recortar a foto de alguém, ou mesmo de uma árvore, e colocá-la em uma página web sem um fundo? Você ficaria surpreso com a quantidade de vezes em que sou usado para representar fotos, só porque meus usuários desejam um fundo transparente. Ei, alguém está me pedindo para fazer uma transparência ... Tenho que correr. Conclusão Fonte: FREEMAN; FREEMAN, 2008, p. 29 Quais os padrões de imagens mais utilizados na web e por quê? 4.4 CorelDRAW É um programa de desenho vetorial bidimensional para design gráfico, de- senvolvido pela Corel Corporation, Canadá. É um aplicativo de ilustração vetorial e layout de página que possibilita a criação e a manipulação de vários produtos, como: desenhos artísticos, publicitários, logotipos, capas de revistas, livros, CDs, imagens de objetos para aplicação nas páginas de in- ternet (botões, ícones, animações gráficas, etc.), confecção de cartazes, etc. Segundo Oliviero (2001), o CorelDraw é um software que permite a criação de gráficos vetoriais compactos para web, dentre outras funcionalidades, podemos reduzir o tamanho final de um arquivo para dowloand mais rápido de páginas da web, através do uso de filtros JPG, GIF e PNG. Ao ser executado, o Corel apresenta a tela da Figura 4.5, que permite que você escolha: abrir novo desenho, abrir os últimos arquivos editados, abrir arquivo salvo em disco, abrir template, ou seja, modelo predefinido, abrir tutorial e ver as atualizações dessa versão do software em relação à anterior. Nesta tela escolheremos a opção novo, o que nos levará à tela principal do CorelDRAW. Saiba mais sobre o CorelDRAW em: www.corel.com. e-Tec BrasilAula 4 – Tipos de imagens 67
  • 163. Figura 4.5: Tela de abertura do CorelDRAW X3 Fonte: CorelDRAW X3 As Figuras 4.6 e 4.7 mostram, respectivamente, a tela do ambiente de tra- balhocom a página para criação de um novo arquivo, ou com arquivo já criado. Como você pode notar, o ambiente de trabalho do CorelDRAW X3 é composto por diversas janelas, cada uma com sua função específica. Figura 4.6: Ambiente de trabalho do CorelDRAW X3 Fonte: CorelDRAW X3 Fundamentos do Desenvolvimento Webe-Tec Brasil 68
  • 164. Figura 4.7: Tela do ambiente de trabalho com imagem já criada Fonte: CEAD/Ifes ©(2010) Figura 4.8: Janela de aplicativos do CorelDRAW X3 Fonte: CorelDRAW X3 e-Tec BrasilAula 4 – Tipos de imagens 69
  • 165. Quadro 4.4: Descrição dos aplicativos do CorelDRAW Parte Descrição Caixa de ferramentas Uma barra flutuante com ferramentas para criação, preenchimento e modificação de objetos no desenho. Barra de título A área que exibe o título do desenho aberto no momento. Barra de menus A área que contém opções de menu pull-down. Barra de ferramentas Uma barra de encaixe que contém atalhos para menus e outros comandos. Janela de desenho A área fora da página de desenho circundada por barras de rolagem e controle dos aplicativos. Barra de propriedades Uma barra de encaixe com comandos relacionados à ferramenta ou ao objeto ativo. Por exemplo, quando a ferramenta texto está ativa, a barra de propriedades de texto exibe comandos que criam e editam texto. Janela de encaixes Uma janela que contém os comandos disponíveis e as configurações relevantes para uma ferramenta ou tarefa específica. Réguas Bordas horizontais e verticais que são utilizadas para determinar o tamanho e a posição dos objetos em um desenho. Navegador de docu- mentos A área na parte inferior esquerda da janela do aplicativo, que contém controles para a movimentação entre as páginas e a adição de páginas. Página de desenho A área retangular dentro da janela de desenho.Trata-se da parte da área de trabalho que pode ser impressa. Barra de status Uma área na parte inferior da janela do aplicativo que contém informações sobre proprie- dades do objeto, como tipo, tamanho, cor, preenchimento e resolução.A barra de status também mostra a posição atual do mouse. Navegador Um botão no canto inferior direito que abre uma pequena exibição para ajudá-lo a se mover em um desenho. Paleta de cores Uma barra de encaixe que contém amostras de cores. Fonte:Adaptado do Guia do usuário da suíte de aplicativos gráficos – CorelDRAW 4.4.1 Caixa de ferramentas Do lado esquerdo da tela é possível ver a caixa de ferramentas. Lá você encontra as ferramentas necessárias para a edição e vetorização de imagens. É importan- te conhecermos uma a uma, pois este é o conjunto de ferremantas mais impor- tante do Corel. Com elas podemos modificar, criar e preeencher desenhos. 4.4.2 Menus desdobráveis Você pode notar que algumas ferramentas têm uma pequena seta em sua parte inferior; ao clicarmos ali, é possível vermos o menu desdobrável, ferramentas que possuem funções relacionadas ou interligadas à ferramenta que está visível. Fundamentos do Desenvolvimento Webe-Tec Brasil 70
  • 166. Como exemplo, podemos citar a ferramenta editar forma; quando aces- samos o menu, encontramos as ferramentas: forma, pincel borrar, pincel áspero e transformação. No Quadro 4.5 veremos cada ferramenta e suas respectivas funções. Quadro 4.5: Descrição das ferramentas do CorelDRAW Ferramenta Função Seleção Ferramenta usada para selecionar, dimensionar, inclinar e girar os objetos no programa. Editar forma Forma: editar a forma dos objetos. Pincel borrar: distorcer um objeto em vetor sendo arrastado sobre ele. Pincel áspero: distorcer o contorno quando arrastado sobre o objeto. Transformação: transformar os objetos usando recursos na barra de propriedades rotação livre, reflexão angular livre, escala livre e inclinação livre. Cortar Cortar: permite mover áreas indesejadas dos objetos. Faca: permite cortar objetos. Borracha: permite apagar áreas do desenho. Excluir segmento virtual: permite excluir as partes de objetos entre inserções. Zoom Zoom: altera nível de ampliação na janela de desenho. Mão: controla que parte do desenho fica visível na janela do desenho. Curva Mão livre: permite desenhar segmentos de linhas únicos e curvas. Bézier: permite desenhar curvas, um segmento de cada vez. Mídia artística: fornece acesso às ferramentas pincel, espalhador, caligráfico e pressão. Caneta: permite desenhar linhas curvas no modo de visualização. Curva de 3 pontos: permite desenhar curvas e definir os pontos iniciais, final e central. Conexão: une dois objetos por uma linha. Dimensão: desenha linhas de dimensões verticais, horizontais, inclinadas ou em ângulo. Ferramentas inteligentes Preenchimento inteligente: permite criar objetos, a partir de áreas contornadas para, então, aplicar um preenchimento. Desenho inteligente: converte pinceladas à mão livre, em formas básicas e curvas suaves. Retângulo Retângulo: permite criar quadrados e retângulos; Retângulo com 3 pontos: permite desenhar retângulos em ângulo. Elipse Elipse: permite desenhar elipses e círculos. Elipse com 3 pontos: permite deenhar elipses em ângulo. Objeto Polígono: permite criar estrelas e polígonos simétricos. Estrela: permite criar estrelas perfeitas. Estrela complexa: estrelas complexas que apresentam lados com inserção. Papel gráfico: simula um papel quadriculado. Espiral: permite desenhar espirais simétricas e logarítmicas. Formas perfeitas Formas básicas: traz várias formas básicas que podem ser usadas em nossos trabalhos. Formas de seta: setas de diversas formas, direção e número de pontas. Formas de fluxograma: permite desenhar símbolos de fluxograma. Formas de banner: modelos de objetos de fita e formas de explosões. Formas de legenda: permite desenhar legendas e etiquetas. Texto: Permite a digitação de palavras como texto artístico ou de parágrafo. Tabela Permite desenhar e editar tabelas. Continua e-Tec BrasilAula 4 – Tipos de imagens 71
  • 167. Ferramentas interativas Mistura: mistura dois objetos. Contorno: aplica contorno a um objeto. Distorcer: distorção do tipo empurrar e puxar, zíper e torcer (na barra de propriedades). Sombreamento: aplica sombras aos objetos. Envelope: dá forma a um objeto arrastando os nós do envelope. Extrusão: aplica a ilusão de profundidade a objetos. Transparência: aplica transparências aos objetos. Conta-gotas Conta-gotas: copia as propriedades do objeto. Balde de tinta: permite aplicar as propriedades copiadas com o conta-gotas aos objetos. Contorno Abre menu desdobrável para acesso rápido às configurações de contorno. Preenchimento Menu desdobrável para acesso às caixas de diálogo Preenchimento. Preenchimento interativo Preenchimento interativo: permite aplicar vários preenchimentos. Preenchimento de malha: Permite aplicar uma grade de malha a um objeto. Conclusão Fonte:Adaptado do Guia do usuário da suíte de aplicativos gráficos – CorelDRAW Resumo No decorrer deste capítulo você pôde descobrir que: Um pixel é o menor ponto que pode ser representado na tela. Cada imagem é composta por milhares de pixels. Dependendo de seu monitor, pode haver algo em torno de 72 a 120 pixels em uma polegada. JPG e GIF são os dois formatos para imagens, amplamente, suportados por browsers web. O formato JPG é o melhor para fotografia e o formato GIF é o melhor para logos e outras figuras simples com cores sólidas, linhas ou texto. Você conheceu o CorelDRAW, um programa de desenho vetorial bidimen- sional, utilizado para fazer ilustração vetorial e layout de página, que possi- bilita a criação e a manipulação de vários produtos. Na próxima aula, você conhecerá o Photoshop, software caracterizado como editor de imagens bidimensionais do tipo raster. Atividades de aprendizagem 1. Faça a vetorização de uma imagem simples, um boneco de neve, por exemplo. Nesta primeira atividade, você terá o passo a passo para facili- tar sua familiarização com as ferramentas. As imagens e o passo a passo para o desenvolvimento dessa atividade encontram-se no Apêndice 1. 2. Depois de concluída a atividade do boneco de neve, vamos construir um botão. Este é um objeto muito utilizado em páginas da internet. Você encontrará a imagem e o passo a passo no Apêndice 2. Fundamentos do Desenvolvimento Webe-Tec Brasil 72
  • 168. e-Tec Brasil Aula 5 – Software de edição de imagem (GIMP) Objetivos Conhecer o software GIMP. Aprender a utilizar as principais ferramentas do GIMP. No decorrer desta aula utilizaremos um programa de código aberto, o GIMP (GNU Image Manipulation Program). Você poderá fazer o download gratui- tamente do GIMP, no site http://www.gimp.org/. Ou, se preferir, poderá fazer o download no formato portátil, caso não queria instalar o programa no computador que utiliza para estudar. Figura 5.1: Wilber, mascote oficial do GIMP Fonte: GIMP v.2.6.11, 2011 O GIMP é um software para criação e edição de imagens de bitmap e também suporta formatos vetoriais. Na primeira vez que o GIMP for aberto, você será levado ao ambiente de trabalho padrão. Esse ambiente poderá ser customizado. e-Tec BrasilAula 5 – Software de edição de imagem (GIMP) 73
  • 169. Figura 5.2: Área de trabalho do GIMP Fonte: GIMP v.2.6.11, 2011 Conforme pode ser visto na Figura 5.3, ao iniciar o GIMP você verá uma cai- xa de ferramentas, camadas e os menus de acesso a operações como salvar arquivo, editar, exibir janelas, etc. 5.1 Abas e janelas O GIMP já vem com o recurso de abas ativo. Assim como as abas, as janelas funcionam como caixas de diálogo que nos permitem selecionar opções e fazer uso dos seus recursos. 5.2 Caixa de ferramentas Na caixa de ferramentas estão disponíveis as ferramentas necessárias para trabalhar com o GIMP. Observe que em todas as ferramentas, o diálogo “opções de ferramentas” exibe as opções da ferramenta selecionada, que permite customizá-la. Fundamentos do Desenvolvimento Webe-Tec Brasil 74
  • 170. Figura 5.3: Caixa de ferramentas do GIMP Fonte: GIMP v.2.6.11, 2011 e-Tec BrasilAula 5 – Software de edição de imagem (GIMP) 75
  • 171. 5.2.1 Ferramentas de seleção As ferramentas a seguir são destinadas à seleção, não fazem qualquer alte- ração na imagem: Figura 5.4: Ferramentas de seleção Fonte: GIMP v.2.6.11, 2011 Quadro 5.1: Descrição das ferramentas de seleção do GIMP Ferramenta Função Seleção retangular Para utilizar a ferramenta seleção retangular, basta selecioná-la na caixa de ferramentas, em seguida clicar na janela da imagem arrastando o mouse (com o botão pressionado), criando uma seleção, que é indicada por um contorno tracejado intermitente. Na caixa de diálogo “opções de ferramentas” temos as opções de “modo” que indicam como a seleção que está sendo criada poderá ser combinada com alguma outra.As opções para esse modo são: Substituir a seleção atual: o retângulo criado na imagem se torna uma nova seleção, e a seleção que existia anteriormente é descartada. Adicionar à seleção: um novo retângulo passa a fazer parte da seleção já existente, adicionando-se a ela. Subtrair da seleção: faz com que o retângulo desenhado seja excluído da seleção. Só tem efeito se já existir uma seleção, Intersecção com a seleção atual: faz com que apenas as áreas previa- mente selecionadas que estavam dentro do retângulo desenhado permaneçam selecionadas, mas só tem efeito se já existir uma seleção anterior. Seleção elíptica Esta ferramenta de seleção usa as mesmas opções que a ferramenta de seleção retangular, só que desenha uma elipse. Seleção livre Essa ferramenta permite uma seleção mais refinada, traçando-se diretamente com o mouse os contornos da seleção. Seleção contígua A seleção contígua, também é chamada de ‘varinha mágica’. Com ela é possí- vel selecionar todas as cores similares à cor da região em que foi clicada. Ainda podemos usar a opção de menu “Seleção->Inverter” para ter os objetos, em vez do fundo, selecionados. A opção mais importante para esta ferramenta é o “limite” – ela indica o quanto as cores similares têm que ser próximas da cor original. Continua Fundamentos do Desenvolvimento Webe-Tec Brasil 76
  • 172. Seleção de cor Funciona de forma bem similar à seleção de regiões contíguas, selecionando simultaneamente cores similares em toda a imagem. Tesoura Esta ferramenta também serve para seleções em torno de objetos; nesse caso, a ferramenta tesoura tenta adivinhar o contorno do objeto que se quer recortar. Mantém as mesmas opções que a ferramenta de seleção retangular. Vetores Também utilizada como ferramenta de seleção, clicando nos pontos de controle desejados – o GIMP unirá esses pontos de controle com segmentos de reta. Podemos ainda clicar em cada segmento e arrastá-los em forma de curva para ter o contorno desejado. Nessa ferramenta temos os seguintes modos de edição: Criação: modo padrão. Editar: quando se clica no ponto inicial de um componente do vetor, aquele componente é fechado, podendo ser convertido para uma seleção, ou simples- mente iniciar outro componente do vetor. Mover: move o vetor selecionado, mantendo-se todo o restante da imagem. Seleção de cores Seleciona a cor da região escolhida, exibindo seus valores e colocando-a como cor ativa do GIMP. Zoom Permite a visualização na tela em escala diferente. Um arquivo aberto não faz qualquer alteração na imagem. Medidas Informa a distância entre dois pontos na imagem, e o ângulo formado entre a linha que une esses dois pontos e a horizontal. Esta ferramenta não faz nenhuma alteração na imagem. Mover Esta ferramenta permite que uma parte da imagem, ou uma camada, seja ar- rastada com o mouse para qualquer outro ponto do espaço da imagem.Ao ser usado sobre uma seleção ativa, deve-se clicar e arrastar o mouse. O conteúdo da seleção é movido para outra parte da imagem. Alinhamento Com esta ferramenta você pode alinhar ou arranjar camadas e outros objetos. Nas opções da ferramenta, você pode optar por alinhar: primeiro item, imagem, seleção, camada ativa, vetor ativo ou canal ativo, e os alinhamentos podem ser: à esquerda, à direita ou centralizado, além de distribuir em cima, embaixo ou no meio do objeto. Corte Sua utilização é bem simples: basta traçar-se um retângulo na imagem e em seguida apertar a tecla Enter para confirmar a ação. Nas suas opções podemos optar por cortar somente na camada atual, ou seja, o corte será efetuado somente na camada ativa, e não na imagem toda. Poderemos também utilizar a ferramenta para permitir o aumento, fazendo com que a ferramenta de “cortar” também possa adicionar espaço para que sejam inse- ridas mais informações na imagem, além dos limites da imagem ou camada atuais. Conclusão Fonte:Adaptado de Calligaris, 2005 e-Tec BrasilAula 5 – Software de edição de imagem (GIMP) 77
  • 173. 5.2.2 Ferramentas de transformação As ferramentas a seguir partilham opções em comum e de fato causam al- terações na imagem. Figura 5.5: Ferramentas de transformação Quadro 5.2: Descrição das ferramentas de transformação do GIMP Ferramenta Função Rotacionar Permite rotacionar livremente, ao redor de um centro arbitrário, uma camada ou seleção.Ao clicar na imagem, automaticamente a camada que tem o primeiro pixel visível na região clicada é selecionada para rotação. Uma caixa de dialogo é aberta em seguida e pode-se digitar a angulação em que se deseja rotacionar a imagem. Redimensionar Permite que se redimensionem partes ou detalhes de uma imagem. Uma caixa de diálogo é aberta em seguida e pode-se digitar as medidas em que se deseja redimensionara imagem. Inclinar Essa ferramenta permite distorcer um objeto para obtenção de um efeito. Uma caixa de diálogo é aberta em seguida e pode-se digitar as medidas em que se deseja inclinar a imagem. Perspectiva Permite que se posicione, de forma independente, os quatro pontos dos cantos do retângulo a ser transformado, de forma que a imagem final se ajuste nesses quatro pontos Esta ferramenta pode também ser utilizada para rotação, espelhamento, redimensionamento, inclinação – bas- tando-se posicionar os quatro cantos do objeto a ser transformado de acordo com o desejado. Espelhar Esta ferramenta espelha na horizontal ou na vertical os conteúdos da seleção. Texto Esta ferramenta cria ou edita camadas de texto. Para usá-la, basta clicar-se na imagem; em seguida, abrir-se-á uma caixa de diálogo, onde se poderá digitar o texto desejado. No menu de opções é possível escolher a fonte desejada, tamanho e cor da fonte. Fonte:Adaptado de Calligaris, 2005 5.2.3 Ferramentas de pintura A seguir apresentam-se as ferramentas de pintura. Figura 5.6: Ferramentas de pintura Fundamentos do Desenvolvimento Webe-Tec Brasil 78
  • 174. Quadro 5.3: Descrição das ferramentas de pintura do GIMP Ferramenta Função Preenchimento O uso desta ferramenta permite que uma área da imagem seja preenchida com uma cor sólida ou com uma textura. Basta clicar no ponto da imagem em que se deseja iniciar o preenchimento, e este acontecerá, na camada ativa, e selecionar nas opções da ferramenta o tipo do preenchimento: cor de frente, cor de fundo ou textura.Ainda selecionar em quais áreas será aplicado o preenchimento. Mistura Ou preenchimento com degradê. Para usar a ferramenta, basta clicar na imagem, segurar o botão do mouse pressionado, e arrastar o cursor até um ponto mais ou menos distante. O degradê recobrirá a imagem de forma que a primeira cor seja atribuída ao ponto de origem, e esta cor vá variando até que a última cor do degradê coincida com o ponto onde o botão foi liberado.A forma e variação das cores do degradê vai depender das opções selecionadas para a ferramenta. Fonte:Adaptado de Calligaris, 2005 5.2.4 Ferramentas de desenho Figura 5.7: Ferramentas de desenho Fonte:Adaptado de Calligaris (2005) 5.3 Para abrir uma nova imagem Para abrir uma nova imagem basta clicar em Arquivo > Novo. Figura 5.9: Abrir uma nova imagem Fonte: GIMP v.2.6.11, 2011 e-Tec BrasilAula 5 – Software de edição de imagem (GIMP) 79
  • 175. Observe que será aberta uma caixa de diálogo “Criar uma nova imagem”. Você poderá alterar aspectos básicos, como tamanho, formato de paisagem ou retrato, entre outros. Figura 5.10: Criar uma nova imagem Fonte: GIMP v.2.6.11, 2011 No menu de opções avançadas podemos alterar a resolução, sistema de co- res e inserir comentários que poderão ser lidos como uma assinatura digital. Figura 5.11: Menu Opções Avançadas Fonte: GIMP v.2.6.11, 2011 Fundamentos do Desenvolvimento Webe-Tec Brasil 80
  • 176. Porém se quiser abrir uma imagem já existente então: 1. Clique em “Arquivo” navegue até a opção “Abrir” e clique nela. 2. Aparecerá um menu no qual você deverá navegar pelos diretórios até en- contrar a imagem desejada. Quando a encontrar, basta clicar em “OK”. 5.4 Recortando uma imagem Para recortar partes da imagem, é necessário realize os seguintes passos: 1. Localize na caixa de ferramentas a ferramenta corte. Figura 5.12: Ferramenta Corte Fonte: GIMP v.2.6.11, 2011 2. Agora, clique e arraste sobre a área que será mantida. Figura 5.13: Caixa de ferramentas do GIMP – Área de corte Fonte: GIMP v.2.6.11, 2011 e-Tec BrasilAula 5 – Software de edição de imagem (GIMP) 81
  • 177. 3. Utilize as alças laterais para ajustar o tamanho e formato do corte. Para desfazer a seleção da área, pressione a tecla Esc. Figura 5.14: Caixa de ferramentas do GIMP Fonte: GIMP v.2.6.11, 2011 4. Pressione a tecla Enter para recortar. Figura 5.15: Imagem recortada Fonte: GIMP v.2.6.11, 2011 Fundamentos do Desenvolvimento Webe-Tec Brasil 82
  • 178. 5.5 Removendo o fundo da imagem A ferramenta ideal para esse trabalho é a Seleção Contígua. Com ela você pode selecionar pixels com tom ou cores semelhantes. Veja como remover as cores de fundo de uma imagem. 1. Na caixa de ferramenta, selecione a ferramenta Seleção Contígua. Figura 5.16: Ferramenta Contígua Fonte: GIMP v.2.6.11, 2011 2. Clique na área desejada. Serão selecionados os pixels com cor e tons semelhantes. Figura 5.17: Fundo selecionado Fonte: GIMP v.2.6.11, 2011 e-Tec BrasilAula 5 – Software de edição de imagem (GIMP) 83
  • 179. 3. Determine o grau de tolerância no campo “Limite” da paleta opções. Figura 5.18: Diferença de cor Fonte: GIMP v.2.6.11, 2011 4. Para selecionar várias áreas da imagem, mantenha a tecla Shift pressio- nada enquanto clica sobre as áreas. 5. Pressione a tecla Delete para retirar o fundo da imagem. Figura 5.19: Imagem com fundo retirado Fonte: GIMP v.2.6.11, 2011 Fundamentos do Desenvolvimento Webe-Tec Brasil 84
  • 180. Agora é sua vez de tentar. Que tal escolher uma imagem do seu arquivo e seguir os passos descritos para praticar a remoção de fundo de imagens? E que tal inserir um texto nessa imagem? Vamos lá, boa sorte! 5.6 Captura de tela Você também capturar uma imagem da sua área de trabalho ou de uma janela específica: 1. Com menu aberto, clique em “Arquivos” até a opção “Capturar”. Figura 5.20: Captura de janela Fonte: GIMP v.2.6.11, 2011 2. Depois clique em “Capturar tela”, e em seguida escolha uma das opções: Capturar em uma única janela ou Capturar tela inteira, conforme a Figura 5.21ª seguir. Figura 5.21: Captura de tela inteira Fonte: GIMP v.2.6.11, 2011 e-Tec BrasilAula 5 – Software de edição de imagem (GIMP) 85
  • 181. 3. Clique em capturar Figura 5.22: Tela capturada Fonte: GIMP v.2.6.11, 2011 5.7 Camadas As camadas também são conhecidas como layers. Com elas podemos dividir um trabalho, dando tratamento diferente em cada layer. 5.7.1 Efeitos de camadas Para trabalhar com as camadas, devemos abrir um arquivo e realizar os seguintes passos: 1. Clique em Arquivo e em seguida em Abrir. Essa camada passará a ser a camada oficial. 2. Em seguida abra uma nova imagem, clique em Abrir como camadas. Figura 5.23: Abrir como camadas Fonte: GIMP v.2.6.11, 2011 Fundamentos do Desenvolvimento Webe-Tec Brasil 86
  • 182. 3. Ative a caixa de diálogo, clicando em Janelas, em seguida em diálogos de encaixes e depois em camadas. Figura 5.24: Diálogos de encaixes Fonte: GIMP v.2.6.11, 2011 4. A caixa de diálogo Camada se abrirá e você poderá explorar as suas muitas possibilidades. Figura 5.25: Camadas sobrepor Fonte: GIMP v.2.6.11, 2011 Resumo Nesta aula você conheceu o GIMP, que é um software de código aberto, ou seja, livre e de download gratuito. O GIMP é software que tem diversas ferra- mentas que permitem criar e editar imagens bitmaps e também suporta ve- tores. Com esse software você viu que é possível também recortar uma ima- gem, remover o fundo de uma figura, trabalhar com camadas, dentre outras funcionalidades. Na próxima aula, você conhecerá o Adobe Flash CS3, um software utilizado para produção de animações, entre outras possibilidades, que você poderá praticar durante o andamento da disciplina. e-Tec BrasilAula 5 – Software de edição de imagem (GIMP) 87
  • 183. Atividades de aprendizagem Agora que já conhecemos o GIMP, que tal exercitar um pouco mais os recur- sos desse software tão interessante? Primeiramente, vamos escrever e configurar um texto, seguindo os passos descritos abaixo: 1. Abra uma imagem ou documento já existente. 2. Em seguida, para editar uma palavra ou um texto, primeiro abra uma nova camada. 3. Depois clique na ferramenta de texto, observe que uma janela abre e você define o que irá digitar. 4. Em seguida, digite um texto à sua escolha, aumente o tamanho do texto, altere a fonte e a cor. Essas opções estão disponíveis no menu quando a ferramenta texto estiver ativa. 5. Clique com o botão direito sobre a camada do texto e duplique: teremos duas camadas com o texto nome. Na nova camada criada, dê uma cor diferente. 6. Agora sobreponha a imagem criada (texto) dando a impressão de serem duas. 7. No campo “Nome do arquivo”, digite um nome para o arquivo. 8. Clique no botão Salvar. Fundamentos do Desenvolvimento Webe-Tec Brasil 88
  • 184. e-Tec Brasil Aula 6 – Software de animação de imagens Macromedia Adobe Flash Objetivos Conhecer o software Macromedia Adobe Flash. Aprender a utilizar suas ferramentas de animação. Ao executarmos o Flash, veremos uma imagem, como mostra a Figura 6.1 a seguir. 1 2 3 4 Figura 6.1: Janela de Abertura do Adobe Flash Fonte:Adobe Flash CS3, 2011 Essa é a janela de abertura do Flash CS3, na qual você pode observar os seguintes itens: • Open a Recent Item: permite abrir documentos recentemente usados. • Create New: abre uma página para criação de um novo documento. • Create from Template: abre uma página para criação de um documento baseado em um modelo pronto (banners, aplicativos para celulares, etc.). • Extend: abre página de acesso ao site de extensões do Adobe Flash CS3. Flash Segundo Alves (2009), o Flash é uma excelente ferramenta para desenvolvimento de animações HTML.Além de animações, ele também permite a criação de gráficos estáticos, interfaces com o usurário, formulários de entrada ou mesmo páginas inteiras. Há programadores que o utilizam até no desenvolvimento de jogos. Portanto, podemos concluir que esse fantástico aplicativo possui enorme versatilidade. e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 89
  • 185. Escolheremos a opção nova, que mostrará o “palco”, conforme pode ser visto na Figura 6.2 a seguir. Figura 6.2 Palco do Flash CS3 Fonte:Adobe Flash CS3, 2011 6.1 Caixa de ferramentas e painéis auxiliares Do lado esquerdo da tela, é possível ver a caixa de ferramentas. Lá você encon- tra as ferramentas necessárias para a edição e criação de animações. É impor- tante conhecermos uma a uma, pois esse é o conjunto de ferremantas mais im- portantes do Flash. Com elas podemos modificar, criar e preeencher desenhos. Fundamentos do Desenvolvimento Webe-Tec Brasil 90
  • 186. 1 2 4 6 8 10 12 14 16 d e 15 17 18 19 / 20 / 21 a b c 3 5 7 9 11 13 }Controles modificadores Figura 6.3: Caixa de ferramentas do Flash CS3 Fonte:Adobe Flash CS3, 2011 e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 91
  • 187. Quadro 6.1: Descrição das ferramentas do Macromedia Adobe Flash CS3 Ferramenta Função Seleção Tem a função de selecionar e arrastar elementos de desenho e texto. Podemos selecionar uma parte ou o contorno de uma forma.Também é possível alterarmos a forma do objeto com a sua ajuda. Subselecionar Usada para ajustar os pontos de uma curva, alterar segmentos de reta de uma figura, etc. Com esta ferramenta é possível termos um controle maior sobre o contorno do objeto. Linha Desenha linhas retas. Laço Permite selecionar figuras irregulares, bastando utilizá-la para contornar a figura. Caneta Desenha figuras, a partir de segmentos de retas ou curvas entre dois vértices. Texto Permite a criação de textos a serem exibidos na apresentação. Oval Permite o desenho de círculos e elipses. Retângulo Permite desenhar quadrados ou retângulos. Lápis Permite o traçado de linhas, define a trajetória dos objetos de uma anima- ção, divide áreas pintadas, etc. Pincel Permite o desenho de pontos amplos na tela. Nanquim ou tinteiro Permite modificar as linhas de contorno de uma figura, aplicando cor, espessura e estilos. Balde de tinta Permite pintar o interior de objetos fechados. Conta-gotas ou sombreador Permite capturar as informações de cores e estilos de um determinado objeto, para que possam ser aplicados em outro objeto. Borracha ou apagador Apaga os desenhos que se encontram no “palco” do Flash, podendo assumir diversos formatos e funções. Mão Permite deslocar toda a área de dese- nho até um ponto desejado. Zoom Permite ampliar ou reduzir os desenhos que se encontram no “palco”. Continua Fundamentos do Desenvolvimento Webe-Tec Brasil 92
  • 188. Traço Permite escolher a cor do contorno de uma figura. Preenchimento Permite escolher a cor do preenchimen- to de uma figura. Padrão Altera a cor de preenchimento para branco e o contorno para preto, de um ou mais objetos selecionados. Sem cor Desliga o preenchimento ou o contorno de uma figura. Trocar cores Inverte as cores de preenchimento e de contorno de uma figura selecionada. Controles modificadores A - Encaixar: liga/desliga o ajuste de objetos na grade e a conexão de linhas. B - Suavizar: suaviza linhas sele- cionadas, deixando-as com cantos arredondados. C - Acertar: corrige imperfeições em linhas selecionadas, deixando-as mais retas. Conclusão Fonte:Adaptado de Alves (2009) 6.2 Biblioteca de objetos (Library) O painel denominado Biblioteca é o local que contém todos os objetos gráfi- cos, sejam geométricos, sejam textos, vídeos ou sons definidos na animação. O objeto selecionado na parte inferior da biblioteca é apresentado na sua parte superior, como pode ser visto na Figura 6.4 a seguir. Figura 6.4: Biblioteca do Flash Fonte: CEAD/Ifes © (2010) e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 93
  • 189. Você pode adicionar novos itens simplesmente clicando no elemento no Painel Library e arrastando-o em seguida para o palco. Uma vez no palco, esses elementos podem ser instanciados (ganhar um nome exclusivo que os identifique). Por exemplo: arrastar diversos círculos para o palco e atribuir- lhes nomes distintos que os identifique, como “círculo1”, círculo2, etc. Renomear as cópias com nomes exclusivos (círculo1, círculo12, círculo13,..., círculo1n) nos possibilita alterar determinadas propriedades sem afetar o símbolo original. Agora que você já conhece o ambiente de trabalho do Flash, o próximo passo é aprender a criar objetos gráficos. Veremos como construir formas geométricas, linhas, retângulos e círculos. 6.3 Objetos geométricos Para criar formas básicas use as ferramentas oval e retângulo, que permitem a criação de círculos e quadrados, preenchimentos e ajustes na linha de tra- ços. A primeira ferramenta que utilizaremos é a Linha. Para ativá-la, clique na ferramenta Linha. É possível definir a espessura e a cor da linha, na caixa de propriedades que aparece na parte inferior da tela. Figura 6.5: Exemplo de linha desenhada no Flash Fonte: CEAD/Ifes © (2010) Assim como o CorelDRAW, o Flash também possui menus desdobráveis, e um desses menus é o que possui formas básicas como círculos, retângulos, estrelas, etc. Fundamentos do Desenvolvimento Webe-Tec Brasil 94
  • 190. É possível alterar cor, espessura de linha e outras propriedades, na caixa de propriedades, como mostra a Figura 6.6 a seguir. Figura 6.6: Caixa de propriedades do retângulo Fonte:Adobe Flash CS3, 2011 Para fixar o conteúdo visto até aqui, faça as seguintes atividades: 1. Crie um retângulo e faça as seguintes alterações em suas propriedades: a) Para a ferramenta Retângulo, na seção opções da Caixa de Ferramentas, clique no botão Raio do Retângulo Arredondado, para definir um núme- ro para arredondar os cantos do retângulo. b) Mude a cor da linha e a cor de preenchimento do retângulo. 2. Faça o mesmo com a ferramenta Oval. Aproveite esta atividade simples para conhecer as ferramentas citadas no Quadro 6.1. Além de objetos geométricos, é possível inserir textos em ilustrações e ani- mações feitas no Flash. 6.4 Transformação de textos Para criar textos no Flash, clique na ferramenta Texto, na caixa de ferramen- tas, e siga este procedimento: • Clique no local em que o texto deve iniciar e comece a digitar. • Clique e arraste para definir a largura do bloco de texto; assim criará um bloco de texto de largura fixa. Ao clicar na alça do texto e arrastá-lo, você poderá redimensioná-lo. Também é possível fazer alterações na formatação do texto. Quando você seleciona a ferramenta texto, o painel de propriedades mostra opções, como se pode observar a seguir. e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 95
  • 191. Na caixa de propriedades, você poderá alterar tipo e tamanho da fonte e também alterar os estilos negrito, itálico e regular. Há também as seguintes opções: • Texto Estático: utilize esse tipo de caixa de texto para inserir textos está- ticos no palco. Figura 6.7 Caixa de propriedades do Texto Estático Fonte:Adobe Flash CS3, 2011 • Texto Dinâmico: utilizado para textos dinâmicos, que podem ser alterados por código ActionScript. Figura 6.8: Caixa de propriedades do Texto Dinâmico Fonte:Adobe Flash CS3, 2011 • Campos de Texto: tipo que permite a entrada de texto por parte do usu- ário, inclusive campos de senha. Figura 6.9: Caixa de propriedades dos Campos de Texto Fonte:Adobe Flash CS3, 2011 Você também poderá transformar blocos de texto da mesma maneira que transforma outros objetos. Pode dimensionar, girar, inclinar e inverter blocos de texto para criar efeitos interessantes. Quando você dimensiona um bloco de texto como objeto, os aumentos ou reduções do tamanho do ponto não são refletidos no Inspetor de Propriedades. O texto contido em um bloco de texto transformado ainda pode ser editado. É ainda possível desmembrar texto para colocar cada caractere em um bloco de texto separado. Para isso, siga os seguintes passos: • Selecione a ferramenta Seleção e clique em um bloco de texto. Adobe Actionscript É uma linguagem de programação da plataforma Adobe Flash. Originalmente desenvolvida como um meio para os desenvolvedores programarem dinamicamente, melhorando a eficiência do desenvolvimento de aplicacões na plataforma Flash, desde uma imagem simples à uma complexa animação Fundamentos do Desenvolvimento Webe-Tec Brasil 96
  • 192. • Selecione Modificar e depois Desmembrar. Cada caractere no texto sele- cionado é colocado em um bloco de texto separado. Figura 6.10: Caixa de propriedades dos Campos de Texto em bloco Fonte:Adobe Flash CS3, 2011 O texto permanece na mesma posição no palco. Figura 6.11: Caixa de propriedades dos Campos de Texto - modificar e desmembrar Fonte:Adobe Flash CS3, 2011 e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 97
  • 193. • Selecione novamente Modificar, Desmembrar, para converter os caracte- res em formas no Palco. 6.4.1 Para desmembrar texto • Selecione a ferramenta Seleção e clique em um bloco de texto. • Selecione Modificar e depois Desmembrar. Cada caractere no texto sele- cionado é colocado em um bloco de texto separado. O texto permanece na mesma posição no palco. • Selecione novamente Modificar, Desmembrar para converter os caracte- res em formas no palco. Figura 6.12: Caixa de propriedades dos Campos de Texto - conversão em formas Fonte:Adobe Flash CS3, 2011 Crie um texto no bloco de notas: Segundo Martins e Merino (2008) “o design sustentável desenvolve projetos que se preocupam com o descarte ou reuso de produtos, com a utilização de materiais que não prejudiquem o meio ambiente e sejam economicamente viáveis.” Isso é de extrema importância, porque nos últimos 50 anos, o consumo exagerado, a busca pelo alto padrão de conforto e o desenvolvimento tecnológico teve como consequência a degradação do meio ambiente. Fundamentos do Desenvolvimento Webe-Tec Brasil 98
  • 194. Salve-o com o nome texto.txt na mesma pasta onde está o arquivo.fla. Terminada a edição do arquivo de texto, abra o Flash e crie um arquivo com o tamanho de 550px X 400px e salve-o com o nome de lendo_texto.fla. Clique na ferramenta Texto, na barra de ferramentas, e, antes de inserir o texto no palco, vá a propriedades e altere de acordo com: –– Tipo: Texto Dinâmico –– Fonte: Trebuchet MS –– Tamanho: 14 –– Cor: Verde –– Tipo de linha: Multiline Ative as opções Selecionar e Renderizar texto como HTML; essas opções per- mitirão que o texto possa ser selecionado e que seja possível ler textos em formato HTML, respectivamente. Após alterar essas propriedades, crie uma caixa de texto pouco menor que o tamanho do painel. Agora, selecione a caixa de texto e altere a propriedade Valor, inserindo o valor texto, pois ela vai indicar que dentro da caixa de texto irá aparecer o texto do arquivo externo, que também teve a variável definida como texto. Depois de concluída essa primeira parte, vamos criar mais uma camada para aplicarmos o script que fará a leitura da variável que arquivará o texto. Crie mais uma camada e clique com o botão direito do mouse sobre a posi- ção 1 na timeline e vá em Actions. Em Actions, vá em Global Functions > Browser/Network > loadVariables e dê um duplo clique nessa opção. Isso irá adicionar o script de leitura de variáveis. Para concluir, na propriedade URL, ainda dentro de Actions, digite o nome do arquivo de texto e a extensão (texto.txt). Pronto, para ver o sistema funcionando, dê um Ctrl+Enter. 6.5 Trabalhando com camadas As camadas são níveis de conteúdos dispostos um sobre o outro. Ao trabalhar com camadas, evitamos que textos e imagens colocados sobre o fundo se mesclem. e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 99
  • 195. Sempre que abrimos um novo documento no Flash, ele cria, automaticamen- te, uma camada chamada Layer. Para inserir novas camadas, clicamos em: Insert -> Timeline -> Layer Figura 6.13: Inserindo Layer Fonte:Adobe Flash CS3, 2011 Também podemos usar o ícone Insert Layer do Painel Layer para inserir camadas adicionais. Para renomear uma camada, clicamos duas vezes nela e inserir um nome. 6.5.1 Criando pastas para organizar camadas Para criar pastas para organizar as camadas, clicamos no ícone Insert>Layer Folder no Painel Layer. Para apagar uma camada, selecione a camada e arraste-a para lixeira. O mesmo se aplica às pastas. Figura 6.14: Inserindo Folder Layer Fonte:Adobe Flash CS3, 2011 Fundamentos do Desenvolvimento Webe-Tec Brasil 100
  • 196. Cada cena em um documento do Flash pode conter qualquer quantidade de camadas. Ao criar uma animação, você usará camadas e pastas de camadas para organizar os componentes de uma sequência de animação e para se- parar os objetos animados, para que não sejam apagados, não se conectem nem segmentem uns aos outros. Quando você adiciona um efeito de Linha de tempo a um objeto, o Flash cria uma nova camada e transfere o objeto para ela. O objeto é colocado dentro do gráfico do efeito e todas as interpolações e transformações exigi- das para o efeito residem no próprio gráfico, na camada recém-criada. A nova camada recebe, automaticamente, o mesmo nome do efeito e um sufixo numérico que representa a ordem em que o efeito é aplicado, em relação a todos os efeitos do documento. Quando você adiciona um efeito de Linha do tempo, o programa acrescenta à biblioteca uma pasta (com o nome do efeito) que contém os elementos usados na criação desse efeito. Figura 6.15: Linha do tempo Fonte: CEAD/Ifes © (2010) 6.5.2 Adicionando quadros-chave (Keyframes) à timeline Um quadro-chave é um tipo de quadro no qual adicionamos símbolos ou outras propriedades a uma timeline de determinada camada. Ao inserir um quadro-chave em novos quadros, a propriedade do quadro-chave anterior é copiada para o novo quadro-chave. Ao abrirmos um novo arquivo no Flash® CS3, automaticamente é inserido um quadro-chave no frame (quadro) 1 da Layer 1 (Camada 1). Para inserirmos outros quadros-chave em outros locais da timeline, selecionamos o quadro desejado e no menu principal clicamos em Insert -> Timeline -> Keyframe e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 101
  • 197. Figura 6.16: Inserindo frame Fonte:Adobe Flash CS3, 2011 Podemos usar a tecla de atalho F5 para a inserção de quadros (frames). 6.6 Animações Animação é uma ilusão de movimento criada pela movimentação de ima- gens gráficas em sequência. 6.6.1 Linha do tempo (timeline) Na timeline são geradas as animações. Dividida em quadros e por padrão, a reprodução começa sempre no quadro 1 e se move pelos quadros em sequ- ência até alcançar o último. Figura 6.17: Timeline Fonte:Adobe Flash CS3, 2011 Cada timeline tem sua própria camada. Fundamentos do Desenvolvimento Webe-Tec Brasil 102
  • 198. 6.6.2 Interpolação Para que o Flash interpole o movimento de mais de um grupo ou símbolo de uma só vez, cada um deles deve estar em uma camada separada. Normal- mente, a camada de fundo contém arte estática e cada camada adicional contém um objeto animado independente. Quando um documento contém várias camadas, o controle e a edição dos objetos em uma ou duas delas pode ser difícil. Essa tarefa será mais fácil se você trabalhar com o conteúdo de cada camada isoladamente. As pastas de camadas ajudam a organizar camadas em grupos controláveis, que podem ser expandidos e recolhidos para exibir somente as camadas relevantes à tarefa atual. Para se criar animações no Flash® CS3, normalmente utilizamos uma das opções abaixo: Usadas para alterar a posição de um objeto ao longo de um tempo determi- nado, pela definição dos pontos iniciais (aqueles onde ocorrerão alterações) e do ponto final nos quadros-chave. Ao ser aplicado o Flash desenha as etapas intermediárias, produzindo um efeito de movimento. Como a seguir: • Selecionamos o quadro-chave onde começará a animação em uma timeline da camada e arrastamos uma instância de um símbolo da biblioteca até o quadro-chave, ou criamos diretamente um símbolo nesse quadro. • Fazemos as modificações nas propriedades da instância do símbolo para descrever a forma como queremos que se inicie a animação, também conhecida como começo da posição de interpolação de movimento. • Clicamos no quadro onde a animação deve terminar e no menu principal selecionamos Insert -> Timeline -> Keyframe. • Fazemos as modificações nas propriedades da instância do símbolo para descrever a forma como queremos que termine a animação. • Voltamos ao quadro-chave onde a animação começará e clicamos nele. • No painel de propriedades na caixa Tween, selecionamos Motion para aplicar a interpolação de movimento. e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 103
  • 199. 6.6.2.1 Interpolação de forma Usadas para alterar a forma de um objeto ao longo de um tempo determi- nado, pela definição dos pontos iniciais (aqueles onde ocorrerão alterações) e do ponto final nos quadros-chave. Ao ser aplicado o Flash desenha as eta- pas intermediárias, produzindo um efeito de alteração de forma do objeto. Veja o exemplo a seguir: • Selecionamos a ferramenta de desenho no painel Tools e desenhamos uma forma. • Selecionamos outro quadro na linha do tempo (exemplo quadro 20) e clicamos em Insert > Timeline > Keyframe. • Ativamos o marcador de transparência pressionando o botão Onion Skin no painel Timeline. • Arrastamos o Onion Skin Marker esquerdo para sobrepor os quadros anteriores. • Selecionamos novamente a ferramenta de desenho no painel Tools e desenhamos outra forma no quadro 20. • Alinhamos a nova forma sobre a forma apresentada pelo Onion Skin. • Desativamos o Onion Skin, pressionando o botão Onion Skin na Timeline. • Clicamos na ferramenta Selection no painel Tools e selecionamos o quadro-chave 1. • No painel de propriedades na caixa com o rótulo Tween, selecionamos Shape para aplicar a interpolação de forma. • Clicamos em Control -> Test Movie para ver a animação (opcionalmente podemos usar teclas de atalho Ctrl + Enter). Fundamentos do Desenvolvimento Webe-Tec Brasil 104
  • 200. Atividades de aprendizagem: 1. Crie um novo arquivo no Flash CS3/CS4 e salve-o. Usando o painel de propriedades, altere as dimensões do palco para 450x400 pixels e atribua cor preta ao background. Altere o frame rate para 20 fps. 2. Dê duplo clique sobre Layer1 e altere o nome para “animação”. 3. Insira uma nova camada (Insert > Timeline > Layer) e altere seu nome para “texto”. 4. Na camada “texto” clique sobre o frame 80 e pressione F5 para inserir quadros até essa posição. Repita esse procedimento na camada “anima- cao” para inserir quadros até a posição 80 da timeline. 5. No frame (quadro) 1 da camada “texto”, usando a ferramenta Text es- creva Interpolação de Forma (Shape Tween) e posicione o texto na parte superior do palco e centralizado. 6. No frame1 da camada “animacao” usando a ferramenta PolyStar Tool, no painel de propriedades na opção Options... altere o estilo para star, número de lados 5 e star point size para 0.50 e dê OK. 7. Ainda no painel de propriedades da PolyStar tool altere a opção para “sem traço” e preenchimento gradiente azul (acessível também pelo painel Color Swatches). Desenhe a estrela redimensione-a para 50x50 pixels e a centralize no palco. 8. Insira um quadro-chave no frame 20 (pressione a tecla F6) e nesse qua- dro altere as dimensões da estrela para 394x394 pixels. Centralize-a no palco; 9. Clique entre o frame 1 e 20 da camada “animacao” e no painel de pro- priedades na opção Tween, selecione Shape. Os frames de 1 a 20 ficarão na cor verde. Até esse passo você já gerou a primeira animação de forma. 10. Clique no frame 25 da camada “animacao”. Insira um novo quadro-chave nessa posição. Em seguida redimensione a forma da estrela para 5x5 pixels, com posição X em 229 e posição Y em 196 de forma a mantê-la centralizada no palco. e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 105
  • 201. 11. Clique com o botão direito do mouse entre o frame 20 e 25 e selecione Cre- ate Shape Tween no menu pop up. Já criamos a segunda parte da animação. 12. Insira um novo quadro-chave no frame 35. Em seguida redimensione novamente a estrela para 50x50 pixels, com X=206 e Y=176 de forma a mantê-la centralizada no palco.  13. Clique com o botão direito do mouse entre o frame 25 e 35 e selecione Cre- ate Shape Tween no menu pop up. Já criamos a terceira parte da animação. 14. Clique no frame 45 da camada “animacao” e insira um novo quadro- -chave (F6) nessa posição; em seguida, mantendo a tecla Alt pressionada, clique na estrela e arraste para criarmos cópias. Repita a operação de forma a criar várias estrelas no palco (oriente-se pela figura abaixo). Uma vez criadas as estrelas, altere a cor de algumas delas usando o painel Color Swatches e escolhendo gradientes cinza, vermelho verde e azul. Por fim, clique com o botão direito do mouse entre os frames 35 e 45 e escolha Create Shape Tween. 15. Clique no frame 80 e insira um novo quadro-chave. Apague todas as estrelas,deixando o palco vazio! Em seguida, clique no frame 35, copie a estrela que está nesse frame e cole-a no frame 80 usando as teclas CTRL+Shift+V para colá-la na mesma posição do frame 35. Em seguida clique com o botão direito do mouse entre o frame 45 e 80 e selecione Create Shape Tween. 16. Finalmente, salve o trabalho e pressione Ctrl+Enter para observar a animação. 6.6.2.2 Animação quadro a quadro (frame to frame transition) Usadas para alterar a posição e/ou a forma de um objeto ao longo de de- terminado período de tempo, pela criação manual de cada um dos quadros, tendo como efeito final a produção de movimento e/ou alteração de forma, só que de maneira mais controlada e com efeitos mais sofisticados. 6.6.3 Reconhecendo as interpolações na timeline O Flash diferencia a animação interpolada da animação quadro a quadro na Linha de tempo, da seguinte forma: Fundamentos do Desenvolvimento Webe-Tec Brasil 106
  • 202. • As interpolações de movimento são indicadas por um ponto preto no quadro-chave inicial; os quadros interpolados intermediários apresentam uma seta preta com fundo azul-claro. • As interpolações de forma são indicadas por um ponto preto no quadro- -chave inicial; os quadros intermediários apresentam uma seta preta com fundo verde-claro. • Uma linha tracejada indica que a interpolação está partida ou in- completa, como no caso de um quadro-chave final ausente. • Um quadro-chave único é indicado por um ponto preto. Os quadros cinza-claros, após um quadro-chave único, contêm o mesmo conteúdo, sem alterações, e apresentam uma linha preta com um retângulo vazio no último quadro da sequência. • Um a pequeno indica que uma ação foi atribuída ao quadro por meio do painel Actions (Ações). • Uma bandeira vermelha indica que o quadro contém um rótulo ou um comentário. • Uma âncora dourada indica que o quadro é uma âncora identificada. 6.6.4 Símbolos Símbolos são objetos especiais criados no Flash para auxiliar na criação de animações (ALVES, 2009). Existem três tipos de símbolos no Flash: gráfico, botão e clipe de vídeo. Figura 6.18: Convertendo símbolo Fonte:Adobe Flash CS3, 2011 e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 107
  • 203. • Botão Os símbolos de botões possuem eventos predefinidos que são transmitidos quando algo ocorre em seu arquivo SWF. A linha do tempo de um símbolo botão possui quatro quadros (frames): –– Up: Primeiro quadro da timeline do botão. Aparece independente- mente de qualquer ocorrência. –– Over: Segundo quadro da timeline do botão. Refere-se ao comporta- mento do botão quando o mouse está sobre ele. –– Down: Terceiro quadro da timeline do botão. Refere-se ao estado do botão quando ele é clicado. –– Hit: Quarto quadro da timeline do botão. Refere-se à área ativa do botão. Esse estado não é visível ao usuário. Figura 6.19: Botão Fonte: CEAD/Ifes © (2011) Por convenção recomenda-se, ao criar um símbolo de botão, usar o prefixo btn antes do nome do símbolo. • Movie clip Usado para conter animações para elementos da interface com o usuário, pode ser considerado mini aplicativos; cada movie clip ou clipe de filme pos- sui sua própria linha do tempo que funciona independente da linha de tem- po principal. Fundamentos do Desenvolvimento Webe-Tec Brasil 108
  • 204. Por convenção recomenda-se, ao criar um símbolo movie clip, usar o prefixo mc antes do nome do símbolo. • Gráfico Usado para criar imagens estáticas e para criar objetos reutilizáveis. Normal- mente os símbolos gráficos são imagens. Por convenção recomenda-se, ao criar um símbolo gráfico, usar o prefixo gr antes do nome do símbolo. 6.6.5 Máscaras Para revelar porções de uma imagem ou gráfico na camada abaixo, pode- mos utilizar uma máscara. Para criar uma máscara, você deve especificar que essa camada é uma camada de máscara clicando com o botão direito do mouse sobre a camada e selecionando Mask. Pode-se usar qualquer forma preenchida, textos e símbolos como uma máscara. A camada de máscara revela a área das camadas abaixo. Para criar uma máscara devemos realizar os seguintes passos: 1. Começamos criando uma camada acima da imagem que desejamos mascarar. Essa será a camada de máscara. Criamos ou importamos um gráfico na camada de máscara e a convertemos em um símbolo. 2. Criamos uma animação na camada de máscara. 3. Clicamos com o botão direito do mouse na camada de máscara e selecio- namos Mask no menu contextual. 4. Bloqueamos as camadas para ver o efeito de máscara ainda no ambiente de criação. 5. Selecionamos Control > Test Movie para visualizar a animação (opcional- mente podemos clicar Ctrl + Enter). e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 109
  • 205. 6. Figura 6.20: Máscara Fonte:Adobe Flash CS3, 2011 1. Inicie um novo arquivo Flash, altere o palco para 400x400 pixels, importe uma imagem para o palco. Altere o tamanho dessa imagem no palco para 400x400 pixels de forma a coincidir com o tamanho do palco. Dê a essa camada o nome de “Imagem”. 2. Crie uma segunda camada, certifique-se de que ela está acima da camada “Imagem” e atribua a essa nova camada o nome de “Camada de máscara”. Clique com o botão direito do mouse e escolha a opção “Mask”. 3. Desbloqueie as camadas clicando uma vez em cada ícone de cadeado e crie um quadro de 50x50 pixels na cor verde-claro (mais à frente você verá que a cor não importa). 4. Ainda na camada de máscara, clique no frame 20 e pressione F6 para inserir um quadro-chave nessa posição. Clique na camada chamada “Imagem” e clique no frame 20 e pressione F5 para inserir quadros. Fundamentos do Desenvolvimento Webe-Tec Brasil 110
  • 206. 5. Entre os frames1 e 20 da “Camada de máscara”, clique com o botão direito do mouse e selecione Create Motion Tween. No painel de Proprie- dades na caixa Rotate, escolha CW e mantenha as demais configurações como estão. 6. Clique no frame20. Selecione o quadrado e modifique seu tamanho para 400x400 pixels e posicione-o sobre a imagem de forma que toda a ima- gem fique oculta. 7. Clique no frame30 da camada de máscara e insira um novo quadro-chave clicando em F6. Repita a operação na camada Imagem com a diferença de que nela você inserirá quadros (frames) comuns até o frame 30. 8. Clique na camada de mascara, em seguida no frame 30, clique no quadrado verde e, usando o painel de propriedades, altere sua largura (width) para 1, mantenha a altura em 400 pixels, de forma que ele se torne uma linha. 9. Entre os frames20 e 30 da “Camada de máscara”, clique com o botão direito do mouse e selecione Create Motion Tween 10. Clique na camada de mascara, clique no frame 60 e insira um novo qua- dro-chave; aproveite e insira quadros normais na camada imagem tam- bém. Clique na linha verde e, usando o painel de propriedades, altere sua largura (width) para 400 pixels novamente de forma que ele volte a ocultar a imagem. 11. Entre os frames30 e 60 da “Camada de máscara”, clique com o botão direito do mouse e selecione Create Motion Tween. 12. Finalmente clique em Control > Test Movie para ver a animação. e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 111
  • 207. 6.7 Publicando documentos do Flash Figura 6.21: Publish Settings Fonte:Adobe Flash CS3, 2011 Para publicar um documento do Flash, selecione os formatos e as configurações dos formatos de arquivo com a caixa de diálogo Publish Settings. Em seguida, publique o documento do Flash, usando o comando Publish (Publicar). A confi- guração de publicação especificada na caixa de diálogo Publish Settings é salva com o documento. Você pode também criar e atribuir nome a um perfil de pu- blicação para que as configurações de publicação estabelecidas estejam sempre disponíveis. Dependendo das opções especificadas na caixa de diálogo Publish Settings, o comando Publish criará os seguintes arquivos: • Arquivo SWF do Flash. • Imagens alternativas em diversos formatos, que serão exibidas, automatica- mente, se o Flash Player não estiver disponível (GIF, JPEG, PNG e QuickTime). • O(s) documento(s) HTML de suporte necessário(s) para mostrar o conte- údo SWF (ou uma imagem alternativa) em um navegador e controlar a configuração do navegador. • Três arquivos HTML, se a opção Detect Flash Version (Detectar versão do Flash) for selecionada: o arquivo de detecção, o arquivo de conteúdo e o Fundamentos do Desenvolvimento Webe-Tec Brasil 112
  • 208. arquivo alternativo. • Arquivos de projetores independentes para os sistemas Windows e Macintosh e vídeos do QuickTime de conteúdo do Flash (arquivos EXE, HQX ou MOV, respectivamente). Resumo Nesta aula você conheceu o Flash, um software utilizado para produção de animação, entre outras aplicações, como biblioteca de objetos onde pode- mos armazenar imagens, símbolos e mover clipes. Aprendeu que no Flash podemos trabalhar com camadas, que são níveis de conteúdos dispos- tos um sobre o outro, onde criamos as animações, inserimos vídeos e áudio; que ainda podemos trabalhar com máscaras, que são animações que revelam porções de uma imagem ou gráfico na camada abaixo. O uso do Flash dispõe de várias aplicações de acordo com o projeto de cada site, proporcionando ao usuário a experiência de animaçõesinterativas. Chegamos ao final desta disciplina e espero que você tenha obtido sucesso. Meu objetivo foi passar os conceitos básicos e importantes para o desenvol- vimento de um website, sabendo que esse é o apenas o início de um longo caminho. Os conceitos aprendidos neste caderno são a base para o desen- volvimento de sites; contudo, o estudo não deve se ater somente a este material. Continue suas pesquisas e realizações. Sucesso e um grande abraço! Atividades de aprendizagem Siga os passos abaixo para praticar as formas de configurações de publica- ções gerais para um documento do Flash: –– Abra a caixa de diálogo Publish Settings. Siga um destes procedimentos: a) Selecione File> Publish Settings (Configurações de publicação). b) No inspetor Properties (Propriedades) do documento (disponível quando ne- nhum objeto está selecionado), clique no botão Settings (Configurações). c) Na caixa de diálogo Publish Settings, selecione a opção para cada forma- to de arquivo que deseja criar. O formato SWF do Flash é selecionado por padrão. O formato HTML tam- bém é selecionado por padrão. Você precisa de um arquivo HTML para que e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 113
  • 209. o arquivo SWF apareça em um navegador. As guias correspondentes aos formatos de arquivo selecionados aparecem acima do painel atual na caixa de diálogo (exceto em formatos do projetor Windows ou Macintosh, que não têm configurações). Na caixa de diálogo File de cada formato selecionado, aceite o nome de ar- quivo padrão (que corresponde ao nome do documento) ou insira um novo nome de arquivo com a extensão adequada (como .gif para um arquivo GIF e .jpg para um arquivo em JPEG). Decida onde deseja publicar os arquivos. Por padrão, os arquivos são publi- cados no mesmo local que o arquivo FLA. Pra alterar o local onde os arquivos são publicados, clique na pasta ao lado do nome do arquivo e navegue até o local em que deseja publicar o arquivo. Para criar um arquivo de projetor independente, selecione Windows Projector (Projetor do Windows). Clique na guia das opções de formato a serem alteradas. Especifique as con- figurações de publicação para cada formato, conforme descrito nas seções a seguir. Quando você terminar de configurar as opções, siga estes procedimentos: –– Para gerar todos os arquivos especificados, clique em Publish. –– Para salvar as configurações com o arquivo FLA e fechar a caixa de diálogo sem publicá-lo, clique em OK. Para publicar um documento do Flash sem selecionar novas configurações de publicação: –– Selecione File > Publish para criar os arquivos nos formatos e no local especificado na caixa de diálogo Publish Settings (as configurações padrão, as configurações anteriormente selecionadas ou o perfil de publicação selecionado). Fundamentos do Desenvolvimento Webe-Tec Brasil 114
  • 210. ANEXO e APÊNDICES ANEXO – Atalhos e atributos do CSS Atributo de CSS O que ele formata background Cor de fundo, imagem, transparência. background-attachment Rolagem do fundo / Marca d’água. background-image Imagem de fundo. background-color Cor de fundo ou transparência. background-position Posicionamento da imagem de fundo. background-repeat Configuração lado a lado da imagem de fundo. border Largura, estilo e cor de todas as quatro bordas. border-bottom Largura, estilo e cor da borda inferior. border-bottom-color Cor da borda citada. border-bottom-style Estilo da borda citada. border-bottom-width Largura da borda citada. border-color Cor das quatro bordas. border-left Largura, estilo e cor da borda esquerda. border-left-color Cor da borda citada. border-left-style Estilo da borda citada. border-left-width Largura da borda citada. border-right Largura, estilo e cor da borda direita. border-right-color Cor da borda citada. border-right-style Estilo da borda citada. border-right-width Largura da borda citada. border-style Estilo de todas as quatro bordas. border-top Largura, estilo e cor da borda superior. border-top-color Cor da borda citada. border-top-style Estilo da borda citada. border-top-width Largura da borda citada. border-width Largura de todas as quatro bordas. clear Elementos flutuantes à esquerda ou à direita de um elemento. clip Parte visível de um elemento. color Cor de primeiro plano. cursor Tipo de ponteiro do mouse. display Se o elemento é exibido e o espaço é reservado para ele. filter Tipo de filtro aplicado ao elemento. Continua e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 115
  • 211. float Se o elemento flutua. font Estilo, variante, peso, tamanho e altura da linha do tipo de fonte. @font-face Incorporação da fonte ao arquivo HTML. font-family Tipo de fonte. font-size Tamanho da fonte. font-style Fonte itálico. Fonte-variant Fonte <IT>bold<IT>. font-weight Peso da fonte de claro a negrito. height Altura exibida ao elemento. @import Folha de estilo a importar. left Posição do elemento em relação à margem esquerda da página. letter-spacing Distância entre as letras. line-height Distância entre linhas de base. list-style Tipo, imagem e posição do estilo da lista. list-style-image Marcador de item de lista. list-style-position Posição do marcador de item da lista. list-style-type Marcador de item de lista alternativo. margin Tamanho de todas as quatro margens. margin-left Tamanho da margem esquerda. margin-right Tamanho da margem direita. margin-bottom Tamanho da margem inferior. margin-top Tamanho da margem superior. overflow Exibição de imagens que são maiores do que suas molduras. padding Espaço em torno de um elemento em todos os lados. padding-bottom Espaço a partir da margem inferior de um elemento. padding-left Espaço à esquerda do elemento. padding-right Espaço à direita do elemento. padding-top Espaço a partir da margem superior do elemento. page-break-after Inserir quebra de página depois de um elemento. page-break-before Inserir quebra de página antes de um elemento. position Como o elemento é posicionado na página. text-align Alinhamento do texto. text-decoration Sublinhado, sobrelinha do texto ou riscado. Continua Fundamentos do Desenvolvimento Webe-Tec Brasil 116
  • 212. text-indent Recuo da primeira linha do parágrafo. text-transform Transformação para todas maiúsculas, minúsculas ou inicial maiúscula. top Posição do elemento em relação à parte superior da página. vertical-align Alinhamento vertical do elemento. visibility Se o elemento é visível ou invisível. width Largura do elemento. z-index Posição do elemento na pilha. Conclusão APÊNDICE 1 – Atividades do CorelDRAW: Boneco de Neve 1º passo: Copie a imagem do boneco de neve acima e cole na área de tra- balho do CorelDRAW. 2º passo: Depois de colar, dê um clique com o botão direito do mouse em cima da imagem (Boneco de Neve) e no menu que aparecer clique em Bloquear Objeto; isso impedirá que a imagem se mova e dificulte o processo de vetorização. 3º passo: Existem algumas ferramentas que produzem formas predefinidas muito úteis (retângulos, triângulos, círculos, etc.). Faça uso delas nessa lição; clique na ferramenta Elipse localizada na caixa de ferramentas. 4º passo: Para facilitar, tente seguir as medidas do boneco, colocando os e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 117
  • 213. objetos por cima da imagem. Leve o cursor do mouse até a bola embaixo do corpo do boneco e clique no botão esquerdo; segure e arraste sem soltar o botão do mouse até que o tamanho do círculo esteja parecido com o ori- ginal; se precisar de um círculo perfeito, pressione Ctrl no teclado quando estiver criando o objeto. 5º passo: Quando você soltar o botão do mouse, note que o círculo que foi criado ficou selecionado. Sabemos que um objeto está selecionado quando aparecem alguns pontos ao seu redor; esses pontos servem para redimen- sionar o seu tamanho. 6º passo: Clique na ferramenta Seleção na caixa de ferramentas, ela serve para mover e redimensionar os objetos; portanto, se o primeiro círculo não estiver no lugar certo, clique bem no meio dele, onde aparece um X; com essa ferramenta, segure o botão e arraste para o local desejado. Se o tama- nho não ficou certo, você pode redimensionar o objeto clicando em alguns dos pontos ao redor do círculo com a ferramenta seleção; segure o botão e arraste na direção em que o círculo precisa aumentar ou diminuir. 7º passo: Quando conseguir deixar o primeiro círculo no lugar certo, volte e clique novamente na ferramenta Elipse e faça a bola do meio do boneco, o corpo, seguindo os mesmos passos. Faça também a terceira bola que corres- ponde à cabeça do boneco, a aba do chapéu por fora, os olhos, os botões e o nariz. Para fazer o nariz, crie três círculos: primeiro um para ser a base do na- riz; depois, outro um pouco menor para ser o meio e, por último, um menor ainda, para ser a ponta do nariz. Seguindo esses passos, quando colorirmos, o nariz do boneco vai realmente parecer com uma cenoura. 8º passo: Agora, vamos precisar de outra ferramenta chamada Polilinha, que também está na caixa de ferramentas ao lado. Você pode procurar, co- locando o cursor do mouse em cima de cada ferramenta, que logo vai apa- recer o nome de cada uma em forma de legenda. A ferramenta Polilinha produz linhas retas; ela vai servir pra fazer os braços do boneco. 9º passo: Depois de encontrar, clique na ferramenta. Vá até o primeiro bra- ço e clique em alguma das suas extremidades, arraste e clique novamente, sempre onde a linha muda de direção, como se estivesse contornando o braço, até “fechar” o objeto; quando se juntam os pontos por onde come- çou e terminou. Fundamentos do Desenvolvimento Webe-Tec Brasil 118
  • 214. 10º passo: Já temos um dos braços do boneco. Para fazer o outro, é muito fácil: escolha a ferramenta Seleção e clique com o botão direito do mouse no braço feito há pouco; escolha a opção Copiar no menu que aparecer; clique fora da página, também com o botão direito do mouse, e escolha Colar; note que a cópia de qualquer objeto sempre fica exatamente em cima do objeto de origem; clique no objeto copiado e arraste-o para o outro lado; ainda com ele selecionado, na barra propriedades, clique em Espelhar horizontalmente; isso fará o objeto virar na direção contrária, ficando os dois braços perfeitos. Use a Polilinha para fazer a parte de cima do chapéu. 11º passo: Nessa parte da vetorização, você usará a Paleta de Cores. Com a ferramenta Seleção, clique no objeto e depois na cor que desejar. Se a cor que quiser não estiver à vista, clique na seta abaixo da paleta para expandir, depois é só escolher a cor. Vá preenchendo todos os objetos do desenho com suas respectivas cores e depois compare com a imagem original. 12ºpasso: Tem alguma coisa errada, não é? Não! Quando você está crian- do os objetos do desenho no Corel, tudo que fizer depois sempre vai ficar “por cima” do objeto anterior, só notamos agora por causa do preenchi- mento, mas isso se resolve facilmente, alterando a ordem dos objetos no menu Organizar e depois em Ordenar. Lá você encontrará as opções necessárias para essa tarefa. Selecione a aba do chapéu, clique no menu Organizar, escolha Ordenar, clique em Atrás... e clique novamente em algum lugar visível da cabeça do boneco, ela será o ponto de referência. Repita esses passos, selecionando a parte de cima do chapéu e tenha como referência, agora, a aba do chapéu; isso fará com que os objetos fiquem na ordem desejada. Se ainda houver algo errado na ordem dos objetos, use o menu Organizar, depois Ordenar e alguma das opções autoexplicativas desse menu. 13° passo: Clique com o botão direito do mouse sobre a imagem original do Boneco de Neve e escolha a opção Desbloquear Objeto; isso vai liberar a imagem para ser movida; clique e arraste a imagem para o lado do seu desenho e compare os dois; pode-se notar a grande diferença na qualidade. Depois de comparar, selecione a imagem original e pressione no teclado Delete para excluir. 14º passo: Terminado o trabalho, você vai precisar Salvar, a fim de usá-lo sempre que precisar. e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 119
  • 215. APÊNDICE 2 - Atividades do CorelDRAW: Construção de um botão 1º passo: Faça um retângulo e, com a ferramenta Forma, arredonde os can- tos o máximo possível; depois, faça uma cópia desse objeto e redimensione- -o, para que fique menor que o primeiro, posicione-o na parte de baixo do retângulo maior. Faça agora uma cópia do retângulo menor e arraste-o para a parte de cima do objeto maior. 2º passo: Selecione no objeto maior e preencha-o com azul-marinho; o re- tângulo menor de baixo com azul-celeste e o de cima com branco, Para usar o efeito sombra e explorar a impressão do objeto em 3D, use a ferramenta Sombreamento. Com o objeto maior selecionado, clique na ferramenta Sombreamento, e em Predefinições; lá na barra de propriedades, escolha Incandescente pequeno, a cor do sombreamento também é alterada na barra de propriedades; então, escolha a cor azul-claro. 3º passo: Para dar essa impressão de uma cor misturando com outra, você vai precisar misturar dois objetos: o objeto maior e o objeto menor de baixo; para isso, é necessário usar a ferramenta Mistura. Selecione na ferramenta Mistura, clique com ela no retângulo menor de baixo, segure, arraste até o meio do retângulo maior e solte. 4º passo: No objeto menor de cima, você vai usar a ferramenta Transparência. Com ele selecionado, clique na ferramenta Transparência, e, com ela, clique e ar- raste segurando o botão do mouse, começando um pouco acima dele e soltando o botão antes do seu final; tente conseguir o melhor resultado possível. 5º passo: Com a ferramenta Texto, clique e digite CLIQUE; depois, com a ferramenta Seleção, procure e aplique o tipo de fonte usada, deixe no ta- manho, posição e cores certas. Quando terminar, salve o documento. Fundamentos do Desenvolvimento Webe-Tec Brasil 120
  • 216. Referências ALVES, William Pereira. Crie, anime e publique seu site utilizando Fireworks CS3, Flasch CS3, e Dreamweaver CS3 para Windows. 2ªed. São Paulo: Érica, 2009. CALLIGARIS, João Sebastião de Oliveira Bueno. GIMP: documentação das ferramentas. 2005. Disponível em: <http://www.ufpel.edu.br/lpd/ferramentas/gimp.pdf>. Acesso em: 20 abr. 2011. DIAS, Cláudia. Usabilidade na Web. Rio de Janeiro:Alta Books, 2003. FARIA, Helena; FERREIRA, Rafael; LEMOS, Rosemar. Design de Web: elementos gráficos que influem em uma boa usabilidade. 2010. Disponível em: <http://www.ufpel.edu.br/ cic/2010/cd/pdf/LA/LA_01036.pdf>.Acesso em: 2 fev. 2011. FERREIRA, Aurélio Buarque de Holanda. Novo Dicionário Aurélio da Língua Portuguesa. 4ª Ed. – Curitiba. PR: Editora Positivo, 2009. FRABRIS, S; GERMANI, R. Color: proyecto y estética en las artes gráficas. Editorial Edebe. Madrid, Barcelona 1973. FREEMAN, Elisabeth; FREEMAN, Eric. Use a cabeça HTML com CSS e XHTML. 2ªed. Rio de Janeiro:Alta Books, 2008. GOMES FILHO, João. Gestalt do objeto: sistema de leitura visual da forma. São Paulo: Escrituras Editora, 2008. KALBACH, James. Designer de navegação: otimizando a experiência do usuário. Porto Alegre: Bookman, 2009. KRUG, Steve. Não me faça pensar: uma abordagem de bom senso à usabilidade na web. Rio de Janeiro:Alta Books, 2008. MARMION, Jorge. A utilização de cor no mecanismo de interação com o usuário. Disponível em: <http://www.ibrau.com.br/artigoutilizacaodecor.htm>. Acesso em: 8 fev. 2011. MARMION, Jorge. Como maximizar a legibilidade de um texto. Disponível em: <http://www.ibrau.com.br/aumentandoalegibilidade.htm>.Acesso em: 7 jul. 2011. MICROSOFT OFFICE. Inverno. Disponível em: <http://office.microsoft.com/pt-br/images/ results.aspx?ex=2&qu=boneco%20de%20neve&Download=MC900022861&ext=WMF &AxInstalled=1&c=0#ai:MC900022861|mt:1|> Acesso em: 12 set. 2011. MICROSOFT OFFICE. MP900422339. Disponível em:<http://office.microsoft.com/pt-br/ images/results.aspx?qu=idoso#ai:MP900422339|>.Acesso em: 7 jul. 2011c. MORAES, Ana Maria de; Santo Rosa, José Guilherme. Avaliação e projeto no design de interfaces. – 1ª ed. – Teresópolis, RJ: 2AB, 2008. e-Tec BrasilAula 6 – Software de animação de imagens Macromedia Adobe Flash 121
  • 217. NETMARKETSHARE. Market share for mobile and desktop. Disponível em: <http:// marketshare.hitslink.co>.Acesso em: 7 jul. 2011. NIELSEN, Jakob, Designing Web Usability, New Riders Publishing, 2000, USA. OFFICE. MICROSOFT. Casa antiga destruída. Disponível em: <http://office.microsoft.com/ pt-br/images/results.aspx?qu=casa&origin=FX010132103#ai:MP900433081|>. Acesso em: 7 jul. 2011a. OFFICE.MICROSOFT. MC900432679. Disponível em: <http://office.microsoft.com/pt-br/ images/results.aspx?qu=bot%C3%A3o#ai:MC900432679|> .Acesso em: 7 jul. 2011b. OFFICE MICROSOFT. Obter a melhor imagem no monitor. Disponível em:http:// windows.microsoft.com/pt-BR/windows7/Getting-the-best-display-on-your-monitor. Acesso em: 5 nov. 2011. OLIVIERO, Carlos Antonio José. Crie imagens para a construção de sites: (com Fireworks 4). São Paulo: Érica, 2001. OLIVIERO, Carlos Antonio José. Faça um site HTML 4.0: orientado por projeto. São Paulo: Érica, 2000. PARIZOTTO, Rosamelia. Guia de Estilos para Serviços de Informação em Ciência e Tecnologia via Web. < http://www.cefet-to.org/~focking/Projeto%20de%20 Interfaces/Ergonomia_guiaweb.pdf>.Acesso em 10 jul. 2011. RAPOSO, Alberto Barbosa. Introdução à interação humano-computador (IHC). Disponível em: <http://www.inf.puc-rio.br/~inf1403/docs/alberto2011_1/09_ AvHeuristica.pdf>.Acesso em: 7 jul. 2011. SERIFA. In: WIKIPÉDIA, a enciclopédia livre. Flórida: Wikimedia Foundation, 2011. Disponível em: <http://pt.wikipedia.org/w/index.php?title=Serifa&oldid=27348115>. Acesso em: 10 fev. 2011. SCHUHMACHER, Vera N. Comunicação visual para web I. 2007. Disponível em: <http://busca.unisul.br/pdf/88286_Vera.pdf>.Acesso em: 10 fev. 2011. TAVARES,Angélica Pereira Marsicano. Aplicação da teoria das cores em ambientes virtuais para arquitetura e design de interiores. 2007. Disponível em:<http:// www.bdtd.ufu.br/tde_arquivos/11/TDE-2007-04-17T083740Z-514/Publico/ APMTavares1DISSPRT.pdf> Acesso em: 9 nov. 2011. Fundamentos do Desenvolvimento Webe-Tec Brasil 122
  • 218. Currículo da professora-autora Meu nome é Keila Brito, professora especialista responsável pela disciplina Fundamentos do Desenvolvimento Web. Para que você me conheça melhor, seguem algumas informações a meu respeito: graduada em Desenho Industrial com ênfase em Programação Visual pela Universidade Federal do Espírito Santo (UFES); pós-graduada em Administração e Marketing e em Planejamento, Implementação e Gestão da Educação a Distância pela Universidade Federal Fluminense; também me formei em cursos de capacitação e formação como Webmaster. Leciono na área desde 2006, além de atuar diretamente no mercado de agências digitais como gerente de projetos, o que me permite vivenciar os desafios da Web. Atualmente, sou professora do Instituto Federal do Amazonas e colaboradora do Centro de Educação a Distância do IFES, como professora especialista. e-Tec Brasil123Currículo da professora-autora
  • 220. Curso Técnico em Informática Fundamentos do Desenvolvimento Web Keila Brito