Вы находитесь на странице: 1из 102

Governador

Cid Ferreira Gomes

Vice Governador
Domingos Gomes de Aguiar Filho

Secretria da Educao
Maria Izolda Cela de Arruda Coelho

Secretrio Adjunto
Maurcio Holanda Maia

Secretrio Executivo
Antnio Idilvan de Lima Alencar

Assessora Institucional do Gabinete da Seduc


Cristiane Carvalho Holanda

Coordenadora da Educao Profissional SEDUC


Andra Arajo Rocha
PHP/MYSQL
MANUAL DO (A) ALUNO (A)

Agosto/ 2013
FORTALEZA/CEAR
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Sumrio
Apresentao ............................................................................................................................................................. 4

1. Formulrios e listagens ..................................................................................................................................... 5

1.1. Inputs. .......................................................................................................................................................... 5

1.1.1. Checkbox. ............................................................................................................................................... 8

1.1.2. Radio. ....................................................................................................................................................... 9

Exerccios Prticos .......................................................................................................................................... 11

Desafio...............................................................................................................................................................11

1.2. Select. .................................................................................................................................................... 11

1.3. Tabelas. ................................................................................................................................................. 12

1.4. Listas...................................................................................................................................................... 13

Exerccio de Aprendizagem ........................................................................................................................... 14

1.1. Formulrios. .......................................................................................................................................... 14

1.1.1. Formulrio de cadastro. ...................................................................................................................... 15

1.1.2. Listar dados de cadastro. ................................................................................................................... 15

1.1.3. Remover elementos da lista. ..............................................................................................................17

Exerccios Prticos .......................................................................................................................................... 18

2. Funes em PHP ............................................................................................................................................. 19

2.1. Escrevendo Funes........................................................................................................................... 20

2.2. Require e Include .................................................................................................................................21

2.3. Funo date( ) ...................................................................................................................................... 21

3. Manipulao de arquivos e diretrios ...........................................................................................................23

3.1. Trabalhando com Arquivos................................................................................................................. 23

3.2. Abrir e Fechar um Arquivo .................................................................................................................. 25

Exerccios Prticos .......................................................................................................................................... 25

3.3. Ler a partir de um Arquivo .................................................................................................................. 25

3.4. Escrevendo uma String em um Arquivo ........................................................................................... 27

3.5. Upload.................................................................................................................................................... 28

3.6. Download .............................................................................................................................................. 30

Exerccios Prticos .......................................................................................................................................... 31

4. Rede de Comunicaes.................................................................................................................................. 32
PHP/MySQL [Informtica] 2
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

4.1. DNS, Servios e Servidores ................................................................................................................... 32

4.2. Mail .............................................................................................................................................................36

4.5. Diretrizes de Configurao ..................................................................................................................... 37

4.6. Enviando Email Usando um Script PHP .......................................................................................... 38

5. Manipulao de dados .................................................................................................................................... 40

5.1. Projeto Vdeo Locadora. ......................................................................................................................... 40

Exerccio Prtico .............................................................................................................................................. 42

5.2. Acesso nativo ....................................................................................................................................... 43

5.3. Interface do phpmyadmin ................................................................................................................... 45

Exerccios Prticos .......................................................................................................................................... 46

5.4. Tratamento de erros ............................................................................................................................ 47

5.5. Sesso ................................................................................................................................................... 49

Exerccio de Aprendizagem ........................................................................................................................... 51

5.6. CRUD ..................................................................................................................................................... 56

5.6.1. Insero ................................................................................................................................................. 56

Exerccio Prtico .............................................................................................................................................. 59

5.6.2. Alterao ............................................................................................................................................... 59

5.6.3. Excluso ................................................................................................................................................ 64

Exerccio Prtico .............................................................................................................................................. 68

5.6.4. Usando SQL no PHP........................................................................................................................... 70

5.6.5. Consulta ................................................................................................................................................ 76

5.7. Relatrios. ............................................................................................................................................. 79

6. Frameworks para desenvolvimento em PHP .................................................................................. 85

6.1. Solues de framework do PHP ........................................................................................................85

6.2. O CakePHP Framework ..................................................................................................................... 86

6.3. O Solar Framework.............................................................................................................................. 87

6.4. O symfony Framework ........................................................................................................................ 89

6.5. O Zend Framework .............................................................................................................................. 90

Referncias Bibliogrficas ........................................................................................................................................... 92

ndice de Tabelas ........................................................................................................................................................ 93

PHP/MySQL [Informtica] 3
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Apresentao
O manual apresenta uma serie de praticas dividido em seis fases, inicialmente
trabalhamos com a unio de conhecimentos adquiridos em disciplinas anteriores, e vamos
aprofundando o conhecimento da linguagem PHP e a integrao com o banco de dados.

Abaixo a diviso das fases

1. Formulrios e listagens.
a. Trabalhamos com a integrao da linguagem PHP com os formulrios, criando
exemplos dinmicos de formulrios com o uso de arrays.
2. Funes em PHP.
a. Iremos conhecer algumas funes prprias do PHP que podem ser uteis em
nossa vida profissional como desenvolvedor web.
3. Manipulao de arquivos e diretrios.
a. Estudaremos a manipulao de arquivos no servidor web, bem como construir
scripts para realizar o upload de arquivos entre outros.
4. Rede de Comunicaes.
a. Conheceremos recursos e servios que podemos trabalhar com nosso servidor,
iremos trabalhar com scripts de envio de email.
5. Manipulao de dados.
a. Este um dos grandes pontos deste material, iremos realizar varias praticas de
integrao com o banco de dados MYSQL, aprender a criar um CRUD.
6. Frameworks para desenvolvimento em PHP.
a. Estudaremos alguns frameworks utilizados em PHP para aperfeioar o trabalho
do programador web.

Elaborado no intuito de qualificar o processo de formao, este Manual um


instrumento que se constitui como um mediador para facilitar o processo de ensino-
aprendizagem em sala de aula.

importante que o (a) aluno (a) compreenda o propsito do mtodo do curso, e assim,
se aproprie do contedo e da metodologia proposta por meio das atividades, Esperamos
contribuir com a consolidao do compromisso e envolvimento de todos (professores e alunos)
na formao desses profissionais.

PHP/MySQL [Informtica] 4
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Formulrios e listagens
Nesta aula vamos codificar formulrios HTML, realizando o processamento dos inputs do
usurio atravs do PHP, estes processamentos sero feitos agora no lado servidor (Server-
side) nas disciplinas passadas trabalhamos com formulrios web, folhas de estilos CSS,
JavaScript e um pouco da sintaxe PHP.

Nesta Fase vamos praticar a construo de pginas com formulrios, sendo tratados no lado
servidor trabalhando com requisies do usurio.

1.1. Inputs.
Nesta aula vamos trabalhar com o elemento input e com seus atributos, sendo processados
com scripts PHP, Vamos comear com uma situao bem simples, precisamos criar um
formulrio que receba o nome de uma pessoa e mostre-o abaixo. Como na imagem abaixo.

Vamos executar esta tarefa de duas formas uma chamando a pgina form_inputs.php e outra
atravs de uma varivel global.
Vamos criar um formulrio como mostrado na imagem acima, o nome do arquivo PHP ser
form_inputs.php.
Agora vamos codificao.

Neste exemplo na linha 16 a 19 tenho o cdigo em PHP, onde definido que a varivel
$qtde_lista vai receber uma varivel do mtodo post [tx_nome], este valor recebido do
elemento input o qual tem o nome e id tx_nome, quando formulrio submetido pelo post este
valor armazenado na varivel $qtde_lista, depois exibido na pgina pelo echo na linha 18.
Observe que o action do formulrio vai chamar ele mesmo, ou seja, tem o mesmo nome do seu
arquivo PHP criado no inicio desta aula, desta forma fazemos a chamada dele mesmo, tudo
que estiver dentro do bloco PHP ser executado.
Agora vamos modificar este exemplo, usaremos agora uma varivel global j definida no PHP,
mais ser que possvel?
Em situaes que se estiver postando dados de volta ao mesmo script ou formulrio que
ele originou, podemos utilizar a varivel superglobal <?php echo $_SERVER['PHP_SELF'];?>
o script PHP ser automaticamente designado a esta varivel.

PHP/MySQL [Informtica] 5
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Vamos ao exemplo;

Nas situaes acima uma boa pratica utilizar-se de instrues condicionais para especificar o
que ser executado, caso no tenha ou no necessite tudo que estiver no script ser
executado.
Variveis superglobais
H vrias variveis pr-definidas no PHP so chamadas de "superglobais", que significa que
elas esto disponveis em todos os escopos para todo o script. No h necessidade de fazer
global $variavel; para acess-la dentro de funes ou mtodos.
Abaixo temos uma tabela com as variveis superglobais:
Variveis Descrio
$GLOBALS Um array associativo contendo referncias para todas as variveis que
esto atualmente definidas no escopo global do script. O nome das variveis
so chaves do array.
$_SERVER $_SERVER um array contendo informao como cabealhos,
paths(caminhos), e localizaes do script. As entradas neste array so
criadas pelo servidor web.
Neste link temos a lista completa de variveis reservadas usadas em PHP
http://www.php.net/manual/pt_BR/reserved.variables.server.php
$_GET Um array associativo de variveis passadas para o script atual via o mtodo
HTTP GET.
$_POST Um array associativo de variveis passado para o script atual via mtodo
HTTP POST.
$_FILES Um array associativo de itens enviado atravs do script atual via o mtodo
HTTP POST, utilizado em arquivos de variveis para Upload.
$_COOKIE Um array associativo de variveis passadas para o atual script via HTTP
Cookies1.
$_SESSION Um array associativo contendo variveis de sesso disponveis para o atual
script. Neste manual nas prximas aulas entraremos com mais detalhes
sobre esta varivel global.
$_REQUEST Um array associativo que por padro contm informaes de $_GET,
$_POST and $_COOKIE.
$_ENV Um array associativo de variveis passadas para o script atual via o mtodo
do ambiente.
Estas variveis so importadas para o PHP do ambiente sob o qual o
parser do PHP executado.
Tabela 1 - Variveis Globais Fonte: http://php.net/manual/pt_BR/language.variables.superglobals.php

1
um grupo de dados trocados entre o navegador e o servidor de pginas.

PHP/MySQL [Informtica] 6
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

As variveis globais acima citadas sero utilizadas nas prximas aulas, onde veremos
exemplos de como podemos trabalhar com elas.
Neste exemplo vamos mostrar o valor de uma varivel PHP sendo mostrado dentro do input,
para revisar vamos utilizar uma situao problema que envolve a utilizao de uma estrutura de
deciso.
2 Exemplo: Criar um formulrio que efetue a entrada dos valores de medida de trs pesos
aferidos de forma aleatria. No formulrio deve ser mostrado em
um input bloqueado com o maior peso aferido.
Entendendo o problema:
Para realizarmos esta tarefa vamos criar trs variveis
referentes aos valores
que sero recebidos
pelos pesos aferidos.
Ser necessrio
utilizarmos uma
estrutura de deciso
neste exemplo o IF.

No input onde receber o valor iremos colocar o cdigo PHP no atributo value
(value="<?php echo $maior_peso; ?>").

Agora vamos ver como ficou o formulrio completo.

PHP/MySQL [Informtica] 7
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

1.1.1. Checkbox.
Neste exemplo vamos trabalhar com o input do tipo checkbox, iremos criar um formulrio com
opes de atividades esportivas, o usurio seleciona suas atividades, que sero mostradas em
outra pgina.
Em PHP iremos criar um array para armazenar as atividades esportivas, iremos criar um
checkbox e usaremos a estrutura de repetio foreach, para criar a quantidade de checkbox
correspondente ao array, logo se no array tivermos seis atividades sero criados seis
checkboxs.
Este ser o resultado final do nosso formulrio, agora vamos construo do mesmo.
Na estrutura do cdigo abaixo temos;
Uma pgina chamada form_chkbox.php e
um formulrio chamado form_list_ativ.
Teremos que criar uma pgina em PHP que
ser chamada de sel_atividades.php, nela
ser mostrado o resultado das preferncias
selecionadas.
Na pgina inserimos um
trecho PHP, no qual
criamos um array
chamado $esportes nas
linhas 13 a 21.
Linha 24: Usamos uma
estrutura de repetio
foreach nesta estrutura
definimos dentro do
parntese 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 condio 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 varivel
$value que recebeu cada valor do array $esportes, desta forma o valor de cada checkbox foi atribudo.
O elemento label usado para exibir os valores do array na pgina.
No action do formulrio chamamos a pgina sel_atividades.php, com o cdigo PHP mostrado abaixo.

Nesta pgina embutidos o cdigo PHP,


para mostrar as atividades selecionadas
pelo usurio na pgina anterior.
Linha 15: Declaramos a varivel
$lista_ativ que recebe os valores da
requisio post $_POST[ativ_esport]
ativ_esport o nome do checkbox criado
na pgina anterior.

PHP/MySQL [Informtica] 8
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Linha 16: Atravs do foreach listamos os valores do array que o usurio selecionou.
Ao lado temos o resultado da execuo desta prtica.

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 pgina o cdigo do estado civil, simulando o envio destas
informaes a um banco de dados.

Neste exerccio vamos criar duas pginas uma ser chamada de form_radio.php e a outra
result_radio.php.
Na pgina form_radio.php.
1 passo: Criaremos um array multidimensional, onde teremos em uma posio deste array
outro array, no primeiro teremos a descrio do estado civil e no outro o cdigo de
identificao, Um array multidimensional pode ser entendido como uma matriz.

2 Passo: Agora vamos montar a estrutura da pgina, exibindo os valores do array criado
anteriormente, usaremos dois laos de repetio, um para mostrar os valores do array e outro
para enviar o valor do id para outra pgina.

PHP/MySQL [Informtica] 9
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Linha 28: Por se tratar de um array dimensional importante saber quantos nveis ele tem,
neste exemplo temos dois, o primeiro nvel temos os tipos estado civil e no segundo temos o ID
correspondente, logo teremos que ter dois laos de repetio em cadeia, ou seja, um dentro do
outro. Na declarao desta linha fazemos a interao do array $est_civil para cada interao
$value uma nova interao (=> $id_chave), neste
exemplo o $value armazena o tipo de estado civil (ex:
casado, solteiro, divorciado...).
Linha 31 e 32: Nesta Linha temos o input do tipo radio
com o nome radioEstC[], no atributo value deste input,
inserimos o outro loop que ir armazenar os IDs dos tipos
de estado civil,agora temos a interao $id_chave para
cada interao $id uma nova interao (=>$vl), esta por
sua vez agora armazena os IDs dos tipos de estado civil.
Na imagem ao lado vemos como ficar a pgina.

