Professional Documents
Culture Documents
para WEB
Fernando Schütz
Cuiabá-MT
2013
Presidência da República Federativa do Brasil
Ministério da Educação
Secretaria de Educação Profissional e Tecnológica
Diretoria de Integração das Redes de Educação Profissional e Tecnológica
Designer Educacional
Alceu Vidotti
Designer Master
Marta Magnusson Solyszko
Diagramação
Tatiane Hirata
Revisora Final
Marta Magnusson Solyszko
Projeto Gráfico
Rede e-Tec Brasil / UFMT
Inclui bibliografia
e-ISBN: 978-85-7014-115-2
Prezado(a) estudante,
Você faz parte de uma rede nacional de ensino que, por sua vez, constitui uma das ações do
Pronatec - Programa Nacional de Acesso ao Ensino Técnico e Emprego. O Pronatec, instituído
pela Lei nº 12.513/2011, tem como objetivo principal expandir, interiorizar e democratizar
a oferta de cursos de Educação Profissional e Tecnológica (EPT) para a população brasileira
propiciando caminho de acesso mais rápido ao emprego.
É neste âmbito que as ações da Rede e-Tec Brasil promovem a parceria entre a Secretaria de
Educação Profissional e Tecnológica (Setec) e as instâncias promotoras de ensino técnico,
como os institutos federais, as secretarias de educação dos estados, as universidades, as es-
colas e colégios tecnológicos e o Sistema S.
A Rede e-Tec Brasil leva diversos cursos técnicos a todas as regiões do país, incentivando os
estudantes a concluir o ensino médio e a realizar uma formação e atualização contínuas. Os
cursos são ofertados pelas instituições de educação profissional e o atendimento ao estudan-
te é realizado tanto nas sedes das instituições quanto em suas unidades remotas, os polos.
Os parceiros da Rede e-Tec Brasil acreditam em uma educação profissional qualificada – in-
tegradora do ensino médio e da educação técnica – capaz de promover o cidadão com ca-
pacidades para produzir, mas também com autonomia diante das diferentes dimensões da
realidade: cultural, social, familiar, esportiva, política e ética.
Ministério da Educação
Setembro de 2013
Nosso contato
etecbrasil@mec.gov.br
Indicação de ícones 7
Apresentação da Disciplina 11
Sumário 13
1.1 A internet 15
2.3 Listas 29
2.4 Tabelas 31
2.7 Formulários 35
3.2 Valores 48
Prezado(a) estudante,
Aula 3: CSS
Assim, espero que, ao final desta disciplina, você esteja habilitado(a) a en-
tender a estrutura básica das linguagens HTML, CSS e PHP e desenvolver
páginas simples para WEB.
Fernando Schütz
1.1 A internet 15
2.3 Listas 29
2.4 Tabelas 31
2.7 Formulários 35
3.2 Valores 48
4.3 Pseudo-objetos 76
4.4 Operadores 81
4.5 Comandos 82
5.3 Programação 93
5.5 Operadores 97
5.6 Comandos 99
Referências 157
Objetivos:
Caro(a) estudante,
1.1 A internet
A difusão do conhecimento se tornou regra na vida moderna. Desde gran-
des instituições, através de portais, até um estudante de ensino médio, atra-
vés de uma rede social ou um blog pode disponibilizar qualquer informação
Federal Networking Council:
para o mundo inteiro. A praticidade na distribuição destes elementos se dá O Federal Networking Council
pela internet . (FNC) foi privilegiado
pelo Comitê Nacional de Ciência
e Tecnologia, Informação e
Comunicação (CCIC) para
No dia 24 de outubro de 1995, o Federal Networking Council norte-ame- atuar como um fórum para a
ricano aprovou por unanimidade uma resolução definindo o termo “Inter- colaboração em rede entre as
agências federais para atender
net”, que se refere ao sistema de informação global que: suas pesquisas, educação,
missão e objetivos operacionais.
<marcação atributo=”valor”>texto</marcação>
Uma marca também pode ser vazia, ou seja, pode não haver a necessidade
de texto a ser modificado. Geralmente tais marcas fazem a inserção de um
objeto ou mesmo uma quebra de linha. A sintaxe para marcações “vazias” é:
Um tipo de conteúdo que pode ser incluído em página HTML são textos, e
podem ser distribuídos e apresentados de várias maneiras. Esta seção trata
dos elementos que delimitam a apresentação de textos e seu conteúdo.
CSS: Cascade Style Sheets Em conjunto com atributos ID e CLASS, os elementos DIV e SPAN oferecem
ou simplesmente “estilos”, é aos desenvolvedores um poderoso mecanismo para adicionar estrutura aos
uma linguagem de folha de
estilo utilizada para descrever documentos. Atualmente os designers de páginas não utilizam mais tabelas
a semântica da apresentação
(o visual e formatação) de um para as divisões de conteúdo e sim elementos DIV com estilos. O quadro 4
documento escrito em uma demonstra uma utilização em dois clientes: Fabiana e Fernando.
linguagem de marcação.
1. <DIV id="cliente-fabiana" class="cliente">
2. <P><SPAN class="cliente-titulo">Informações sobre o cliente:</SPAN>
3. <TABLE class="cliente-dados">
4. <TR><TH>Nome:<TD>Fabiana</TR>
5. <TR><TH>Tel:<TD>3240-8135</TR>
6. <TR><TH>Email:<TD>fabi@utfpr.edu.br</TR>
7. </TABLE>
8. </DIV>
9.
10. <DIV id="cliente-fernando" class="cliente">
11. <P><SPAN class="cliente-titulo">Informações sobre o cliente:</SPAN>
12. <TABLE class="cliente-dados">
13. <TR><TH>Nome:<TD>Fernando</TR>
14. <TR><TH>Tel:<TD>3240-8119</TR>
15. <TR><TH>Email:<TD>fernando@utfpr.edu.br</TR>
16. </TABLE>
17. </DIV>
1.4.5 Títulos
Elementos de títulos (cabeçalhos) brevemente descrevem o tópico de uma
seção que introduzem. Informações de cabeçalho podem ser utilizadas por
agentes de usuários, por exemplo, para construir tabelas de conteúdos em
um documento automaticamente.
Resumo
A primeira aula apresentou os conceitos básicos da internet através de sua
evolução histórica, que pontuou os principais marcos do desenvolvimento da
“Rede Mundial de Computadores” e suas formas de interligação. Os princi-
pais protocolos foram apresentados para situá-lo(a) quanto a sua importân-
cia e utilização, bem como a forma como os recursos são encontrados na
rede, através de endereçamento e alguns aplicativos que acessam os serviços
disponíveis na internet.
A internet passou por várias mudanças nas décadas em que esteve presente
na computação mundial. Foi concebida na era do time-sharing, mas sobrevi-
veu à era dos computadores pessoais, comunicações do tipo cliente-servidor
e do tipo peer-to-peer, ou seja, o computador da rede. Projetada antes das
redes locais, tem acomodado novas tecnologias (p.ex. ATM e quadro de
comutação de serviços). Mas o mais importante: iniciou através dos esforços
de um pequeno grupo de pesquisadores dedicados e hoje é um sucesso co-
mercial com bilhões de dólares de investimento anual.
Atividades de aprendizagem
1. Cite e comente cinco das principais características da internet.
Saiba Mais
Prezado(a) estudante,
Nesta aula você teve o primeiro contato com a internet, a base de nossa
disciplina, pois se trata da programação de páginas para publicação de con-
teúdo e interação com o usuário na Web, o maior serviço executado sobre
a internet. Até aqui a linguagem HTML foi abordada de forma generalista e
superficial, apenas para que você saiba como começar a desenvolver páginas
para Web, porém na próxima aula, terá acesso completo a esta linguagem
de marcação de hipertexto.
Objetivos:
Caro(a) estudante,
2.3 Listas
A linguagem HTML oferece aos desenvolvedores vários mecanismos para
especificar listas de informações. Todas as listas precisam conter um ou mais
elementos de lista, incluindo:
• Informações ordenadas
• Informações não-ordenadas
• Definições
Para criar uma lista ordenada, o elemento <ol> deve ser utilizado, conforme
exemplo na figura 8.
Outra forma interessante de organizar os elementos em um site é através da CSS: Cascade Style Sheets
ou simplesmente “estilos”, é
utilização de tabelas. uma linguagem de folha de
estilo utilizada para descrever
a semântica da apresentação
(o visual e formatação) de um
2.4 Tabelas documento escrito em uma
linguagem de marcação
O modelo de tabelas da linguagem HTML permite aos desenvolvedores or-
ganizar dados (textos, textos pré-formatados, imagens, ligações, formulá-
rios, campos de formulário e até mesmo outras tabelas) em linhas e colunas
de células.
• colspan = “x”: indica que esta célula ocupará o mesmo espaço que “x”
colunas.
• _parent: janela “pai”, ou seja, aquela de onde a página atual foi cha-
mada
1. <A href=”http://www.dicionario.com/def.html#xicara”
target=”_blank”
title=”Clique aqui para ler a definição de Xícara”>Definição de Xícara</A>
Não apenas textos podem ser utilizados como referências visuais para liga-
ções. Elementos como figuras, divisões e outros objetos visuais podem ser
utilizados para servir de referência a hyperlinks.
Quão chata seria a internet se tivéssemos apenas textos para expor os con-
teúdos. É por isso que as imagens são tão importantes para a elaboração de
qualquer conteúdo na WEB.
Porém, a tag <img> é mais utilizada para exercer tal tarefa. Um exemplo é
apresentado no quadro 10.
1. <IMG src=http://www.md.utfpr.edu.br/imagens/logo_edu_2.gif
2. alt="Ministério da Educação"
3. width="430"
4. height="21"
5. border="0"
6. type="image/gif" />
• alt: texto alternativo. Este texto pode ser utilizado em programas de usu-
ário que imprimem em braile, reproduzem o som da frase ou mesmo
substituem imagens por texto.
O elemento IMG sempre será uma tag vazia, ou seja, sem conteúdo.
2.7 Formulários
Um formulário HTML é uma seção de um documento que pode conter texto,
Resumo
O significado de cada marcação HTML e seus atributos é praticamente a sua
aplicação traduzida para o inglês. Geralmente, se um desenvolvedor conhe-
ce os elementos da língua inglesa, poderá deduzir facilmente cada um dos
elementos envolvidos no desenvolvimento de um site com HTML.
• A divisão da página em frames não é mais indicada pela maioria dos WEB
Designers. Porém, foi mostrada e pode ser utilizada para deixar parte do
conteúdo estático, modificando apenas o necessário.
O HTML poderá ter diversas variações, como o xHTML e, quando esta aula
foi preparada já existia uma nova versão, como a 5.0. Mesmo assim ainda
é a linguagem mais utilizada no mundo para o desenvolvimento de páginas
WEB.
Atividades de aprendizagem
1. Crie uma página, utilizando HTML, para desenvolver cada uma das ativi-
dades abaixo:
Caro(a )estudante,
Objetivos:
Prezado(a) estudante,
CSS pode formatar tanto HTML quanto XML. Para modificar a forma como
o elemento é apresentado, a linguagem segue a sintaxe apresentada no
quadro 16.
O elemento a ser formatado pode ser uma tag padrão, identificada ou clas-
sificada. A sintaxe do quadro anterior apresenta os seguintes elementos:
1. <html>
2. <head>
3. <title>Teste de CSS</title>
4. <style type=”text/css”>
5. p {font-face: Verdana}
6. </style>
7. </head>
8. <body>
9. <p>Fonte com Verdana</p>
10. <p>Esta linha também é com a fonte Verdana</p>
11. <p style=”font-face: Times”>Este é com Times</p>
12. </body>
13. </html>
1. <head>
2. <title>Teste de CSS</title>
3. <link rel="stylesheet" type="text/css" media="all" href="liv.css"
/>
4. </head>
5. <body>
6. <p class=”verd”>Linha em Verdana</p>
7. <p class=”time”>Linha em Times</p>
8. </body>
9. </html>
Quadro 19 - Código HTML utilizando folhas de estilo no modo global (tag <link>)
Fonte: autor
1. /* arquivo da folha de estilos */
2. p.verd {
3. font-family: Verdana;
4. }
5. p.time {
6. font-family: Times;
7. }
3.2 Valores
O quadro 16 apresenta a sintaxe da linguagem CSS, e mostra que sempre
deve ser utilizado o par “propriedade: valor”. Os valores que podem ser
expressos nas propriedades dependem de cada uma, porém algumas con-
venções são utilizadas para os tipos.
Alguns tipos de valores são do tipo inteiro (denotado como <inteiro>) e ou-
tros são do tipo real (denotado como <número>). Números reais e inteiros
são especificados apenas pela notação decimal. Um inteiro consiste em um
ou mais dígitos de “0” a “9”. Um real pode ser um inteiro, zero ou mais
dígitos seguidos por um ponto (.) seguido por um ou mais dígitos. Números
inteiros e reais podem ser precedidos por “+” ou “-“ indicando o sinal.
• cm: centímetros
• mm: milímetros
• pt: pontos (points). O ponto usado pelo CSS 2.1 é igual a 1/72ma unida-
de de uma polegada.
O uso das unidades absolutas está exemplificado no quadro 22. Nos casos
em que o tamanho utilizado não é suportado os programas aproximam os
valores o máximo possível.
1. h1 { margin: 0.5in } /* inches */
2. h2 { line-height: 3cm } /* centimeters */
3. h3 { word-spacing: 4mm } /* millimeters */
4. h4 { font-size: 12pt } /* points */
5. h4 { font-size: 1pc } /* picas */
Uma cor pode ser uma palavra chave ou um valor numérico dentro da es-
pecificação RGB. A lista de palavras-chave de cores é: aqua, black, blue,
fuchsia, gray, green, lime, maroon, navy, olive, orange, purple, red, silver,
teal, white, e yellow. Estas 17 (dezessete) cores possuem os valores em he-
xadecimal e sua coloração, respectivamente, ilustrados na figura 16.
1. // Seletores descendentes
2. h1 { color: red }
3. em { color: red }
4. h1 em { color: blue }
5. div p *[href] { color: green }
6. …
7. <H1>This headline is <EM>very</EM> important</H1>
• font-family
• font-size
• font-weight
• text-transform
• text-decoration
O font-family é o comando CSS utilizado para indicar qual a fonte que uma
tag ou documento irá mostrar. Em uma aplicação geral de CSS a uma pági-
na, a linha de comando terá a sintaxe do exemplo do quadro 27.
No exemplo tudo o que estiver entre as tag <P> e </P> no documento HTML
será visualizado em “Trebuchet MS”. A razão de definir mais de uma fonte
deve-se ao fato de que nem todos os computadores possuem as mesmas
fontes instaladas. No caso, se o computador não possuir a fonte “Trebuchet
MS” instalada, automaticamente passará para a segunda opção e mostrará
o texto em Arial.
i. xx-small
ii. x-small
iii. small
v. large
vi. x-large
vii. xx-large
3. porcentagem
1. P {font-size: 12px;}
2. P.titulo {font-size: xx-large;}
3. P.legenda {font-size: 80%;}
1. H1 { font-weight: bold }
• numérico de 100 a 900: 400 é o valor normal de uma fonte sem negri-
to, sendo que 100 é o valor mínimo e 900 o valor máximo.
1. H1 { font-style: italic }
No exemplo o navegador irá procurar uma versão itálico da fonte para apre-
sentar o texto compreendido no elemento H1. Os valores possíveis para o
comando são:
Para controlar o sublinhado das palavras que estão contidas nos elementos
HTML, o comando text-decoration é utilizado. Os valores possíveis para o
comando são:
• blink: sua palavra pisca (não é mais utilizado por questões de visualiza-
ção).
• line-height
• text-align
• text-indent
• Linha 6: estipula que a classificação “dois” tenha a linha igual a duas (2)
vezes o tamanho da fonte. Estipulando o valor em número, a aplicação
cliente utilizará o font-size para definir o tamanho, multiplicando o valor
do tamanho da fonte pelo número para definir o espaço entre as linhas
(No caso, 24 pontos)
• left (esquerda)
• right (direita)
• center (centro) e
• justify (justificado).
• padding-left (esquerda)
• padding-right (direita)
• padding-top (superior)
• padding-bottom (inferior)
• Linhas 6 a 11: este código formata o fundo da DIV “imagem” (ID setado
como imagem), indicando que a figura de fundo será o arquivo “paisa-
gem2.jpg”, que ficará fixo (caso houvesse rolagem), não há repetição e
seu posicionamento inicia nas coordenadas zero (esquerda) e zero (topo).
Também há a formatação do tamanho da camada, que neste caso, fica
igual ao tamanho da imagem.
Resumo
Nesta aula você pôde observar que a formatação de páginas somente com
HTML é possível, porém a utilização de folhas de estilo em cascata trouxe
novas perspectivas para desenvolvedores WEB, pois como têm um maior
número de atributos para formatação possibilita a criação de páginas mais
bonitas e acessíveis.
a) Crie um cabeçalho em tabela onde uma das células represente uma foto
sua no currículo (utilize a formatação de fundo, não a tag <img>)
b) Título de seção:
c) Título de sub-seções:
e) Texto normal
3. Desenvolva uma página que tenha um menu que acesse 5 páginas dife-
rentes e as apresente em um iframe. Formate a página utilizando CSS para
modificar a maior quantidade de propriedades possíveis, respeitando uma
boa visualização. A figura abaixo pode ser tomada como referência para o
exercício, porém a sua criatividade deve ser utilizada.
Prezado(a) estudante,
Finalizamos esta aula na qual você pôde constatar que o comércio eletrôni-
co tem um grande diferencial para o comércio que não se baseia em meios
eletrônicos: nenhum site está mais perto do que outro, ou seja, estratégias
de lojas que podem cobrar mais pois estão no bairro e não no centro não
funcionam! Um bom design faz com que seu site seja mais visto, pois as
pessoas se sentem confortáveis. Tecnologias como o CSS fazem com que
diagramadores e Web designers consigam chegar cada vez mais perto de
estruturas como imagens, e, além de bonito, o site pode adquirir caracterís-
ticas de acessibilidade, tão importantes para pessoas cegas ou surdas, por
Objetivos:
Prezado(a) estudante,
<HTML>
<HEAD>
<TITLE>Meu primeiro Script</TITLE>
</HEAD>
<BODY>
<H1>Testando o Javscript</H1>
<HR>
<SCRIPT LANGUAGE="Javascript">
alert("Ola: sou seu navegador!");
</SCRIPT>
</BODY>
</HTML>
A execução em linha (in line) é a forma do exemplo da figura 22. Não existe
definição de um bloco nomeado de comandos, apenas o código entre as
tags script. Este tipo de execução é feita quando se entra na página, por
exemplo, pois a partir do momento que o navegador passa a ler os coman-
dos da página ele os executa.
Toda função tem um resultado, mesmo que seja nulo. O resultado da função
é ajustado com o comando return, portanto a variável que for indicada logo
após o comando será utilizada como valor de retorno da função.
function subtrair(n1,n2) {
var resultado;
if (n1 > n2) {
resultado = n1-n2;
} else {
resultado = n2-n1;
}
return resultado;
}
</script>
</head>
<body>
<script language="Javascript">
document.write(titulo);
</script>
Número 01: <input type="text" size="5" id="num1" />
Número 02: <input type="text" size="5" id="num2" />
<br />
<input type="button" onClick="alert(subtrair(num1.value,num2.value));"
value="subtrair" />
</body>
</html>
• Das linhas 9 a 17 a função de subtração foi inserida, para que possa ser
utilizada nesta página HTML.
Como o comando utilizado para criar a janela foi o alert, o símbolo que apa-
rece ao lado da mensagem na é um símbolo de alerta.
4.3 Pseudo-objetos
Além dos tipos básicos, o Javascript possui alguns pseudo-objetos que tra-
tam com tipos de dados especiais, e podem ser manipulados de diferentes
maneiras. Esta seção apresenta alguns destes pseudo-objetos e procedimen-
tos para manipulá-los.
O código:
• Cria três variáveis, dia, mês e ano para a representação de cada elemento
na data, valorando-os durante a criação.
Este código não está inserido como uma função, portanto não pode ser
reutilizado. Para transformá-lo, basta inserir a sintaxe para função e colocar
as variáveis que representam cada um dos elementos da dada como parâ-
metros, por exemplo.
• a linha 6 cria uma string com uma data, sendo que esta é transformada
em uma matriz com três posições na linha 7, através do comando split.
Note que o parâmetro do comando é a barra (“/”), justamente o elemen-
to que separa o dia, o mês e o ano na data
4.4 Operadores
Esta seção descreve os operadores que podem ser utilizados na linguagem
Javascript. As tabelas a seguir descrevem os operadores.
x = “5” + 5;
Para que você possa realizar uma manipulação dos dados em Javascript,
vários comandos são disponibilizados. Se você já está familiarizado com a
linguagem C, vai conhecer e saber utilizar todos!
4.5 Comandos
Os sub-tópicos abaixo apresentam alguns comandos da linguagem Javas-
cript.
Explicação No caso do código, se a hora for menor do que 12, será escrito ‘Bom dia!’ na página; se a hora for maior
do que 12 e menor que 18, será escrito ‘Boa tarde!’ na página e, em último caso, o código imprime ‘Boa
noite!’ na página.
Comando switch – Escolhe um, dentre vários blocos, para execução de código
1. switch (escolha){
2. case 1:
3. executa o bloco 1
4. break;
5. case 2:
6. executa o bloco 2
Sintaxe
7. break;
8. default:
9. executa caso nenhum dos anteriores seja execu-
tado
10. }
1. <script type="text/Javascript">
2. var i=0;
3. for (i = 0;i <= 5;i++){
4. document.write("O número é " + i);
Exemplo
5. document.write("<br />");
6. }
7. </script>
1. <script type="text/Javascript">
2. var i=0;
3. while (i <= 5) {
4. document.write("O número é " + i);
Exemplo 5. document.write("<br />");
6. i++;
7. }
8. </script>
O resultado gerado por este código é igual ao do exemplo anterior, porém a forma de
comparação é diferente. Porém, no comando while, o desenvolvedor pode utilizar
Explicação
outras comparações, como o conteúdo de uma cadeia de caracteres ou com o valor
de uma variável lógica.
Para que hajam decisões diferentes das que apenas estão nas condições dos
laços de repetição, dois comandos podem ser utilizados:
<script type="text/Javascript">
var i=0;
for (i=0;i<=100;i++){
if (i == 11) break;
if (i%2 != 0) continue;
Quadro 43
Fonte: autor
Como manipular os dados que são fornecidos pelo usuário? Como validar o
que ele escreveu?
function verifForm(formulario){
var cpf = formulario.edtCPF.value;
var email = formulario.edtEmail.value;
var senha = formulario.edtSenha.value;
//verificação de CPF
if (cpf.length > 0) {
var nonNumbers = /\D/;
if (cpf.length < 11){
window.alert("São necessários 11 dígitos para verificação
do CPF!");
return false;
}
if (nonNumbers.test(cpf)) {
window.alert("A verificação de CPF suporta apenas
números!");
return false;
}
if (cpf == "00000000000" || cpf == "11111111111" || cpf ==
"22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf ==
"55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf ==
"88888888888" || cpf == "99999999999"){
window.alert("Número do CPF inválido!");
return false;
}
var a = [];
var b = new Number;
var c = 11;
// verificação de senha
if (senha.length == 0){
alert("Por favor, informe a senha");
return false;
}
}
</script>
</head>
<body>
<p> </p>
<form name="frmLogin" method="post" action="#" onSubmit="return
verifForm(this);">
Quadro 44
Fonte: autor
A linha 44 traz um comando novo: RegExp. Este comando cria uma expres-
são regular, que é utilizada para fazer testes em cadeias de caracteres. O
padrão utilizado serve para a verificação de e-mail. Os principais pontos são:
Resumo
Nesta aula demonstramos que a linguagem Javascript é uma ferramenta po-
derosa na internet atual. Esta trabalha junto com CSS para formar o DHTML
(Dynamic HTML), implementa muitos frameworks (dentre eles o AJAX) e
permite uma rápida verificação dos dados (pois não há a necessidade de
passar os dados ao servidor). A utilização dela em sites pessoais e comerciais
permite que o usuário torne a navegabilidade muito mais precisa e amigável.
Atividades de aprendizagem
1. Construa um programa que, ao usuário deixar um campo de texto, seja
mostrado o conteúdo deste campo em uma caixa de diálogo na página (cai-
xa de alerta padrão)
d) Qual a sua idade atual (obtida a partir de cálculo com sua data de nasci-
mento)
3. Construa um script que faça uma saudação ao usuário, assim que entrar
em uma página, indicando se:
Observações:
Caro(a) estudante,
Objetivos:
Caro(a) estudante,
5.3 Programação
O código PHP é embutido no HTML. Assim, as funcionalidades a serem de-
senvolvidas pelo programador devem estar dentro de um arquivo que con-
tém HTML e os comandos da linguagem PHP. A sintaxe para a inserção pode
ser vista no quadro 2.
<html>
<head>
<title>Teste</title>
</head>
<body>
<br>
<?
echo "TESTE";
?>
</body>
</html>
Quadro 02 – PHP embutido no HTML
Fonte: autor
Para que as tags <? ... ?> funcionem no servidor, é necessário configurar,
dentro do arquivo php.ini, a diretiva short_open_tag = On. Caso con-
trário, utilize <?php ... ?
<?
$ano = 1978;
echo $ano;
?>
A impressão de valores nas páginas PHP pode seguir vários critérios. Os valo-
res literais são valores estáticos que podem ser direcionados direto pela saída
• Objeto;
$inteiro = 10;
$real = 10.001;
$nd = 10.0e-2; // 100 em notação decimal
Como o tipo Array aceita vários valores, o PHP dispõe de um comando para
realizar atribuições múltiplas para facilitar o uso de vetores e matrizes. Listas
são utilizadas em atribuições múltiplas.
• $a == null
• $b == "um"
• $c == "dois"
• $d == "tres"
Observa-se que à variável $a não foi atribuído valor, pois no array não existe
5.5 Operadores
Os operadores em PHP estão dividos em:
• Aritméticos
• Lógicos
• De Atribuição
• De Comparação
//(expressao1)?(expressao2):( expressao3)
$fator = ($numero > 0)?1:-1;
if(condição){
bloco_de_comandos_1;
} else {
bloco_de_comandos_2;
}
Quadro 15 - Comando IF
Fonte: autor
1. if(condição1){
2. bloco_de_comandos_1;
3. }elseif(condição2){
4. bloco_de_comandos_2;
5. }elseif(condição3){
6. bloco_de_comandos_3;
7. }
if ($i == 0)
elseif ($i == 1)
elseif ($i == 2)
switch ($i) {
case 0:
break;
case 1:
break;
case 2:
break;
bloco_de_comandos;
• Condição do laço: condição que pode interromper o laço, pois esta deve
ser verdadeira para que o laço continue.
for(;;){
print(“Alo mundo”);
Aula 5 - Programação para WEB “lado servidor” 101 Rede e-Tec Brasil
$a = array(5, 3, 7, 1, 2);
for($i=0;$i<=count($a);$i++){
for($i=0;$i<count($a)-1;$i++){
$tmp = $a[$i+1];
$a[$i+1] = $a[$i];
$a[$i] = $tmp;
$i=-1;
for($i=0;$i<=count($a);$i++){
while(expressão){
bloco_de_comados;
}
bloco_de_comandos;
} while(expressão);
$i = 1;
//
$i = 0;
do {
print ++$i;
Caso a variável $i seja valorada, nos dois casos, em 11, a linha 6 ainda será
executada, porém no primeiro caso, nada será feito.
Aula 5 - Programação para WEB “lado servidor” 103 Rede e-Tec Brasil
No caso do exemplo do quadro 26 somente os números pares serão impres-
sos, pois toda vez que a expressão $i % 2 != 0 for verdadeira (resto da divisão
por dois for diferente de zero), a condição do laço será testada novamente.
$i = 10;
do{
echo $i;
break;
} while( $i<=100 );
PHP como qualquer linguagem funcional faz uso de funções para a definição
de blocos de código, e também disponibiliza funções prontas para que o
desenvolvedor possa construir sistemas de forma mais fácil.
5.7 Funções
Na informática, mais especificamente no contexto da programação, uma
sub-rotina (função, procedimento ou subprograma) consiste em uma porção
(bloco) de código que resolve um problema específico, parte de um proble-
ma maior (a aplicação final).
A sintaxe básica para definir uma função está demonstrada no quadro 28.
function nome_da_função([arg1,
arg2, arg3]) {
Comandos;
... ;
[return <valor de retorno>];
}
Qualquer código PHP válido pode estar contido no interior de uma função.
Como a checagem de tipos em PHP é dinâmica, o tipo de retorno não deve
ser declarado, sendo necessário que o programador esteja atento para que
a função retorne o tipo desejado.
function imprime($texto){
echo $texto;
}
imprime("UTFPR");
Aula 5 - Programação para WEB “lado servidor” 105 Rede e-Tec Brasil
function soma10(&$n1, $n2) {
$n1 += 10;
$n2 += 10;
}
$x = $y = 1;
soma10($x, $y);
soma10($x, &$y);
teste();
teste("outro teste");
cliente();
Além das funções que podem ser desenvolvidas pelo usuário, algumas fun-
ções estão disponíveis no PHP para manipulação de conteúdos de variáveis.
A tabela 03 apresenta tais funções.
Aula 5 - Programação para WEB “lado servidor” 107 Rede e-Tec Brasil
Tabela 03 – Funções padrão do PHP
HTML
htmlspecialchars() string htmlspecialchars(string str);
Retorna a string fornecida, substituindo os seguintes caracteres:
& para '&', " para '"', < para '<', > para ‘>'
htmlentities() string htmlentities(string str);
Funciona de maneira semelhante ao comando anterior, mas de maneira mais completa, pois converte todos os caracteres
da string que possuem uma representação especial em html, como por exemplo:
º para 'º', ª para 'ª', á para 'á', ç para ‘ç'
Aula 5 - Programação para WEB “lado servidor” 109 Rede e-Tec Brasil
isset() bool isset ( mixed var [, mixed var [, ...]])
Determina quando uma variável está ajustada (set). Retorna verdadeiro se a variável var existe, ou falso caso contrário.
print() print(string arg);
Imprime o argumento fornecido.
Banco de Dados
resource mysql_connect([string server [, string username
mysql_connect()
[, string password [, bool new_link]]]])
Abre uma conexão com um banco de dados MySQL. A função retorna um link para o banco de dados em MySQL ou falso
caso não haja conexão com o banco. Exemplo:
1. <?php
2. $link = mysql_connect("localhost", "mysql_user", "mysql_password")
3. or die("Falha na conexão");
4. print ("Conectado");
5. mysql_close($link);
6. ?>
O código die presente na linha 2 faz com que a aplicação seja encerrada neste ponto, escrevendo na página “Falha na
conexão”.
Duas funções em particular devem ter uma atenção maior, pois aparente-
mente executam o mesmo processo dentro de um sistema PHP: echo e print.
Alguns itens que podem ser comparados:
Resumo
A programação de sites dinâmicos na WEB avançou muito nos últimos anos.
As linguagens para o desenvolvimento no lado servidor têm constantemen-
te apresentado novas versões ao mercado e principalmente o uso de fra-
Aula 5 - Programação para WEB “lado servidor” 111 Rede e-Tec Brasil
meworks vem otimizando a disponibilização de novos conteúdos. E s t a
aula teve, como objetivo, lançar uma primeira visão da programação voltada
a servidores para WEB, e sabe-se que ainda há muito o que avançar e apre-
sentar quanto às formas de se valorizar páginas realmente bem feitas.
Atividades de aprendizagem
1. Utilizando PHP, crie códigos para:
Prezado(a) estudante,
Objetivos:
Caro(a) estudante,
Esta é a última aula da disciplina. Agora é “mão na massa”. Esta aula de-
monstra a construção de um site de ponta a ponta, utilizando todos os re-
cursos aprendidos nas 5 aulas anteriores de Programação para Web. Você vai
perceber que poderá construir facilmente uma aplicação para o cadastro de
pessoas, e ainda, com o conhecimento adquirido, poderá melhorar o exem-
plo aqui descrito. Instale já as ferramentas e comece o desenvolvimento de
um novo mundo na internet!
Aula 6 - Programação para WEB “lado servidor” – estudo experimental 113 Rede e-Tec Brasil
6.1 Funções específicas para controle de
banco de dados e sessões
Para se trabalhar com PHP utilizando banco de dados, os desenvolvedores
podem utilizar funções nativas para acesso a tais bancos. Esta aula traz de-
monstrações de como utilizar o banco de dados MySQL.
Aula 6 - Programação para WEB “lado servidor” – estudo experimental 115 Rede e-Tec Brasil
Observe a seguir como pode ser construído um banco de dados.
tel_user Telefone
cidade_user Cidade
estado_user Código do Estado
Tabela de Estados
tb_estados id_estado Número auto – incremento (chave primária)
estado Nome do Estado
uf Sigla do Estado
Tabela de Usuários
tb_user id_user Número auto – incremento (chave primária)
apelido Apelido do usuário com acesso ao sistema
senha Senha do usuário que vai ter acesso ao sistema
Aula 6 - Programação para WEB “lado servidor” – estudo experimental 117 Rede e-Tec Brasil
INSERT INTO tb_estados(uf,estado) VALUES(‘AC’,’Acre’);
INSERT INTO tb_estados(uf,estado) VALUES(‘AL’,’Alagoas’);
INSERT INTO tb_estados(uf,estado) VALUES(‘AP’,’Amapá’);
INSERT INTO tb_estados(uf,estado) VALUES(‘AM’,’Amazonas’);
INSERT INTO tb_estados(uf,estado) VALUES(‘BA’,’Bahia’);
INSERT INTO tb_estados(uf,estado) VALUES(‘CE’,’Ceará’);
INSERT INTO tb_estados(uf,estado) VALUES(‘DF’,’Distrito Feder-
al’);
INSERT INTO tb_estados(uf,estado) VALUES(‘ES’,’Espírito Santo’);
INSERT INTO tb_estados(uf,estado) VALUES(‘GO’,’Goiás’);
INSERT INTO tb_estados(uf,estado) VALUES(‘MA’,’Maranhão’);
INSERT INTO tb_estados(uf,estado) VALUES(‘MT’,’Mato Grosso’);
INSERT INTO tb_estados(uf,estado) VALUES(‘MS’,’Mato Grosso do
Sul’);
INSERT INTO tb_estados(uf,estado) VALUES(‘MG’,’Minas Gerais’);
INSERT INTO tb_estados(uf,estado) VALUES(‘PA’,’Pará’);
INSERT INTO tb_estados(uf,estado) VALUES(‘PB’,’Paraíba’);
INSERT INTO tb_estados(uf,estado) VALUES(‘PR’,’Paraná’);
INSERT INTO tb_estados(uf,estado) VALUES(‘PE’,’Pernambuco’);
INSERT INTO tb_estados(uf,estado) VALUES(‘PI’,’Piauí’);
INSERT INTO tb_estados(uf,estado) VALUES(‘RN’,’Rio Grande do
Norte’);
INSERT INTO tb_estados(uf,estado) VALUES(‘RS’,’Rio Grande do
Sul’);
INSERT INTO tb_estados(uf,estado) VALUES(‘RJ’,’Rio de Janeiro’);
INSERT INTO tb_estados(uf,estado) VALUES(‘RO’,’Rondônia’);
INSERT INTO tb_estados(uf,estado) VALUES(‘RR’,’Roraima’);
INSERT INTO tb_estados(uf,estado) VALUES(‘SC’,’Santa Catarina’);
INSERT INTO tb_estados(uf,estado) VALUES(‘SP’,’São Paulo’);
INSERT INTO tb_estados(uf,estado) VALUES(‘SE’,’Sergipe’);
INSERT INTO tb_estados(uf,estado) VALUES(‘TO’,’Tocantins’);
O código arquivo utilizado para conexão com o banco de dados está contido
no quadro 35.
if(!($id = mysql_connect(“localhost”,$usuario,$senha))) {
echo "<p class=\”erro\”>Não foi possível estabelecer uma conexão
com o banco de dados.</p>";
exit;
}
if(!($con=mysql_select_db($dbname,$id))) {
echo " <p class=\”erro\">Nome de usuário e senha inválidos para
acesso ao banco de dados.</p>";
exit;
}
?>
Quadro 35– Código para conexão com o banco de dados (arquivo conectar.php)
Fonte: autor
• Linha 10: caso a conexão seja bem sucedida, haverá a tentativa de se-
lecionar o banco de dados “loja”. Nota-se que, como parâmetros do
comando mysql_select_db, são passadas informações do nome do banco
de dados e a variável que representa a conexão, $id.
Este arquivo será utilizado toda vez que uma conexão com o banco de dados
for necessária. Isoladamente não possui serventia alguma, porém deve ser
utilizado em conjunto com outros scripts de acesso ao banco de dados.
Aula 6 - Programação para WEB “lado servidor” – estudo experimental 119 Rede e-Tec Brasil
6.4 Páginas da WEB App
A área administrativa é a área responsável por fazer o controle dos clientes
cadastrados. Inclusão, alteração, consulta e exclusão (CRUD) de qualquer
cliente poderão ser efetuados por esta interface. Haverá a utilização de ses-
sões em PHP, pois há a necessidade de restringir o acesso a esta área.
Esta parte conterá dois arquivos: index.php e sessao.php sendo estes a pági-
na inicial do sistema e o arquivo para verificação da sessão, respectivamente.
<?
include "conectar.php";
if(isset($apelido_login) && isset($senha_login)) {
$sql = mysql_query("SELECT *
FROM tb_user
WHERE apelido='$apelido_login' AND senha='$senha_
login'",$con) or die("ERRO no comando SQL :".mysql_error());
if (mysql_num_rows($sql) > 0) {
$id_loja = mysql_result($sql,0,"id_user");
$apelido_loja = mysql_result($sql,0,"apelido");
$senha_loja = mysql_result($sql,0,"senha");
// dados da sessão
session_start("loja");
$_SESSION["id_loja"] = $id_loja;
$_SESSION["apelido_loja"] = $apelido_loja;
$_SESSION["senha_loja"] = $senha_loja;
header("Location:opcoes.php");
}
}
?>
<html>
<head>
<title>Loja VEND.e.TUDO</title>
</head>
<body>
<form name="frmLogin" method="post" action="<?= $PHP_SELF;?>">
<table width="40%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2">Identificação</td>
</tr>
<tr>
<td width="33%" height="25">Apelido:</td>
<td width="67%" height="25"><input type="text" name="apelido_login"></
td>
</tr>
<tr>
<td width="33%" height="25">Senha:</td>
<td width="67%" height="25"><input type="password" name="senha_log-
in"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="entrar" value="Entrar
>>"></td>
</tr>
</table>
</form>
</body>
</html>
Aula 6 - Programação para WEB “lado servidor” – estudo experimental 121 Rede e-Tec Brasil
Figura 01 – Formulário para login (índex.php)
Fonte: autor
<?
session_start("loja");
if(!(isset($_SESSION["id_loja"]) AND
isset($_SESSION["apelido_loja"]) AND
isset($_SESSION["senha_loja"]))) {
echo "<p class=\"info\">Essa é uma área res-
trita</p>";
exit;
}
?>
Aula 6 - Programação para WEB “lado servidor” – estudo experimental 123 Rede e-Tec Brasil
<?
include "conectar.php";
include "ver_sessao.php";
include "funcoes.php";
?>
<html>
<head>
<title>Cadastro de clientes</title>
<link href="loja.css" rel="stylesheet" type="text/css">
</head>
<body>
<h3>Cadastro de Clientes</h3>
<div class="info">Todos os dados são obrigatórios</div>
<?
if(isset($acao) && $acao == 'cadastrar') cadastrar($acao);
if(isset($acao) && $acao == 'entrar') {
$sql_estados = mysql_query("SELECT * FROM tb_estados ORDER BY estado")
or die("ERRO no comando SQL:".mysql_error());
?>
<form name="frm_clientes" method="post" action="<?echo $PHP_SELF;?>?acao=cadastrar">
<table width="80%" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td width="24%" height="25" class="lblCampo">Nome:</td>
<td height="25" width="76%"><input type="text" name="nome_user" size="35"></td>
</tr>
<tr>
<td width="24%" height="25" class="lblCampo">Endereço:</td>
<td height="25" width="76%"><input type="text" name="end_user" size="30"></td>
</tr>
<tr>
<td width="24%" height="25" class="lblCampo">Bairro:</td>
<td height="25" width="76%"><input type="text" name="bairro_user" size="30"></td>
</tr>
<tr>
<td width="24%" height="25" class="lblCampo">Email:</td>
<td height="25" width="76%"><input type="text" name="email_user" size="35"></td>
</tr>
<tr>
<td width="24%" height="25" class="lblCampo">Telefone:</td>
<td height="25" width="76%"><input type="text" name="tel_user" size="20"></td>
</tr>
<tr>
<td width="24%" height="25" class="lblCampo">Cidade:</td>
<td height="25" width="76%"><input type="text" name="cidade_user" size="35"></td>
</tr>
<tr>
<td width="24%" height="25" class="lblCampo">Estado:</td>
<td height="25" width="76%">
<select name="estado_user">
<option value="0">[selecione]</option>
<? while($array = mysql_fetch_array($sql_estados)) { ?>
<option value="<?= $array['Id_estado'];?>"><?= $array['estado'];?></option>
<? } ?>
</select>
</td>
</tr>
<tr>
<td height="25" colspan="2" class="fundo"><input type="submit" name="cadastrar"
value="Cadastrar cliente"></td>
</tr>
</table>
</form>
<? } ?>
</body>
</html>
Caso todos os dados forem informados, o cadastro será efetuado com su-
cesso no banco de dados. A função que faz o cadastro e alteração de clien-
tes pode ser vista no quadro 40.
Aula 6 - Programação para WEB “lado servidor” – estudo experimental 125 Rede e-Tec Brasil
<?php
function cadastrar($oque){
global $id_cliente;
global $nome_user;
global $end_user;
global $bairro_user;
global $email_user;
global $tel_user;
global $cidade_user;
global $estado_user;
$erros = "";
$html_erros = "";
if($nome_user == '') {
$erros++;
$html_erros = $html_erros."<br>Nome";
}
if($end_user == '') {
$erros++;
$html_erros = $html_erros."<br>Endereço";
}
if($bairro_user == '') {
$erros++;
$html_erros = $html_erros."<br>Bairro";
}
if($email_user == '') {
$erros++;
$html_erros = $html_erros."<br>Email";
}
if($tel_user == '') {
$erros++;
$html_erros = $html_erros."<br>Telefone";
}
if($cidade_user == '') {
$erros++;
$html_erros = $html_erros."<br>Cidade";
}
if($estado_user == 0) {
$erros++;
$html_erros = $html_erros."<br>Estado";
}
if($erros == 0) {
if ($oque == 'cadastrar') {
$sql = mysql_query("INSERT INTO tb_clientes
(inclusao_user,nome_user,end_user,bairro_
user,email_user,
tel_user,cidade_user,estado_user)
VALUES(now(),'$nome_user','$end_user','$bairro_user',
'$email_user','$tel_user','$cidade_user','$estado_user')")
or die("Erro no comando SQL:".mysql_error());
echo "<div align=center class=\"ok\">$oque Cliente cadastrado com Sucesso!!</
div>";
} elseif ($oque == 'alterar') {
$sql = mysql_query("UPDATE tb_clientes SET nome_user='$nome_user',end_user='$end_user',
bairro_user='$bairro_user',email_user='$email_user',tel_user='$tel_user',
cidade_user='$cidade_user',estado_user='$estado_user' WHERE id_user='$id_cliente'")
or die("Erro no comando SQL:".mysql_error());
echo "<div class=info>Dados do cliente $nome_user alterados com Sucesso!!</div>";
echo "<div class=info><a href='gerclientes.php?acao=entrar'>[Voltar]</a>";
}
} else {
echo "<div align=center class=\"erro\">ATENÇÃO: <b>$erros</b>
erro(s) no cadastro</div>";
echo "<div align=center class=\"erro\">$html_erros<div/>";
}
}
?>
Aula 6 - Programação para WEB “lado servidor” – estudo experimental 127 Rede e-Tec Brasil
<?
include "conectar.php"; //Conecta com a nosso banco de dados MySQL
include "ver_sessao.php"; //Verifica se a sessão está ativa
?>
<html>
<head>
<title>Pesquisa de clientes</title>
<link href="loja.css" rel="stylesheet" type="text/css">
</head>
<body>
<?
$sql_cliente = "SELECT id_user,date_format(inclusao_user,'%d/%m/%Y - %H:%i') as inclus-
ao_user, nome_user,cidade_user,uf FROM tb_clientes,tb_estados WHERE tb_estados.id_es-
tado = tb_clientes.estado_user";
if(isset($pesquisar) && $pesquisar == 'sim') {
if (isset($pesq)) $sql_cliente = $sql_cliente." AND nome_user LIKE '%$pesq%'";
$sql_cliente = $sql_cliente." ORDER BY inclusao_user";
$sql_cliente = mysql_query($sql_cliente) or die("Erro no SQL: ".mysql_error());
}
?>
<h3>Gerenciamento de Clientes</h3>
<form name="frmPesq" method="post" action="<?= $PHP_SELF?>">
<table width="50%" border="0" cellspacing="1" cellpadding="0" align="center">
<tr class="fundo_titulo" >
<td colspan="2">Pesquisa</td>
</tr>
<tr>
<td width="45%" class="lblCampo">Nome a ser procurado:</td>
<td width="55%">
<input type="text" name="pesq" size="25">
<input type="submit" name="btpesq" value="Pesquisar">
<input type="hidden" name="pesquisar" value="sim">
</td>
</tr>
</table>
</form>
<br>
• Ao final, na linha 67, o código gera um link para que o usuário possa
voltar ao Menu de Opções do sistema.
Aula 6 - Programação para WEB “lado servidor” – estudo experimental 129 Rede e-Tec Brasil
<?
include "conectar.php";
include "ver_sessao.php";
include "funcoes.php"
?>
<html>
<head>
<title>Alteração de Dados do Cliente</title>
</head>
<body>
<h3>Alteração de dados de Cliente</h3>
<?
if (isset($acao) && $acao == 'alterar') cadastrar($acao);
if (isset($acao) && $acao == 'entrar') {
$sql_cliente = mysql_query("SELECT * FROM tb_clientes WHERE id_user='$id_cli-
ente'")
or die("ERRO no comando SQL:".mysql_error());
$array_cliente = mysql_fetch_array($sql_cliente);
$sql_estados = mysql_query("SELECT * FROM tb_estados ORDER BY estado")
or die("ERRO no comando SQL:".mysql_error());
?>
<form name="frm_clientes" method="post" action="<?echo $PHP_
SELF;?>?acao=alterar">
<table width="80%" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td width="24%" height="25" class="lblCampo">Nome:</td>
<td height="25" width="76%"><input type="text" name="nome_user" size="35"
value="<?= $array_cliente['nome_user'];?>"></td>
</tr>
<tr>
<td width="24%" height="25" class="lblCampo">Endereço:</td>
<td height="25" width="76%"><input type="text" name="end_user" size="30"
value="<?= $array_cliente['end_user'];?>"></td>
</tr>
<tr>
<td width="24%" height="25" class="lblCampo">Bairro:</td>
<td height="25" width="76%"><input type="text" name="bairro_user" size="30"
value="<?= $array_cliente['bairro_user'];?>"></td>
</tr>
<tr>
<td width="24%" height="25" class="lblCampo">Email:</td>
<td height="25" width="76%"><input type="text" name="email_user" size="35"
value="<?= $array_cliente['email_user'];?>"></td>
</tr>
<tr>
<td width="24%" height="25" class="lblCampo">Telefone:</td>
<td height="25" width="76%"><input type="text" name="tel_user" size="20"
value="<?= $array_cliente['tel_user'];?>"></td>
</tr>
<tr>
<td width="24%" height="25" class="lblCampo">Cidade:</td>
<td height="25" width="76%"><input type="text" name="cidade_user" size="35"
value="<?= $array_cliente['cidade_user'];?>"></td>
</tr>
<tr>
<td width="24%" height="25" class="lblCampo">Estado:</td>
<td height="25" width="76%">
<select name="estado_user">
<option value="0">[selecione]</option>
<?
while($array = mysql_fetch_array($sql_estados)) {
$estado_cliente = $array_cliente['estado_user'];
$cod_estado = $array['Id_estado'];
$estado = $array['estado'];
if($estado_cliente == $cod_estado)
echo "<option value='$estado_cliente' selected>$estado</option>";
else
echo "<option value='$cod_estado'>$estado</option>";
}?>
</select></font></td>
</tr>
<tr>
<td height="25" colspan="2">
<div align="center">
<input type="submit" name="alterar" value="Alterar dados >>">
Aula 6 - Programação para WEB “lado servidor” – estudo experimental 131 Rede e-Tec Brasil
<html>
<head>
<title>Exclusão de Clientes</title>
<link href="loja.css" rel="stylesheet" type="text/css">
</head>
<body>
<?
include "conectar.php";
include "ver_sessao.php";
$sql_del = mysql_query("delete from tb_clientes where id_user='$id_cliente'")
or die("<div class=\"erro\">erro no sql: ".mysql_error()."</div>");
echo "<div class=\"ok\">cliente excluído com sucesso!</div>";
echo "<div class=info><a href='gerclientes.php?acao=entrar'>[voltar]</a>";
?>
</body>
</html>
O acesso a banco de dados pode ser feito de várias formas. O estudo de caso
apresentado mostra os principais itens de uma área administrativa de sites
dinâmicos, aplicando o conceito de sessões para fazer o controle de acesso e
consultas SQL para o retorno de dados e a sua alteração no MySQL.
Resumo
Esta aula complementou o conteúdo das aulas anteriores para a construção
de um site.
A programação para WEB é algo que está crescendo a cada dia. Mais fra-
meworks e novas formas para facilitar o desenho de páginas estão surgindo.
A rede mundial de computadores mudou a forma da população mundial
pensar e, portanto, a cabeça dos desenvolvedores também tomou um novo
Verdade seja dita: a programação WEB não cairá de moda tão facilmente e,
portanto, é uma grande área para aperfeiçoamento e investimento.
Atividades de aprendizagem
1. Faça uma pesquisa em alguns frameworks para a linguagem PHP. Cite e
descreva aqui dois destes frameworks.
c) strtoupper(string $string)
d) session_start()
Aula 6 - Programação para WEB “lado servidor” – estudo experimental 133 Rede e-Tec Brasil
Prezado(a) estudante.
Muitas perguntas ainda podem ser feitas, mas é importante que haja sempre
Um grande abraço!
Atividades - Aula 1
3. Desenvolva uma página HTML que tenha (utilize títulos para dividir os ele-
mentos do texto e apresentá-los) dois elementos em bloco de representação
para conteúdo (<DIV>), apresentando dados pessoais
Atividades - Aula 2
Exercício 1a
1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.
w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2. <html xmlns="http://www.w3.org/1999/xhtml">
3. <head>
4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5. <title>Cronograma Anual</title>
6. <style type="text/css">
7. </style>
8. </head>
9.
10. <body>
11. <table width="700" border="1" cellspacing="0" cellpadding="10"
bordercolor="gray">
12. <tr>
13. <th colspan="9" bgcolor="#666666">Cronograma de Atividades 2012</th>
14. </tr>
15. <tr>
16. <th bgcolor="#999999">Atividade</th>
17. <th width="12%" colspan="2" bgcolor="#999999">Janeiro</th>
18. <th width="12%" bgcolor="#999999">Fevereiro</th>
19. <th width="12%" bgcolor="#999999">Março</th>
20. <th width="12%" colspan="2" bgcolor="#999999">Abril</th>
21. <th width="12%" bgcolor="#999999">Maio</th>
Exercício 1d
1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://
www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2. <html xmlns="http://www.w3.org/1999/xhtml">
3. <head>
4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5. <title>Formulário</title>
6. </head>
7. <body>
8. <p>Formulário</p>
9. <form id="frmCadastro" name="frmCadastro" method="post" action="">
10. <p>
11. <label for="edtNome">Nome</label>
12. <input type="text" name="edtNome" id="edtNome" />
13. </p>
14. <p>
15. <label for="edtUF">UF</label>
16. <select name="edtUF" id="edtUF">
17. <option value="AC">AC</option>
18. <option value="AM">AM</option>
19. <option value="AP">AP</option>
20. <option value="BA">BA</option>
21. <option value="CE">CE</option>
22. <option value="DF">DF</option>
23. <option value="ES">ES</option>
24. <option value="GO">GO</option>
25. <option value="MA">MA</option>
26. <option value="MG">MG</option>
27. <option value="MS">MS</option>
28. <option value="MT">MT</option>
29. <option value="PA">PA</option>
30. <option value="PB">PB</option>
31. <option value="PE">PE</option>
32. <option value="PI">PI</option>
Exercício 2
Atividades - Aula 3
Exercício 1
Exercício 2
1. <html>
2. <head>
3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
4. <title>Curriculo</title>
5. <style type="text/css">
6. .foto {
7. background-attachment: scroll;
8. background-image: url(foto_jolie.png);
9. background-repeat: no-repeat;
10. height: 200px;
11. width: 150px;
12. }
13. body {
14. font-family: Tahoma, Geneva, sans-serif;
15. font-size: 10px;
16. }
17. .nome {
18. font-weight: bold;
19. font-size: 36px;
20. }
21. .nome p {
22. font-size: 14px;
23. color: #999;
24. }
25. .tit_secao {
26. font-family: Arial, Helvetica, sans-serif;
27. font-size: 14px;
28. font-weight: bold;
29. color: #FFF;
30. background-color: #666;
31. padding-top: 12pt;
32. padding-bottom: 18pt;
33. }
34. .tit_subsecao {
35. font-family: Arial, Helvetica, sans-serif;
36. font-size: 12px;
37. font-weight: bold;
38. color: #FFF;
39. background-color: #AAA;
40. padding-top: 6pt;
41. padding-bottom: 9pt;
42. }
43. .texto {
44. font-family: Arial, Helvetica, sans-serif;
45. font-size: 11px;
46. color: #333;
47. text-align: justify;
Exercício 3
Atividades - Aula 4
Exercício 1
1. <html>
2. <head>
3. <title>Mostra nome</title>
4. </head>
5. <body>
6. <form id="form1" name="form1" method="post" action="">
7. <label for="edtNome">Nome</label>
8. <input type="text" name="edtNome" id="edtNome" onblur="window.
alert(this.value);" />
9. </form>
10. </body>
11. </html>
Exercício 2
1. <html>
2. <head>
3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
4. <title>Verificações</title>
5. <script language="javascript">
6. function verificar(formulario){
7. var msg = "";
8. // verificar se o nome foi informado
9. if (formulario.edtNome.value == "") {
10. alert("Nome não informado");
11. return false;
12. }
13.
14. // idade atual
15. var data = formulario.edtDtNasc.value.split("/");
16. var data_nasci = new Date(data[2],(data[1]-1),data[0]);
Atividades - Aula 5
Exercício 1a
1. <html>
2. <head>
3. <title>Calculadora</title>
4. </head>
5. <body>
6. <?php
7. $nome = "Fernando Schutz";
8. $email = "fernando@utfpr.edu.br";
9. echo $nome;
10. echo "<br />";
11. echo $email;
12. ?>
13. </body>
14. </html>
Exercício 1b
1. <html>
2. <head>
3. <title>Calculadora</title>
4. </head>
5. <body>
6. <?php
7. $nome = "Fernando Schutz";
8. $email = "fernando@utfpr.edu.br";
9. echo $nome."<br />".$email;
10. ?>
11. </body>
12. </html>
Exercício 2
1. <?php
2. $n1 = $_POST['n1'];
3. $n2 = $_POST['n2'];
4. $operacao = $_POST['operacao'];
5.
6. function calcular(){
7. global $n1;
8. global $n2;
9. global $operacao;
10. if ($n1 == "" || $n2 == "") return "";
11. switch($operacao){
12. case 'Multiplicacao': $resultado = $n1 * $n2; break;
13. case 'Divisao': $resultado = $n1 / $n2; break;
14. case 'Soma': $resultado = $n1 + $n2; break;
15. case 'Subtracao': $resultado = $n1 - $n2; break;
16. }
17.
18. return($resultado);
19. }
20. header('Location:index.php?resultado='. calcular());
21. ?>
Exercício 3
1. <html>
2. <head>
3. <title>Taboada</title>
4. <link rel="stylesheet" type="text/css" href="index.css">
5. </head>
6. <body>
7. <h1>Calculadora de tabuada</h1>
8. <hr />
9. <fieldset>
10. <legend><p>Caulculadora</p></legend>
11. <form name="formulario" method="get" action="#">
12. <p>
13. <label>Numero:</label>
14. <input type="text" name="numero"/>
15. <input type="submit" value="Calcular">
16. </p>
17. </form >
18. <?php
19. if(isset($_GET["numero"]))
20. if ($_GET["numero"] != "") calcula();
21.
22. function calcula(){
23. echo "<table cellspacing = 0 border = 1 rules = none>";
24. echo "<tr class = linha><td colspan = 5 > Tabuada do " . $_
GET["numero"] . "</td></tr>";
25. for($i=1; $i<=10; $i++){
26. $resultado = $_GET["numero"] * $i ;
27. echo "<tr ";
Atividades - Aula 6
Exercício 1
Exercício 02
LEINER, Barry M. et al. Brief History of the Internet. Internet Society. Disponível
em:< http://www.internetsociety.org/internet/internet-51/history-internet/brief-history-
internet. > Acesso em: 07 jul.2011.
CHANDLER, David M.; KIRKNER, Bill; MINATEL, Jim. Como montar o seu site na world
wide WEB. Rio de Janeiro: Campus, 1996.
HAHN, Harley; STOUT, Rick (Autor). The internet: complete reference. Berkeley:
Osborne, 1994.
MORIMOTO, Carlos E. Redes: Guia Prático. GDH Press e Sul Editores. São Paulo: 2008.
Disponivel em: < http://www.gdhpress.com.br/redes> Acesso em: 20 nov.2010
VALENTE, José Armando; ALMEIDA, Maria E. B. de; PRADO, Maria Elisabette B. Brito;
FREIRE, Fernanda Maria Pereira; FAZENDA, Ivani Catarina Arantes; VALLIN, Celso (Autor).
Educação a distância via internet. São Paulo: Avercamp, 2003.
http://lattes.cnpq.br/8912470216819864