PHP Com Banco de Dados PDF
PHP Com Banco de Dados PDF
2
Centro de Educação à Distância do Ceará - CED
Consultor:
Renanh Gonçalves de Araujo
Coordenadores:
João Paulo de Oliveira Lima
Juliana Maria Jales Barbosa
Liane Coe Girão Cartaxo
Moribe Gomes de Alcântara
Valbert Oliveira Costa
1. Introdução ao PHP
1.1. PHP –Introdução.
PHP é uma sigla que significa PHP HyperText Preprocessor. O PHP é uma
linguagem de código-fonte aberta, muito utilizada na Internet e especialmente
criada para o desenvolvimento de aplicativos Web, possibilitando uma
interação com o usuário através de formulários, parâmetros da URL e links.
A diferença de scripts CGI escritos em outras linguagens como Perl ou C é que
ao invés de escrever um programa com um monte de instruções para imprimir
HTML, você escreve um arquivo HTML com algum código inserido, por
exemplo, imprimir um texto. O código PHP é delimitado por tags iniciais e finais
que lhe permitem pular pra dentro e pra fora do “modo
PHP”, como vemos abaixo:
<?php
?>
Figura 1 - Tag inicial
do PHP
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php
?>
</body>
</html>
O interpretador foi reescrito por Zeev Suraski e Andi Gutmans, e esse novo
interpretador foi a base para a versão 3, chamada de “PHP: Hypertext
Preprocessor”.
3. Após o script PHP ser interpretado, o que foi solicitado na requisição vai
ser processado, a requisição pode ser uma interação como o banco de
dados, com um arquivo ou o envio de um email, ou ate mesmo estas
operações ao mesmo tempo.
O método GET
Vamos entender melhor, você pode fazer uma requisição GET conectando
diretamente em algum servidor WEB, conectando através de um programa
chamado telnet, geralmente o servidor HTTP utiliza a porta 80. A resposta será
o código da página solicitada, como vemos abaixo.
telnet www.guia-aju.com.br 80
Trying 200.241.59.16...
Connected to www.guia-aju.com.br.
Escape character is '^]'.
GET /index.php3
(... página solicitada ...)
Connection closed by foreign host.
telnet www.guia-aju.com.br 80
Trying 200.241.59.16...
Connected to www.guia-aju.com.br.
Escape character is '^]'.
GET /index.php3?id=0024horas&tipo=Taxi
(... página solicitada ...)
Connection closed by foreign host.
O método POST
É usado quando queremos enviar dados a serem gravados em um banco de
dados ou uma pesquisa cujos dados sejam grandes o suficiente para não caber
na URL da página.
telnet www.guia-aju.com.br 80
Trying 200.241.59.16...
Connected to www.guia-aju.com.br.
Escape character is '^]'.
POST /index.php3
Accept */*
Content-type: application/x-www-form-urlencoded
Content-length:22
id=0024horas&tipo=Taxi
(... página solicitada ...)
Connection closed by foreign host.
As páginas PHP devem ser salvas no diretório raiz do servidor. Para testes
locais deve-se abrir o browser de internet, acessar a URL com o endereço local
(http://127.0.0.1) ou nome do domínio (http://localhost/), se na sua maquina
possuir um servidor web instalado será exibido uma pagina, caso contrario será
exibido um página de erro, informando que não conseguiu estabelecer uma
conexão com o servidor.
EasyPHP
EasyPHP é Ferramenta para web que simula um servidor um pacote pronto
para execução de um ambiente Apache + PHP + MySQL, pode ser baixado no
link http://www.easyphp.org, o diretório raiz para testar o seu projeto é
c:\Arquivos de programas\EasyPHP\www. Para acessar a página, deve-se
abrir o browser de Internet e digitar-se o nome do domínio (http://127.0.0.1) e o
nome da página com extensão *.php. Quando o EasyPHP está sendo
executado, aparece um ícone com uma letra “e” ao lado do relógio do
Windows.
Wamp Server
<?php
phpinfo();
?>
Constantes
São identificadores para valores simples. O seu conteúdo não muda
durante a execução do código. Para declararmos utilizamos a função define e,
por convenção, são escritas com letras maiúsculas e não usam o cifrão no
início.
As variáveis não podem ter o mesmo nome de instruções do PHP, que são
chamadas de palavras chaves, abaixo uma tabela com as palavras chaves.
Palavras-chave do PHP
or while this
Exemplo:
Incremento e Decremento
No caso de string só há um operador exclusivo:
++ Incremento
-- Decremento
Concatenação:
No caso de string só há um operador exclusivo:
. Concatenação
1.4.4.
Precedência de operadores
Operador Descrição
- ! ++ -- Negativo, negação, incremento e decremento
*/% Multiplicação, divisão e resto da divisão
+-. Adição, subtração e concatenação
> < >= <= Maior que, menor que, maior ou igual e menor ou igual
== != <> Igual e diferente
&& E
|| Ou
= += -= *= /= %= Operadores de atribuição
AND E com menor prioridade
XOR Ou exclusivo
OR Ou com menor prioridade
Comentários de código
É muito importante documentar o código, o código bem documentado auxilia
bastante na hora de uma manutenção, ou em um trabalho de equipe.
Comentários de uma linha:
Marca como comentário até o final da linha ou até o final do bloco de código
PHP – o que vier antes. Pode ser delimitado pelo caractere “#” ou por duas
barras “//”.
Exemplo 1:
Temos como delimitadores os caracteres “/*” para o início do bloco e “*/” para
o final do comentário.
Exemplo 2:
Observe que na linha 8 dentro da tag <form> definimos o método post para
enviar as informações, e no action o script PHP que será responsável pelo
Entendo o Script:
Na linha 3: usamos uma função
própria do PHP o require, ele é
responsável por requerer ou retornar
um script, neste exemplo usamos
para a mensagem que esta na linha 7 seja escrita no formulário de
apresentação, como é mostrado na imagem seguinte, sem esta instrução
quando o script fosse executado o retorno seria apenas a mensagem dentro do
calc_media.php.
Nas Linhas 4 e 5: Estamos declarando as variáveis que vão receber os
valores passados pelo formulário, onde elas recebem através $_POST, np1 e
np2 são os nomes dos inputs do formulário, que os valores dos mesmos estão
sendo passados para as variáveis $np1 e $np2.
Quando definimos $_POST estamos dizendo que os dados do formulário estão
sendo passados através deste método, logo se no <form> do meu formulário
esta method="post" para receber o post no outro script uso $_POST.
Na linha 6: Realiza-se o calculo $media = ($np1 + $np2) / 2, que na linha 7 é
passado para ser devolvido a página que foi solicitada.
Abaixo vemos o resultado final desta prática.
Exercício Prático
Agora vamos praticar um pouco, abaixo temos duas situações, para cada
uma delas temos que criar formulários web e scripts ao final exibir o
resultado ao usuário. Obs.: Lembre-se que teremos um formulário em PHP
para receber os dados e um script em PHP para os cálculos.
FOREACH
É um laço de repetição para interações em arrays, é um for de forma
simplificado, ele decompõe o vetor ou matriz em cada um de seus elementos
por meio da cláusula AS, veremos exemplos de sua aplicação na aula de
arrays.
Sua sintaxe é;
$array será o nome do array.
as $valor esta passando os valores do array
foreach ($array) as para a variável $valor, as instruções podem
$valor) { ser por exemplo, um echo ou print, para
instruções exibir na página o resultado.
} Tudo que esta entre as chaves as instruções
serão repetidas o numero de vezes das
posições do vetor.
do... while
O laço do...while funciona de maneira bastante semelhante ao while, com a
simples diferença que a expressão é testada ao final do bloco de comandos.
Abaixo temos um exemplo usando o do while.
Exercício Prático
function nome_da_função() {
Comandos;
}
Figura 6 - Sintaxe de uma função
A declaração return
A declaração return retorna um valor quando a função é chamada. Esta
declaração não é necessária se a função não retorna nenhum valor.
Para se chamar uma função, deve-se escrever seu nome e indicar os
parâmetros entre parênteses, abaixo a sintaxe de uma função com return que
pode ter ou não argumentos.
Argumentos
É possível passar argumentos para uma função. Eles devem ser declarados
logo após o nome da função, entre parênteses, e tornam-se variáveis
pertencentes ao escopo local da função. A declaração do tipo de cada
argumento é utilizada apenas para efeito de documentação.
function nome_da_função([arg1,arg2,arg3]){
Comandos;
}
Exemplo:
Há duas formas de fazer com que uma função tenha parâmetros passados por
referência: indicando isso na declaração da função, o que faz com que a
passagem de parâmetros sempre seja assim; e também na própria chamada
da função. Nos dois casos utiliza-se o modificador "&". Vejamos um exemplo
que ilustra os dois casos:
Contexto
O contexto é o conjunto de variáveis e seus respectivos valores num
determinado ponto do programa. Na chamada de uma função, ao iniciar a
Escopo
O escopo de uma variável em PHP define a porção do programa onde ela pode
ser utilizada. Na maioria dos casos todas as variáveis têm escopo global.
Entretanto, em funções definidas pelo usuário um escopo local é criado. Uma
variável de escopo global não pode ser utilizada no interior de uma função sem
que haja uma declaração.
Os arrays são acessados por uma posição, como o índice numérico, para criar
um array, pode-se utilizar a função array, abaixo a sintaxe de criação do array.
Arrays associativos
São chamados assim por possuírem uma chave de acesso para cada posição,
abaixo iremos criar um array associativo, para exemplificar sua utilização.
Array multidimensional
São arrays que podem em algumas de suas posições conterem outro array de
forma recursiva, ele também pode ser criado pela função array().
No exemplo a seguir vamos criar um array multidimensional da tabela abaixo;
2. Introdução a Framework
JQuery
jQuery é uma poderosa biblioteca JavaScript criada para simplificar a criação
de efeitos visuais e de interatividade em web sites.
jQuery propicia a criação de scripts de uma forma tão simples e intuitiva que
consegue com meia dúzia de linhas os mesmos efeitos de um script de 30 a 40
linhas desenvolvido com JavaScript tradicional. Simplicidade foi à diretriz que
norteou John Resig na criação da biblioteca. (Silva)
Nesta etapa da disciplina, iremos trabalhar apresentando a biblioteca e um
estudo da sintaxe usando os seletores e comandos jQuery, iremos trabalhar
desenvolvendo praticas que chamaremos de laboratórios empregando vários
scripts, que poderão ser utilizados no desenvolvimento de web sites.
2.1. Instalação.
A instalação é bem simples basta fazer o download no site http://jquery.com/ e
depois fazer o download, você ira baixar um arquivo compactado descompacte-
o no diretório raiz do seu site.
Agora vamos a pratica o lema do Jquery que é escreva menos e faça mais, por
isso os temas das aulas a seguir são bem práticos.
1º passo: É criar uma página com web com a extensão *.php, nela
poderemos trabalhar com HTML e PHP.
Linha 14: Nesta linha quando o documento for lido ($(document).ready) vai
ser acionado uma função que tem como objetivo adicionar a formatação do
atributo css table, que criamos anteriormente, na tabela chamada horario. De
forma a adicionar a class impar que vai aplicar o background:#add6ef, criado
no css, fazendo com que as linhas impares sejam adicionadas o background
definido.
Na linha 26: Temos a tag <tr> com o id “horizontal” para identificar que esta é a linha
horizontal, o restante do código é apenas a estrutura da tabela em HTML a qual já
conhecemos.
Laboratório Tabela 2
Neste exemplo vamos adicionar um efeito de cores uma para cada linha,
e um evento hover para destacar a linha onde o mouse passar, o resultado
desta prática podemos visualizar na imagem abaixo.
1º passo: Vamos voltar em nosso arquivo css onde temos o estilo da tabela
anterior e adicionar a class .par com o background da linha par, a class
.destacar que mudará a cor quando o mouse passar na linha da tabela.
2.3. Tooltips.
É como são chamadas as legendas, neste laboratório vamos aprender como
criar o efeito abaixo na legenda.
1º passo: Criar uma página em PHP como mostrado acima, com o campo
CPF e Data.
2º passo: Criar o script responsável por apresentar a legenda com o efeito.
Como estamos trabalhando com Jquery sempre temos que adicionar o script
Jquery.
Na linha 14: Como no exemplo anterior Iniciamos o script com o método ready
do documento carregando a função.
2.4. Accordion.
Neste laboratório vamos cria um accordion, que é este efeito sanfona entre
uma aba e outras, abaixo temos a imagem de como ficará este exemplo.
Na linha 11:
Colocamos um ícone
chamado seta.png,
você pode baixar
algum na internet com
as dimensões 11x 7,
porem o código pode
2.5. Datepicker.
2º passo: Agora temos a penas que criar um script, para chamar o método
datepicker através do elemento #datepicker que será o id do elemento
HTML.
2.6. Auto-complete.
Neste laboratório vamos criar um campo com auto-complete nesta aula
também vamos utilizar o JqueryUI.
2º passo: Criar o script para as palavras chaves, vamos criar uma função e
dentro dela criar um arrays com as
palavras chaves, na linha 15
declaramos a variável e atribuímos os
valores.
Linha 35: Inserimos um trecho de código PHP com uma mensagem, só para
demonstrar que podemos entrar com instruções PHP.
Linha 39: referencio o id do button ao atributo #opener criado no JavaScript
acima.
2.8. Menu.
Nesta aula vamos criar um menu para o nosso site, na biblioteca JqueryUI,
podemos fazer um menu em pouco tempo já com um estilo predefinido, mais
podemos criar menus com outros estilos, em alguns sites oferecem vários
modelos de menu para download, para conferir acesse o site
http://apycom.com/.
2.9. Abas.
Nesta aula vamos aprender a criar um painel tabulado, como o que vemos
abaixo.
2º passo: Script que cria o painel com as abas, criou-se uma função e
definimos um atributo #tabs que esta vinculado ao método tabs() do
jquery, o atributo vai ser usado na estrutura da página.
Introdução
Acessibilidade
O jQuery Mobile foi projetado tendo em mente a acessibilidade. Tem
suporte para Accessible Rich Internet Applications (WAI-ARIA) para
ajudar a tornar as páginas da web acessíveis para visitantes portadores
de deficiência por meio de tecnologias assistidas.
Leve e modular.
Um site jQuery Mobile que inicia com "doctype" o HTML5 pode tirar o máximo
proveito de todos os recursos do framework. Porem dispositivos mais antigos
com navegadores que não entendem HTML5 vai ignorar o "doctype", mais
apresentara a página algumas funcionalidades é que poderão não ser
reconhecidas.
Atributos JqueryMobile.
Atributo Descrição
Tema
Com o jQuery Mobile, é possível usar o atributo data-theme para aplicar um
tema padrão ou cinco amostras adicionais, com os nomes de A até E, como
vemos na tabela abaixo;
Tema Estilo
Tema Padão
Tema A - data-
theme="a"
Tema B - data-
theme="b"
Tema C- data-
theme="c"
Tema D - data-
theme="d"
Tema E - data-
theme="e"
2.10.1. Eventos.
4º passo: Criar script para os eventos utilizados, este será um script externo
em JavaScript, também pode ser feito na própria página, mais optei por fazer
uma chamada externa para ficar mais organizado.
Linha 2: declarar uma variável texto contendo o texto e algumas tag HTML,
para serem inseridos dentro da div eventos. Nas outras linhas, quando os
eventos especificados ocorrerem será mostrado o conteúdo da variável texto
referente ao evento usado, não se esqueça de depois do script feito adicioná-lo
na pagina.
Linha 16: Definimos que o evento será aplicado no atributo #um, que será o id
da div page da página principal. O evento usado é o pageinit, na inicialização
da página.
Linha 18: Usamos o método changePage e passamos como argumento a
página que será chamada, na linha 19 o efeito de transição usado.
Transição Uso
fade Efeito de transição fade in/fade out
pop Efeito de transição pop
flip Efeito de transição de inversão
turn Efeito de transição de giro
flow Efeito de transição de fluxo (semelhante ao slide)
slide Efeito de transição de slide (horizontal)
slideup Mostra a página ou diálogo deslizando de baixo para cima na
página
slidedown Mostra a página ou diálogo deslizando de cima para baixo na
página
none Sem efeito de transição
Tabela 2- Transições baseadas em CSS
2.10.3. Widgets.
O atributo data-role é usado para definir os diversos widgets. Entretanto,
nem todos os widgets da UI são acionados pelo atributo data-role, abaixo
vamos conhecer alguns widgets.
Botão (button)
Este widget é um botão básico, é iniciado na tag <a> e passados os
atributos do Jquery Mobile, podendo usar ícones e temas da biblioteca.
Dialogo (dialog)
Este widget exibe uma caixa de dialogo, como mostrado na imagem abaixo.
Nesta mesma linha é adicionado o atributo data-rel, onde pode ser passado o
valor dialog ou popup, em outro atributo o data transition será responsável
pelo efeito de transição.
Lista (listview)
Exemplo: Listview.
Lista redutível
Este widget usamos o atributo data-role=”collapsible”, para utilizá-lo
devemos criar uma div e nela aplicar o atributo, para definir o que será o título
da lista use a tag <h3>
CheckBox
Este widget não precisa do atributo data-role, basta ser inserido na página de
conteúdo, como é mostrado no código abaixo.
Botão de opções
Neste exemplo criamos inputs do tipo radio, como é feito em HTML, e
colocamos o atributo data-role=”controlgroup”, o restante do código são tags
em HTML.
Fomulários (form)
Vamos agora criar um formulário de contato, nesta aula vamos utilizar a
linguagem PHP junto com o JqueryMobile, o resultado final desta aula é
mostrado na imagem abaixo.
Exercício Prático
1) Criar um formulário aplicando os widgets aprendidos, com a
transição de páginas.
2.10.4. Twitter
Nesta aula iremos desenvolver uma pagina para receber as atualizações do
Twitter, utilizaremos Jquery plugin twitter que se encontra no link
http://coda.co.za/content/projects/jquery.twitte
r/ Desenvolvido por Damien du Toit, clique no
link download para baixar o arquivo
compactado com os scripts que iremos
utilizar, depois descompacte-o e coloque em
um diretório do raiz do seu site ou em um
diretório, neste exemplo criamos o diretório
tw.
Na <head>
vamos criar a
função
carregar_tw(
), neste script
defino na
linha 25 a
Estrutura da página
Em nossa página na estrutura HTML só precisamos na tag <body> usar o
evento onload e chamar a função carregar_tw(), que criamos anteriormente.
2.10.5. Geolocalização.
Nesta aula vamos fazer uma página usando a API do Google para
geolocalização, no link https://code.google.com/p/jquery-ui-map/, podemos
obter vários outros exemplos e baixar os arquivos que serão utilizados neste
exemplo, este plugin pode ser usado para
Jquery e JqueryMobile.
Clique em Download the plugin with examples, para baixar o plugin, conforme a
imagem abaixo.
Script
Este script foi escrito dentro da tag <head>, nele declaramos a variável LatLng
onde será armazenada as informações de latitude e longitude, através dela que
na imagem abaixo encontra-se na linha 26, a API retorna o mapa baseado nas
coordenadas, o formato de coordenadas esta decimal,mas podem ser
convertidas em varias formas de apresentação no site
http://www.sunearthtools.com/dp/tools/conversion.php?lang=pt, encontra-se
uma ferramenta que alem de pegar as coordenadas ainda apresenta a
conversão em vários formatos.
Na linha 27 criamos a marcação #map_canvas que será usado para mostrar o
mapa.
Estrutura da página
Como vemos na imagem abaixo para carregar o mapa em nossa página, neste
exemplo criamos uma div onde será carregado o mapa na linha 42 fazemos a
referência ao atributo map-canvas que foi criado na <head> no script anterior,
e com a propriedade style passamos o tamanho da área do mapa.
3. Formulários web.
Nesta aula vamos desenvolver formulários para aplicarmos os efeitos
aprendidos em aulas anteriores.
Para criamos formulários usamos a tag <form></form>, nela podemos usar
alguns atributos, por exemplo, action, method e id, no atributo method vão
ser passados o método get ou post, no action uma ação que será executada
pelo formulário quando o mesmo enviar as informações para o servidor, este
dois pontos abordamos no inicio da aula 2 – Introdução ao PHP e será
aprofundado no próximo semestre como o PHP, e nesta aula iremos criar
formulários que serão utilizados no próximo semestre com diversas
funcionalidades.
Folha de estilo
<linkhref="../css/estilo_form.css" rel="stylesheet">
Estrutura da página
Linha 15: Na tag <form> estamos definindo qual será o action do formulário, o
arquivo dados_cli.php será responsável por exibir em uma nova página os
dados digitados no formulário. Depois definimos o método post, responsável
por enviar os dados. Como utilizamos o post os dados não serão mostrados na
URL.
E por último definimos o id do formulário que é a identificação do mesmo.
Linha 18: Na tag <span> adicionamos a propriedade form_cli que foi criada
em nossa folha de estilo.
Arquivo dados_cli.php
Exercício Prático
1) Criar um efeito zebrado em uma tabela, com os dados de modelo do carro e
suas características, usando a biblioteca Jquery.
A folha de estilo será a mesma utilizada na aula anterior, nesta aula o principal
objetivo será trabalhar com validação de campos e mascara de formato, por
exemplo, o formato do telefone.
Iremos iniciar com o script em JavaScript criado na tag <head>, observe que
usamos uma estrutura de decisão em JavaScript que aprendemos em aulas
anteriores, temos
uma função
chamada Mascara
que recebe um
objeto, depois testa
a igualdade do valor
do objeto, este
objeto será o
campo que
receberá o formato.
Agora vamos fazer a validação do email, para evitar que o usuário informe um
email errado.
Na tag <form> definimos o action o arquivo valida_email.php que será
chamado na ação deste formulário, agora no method usamos o método get, e a
identificação do nosso formulário na propriedade id.
Escrevendo o valida_email.php
Neste exemplo usamos uma função nativa do php a filter_var, que pode
ser usada para validar diversas coisas, nela adcionamos o filtro de email
atraves da propriedade FILTER_VALIDATE_EMAIL.
Nas linhas 5 e 8 usamos função require que fará uma requisição de página,
em nosso exemplo chamará o form_contato.php que é o formulario de onde
vieram o email para validar, fazendo com que seja exibido a mensagem de
email valido ou invalido abaixo do formulario, como é mostrado na imagem
seguinte.
Exercício Prático
1) No formulário de contato desenvolvido em sala de aula adicione as
legendas tooltips com jquery, para os campos.
4. Estudos de Caso
A loja virtual em sua página inicial deverá apresentar uma vitrine com as
principais ofertas, de onde o usuário poderia visualizar e ao selecionar algum
produto mostrar o produto e outras ofertas.
PARTE II – COMUNICAÇÃO
COM O BANCO DE DADOS
1. Formulários e listagens
Nesta aula vamos codificar formulários HTML, realizando o processamento dos
inputs do usuário através do PHP, estes processamentos serão feitos agora no
lado servidor (Server-side) nas disciplinas passadas trabalhamos com
formulários web, folhas de estilos CSS, JavaScript e um pouco da sintaxe PHP.
1.1. Inputs.
Nesta aula vamos trabalhar com o elemento input e com seus atributos, sendo
processados com scripts PHP, Vamos começar com uma situação bem
simples, precisamos criar um formulário que receba o nome de uma pessoa e
mostre-o abaixo. Como na imagem abaixo.
Vamos ao exemplo;
1
É um grupo de dados trocados entre o navegador e o servidor de páginas.
1.1.1. Checkbox.
Neste exemplo vamos trabalhar com o input do tipo checkbox, iremos criar um
formulário com opções de atividades esportivas, o usuário seleciona suas
atividades, que serão mostradas em outra página.
Em PHP iremos criar um array para armazenar as atividades esportivas, iremos
criar um checkbox e usaremos a estrutura de repetição foreach, para criar a
quantidade de checkbox correspondente ao array, logo se no array tivermos
seis atividades serão criados seis checkboxs.
Este será o resultado final do nosso formulário, agora vamos à construção do
mesmo.
Na estrutura do código abaixo temos;
Uma página chamada form_chkbox.php e
um formulário chamado form_list_ativ.
Teremos que criar uma página em PHP que
será chamada de sel_atividades.php, nela
será mostrado o resultado das preferências selecionadas.
Na
página
inserimo
s um
trecho
PHP, no
qual
criamos
um array
chamado
$esporte
s nas
linhas
13 a 21.
Linha
24:
Usamos
uma estrutura de repetição foreach nesta estrutura definimos dentro do
parêntese o array $esportes para $value, desta forma tenho para cada
chave um par de valores do array até que todos os itens tenham sido
recuperados, ou outra condição interna seja encontrada.
Observe que a chave { do loop inicia na linha 24 e termina na linha 30, tudo que
estiver dentro destas chaves será repetido até que sejam apresentados todos os
valores do loop.
Na linha 27: Temos o input do tipo checkbox com o nome ativ_esport[ ], estes
colchetes indicam que o mesmo receberá um array, no atributo value deste elemento
inserimos o trecho PHP com a variável $value que recebeu cada valor do array
$esportes, desta forma o valor de cada checkbox foi atribuído.
O elemento label é usado para exibir os valores do array na página.
No action do formulário chamamos a página sel_atividades.php, com o código PHP
mostrado abaixo.
Nesta página
embutidos o código
PHP, para mostrar as
atividades selecionadas
pelo usuário na página
anterior.
Linha 15: Declaramos a
variável $lista_ativ que
recebe os valores da requisição post $_POST[‘ativ_esport’] ativ_esport é
o nome do checkbox criado na página anterior.
Linha 16: Através do foreach listamos os valores do array que o usuário
selecionou.
Ao lado temos o resultado da execução desta prática.
1.1.2. Radio.
Nesta aula vamos trabalhar com o input do tipo radio, com ele criaremos um
array de estado civil, onde enviaremos para outra página o código do estado
civil, simulando o envio destas informações a um banco de dados.
Na página
result_radio.php
Linha 15: Nesta
linha recebemos o
valor do input da
página anterior
Exercícios Práticos
Desafio
1. Crie uma pagina web em PHP com um questionário de 10 perguntas,
onde o usuário responderá as perguntas e no final deverá ser emitido o
resultado dele, informar quantas perguntas ele acertou.
1.2. Select.
Para exemplificar a utilização deste componente, criaremos uma página web
onde o usuário deve escolher uma cidade para visitar, após a sua escolha será
mostrada uma mensagem abaixo agradecendo a visita, como no exemplo
abaixo.
3º Passo: Vamos entender a estrutura desta página, o nosso <select> tem o nome de
lista_cidades[], usamos o foreach para listar todos os valores existentes no array .
Linha 24: No
action do
form
chamamos
um script PHP
que será
criado nos
próximos passos.
Linha 28: Nesta linha temos dois pontos importantes, o atributo value recebe o
valor do array, isso é utilizado para passar o valor selecionado pelo usuário, o
que esta entre o <option> </option> será mostrado ao usuário quando a
página for carregada.
4º Passo: Agora vamos criar o script PHP chamado visitar_cidade.php, ele
será responsável por receber o valor selecionado pelo usuário na página
anterior e exibir uma mensagem.
1.3. Tabelas.
Nesta aula usaremos um array multidimensional, criaremos uma página web
com os cargos e salário em TI, que será mostrado em uma tabela, como na
imagem abaixo.
conforme abaixo;
Abaixo a estrutura da página, onde temos uma tabela com os campos Cargo e
Salário vindos do array.
Este exemplo é bem parecido com o anterior, então podemos observar que a
lógica de utilização dos arrays multidimensionais é a mesma, precisamos
apenas saber onde queremos que as informações devam aparecer.
1.4. Listas.
Neste exercício vamos criar um menu para acessar todos os exemplos
anteriores, também usaremos um pouco de jquery ui.
Abaixo temos uma imagem de como ficará o nosso menu, este exercício
vamos dividir em partes ou passos para melhor entendimento.
1º Passo: Vamos inserir as tags script e chamar os scripts JavaScript como mostrados
na imagem abaixo.
Nas linhas 14 a 18 Criamos uma função que chama outra função do jquery UI,
onde a mesma defini que será aplicado no seletor css #menu.
Exercício de Aprendizagem
Estudo de caso da empresa de reserva de passagens aéreas Gato Ajato
1.1. Formulários.
Nesta aula vamos desenvolver formulários dinâmicos, em nossa problemática
temos que desenvolver um web site, A empresa de reserva de passagens
aéreas Gato Ajato foi quem solicitou o protótipo.
Foi solicitado aos projetistas que a web site efetue reserva de passagens
aéreas da companhia.
Deverá cadastrar os números (ID) dos aviões e o número de lugares
disponíveis em cada um. O home deverá mostrar o seguinte menu de opções:
1. Cadastrar aviões.
a. Com número de lugares disponíveis em cada avião.
2. Cadastrar Passageiros, com os campos nome, CPF, sexo, endereço,
cidade.
3. Reservar passagem.
a. Checar se no avião escolhido, ainda existe lugar disponível. Caso
exista, o programa deverá diminuir o total de vagas e mostrar a
mensagem Reserva Confirmada. Caso contrario, deve mostrara a
mensagem Voo lotado.
4. Consultar avião.
5. Consultar passageiro.
A gato Ajato solicitou um web site, para este intuito devemos criar um layout
para este projeto, e as páginas a seguir;
Vamos criar uma página chamada de consulta.php, nela temos que criar um
array com o nome de $passageiros para realizar a busca pelo nome do
passageiro.
Linha 23: Recebemos o valor do input busca através do método post, o valor
que o usuário digitar será armazenado na variável $busca.
Linha 25: Temos aqui uma instrução de decisão se a variável $busca for
verdadeira, ou seja conter um valor, a linha 26 é executada. Na linha 26
criamos a variável $cons_passageiros, esta recebe o valor da função
preg_grep que retorna as entradas do array $passageiros que combinaram
com um padrão repassado, “/^$buscar/” neste exemplo usamos o que é
conhecido como expressões regulares, onde se define um padrão a ser usado,
então com o operador ^ indica que a expressão deve iniciar com a string dada,
logo em nossa expressão será verificado os primeiros caracteres digitados no
input de busca.
Linha 29: Nesta condição o valor do input for igual à null retorna todos os
dados do array $passageiros, onde os valores do array são armazenados em
um outro array chamado $cons_passageiros.
Nas linha 15 a18: Temos a criação do nosso array, com os modelos de aviões.
Linha 20: Declaramos uma variável chamada $remov que recebe um valor
pelo método get.
Nas linhas 21 a24: Temos um loop onde para recuperar todos os valores do
array, a função unset() recebe o array e a chave ou índice do array que será
removido, este valor é recebido através da variável $remov.
Para exibir na página criamos um novo loop, e neste definimos a variável que
receberá a chave do array($chave), e a outra que será usada para exibir os
modelos de aviões na página.
Na linha 31: Observamos que na tag <a> usamos o atributo href para passar o
link da página que será chamada, no caso ela mesma e o parâmetro de URL
chamado id, logo para passarmos parâmetros pelo URL utilizaremos esta
sintaxe, nome da página (remover.php) mais o nome do parâmetro e o valor
que será recebido (?id=).
Exercícios Práticos
1) Vamos criar um formulário web que para cadastrar uma lista de contatos,
com os campos; nome, endereço, telefone, cidade.
2. Funções em PHP
Nesta aula vamos conhecer algumas funções, que podem ser uteis em nossa
caminhada como desenvolvedor PHP, abaixo uma relação de funções para
arrays, que podemos utilizar como referência. No site da linguagem temos
diversas referências sobre várias funções da linguagem, veja no link
http://www.php.net/manual/pt_BR/funcref.php
Inicialmente recebemos
através do post, o valor de
duas variáveis, a $vlr
recebe o valor escolhido
pelo usuário se a opção de
conversão dele é maiúscula
ou minúscula. A outra
variável $texto recebe o
texto digitado pelo usuário.
Na linha 26 chamamos a
função e passamos dois
parâmetros, um com o valor
para ser comparado no if, e outra com o texto que será convertido, conforme a
opção do usuário.
Outras Funções
Addslashes
addslashes (string $variavel) - Retorna uma string com barras invertidas
antes de caracteres que precisam ser escapados para serem escapados em
query do banco de dados e etc. Estes caracteres são aspas simples (‘), aspas
duplas (“), barra invertida (\) e NUL (o byte NULL).
Exemplo:
Stripslashes
Stripslashes (string $variavel ) – Caso queira retirar caracteres indevidos
utilizamos esta função, ele retira as “\”;
Exemplo:
include(): Esta função tenta incluir uma página. Em caso de algum erro, o
script retorna um warning (aviso) e prossegue com a execução do script. Aceita
a passagem de variáveis (GET) na string.
Require(): Tenta incluir uma página. Em caso de erro, o script retorna um fatal
error (erro fatal) e aborta a execução do script. E não prossegue com a
execução do script. Não aceita a passagem de variáveis (GET) na string.
Exemplo 02: O resultado do exemplo abaixo é este: Hojé é July 23, 2013,
apresentando o mês por extenso.
3. Manipulação de arquivos e
diretórios
Nesta fase vamos aprender a manipular arquivos no servidor, desde a criação,
leitura de arquivos, aprender um pouco sobre download e upload.
'x' Cria e abre o arquivo somente para escrita, coloca o ponteiro no início
do arquivo. Se o arquivo já existe, a chamada fopen() irá falhar,
retornando FALSE, gerando um erro nível E_WARNING. Se o arquivo
não existe, tenta criá-lo.
'x+' Cria e abre um arquivo para escrita e leitura; coloca o ponteiro do
arquivo no início. Se o arquivo já existe, a chamada fopen() irá falhar,
retornando FALSE, gerando um erro nível E_WARNING. Se o arquivo
não existe, tenta criá-lo.
Tabela 6 – Modos de Arquivos
Linha 2: Definimos uma variável que vai receber o valor da função fopen(),
que retornará true ou false, na função passamos dois parâmetros, o primeiro é
o nome do arquivo e sua extensão, o segundo passamos o modo de operação
do arquivo, que neste exemplo esta abrindo o arquivo somente para escrita,
caso não exista o cria.
Nas linhas 3 e 4: Se a variável $arquivo retornar false a função die() é
chamada para apresentar o erro.
Agora vamos para outro exemplo, agora usando mais recursos.
No exemplo abaixo, damos ao usuário a possibilidade de definir qual o nome
do arquivo, para isso criamos uma função chamada criar_arquivo().
Neste exemplo usamos uma ação para quando a condição for falsa, caso não
seja possível abrir ou encontrar o arquivo. E true caso seja possível abrir o
arquivo, exibindo uma mensagem ao usuário.
Na linha 21: Usamos a função fclose(), para fechar o arquivo se ele tiver sido
aberto.
Exercícios Práticos
1) Crie uma página para criar arquivos para artigos com a extensão *.html,
onde o usuário que deve especificar o nome do arquivo.
3.5. Upload
Seja em sites de armazenamento online ou mesmo em perfis de redes sociais,
o termo “upload” tem estado presente em boa parte do nosso cotidiano online.
Nesta aula vamos entender de que se trata um upload, implementaremos um
script de upload completo, com diversos recursos de tratamento.
Upload ou carregamento é a transferência de dados de um computador local
para um servidor, o que pode ser feito pelo protocolo FTP ou pelo HTTP, em
nosso exemplo vamos criar uma página para fazer o upload.
Vamos criar uma página que chamaremos de form_upload.php, abaixo temos
a imagem de como esta página será apresentada ao usuário.
Na estrutura HTML vamos adicionar dois inputs, um com o type file, este é
usado quando desejo carregar arquivos do navegador para o meu servidor,
outro é o submit para enviar as informações do input file.
Abaixo temos o script PHP para upload de arquivos, chamaremos este script
de recebe_upload.php, inicialmente no script abaixo temos um array com o
nome de $_arq, onde passamos uma chave para este array e um conteúdo.
3.6. Download
Agora vamos trabalhar com um velho conhecido de muitos, Download ou
descarregar que significa baixar, em português, é a transferência de dados de
um computador remoto (servidor) para um computador local.
Nesta aula vamos criar uma página de download, listando os arquivos de um
determinado diretório.
Vamos criar uma página web chamada de listar_arquivos.php, abaixo temos
como esta página ficará.
Na body de nossa página vamos inserir o trecho de código PHP acima, na linha
13 definimos o caminho, ou seja, o diretório que será listado os arquivos, temos
que criar um diretório chamado arquivos e colocarmos alguns arquivos nele.
Linha 14: Criamos uma variável para armazenar o conteúdo do diretório da
variável $path.
Linha 17: Criamos um laço de repetição com o while, listando assim todos os
arquivos encontrados no diretório especificado. Para cada arquivo encontrado
é criando um link do mesmo, com a tag <a>.
Na linha 20: Após concluir a leitura do conteúdo do diretório especificado, é
executado a função close(), encerrando a comunicação com aquele diretório.
Exercícios Práticos
2) Crie três páginas onde será mostrado o texto dos artigos criados, então
deveremos ter três arquivos com conteúdo gerado no exercício anterior
e sendo exibidas em outras três páginas, uma página para cada arquivo.
4. Rede de Comunicações
Nesta aula vamos conhecer algumas funções capazes de recuperar
informações de servidores, aprenderemos a trabalhar com a função mail() do
PHP e outros recursos de envio de e-mail. O conhecimento adquirido nesta
aula poderá ser usado em outra necessidade para sistemas web, o objetivo
desta aula é demonstrar algumas práticas com o uso do script PHP interagindo
com recursos de redes de computadores.
Esta função vai retorna verdadeira quando o registro DNS for encontrado e
falso caso não encontre o registro DNS solicitado.
Agora vamos à prática, vamos criar dois arquivos um como a imagem abaixo
que chamaremos de fase4_dns.php, onde o usuário deve digitar o nome do
domínio que quer
consultar.
Serviços
A internet é composta de diversos serviços, que é através destes que essa
plataforma de comunicação é definida, esses serviços que são utilizados
diariamente em nossa vida online, são estes HTTP, FTP, POP3, IMAP E SSH,
estes serviços trabalham com um protocolo, que é o conjunto de regras sobre o
modo como se dará a comunicação entre as partes envolvidas.
Vamos criar um exemplo que verifica
a conectividade com o servidor, pois
todos esses serviços são inicializados
no servidor.
Ao lado o exemplo que será criado.
4.2. Mail
Nos dias atuais uma característica muito forte das aplicações web é o poder de
comunicação, uma as mais usadas é o envio de email, em todos os sites de
empresas temos o formulário de contato, e em alguns deles são enviados
email’s para determinados departamentos.
Em PHP temos a função mail(), a sua sintaxe é bem básica, nesta função são
passados três parâmetros, destinatário, assunto e o corpo da mensagem.
Abaixo temos um exemplo de envio de email bem simples.
mail.add_x_header
Adicionar X-PHP-Originário-Script que irá incluir UID do script, seguido pelo
nome do arquivo.
mail.log
O caminho para um arquivo de log, que irá registrar todas as chamadas da
função mail (). As entradas de log incluem o caminho completo do script, o
número da linha, o endereço e cabeçalhos do email.
SMTP
Usado apenas no Windows:
Passando o nome do host ou endereço IP do servidor, usado para emails
enviados com a função mail().
smtp_port
Usado apenas sob Windows:
Passando o número da porta para se conectar ao servidor especificado, com a
configuração SMTP ao enviar e-mail com a função mail ();
Porta padrão 25. Apenas disponível desde o PHP 4.3.0.
sendmail_from
sendmail_path
configura o caminho para o programa sendmail, normalmente / usr / sbin /
sendmail ou / usr / lib / sendmail (no Linux).
Esta diretiva também funciona no Windows. Se definido, smtp_port e
sendmail_from são ignorados e o comando especificado é executado.
5. Manipulação de dados
Nesta aula vamos aprender a manipular dados com a linguagem de
programação PHP, criaremos dois projetos, um será o produto da disciplina,
neste poderemos aplicar todo conhecimento adquirido nas disciplinas de web,
agora é hora de por em prática todos os fragmentos aprendidos desta disciplina
e de outras relacionadas.
O planejamento
É sempre bom planejar o projeto de seu site, que é um rascunho do mesmo,
Então o primeiro passo é identificar quais serão as páginas, link e recursos que
deverão ter no site, em nosso exemplo acima definimos que páginas ou links
deviam estar disponíveis na pagina inicial do site o nosso index.php, depois
escolher a página e especificar que links ou que páginas estão disponíveis a
partir dela, como podemos verificar no exemplo abaixo.
Abaixo temos como irá funcionar o menu área restrita, este menu é dedicado
ao administrador do sistema ou funcionário da empresa de locação de filmes, o
usuário precisa se logar nesta parte do sistema, caso ele já esteja logado será
direcionado para o home (index.php) caso contrario direcionado para a pagina
de login de usuário.
Exercício Prático
1) Para exercitarmos um pouco vamos planejar um site, vamos seguir os
passos abaixo.
Neste exercício vamos criar um script em PHP para realizar a criação do banco
de dados, que será utilizado na próxima aula e exercícios, chamaremos este
script de criarbd.php.
Projeto SBFilmes
Agora com o projeto já criado na sua IDE e o banco de dados rodando, vamos
criar um script para o projeto SBFilmes com os dados inicias usuário e senha,
estes dados são do usuário padrão do sistema.
Abaixo temos o script com o insert do usuário, nas aulas anteriores vimos
como fazer a conexão e a criação do banco de dados e tabelas, neste exercício
utilizará a instrução insert do SQL.
Crie um novo script PHP com o nome insertuser.php, insira o código acima
e depois execute, pronto acabamos de inserir os dados de usuário e senha
na base de dados sbfilmes.
Como podemos observar declaramos quatro variáveis com os dados da
conexão, e inserimos a instrução SQL, com relação ao SQL vimos na
disciplina de banco de dados.
Exercícios Práticos
Parar o MySQL
sudo /etc/init.d/mysql stop
Iniciar o MYSQL
sudo /etc/init.d/mysql start
5.5. Sessão
Sessão é um recurso do PHP que permite que você salve valores (variáveis),
para serem usados ao longo da visita do usuário. Valores salvos na sessão
podem ser usados em qualquer parte do script, mesmo em outras páginas do
site.
session_start();
$_SESSION['usuario'] = 'jplima';
echo $_SESSION['usuario'];
Você pode salvar quantos valores quiser, pode re-definir os valores e usa-los
em echos, argumentos de funções e da forma que preferir.
Agora vamos aprender como deletar uma variável específica da sessão, vamos
usar a função unset(), Exemplo abaixo;
unset($_SESSION['usuario']);
Deleta uma variável da sessão.
Também podemos destruir toda a sessão de uma só vez, eliminando todas as
variáveis salvas, exemplo abaixo:
session_destroy();
Com isso você tem total controle das sessões no seu site e pode salvar, por
exemplo, o nome de usuário depois que ele fez o login e salvar outra variável
informando que o usuário está logado. Esta é uma prática muito comum em
sistemas de autenticação de usuário.
atual
session_unset Libera todas as variáveis de sessão
session_write_close Escreve dados de sessão e termina a sessão.
Tabela 11 – Funções para sessão.
Exercício de Aprendizagem
Vamos criar o login de usuário, no projeto SBFilmes criaremos o acesso
do administrador ao sistema, o usuário entra no menu área restrita e se ele
estiver com uma sessão aberta ele direciona para o painel administrativo
caso não esteja logado (com uma sessão aberta) é apresentado a tela de
login. No template baixado existe um diretório chamado admin, nele será
salvo tudo relacionado à área administrativa.
1º passo: Será criar um script de conexão com nossa base de dados sbfilmes,
desta forma toda vez que precisarmos abrir uma conexão há chamaremos.
Este script se chamará de conect_db.php, e será salvo no raiz do site.
Linhas 24 a 26: Definimos três variáveis, onde cada variável recebe seu valor
correspondente ao campo na tabela do banco de dados, usamos a função
mysql_result(), que retorna o valor do campo especificado.
Linha 28: Inicializar a sessão.
Linhas 30 a 32: Grava as variáveis na sessão.
4º passo: Neste passo vamos inserir um treco de código PHP na página
principal da área administrativa, chamada index.php. Desta forma o usuário só
terá acesso a esta página se estiver logado.
5º Passo: Agora vamos criar o script PHP para realizar o logout do sistema
que se chamará logout.php.
Sempre que formos trabalhar com
sessão temos que iniciar a sessão,
neste exemplo apagamos as
variáveis especificas e depois
destruímos todas as sessões.
Linha 5 a 7: Destruindo as variáveis
de sessão criadas.
Linha 9: Destrói todas as sessões
que foram criadas, nas linhas de
código seguintes redireciona para a
página de login.
5.6. CRUD
Nesta aula vamos realizar o desenvolvimento do nosso CRUD (Create, read,
update e delete ), vamos fazer um exemplo mais simples antes de implementar
em nosso template do projeto SBFilmes.
Teremos dois projetos um será o sbfilmes e o outro cursophp_mysql.
5.6.1. Inserção
Nesta aula vamos aprender duas maneiras de realizar uma inserção de dados
na tabela, estes exemplos serão feitos no projeto cursophp_mysql.
$username_db = "root"; => Esta por sua vez define o nome do usuário de
acesso ao banco de dados, em nosso exemplo usaremos o usuário root, porem
pode ser criado um usuário especifico para o banco de dados do seu projeto
web, que serão definidos por você ou pelo DBA da empresa.
Linha 8: Nesta linha temos a declaração da variável $dbconn que irá receber
a função mysql_connect( ), nesta função passamos três parâmetros o nome
do servidor de banco de dados, o usuário e a senha de acesso ao banco de
dados. Ambos definidos nas linhas superiores. A função die( ) vai abortar a
execução da aplicação, é utilizado para tratamento de erros, neste exemplo
caso a conexão com o banco falhe ela será chamada.
Linha 10: A função mysql_select_db() é responsável por selecionar a base de
dados, temos que passar dois parâmetros, um é o nome da base de dados o
outro é os dados da conexão.
dos dados.
Linha 10: Para evitar que dados sejam enviados a tabela quando a página for
atualizada, inserimos o if com a função isset(), se a variável do post não
estiver vazia as linhas posteriores serão utilizadas.
Exercício Prático
1) Crie um formulário de cadastro de frutas com os seguintes campos
id_fruta, nome_fruta, peso, você deverá criar este banco de dados
assim como a tabela para armazenar os dados.
Neste exercício teremos que criar;
Um banco de dados.
Uma tabela conforme especificações.
Um formulário de cadastro.
Um script de conexão com o banco.
Um script para inserção dos dados do formulário.
Projeto SBFilmes
5.6.2. Alteração
Para realizarmos uma alteração nos dados teremos que listar, e depois
escolher o que será alterado.
Vamos entender como funcionará.
Linha 38 e 39: Aqui criamos os links para chamar a página alterar, passando
como parâmetro da URL o id, neste exemplo estaremos trabalhando com o
método get na página de alterar.
Um ponto muito importante desta etapa é a passagem de parâmetro pela URL,
para isso temos que ter a página que iremos chamar, por exemplo; alterar.php
+ ( ?id= ).
Linha 12: Criamos uma variável que vai receber o valor do método get.
Linha 13: Agora iremos fazer uma consulta baseado no id recebido do GET,
selecionar todos os campos onde o idt_cidade for igual a variável $idAlt.
5.6.3. Exclusão
Agora vamos para exclusão de registros, seguindo da página de manutenção,
vamos criar um script PHP chamado excluir.php, vamos receber uma variável
da URL para determinar que registro será excluído.
Linha 4: A variável $id recebe o valor passado pelo método GET. Este id vem
do formulário de manutenção e foi passado pela URL (exluir.php?id=).
Linha 5: Nesta linha executamos a instrução SQL delete, que realiza a
exclusão do registro onde o idt_cidade for igual a variável $id, depois na linha
7 fechamos a conexão.
Projeto SBFilmes
Em nosso projeto SBFilmes vamos fazer o cadastro de cliente, este cadastro é para o
cliente realizar a locação dos filmes, Nesta situação vamos inserir os dados do cliente
e depois realizar a autenticação dele no sistema área do cliente. Vamos seguir os
passos do exercício de aprendizagem.
Exercício de Aprendizagem
Na linha 124 do nosso exemplo, vamos criar uma lista com os nomes das
cidades, estes registros de cidades vem da tabela t_cidades, o nome desta tag
select é cidade.
Linha 126: Nesta linha fazemos uma consulta pegando todos os campos da
tabela t_cidades.
Linha 127: Agora com um loop (while) varremos todas as posições da matriz
associativa, que foi obtida pela função mysql_fetch_assoc ().
Linha 129: Aqui passamos o id da cidade no atributo value da tag option,
depois o nome da cidade, os campos id_cidade e cidade são da tabela
t_cidade.
Linha 16: Aqui criamos uma função converter_dt, esta função recebe como
parâmetro uma data, na linha 18 explodimos o valor recebido pelas barras (/),
para criar um array das partes, usamos a função explode() do PHP. Na linha
22 fazemos a inversão das posições e incluímos as barras, estamos pegando
as partes da data e concatenando. Ao fim desta função retornamos a data
modificada.
Na linha 26: Antes de passar a data para o banco de dados, temos que
declarar a variável $dt_nasc_novo que vai receber o retorno da função
converter_dt(), esta recebe a data vinda do formulário no padrão brasileiro e
converte para o americano.
Projeto SBFilmes
Exercício Prático
Menu de opções:
1. Cadastro de contas de determinado cliente.
2. Login do cliente.
3. Visualizar contas de determinado cliente, somente se estiver logado.
a. O cliente pode excluir uma conta.
4. Alterar dados pessoais do Cliente.
5. Saque onde o valor é subtraído do seu saldo.
6. Deposito onde o valor será acrescentado ao seu saldo.
7. Sair (logout).
Nestas aulas vamos trabalhar com algumas query SQL usando o PHP,
veremos algumas consultas com relacionamento de tabelas e um exemplo de
paginação de uma consulta, podemos utilizar todas as instruções SQL do
MySql em seu código PHP. Abaixo temos algumas cláusulas SQL que podem
ser uteis.
Cláusula like – verifica se o conteúdo do dado contém a string que está antes
do % (José%), após o % (%Ana) ou entre o % (%usa%). Este comando é
utilizado com a cláusula where.
Sintaxe: select [coluna] from [tabela] where [coluna] LIKE ‘string’;
Ex. select * from pessoa where nm_pessoa like 'J%';
Linhas 13 a 18: Temos uma consulta que lista todos os campos da tabela t_categoria,
na linha 17 passamos no value do <option> o idcategoria este valor será usado para
fazer outra consulta.
Continuando o script na linha 24, declaramos a variável $idcat ela vai receber o valor
(value) da tag <select> da linha 17, através do método POST.
Consulta paginada
Neste exemplo vamos criar uma consulta, para listar apenas uma faixa de
registro em cada página usaremos a instrução SQL limit, na imagem abaixo
temos o exemplo desta aula.
Vamos utilizar a tabela t_filme do banco de dados sbfilmes, vamos usar os
campos titulo e fotocapa neste exemplo.
Linha 37: Declaramos a variável $pagina que vai receber o valor do método
GET, abaixo temos uma estrutura condicional, se a variável $pagina estiver
vazia o valor um é atribuído à página.
Linhas 42 a 43: Nestas linhas fazemos um calculo para determinar o registro
inicial.
Linha 45: Nesta linha fazemos uma consulta para listar todos os registros da
tabela t_filme, para utilizar esta query na linha abaixo.
Linha 47: Armazenamos na variável $total o numero de linhas de um conjunto
de resultados, que foi obtido pela função mysql_num_rows().
Conteúdo da página
Neste trecho do código dando continuidade ao trecho anterior, iniciamos a
geração do conteúdo que será apresentado na página.
Linha 52: Nesta linha criamos a query para obter os registros da tabela t_filme,
usamos a cláusula limit que retorna o limite entre dois valores, onde passamos
a variável $inicio que teve seu valor calculado nas linhas anteriores, e a
variável $maximo que definimos o valor da mesma no inicio do código.
Linha 54: Agora passamos a query SQL que esta armazenada na variável
$sql, para a função mysql_fetch_object(), que retorna um objeto com
propriedades que correspondem a linha obtida, sendo armazenado na variável
$linha.
Linha 58: Nesta linha passamos o valor coresponde do campo da tabela para
ser exibido nos espaços definidos.
Navegação de páginas
Linha 77: Aqui temos a variável $pgs que recebe o valor da função ceil(), esta
retorna o próximo maior valor inteiro, arredondando para cima do valor, se
fracionário. Entre parênteses estamos dividindo o total de registros pelo
Maximo de registros obtido pela consulta.
Linha 84: Nesta linha temos uma estrutura de repetição “for”, para criar a
numeração das páginas e acrescentar o link das mesmas.
Linha 91: Nesta estrutura condicional temos se $mais menor ou igual a $pgs,
criar o link com a localização da página.
5.6.5. Consulta
Nesta aula vamos desenvolver um formulário de pesquisa, iremos acrescentar
nele o link para alterar e excluir.
Vamos fazer uma consulta de cidades pelo nome, usaremos a base de dados
db_php_mysql, este exemplo é bem pratico e pode ser implementado com
qualquer tabela.
Abaixo temos o resultado final deste exemplo.
Na linha 3: Temos a variável de pesquisa, que vai receber pelo método POST
o valor digitado pelo usuário no input.
Abaixo, na linha 30 temos a construção da nossa query, que vai selecionar
todos os campos da tabela t_cidade onde o nome da cidade iniciar com o valor
digitado pelo usuário no input.
Estrutura HTML
Linha 34: Aqui temos a query que lista todos os campos da tabela t_cliente,
que é o inicio da nossa query.
Na linha 35: Temos uma condição que conta os elementos de um array.
Na linha 36: fazemos a concatenação da query, e a utilização da função
implode() que junta os elemento da matriz $where na string $sql.
Linha 39: Aqui criamos uma função de filtro anti injection, é uma forma de
proteger seu código contra ataques de injeções de código PHP na sua
consulta.
Agora vamos executar a nossa query, passando a variável $sql para a função
mysql_fetch_assoc().
5.7. Relatórios.
Nesta aula vamos aprender a criar relatório em PDF usando PHP, para esta
prática vamos utilizar a classe FPDF, é uma classe para PHP de grande
utilidade no processo de criação de relatórios em formato PDF, utilizando
funções simples e poderosas. O FPDF é um Software Livre (e gratuito), o que
significa que você poderá utilizá-lo livremente para uso pessoal ou comercial,
além de poder modificá-lo e estudar seu código-fonte, ao contrário da PDFlib,
que exige o pagamento de licenças para uso comercial.
O FPDF possui suporte às principais funções para geração de relatórios, como
por exemplo:
Instalando o FPDF
Vamos criar um formulário com uma lista drop-down (<select>), nela vamos
listar os nomes de clientes cadastrados na base de dados sbfilmes, conforme
imagem abaixo, quando o usuário der um clique no botão imprimir, será
enviado via POST o id do cliente selecionado, o script modelo_pdf2.php
recebe o valor da variável e lista os dados do cliente selecionado no formulário.
Linha 5: Criamos a classe pdf que vai herdar os métodos e objetos da classe
FPDF.
Linha 7: Vamos criar uma função chamada Header, que será o topo da nossa
página em pdf.
Linhas 9 a 17: Nestas linhas da função Header, temos o método Image onde
definimos a imagem que irá aparecer em nosso arquivo pdf, onde (10) e (6) são
as coordenadas da imagem no documento, (30) representa o tamanho da
imagem em milímetros, posso passar a altura e a largura utilizando dois valores
(30), (60), (se omitido é utilizado o tamanho original da imagem).
Outro parâmetro que pode ser passado e o formato da imagem (os seguintes
formatos são válidos: jpg, jpeg, png). Se não especificado, esse valor será
determinado a partir da extensão do arquivo. Abaixo temos um exemplo com
todos os parâmetros:
$pdf->Image('logo.jpg',4,5,150,70,jpg);
Na linha 11 estamos setando a fonte pelo método SetFont(), passamos três
parâmetros básicos, o nome da fonte (Arial), o atributo de formatação B é para
deixar em negrito e o I para itálico, o valor (15) representa o tamanho da fonte.
Na linha 13 temos o método cell() que será bastante utilizado, então vamos
entender como este método funciona.
Método Cell()
P: Portrait (Retrato);
L: Landscape (Paisagem);
Em Unidade podemos informar os valores:
pt: para pontos;
mm: para milímetros;
cm: para centímetros;
in: para polegadas;
E em Formato:
A3;
A4;
A5;
Letter;
Legal;
Na linha 32: Defini um alias para o número de páginas, se não for informado
nenhum assume o default.
Na linha 33: Adiciona uma nova página.
Linha 37: Nesta linha recebemos o valor da tag <select> que será
armazenado na variável $id_cliente.
Linha 39: Agora faremos a consulta para obter os dados do cliente, através do
valor selecionado no formulário, vamos trazer todos os dados do cliente onde o
idcliente que é o nome do campo da tabela, for igual a $id_cliente, que obteve
o valor através do método POST do formulário.
Linhas 40 a 46: Temos o laço onde ira adicionar as cell() com os valores
obtidos da consulta, concatenando o nome do campo para mostrar no pdf e o
valor do registro da tabela.
Linha 49: Nesta linha é criado o arquivo PDF através do método output(). Se o
navegador tiver o plugin Adobe Acrobat Reader instalado, o documento será
aberto pelo próprio navegador. Caso contrário, ele pedirá para fazer o
download do PDF gerado.
Abaixo serão apresentados alguns frameworks que vamos conhecer que são:
CakePHP, Symfony, Zend Framework e Solar Framework.
Os frameworks são bastante utilizados em projetos complexes, e que utilizam
algum padrão de desenvolvimento como MVC, que é a separação da estrutura
da aplicação em três partes distintas: Modelo, Visão e Controle:
• Modelo: gerencia os dados da aplicação.
• Visão: gerencia a saída gráfica e textual da parte da aplicação visível ao
usuário.
• Controle: interpreta as entradas de mouse e teclado do usuário, comandando
a Visão e o Modelo para se alterarem de forma apropriada.
Os frameworks, sejam elas escritas em PHP ou em qualquer outra linguagem,
oferecem ao programador um conjunto de códigos prontos que permitem
realizar as tarefas mais básicas no desenvolvimento de um aplicativo. Por
oferecer essa estrutura básica, os frameworks tornam o desenvolvimento mais
rápido e reduzem o volume de código repetitivo escrito pelo programador.
Não Configuração
Nada de XML complicado ou arquivos YAML. Basta configurar seu banco de
dados e você estará pronto para utilizar.
Licença amigável
CakePHP é licenciado sob a licença MIT que o torna perfeito para o uso em
aplicações comerciais.
Proteger
CakePHP vem com built-in ferramentas para validação de entrada, proteção
CSRF, proteção adulteração Form, prevenção de injeção SQL, prevenção XSS,
ajudando você a manter seu aplicativo seguro.
O symfony foi escrito inteiramente em PHP 5. Ele foi testado em vários projetos
do mundo real, é na verdade, no uso de alta demanda em sites de negócio. Ele
é compatível com a maioria das bases de dados disponíveis, incluindo o
MySQL, PostgreSQL, Oracle e Microsoft SQL Server. No site do projeto
http://symfony.com/, podemos fazer o download deste framework.
Ele roda em plataformas Windows e Unix. Abaixo temos às suas
características.
Características symfony
O symfony foi construído a fim de cumprir os seguintes requisitos:
Este framework tem como meta facilitar sua vida de programação, não apenas
em geral, instituindo o padrão MVC, mas também para coisas específicas que
você tende a fazer o tempo todo, como acessar bancos de dados e geração de
arquivo PDF.
futuro).
Referências Bibliográficas
Silva, M. S. jQuery Mobile Desenvolva aplicações web para dispositivos móveis. Novatec.
Silva, M. S. Jquery Ui - Componentes de Interface Rica Para Suas Aplicações Web. Novatec .