Na pgina result_radio.php
Linha 15: Nesta linha recebemos o
valor do input da pgina anterior
atravs do mtodo post.
Linha 18: Como o nosso array
dimensional j foi devidamente
tratado na pgina anterior, passando
apenas o valor do campo ID para a
varivel $idRadio fazendo as
interaes para $valor, sendo assim
exibido na pgina o ID do estado civil
escolhido.

PHP/MySQL [Informtica] 10
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Exerccios Prticos

1) A loja MOVEISVIP esta vendendo os seus produtos parcelados no carto de credito,


Faa um aplicativo web que receba o valor da compra e mostre o valor das parcelas, o
usurio dever escolher em quantas vezes que o parcelamento, que podem ser em 5x,
8x e 10x sem juros.

2) Crie um array multidimensional baseado na tabela abaixo.


Cdigo da Nome da categoria
categoria
1 Produtos de Limpeza
2 Produtos Alimentcios
3 Produtos de consumo

Desafio
1. Crie uma pagina web em PHP com um questionrio de 10 perguntas, onde o usurio
responder as perguntas e no final dever ser emitido o resultado dele, informar quantas
perguntas ele acertou.

1.2. Select.
Para exemplificar a utilizao deste componente, criaremos uma pgina web onde o usurio
deve escolher uma cidade para visitar, aps a sua escolha ser mostrada uma mensagem
abaixo agradecendo a visita, como no exemplo abaixo.

Vamos distribuir esta tarefa em passos.


1 Passo: Criar uma pgina chamada form_cidades.php, nela vamos inserir o elemento <select>
dentro de um form.
2 Passo: Criar um array usando a funo array(), mostramos aqui uma outra forma de criar um array.

3 Passo: Vamos entender a estrutura desta pgina, 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 prximos passos.

PHP/MySQL [Informtica] 11
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Linha 28: Nesta linha temos dois pontos importantes, o atributo value recebe o valor do array,
isso utilizado para passar o valor selecionado pelo usurio, o que esta entre o <option>
</option> ser mostrado ao usurio quando a pgina for carregada.
4 Passo: Agora vamos criar o script PHP chamado visitar_cidade.php, ele ser responsvel
por receber o valor selecionado pelo usurio na pgina anterior e exibir uma mensagem.

1.3. Tabelas.
Nesta aula usaremos um array multidimensional, criaremos uma pgina web com os cargos e
salrio em TI, que ser mostrado em uma tabela, como na imagem abaixo.

Criao do array multidimensional.


Criamos uma pgina PHP com o nome
form_tabela.php, e nela criaremos um array chamado
$cargos_salarios, conforme abaixo;

Abaixo a estrutura da
pgina, onde temos uma tabela com os campos Cargo e Salrio vindos do array.

Este exemplo bem parecido com o anterior, ento podemos observar que a lgica de
utilizao dos arrays multidimensionais a mesma, precisamos apenas saber onde queremos
que as informaes devam aparecer.

PHP/MySQL [Informtica] 12
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Neste exemplo fazemos a interao do array $cargos_salarios para cada interao $valor
uma nova interao (=> $vl_sal), onde $valor recebe a descrio do cargo, no outro loop
temos a interao de $vl_sal para cada interao $vlr uma nova interao (=>$vl_sals) esta
armazena o valor do salrio de acordo com o cargo.

1.4. Listas.
Neste exerccio vamos criar um menu para acessar todos os exemplos anteriores, tambm
usaremos um pouco de jquery ui.
Abaixo temos uma imagem de como ficar o nosso menu, este exerccio vamos dividir em
partes ou passos para melhor entendimento.

Para este exerccio vamos criar em nosso projeto um


diretrio chamado jquery, nele vamos colocar os
arquivos necessrios jquery-1.8...js, jquery-ui.js e a
folha de estilo jquery-ui.min.css.

Criaremos um array multidimensional para armazenar


o texto do menu e o seu link.

Depois iremos incorporar o cdigo PHP em uma lista,


abaixo veremos os passos de forma detalhada.

1 Passo: Vamos inserir as tags script e chamar os scripts JavaScript como mostrados na imagem
abaixo.

Nas linhas 14 a 18 Criamos uma funo que chama outra funo do jquery UI, onde a mesma
defini que ser aplicado no seletor css #menu.

Nas linhas 19 a 21 aplicamos o tamanho da rea do menu.

2 Passo: Criao do array, abaixo criamos um array para armazenar o texto do menu e o link
correspondente.

PHP/MySQL [Informtica] 13
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

3 Passo: Na linha 39 iniciamos o lao de repetio para percorrer todos os elementos do


array.

Como podemos observar na linha 41 que corresponde a tag <li>, adicionamos a tag <a> e nela
incorporamos o cdigo PHP, na varivel $links colocamos na propriedade href, o nosso link, a
varivel $valor ir mostrar o texto do nosso link.

Exerccio de Aprendizagem
Estudo de caso da empresa de reserva de passagens areas Gato Ajato

1.1. Formulrios.
Nesta aula vamos desenvolver formulrios dinmicos, em nossa problemtica temos que
desenvolver um web site, A empresa de reserva de passagens areas Gato Ajato foi quem
solicitou o prottipo.
Foi solicitado aos projetistas que a web site efetue reserva de passagens areas da
companhia.
Dever cadastrar os nmeros (ID) dos avies e o nmero de lugares disponveis em cada um.
O home dever mostrar o seguinte menu de opes:
1. Cadastrar avies.
a. Com nmero de lugares disponveis em cada avio.
2. Cadastrar Passageiros, com os campos nome, CPF, sexo, endereo, cidade.
3. Reservar passagem.

PHP/MySQL [Informtica] 14
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

a. Checar se no avio escolhido, ainda existe lugar disponvel. 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 avio.
5. Consultar passageiro.

1.1.1. Formulrio de cadastro.


Nesta aula vamos praticar, desenvolvendo os formulrios pedidos na problemtica acima, o
objetivo desta aula dinamizar formulrios utilizando os arrays e os elementos HTML.

Mo a obra, vamos montar o cadastro de passageiros, vamos agora iniciar a dinamizar um


formulrio, trabalhando com os recursos aprendidos das aulas anteriores.

Vamos observar as tarefas a serem cumpridas nesta aula.

A gato Ajato solicitou um web site, para este intuito devemos criar um layout para este projeto,
e as pginas a seguir;

Pgina index.php; com o menu usando jquery no menu ser possvel navegar nas outras
pginas, conforme problemtica apresentada anteriormente.

Cadastro de Passageiros, com os campos nome, CPF, sexo, endereo, cidade.


Cadastro de avies, com os campos modelo, pais de origem, nmero de lugares.

1.1.2. Listar dados de cadastro.


Nesta aula vamos aprender a fazer uma busca em um array, com este conhecimento adquirido
podemos cumprir as tarefas de consulta que necessitam o site em questo.

Abaixo temos a pgina de exemplo que ser desenvolvida nesta aula.

Vamos criar uma pgina chamada de consulta.php, nela temos que criar um array com o
nome de $passageiros para realizar a busca pelo nome do passageiro.

PHP/MySQL [Informtica] 15
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

No formulrio no atributo action chamaremos a prpria pgina de consulta.

Linha 23: Recebemos o valor do input busca atravs do mtodo post, o valor que o usurio
digitar ser armazenado na varivel $busca.
Linha 25: Temos aqui uma instruo de deciso se a varivel $busca for verdadeira, ou seja
conter um valor, a linha 26 executada. Na linha 26 criamos a varivel $cons_passageiros,
esta recebe o valor da funo preg_grep que retorna as entradas do array $passageiros que
combinaram com um padro repassado, /^$buscar/ neste exemplo usamos o que
conhecido como expresses regulares, onde se define um padro a ser usado, ento com o
operador ^ indica que a expresso deve iniciar com a string dada, logo em nossa expresso
ser verificado os primeiros caracteres digitados no input de busca.
Linha 29: Nesta condio o valor do input for igual null retorna todos os dados do array
$passageiros, onde os valores do array so armazenados em um outro array chamado
$cons_passageiros.

Preenchendo os dados do array na tabela, vamos utilizar agora um velho conhecido das aulas
anteriores o foreach, definiu-se na tabela o nome da coluna, e a linha onde devem aparecer os
valores do array.

PHP/MySQL [Informtica] 16
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

1.1.3. Remover elementos da lista.

Nesta aula vamos aprender a remover um elemento de um array, em nosso exemplo temos
uma pgina chamada remover.php.
Vamos criar uma lista de modelos de avies, o usurio quando de um clique no modelo o id
que a chave do array, ser enviado atravs do mtodo get, ao ser recebido o valor da chave
ser removido usando a funo unset().

Nas linha 15 a18: Temos a criao do nosso array, com os modelos de avies.
Linha 20: Declaramos uma varivel chamada $remov que recebe um valor pelo mtodo get.
Nas linhas 21 a24: Temos um loop onde para recuperar todos os valores do array, a funo
unset() recebe o array e a chave ou ndice do array que ser removido, este valor recebido
atravs da varivel $remov.
Para exibir na pgina criamos um novo loop, e neste definimos a varivel que receber a
chave do array($chave), e a outra que ser usada para exibir os modelos de avies na pgina.
Na linha 31: Observamos que na tag <a> usamos o atributo href para passar o link da pgina
que ser chamada, no caso ela mesma e o parmetro de URL chamado id, logo para
passarmos parmetros pelo URL utilizaremos esta sintaxe, nome da pgina (remover.php)
mais o nome do parmetro e o valor que ser recebido (?id=).

PHP/MySQL [Informtica] 17
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Exerccios Prticos

1) Vamos criar um formulrio web que para cadastrar uma lista de contatos, com os campos;
nome, endereo, telefone, cidade.

2) Crie um formulrio para cadastro de 15 palavras chaves, estas palavras devem ser
armazenadas em um array e exibidas em outra pgina web, usando checkboxs.

3) Uma empresa prestadora de servios tem uma lista de 10 servios, onde desta lista um
precisa ser removido, utilizando arrays e a funo unset(), crie uma pgina para remover o
servio conforme a escolha do usurio.

4) Vamos criar um array com o modelo de avies, e criar uma consulta de modelos de avies.

5) Faa um web site que realize um cadastro de contas bancrias com as seguintes
informaes: nmero da conta, nome do cliente e saldo. O banco permitir o cadastramento
de contas e no poder haver mais que uma conta com o mesmo nmero. Crie o menu de
opes a seguir.
Menu de opes:
Cadastro de contas de determinado cliente.
Consultar contas de determinado cliente.
Excluir um cliente.
Sobre, com os dados dos desenvolvedores do projeto.

PHP/MySQL [Informtica] 18
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

2. Funes em PHP
Nesta aula vamos conhecer algumas funes, que podem ser uteis em nossa caminhada como
desenvolvedor PHP, abaixo uma relao de funes para arrays, que podemos utilizar como
referncia. No site da linguagem temos diversas referncias sobre vrias funes da
linguagem, veja no link http://www.php.net/manual/pt_BR/funcref.php

Funes para Array


Funo Descrio
array_change_key_case Modifica todas as chaves em um array
array_chunk Divide um array em pedaos
array_column Retorna os valores de uma nica coluna no array de entrada
array_combine Cria um array usando um array para chaves e outro para valores
array_count_values Conta as frequncias de cada valor de um array
array_flip Inverte as relaes entre chaves e valores
array_key_exists Checa se uma chave ou ndice existe em um array
array_keys Retorna todas as chaves de um array
array_merge Junta um ou mais arrays
array_multisort Ordena mltiplos arrays ou arrays multidimensionais
array_pop Retira um elemento do final do array
array_product Calcula o produto dos valores de um array
array_push Adiciona um ou mais elementos no final de um array
array_rand Retorna um ou mais elementos aleatrios de um array
array_replace Replaces elements from passed arrays into the first array
array_reverse Retorna um array com os elementos na ordem inversa
array_search Procura por um valor em um array e retorna sua chave
correspondente caso seja encontrado
array_shift Retira o primeiro elemento de um array
array_slice Extrai uma parcela de um array
array_splice Remove uma parcela do array e substitui com outros elementos
array_sum Calcula a soma dos elementos de um array
array_unique Remove valores duplicados de um array
array_unshift Adiciona um ou mais elementos no incio de um array
array_values Retorna todos os valores de um array
array Cria um array
asort Ordena um array mantendo a associao entre ndices e valores
count Conta o nmero de elementos de uma varivel, ou propriedades
de um objeto.
current Retorna o elemento corrente em um array
each Retorna o par chave/valor corrente de um array e avana o seu
cursor
in_array Checa se um valor existe em um array
PHP/MySQL [Informtica] 19
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

key Retorna uma chave de um array


ksort Ordena um array pelas chaves
list Cria variveis como se fossem arrays
next Avana o ponteiro interno de um array
prev Retrocede o ponteiro interno de um array
range Cria um array contendo uma faixa de elementos
reset Faz o ponteiro interno de um array apontar para o seu primeiro
elemento
rsort Ordena um array em ordem decrescente
sort Ordena um array
Tabela 2 - Funes para Array

2.1. Escrevendo Funes.


Vamos escrever algumas funes, primeiramente criaremos uma funo para converter
palavras em maiscula ou minscula, usaremos duas funes do PHP a strtoupper() para
maiscula e strtolower() para minscula.

Vamos criar uma pgina e criar o formulrio abaixo;

Temos no select os valores que sero passados para a nossa funo.


Abaixo temos o trecho de cdigo PHP que pode ser utilizado na mesma pgina, ou em outra
pgina.
Inicialmente recebemos atravs do post, o
valor de duas variveis, a $vlr recebe o
valor escolhido pelo usurio se a opo de
converso dele maiscula ou minscula. A
outra varivel $texto recebe o texto digitado
pelo usurio.
Na linha 26 chamamos a funo e
passamos dois parmetros, um com o valor
para ser comparado no if, e outra com o
texto que ser convertido, conforme a opo
do usurio.

PHP/MySQL [Informtica] 20
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Outras Funes

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 so aspas simples (), aspas duplas (), barra invertida (\) e NUL (o byte NULL).
Exemplo:

Stripslashes
Stripslashes (string $variavel ) Caso queira retirar caracteres indevidos utilizamos esta
funo, ele retira as \;
Exemplo:

2.2. Require e Include

include(): Esta funo tenta incluir uma pgina. Em caso de algum erro, o script retorna um
warning (aviso) e prossegue com a execuo do script. Aceita a passagem de variveis (GET)
na string.

