Programação Web
Programação Web
Programação Web
Web
Jean Eduardo Glazar
Ministério da Educação
Prezado estudante,
Você faz parte de uma rede nacional pública de ensino, a Escola Técnica
Aberta do Brasil, instituída pelo Decreto nº 6.301, de 12 de dezembro 2007,
com o objetivo de democratizar o acesso ao ensino técnico público, na mo-
dalidade a distância. O programa é resultado de uma parceria entre o Minis-
tério da Educação, por meio das Secretarias de Educação a Distancia (SEED)
e de Educação Profissional e Tecnológica (SETEC), as universidades e escolas
técnicas estaduais e federais.
O e-Tec Brasil leva os cursos técnicos a locais distantes das instituições de en-
sino e para a periferia das grandes cidades, incentivando os jovens a concluir
o ensino médio. Os cursos são ofertados pelas instituições públicas de ensino
e o atendimento ao estudante é realizado em escolas-polo integrantes das
redes públicas municipais e estaduais.
Nosso contato
etecbrasil@mec.gov.br
3 e-Tec Brasil
Indicação de ícones
5 e-Tec Brasil
Sumário
Palavra do professor-autor 9
Apresentação da disciplina 11
Projeto instrucional 13
7 e-Tec Brasil
Aula 5 – Gerenciando sessões 73
5.1 Criando uma sessão 74
5.2 Manipulando as variáveis de uma sessão 74
5.3 Excluindo a sessão 75
5.4 Caso de uso: autenticando usuários 75
5.4.3 Fazer logout 78
Referências 89
Currículo do professor-autor 90
Olá! Estudante!
Apesar de se tratar de um curso a distância, você não está sozinho nesta jor-
nada. É importante que você conheça toda a equipe envolvida neste curso:
coordenadores, professores especialistas, tutores a distância e tutores presen-
ciais, porque quando precisar de algum tipo de ajuda saberá a quem recorrer.
Além disso, temos à nossa disposição um ambiente virtual cheio de recursos
que podem nos auxiliar neste processo.
Um grande abraço!
9 e-Tec Brasil
Apresentação da disciplina
Várias são as linguagens para criação de sistemas web. Vamos nos focar na
linguagem PHP, por ser uma linguagem de fácil aprendizado, comparada
com as demais, e bastante popular.
Por fim, veremos uma arquitetura para sistemas web como forma de orga-
nizarmos melhor as páginas de um sistema, com a finalidade de obtermos
produtividade no desenvolvimento e facilitarmos a manutenção posterior.
11 e-Tec Brasil
Projeto instrucional
CARGA
OBJETIVOS DE
AULA MATERIAIS HORÁRIA
APRENDIZAGEM
(horas)
Caderno impresso.
Caderno impresso.
Conhecer como o PHP interage com o
banco de dados. Ambiente Virtual de Ensino-
-aprendizagem (AVEA).
3. Acesso, inserção
Construir páginas web para inserir
e listagem no
dados em um banco de dados. Ambiente de programação web 10
banco de dados
(NetBeans).
MySQL
Construir páginas web para recuperar
informações do banco de dados. Gerenciador de banco de dados
(MySQL).
13 e-Tec Brasil
CARGA
OBJETIVOS DE
AULA MATERIAIS HORÁRIA
APRENDIZAGEM
(horas)
Caderno impresso.
Caderno impresso.
Aprender para que serve uma sessão em
um sistema web e como programá-la. Ambiente Virtual de Ensino-
-aprendizagem (AVEA).
Aprender a como utilizar a sessão para
5. Gerenciando
autenticar usuários. Ambiente de programação web 10
sessões
(NetBeans).
Construir páginas web para autenticar
os usuários. Gerenciador de banco de dados
(MySQL).
Caderno impresso.
Conhecer o padrão de desenvolvimento
6. Caso de uso: de sistemas web MVC.
Ambiente Virtual de Ensino-
desenvolvendo
-aprendizagem (AVEA).
uma aplicação Construir um sistema web no padrão 10
utilizando o padrão MVC.
Ambiente de programação web
MVC
(NetBeans).
Objetivos
Passaremos a programar para web sob a visão do servidor. Para isso, utiliza-
remos a linguagem PHP. Como pré-requisito, é necessário o conhecimento
de HTML, principalmente de formulário, que será utilizado para enviar dados
para o servidor. Portanto é extremamente importante que você revise o con-
teúdo visto em Fundamentos do Desenvolvimento Web.
1.2 Instalação
Para testar as páginas PHP, não basta dar um duplo clique nos “arquivos.
servidor web
É um programa de computador
php”, como se faz com os .htm ou .html. É necessário ter um servidor web
responsável por aceitar pedidos configurado para isso. Um dos servidores web mais utilizados é o Apache.
HTTP de clientes, geralmente
os navegadores, e servi-los
com páginas de respostas (em
HTML) incluindo dados, imagens,
1.2.1 Instalação no Windows
sons e links. Esse programa Você pode instalar o Apache e o PHP separados. Para isso basta pegar os
disponibiliza um local específico
no computador servidor (site)
arquivos de instalação nos respectivos sites oficiais.
para armazenar e processar as
páginas de resposta.
Porém, configurações manuais deverão ser feitas para os dois funcionarem
Apache perfeitamente.
É o resultado de um esforço
coletivo de vários colaboradores,
para o desenvolvimento de um
software gratuito, robusto e com
A forma mais fácil de instalar é utilizar pacotes que instalam e configuram
qualidade, para a implementação todos os programas necessários para o desenvolvimento de páginas web de
de um servidor HTTP. É o servidor
web mais usado no mundo. É uma única vez. Um conjunto muito utilizado consiste do Apache (servidor
capaz de executar códigos em web), MySQL (banco de dados) e PHP (linguagem para as páginas web
PHP, Perl, Shell Script, ASP, dentre
outros. Sua utilização mais dinâmicas), conhecido como AMP (inicial de cada produto). Quando esses
conhecida é a que combina o
Apache com a linguagem PHP e
produtos são instalados no Linux, chamamos de LAMP. Quando são instala-
o banco de dados MySQL. dos no Windows, chamamos de WAMP.
C:\Arquivos de programas\EasyPHP-5.3.2\www
No Linux, o diretório é:
/var/www
Agora vamos criar um arquivo com extensão .php (teste.php, por exemplo)
na pasta base www. Abra-o com qualquer editor de texto e digite:
teste.php é o nome do arquivo PHP que você criou. localhost significa que
o seu navegador irá procurar o arquivo no seu próprio computador, no dire-
tório www configurado na instalação. Na internet, como o servidor está em
outro local, substitui-se localhost pelo endereço web da empresa, como por
exemplo: http://www.empresaxyz.com.br/cadastro.php
Para diferenciar o código PHP dentro da página em HTML, podem ser utili-
zados os delimitadores descritos na Figura 1.5 a seguir.
1) <?php 2) <?
Comandos; Comandos;
?> ?>
3) <script
4) <%
language=”php”>
Commandos;
Comandos;
%>
</script>
Para utilizar a forma simplificada, bem como o estilo ASP, o arquivo de configu-
ração php.ini deve ser alterado, pelos campos short_open_tags e asp_tags,
respectivamente.
A Figura 1.6 mostra a estrutura de uma página HTML com o código PHP
embutido.
Pode haver vários blocos de PHP misturados com vários trechos de HTML.
Todos os arquivos devem ser salvos com a extensão .php no diretório www
da instalação do servidor web. Crie subdiretórios dentro do www para me-
lhor organizar seus arquivos.
Após criarmos o projeto, ele passa a ser exibido na aba “Projetos”, que
fica no canto esquerdo do NetBeans. Para criar os arquivos em PHP, siga os
seguintes passos:
Você também pode, e deve, criar subdiretórios dentro do seu projeto, para
organizar melhor as suas páginas.
Uma arquitetura para
desenvolvimento web que
organiza a programação Para criar subdiretórios no NetBeans, siga os passos:
das páginas de um sistema,
com o objetivo de aumentar
a produtividade e facilitar a 1. Clique com o botão direito do mouse no nome do projeto.
manutenção, será vista na Aula 6.
Quando for criar novas páginas PHP, clique em cima do diretório no qual
deseja colocar as páginas.
nomedoarquivo.php – nome que você deu no seu arquivo PHP (no nosso
exemplo, PrimeiraPagina.php).
Nesse exemplo foi criado o subdiretório ProgWeb e dentro dele foi colocada
a página cadcliente.php.
• Strings;
• Array (vetores);
• Objetos*.
Os nomes das variáveis devem ser criados com um ‘$’ seguido de uma string
que deve ser inicializada por uma letra ou ‘_’. Exemplos:
$x = 10.4;
$frase = “Exemplo de variável string”;
$_cont = 0;
1.6 Operadores
Os principais operadores em PHP estão descritos nos quadros a seguir: os
operadores aritméticos podem ser vistos no Quadro 1.4, os operadores
lógicos estão descritos no Quadro 1.5, os operadores de comparação
são mostrados no Quadro 1.6 e demais operadores importantes estão no
Quadro 1.7 a seguir.
+ Adição
- Subtração
* Multiplicação
/ Divisão
% Módulo (resto da divisão)
Fonte: Elaborado pelo autor
And E
Or Ou
Xor Ou exclusivo
! Negação
&& E
|| Ou
Fonte: Elaborado pelo autor
== Igual a
!= Diferente de
< Menor que
> Maior que
<= Menor ou igual a
>= Maior ou igual a
Fonte: Elaborado pelo autor
• Concatenação de strings
= Atribuição
++ Incremento (soma 1)
-- Decremento (subtrai 1)
Fonte: Elaborado pelo autor
Em que:
1.8 Array
Os arrays são estruturas para armazenar valores que precisam ser indexados.
Diferentemente do C, em que os índices são apenas números inteiros e con-
secutivos, em PHP os índices podem ser de vários tipos. Mesmo se forem in-
teiros não precisam ser consecutivos. Os valores armazenados não precisam
ser do mesmo tipo. Veja um exemplo na Figura 1.16, onde print_r mostra
todos os elementos do array.
Crie um array e preencha com alguns estados, indexados pela sigla, como
no programa na Figura 1.16. Faça uma função que receba esse array e uma
sigla como parâmetro e mostre o nome do estado.
1.9 Funções
As funções em PHP seguem o mesmo princípio das de outras linguagens. A
diferença é que como não precisamos declarar os tipos, a lista de parâmetros
possui apenas o nome das variáveis. As funções que retornam valor também
não precisam informar o tipo de retorno. A sintaxe é:
Resumo
Nesta primeira aula vimos como instalar e configurar o servidor web Apache
e o módulo PHP. Aprendemos a sintaxe do PHP e com isso criamos nossa
Leituras complementares: primeira página web, ainda sem muitos recursos e sem interatividade. Na
SOARES, Walace. PHP 5:
conceitos, programação e próxima aula entenderemos como os dados de um formulário são manipu-
integração com banco de dados. lados em um servidor com PHP, aprenderemos a enviar um arquivo para o
3ª ed. São Paulo: Érica, 2007.
GUTMANS, Andi; BAKKEN, Stig servidor a partir de uma página web e conheceremos a forma de gerenciar
Saether; RETHANS, Derick. as informações de uma conexão com o servidor.
PHP 5: programação ponderosa.
Rio de Janeiro: Alta Books, 2005.
Objetivos
• method – método de envio de dados para o servidor. Dois tipos são per-
mitidos GET e POST. Mais detalhes a seguir.
A diferença entre GET e POST está na forma como os dados são enviados
para o servidor. No método POST, os dados são enviados ocultos. É o método
recomendado quando se utiliza formulário.
http://www.xxx.com/cons.php?nome=João&cidade=Colatina
Nesse exemplo foi utilizado o método GET, que chama o programa cons.php,
passando o campo nome igual a ‘João’ e o campo cidade igual a ‘Colatina’.
Um exemplo mais real pode
ser visto no site do Google.
Depois que você fizer uma
pesquisa qualquer, verifique
o endereço que aparece.
2.2 Obtendo e validando os dados
Perceba que existem vários Para enviar dados para o servidor, vamos criar um formulário como o da
pares ‘campo=valor’ que Figura 2.2 a seguir. Preste atenção no nome de cada campo. Esse nome será
são passados para o servidor,
mas que não têm formulário usado no programa PHP. Veja também o atributo action do <FORM>, ele
para digitar.
informa o nome do arquivo PHP.
Se o método de envio for o POST, os nomes dos campos serão aqueles in-
formados no atributo name dos comandos HTML. Se o envio for por GET,
então o nome dos campos serão aqueles especificados no endereço pelo
par ‘campo=valor’.
Vamos agora criar um arquivo PHP com o mesmo nome dado no action do
formulário (no exemplo cadcliente.php). Nessa página, vamos capturar os da-
dos enviados e mostrar uma página de resposta com esses dados. Para pegar
cada campo, devemos informar qual o array que contém os dados ($_POST ou
$_GET) e entre colchetes [ ] o nome do campo, definido no formulário HTML.
A Figura 2.3 mostra o código que recebe os dados e verifica se alguns cam-
pos estão preenchidos; caso não estejam, mostra uma mensagem de erro e,
por último, exibe na tela os dados informados. Mais adiante aprenderemos
a inserir esses dados no banco de dados.
A Figura 2.4 mostra a página exibida pelo programa acima, com os valores
digitados no formulário.
Funções para validar datas,
CPF, e-mail, etc. são facilmente
encontradas na internet. Veja
alguns links:
http://codigofonte.uol.com.br/
codigos/php/validacao
http://www.revistaphp.com.br
http://www.criarweb.com/php
http://phpbrasil.com
http://www.codigofonte.net/
scripts/php.
$arquivo = $_FILES[‘nome_do_campo’];
A variável $arquivo foi utilizada para receber o arquivo. A partir desse comando,
sempre que pretendermos trabalhar com o arquivo, utilizaremos a variável $ar-
quivo. Diversas informações podem ser obtidas a partir dessa variável, como:
códigos de erros, se ocorrerem, tamanho, tipo e o nome temporário do arquivo.
$arquivo[‘error’]
$arquivo[‘type’] e $arquivo[‘size’]
move_uploaded_file($arquivo[‘tmp_name’], destino)
em que:
Se a cópia for realizada com sucesso, esse comando retorna true. Caso ocor-
ra algum erro, como por exemplo, o diretório de destino não existe ou não
tem permissão de gravação, essa função retornará false.
2.4 Headers
Os headers servem para o gerenciamento da conexão entre o PHP e o
navegador do usuário, podendo trocar informações contidas no cabeçalho
HTTP de uma página.
header(cabeçalho)
Uma segunda forma de usar o header é para redirecionar para outra página.
Esse comando é muito útil para, ao final de uma página puramente em PHP,
redirecionar para outra página padronizada de resposta ou de erro. Usa-se o
comando “Location” e logo em seguida o nome da página que se pretende
redirecionar. Veja um exemplo na Figura 2.9:
Com os conhecimentos desta aula você tem a capacidade de criar páginas web
dinâmicas, nas quais, a partir de um formulário em HTML em um navegador, o
usuário possa enviar dados para um programa no servidor e receber uma men-
sagem. Esse fluxo de informação é a base de todas as páginas web dinâmicas.
Objetivos
Um dos bancos de dados mais utilizados com o PHP é o MySQL. O PHP pos-
sui um módulo específico para esse banco. Utilizaremos o MySQL em nossos
exemplos por ser um banco simples de operar e utilizar pouco processamen-
to e memória, em comparação com os outros.
Clientes
idClientes: INTEGER
Estados_sigla: CHAR(2) (FK)
nome: VARCHAR(100)
cpf: VARCHAR(14)
endereço: VARCHAR(100) Rel_01 Estados
dtNasc: DATE sigla: CHAR(2)
sexo: CHAR(1) nome: VARCHAR(50)
login: VARCHAR(20)
senha: VARCHAR(50)
cinema: TINYINT(1)
musica: TINYINT(1)
info: TINYINT(1)
Figura 3.1: Tabelas a serem utilizadas nos exemplos
Fonte: Equipe produção CEAD/IFES (2011)
onde:
Podem ocorrer alguns erros ao se tentar abrir a conexão. Os casos mais co-
muns são: não encontrar o servidor ou o usuário e a senha não terem permis-
são de acesso ao banco. Caso ocorra algum erro, o ideal seria mostrar uma
mensagem de erro e interromper a execução da página, já que sem a conexão
não poderemos acessar o banco de dados. Para isso usaremos a função die.
O ponto ‘.’ serve para juntar as duas mensagens, ou seja, ele é o operador
que concatena strings.
O die pode ser usado junto com outra função. Se der erro nessa função, o
die é chamado automaticamente. Utiliza-se o operador or para associar o
die a alguma função. O exemplo abaixo chama a função mysql_connect;
se der erro, automaticamente o die é executado para mostrar a mensagem
e interromper a execução da página.
mysql_select_db(“nome_banco”)
mysql_select_db(“ProgWebBD”);
Cada página que necessitar acessar o banco de dados deverá ter esses dois
comandos no início.
Como um sistema web geralmente possui várias páginas, replicar esses co-
mandos não será uma boa solução. Caso tenha que mudar algum parâme-
tro, como por exemplo o IP do servidor, todas as página sofrerão modifica-
ções. Um trabalho e tanto!
Sua sintaxe é:
include(“nome_arquivo.php”) ou
include_once(“nome_arquivo.php”)
include_once(“conexaobd.php”)
PRONTO!!! Uma vez conectado com o banco de dados, podemos realizar todas
as operações para manipulação dos dados: inserir, pesquisar, alterar e excluir. O
que precisaremos saber para realizar essas operações é sobre a linguagem SQL.
mysql_close(identificador)
mysql_query(comando, conexao)
em que:
mysql_insert_id(conexao)
O valor true corresponde ao 1; portanto, não teria problema ao passar para o SQL.
Logo, o dia é o pedaço da data que inicia na posição 0 e tem tamanho 2. O mês
é o pedaço da data que inicia na posição 3 e tem tamanho 2. O ano é o pedaço
da data que inicia na posição 6 e tem tamanho 4. O exemplo da Figura 3.7 mos-
tra o código em PHP, em que $dtNasc é a variável com a data a ser modificada.
Para testar nossa data, o exemplo ficaria conforme Figura 3.9 a seguir.
descrição – varchar(100)
preço – float
qtdeEstoque – inteiro
dataValidade – date
Crie o formulário para entrar com esses dados e a página em PHP para rece-
ber, validar e inserir os dados no banco de dados.
mysql_fetch_assoc(identificador)
$variavel_registro[“nome_campo”]
O nome do campo deve ser o mesmo usado no banco de dados. Letras mai-
úsculas são diferentes de minúsculas.
Para saber o total de registros retornados por uma consulta ao banco, usa-
mos o comando mysql_num_rows.
mysql_num_rows(identificador);
Toda página que contiver códigos em PHP deve ter a extensão .PHP. Portan-
to, o formulário de cadastro de clientes que antes era apenas HTML, deve ser
renomeado para a extensão PHP.
Antes de testar, você deve preencher a tabela Estados com algumas informações.
Com o conhecimento adquirido até agora, você é capaz de criar sites que
armazenam dados em um banco de dados. Você também tem a capacidade
de recuperar as informações do banco de dados e mostrá-las para o usuário.
A grande maioria dos sites utiliza algum banco de dados para manipular as
informações. Vimos um exemplo com o banco de dados MySQL, mas você
pode trabalhar com qualquer banco de dados.
Resumo
Nesta aula aprendemos a conectar com o banco de dados e a realizar as
operações para inserir e listar dados. Para realizar essas operações, vimos
Leituras complementares exemplos de páginas web dinâmicas com os comandos PHP. Na próxima aula
DAVIS, Michele E.; PHILLIPS,
Jon A. Aprendendo PHP e continuaremos trabalhando com bancos de dados. Aprenderemos a alterar
MySQL. Rio de Janeiro: Alta e excluir dados do banco.
Books, 2008.
MILANI, André. Construindo
aplicações web com PHP e Atividades de aprendizagem
MySQL. São Paulo: Novatec,
2010.
1. Crie uma página em PHP para listar todos os produtos da tabela criada na
NIEDERAUER, Juliano.
terceira Atividade de aprendizagem ( Atividade 3.1) desta aula.
Desenvolvendo websites com
PHP. 2ª ed. São Paulo: Novatec,
2004. 2. Crie a tabela Vendas no banco de dados MySQL com os seguintes campos:
WELLING, Luke; THOMSON,
Laura. PHP e MySQL: idVenda – inteiro autoincremento (chave primária)
desenvolvimento web. 3ª ed. Rio
de Janeiro: Elsevier, 2005.
idCliente – chave estrangeira da tabela Clientes
qtdeVendida – inteiro
preçoTotal – float
dataVenda – date
Depois crie uma página em PHP para receber os dados do formulário e inserir
na tabela Vendas
Objetivos
Quando o usuário clicar no botão Enviar, os dados para pesquisar serão en-
viados para a mesma página, que agora executará o PHP na parte de baixo
e mostrará o mesmo formulário, mais a tabela de resposta.
Porém, na primeira vez que chamarmos essa página, o PHP não pode ser
executado. Ele somente será executado da segunda vez em diante, ou seja,
quando ele receber os dados para a pesquisa. Para distinguir quando uma
página está recebendo uma informação ou não, usaremos o comando isset.
isset – retorna verdadeiro (true) se uma certa variável já foi declarada, e falso
(false), em caso contrário. Sua sintaxe é:
isset(variavel)
Na primeira vez que a página é chamada, não temos nenhuma variável. Na se-
gunda vez em diante, a página recebe as variáveis comboTipo e txtPesquisa
do formulário (via método POST ou GET). Podemos utilizar qualquer uma dessas
duas variáveis para testar quando o PHP será executado.
Dentro do PHP, obtém-se o tipo de pesquisa que será feita, por nome ou por
mês (comboTipo), e monta-se o SQL correspondente com o valor digitado em
txtPesquisa. O resultado é mostrado em forma de tabela. O programa da Fi-
gura 4.2 mostra o código completo da página de pesquisa pesqclientes.php.
Mesmo não sendo muito utilizado, em algumas situações pode ser necessá-
rio excluir informações do banco. Então vamos aprender a fazer isso: para a
operação de excluir do banco, mais uma vez o que muda é o comando SQL.
Os comandos em PHP são os mesmos: abrir a conexão, selecionar o banco e
executar o comando SQL.
Essa imagem possui um link (tag <A> do HTML) que aponta para a página
do excluir, chamada em nosso exemplo de “excluircliente.php”. Em cada
imagem devemos passar o código da informação que será excluída. Usare-
mos o método GET para envio de informações para a outra página (vejam
a seção 2.1). O dado que passaremos será o código do cliente. Essa variável
será chamada de “codigo”. O programa da Figura 4.4 mostra a página
“pesqclientes.php” alterada para adicionar na tabela de resultado, mais
uma coluna, que corresponde a imagem para a operação excluir. Percebam
que em cada linha da tabela, o link passará via GET, a variável codigo, que
receberá o id de cada cliente no banco de dados.
Porém, o que torna uma página web um pouco mais trabalhosa para alterar
dados, mas nem tanto, é que devemos ter as informações que serão altera-
das. Essas informações podem estar dispostas de diversas formas em uma
página. O mecanismo mais fácil e apropriado para isso é o formulário em
HTML. Então, ao escolher uma determinada informação para alterar, vamos
chamar uma página com o formulário já preenchido com as informações
anteriores. O usuário altera no formulário os dados que deseja e depois os
envia para outra página em PHP que atualizará o banco de dados.
GET
Pesquisar (mensagem) Banco de
Dados
Figura 4.7: Comando com o link no campo nome para chamar o alterar
Fonte: Elaborada pelo autor
strtotime(string_data)
date(formato, timestamp)
Coloca o atributo value e, entre aspas duplas, abre o PHP e pega a variável
correspondente com o echo. Veja a Figura 4.8 desta forma:
A expressão <?php echo $nome; ?> abre o código em PHP, pega a variável
$nome com o dado obtido do banco e coloca no atributo value do campo
do formulário.
Todo o código PHP deve ficar dentro das aspas duplas do atributo value.
O valor da chave primária de uma tabela não pode ser alterado, porque pode
causar inconsistência nos dados. Porém, ela é fundamental para o processo
de alterar, porque será por meio dela que o sistema identificará o registro a
ser alterado.
e) Mensagem de erro
Os dados serão enviados para a página PHP que atualizará o banco de da-
dos. Para saber se ocorreu erro ou não, redirecionaremos para a página com
o formulário novamente, informando a mensagem de erro ou sucesso. Essa
mensagem será enviada via o método GET, com o nome mensagem. Então,
em nossa página com o formulário, colocaremos o código PHP abaixo para
pegar a mensagem, caso tenha, e exibir junto com os dados. A Figura 4.14
mostra esta programação.
Após realizar uma alteração no banco de dados, como por exemplo, com o
comando UPDATE, é possível obter quantos registros foram alterados. Para
isso basta utilizar a função mysql_affected_rows.
mysql_affected_rows(conexao)
Com isso, concluímos o assunto sobre banco de dados. Vimos que o proces-
so de acesso e manipulação de dados independe da operação a ser feita. O
que define a operação que faremos com o banco de dados é o comando em
SQL, como o INSERT, SELECT, UPDATE, DELETE e outros mais. Pronto! Agora
você é capaz de criar um site completo, armazenando e recuperando dados
do banco de dados.
continua
conclusão
Fonte: Adaptado de Soares (2007)
Objetivos
A cada página visitada por um usuário, uma nova conexão é criada pelo Sessão
Uma sessão é basicamente
HTTP do navegador ao servidor. As informações da conexão anterior não são um meio de mantermos dados
mantidas. Entretanto, em diversas situações é desejável que certas informa- durante a navegação por várias
páginas de um site. Quando uma
ções sejam armazenadas temporariamente, entre uma página e outra. sessão é aberta, ela recebe um
identificador único, o que per-
mite ao PHP recuperar os dados
Como exemplo, pode-se citar a autenticação de login, que é feita em uma vinculados àquela sessão.
página e em todas as outras é necessário verificar se o usuário está logado,
além de permitir obter os dados desse usuário em todas as páginas.
session_start();
Para criar uma nova variável na sessão, basta colocar seu nome como índice
do array $_SESSION. O exemplo da Figura 5.1 mostra a criação da sessão
e das variáveis login, tipo e nome, obtidas do banco de dados, depois de
validar o login 3 e a senha do usuário.
unset($_SESSION[“nome_da_variável”])
session_destroy();
ERRO: GET
(mensagem)
SELECT
Banco de
Dados
Resumo
Nesta aula, você viu tudo o que precisava para criar sistemas web com aces-
so a banco de dados e autenticação de usuários. Porém a programação que
fizemos misturou várias linguagens em um único arquivo. Na próxima aula,
veremos uma metodologia para organizar melhor os arquivos, separando a
programação da parte visual (HTML e CSS), regras do negócio (PHP) e mani-
pulação do banco de dados (SQL). A seguir, você encontra na Tabela 5.1 os
principais comandos para trabalhar com sessões.
Atividades de aprendizagem
Implemente o processo de autenticação do usuário para todas as páginas
do seu sistema, como mostrado acima. Crie a página principal com os links
para todas as suas operações e para a operação sair (logout). Tente acessar
diretamente uma página, sem se logar, para ver o que acontece.
Objetivos
Chegamos à nossa última aula de nossa disciplina. Esta Aula é voltada, prin-
cipalmente, para aqueles que irão trabalhar com desenvolvimento de siste-
mas, seja web ou não.
6.1.1 Vantagens
Como o modelo MVC gerencia múltiplos visualizadores usando o mesmo
modelo, é fácil manter, testar e atualizar sistemas múltiplos. Como a parte
visual é separada do modelo de negócio, é possível alterar a parte visual
sem alterar o sistema todo.
• reaproveitamento de código;
• facilidade de manutenção;
• integração de equipes e/ou divisão de tarefas;
• camada de persistência independente;
• implementação de segurança;
• facilidade na alteração da interface da aplicação;
• aplicação escalável.
6.1.2 Desvantagens
As vantagens superam em muito as desvantagens, mas mesmo assim pode-
mos citar alguns pontos desfavoráveis:
MODELO
VISÃO
CONTROLADOR (Regras de
(Navegador)
Negócio)
Figura 6.1: Estrutura do MVC
Fonte: Equipe produção CEAD/IFES (2011)
Como vocês mesmo podem ter observado, algumas páginas possuem várias
linguagens misturadas, como: o HTML para a parte visual; o PHP para a vali-
dação e regras de negócio; e o SQL para a persistência de dados.
Portanto, vamos agora separar nossos códigos. Tudo que for para a interface
visual, seja para entrada de dados ou para a saída de dados (por exemplo,
mensagens de erro), será separado na camada da visão. Criaremos um ar-
quivo, chamado “controlador.php” que irá receber todas as requisições
da interface gráfica, fazer a validação dos dados e chamar as funções cor-
respondentes à camada do modelo, que por sua vez, ficarão em arquivos
separados. Na camada do modelo ficarão as funções em PHP referentes ao
que o sistema faz, ou seja, as suas operações.
Para que o sistema fique independente do banco de dados a ser usado, criare-
mos uma camada, chamada persistência, que fará o mapeamento das funções
do modelo para o banco de dados MySQL. Se o banco de dados mudar, o que
pode acontecer com qualquer sistema, basta alterarmos apenas as funções da
camada de persistência, sem ter que alterar todas as páginas do sistema.
Se for usar outro banco de dados, basta implementar outra camada, alterando o
código dentro de cada função. Por exemplo, se o banco fosse o PostgreSQL, as fun-
ções seriam: pq_connect, pg_select_bd, pg_query, etc.
6.3.3 Controlador
O controlador será apenas um arquivo PHP. Ele receberá da interface visual o
código da operação e os dados, e chamará a função correspondente da ca-
mada do modelo, retornando a mensagem de erro ou sucesso para a página
que originou a requisição.
Todas as páginas de interface visual deverão ter um campo que informa qual
operação o controlador chamará.
MVC. Vimos como organizar melhor o código para que o processo de de- http://www.dsc.ufcg.edu.
br/~jacques/cursos/map/html/
senvolvimento seja mais produtivo, com melhor qualidade e com menos er- arqu/mvc/mvc.htm
ros. Aprendemos a separar a programação da parte visual (HTML e CSS), http://codeigniterbrasil.com/
passos-iniciais/mvc-model-
regras do negócio (PHP) e manipulação do banco de dados (SQL). No fim, view-controller/
alteramos uma parte do nosso sistema web de exemplo para o padrão MVC. http://www.tiagolemos.com.
br/2009/07/10/o-que-e-o-mvc-
model-view-controller/
Caro estudante, chegamos ao final desta disciplina. Espero que você tenha
http://msdn.microsoft.com/en-
gostado e que seja capaz de desenvolver sistemas web. Diverti-me criando us/library/ms978748.aspx.
Atividades de aprendizagem
SOARES, Walace. PHP 5: conceitos, programação e integração com banco de dados. 3ª ed.
São Paulo: Érica, 2007.
GUTMANS, Andi; BAKKEN, Stig Saether; RETHANS, Derick. PHP 5: programação ponderosa.
Rio de Janeiro: Alta Books, 2005.
MELO, Alexandre Altair de; NASCIMENTO, Maurício G. F. PHP profissional. 2ª ed. São
Paulo: Novatec, 2007.
MILANI, André. Construindo aplicações web com PHP e MySQL. São Paulo:
Novatec, 2010.
NIEDERAUER, Juliano. Desenvolvendo websites com PHP. 2ª ed. São Paulo: Novatec, 2004.
WELLING, Luke; THOMSON, Laura. PHP e MySQL: desenvolvimento web. 3. ed. Rio
de Janeiro: Elsevier, 2005.
http://lattes.cnpq.br/4033155608776526