Tecnologia WEB I I - institutosiegen.com.br€¦ · 1 Prof. Erwin Alexander Uhlmann – Tecnologia...
Transcript of Tecnologia WEB I I - institutosiegen.com.br€¦ · 1 Prof. Erwin Alexander Uhlmann – Tecnologia...
1
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Tecnologia WEB II Prof. Erwin Alexander Uhlmann
Introdução ao PHP
UHLMANN, Erwin Alexander. Introdução ao PHP.
Instituto Siegen. Guarulhos, 2012.
2
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Agradecimentos
Agradeço à minha esposa Kátia por entender
minha ausência, meus pais Mirtes e Günter por
terem criado meu caminho, aos meus alunos que
viabilizaram este trabalho e a todos os autores
de livros e bibliotecas que consultei para que
pudesse devidamente embasar este.
3
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Sumário Agradecimentos ...............................................................................................................2
Introdução ....................................................................................................................... 5
Aula 1 ................................................................................................................................ 6
Pré-requisitos ............................................................................................................... 6
Fontes de referência................................................................................................ 6
Software ................................................................................................................... 6
PHP .............................................................................................................................. 10
O que é um aplicativo para web? ............................................................................ 11
Como funciona um aplicativo para a web .............................................................. 11
Aula 2 ............................................................................................................................... 19
Condicionais ............................................................................................................ 22
Comandos de repetição ........................................................................................ 24
Aula 3 .............................................................................................................................. 28
Envio de e-mails ......................................................................................................... 28
to............................................................................................................................. 28
subject .................................................................................................................... 28
message ................................................................................................................. 28
additional_headers (opcional) .............................................................................. 29
Email simples.......................................................................................................... 30
Aula 4 .............................................................................................................................. 34
Cookies ....................................................................................................................... 34
Aula 5 .............................................................................................................................. 39
Criação e leitura de arquivos ..................................................................................... 39
Criar arquivos ......................................................................................................... 39
Ler arquivos ............................................................................................................... 42
4
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Aula 6 .............................................................................................................................. 43
Upload de arquivos ................................................................................................... 43
Aula 7 .............................................................................................................................. 45
Sessão......................................................................................................................... 45
Aula 8 .............................................................................................................................. 47
Bibliografia ..................................................................................................................... 50
5
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Introdução O objetivo deste trabalho é introduzir as técnicas básicas de programação em PHP
para a construção de um site gerenciável pelo cliente sem a necessidade de
conhecimento de HTML e PHP.
6
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Aula 1
Pré-requisitos
Fontes de referência
http://php.net/manual/pt_BR/index.php
Livros
Software
PHPEditor
Este é um dos principais editores de PHP. Simples, rápido, prático e com um amplo
suporte à linguagem.
$ : Grátis.
Avaliação: -----
http://filestore.softwaredownloadwebsite.com/h92/743753-
phpeditor_setup_en.exe
7
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Figura 1 - PHPEditor
Dreamweaver
Este é o melhor! O problema é que é pago, e bem pago. Este editor da Adobe tem
longa história de desenvolvimento. Atende diversas ferramentas que permitem até
um usuário com pouco conhecimento criar uma página, além de suporte a diversas
linguagens de programação e Banco de Dados.
http://www.adobe.com/cfusion/tdrc/index.cfm?product=dreamweaver&loc=pt_br
$: US$ 229,00 (13/12/2011)
Avaliação: -----
8
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Figura 2 - Dreamweaver
Expression Web
A Microsoft definitivamente entrou para a briga dos editores web. Para encarar o
Dreamweaver ela lançou o Expression Web 4, que pode ser avaliado como uma
versão antiga, de uma ou duas gerações passadas, do software da Adobe. Pago mas
com diversos recursos, segue a linha do principal concorrente.
http://www.microsoft.com/expression/products/web_overview.aspx
$: US$149,00
Avaliação: -----
9
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Figura 3 - Expression Web
Existem diversos editores PHP, ao longo deste trabalho, iremos utilizar o PHPEditor,
pois além de gratuito é a referência.
O PHP necessita do compilador PHP. http://windows.php.net/download/
Como em breve iremos trabalhar em conjunto com MySQL, aproveite para baixa-lo.
http://dev.mysql.com/downloads/
Além deles é fundamental um servidor, neste caso o Apache.
http://httpd.apache.org/download.cgi
Mas, você pode optar por baixar um suíte que já reúne todos os softwares. Existem
vários, ao longo do curso iremos utilizar o Vertrigo.
http://vertrigo.sourceforge.net/?lang=br
No caso da opção pelo Vertrigo, observe a instalação:
Para instalar é fácil e basta seguir os passos recomendados pelo programa.
Inicie sempre o Vertrigo, antes de começar a trabalhar com o PHP. Caso ele não
consiga iniciar e informe problemas com a porta 80, no Painel de Controle do
10
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Windows, em Ferramentas Administrativas, e em seguida em Serviços, interrompa
os programas que utilizem esta porta.
Na maioria dos casos são os softwares de comunicação como o Messenger, Skype,
entre outros e também o servidor ISS, caso o tenha.Este modelo de relatório está
completo com estilos para um sumário e um índice.
Também é importante lembrar que nos sistemas operacionais Windows Vista e
Windows 7 (Seven), ao instalar é necessário aplicar as permissões de segurança à
pasta, em Propriedades, na guia Segurança.
Figura 4 - Propriedades do Windows para o Vertrigo
PHP O PHP é uma linguagem de programação simples e prática. Vamos trabalhar com ele
em conjunto com o HTML. Caso você não esteja muito familiarizado com esta
11
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
linguagem de marcação, aproveite para baixar a apostila de HTML.
http://www.institutosiegen.com.br/is_professor_materia03.php?user_mat03=UnG%
20-%20Ci%EAncia%20da%20Computa%E7%E3o%20-%20Tecnologia%20Web%20I
O que é um aplicativo para web?
Um aplicativo para a web é um site que contém páginas armazenadas em um
servidor com conteúdo parcialmente ou totalmente indeterminado. O conteúdo
final de uma página será determinado somente quando o usuário solicitar uma
página do servidor web. Uma vez que o conteúdo final da página varia de acordo
com cada pedido de ação do usuário, este tipo de página é chamado página
dinâmica.
Os aplicativos para a web são criados para solucionar diversos desafios e
problemas. Esta seção descreve usos comuns de aplicativos para a web e fornece
um exemplo simples.
Como funciona um aplicativo para a web
Um aplicativo para a Web é um conjunto de páginas normais e dinâmicas. Uma
página normal é um página que não é modificada quando solicitada pelo usuário: o
servidor web envia a página ao navegador que a solicitou sem modificá-la. Em
contraste, uma página da web dinâmica é modificada pelo servidor antes de ser
enviada ao navegador. Chama-se página dinâmica devido à sua natureza variável.
Por exemplo: é possível criar uma página para exibir resultados do programa de boa
forma e deixar certas informações (nome do funcionário e resultados) a serem
determinadas quando a página for solicitada por um funcionário.
Processamento de páginas estáticas.
12
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Figura 5 - Solicitação de HTML
Figura 6 - Processamento de um aplicativo
Então vamos para de papo e começar a programar.
O PHP pode atuar sozinho e gerar páginas HTML sem formatação. Aqui começa.
<?php
//isto é um comentário de uma linha
/*e este suporta várias linhas.
Observe que estes comentários só podem estar dentro do PHP
<?php isto abre o PHP e ?> isto fecha
*/
echo “Olá Mundo!”;//o comando echo (pronucia-se écoh)imprime
13
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
?>
Ok, agora é com você. Imprima a seguinte frase: Professor, você é o cara!
Mas se é para imprimir não tem graça, vamos trabalhar com variáveis:
$variavel = “uma string (valor textual)”;
Então vai ficar assim:
<?php
$variavel = “Bem legal, eu já sei o que é variável!”; //toda instrução do PHP termina com ;
?>
Ok, ok, ainda continua chato, eu quero interação, eu quero um aplicativo WEB!!!
Vamos criar a seguinte página:
aula1.php
<HTML>
<HEAD>
<TITLE>Aula 1 de PHP</TITLE>
</HEAD>
<BODY>
<h1>Tecnologia Web II</h1>
<h2>Formulário de interação</h2>
<form method="POST">
Nome:<input type="text" name="nome">
<input type="submit" value="Gravar">
</form>
</BODY>
</HTML>
Script 1 - aula 1 – formulário
Figura 7 - Aplicativo renderizado
Muito bem, você notou que a metodologia de envio do formulário é POST, então
para receber os dados do formulário, precisaremos utilizar esta mesma
metodologia.
Para receber os dados o script vai ficar assim:
<HTML>
14
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
<HEAD>
<TITLE>Aula 1 de PHP</TITLE>
</HEAD>
<BODY>
<h1>Tecnologia Web II</h1>
<h2>Formulário de interação</h2>
<form method="POST">
Nome:<input type="text" name="nome">
<input type="submit" value="Gravar">
</form>
<?php
$nome = $_POST['nome'];
echo $nome;
?>
</BODY>
</HTML>
Script 2 - recebimento dos dados e impressão
Mas ocorreu um erro!!!
Figura 8 - Erro de declaração de variável vazia
Veja que interessante, vamos aprender algo com isto. Notice (Aviso!) Indice
indefinido na linha 13.
15
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Figura 9 - Análise do script
O erro está na linha 13, $nome = $_POST['nome'];
Este erro acontece por que foi declarado algo que ainda não foi preenchido, está
vazio. Para corrigir vamos criar uma condição (if/else).
16
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Figura 10 - Condicional (if/else)
Figura 11 - Resolvido!
Então o script final ficou:
<HTML>
<HEAD>
<TITLE>Aula 1 de PHP</TITLE>
</HEAD>
<BODY>
<h1>Tecnologia Web II</h1>
<h2>Formulário de interação</h2>
<form method="POST">
17
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Nome:<input type="text" name="nome">
<input type="submit" value="Gravar">
</form>
<?php
if(isset($_POST['Gravar'])){
$nome = $_POST['nome'];
echo $nome;
}
?>
</BODY>
</HTML>
Script 3 – Script com condicional
É importante sempre lembrar: nunca declare algo que ainda estará vazio!
Mas vamos explicar: dentro do PHP o if (se) é seguido de uma condição entre
parênteses if(condição) e uma ação entre chaves if(...){ ação}, o isset (leia is set, se
clicado) analisa se o botão Gravar foi pressionado e o PHP recebe esta informação
pelo comando $_POST (lembra da metodologia de envio do formulário?)Script 1 -
aula 1 – formulário. Veja que deve ser escrito da mesma forma com letra maiúscula.
Para você observar o formulário interagindo, vamos separar o arquivo em 2.
aula1.php e aula1.1.php.
aula1.php
<BODY>
<h1>Tecnologia Web II</h1>
<h2>Formulário de interação</h2>
<form method="POST" action="aula1.1.php">
Nome:<input type="text" name="nome">
<input type="submit" value="Gravar">
</form>
<?php
if(isset($_POST['Gravar'])){
$nome = $_POST['nome'];
echo "<p>$nome</p>";
}
?>
</BODY>
</HTML>
Script 4 - Envio de informações por formulário
aula1.1.php
<HTML>
<HEAD>
<TITLE>Aula 1 de PHP</TITLE>
</HEAD>
<BODY>
<h1>Tecnologia Web II</h1>
<h2>Formulário de interação</h2>
18
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
<?php
$nome = $_POST['nome'];
echo "<p>$nome</p>";
?>
<a href="aula1.php">Voltar!</a>
</BODY>
</HTML>
Script 5 - Recepção de informações de um formulário
Vamos explicar...
A página aula1.php enviou os dados para página aula1.1.php pela metodologia post
do formulário e a página aula1.1.php recebeu estes dados pelo comando $_POST, o
parâmetro esperado é o nome do campo do formulário da página aual1.php
(Nome:<input type="text" name="nome">) e a página aula1.1.php recebe ($nome =
$_POST['nome'];). Além do post podemos enviar via URL com o método GET,
altere o formulário da página aula1.php para GET e a página aula1.1.php para
$_GET[‘nome’];. Observe a url e manipule diretamente os dados por lá, troque o
nome e pressione F5 (recarregue a página).
Ok. Vamos exercitar!
Crie um formulário de cadastro de currículos. O que deve ter um currículo? Crie um
formulário com todos estes campos (figura 12) e vamos enviá-lo para outra página.
Figura 12 - cadastro de currículo
19
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Aula 2 Além de imprimir e receber dados de formulários uma linguagem de programação
tem por característica a automação, realização de ações automáticas e para realizar
estas ações vamos precisar aprender, entre outras coisas, a trabalhar com o tempo
e a aritmética.
Naquela mesma estrutura de HTML, que a partir de agora será oculta nos scripts,
apenas quando necessário iremos demonstrar, vamos adicionar alguns dos
seguintes scripts.
<?php
$data = date('d-m-Y');
echo "<br>Hoje é: $data<br>";
$hora = date('H:i:s');
//Concatenando variáveis
echo $hora . " " . $data; echo "<br>Hoje, $data, às $hora, eu escrevi
um script PHP!!!<br>";
$time = time();
echo "o tempo no PHP é contado assim: $time";
?>
Script 6 - Trabalhando com data e hora
O “.” (ponto) concatena as informações.
Rode o script 6. Veja como ficou. Bem, se entendemos o tempo vamos misturar
com aritmética. (Veja mais sobre o tempo na tabela 1)
Bem, a aritmética é simples, soma (+), subtração (-), divisão (/) e multiplicação (*). O
PHP pode trabalhar com números ou com variáveis.
<?php
$a = 2;
$b = 4;
$soma = $a + $b;
$subtracao = $a - $b;
$divisao = $a / $b;
$multiplicacao = $a * $b;
echo "A = $a <br> B = $b <br> Soma: $soma <br> Subtração: $subtracao
<br> Divisão: $divisao <br> Multiplicação: $multiplicacao";
?>
Agora estude as tabelas 1, 2, 3 e 4. Vamos fazer um exercício!
Tabela 1 - Parâmetros de tempo, www.php.net, 2012
format character
Descrição Exemplo de valores retornados
20
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
format character
Descrição Exemplo de valores retornados
a Lowercase Ante meridiem and Post meridiem am or pm
A Uppercase Ante meridiem and Post meridiem AM ou PM
B Swatch Internet time 000 até 999
d Dia do mês, 2 digitos com leading zeros 01 to 31
D Uma representação textual de um dia, três letras Mon through Sun
F Uma representação textual de um mês, tal como janeiro ou Março
Janeiro a Dezembro
g 12-hour formato de hora sem leading zeros 1 a 12
G 24-hour formato de hora sem leading zeros 0 a 23
h 12-hour formato de hora com leading zeros 01 a 12
H 24-hour formato de hora com leading zeros 00 a 23
i Minutos com leading zeros 00 para 59
I (i maiúsculo)
Se a data está ou não em horário de verão 1 Horário de Verão, 0 sem Horário de Verão.
j Dia do mês sem leading zeros 1 to 31
l ('L' minúsculo)
Uma representação completa textual de um dia da semana
Domingo a Sábado
L Se é ano bissexto 1 ano bissexto, 0 ano não bissexto.
m Representação numérica de um mês, com leading zeros
01 a 12
M Uma representação textual curta de um mês, três letras
Jan a Dec
n Representação numérica de um mês, sem leading zeros
1 a 12
O Diferença ao horário de Greenwich (GMT) em horas Exemplo: +0200
r » RFC 2822 formatted date Exemplo: Thu, 21 Dec 2000 16:01:07 +0200
s Segundos, com leading zeros 00 a 59
S Sufixo ordinal inglês para o dia do mês, 2 caracteres st, nd, rd ou th. Funciona bem com j
t Número de dias do dado mês 28 a 31
T Timezone setting of this machine Examples: EST, MDT ...
U Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)
See also time()
w Representação numérica do dia da semana 0 (para Domingo) a 6 (para Sábado)
W Número da semana do ano ISO-8601, semanas Exemplo: 42 (a 42nd
21
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
format character
Descrição Exemplo de valores retornados
começadas na segunda-feira (adicionado no PHP 4.1.0)
(quadragésima segunda) semana do ano)
Y Uma representação completa do ano, 4 dígitos Examples: 1999 ou 2003
y Representação do ano em dois dígitos Examples: 99 ou 03
z O dia do ano (começando de 0) 0 a 365
Z Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive.
-43200 até 43200
Tabela 2 - Operadores Aritméticos
Operador Descrição Exemplo Resultado
+ Adição x=2 x+2
4
- Subtração x=2 x-5
3
* Multiplicação x=4 x*5
20
/ Divisão 15/5 3
% Módulo (restante da divisão) 5%2 10%8 10%2
1 2 0
++ Incrementos x=5 x++
x=6
-- Decrementos x=5 x--
x--
Tabela 3 - Operadores comparativos
Operador Descrição Exemplo Resultado
== é igual a 5==8 falso
!= não é igual 5!=8 verdadeiro
> é maior que 5>8 falso
< é menor que 5<8 verdadeiro
>= é maior que ou igual a 5>=8 falso
< é menor que ou igual a 5<=8 verdadeiro
Tabela 4 - Operadores lógicos
Operador Descrição Exemplo Resultado
&& e x=6 y=3 (x < 10 && y > 1)
verdadeiro
|| ou x=6 y=3 (x==5 || y==5)
falso
! não x=6 verdadeiro
22
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Operador Descrição Exemplo Resultado
y=3 !(x==y)
Vamos praticar um pouco. Crie uma calculadora online!
Vamos à receita. Crie uma calculadora com botões e seus nºs correspondentes, os
sinais aritméticos e que ao clicar no botão ele se valha da URL como memória.
Receba os valores, imprima-os e realize as operações. Veja em:
http://www.institutosiegen.com.br/ung/twii/calculadora/
Agora que já sabemos aritmética vamos estudar as condicionais.
Condicionais
if, elseif e else
A tradução livre seria: se, senão, então.
A sintaxe é:
if (condições)
{O que se deve fazer}
elseif (condições)
{O que se deve fazer}
else ( Não há condições)
{O que se deve fazer}
Exemplo:
<?php
$a = 1;
$b = 2;
if($a > $b){
echo 'A é '. ($a - $b) .' maior que B';
}elseif($a == $b){
echo "A é igual à B";
}else{
echo "A é ". ($b - $a) ." menor que B";
}
?>
Teste!
Agora que você entendeu – entendeu, não? Se não, leia de novo!!! – Vamos partir
para algo, digamos, mais emocionante.
Um aluno está ávido por saber como vai ficar sua situação
23
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Início
B1
B2
Média menor que 4?
Média menor que 7?
Média maior que 9?
Colou de quem?
Fim
Por que não tirou 10,0???
Exame!
Existia uma chance, mas com essa
nota...
Figura 13 - Fluxograma para calculo de médias
<?PHP
echo "Sua nota de B1 é: $prova1.<br>Sua nota de B2 é:$prova2.<br>Sua
nota de B3 é:$prova3.<br>Sua nota de B4 é:$prova4.<br><h3>Sua média é
<strong>$nota</strong>.</h3><hr />";
if ($nota<3)
$desempenho = "típico...";
elseif ($nota<5)
$desempenho = "esperado...";
elseif ($nota<7)
$desempenho = "surpreendente! Colou de quem???";
24
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
elseif ($nota<9)
$desempenho = "no mínimo incondizente, acho que errei...";
else
$desempenho = "absurdo! Tenho certeza que você colou! De quem? Assuma!
Seu moleque, irresponsável, perturbado!";
echo "O seu desempenho foi $desempenho.";
?>
Podemos utilizar condições únicas também, como no caso de apenas uma única
entrada ser aceita. Veja:
<?php
if ($nota == 10)
{
echo "Parabéns! <br>";
echo "Você tirou a nota máxima!";
}
?>
Switch
Switch e IF são comandos bem parecidos e de resultados iguais, a diferença se
resume à que o switch trabalha apenas com igualdades, enquanto o if aceita
qualquer operador e ainda, o switch torna o código mais organizado, pois apresenta
somente o comando case. Veja:
<?php
switch ($numero)
{
case 0:
echo "número vale 0";
break;
case 1:
echo "número vale 1";
break;
case 2:
echo "número vale 2";
break;
}
?>
Comandos de repetição
While
Fazer enquanto...
O comando while pode ser muito útil quando se deseja que algo aconteça até que
se atinja um valor, e este valor, é claro pode ser uma variável.
Veja:
25
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
<?php
$valor = 1;
while ($valor<100)
{
echo "O valor atual do contador é $valor <br>";
$valor++;
}
?>
O será executado? O valor atual é 1 e ele irá executar um acréscimo de 1 em 1 até
que atinja 99, pois a instrução diz para “fazer enquanto” a variável for menor que 1.
Novamente no caso da página das notas, vamos construir um gráfico que poderá
ilustrar o desempenho do aluno, veja:
//while
$imagem = "<img src='images/bot_verde.png'/>";
$repetidor = 0;
while ($repetidor <= $nota) {
echo $imagem;
$repetidor++;
}
O valor estabelecido não foi um número ou texto, mas sim uma tag HTML com o
endereço de uma imagem, que neste caso é um pequeno quadrado. O comando irá
repetir esta imagem até que o valor atinja o número da nota do aluno.
do...while
Fazer enquanto. A diferença entre o while e o do...while é que o while executa a
função a partir do início da programação e o do...while executa enquanto a função
for verdadeira, ou seja, executa pelo final, isto significa que o do...while pode ser
executado diversas vezes, enquanto o while é executado apenas uma vez.
Veja:
<?php
$numero = 1;
do
{
echo "O valor atual de número é $numero <br>";
$numero++;
} while ($numero<4);
?>
O valor impresso será:
O valor atual de número é 1
O valor atual de número é 2
26
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
O valor atual de número é 3
O valor atual de número é 4
for
O comando for, funciona de forma semelhante ao do...while, no entanto ele muito
útil quando se deseja imprimir diversos valores como de um array ou de um Banco
de Dados. Veja:
<?php
$vetor[0][0]= "elemento00";
$vetor[0][1]= "elemento01";
$vetor[1][0]= "elemento10";
$vetor[1][1]= "elemento11";
for($i=0 ; $i<2 ; $i++)
{
for($k=0 ; $k<2 ; $k++)
{
echo "O elemento da posição $i,$k é ";
echo $vetor [$i][$k] . "<br>";
}
}
?>
O resultado impresso na tela será:
O elemento da posição 0,0 é elemento00
O elemento da posição 0,1 é elemento01
O elemento da posição 1,0 é elemento10
O elemento da posição 1,1 é elemento11
<?php
$diasemana[0] = "Domingo";
$diasemana[1] = "Segunda-feira";
$diasemana[2] = "Terça-feira";
$diasemana[3] = "Quarta-feira";
$diasemana[4] = "Quinta-feira";
$diasemana[5] = "Sexta-feira";
$diasemana[6] = "Sábado";
$mesnome[1] = "Janeiro";
$mesnome[2] = "Fevereiro";
$mesnome[3] = "Março";
$mesnome[4] = "Abril";
$mesnome[5] = "Maio";
$mesnome[6] = "Junho";
$mesnome[7] = "Julho";
$mesnome[8] = "Agosto";
$mesnome[9] = "Setembro";
27
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
$mesnome[10] = "Outubro";
$mesnome[11] = "Novembro";
$mesnome[12] = "Dezembro";
$ano = date('Y');
$mes = date('n');
$dia = date('d');
$diasem = date('w');
$hora=getdate();
if ($hora['minutes']<10)
{
$hora['minutes']="0".$hora['minutes'] ;
}
$horacerta=($hora['hours'].':'.$hora['minutes']);
$data = 'Hoje é '.$diasemana[$diasem].', dia '.$dia.' de
'.$mesnome[$mes].'
de '.$ano.' <br> Hora: '.$horacerta;
echo "<html><head><title> UnG - Data completa.</title></head><body>";
echo $data;
echo "</body></html>";
?>
28
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Aula 3
Envio de e-mails Para o envio de e-mails pelo PHP é necessário seguir a seguinte sintaxe:
bool mail ( string $to , string $subject , string $message
[, string $additional_headers [, string $additional_parameters
]] )
Onde:
to
Receptor, ou receptores do email.
Alguns exemplos:
* [email protected], [email protected]
* User <[email protected]>
* User <[email protected]>, Another User <[email protected]>
subject
Assunto do email a ser enviado.
Cuidado!
Não deve conter caractere de nova linha, ou o email pode não ser enviado
corretamente.
message
Mensagem a ser enviada.
Cada linha deve ser separada com um LF (\n). Linhas não deve ser maiores que 70
caracteres.
29
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
additional_headers (opcional)
String a ser inserida no final do cabeçalho do email.
Esta é normalmente usada para adicionar cabeçalhos extras (From, Cc, e Bcc).
Múltiplos cabeçalhos extra devem ser separados com um CRLF (\r\n).
Mãos à obra
Os formulários de contato são presença quase unânime nos sites.
Além de permitir que qualquer usuário entre em contato sem nenhum programa de
envio de e-mails, o usuário poderá fazer isto de qualquer lugar.
Abra uma nova página e crie um formulário de contato.
Para fazer um formulário comece a criar o código PHP antes do html.
<?php
if(isset($_POST['submit'])) {
$nome = $_POST['nome'];
$email = $_POST['email'];
$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];
$header = "FROM: $nome <$email>";
mail('[email protected]', $assunto,
$mensagem, $header);
}
?>
Crie um formulário com os mesmos nomes acima descritos, ou seja, o nome
utilizado no formulário deverá ser utilizado no código PHP.
NOTA: O nome da variável não precisa ser igual ao nome do campo do formulário,
neste caso são iguais apenas por questões de organização.
Você poderá fazer outras programações adicionais para que o usuário tenha sinal
que o formulário funcionou. Se você simplesmente criar o formulário e programar o
PHP para enviar, mas o usuário não perceber nenhuma reação na página poderá
entender como se a página não estivesse funcionando.
Solução 1:
No código do form.
30
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
<form id="form1" name="form1" method="post"
action="index.php">
Isto não é php. Na TAG form, a opção action, por padrão não é preenchida. Coloque
o endereço de uma página, por exemplo, index.php ou confirmacao.htm. O usuário
agradecerá!
Solução 2:
Antes da tag form, escreva:
<?php
if(isset($_POST['submit'])) {
echo "<hr />Obrigado <strong>$nome</strong>.Sua mensagem foi
enviado com sucesso!<hr />";
} else {
?>
Depois da TAG form.
<?php } ?>
Isto encerrará a programação.
Tudo que estiver entre as chaves ({ e }), será submetida à programação elaborada,
neste caso SE (if) o formulário for SUBMETIDO (submit), ou seja, enviado, EXIBA
(echo) a frase acima, SENÃO (else) – note neste ponto que não há nada
programado para fazer e o que há entre as chaves é o formulário – não faça nada, a
não ser exibir o formulário.
NOTA: Será necessário escolher entre as soluções 1 ou 2.
Tipos de e-mails:
Email simples
<?php
$mensagem = "Linha 1\n Linha 2\n Linha 3…";
/* Caso as linhas tenham mais de 70 caracteres utilize a
função wordwrap() */
$mensagem = wordwrap($mensagem, 70);
/*Como funciona o wordwrap?
string wordwrap ( string $str [, int $width [, string
$break [, boolean $cut ]]] )
<?php
$texto = "Um texto relativamente longo que precisa ter suas
linhas quebradas.";
$novotexto = wordwrap($texto, 20, "<br />");
31
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
echo "$novotexto\n";
?> */
// Envio
mail('[email protected]', 'Assunto',
$mensagem);
?>
Com cabeçalho extra
<?php
$para = '[email protected]';
$assunto = 'Assunto do e-mail';
$mensagem = 'Mensagem';
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($para, $assunto, $mensagem, $headers);
?>
Em formato html
<?php
// para vários e-mails
$para = '[email protected]'. ', ';
// observe a vírgula
$para. = '[email protected]';
// assunto
$assunto = Texto do assunto do e-mail';
// message
$mensagem = '
<html>
<head>
<title>Email de teste!</title>
<style type='text/css'>
<!--
body,td,th {
color: #000066;
}
body {
background-color: #009999;
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style>
</head>
<body>
<h1 align='center'>Email de teste!</h1>
<p>Veja como fica o html. </p>
</body>
</html>';
/* Para enviar um email em formato HTML, o cabeçalho Content-
type precisa ser configurado */
$headers = 'MIME-Version: 1.0' . "\r\n";
32
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
$headers .= 'Content-type: text/html; charset=iso-8859-1' .
"\r\n";
// Cabeçalho adicional
$headers .= 'To: Alguém <[email protected]>, Ninguém
<[email protected]>' . "\r\n";
$headers .= 'From: Email de Teste! <[email protected]>' .
"\r\n";
$headers .= 'Cc: [email protected]' . "\r\n";
$headers .= 'Bcc: [email protected]' . "\r\n";
mail($para, $assunto, $mensagem, $headers);
?> Note que na função mail, existe apenas uma variável $headers, pois os headers
adicionais foram concatenados com a função “.”.
A página ficará da seguinte forma:
<?php
if(isset($_POST['submit'])) {
//Recebendo os dados do Form
$nome = strip_tags(trim($_POST['nome']));
$email = strip_tags(trim($_POST['email']));
$assunto = strip_tags(trim($_POST['assunto']));
$mensagem = strip_tags(trim($_POST['mensagem']));
$destinatario = '[email protected]';
$header = "FROM: $nome <$email>";
mail ($destinatario, $assunto, $mensagem, $header);
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<label>
<input name="nome" type="text" id="nome" />
</label>
<p>
<label>
<input name="email" type="text" id="email" />
</label>
</p>
<p>
<label>
<input name="assunto" type="text" id="assunto" />
</label>
</p>
<p>
33
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
<label>
<textarea name="mensagem" id="mensagem"></textarea>
</label>
</p>
<p>
<label>
<input type="submit" name="Submit" value="Submit" />
</label>
</p>
</form>
</body>
</html>
34
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Aula 4
Cookies Os cookies são arquivos txt armazenados para utilização posterior dos dados do
usuário.
bool setcookie ( string $nome [, string $valor [, int $expira
[, string $caminho [, string $domínio [, bool $seguro [, bool
$somente http ]]]]]] )
Onde:
$nome: O nome do cookie.
$valor: O valor do cookie. Esse valor é guardado no computador do cliente; não
guarde informação sensível. Supondo que o nome é 'nomedocookie', o valor pode
ser lido través de $_COOKIE['nomedocookie'].
$expira: O tempo para o cookie expirar. Esse valor é uma timestamp Unix,
portanto é o número de segundos desde a época (epoch). Em outras palavras, você
provavelmente irá utilizar isso com a função time() mais o número de segundos
que você quer que ele expire. Ou você pode utilizar a função mktime().
time()+60*60*24*30 irá configurar o cookie para expirar daqui a 30 dias. Se
configurado para 0, ou omitido, o cookie irá expirar ao fim da sessão (quando o
navegador fechar).
$caminho: O caminho no servidor onde o cookie estará disponível. Se
configurado para '/', o cookie estará disponível para todo o domínio. Se
configurado para o diretório '/foo/', o cookie estará disponível apenas dentro do
diretório /foo/ e todos os subdiretórios como /foo/bar do domínio. O valor padrão
é o diretório atual onde o cookie está sendo configurado.
$domínio: O domínio para qual o domínio estará disponível. Para fazer com que
ele esteja disponível para todos os subdomínios de example.com então você deve
configurar ele para '.example.com'. O não é obrigatório, mas faz com que seja
compatível com mais navegadores. Configurando ele para www.example.com ele
35
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
fará com que o cookie esteja disponível somente para o subdomínio www. Veja a
especificação de 'tail matching' em » spec para maiores detalhes.
$seguro: Indica que o cookie só poderá ser transmitido sob uma conexão
segura HTTPS do cliente. Quando configurado para TRUE. o cookie será enviado
somente se uma conexão segura existir. O padrão é FALSE. No lado do servidor, fica
por conta do programador enviar esse tipo de cookie somente sob uma conexão
segura (ex respeitando $_SERVER["HTTPS"]).
$somente http: Quando for TRUE o cookie será acessível somente sob o
protocolo HTTP. Isso significa que o cookie não será acessível por linguagens de
script, como JavaScript. Essa configuração pode efetivamente ajudar a reduzir ou
identificar roubos através de ataques do tipo XSS (entretanto ela não é suportada
por todos os browsers). Foi adicionada no PHP 5.2.0. TRUE ou FALSE.
Crie uma página com um formulário da seguinte forma:
Figura 14 - Menu com uso de cookies
<form id="form1" name="form1" method="post"
action="aula_5_cookie.php">
<label>
Qual tecnologia você prefere?<br />
<select id="interesse" name="interesse">
<option>Selecione</option>
36
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
<option
value="Acessibilidade">Acessibilidade</option>
<option
value="Usabilidade">Usabilidade</option>
<option value="XML">XML</option>
<option value="XHTML">XHTML</option>
</select>
</label>
<p>
<label>
<input type="submit" name="Submit" value="Não
clique nesse botão!" />
</label>
</p>
</form>
Agora crie uma página para receber o Cookie com o seguinte nome:
aula_5_cookie.php – veja a action do formulário.
Escreva o seguinte código na linha 1:
<?php
$assunto = $_POST["interesse"];
setcookie('interesse', $assunto, time()+3600*24);
?>
No body.
<?php
if(isset($_COOKIE['interesse'])) {
echo"O cookie 'INTERESSE' foi criado com sucesso!";
}else{
echo"O cookie 'INTERESSE' não foi criado, vc aprontou alguma
cagada!";
}
?>
</p>
<p><?php echo $_COOKIE['interesse']; ?></p>
<?php
switch($_COOKIE['interesse']){
case'Acessibilidade':
echo'
<html>
<head>
<title>Acessibilidade</title>
</head>
<body>
<h1>Acessibilidade</h1>
<h2>Como garantir que os usuários de um site
poderão ter acesso à todas as opções
da página?</h2>
<ul>
<li>Você construiu um site pensando que nem todos os
usuários possuem mouse?</li>
37
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
<li>A resolução da tela é a mesma para
todos?</li>
<li>A tecnologia definida é acessível
à todos?</li>
<li>As empresas permitem os usuários acessar seus
arquivos?</li>
</ul>
<p> </p>
</body>
</html>';
break;
case'Usabilidade':
echo'
<html>
<head>
<title>Usabilidade</title>
</head>
<body>
<h1>Usabilidade</h1>
<h2>Você planejou, construiu e verificou todos os
links, mas as pessoas usam? </h2>
<ul>
<li>Todas as páginas possuem um tema definido? </li>
<li>Seus links estão acessiveis, com fácil
leitura e bem definidos? </li>
<li>Os usuários têm visitado? Por que? </li>
<li>Os usuários não visitam? Por que??? </li>
</ul>
<p> </p>
</body>
</html>';
break;
case'XML':
echo'
<html>
<head>
<title>XML</title>
</head>
<body>
<h1>XML</h1>
<h2>A Microsoft vai conseguir impor seu padrão? </h2>
<ul>
<li>Extended Markup Language </li>
<li>Por quê tantas empresas têm disputado a
adoção deste padrão? </li>
<li>Como funciona? </li>
<li>Para quê serve? </li>
</ul>
<p> </p>
</body>
</html>';
break;
case'XHTML':
echo'
<html>
<head>
38
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
<title>XHTML</title>
</head>
<body>
<h1>XHTML</h1>
<h2>Por quê fundir as linguagens? </h2>
<ul>
<li>Extensible HyperText Markup Language</li>
<li>O XHTML é mais limpo? </li>
<li>Como funciona? </li>
<li>Para quê serve? </li>
</ul>
<p> </p>
</body>
</html>';
break;
default:
echo'Nenhum assunto foi escolhido, clique <a
href="aula_5.php">aqui</a> para escolher';
break; } ?>
Nossa. Que divertido... E o que, de fato bom, posso fazer com cookies?
Vamos criar um sistema de login e senha com cookies!
Login e
Senha
Valida
Cookie
Dados
certos
?
39
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Aula 5
Criação e leitura de arquivos
Criar arquivos
Entre as inúmeras vantagens do PHP, a capacidade de se criar um arquivo, ler ou até
mesmo manipular arquivos no computador do cliente, é evidente e perigosa.
Além dos Cookies, o php pode criar arquivos de diversas formas e extensões.
Para criar um arquivo precisamos primeiro conhecer as funções.
Veja a tabela 1:
mode Descrição
'r' Abre somente para leitura; coloca o ponteiro do arquivo no começo do arquivo.
'r+' Abre para leitura e escrita; coloca o ponteiro do arquivo no começo do arquivo.
'w' Abre somente para escrita; coloca o ponteiro do arquivo no começo do arquivo e
reduz o comprimento do arquivo para zero. Se o arquivo não existir, tenta criá-lo.
'w+' Abre para leitura e escrita; coloca o ponteiro do arquivo no começo do arquivo e reduz
o comprimento do arquivo para zero. Se o arquivo não existir, tenta criá-lo.
'a' Abre somente para escrita; coloca o ponteiro do arquivo no final do arquivo. Se o
arquivo não existir, tenta criá-lo.
'a+' Abre para leitura e escrita; coloca o ponteiro do arquivo no final do arquivo. Se o
arquivo não existir, tenta criá-lo.
'x'
Cria e abre o arquivo somente para escrita; coloca o ponteiro no começo do arquivo.
Se o arquivo já existir, a chamada a fopen() falhará, retornando FALSE e gerando um
erro de nível E_WARNING. Se o arquivo não existir, tenta criá-lo. Isto é equivalente a
40
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
mode Descrição
especificar as flags O_EXCL|O_CREAT para a chamada de sistema open(2).
'x+'
Cria e abre o arquivo para leitura e escrita; coloca o ponteiro no começo do arquivo. Se
o arquivo já existir, a chamada a fopen() falhará, retornando FALSE e gerando um
erro de nível E_WARNING. Se o arquivo não existir, tenta criá-lo. Isto é equivalente a
especificar as flags O_EXCL|O_CREAT para a chamada de sistema open(2).
Tabela 5 - Parâmetros de criação e leitura
Para cria r um arquivo proceda assim:
Crie um formulário, com o método POST, que envie os dados para a página
leitor.php.
41
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
O código para se criar um arquivo é simples.
Figura 15 - Formulário de criação de arquivos
42
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
<?php
//crie um avariável para receber os dados do formulário.
$texto = $_POST['texto'];
//crie uma variável para armazenar os dados da função fopen.
/*a Função Open, fopen pede o nome do arquivo, “texto.htm” e depois o método 'w', de write, que serve para escrever no
arquivo, veja a tabela.*/
$novoarquivo = fopen("texto.htm", "w");
/*Função Write com a variável que criamos na linha acima e o conteúdo do arquivo com a variável que contém o que foi escrito
no formulário.*/
fwrite($novoarquivo,"$texto");
//Função Close para encerrar o comando de escrita. fclose($novoarquivo);
?>
Ler arquivos Dentro do <body>.
<?php
//caminho do arquivo, pode conter diret´rios no computador ou
no servidor. Onde for gravado.
$local = "teste.html";
//abre o arquivo para leitura ("r") - read
$leitura = fopen($local,"r");
//coloca o conteúdo em uma única variável
$arquivo = fread($leitura, filesize($local));
//fecha o arquivo
fclose($leitura);
//imprime o arquivo na tela
echo "$arquivo";
?>
43
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Aula 6
Upload de arquivos Crie um formulário para inclusão da imagem.
<form id="form1" name="form1" method="post" action=""
enctype="multipart/form-data">
<label>
Logo do site
<input name="logosite" type="file" id="logosite" />
</label>
<label>
<input type="submit" name="submit" id="submit" value="Gravar"
/>
</label>
</form>
Explicando...
Ao criar o formulário, adicione o parâmetro enctype="multipart/form-data", que
será o responsável pelo envio de arquivo e não somente o texto.
Mude o tipo do do campo de text para file. Procure a linha <input
name="logosite" type="text" id="logosite" />. Mude para <input
name="logosite" type="file" id="logosite" />.
Figura 16 - Formulário de upload de arquivos
Na própria página do formulário, escreva o script php abaixo, que será o
responsável pelo upload do arquivo.
$dir = "img";
$arq = $_FILES['logosite']['name'];
$arq_temp = $_FILES['logosite']['tmp_name'];
move_uploaded_file($arq_temp,"$dir/$arq");
Explicação:
44
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
A variável $dir armazena o nome do diretório que será armazenado o arquivo.
A variável $arq recolherá o nome do campo do formulário, no entanto a função
$_FILES recolhe os dados do campo logosite que conterá todo o endereço do
computador e o segundo parâmetro ['name'] armazenará somente o nome do
arquivo e não seu endereço.
A variável $arq_temp armazenará o arquivo e criará uma cópia temporária que será
enviada e a função move_uploaded_file fará a movimentação para o host, bem
como a substituição do nome temporário pelo original.
Mas nem tudo são flores! E se um usuário fizer o upload de um arquivo de nome já
existente? Você fará a verificação se o nome existe? Nada disso! Crie nomes!
Resolva esta!
45
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Aula 7
Sessão Vamos criar uma sessão, isto é, vamos armazenar os dados no servidor, diferente do
cookie que é armazenado no cliente (e manipulável), a sessão é armazenada no
servidor enquanto o navegador estiver aberto.
Crie uma página chamada sessao.php com um formulário para se inserir um texto.
<form name="form1" method="post" action="">
<label for="textfield"></label>
<input type="text" name="usuario" />
<input type="submit" name="submit" value="Enviar" />
</form>
Nesta mesma página, vamos criar a sessão.
<?php
if(isset($_POST['submit'])){
$usuario = $_POST['usuario'];
if($usuario!=""){
session_start();
$_SESSION['usuario'] = $_POST['usuario'];
}
}
?>
Script 7 - Criar sessão
Vamos explicar.
Se (if) clicar (isset) no botão submit ($_POST['submit'), receba os dados do
campo usuário. Se ele não for vazio (!=””), crie a sessão (session_start()). Nesta
sessão chamada usuário ($_SESSION[‘usuario’]) receba os dados do campo
usuário ($_POST[‘usuario’]).
Agora vamos verificar se s sessão realmente foi criada. Crie a página
sessao_criada.php.
<body>
<?php
session_start();
$usuario = $_SESSION['usuario'];
echo "Bem vindo $usuario";
?>
</body>
</html>
Script 8 - Receber dados da sessão
46
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Perfeito! Funciona!!!
47
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Aula 8 Orientação a Objetos
<?php
class Leitura{
function inicio(){
$arqCont1 = 'dados/d1.txt';
$abreCont1 = fopen($arqCont1,"r");
$lerCont1 = fread($abreCont1, filesize($arqCont1));
fclose($abreCont1);
echo '<td><h1>'.$lerCont1.'</h1></td>';
$arqCont2 = 'dados/d2.txt';
$abreCont2 = fopen($arqCont2,"r");
$lerCont2 = fread($abreCont2, filesize($arqCont2));
fclose($abreCont2);
echo '<td><a href=\'index.php\'><img width=\'150\'
src=\'img/'.$lerCont2.'\' alt=\''.$lerCont1.'\'
title=\''.$lerCont1.'\' /></a></td>';
}
function lerTitulo(){
$arqNome = 'dados/d1.txt';
$abreNome = fopen($arqNome,"r");
$lerNome = fread($abreNome, filesize($arqNome));
fclose($abreNome);
if(isset($_GET['i'])){
$i = $_GET['i'];
$arqLink[$i] = 'links/l'.$i.'.txt';
$abreLink[$i] = fopen($arqLink[$i],"r");
$lerLink[$i] = fread($abreLink[$i],
filesize($arqLink[$i]));
fclose($abreLink[$i]);
echo "$lerNome - $lerLink[$i]";
}else{
echo $lerNome;
}
}
function lerEmpresa(){
for($i=3;$i<=3;$i++){
$arqCont[$i] = 'dados/d'.$i.'.txt';
$abreCont[$i] = fopen($arqCont[$i],"r");
$lerCont[$i] = fread($abreCont[$i],
filesize($arqCont[$i]));
fclose($abreCont[$i]);
echo '<p>'.$lerCont[$i].'</p>';
}
}
function lerLinks(){
//$home = $_GET['h'];
//$links = $_GET['l'];
$num_links = count(scandir("links"));
$num_docs = count(scandir("docs"));
for($i=1;$i<$num_links-1;$i++){
$arqCont[$i] = 'links/l'.$i.'.txt';
$abreCont[$i] = fopen($arqCont[$i],"r");
$lerCont[$i] = fread($abreCont[$i],
filesize($arqCont[$i]));
fclose($abreCont[$i]);
$navega = $i + 1;
48
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
echo '<a
href=\'index.php?i='.$i.'&f='.$navega.'&l='.$i.'\'>'.$lerCont[$i].'</a
> | ';
//echo $lerCont[$i];
}
}
function lerLinksSelect(){
$num_links = count(scandir("links"));
$num_docs = count(scandir("docs"));
for($i=1;$i<$num_links-1;$i++){
$arqCont[$i] = 'links/l'.$i.'.txt';
$abreCont[$i] = fopen($arqCont[$i],"r");
$lerCont[$i] = fread($abreCont[$i],
filesize($arqCont[$i]));
fclose($abreCont[$i]);
echo "<option value='l$i.txt'>$lerCont[$i]</option>";
}
}
function lerConteudo(){
if(isset($_GET['i'])){
$inicio = $_GET['i'];
$fim = $_GET['f'];
for($i=$inicio;$i<=$fim;$i++){
$arqCont[$i] = 'docs/c'.$i.'.txt';
$abreCont[$i] = fopen($arqCont[$i],"r");
$lerCont[$i] = fread($abreCont[$i],
filesize($arqCont[$i]));
fclose($abreCont[$i]);
echo '<td>'.nl2br($lerCont[$i]).'</td>';}
}else{
for($i=1;$i<=2;$i++){
$arqCont[$i] = 'docs/c'.$i.'.txt';
$abreCont[$i] = fopen($arqCont[$i],"r");
$lerCont[$i] = fread($abreCont[$i],
filesize($arqCont[$i]));
fclose($abreCont[$i]);
echo '<td>'.nl2br($lerCont[$i]).'</td>';}
}
}
}
//$conteudo = new Leitura;
//$conteudo->lerConteudo();
//$conteudo->lerEmpresa();
//$conteudo->lerLinks();
?>
Continua...
Index.php
<?php include("motor.php");?>
<?php include("log.php");?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title><?php $texto = new Leitura; $texto-
>lerTitulo();?></title>
<link rel="stylesheet" href="estilo.css" type="text/css" />
</head>
49
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
<body>
<div class="topo">
<table><tr>
<?php
$texto = new Leitura;
$texto->inicio();
?>
</tr></table>
</div>
<div class="menu">
<?php
$texto = new Leitura;
$texto->lerLinks();
?>
</div>
<div class="conteudo">
<table>
<tr>
<?php
$texto = new Leitura;
$texto->lerConteudo();
?>
</tr>
</table>
</div>
<div class="rodape">
<?php
$texto = new Leitura;
$texto->lerEmpresa();
?>
<p><a href="login.php">Login</a></p>
</div>
</body>
</html>
50
Prof. Erwin Alexander Uhlmann – www.institutosiegen.com.br
Bibliografia HOGAN, Brian P. Web Design para Desenvolvedores. Rio de Janeiro. Editora Ciência
Moderna, 2011.Pressman, Roger S. Engenharia Web. Rio de Janeiro. LTC, 2009.
PRESSMAN, Roger S. Engenharia Web. Rio de Janeiro. LTC, 2009.
CYBIS, Walter. Ergonomia e Usabilidade: conhecimentos, métodos e aplicações. São
Paulo. Novatec, 2007.
SILVA, Maurício Samy. Construindo sites com CSS e (X)HTML: sites controlados por
folhas de estilo em cascata. São Paulo. Novatec, 2008.
POWERS, Shelley. Aprendendo Javascript. São Paulo. Novatec, 2010.
SILVA, Maurício Samy. Criando sites com HTML: sites de alta qualidade com HMTL e
CSS. São Paulo. Novatec, 2008.