Require(): Tenta incluir uma pgina. Em caso de erro, o script retorna um fatal error (erro
fatal) e aborta a execuo do script. E no prossegue com a execuo do script. No aceita a
passagem de variveis (GET) na string.

include_once() e require_once(): Idnticas as suas funes simples, porm se o arquivo


referenciado j foi incluso na pgina anteriormente, a funo retorna false e o arquivo no
includo.

2.3. Funo date( )


Nesta aula vamos trabalhar com uma funo de manipulao de datas, com esta funo
podemos obter a data e hora do servidor onde o PHP esta rodando.
Exemplo 01: Neste exemplo temos a aplicao da funo date(), o resultado ser a data no
formato dd/mm/aaaa, caso o meu objetivo fosse obter o ano por exemplo, basta usar
date(Y).

PHP/MySQL [Informtica] 21
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Exemplo 02: O resultado do exemplo abaixo este: Hoj July 23, 2013, apresentando o
ms por extenso.

Exemplo 03: Verifica se o servidor esta em horrio de vero ou normal.

Exemplo 04: Exibir a data por extenso.

Exemplo 05: Exibindo a data e a hora no formato 27/05/2013 22:16:02

PHP/MySQL [Informtica] 22
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

3. Manipulao de arquivos e diretrios


Nesta fase vamos aprender a manipular arquivos no servidor, desde a criao, leitura de
arquivos, aprender um pouco sobre download e upload.

3.1. Trabalhando com Arquivos


Vamos conhecer uma srie de funes para manipulao de arquivos, abaixo temos uma
tabela com algumas funes.
Funo Descrio
fopen() Abre um arquivo para que possa ser manipulado.
fgets() Pega uma linha do arquivo at o mximo de 1024 bytes.
feof() Durante a leitura de um arquivo, avisa se chegou ao final.
file_get_contents() Pega todo contedo do arquivo aberto como uma string.
ftruncate() Reduz o tamanho do arquivo. Usado para apagar seu contedo.
fwrite() Escreve no arquivo.
unlink() Apaga o arquivo indicado.
Tabela 3 Funes de manipulao de arquivos
Antes de qualquer coisa precisamos ter um arquivo para manipula, ou entender como cria-lo,
para que depois do mesmo existir, podermos acrescentar contedo, abri-lo e exclu-lo.
No momento em que o recurso aberto ou criado, precisamos definir o nvel de acesso
disponvel para o recurso em questo, abaixo temos os modos de arquivos retirados da
documentao do PHP.
Modo Descrio
'w' Abre o arquivo somente para a escrita, coloca o ponteiro do arquivo no comeo do
arquivo e diminui (trunca) o tamanho do arquivo para zero. Caso o arquivo no
exista, tenta cri-lo.
'w+' Abre o arquivo para leitura e escrita, coloca o ponteiro do arquivo no incio e diminui
(trunca) o tamanho do arquivo para zero. Se o arquivo no existe, tenta cri-lo.
'r' Abre o arquivo somente para leitura, coloca o ponteiro de escrita no comeo do
arquivo. Caso o arquivo no exista retorna um erro e no tenta cria-lo.
'r+' Abre para leitura e escrita, coloca o ponteiro de escrita no comeo do arquivo.
Retorna um erro caso o arquivo no exista e o mesmo no criado.
'a' Abre somente para escrita, coloca o ponteiro do arquivo no final. Se o arquivo no
existir, tenta cri-lo.
'a+' Abre o arquivo para leitura e escrita; coloca o ponteiro do arquivo no final. Se o
arquivo no existir, tenta cri-lo.
'x' Cria e abre o arquivo somente para escrita, coloca o ponteiro no incio do arquivo. Se
o arquivo j existe, a chamada fopen() ir falhar, retornando FALSE, gerando um erro
nvel E_WARNING. Se o arquivo no existe, tenta cri-lo.
'x+' Cria e abre um arquivo para escrita e leitura; coloca o ponteiro do arquivo no incio.
Se o arquivo j existe, a chamada fopen() ir falhar, retornando FALSE, gerando um
erro nvel E_WARNING. Se o arquivo no existe, tenta cri-lo.
Tabela 4 Modos de Arquivos

PHP/MySQL [Informtica] 23
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Agora que j entendemos como funciona o modo de arquivos, vamos criar o um arquivo para
ser manipulado em outras aulas. Utilizaremos a funo fopen().
Neste exemplo vamos criar um formulrio, nele teremos um input para digitar o nome do
arquivo, e um boto que o chamaremos de criar arquivo.
Podemos tambm criar um script em PHP, para fazer a criao do arquivo com as
especificaes, como nome e extenso do arquivo dentro do cdigo.
Neste exemplo temos um script para criao do arquivo.

Linha 2: Definimos uma varivel que vai receber o valor da funo fopen(), que retornar true
ou false, na funo passamos dois parmetros, o primeiro o nome do arquivo e sua
extenso, o segundo passamos o modo de operao do arquivo, que neste exemplo esta
abrindo o arquivo somente para escrita, caso no exista o cria.
Nas linhas 3 e 4: Se a varivel $arquivo retornar false a funo die() chamada para
apresentar o erro.
Agora vamos para outro exemplo, agora usando mais recursos.
No exemplo abaixo, damos ao usurio a possibilidade de definir qual o nome do arquivo, para
isso criamos uma funo chamada criar_arquivo().

Linha 20: Armazenamos o nome do arquivo na varivel $nome_arq, que obteve o valor do
input nome_arq atravs do mtodo post.
Linha 22: Criamos um if para que a partir daquele trecho s execute a linha 23, se a varivel
do post estiver preenchida, para isso usamos a funo isset().
Linha 23: Nesta linha pegamos o nome do arquivo armazenado na varivel $nome_arq,
usamos o ponto final para concatenar as strings (juntar), adicionado a extenso do arquivo, e
depois passamos o segundo parmetro do mtodo que o modo de operao do arquivo.
Resultado final deste exemplo.

PHP/MySQL [Informtica] 24
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

3.2. Abrir e Fechar um Arquivo


Agora nesta aula vamos aprender a abrir e fechar um arquivo, na aula anterior criamos um
arquivo, neste momento vamos verificar se o arquivo pode ser aberto, em algumas
circunstncias um arquivo pode ser corrompido, se caso o arquivo esteja corrompido no ser
possvel abri-lo.

No exemplo abaixo semelhante ao anterior, porem neste usamos outro modo de operao
r.

Neste exemplo usamos uma ao para quando a condio for falsa, caso no seja possvel
abrir ou encontrar o arquivo. E true caso seja possvel abrir o arquivo, exibindo uma mensagem
ao usurio.
Na linha 21: Usamos a funo fclose(), para fechar o arquivo se ele tiver sido aberto.

Exerccios Prticos
1) Crie uma pgina para criar arquivos para artigos com a extenso *.html, onde o usurio
que deve especificar o nome do arquivo.

2) Crie uma funo para verificar se o arquivo pode ser aberto.

3.3. Ler a partir de um Arquivo


Para realizar a leitura de um arquivo, podemos utilizar duas funes que veremos abaixo, outro
detalhe importante quando lemos um arquivo texto pelo PHP, ele apresentado na estrutura
HTML e ocorre um problema com os caracteres acentuados, apresentando caracteres
indesejados.
Para resolver este problema, na pgina que iremos mostrar a leitura do arquivo, temos que o
setar no cabealho da pgina PHP o charset, isso necessrio tambm quando tivermos
trabalhando com banco de dados.
PHP/MySQL [Informtica] 25
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

No inicio da pgina embutimos o cdigo PHP acima na linha 8, onde estamos passando o
charset ISO-8859-1.
Na linha 12: No HTML fazemos a alterao na tag meta, onde inserido o mesmo charset
ISO-8859-1.

A funo fgets() pega uma linha do arquivo, no exemplo abaixo fazemos a leitura do arquivo
texto.txt, o mesmo encontra-se no raiz do site por este motivo passamos seu nome direto,
caso esteja dentro de algum outro diretrio dever ser informado.

Linha 30: Nesta linha fazemos a leitura do arquivo.


Linha 33: Criamos a varivel $linha, onde ele recebe o valor da funo fgets() que realizou a
leitura do arquivo, pegando a primeira linha. Na linha 34 mostramos o que foi lido pela funo.

A funo file_get_contents() pega todo contedo do arquivo aberto como uma string, vamos
fazer o exemplo abaixo.
Neste exemplo vamos fazer a leitura de um arquivo com a extenso HTML, o mesmo deve ter
um contedo um texto, por exemplo, o contedo do arquivo ser mostrado dentro de um
<textarea>.

PHP/MySQL [Informtica] 26
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Como podemos observar na imagem acima, praticamente a mesma estrutura, o que muda
a funo, que a mesma permite que seja lido todo o arquivo.

Ao lado temos o resultado desta aula, o arquivo HTML


sendo apresentado em um <textarea>.

3.4. Escrevendo uma String em um Arquivo


Nesta aula vamos criar uma pgina para o usurio escrever um artigo, usaremos a funo
fwrite() para inserir um contedo no arquivo, e o modo de operao do arquivo W+, para se o
arquivo no existir o mesmo ser criado.

Vamos criar uma funo que chamaremos de salvarArquivo(), ela ser chamada no boto
pelo evento onclick.
Linha 21: Aqui passamos o nome do arquivo e o modo de operao, com este modo de
operao se o arquivo no existir o mesmo ser criado.
Linhas 23 e 25: Nestas linhas temos duas estruturas condicionais, a primeira verifica se a
varivel do mtodo post esta preenchida, caso ela esteja passa para a outra condio, o
mtodo fwrite() usado para preencher um arquivo com o contedo de uma string, nesta
condio temos, se a funo no conseguir escrever no arquivo, e chamada a funo die(),
exibindo uma mensagem.
Na imagem abaixo temos como ficara a pgina, o usurio poder escrever o seu contedo, que
ser armazenado no arquivo meuartigo.html no raiz do site.

PHP/MySQL [Informtica] 27
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

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 transferncia 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
pgina para fazer o upload.
Vamos criar uma pgina que chamaremos de form_upload.php, abaixo temos a imagem de
como esta pgina ser apresentada ao usurio.

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
informaes do input file.

PHP/MySQL [Informtica] 28
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

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 contedo.

A chave pasta definimos que pasta no servidor os arquivos sero armazenados, depois na
chave tamanho definido o tamanho mximo do arquivo.
Linha 8: Nesta linha passamos para a chave extensoes um array com as extenses
permitidas.
Linhas 13 a 17: Criamos um array com os tipos de erros que podem ocorrer no upload.
Linha 20 a 22: Aqui temos uma estrutura condicional, que ser verificado se ocorreu algum
erro com o upload, se sim exibir mensagem de erro. Neste trecho usamos a varivel global
$_FILES, que trata especificamente de manipulao de arquivos entre o servidor e o
navegador.
Continuando o script, na linha 25 temos a varivel $extensao, onde ela vai receber a extenso
do arquivo, com a funo strtolower() o nome do arquivo que recebido transformado em
minsculo, depois entra em ao a funo explode(), esta vai quebrar o nome do arquivo para
extrair a extenso do mesmo. Caso o arquivo no tenha as extenses definidas no inicio do
script, exibida uma mensagem de erro.

PHP/MySQL [Informtica] 29
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Linha 31: Tenho uma condio que verificar se o tamanho do arquivo corresponde pelo
especificado na varivel $_arq[tamanho], a chave size do super global $_FILE retorna o
tamanho do arquivo.
Linhas 37 a 42: Nestas linhas verificamos se necessrio mudar o nome do arquivo, caso no
seja necessrio, o nome do arquivo mantido.
Continuando o script, agora j estamos no final do script, depois de passadas todas as
verificaes, hora de mover o arquivo para o diretrio especificado, para realizar esta tarefa
utilizado a funo move_uploaded_file(), onde passamos o arquivo, um nome temporrio caso
seja necessrio e o diretrio onde o arquivo ser armazenado.

Nas linhas 47 e 51: So apresentadas algumas mensagens, tambm criado um link para o
usurio verificar o arquivo que foi enviado.

3.6. Download
Agora vamos trabalhar com um velho conhecido de muitos, Download ou descarregar que
significa baixar, em portugus, a transferncia de dados de um computador remoto (servidor)
para um computador local.
Nesta aula vamos criar uma pgina de download, listando os arquivos de um determinado
diretrio.
Vamos criar uma pgina web chamada de listar_arquivos.php, abaixo temos como esta
pgina ficar.

Na body de nossa pgina vamos inserir o trecho de cdigo PHP acima, na linha 13 definimos o
caminho, ou seja, o diretrio que ser listado os arquivos, temos que criar um diretrio
chamado arquivos e colocarmos alguns arquivos nele.
Linha 14: Criamos uma varivel para armazenar o contedo do diretrio da varivel $path.
Linha 17: Criamos um lao de repetio com o while, listando assim todos os arquivos
encontrados no diretrio especificado. Para cada arquivo encontrado criando um link do
mesmo, com a tag <a>.

PHP/MySQL [Informtica] 30
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Na linha 20: Aps concluir a leitura do contedo do diretrio especificado, executado a


funo close(), encerrando a comunicao com aquele diretrio.

Exerccios Prticos

1) Crie uma pagina onde o usurio poder escrever um texto e armazena-lo em um arquivo
com a extenso HTML, o prprio usurio quem ir definir o nome do seu arquivo, voc
deve criar no mnimo trs arquivos com textos usando sua pgina deste exerccio.

2) Crie trs pginas onde ser mostrado o texto dos artigos criados, ento deveremos ter
trs arquivos com contedo gerado no exerccio anterior e sendo exibidas em outras trs
pginas, uma pgina para cada arquivo.

3) Crie uma rea de download para baixar os arquivos criados no exerccio anterior.

4) Crie um novo script de upload a partir do que vimos na aula anterior, modifique o
tamanho de arquivo para upload, os tipos de arquivos aceitos.

PHP/MySQL [Informtica] 31
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

4. Rede de Comunicaes
Nesta aula vamos conhecer algumas funes capazes de recuperar informaes de servidores,
aprenderemos a trabalhar com a funo 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 prticas com o uso do script PHP interagindo
com recursos de redes de computadores.

Abaixo temos algumas funes utilizadas em PHP para interao de recursos e servios de
rede, das funes citadas abaixo utilizaremos algumas.
Funo Descrio
checkdnsrr Verificar os registros de DNS correspondente a um determinado
nome de host Internet ou endereo IP.
dns_get_record Buscar DNS Resource Records associados a um hostname
fsockopen Abre um socket de conexo Internet ou de domnio Unix
gethostbyaddr Obtm nome do host de Internet correspondendo ao endereo de IP
fornecido.
gethostbyname Obter o endereo IPv4 correspondente a um determinado nome de
host Internet
gethostname Obtm o nome do host
getprotobyname Obter o nmero de protocolo associado com o nome de protocolo
getprotobynumber Obter nome do protocolo associado com o nmero de protocolo
getservbyname Obter o nmero da porta associada a um servio de Internet e
protocolo
getservbyport Obter servio de Internet que corresponde a porta e o protocolo
setcookie Envia um cookie
setrawcookie Enviar um cookie sem url encoding o valor do cookie

4.1. DNS, Servios e Servidores


DNS um sistema de nome de domnio, atravs dele que podemos usar os nomes de
domnios, por exemplo, tenho uma locadora e desejo ter um nome na internet meu domnio
ento seria sbfilmes.com.br, o nome de domnio mais amigvel ao usurio, este domnio
por exemplo corresponde a um endereo IP por exemplo 200.3.23.166 este sendo o IP do
servidor que esta sendo acessado, que no to amigvel como o nome do domnio.
Na disciplina de rede estudamos este assunto mais afundo ento nesta disciplina apenas
para relembrar.
Vamos neste exerccio usar a funo checkdnsrr() para verificar a existncia de registro DNS
de um domnio.
Esta funo vai retorna verdadeira quando o registro DNS for encontrado e falso caso no
encontre o registro DNS solicitado.
Agora vamos prtica, vamos criar dois arquivos um como a imagem abaixo que
chamaremos de fase4_dns.php, onde o usurio deve digitar o nome do domnio que quer
consultar.

PHP/MySQL [Informtica] 32
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

No formulrio deste exemplo iremos chamar no action="verific_dns.php", este o script


PHP usado para verificar a existncia do domnio atravs da funo checkdnsrr().

Agora na imagem abaixo vamos criar o script PHP para verificar o domnio.

Na linha 2: Pegamos o valor do input dominio atravs do mtodo POST e armazenamos na


varivel $dns_dom.
Na linha 3: A varivel $dominioexist ir receber o valor verdadeiro ou falso da funo
checkdnsrr(), esta funo recebe dois parmetros o primeiro o hostname que ser
verificado, o segundo o tipo de registro usado, neste exemplo usaremos o ANY que procura
por qualquer tipo de registro.
Nas linhas 5 a 13: Temos uma estrutura de deciso if onde passamos a varivel
$dominioexist, que recebeu um valor boolean, sendo verdadeiro (true) redireciona para a
pgina fase4_dns.php e acrescenta a mensagem da linha 8, caso falso (false) o else (seno)
executado e redireciona para a pgina fase4_dns.php e acrescenta a mensagem da linha
12.
Na imagem abaixo vemos o resultado final deste exerccio.

PHP/MySQL [Informtica] 33
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Agora vamos fazer mais um exerccio, nesta situao problema precisa-se verificar a existncia
de um domnio de um endereo de email.

Na imagem acima vemos como ficar a pgina fase4_domi_mail.php, nesta caixa de texto
iremos digitar o endereo de e-mail.
Temos dois pontos importantes nesta pgina, no action chamaremos o script PHP
verific_domin_mail.php, e o input dominio_mail, que receber o endereo de email, para ser
verificado.

Para este exerccio usaremos a funo explode() que retorna um array contendo as partes da
string com valores separados.

Na linha 4: A varivel $dominio_mail recebe o nome do domnio obtido depois que a funo
explode dividiu as partes antes do @ e depois onde encontra-se o domnio.
Na linha 6: Aqui usamos a funo para verificar a existncia do domnio, esta verificao
somente do domnio, e no da existncia do email.
Nas linhas 8 e 16: Nesta condio a varivel $validar retorna um valor boolean, sendo
verdadeiro, o domnio existe a pagina que requisitou chamada e uma mensagem exibida.
Caso seja falso a pagina que requisitou chamada e uma mensagem exibida.

PHP/MySQL [Informtica] 34
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Servios
A internet composta de diversos servios, que atravs destes que essa plataforma de
comunicao definida, esses servios que so utilizados diariamente em nossa vida online,
so estes HTTP, FTP, POP3, IMAP E SSH, estes servios trabalham com um protocolo, que
o conjunto de regras sobre o modo como se dar a comunicao entre as partes envolvidas.
Vamos criar um exemplo que verifica
a conectividade com o servidor, pois
todos esses servios so inicializados
no servidor.
Ao lado o exemplo que ser criado.

Vamos criar uma pgina PHP com o


nome de server_ping.php, abaixo temos a estrutura da pgina.

Agora vamos criar o script PHP, que ir executar o teste com o servidor.
Linha 3 e 4: Recebemos atravs do mtodo
POST, o endereo do servidor que iremos
realizar o teste, e a quantidade de vezes que
ir pingar no servidor.
Linha 11: Usamos a funo system(), que
permite executar vrios comandos no sistema
operacional do servidor, de acordo com o
sistema operacional do servidor o comando
pode mudar um pouco. Neste exemplo
usamos um servidor Windows, ento
passamos o comando ping n, a varivel
$qtde defini a quantidade de vezes e a
$server o hostname do servidor ou o IP.
No caso do Linux devemos usar desta forma system("/bin/ping -c $qtde $server");.

PHP/MySQL [Informtica] 35
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

4.2. Mail
Nos dias atuais uma caracterstica muito forte das aplicaes web o poder de comunicao,
uma as mais usadas o envio de email, em todos os sites de empresas temos o formulrio de
contato, e em alguns deles so enviados emails para determinados departamentos.
Em PHP temos a funo mail(), a sua sintaxe bem bsica, nesta funo so passados trs
parmetros, destinatrio, assunto e o corpo da mensagem.
Abaixo temos um exemplo de envio de email bem simples.

Neste exemplo chamamos a funo mail() e passamos os trs parmetros, isso o suficiente
para o envio de email, porem para testarmos este exemplo precisamos ter um servidor de
email.

PHP/MySQL [Informtica] 36
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

4.5. Diretrizes de Configurao


A funo mail() tem algumas diretrizes de configurao, o comportamento dessas funes
podem ser modificado pelas configuraes do php.ini, este o arquivo de configurao do
PHP.
Opes de configurao de e-mail
Nome Padro Modifica Verso PHP
mail.add_x_header "0" PHP_INI_PERDIR Disponvel desde PHP
5.3.0.
mail.log NULL PHP_INI_PERDIR Disponvel desde PHP
5.3.0.
SMTP "localhost" PHP_INI_ALL
smtp_port "25" PHP_INI_ALL Disponvel desde PHP
4.3.0.
sendmail_from NULL PHP_INI_ALL
sendmail_path "/usr/sbin/sendmail -t - PHP_INI_SYSTEM
i"
Tabela 5 - Opes de configurao de e-mail
Abaixo algumas configuraes que podem ser feitas no php.ini com relao a envio de emails.

mail.add_x_header
Adicionar X-PHP-Originrio-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 funo mail (). As
entradas de log incluem o caminho completo do script, o nmero da linha, o endereo e
cabealhos do email.

SMTP
Usado apenas no Windows:
Passando o nome do host ou endereo IP do servidor, usado para emails enviados com a
funo mail().

smtp_port
Usado apenas sob Windows:
Passando o nmero da porta para se conectar ao servidor especificado, com a configurao
SMTP ao enviar e-mail com a funo mail ();
Porta padro 25. Apenas disponvel desde o PHP 4.3.0.

sendmail_from
Configura o campo do cabealho "From:" o endereo de email que deve ser usado em emails
enviados do PHP no Windows. Esta diretiva tambm define o "Return-Path:" cabealho
(header).

sendmail_path
configura o caminho para o programa sendmail, normalmente / usr / sbin / sendmail ou / usr / lib
/ sendmail (no Linux).
PHP/MySQL [Informtica] 37
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Esta diretiva tambm funciona no Windows. Se definido, smtp_port e sendmail_from so


ignorados e o comando especificado executado.

4.6. Enviando Email Usando um Script PHP


Nesta aula vamos criar um script PHP para o envio de email, abaixo temos o formulrio de que
ser criado.

Estrutura HTML, no action vamos chamar o script PHP enviar_email.php.

Abaixo temos o script enviar_email, temos trs variveis uma para o destinatrio, outra para o
assunto e uma para a mensagem, ambos dados vindos do formulrio.

Linha 6: Nesta linha chamamos a funo mail(), passando os trs parmetros necessrios.

Para realizarmos os testes de envio de email, podemos baixar alguns programas servidores de
email, abaixo alguns disponveis.
http://www.baixaki.com.br/download/hmailserver.htm
PHP/MySQL [Informtica] 38
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

http://ultradownloads.com.br/listagem/servidores-de-e-mail/13,687,1,,,2,2,1.html

Outra soluo configurar o localhost para envio de emails com WampServer.


http://www.youtube.com/watch?v=P0KdnguezO0

PHP/MySQL [Informtica] 39
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

5. Manipulao de dados
Nesta aula vamos aprender a manipular dados com a linguagem de programao 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 prtica todos os
fragmentos aprendidos desta disciplina e de outras relacionadas.

O outro projeto para realizarmos as praticas em um contexto mais simples, para podermos
aprender e depois aplicar no projeto que o produto da disciplina.

5.1. Projeto Vdeo Locadora.


Aqui iniciamos o projeto web de uma vdeo locadora, em nosso estudo de caso vamos
desenvolver um site para a SBFilmes uma empresa de locao de filmes, Neste sistema web
ser possvel fazer a locaes de filmes, reservas, ter um ambiente do cliente para ele
acompanhar suas reservas e suas locaes, este sistema composto de uma rea
administrativa que ser usada pelos funcionrios da empresa.

Devido ao tempo no poderemos desenvolver este sistema por completo, utilizamos esta
proposta para aprendizado, dessa forma iremos desenvolver algumas partes do sistema com o
intuito didtico. Com a experincia que adquirirmos neste projeto poder ser aplicado em
outros projetos de sistemas web.
Uma fase muito importante de um projeto seja qual for a plataforma web ou desktop, o
planejamento, para ento experimentarmos esta experincia nesta disciplina, a proposta
desenvolver um projeto chamado de produto da disciplina, nesta aula propomos um projeto de
vdeo locadora, nele mostraremos algumas praticas atravs de exerccios.

Mostraremos um exemplo de uma funcionalidade do site, e as outras semelhantes sero feitas


atravs de exerccios.
O template (modelo) deste projeto pode ser baixado neste link
https://mega.co.nz/#!3U4QzKyQ!Q4SIWRR2rIYimthpZwCELBHZLZ9xCyc1W79ABFw07rU
Neste Link
https://mega.co.nz/#!LVRzlR7D!ZxFPQhdGa9lYLWPwYY56V3whR3xe0Opqd2MeuQn9bqc
temos o script do banco de dados que ser usado.

PHP/MySQL [Informtica] 40
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

O planejamento
sempre bom planejar o projeto de seu site, que um rascunho do mesmo, Ento o primeiro
passo identificar quais sero as pginas, link e recursos que devero ter no site, em nosso
exemplo acima definimos que pginas ou links deviam estar disponveis na pagina inicial do
site o nosso index.php, depois escolher a pgina e especificar que links ou que pginas esto
disponveis a partir dela, como podemos verificar no exemplo abaixo.

Estrutura do site no Home

Nesta estrutura temos o contedo Lanamento de ..., nesta rea da pgina Home criaremos
uma consulta para listar os lanamentos do ms vigente, mostrando o ms e os seus
lanamentos.

Abaixo temos como ir funcionar o menu rea restrita, este menu dedicado ao administrador
do sistema ou funcionrio da empresa de locao de filmes, o usurio 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 usurio.

PHP/MySQL [Informtica] 41
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Exerccio Prtico
1) Para exercitarmos um pouco vamos planejar um site, vamos seguir os passos abaixo.

Escolher um tema para o seu site.


Criar o mapa do site, com as pginas previstas ou link e recursos para o site.
Desenhe o layout do seu site, da pgina principal index e outras pginas que
tenham o layout diferente.

2) Crie o projeto SBfilmes na sua IDE de preferncia, faa o download do template e script
do banco de dados, execute o script do banco de dados.

PHP/MySQL [Informtica] 42
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

5.2. Acesso nativo


O PHP pode se conectar a uma variedade de sistemas gerenciadores de banco de dados
(SGBD) disponveis, Para cada SGBD existe uma variedade de funes para realizar
operaes como conexo, consultas retorno, desconexo e outras. Nesta aula vamos conhecer
algumas funes do SGBD Mysql, assim como uma lista de funes do mesmo.
Abaixo temos uma relao com alguns SGBDs e um link do site PHP com a lista completa de
funes de acesso.

SGBD Link do site


MSQL (SQL Server) http://www.php.net/manual/pt_BR/book.msql.php
Firebird/InterBase http://www.php.net/manual/pt_BR/book.ibase.php
MySQL http://www.php.net/manual/pt_BR/book.mysql.php
Mysqli (Extenso MySQL http://www.php.net/manual/pt_BR/book.mysqli.php
Melhorada)
ODBC http://www.php.net/manual/pt_BR/book.uodbc.php
Oracle (OCI7 e OCI8) http://www.php.net/manual/pt_BR/book.oci8.php
PostgreSQL http://www.php.net/manual/pt_BR/book.pgsql.php
SQLite http://www.php.net/manual/pt_BR/book.sqlite.php
Tabela 6 - Principais Bancos de Dados suportados em PHP - Fonte http://www.php.net

Agora vamos conhecer como podemos realizar o acesso a um SGBD, iremos criar uma base
de dados para exerccios que sero realizados nas prximas aulas.
Abaixo temos as algumas funes de acesso ao SGBD Mysql.

Funes utilizadas para acesso e manipulao de dados.


Funo Descrio
mysql_affected_rows Obtm o nmero de linhas atingidas na operao anterior do MySQL
mysql_close Fecha a conexo MySQL
mysql_connect Abre uma conexo com um servidor MySQL
mysql_db_query Envia uma consulta MySQL
mysql_drop_db Exclui um banco de dados MySQL
mysql_error Retorna o texto da mensagem de erro da operao MySQL anterior
mysql_escape_string Escapa uma string para usar em uma consulta MySQL
mysql_fetch_array Obtm uma linha como uma matriz associativa, uma matriz numrica,
ou ambas.
mysql_fetch_assoc Obtm uma linha do resultado como uma matriz associativa
mysql_fetch_field Obtm informaes sobre uma coluna de um resultado e retorna
como um objeto
mysql_fetch_lengths Obtm o tamanho de cada sada no resultado
mysql_fetch_object Obtm o resultado de uma linha como um objeto
mysql_fetch_row Obtm uma linha como uma array numrica
mysql_field_len Retorna o tamanho do campo especificado
mysql_field_name Obtm o nome do campo especificado em um resultado

PHP/MySQL [Informtica] 43
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

mysql_field_table Obtm o nome da tabela na qual o campo esta especificado.


mysql_field_type Obtm o tipo do campo especificado em um resultado
mysql_free_result Libera um resultado da memria
mysql_get_client_info Obtm informaes do cliente MySQL.
mysql_get_host_info Obtm informaes do servidor MySQL.
mysql_info Obtm informao sobre a consulta mais recente
mysql_insert_id Obtm o ID gerado pela operao INSERT anterior
mysql_list_dbs Lista os bancos de dados disponveis em um servidor MySQL
mysql_list_fields Lista os campos de uma tabela MySQL
mysql_list_processes Lista os processos MySQL
mysql_list_tables Lista as tabelas em um banco de dados MySQL
mysql_num_fields Obtm o numero de campos em um resultado
mysql_num_rows Obtm o nmero de linhas em um resultado
mysql_pconnect Abre uma conexo persistente com um servidor MySQL
mysql_ping Pinga uma conexo com o servidor ou reconecta se no houver
conexo.
mysql_query Envia uma consulta MySQL
mysql_result Retorna dados do resultado.
mysql_select_db Seleciona um banco de dados MySQL
mysql_set_charset Define o cliente character set
mysql_tablename Retorna o nome da tabela do campo
Tabela 7 - Funes PHP para SGBD MySql

Criao do Script de criao do banco.


Neste exerccio vamos criar um script em PHP para realizar a criao do banco de dados, que
ser utilizado na prxima aula e exerccios, chamaremos este script de criarbd.php.

Linha 2: Nesta linha utilizamos a


funo mysql_connect() e passamos
os dados da conexo com o banco de
dados, nesta ordem servidor
(localhost), usurio do banco de
dados (root), e a senha do banco.
Linha 5: Na linha anterior 4 criamos
uma varivel para receber a instruo
SQL, e nesta linha usamos esta funo
para executar a instruo SQL,
passamos dois parmetros o primeiro a
instruo SQL e o segundo os dados
da conexo.
Linha 8: Esta funo utilizada para
selecionar um determinado banco de
dados, nela informo qual o nome do
banco de dados e a varivel $dbconn

PHP/MySQL [Informtica] 44
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

que contem os dados da conexo com o SGBD, depois na linha 12 passamos o novo valor
para a varivel $sql.
Linha 27: Esta funo utilizada para fechar a conexo aberta.
Este um pequeno exemplo de um script de instalao de aplicativos web, com ele
aprendemos que podemos realizar toda a criao de um banco de dados atravs de um script
PHP.

5.3. Interface do phpmyadmin


O phpMyAdmin uma ferramenta de software livre escrito em PHP, destinado a lidar com a
administrao do MySQL pela Internet.
Ele suporta varias operaes do MySQL. Operaes como (gerenciar bancos de dados,
tabelas, colunas, relaes, ndices, usurios, permisses, etc.), e voc ainda tem a
capacidade de executar diretamente qualquer instruo SQL.

O phpMyAdmin esta incluso na instalao do Wamp Server, e pode ser feito o download no
site http://www.phpmyadmin.net.

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 usurio e senha, estes dados so do usurio
padro do sistema.
Abaixo temos o script com o insert do usurio, nas aulas anteriores vimos como fazer a
conexo e a criao do banco de dados e tabelas, neste exerccio utilizar a instruo insert
do SQL.

PHP/MySQL [Informtica] 45
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Crie um novo script PHP com o nome insertuser.php, insira o cdigo acima e depois
execute, pronto acabamos de inserir os dados de usurio e senha na base de dados
sbfilmes.
Como podemos observar declaramos quatro variveis com os dados da conexo, e
inserimos a instruo SQL, com relao ao SQL vimos na disciplina de banco de dados.

Exerccios Prticos

1) Crie um script de instalao para um determinado site, o nome da base de dados ser
db_restaurante, abaixo o modelo de dados para a criao do banco, voc dever criar
uma pgina nela deve existir um boto com o nome de instalar sistema, aps o clique do
usurio neste boto inicia a execuo do script.

2) Crie um script que realize a insero de cinco registros na tabela tb_produtos.

3) Agora modifique o script da questo um para ele realizar o processo de instalao


completo, o seu instalador agora ter que criar uma base de dados, criar as tabelas e
inserir os registros na tabela.

PHP/MySQL [Informtica] 46
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

5.4. Tratamento de erros

Tratamento de erros ou excees o nome que se d a tarefa de elaborar rotinas que sero
executadas sempre que um erro acontecer, durante a execuo de um aplicativo,
uma tarefa do desenvolvedor tentar imaginar em quais situaes o aplicativo poderia passar
por um erro, e prepara-lo para todas situaes possveis. Abaixo temos alguns mtodos para
serem usados no tratamento de excees.
Mtodo Descrio

getMessage() Retorna a mensagem de erro.


getCode() Retorna o cdigo de erro.
getFile() Retorna o caminho do arquivo no qual o correu o erro.
getLine() Retorna o array com a linha do erro ou as linhas com os erros.
getTrace() Retorna as aes em forma de um array, consistido de
informaes pertinentes ao contexto em que o erro ocorreu.
getTraceAsString() Retorna toda informao igual ao getTrace(), exceto que a
informao mostrada como uma string ao invs de um array.
Tabela 8 Funes para tratamento de excees.
Vamos criar um script e realizar o tratamento de exceo, vamos entender o script abaixo;

Neste script de criao de uma base de dados, realizamos a conexo na linha 3 usamos a
funo die(), caso a conexo falhe ser apresentado ao usurio uma mensagem de erro.
Para testarmos o nosso script vamos parar o servio do mysql e tentar rodar o script.
Para parar o servio do mysql no windows usando o wamp Server, clique no cone do wamp na
badeja do sistema, clique no meu Mysql e v ate o menu service, depois clique em para
servio, para iniciar novamente s escolher iniciar servio.

PHP/MySQL [Informtica] 47
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

No Linux devemos acessar o terminal e digitar o comando abaixo;

Parar o MySQL
sudo /etc/init.d/mysql stop

Iniciar o MYSQL
sudo /etc/init.d/mysql start

Construindo uma exceo

Este script ser chamado de const_excecao.php, nele vamos testar alguns mtodos de
tratamento de exceo, quase todas as linguagens de programao utilizam uma instruo
chamada de try/catch, onde o que esta dentro do bloco try tentar ser executado caso no
consiga, ser direcionado para o catch onde ser capturado o erro ocorrido.
Linha 2: Nesta linha definimos a localizao do arquivo com o seu devido nome.
Linhas 3 a 12: Neste trecho a instruo try tentar executar a instruo de ler o arquivo, se o
arquivo no existir a instruo throw new entra com a classe Exception e lana a mensagem
de erro, se no exibida uma mensagem de sucesso. A linha 12 entra em ao caso o arquivo
no exista ou no seja encontrado, usando a instruo catch, criado um objeto $ex da classe
Exception, com este objeto possvel chamar as funes desta classe.

PHP/MySQL [Informtica] 48
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

5.5. Sesso
Sesso um recurso do PHP que permite que voc salve valores (variveis), para serem
usados ao longo da visita do usurio. Valores salvos na sesso podem ser usados em qualquer
parte do script, mesmo em outras pginas do site.

Estas variveis permanecem setadas at o visitante fechar o browser ou a sesso ser


destruda.
Voc precisa iniciar a sesso antes de poder setar ou pegar valores dela. No h limite de
valores salvos na sesso. A sesso pessoal de cada visitante.

Quando um visitante acessa o site, gerado um cookie no computador dele informando um id


nico de sesso e o PHP usa esse identificador pra organizar as sesses entre os visitantes
do seu site.
Esse cookie tem validade apenas enquanto o browser estiver aberto.
Voc precisa iniciar a sesso antes de iniciar o output, ou seja, antes de retornar qualquer
coisa para o HTML. Antes de dar qualquer echo ou antes de inserir qualquer HTML fora de
blocos php. O incio da sesso uma das primeiras coisas no comeo de todo site.
A sesso precisa ser iniciada em cada pgina que voc for usar ou definir um valor dela, salvo
arquivos que vieram por include, mas preciso ter iniciado a sesso uma vez antes do include.
Agora vamos aprender como iniciar uma sesso, abaixo temos um exemplo com a sintaxe;
Inicia a sesso

session_start();

Depois de iniciada a sesso, podemos definir valores dentro dela, exemplo abaixo:

$_SESSION['usuario'] = 'jplima';

Quando voc precisar exibir o valor salvo na sesso (provavelmente em outras pginas), veja o
exemplo abaixo:

echo $_SESSION['usuario'];

Voc pode salvar quantos valores quiser, pode re-definir os valores e usa-los em echos,
argumentos de funes e da forma que preferir.
Agora vamos aprender como deletar uma varivel especfica da sesso, vamos usar a funo
unset(), Exemplo abaixo;

unset($_SESSION['usuario']);
Deleta uma varivel da sesso.
Tambm podemos destruir toda a sesso de uma s vez, eliminando todas as variveis salvas,
exemplo abaixo:

PHP/MySQL [Informtica] 49
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

session_destroy();

Com isso voc tem total controle das sesses no seu site e pode salvar, por exemplo, o nome
de usurio depois que ele fez o login e salvar outra varivel informando que o usurio est
logado. Esta uma prtica muito comum em sistemas de autenticao de usurio.

Na tabela abaixo temos uma referencia para funo para sesses.


Funo Descrio
session_cache_limiter Obtm e/ou define o limitador do cache atual
session_cache_expire Retorna o prazo do cache atual
session_commit Sinnimo de session_write_close
session_decode Decifra dado de sesso de uma string
session_destroy Destri todos os dados registrados em uma sesso
session_encode Codifica os dados da sesso atual como uma string
session_get_cookie_params Obtm os parmetros do cookie da sesso
session_id Obtm e/ou define o id de sesso atual
session_is_registered Descobre se uma varivel global est registrada numa
sesso
session_module_name Obtm e/ou define o mdulo da sesso atual
session_name Obtm e/ou define o nome da sesso atual
session_regenerate_id Atualiza o id da sesso atual com um novo gerado
session_register_shutdown Funo de desligamento da sesso registrada
session_register Registrar uma ou mais variveis globais na sesso atual
session_save_path Obtm e/ou define o save path da sesso atual
session_set_cookie_params Define os parmetros do cookie de sesso
session_set_save_handler Define a sequncia de funes de armazenamento
session_start Inicia dados de sesso
session_status Retorna o status da sesso corrente.
session_unregister Desregistra uma varivel global da sesso atual
session_unset Libera todas as variveis de sesso
session_write_close Escreve dados de sesso e termina a sesso.
Tabela 9 Funes para sesso.

PHP/MySQL [Informtica] 50
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Exerccio de Aprendizagem
Vamos criar o login de usurio, no projeto SBFilmes criaremos o acesso do
administrador ao sistema, o usurio entra no menu rea restrita e se ele estiver com uma
sesso aberta ele direciona para o painel administrativo caso no esteja logado (com uma
sesso aberta) apresentado a tela de login. No template baixado existe um diretrio
chamado admin, nele ser salvo tudo relacionado rea administrativa.

1 passo: Ser criar um script de conexo com nossa base de dados sbfilmes, desta forma
toda vez que precisarmos abrir uma conexo h chamaremos.
Este script se chamar de conect_db.php, e ser salvo no raiz do site.

Conforme podemos observar na imagem acima, nas linhas 3 a 6, passamos os dados da


conexo.
Na linha 8: Passamos os dados para a funo mysql_connect(), e exibimos uma mensagem
de erro caso o mesmo venha a acontecer.
Na linha 10: Passamos a varivel correspondente a nossa base de dados, e os dados da
conexo para a funo mysql_select_db().
2 passo: Vamos criar um script chamado validarusuario.php que ser responsvel pela
validao de usurio, Vamos criar este script no diretrio admin, que o diretrio onde ser
criado este exemplo.
Na linha 3: Fazemos a incluso do script conect_db.php.

PHP/MySQL [Informtica] 51
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Na linha 5 e 6: As variveis $usuario e $senha recebem os valores correspondentes atravs


do POST, vindos do formulrio da pgina de login do nosso template.
Linha 9: Passamos a instruo SQL select, esta vai selecionar todos os dados da tabela onde
o campo usurio e senha forem iguais as variveis $usuario e $senha.
Caso ocorra um erro, por exemplo; a tabela no exista ser disparado uma mensagem de erro.
Linha 16: Nesta linha temos a varivel $linha que vai receber as linhas afetadas pela consulta,
atravs da funo mysql_query().
Linhas 18 a 26: verificado se foi retornado algum registro na consulta, se o numero de linhas
retornadas for igual zero, chamado pgina de login novamente e uma mensagem
exibida. Se no a pgina de index.php chamada, esta pgina de index a que corresponde
a rea administrativa do site.
2 passo: Agora vamos alterar a nossa pgina de login.php do template sbfilmes, temos que
localizar no corpo da pgina a div content, como mostrado na imagem abaixo;

PHP/MySQL [Informtica] 52
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

No formulrio desta pgina vamos definir o action chamando o script validarusuario.php.


Com estes passos executados a nossa validao de usurio pelo banco j estar funcionando.
Vamos testar!
Agora vamos gerenciar as sesses do nosso projeto, para esta tarefa vamos alterar o nosso
script validarusuario.php
3 passo: Na instruo else, vamos acrescentar as linhas abaixo;

Linhas 24 a 26: Definimos trs variveis, onde cada varivel recebe seu valor correspondente
ao campo na tabela do banco de dados, usamos a funo mysql_result(), que retorna o valor
do campo especificado.
Linha 28: Inicializar a sesso.
Linhas 30 a 32: Grava as variveis na sesso.
4 passo: Neste passo vamos inserir um treco de cdigo PHP na pgina principal da rea
administrativa, chamada index.php. Desta forma o usurio s ter acesso a esta pgina se
estiver logado.

PHP/MySQL [Informtica] 53
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Linha 4: Iniciamos uma nova sesso.


Linha 7 a 12: Se a varivel $_SESSION[id] estiver vazia exibir um alert() e redirecionar para a
pagina de login.
Nesta mesma pgina vamos inserir o nome do usurio logado no sistema, neste exemplo
vamos inserir o nome do usurio logado, temos que localizar a div content, para colocarmos o
nome do lado do titulo Painel Administrativo.

Na linha 128: Exibimos o valor da varivel de sesso $_SESSION[nomeUser].

5 Passo: Agora vamos criar o script PHP para realizar o logout do sistema que se chamar
logout.php.
Sempre que formos trabalhar com sesso temos que
iniciar a sesso, neste exemplo apagamos as
variveis especificas e depois destrumos todas as
sesses.
Linha 5 a 7: Destruindo as variveis de sesso
criadas.
Linha 9: Destri todas as sesses que foram criadas,
nas linhas de cdigo seguintes redireciona para a
pgina de login.

Na pgina index.php da rea restrita, vamos localizar o item de menu sair, na linha 100
chamamos o script de logout criado.

PHP/MySQL [Informtica] 54
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

PHP/MySQL [Informtica] 55
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

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. Insero
Nesta aula vamos aprender duas maneiras de realizar uma insero de dados na tabela, estes
exemplos sero feitos no projeto cursophp_mysql.

1 Forma de insero: Nesta teremos a seguinte estrutura de arquivos;


Uma pgina web com a extenso PHP chamada de cadastro_1.php.
Um arquivo PHP chamado conect_db.php, que ser responsvel pelo gerenciamento da
conexo com nossa base de dados.
Um arquivo PHP chamado insere_cidade.php, que ser responsvel de inserir as
informaes em nossa base de dados.
Para estes exemplos usaremos nossa base de dados criada na aula anterior, onde criamos
o script de gerao do banco de dados.

Vamos criar o script de conexo com o banco de dados.

conect_db.php: Conforme observamos na imagem, foram criadas as variveis abaixo;

$hostname_db = "localhost";=>Nesta varivel armazenamos o nome do servidor de banco


de dados, que a maquina onde o seu banco de dados esta instalado, em nosso exemplo
estamos acessando a nossa prpria maquina, meu servidor local, que pode ser acessado pelo
nome localhost ou pelo IP 127.0.0.1.

$database_db = "db_php_mysql"; => Nesta varivel determino o nome da nossa base de


dados, no nosso caso "db_php_mysql".

$username_db = "root"; => Esta por sua vez define o nome do usurio de acesso ao banco
de dados, em nosso exemplo usaremos o usurio root, porem pode ser criado um usurio
especifico para o banco de dados do seu projeto web, que sero definidos por voc ou pelo
DBA da empresa.

$password_db = "270184"; => Nesta armazenada a senha de acesso ao banco de dados


do seu projeto.

PHP/MySQL [Informtica] 56
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

ATENO: O usurio e senha do banco de dados normalmente no o mesmo de


acesso ao sistema operacional, caso esteja usando o Wamp Server por padro no
definida a senha do banco de dados.

Continuando a analise deste script;

Linha 8: Nesta linha temos a declarao da varivel $dbconn que ir receber a funo
mysql_connect( ), nesta funo passamos trs parmetros o nome do servidor de banco de
dados, o usurio e a senha de acesso ao banco de dados. Ambos definidos nas linhas
superiores. A funo die( ) vai abortar a execuo da aplicao, utilizado para tratamento de
erros, neste exemplo caso a conexo com o banco falhe ela ser chamada.
Linha 10: A funo mysql_select_db() responsvel por selecionar a base de dados, temos
que passar dois parmetros, um o nome da base de dados o outro os dados da conexo.

Agora vamos criar o cadastro_1.php, conforme imagem abaixo, no action do formulrio


chamaremos o script insere_cidade.php, onde enviaremos os dados da pagina
cadastro_1.php para este script, o script ir executar a
insero dos dados.

Vamos codificar o script insere_cidade.php

PHP/MySQL [Informtica] 57
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Linha 3: Fazemos a incluso do script conect_db.php, este script contem os dados da


conexo.
Linha 6: Nesta linha temos o valor do campo nome recebido pelo formulrio.
Linha 9: Utilizamos a instruo SQL insert, que realizar a insero de registros no banco de
dados.
Linha 11: A funo mysql_close chamada para encerrar a conexo.
Linhas 14 a 17: Aps a insero redirecionar para a pgina de cadastro.

2 Forma de insero: Neste exemplo faremos a mesma insero, porem a diferena que
iremos criar uma funo para insero na prpria pgina de formulrio, usaremos o mesmo
script de conexo do exemplo anterior.

Vamos dividir em alguns passos este exemplo.


1 Passo: Criar uma pgina com o nome cadastro.php.
2 Passo: Criar uma funo para salvar os dados em nossa base de dados.

Linha 10: Para evitar que dados sejam enviados a tabela quando a pgina for atualizada,
inserimos o if com a funo isset(), se a varivel do post no estiver vazia as linhas
posteriores sero utilizadas.

PHP/MySQL [Informtica] 58
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

3 Passo: Na estrutura da pgina no input submit, vamos inserir o onclik e chamar a funo
salvar.

Exerccio Prtico
1) Crie um formulrio 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 exerccio teremos que criar;
Um banco de dados.
Uma tabela conforme especificaes.
Um formulrio de cadastro.
Um script de conexo com o banco.
Um script para insero dos dados do formulrio.

Projeto SBFilmes

Para exercitarmos um pouco vamos realizar o cadastro de categoria de filmes da rea


administrativa.

Agora temos que cadastrar as cidades em nosso banco de dados sbfilmes.

5.6.2. Alterao
Para realizarmos uma alterao nos dados teremos que listar, e depois escolher o que ser
alterado.
Vamos entender como funcionar.

PHP/MySQL [Informtica] 59
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Quando o usurio escolher um registro para alterar ou excluir, ser


passado um parmetro pela URL, como no exemplo anterior o id.

Temos uma pgina O parmetro


para listar os recebido pelo
registros, nele mtodo GET, neste
teremos um link para exemplo o id, ser
a pgina de alterar e usado na consulta
outra para excluir. SQL, que vai trazer
Exemplo; os dados onde o
(formalterar.php?id= ) campo id for igual a
varivel $id.
No caso do excluir ser chamado o script PHP
excluir, ele vai receber o id passado e executar a
instruo DELETE no banco de dados.

Aps estes dados recebidos e a


instruo SQL executada os
O script alterar vai dados sero preenchidos no
receber os dados formulrio.
vindos do No action deste formulrio
formulrio pelo chamamos o script PHP
mtodo POST, e alterar.php, quando o usurio
der um clique no boto alterar
realizar o UPDATE
o script ser executado.
no banco. Depois
retorna para a
pgina inicial.

Vamos usar a tabela de cidades que j inserimos alguns registros nela, utilizaremos ela para
listar os dados cadastrados, vamos criar uma pgina chamada de manuteno_dados.php,
criaremos tambm um estilo para a nossa pgina de manuteno.

PHP/MySQL [Informtica] 60
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

O resultado final desta aula pode ser visto na imagem abaixo;

Vamos criar primeiro nossa folha de estilo, e salvar em um diretrio chamado css no nosso
projeto cursophp_mysql, voc pode fazer o download desta folha de estilo no link
https://mega.co.nz/#!jYRUGJTZ!EWsQUWfUjXfb9l9vfoNqehHz9eQ2MIU35thCPlNxx6c

Em nossa pgina de manuteno vamos chamar a folha de estilo.

Realizar a incluso do conect_db.php => <?php require_once 'conect_db.php'; ?>, que


pode ser inserido no inicio da pgina.

Abaixo temos a estrutura HTML da tabela:

PHP/MySQL [Informtica] 61
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Agora vamos inserindo o cdigo PHP para preencher o contedo da tabela

Linha 28: Nesta linha utilizamos a funo mysql_query() para listar os registros da tabela, o
resultado da execuo da query ser armazenada na varivel $resultado.
Linha 29: Se a varivel $resultado estiver preenchida, ou seja, com registros o contedo da
instruo if executado.
Linha 30: Nesta linha usamos o while para povoar as linhas com os registros da tabela, dentro
do parntese no while temos, a varivel $row que recebe o resultado da funo
mysql_fetch_assoc(), que obtm uma linha do resultado como uma matriz associativa.
Linha 35 e 37: Nestas linhas obtemos o valor de cada campo da tabela, a varivel $row foi
preenchida com os registros, ento dentro dos [ ] passo o nome do campo da minha tabela.

Linha 38 e 39: Aqui criamos os links para chamar a pgina alterar, passando como parmetro
da URL o id, neste exemplo estaremos trabalhando com o mtodo get na pgina de alterar.
Um ponto muito importante desta etapa a passagem de parmetro pela URL, para isso temos
que ter a pgina que iremos chamar, por exemplo; alterar.php + ( ?id= ).

Agora vamos criar a pgina para alterar os dados, chamaremos de alterar.php, no podemos
esquecer de fazer o include do script de conexo com o banco.

PHP/MySQL [Informtica] 62
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Linha 12: Criamos uma varivel que vai receber o valor do mtodo 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 varivel $idAlt.

Vamos criar o script alterar_cidade.php, este script responsvel por receber os dados do
formulrio alterar.php, e executar a instruo SQL Update.

Linha 5: Fao a incluso do script de conexo com o banco de dados.

Linha 8: Escrevemos a instruo SQL para fazer a atualizao dos dados, neste exemplo
alteramos apenas um campo da tabela, porem pode ser feito com todos os campos da tabela,
por exemplo; mysql_query("UPDATE Tabela SET Campo1='valor1', Campo2='Valor2',
Campo3='Valor3'").
No exemplo acima fazemos a atualizao do campo nome_cidade onde idt_cidade for igual a
$id a varivel recebida.

Linha 10: Libera um resultado da memria associada ao identificador de resultado, apenas


precisa ser chamada se voc esta preocupado sobre quanta memria esta sendo usada, em
consultas que retornam grandes conjuntos de resultados. Toda a memria associada a um
resultado automaticamente liberada ao final da execuo do script.

PHP/MySQL [Informtica] 63
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

5.6.3. Excluso
Agora vamos para excluso de registros, seguindo da pgina de manuteno, vamos criar um
script PHP chamado excluir.php, vamos receber uma varivel da URL para determinar que
registro ser excludo.

Linha 4: A varivel $id recebe o valor passado pelo mtodo GET. Este id vem do formulrio de
manuteno e foi passado pela URL (exluir.php?id=).
Linha 5: Nesta linha executamos a instruo SQL delete, que realiza a excluso do registro
onde o idt_cidade for igual a varivel $id, depois na linha 7 fechamos a conexo.

Projeto SBFilmes

Em nosso projeto SBFilmes vamos fazer o cadastro de cliente, este cadastro para o cliente realizar a
locao dos filmes, Nesta situao vamos inserir os dados do cliente e depois realizar a autenticao
dele no sistema rea do cliente. Vamos seguir os passos do exerccio de aprendizagem.

Exerccio de Aprendizagem

Neste exerccio vamos desenvolver a pgina de cadastro de cliente, primeiro vamos entender os
campos da tabela de cliente.

PHP/MySQL [Informtica] 64
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Esta tabela tambm ser usada na validao da rea do cliente, os dados


inseridos no cadastro so; nome, data de nascimento, RG, CPF, email, o id da
cidade, telefone, rua, numero e sua senha.

Para campo id_cidade teremos uma lista de nomes de cidades no formulrio, e o


que ser enviado para o banco apenas o id da mesma.

Os campos para a validao do cliente no prximo exerccio so; o email e a


senha_cli.

O campo Status serve para criamos um bloqueio, caso o cliente tenha alguma
pendncia financeira, setamos este campo com B(bloqueado) para ele no ter
acesso a fazer novas locaes, e L (liberado) ou vazio quando estiver tudo ok.

1 Passo: Vamos escolher uma pgina do template, nela criaremos um formulrio chamado
cad_cliente.php.

Depois de criado devemos fazer a incluso do script conect_db.php, que tem os dados da
conexo com o banco de dados sbfilmes.

Na div content do formulrio cad_cliente, criaremos os campos para o cliente inserir seus
dados.

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 posies da matriz associativa, que
foi obtida pela funo 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 so da tabela t_cidade.
PHP/MySQL [Informtica] 65
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Abaixo a visualizao do formulrio pronto.

PHP/MySQL [Informtica] 66
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

2 Passo: Codificar o script salvar_cliente.php, inicialmente fazemos a incluso do script


conect_db.php, e depois criamos as variveis que receberam os dados do formulrio linha 5 a
14.

Em nosso formulrio de cadastro temos o campo data de nascimento, o tipo de dados data do
SGBD MySql trabalha com o padro de data americano(ano ms - dia), diferente do padro
brasileiro (dia-ms -ano), por conta dessa diferena vamos criar uma funo de converso de
data.

Linha 16: Aqui criamos uma funo converter_dt, esta funo recebe como parmetro uma
data, na linha 18 explodimos o valor recebido pelas barras (/), para criar um array das partes,
usamos a funo explode() do PHP. Na linha 22 fazemos a inverso das posies e inclumos
as barras, estamos pegando as partes da data e concatenando. Ao fim desta funo
retornamos a data modificada.

Na linha 26: Antes de passar a data para o banco de dados, temos que declarar a varivel
$dt_nasc_novo que vai receber o retorno da funo converter_dt(), esta recebe a data vinda
do formulrio no padro brasileiro e converte para o americano.

Com esta funo conseguimos resolver o problema de datas, no formulrio podemos usar o
padro brasileiro, que antes de ir para o banco esta mesma data convertida para o padro
americano, posso utilizar a mesma funo para exibir os dados para o usurio no padro
brasileiro, s modificar a posio do array.
Lembrando que esta funo no altera o formato de data do banco, a modificao feita
apenas para interao com o usurio.

PHP/MySQL [Informtica] 67
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

3 Passo: Continuando o nosso exemplo, Agora vamos criar a nossa query de insero, neste
exemplo de insert aps o nome da tabela entre parnteses, passamos os campos que
queremos inserir, como podemos observar colocamos apenas os campos os quais queremos
inserir dados nele, com suas respectivas variveis. Aps os dados inseridos e no havendo
erros, a pgina de cadastro de cliente ser chamada para que possa ser feito outro cadastro,
ou direcionar para o index.

Projeto SBFilmes

Agora para testarmos o cadastro vamos desenvolver o login da rea de cliente, atravs
desta rea que o cliente poder realizar as locaes. O nome de usurio do cliente o
seu email e a senha ser armazenada no campo senha_cli, da tabela t_cliente.

Crie o cadastro de filmes da rea administrativa, nesta tarefa teremos que criar um script
de upload para enviar ao servidor as imagens das capas dos filmes.

Exerccio Prtico

Faa um programa web que realize um cadastro de contas bancrias com as seguintes
informaes: nmero da conta, nome do cliente, CPF e saldo. O banco permitir o
cadastramento de contas com o mesmo CPF e no poder haver mais que uma conta com o
mesmo nmero da conta. Crie o menu de opes a seguir.

Menu de opes:
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 subtrado do seu saldo.
PHP/MySQL [Informtica] 68
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

6. Deposito onde o valor ser acrescentado ao seu saldo.


7. Sair (logout).

PHP/MySQL [Informtica] 69
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

5.6.4. Usando SQL no PHP

Nestas aulas vamos trabalhar com algumas query SQL usando o PHP, veremos algumas
consultas com relacionamento de tabelas e um exemplo de paginao de uma consulta,
podemos utilizar todas as instrues SQL do MySql em seu cdigo PHP. Abaixo temos
algumas clusulas SQL que podem ser uteis.

Clusula like verifica se o contedo do dado contm a string que est antes do % (Jos%),
aps o % (%Ana) ou entre o % (%usa%). Este comando utilizado com a clusula where.
Sintaxe: select [coluna] from [tabela] where [coluna] LIKE string;
Ex. select * from pessoa where nm_pessoa like 'J%';

Clusula between verifica se o contedo do dado est entre um limite mnimo e mximo.
Sintaxe: select [coluna] from [tabela] where [coluna] BETWEEN limite inferior and limite
superior
Ex. select * from pessoa where salario between 2600 and 3000;

Clusula in verifica se o contedo do dado igual a uma das opes oferecidas.


Sintaxe: select [coluna] from [tabela] where [coluna] IN (opo1, opo 2);
Ex. select * from pessoa where sexo in (M, F);

Clusula order by ordena o resultado da seleo de uma coluna.


Sintaxe: select [coluna] from [tabela] ORDER BY [coluna];
Ex. select * from pessoa order by nm_pessoa;

Clusula group by agrupa o resultado da seleo eliminando as repeties contidas em uma


coluna.
Sintaxe: select [coluna] from [tabela] GROUP BY [coluna];
Ex. select cpf, cd_pessoa from pessoa group by cpf, cd_pessoa;

PHP/MySQL [Informtica] 70
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Consultas SQL - Filmes de uma categoria


Neste exemplo vamos criar uma pagina chamada consultas_sql.php, abaixo temos a
visualizao desta pgina.

A proposta deste exemplo criar uma consulta de filmes listando-os pela categoria, iremos
selecionar uma categoria e sero mostrados abaixo os filmes que pertencem a ela.

Vamos iniciar codificando a pgina, nas primeiras linhas temos a incluso do script
conect_db.php, e na linha 2 vamos setar o charset, para resolver problemas com acentuao.

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.

PHP/MySQL [Informtica] 71
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Continuando o script na linha 24, declaramos a varivel $idcat ela vai receber o valor (value) da tag
<select> da linha 17, atravs do mtodo POST.

Linhas 25 a 28: Nestas linhas criamos a query da consulta, com a instruo SQL SELECT
selecionamos os campos idfilme, titulo, nome estes campos so da tabela t_filme e t_categoria,
onde o id da tabela t_categoria(idcategoria) for igual a o idcategoria da tabela t_filme
(categoria_idcategoria), desta forma garanto que s sero listados o idcategoria que existir na
tabela t_filme, evitando assim registros duplicados, agora passo o idcategoria da tabela
t_categoria for igual a varivel $idcat, como podemos observar neste exemplo usamos aspas
simples, podendo tambm usar a concatenao de strings.
Linhas 30 a 35: Agora s executar a query e dentro do loop while passar os campos que
sero exibidos na pgina.

Consulta paginada
Neste exemplo vamos criar uma consulta, para listar apenas uma faixa de registro em cada
pgina usaremos a instruo 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.

PHP/MySQL [Informtica] 72
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Estrutura inicial da pgina


Abaixo temos o include da conexo da base de dados sbfilmes, e o link dos stilos.

Dentro da body na linha 35, declaramos uma varivel chamada $maximo, atravs dela vamos
determinar quantos registros sero mostrados por pgina.

Linha 37: Declaramos a varivel $pagina que vai receber o valor do mtodo GET, abaixo
temos uma estrutura condicional, se a varivel $pagina estiver vazia o valor um atribudo
pgina.
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.

PHP/MySQL [Informtica] 73
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Linha 47: Armazenamos na varivel $total o numero de linhas de um conjunto de resultados,


que foi obtido pela funo mysql_num_rows().

Contedo da pgina
Neste trecho do cdigo dando continuidade ao trecho anterior, iniciamos a gerao do
contedo que ser apresentado na pgina.

Linha 52: Nesta linha criamos a query para obter os registros da tabela t_filme, usamos a
clusula limit que retorna o limite entre dois valores, onde passamos a varivel $inicio que teve
seu valor calculado nas linhas anteriores, e a varivel $maximo que definimos o valor da
mesma no inicio do cdigo.

Linha 54: Agora passamos a query SQL que esta armazenada na varivel $sql, para a funo
mysql_fetch_object(), que retorna um objeto com propriedades que correspondem a linha
obtida, sendo armazenado na varivel $linha.

Linha 58: Nesta linha passamos o valor coresponde do campo da tabela para ser exibido nos
espaos definidos.

PHP/MySQL [Informtica] 74
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Navegao de pginas

Neste trecho vamos trabalhar a navegao de pagina, criando os links com o numero de
pginas e com os links prximo e anterior.
Linha 75: Nesta linha criamos a varivel $menos para decrementar a pgina, passar o valor
$pagina -1.
Linha 76: Agora criamos a varivel $mais para incrementar a pgina, passando o valor de
$pagina + 1.

Linha 77: Aqui temos a varivel $pgs que recebe o valor da funo ceil(), esta retorna o
prximo maior valor inteiro, arredondando para cima do valor, se fracionrio. Entre parnteses
estamos dividindo o total de registros pelo Maximo de registros obtido pela consulta.

Nas linhas 78 a 82: Temos estruturas condicionais para determinar se $pgs (pginas) maior
ou menor, se $menos maior que zero criar o link com a localizao atual do script atravs da
varivel global $_SERVER.

Linha 84: Nesta linha temos uma estrutura de repetio for, para criar a numerao das
pginas e acrescentar o link das mesmas.
Linha 91: Nesta estrutura condicional temos se $mais menor ou igual a $pgs, criar o link com
a localizao da pgina.

PHP/MySQL [Informtica] 75
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

5.6.5. Consulta
Nesta aula vamos desenvolver um formulrio 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.

Vamos criar uma nova pgina e chamaremos ela de consultar.php, abaixo temos a
codificao da pgina.

Na linha 3: Temos a varivel de pesquisa, que vai receber pelo mtodo POST o valor digitado
pelo usurio no input.
Abaixo, na linha 30 temos a construo da nossa query, que vai selecionar todos os campos da
tabela t_cidade onde o nome da cidade iniciar com o valor digitado pelo usurio no input.

PHP/MySQL [Informtica] 76
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Consulta com filtros

A proposta fazer aqueles formulrios em que temos 2 ou 3 ou mais inputs, que serviro de
filtro para a consulta que faremos na base de dados. Porm, o usurio pode querer preencher
apenas um desses campos, dois deles, ou todos, e a nossa query, deve se adequar a esta
realidade, mandando para o servidor apenas a consulta correta. Abaixo est a uma soluo
para o problema. Usando um array, e alguns ifs,

Estrutura HTML

PHP/MySQL [Informtica] 77
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Continuando a codificao da nossa pgina, na linha 21 temos uma estrutura condicional, se o


mtodo submetido for igual ao POST, ser criando um array para a clusula where.
Nas linhas 25 a 27: Temos as variveis recebendo o valor de retorno da funo getpost(),
nesta funo passamos um valor como parmetro.
Nas linhas 30 e 32: Utilizamos uma estrutura condicional para, se $nome for verdadeiro,
estiver preenchido o array $where[ ] receber o trecho da consulta.

PHP/MySQL [Informtica] 78
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

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 condio que conta os elementos de um array.
Na linha 36: fazemos a concatenao da query, e a utilizao da funo implode() que junta os
elemento da matriz $where na string $sql.
Linha 39: Aqui criamos uma funo de filtro anti injection, uma forma de proteger seu cdigo
contra ataques de injees de cdigo PHP na sua consulta.

Agora vamos executar a nossa query, passando a varivel $sql para a funo
mysql_fetch_assoc().

5.7. Relatrios.
Nesta aula vamos aprender a criar relatrio em PDF usando PHP, para esta prtica vamos
utilizar a classe FPDF, uma classe para PHP de grande utilidade no processo de criao de
relatrios em formato PDF, utilizando funes simples e poderosas. O FPDF um Software
Livre (e gratuito), o que significa que voc poder utiliz-lo livremente para uso pessoal ou
PHP/MySQL [Informtica] 79
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

comercial, alm de poder modific-lo e estudar seu cdigo-fonte, ao contrrio da PDFlib, que
exige o pagamento de licenas para uso comercial.
O FPDF possui suporte s principais funes para gerao de relatrios, como por exemplo:

Formatao de cabealho (Header) e rodap (Footer);


Quebra de pgina automtica;
Quebra de linha e justificao de texto automtica;
Suporte a imagens (JPEG e PNG);
Suporte a fontes TrueType e Type1;

Instalando o FPDF

Para utilizarmos precisamos fazer o download no site http://www.fpdf.org e baixar a ltima


verso do FPDF, depois, vamos descompacta-la no diretrio raiz do nosso site, como podemos
observar sua instalao bem simples.
No site desta classe podemos encontrar vrios tutoriais sobre sua utilizao, neste exemplo
vamos criar um modelo para ser utilizado, depois podemos visitar o site para nos
aprofundarmos.

Vamos criar um formulrio com uma lista drop-down (<select>), nela vamos listar os nomes
de clientes cadastrados na base de dados sbfilmes, conforme imagem abaixo, quando o
usurio der um clique no boto imprimir, ser enviado via POST o id do cliente selecionado, o
script modelo_pdf2.php recebe o valor da varivel e lista os dados do cliente selecionado no
formulrio.

Abaixo temos o formulrio e o resultado da gerao do PDF.

Vamos criar o formulrio, a pagina web ser chamada de form_pdf.php, inicialmente iremos
incluir o script conect_db.php com os dados da conexo da base de dados sbfilmes.

PHP/MySQL [Informtica] 80
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

No action do formulrio chamaremos o script modelo_pdf2.php.


Agora vamos criar o script modelo_pdf2.php, inicialmente iremos incluir a classe fpdf.php, e
depois o script conect_db.php.

Linha 5: Criamos a classe pdf que vai herdar os mtodos e objetos da classe FPDF.
Linha 7: Vamos criar uma funo chamada Header, que ser o topo da nossa pgina em pdf.
Linhas 9 a 17: Nestas linhas da funo Header, temos o mtodo Image onde definimos a
imagem que ir aparecer em nosso arquivo pdf, onde (10) e (6) so as coordenadas da

PHP/MySQL [Informtica] 81
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

imagem no documento, (30) representa o tamanho da imagem em milmetros, posso passar a


altura e a largura utilizando dois valores (30), (60), (se omitido utilizado o tamanho original da
imagem).
Outro parmetro que pode ser passado e o formato da imagem (os seguintes formatos so
vlidos: jpg, jpeg, png). Se no especificado, esse valor ser determinado a partir da extenso
do arquivo. Abaixo temos um exemplo com todos os parmetros:
$pdf->Image('logo.jpg',4,5,150,70,jpg);
Na linha 11 estamos setando a fonte pelo mtodo SetFont(), passamos trs parmetros
bsicos, o nome da fonte (Arial), o atributo de formatao B para deixar em negrito e o I para
itlico, o valor (15) representa o tamanho da fonte.
Na linha 13 temos o mtodo cell() que ser bastante utilizado, ento vamos entender como
este mtodo funciona.
Mtodo Cell()
Cria uma clula de tamanho, texto, borda e alinhamento configurados pelo programador.
Sintaxe:
Cell(float width [, float height [, string texto [, borda [, int ln [, string alinhamento [, int fill
[, mixed link]]]]]]])

Onde width a largura e height, a altura da clula. Alm destes parmetros, em texto informa-
se o contedo da clula(string texto). A opo borda deve ser preenchida com 0(zero), para
retir-la, ou 1 para colocar a borda. ln indica para onde vai o cursor aps a chamada da funo
Cell(), e seus valores podem ser 0 para a direita, 1 para o comeo da prxima linha e 2 para
baixo.

Alinhamento pode ser preenchido com L para a esquerda (default), C para centralizado e R
para a direita.
Em fill, devem-se informar os valores 0 para transparente (default) e 1 para preenchimento de
fundo da clula.
Em link, poderia se utilizar a URL ou identificador retornado pela funo AddLink().
Na linha 20: Temos a funo Footer que o nosso rodap, na linha 22 temos funo SetY,
que muda o cursor para a coordenada em y desejada. SetY(float coordenada);

Continuando o nosso script, na linha 31 cria-se um objeto. Com os valores default para pgina
so: tamanho A4 e no modo Retrato, com as medidas em milmetros (mm).

PHP/MySQL [Informtica] 82
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Para alterar os valores padres deste objeto preciso passar os parmetros deste objeto.
Vejamos a sintaxe abaixo PDF() :
PDF([String Orientao [,String Unidade [,mixed formato]]]);
O parmetro Orientao pode ser preenchido com:
P: Portrait (Retrato);
L: Landscape (Paisagem);
Em Unidade podemos informar os valores:
pt: para pontos;
mm: para milmetros;
cm: para centmetros;
in: para polegadas;
E em Formato:
A3;
A4;
A5;
Letter;
Legal;
Na linha 32: Defini um alias para o nmero de pginas, se no for informado nenhum assume
o default.
Na linha 33: Adiciona uma nova pgina.
Linha 37: Nesta linha recebemos o valor da tag <select> que ser armazenado na varivel
$id_cliente.
Linha 39: Agora faremos a consulta para obter os dados do cliente, atravs do valor
selecionado no formulrio, 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 atravs do mtodo POST
do formulrio.
Linhas 40 a 46: Temos o lao 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.

PHP/MySQL [Informtica] 83
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Linha 49: Nesta linha criado o arquivo PDF atravs do mtodo output(). Se o navegador
tiver o plugin Adobe Acrobat Reader instalado, o documento ser aberto pelo prprio
navegador. Caso contrrio, ele pedir para fazer o download do PDF gerado.

PHP/MySQL [Informtica] 84
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

6. Frameworks para desenvolvimento em PHP

Os frameworks facilitam o desenvolvimento de software, permitindo que os programadores se


ocupem mais com os requesitos do software do que com os detalhes tediosos, de baixo nvel
do sistema.

Com o uso de frameworks, os programadores tem o controle de seu tempo e de seus cdigos-
fonte, as tarefas repetitivas so minimizadas, os projetos so concludos em menos tempo, os
padres so seguidos.

Os diversos frameworks de desenvolvimento agilizam o processo de criao e manuteno de


aplicativos web. Cada framework tem as suas particularidades, nestas aulas vamos conhecer
um pouco de algumas dos frameworks mais utilizados, dependendo da sua necessidade
escolherem qual melhor se encaixa em seu projeto.

6.1. Solues de framework do PHP

Abaixo sero apresentados alguns frameworks que vamos conhecer que so: CakePHP,
Symfony, Zend Framework e Solar Framework.
Os frameworks so bastante utilizados em projetos complexes, e que utilizam algum padro de
desenvolvimento como MVC, que a separao da estrutura da aplicao em trs partes
distintas: Modelo, Viso e Controle:
Modelo: gerencia os dados da aplicao.
Viso: gerencia a sada grfica e textual da parte da aplicao visvel ao usurio.
Controle: interpreta as entradas de mouse e teclado do usurio, comandando a Viso 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 cdigos prontos que permitem realizar as tarefas mais bsicas no
desenvolvimento de um aplicativo. Por oferecer essa estrutura bsica, os frameworks tornam o
desenvolvimento mais rpido e reduzem o volume de cdigo repetitivo escrito pelo
programador.

PHP/MySQL [Informtica] 85
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

6.2. O CakePHP Framework

O CakePHP um Framework para desenvolvimento de aplicaes web no padro MVC


(Models-Views-Controllers) e ActiveRecord.
A idia principal ser um framework estruturado, que permita a usurios PHP de todos os
nveis desenvolverem aplicaes web robustas sem perda da flexibilidade.
Softwares que atendem os requisitos e que so de rpida manuteno/alterao, e tambm
aqueles que so implementados usando boas prticas de desenvolvimento e padres, so os
chamados Bons Softwares.
Com o CakePHP, a construo de um software assim se torna fcil. Com este Framework,
tambm possvel implementar usando Test-Driven-Development (TDD), ou seja,
desenvolvimento orientado a testes. Este fato permite que tudo na aplicao possa ser testado
e torna essa ferramenta muito poderosa.
O site oficial deste framework http://cakephp.org/, abaixo temos as principais caractersticas
deste framework;
Construir rapidamente
Use os recursos de gerao e estrutura de cdigo para criar rapidamente prottipos.

No Configurao
Nada de XML complicado ou arquivos YAML. Basta configurar seu banco de dados e voc
estar pronto para utilizar.

Licena amigvel
CakePHP licenciado sob a licena MIT que o torna perfeito para o uso em aplicaes
comerciais.

Baterias includas (Blocos)


As coisas que voc precisa so built-in. Tradues, acesso de banco de dados, caching,
validao, autenticao e muito mais so todos construdos em um dos quadros originais PHP
MVC.

Limpe Convenes MVC


Em vez de ter de planejar aonde as coisas vo, o CakePHP vem com um conjunto de
convenes para orient-lo no desenvolvimento de sua aplicao.

Proteger
CakePHP vem com built-in ferramentas para validao de entrada, proteo CSRF, proteo
adulterao Form, preveno de injeo SQL, preveno XSS, ajudando voc a manter seu
aplicativo seguro.

PHP/MySQL [Informtica] 86
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

6.3. O Solar Framework

Solar um framework de aplicaes web para PHP 5. a ideia de Paul M. Jones. Outros
desenvolvedores esto trabalhando em componentes adicionais para o pacote de distribuio
de projeto padro, tudo sob a nova licena BSD, o download dela pode ser encontrado em
http://solarphp.com/.

Este framework permite Integrao completa dos padres de desenvolvimento, como: MVC,
Query Objetos, Lazy Load. Abaixo temos algumas caractersticas deste framework.

Elegante e consistente: A prpria base de cdigo fcil de compreender, adere a


convenes de nomenclatura bem documentadas, e apresenta forte integridade
conceitual.
Nome Completo E-spacing: As classes solares tm o seu prprio PHP 5.2, tornado
mais fcil para misturar e combinar componentes de outras bibliotecas e frameworks.

Configuraes herdadas de classe: Defina um valor no arquivo de configurao para


uma classe, e todos os seus filhos herdam esses valores por padro.

Localizao herdada por classe: Defina as strings de locale para uma classe, e todos
os seus filhos herdam.

Segurana fcil de usar: Segurana de profundidade contra injeo de SQL, cross-site


scripting, cross-site request forgery e outros exploits comuns.

Modelo de sistema robusto: Que permite criar formulrios automaticamente a partir de


objetos de registro.

Filtragem de dados: Extensvel para validar e limpar entradas (input) do usurio.

PHP/MySQL [Informtica] 87
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

PHP/MySQL [Informtica] 88
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

6.4. O symfony Framework

A primeira verso do symfony foi lanada em Outubro de 2005 pelo fundador do projeto Fabien
Potencier. Fabien o CEO da Sensio (http://www.sensio.com/), uma agncia web francesa
muito conhecida pelos seus pontos de vista inovadores sobre desenvolvimento web.
symfony um framework completo projetado para aperfeioar o desenvolvimento de
aplicaes web, atravs de vrias caractersticas. Para comear ele separa um aplicativo web
das regras do negcio, lgica e apresentao. Ele contm diversas ferramentas e classes que
visam reduzir o tempo de desenvolvimento de uma complexa aplicao web. Alm disso, ele
automatiza tarefas comuns, para que o desenvolvedor possa se concentrar inteiramente nas
especificidades da aplicao. O resultado final dessas vantagens que no h necessidade de
reinventar a roda a cada vez que um novo aplicativo web construdo.

O symfony foi escrito inteiramente em PHP 5. Ele foi testado em vrios projetos do mundo real,
na verdade, no uso de alta demanda em sites de negcio. Ele compatvel com a maioria
das bases de dados disponveis, 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 caractersticas.

Caractersticas symfony
O symfony foi construdo a fim de cumprir os seguintes requisitos:

Fcil instalao e configurao em mais plataformas (garantido para trabalhar no padro


Unix e Windows).
Mecanismo de banco de dados independente.
Simples de usar, na maior parte dos casos e suficientemente flexvel para se adaptar
aos casos complexos.
Baseado na premissa de conveno sobre a configurao, o desenvolvedor precisa
configurar apenas o convencional.
Compatvel com a maioria das melhores prticas web e padres de design.
Cdigo legvel, documentao e fcil manuteno.
Fcil de estender, permitindo a integrao com outras bibliotecas.

PHP/MySQL [Informtica] 89
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

6.5. O Zend Framework


A ZEND uma empresa fundada em 1999 por Andi Gutmans e Zeev Suraski e a responsvel
pela manuteno e desenvolvimento de produtos e servios para a linguagem PHP. O Zend
Framework foi lanado no dia 04 de maro de 2006 e inclui diferentes componentes
desenvolvidos em PHP5 para prover alta qualidade para desenvolvimento de aplicaes web e
web services.

O Zend Framework fornece cdigo limpo estvel, baseada em PHP e orientada a objetos,
usa o paradigma MVC, possui contribuidores de software livre, contribuidores que assumem
responsabilidade pelo fato de seu cdigo no ser propriedade intelectual de terceiros, podemos
fazer o download do framework no site http://framework.zend.com/.

Este framework tem como meta facilitar sua vida de programao, no apenas em geral,
instituindo o padro MVC, mas tambm para coisas especficas que voc tende a fazer o
tempo todo, como acessar bancos de dados e gerao de arquivo PDF.

A estrutura componente do Zend Framework 2 nico, cada componente projetado com


poucas dependncias em outros componentes. Segue o princpio de projeto orientado a
objetos slidos.

Essa arquitetura flexvel permite aos desenvolvedores usar quaisquer componentes, na tabela
abaixo vamos conhecer estes componentes.

Componentes da Zend Framework incluem:

Zend_Controller Esse mdulo fornece o controle geral para o aplicativo. Converte


pedidos em aes especficas e assegura que sejam executados.

PHP/MySQL [Informtica] 90
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Zend_Db Esse baseado em PHP Data Objects (PDO) e fornece acesso a


bancos e dados de forma genrica.

Zend_Feed Esse facilita o consumo de alimentaes RSS e Atom.

Zend_Filter Esse fornece funes de filtragem de string, como isEmail() e


getAlpha().

Zend_InputFilter Para Zend_Filter, esse projetado para trabalhar com arrays como
entradas de formulrio.

Zend_HttpClient Esse possibilita executar pedidos HTTP facilmente.

Zend_Json Esse possibilita converter objetos PHP facilmente em JavaScript


Object Notation e vice-versa.

Zend_Log Esse fornece funcionalidade de criao de log de propsito geral.

Zend_Mail Esse possibilita que voc envie texto e e-mail MIME com diversas
partes.

Zend_Mime Esse usado pelo Zend_Mail para ajudar a decodificar mensagens


MIME.

Zend_Pdf Esse possibilita criar novos documentos PDF e carregar e editar


documentos PDF existentes.

Zend_Search Esse possibilita executar procuras sofisticadas em seu prprio texto.


Por exemplo, possvel construir um mecanismo de procura que
retorne resultados baseados na relevncia ou em outros fatores.

Zend_Service_Amazon, Esses fornecem fcil acesso a essas APIs de servio da Web.


Zend_Service_Flickr e
Zend_Service_Yahoo

Zend_View Esse manipula a parte "view" do padro MVC.

Zend_XmlRpc Esse possibilita criar facilmente um cliente XML-RPC. (Os recursos


do servidor so planejados para o futuro).

Tabela 10 - Componentes da Zend Framework

PHP/MySQL [Informtica] 91
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

Referncias Bibliogrficas
Construindo Aplicaes Web com Php e MysqlNovatec

Desenvolvimento de Aplicaes Em Php - Biblioteca Software LivreFca

Dominando PHP e MYSQL Do iniciante ao profissional2011Alta Books

Faa um Site - Php 5.2 Com Mysql 5.0 - Comrcio Eletrnico - Orientado Por Projeto - Para
WindowsErica

http://www.php.net/manual/pt_BR

Mysql - Guia do Programador Novatec

Php - Programando com Orientao a Objetos - 2 Ed. 2009NOVATEC

Php 6 e Mysql 5 para Web Sites DinmicosCiencia Moderna

Php And Mysql Web DevelopmentSams Publishing Digital

Php Para IniciantesCIENCIA MODERNA

Php5 And Mysql bibleJohn Wiley & Sons

Web Interativa com Ajax e PHPNovatec

PHP/MySQL [Informtica] 92
Escola Estadual de Educao Profissional Ensino Mdio Integrado a Educao Profissional

ndice de Tabelas
Tabela 1 - Variveis Globais Fonte:
http://php.net/manual/pt_BR/language.variables.superglobals.php ................................................... 6

Tabela 2 - Funes para Array ...............................................................................................................20

Tabela 3 Funes de manipulao de arquivos ............................................................................... 23

Tabela 4 Modos de Arquivos ...............................................................................................................23

Tabela 5 - Opes de configurao de e-mail ..................................................................................... 37

Tabela 6 - Principais Bancos de Dados suportados em PHP - Fonte http://www.php.net ........... 43

Tabela 7 - Funes PHP para SGBD MySql ........................................................................................ 44

Tabela 8 Funes para tratamento de excees. ............................................................................ 47

Tabela 9 Funes para sesso. ..........................................................................................................50

Tabela 10 - Componentes da Zend Framework .................................................................................. 91

PHP/MySQL [Informtica] 93
Hino Nacional Hino do Estado do Cear

Ouviram do Ipiranga as margens plcidas Poesia de Thomaz Lopes


De um povo herico o brado retumbante, Msica de Alberto Nepomuceno
E o sol da liberdade, em raios flgidos, Terra do sol, do amor, terra da luz!
Brilhou no cu da ptria nesse instante. Soa o clarim que tua glria conta!
Terra, o teu nome a fama aos cus remonta
Se o penhor dessa igualdade Em claro que seduz!
Conseguimos conquistar com brao forte, Nome que brilha esplndido luzeiro
Em teu seio, liberdade, Nos fulvos braos de ouro do cruzeiro!
Desafia o nosso peito a prpria morte!
Mudem-se em flor as pedras dos caminhos!
Ptria amada, Chuvas de prata rolem das estrelas...
Idolatrada, E despertando, deslumbrada, ao v-las
Salve! Salve! Ressoa a voz dos ninhos...
H de florar nas rosas e nos cravos
Brasil, um sonho intenso, um raio vvido Rubros o sangue ardente dos escravos.
De amor e de esperana terra desce, Seja teu verbo a voz do corao,
Se em teu formoso cu, risonho e lmpido, Verbo de paz e amor do Sul ao Norte!
A imagem do Cruzeiro resplandece. Ruja teu peito em luta contra a morte,
Acordando a amplido.
Gigante pela prpria natureza, Peito que deu alvio a quem sofria
s belo, s forte, impvido colosso, E foi o sol iluminando o dia!
E o teu futuro espelha essa grandeza.
Tua jangada afoita enfune o pano!
Terra adorada, Vento feliz conduza a vela ousada!
Entre outras mil, Que importa que no seu barco seja um nada
s tu, Brasil, Na vastido do oceano,
Ptria amada! Se proa vo heris e marinheiros
Dos filhos deste solo s me gentil, E vo no peito coraes guerreiros?
Ptria amada,Brasil!
Se, ns te amamos, em aventuras e mgoas!
Porque esse cho que embebe a gua dos rios
Deitado eternamente em bero esplndido, H de florar em meses, nos estios
Ao som do mar e luz do cu profundo, E bosques, pelas guas!
Fulguras, Brasil, floro da Amrica, Selvas e rios, serras e florestas
Iluminado ao sol do Novo Mundo! Brotem no solo em rumorosas festas!
Abra-se ao vento o teu pendo natal
Do que a terra, mais garrida, Sobre as revoltas guas dos teus mares!
Teus risonhos, lindos campos tm mais flores; E desfraldado diga aos cus e aos mares
"Nossos bosques tm mais vida", A vitria imortal!
"Nossa vida" no teu seio "mais amores." Que foi de sangue, em guerras leais e francas,
E foi na paz da cor das hstias brancas!
Ptria amada,
Idolatrada,
Salve! Salve!

Brasil, de amor eterno seja smbolo


O lbaro que ostentas estrelado,
E diga o verde-louro dessa flmula
- "Paz no futuro e glria no passado."

Mas, se ergues da justia a clava forte,


Vers que um filho teu no foge luta,
Nem teme, quem te adora, a prpria morte.

Terra adorada,
Entre outras mil,
s tu, Brasil,
Ptria amada!
Dos filhos deste solo s me gentil,
Ptria amada, Brasil!

Вам также может понравиться