Instrutores:
Carlos Rebecchi
Danielle Santos
Belo Horizonte
2014
Sumrio
Introduo ................................................................................................................................................................. 3
PHP ........................................................................................................................................................................... 3
3.1
3.2
Documentao .................................................................................................................................................. 4
3.3
3.3.1
3.3.2
Constantes ................................................................................................................................................ 5
3.3.3
Operadores ............................................................................................................................................... 6
3.3.4
3.4
3.4.1
If / Else....................................................................................................................................................... 6
3.4.2
Switch ........................................................................................................................................................ 7
3.5
Arrays ................................................................................................................................................................ 7
3.5.1
Arrays Associativos.................................................................................................................................... 8
3.5.2
3.6
3.6.1
For ........................................................................................................................................................... 10
3.6.2
While ....................................................................................................................................................... 10
3.6.3
Do-While ................................................................................................................................................. 10
3.6.4
Foreach.................................................................................................................................................... 10
3.7
3.8
Funes ........................................................................................................................................................... 12
3.8.1
3.8.2
3.8.3
3.9
3.9.1
3.9.2
Atributos ................................................................................................................................................. 14
3.9.3
Mtodos .................................................................................................................................................. 15
3.9.4
3.9.5
3.9.6
Herana ................................................................................................................................................... 16
3.9.7
Encapsulamento...................................................................................................................................... 17
3.9.8
Polimorfismo ........................................................................................................................................... 20
4.2
4.2.1
4.2.2
4.2.3
PHPMyAdmin .......................................................................................................................................... 23
4.3
4.3.1
GET .......................................................................................................................................................... 24
4.3.2
POST ........................................................................................................................................................ 25
4.4
Formulrio ....................................................................................................................................................... 25
4.4.1
5
Referncias .............................................................................................................................................................. 28
2
Universidade Corporativa Prodemge 2014
Curso PHP
2
Introduo
Esta apostila tem como objetivo apresentar a linguagem de programao chamada PHP, sigla recursiva que significa
Hypertext Prepocessor. O PHP possui cdigo-fonte aberto e uma linguagem de servidor muito utilizada para criao
de websites dinmicos e aplicaes web.
PHP
O PHP focado para ser uma linguagem de script do lado do servidor, portanto, voc pode fazer qualquer coisa que
outro programa CGI pode fazer, como: avaliar dados de formulrios enviados por um navegador, criar contedo web
personalizado para o navegador, conversar com um banco de dados, e at mesmo enviar e receber cookies. "E da?",
voc pode dizer. "Posso fazer isso com Java Script." E verdade! Mas o conhecimento de Java Script pode ser
limitado.
Java Script geralmente executado no navegador, ou cliente. Isso significa que ele s sabe o que est acontecendo
realmente no seu navegador, e sobre as informaes que ele obtm dos websites aos quais voc est conectado.
PHP, por outro lado, executado no mesmo computador que o website que voc est visitando, que conhecido como
servidor. Isso significa que ele tem acesso a toda a informao e a todos os arquivos naquela mquina, o que o permite
construir pginas HTML personalizadas para enviar ao seu navegador, manusear cookies, e executar tarefas ou
realizar clculos com dados obtidos a partir do website.
Esses so os maiores campos onde os scripts PHP podem ser utilizados:
Script no lado do servidor (server-side): Este o mais tradicional e principal campo de atuao do PHP. Voc
precisa de trs coisas para seu trabalho. O interpretador do PHP (como CGI ou mdulo), um servidor web e
um browser. Basta rodar o servidor web conectado a um PHP instalado. Voc pode acessar os resultados de
seu programa PHP com um browser, visualizando a pgina PHP atravs do servidor web.
Script de linha de comando: Voc pode fazer um script PHP funcionar sem um servidor web ou browser. A
nica coisa necessria o interpretador. Esse tipo de uso ideal para script executados usando o cron ou o
Agendador de Tarefas (no Windows). Esses scripts podem ser usados tambm para rotinas de processamento
de texto.
Escrevendo aplicaes GUI no lado do cliente (client-side): O PHP no (provavelmente) a melhor
linguagem para produo de aplicaes com interfaces em janelas, mas o PHP faz isso muito bem, e se voc
deseja usar alguns recursos avanados do PHP em aplicaes no lado do cliente poder utilizar o PHP-GTK
para escrever esses programas. E programas escritos desta forma ainda sero independentes de plataforma. O
3
Universidade Corporativa Prodemge 2014
PHP-GTK uma extenso do PHP, no disponvel na distribuio oficial. Se voc est interessado no PHPGTK, visite o site http://gtk.php.net.
Explicando, criamos as variveis a e b e atribumos a ela um valor, sendo 10 e 15 respectivamente, depois criamos
a varivel c e definimos a ela a soma de a e b, ou seja, 25. Logo aps, escrevemos isso em tela com o comando
echo. Podemos adicionar no somente comandos como tambm comentrios no cdigo utilizando /* e */, para
comentrio em bloco e //, para comentrio de apenas uma linha.
3.2 Documentao
Assim como o PHP GTK, as outras verses do PHP (PHP 4, PHP 5, etc.) tambm possuem documentao ou como
comumente chamado, manuais, disponveis on-line em vrios idiomas. Para maior conhecimento da linguagem, estes
manuais so indispensveis e esto disponveis em http://php.net.
Tipos de dados
Cada varivel possui um tipo de dado. O PHP suporta vrios tipos de dados:
Inteiros Nmeros inteiros (isto , nmeros sem ponto decimal);
Nmeros de dupla preciso Nmeros reais (isto , nmeros que contm um ponto decimal);
String Texto entre aspas simples ( ) ou duplas ( );
Booleanos Armazenam valores verdadeiros ou falsos, usados em testes de condies;
4
Universidade Corporativa Prodemge 2014
3.3.2
Constantes
Constantes so identificadores para valores simples. O seu contedo no muda durante a execuo do cdigo. Elas so
criadas com a funo define e, por conveno, so escritas com letras maisculas e no usam o cifro no incio.
5
Universidade Corporativa Prodemge 2014
3.3.3
Operadores
So usados para efetuarem operaes sobre as variveis e constantes. Os operadores do PHP so:
+ soma
- subtrao
* multiplicao
/ diviso
^ exponenciao
% mdulo, resto da diviso
++ acrescenta um a uma varivel
-- subtrai um de uma varivel
+= soma um valor a uma varivel e lhe atribui o resultado
3.3.4
Operadores lgicos
and ou && operador lgico e, apenas retornando verdadeiro quando as duas condies envolvidas no teste forem
verdadeiras.
or ou | | operador lgico ou, retornando verdadeiro quando uma ou as duas condies envolvidas no teste forem
verdadeiras.
! operador lgico no, invertendo o resultado de um teste.
xor operador lgico ou exclusivo que determina se uma de duas condies verdadeira mas no ambas. Se ambas
forem verdadeiras, o teste final ser falso.
If / Else
Uma estrutura if composta pela palavra reservada if, uma condio e um par de chaves { }. Se a resposta condio
for true, verdadeira, o cdigo dentro das chaves ser executado.
Alm realizar alguma ao quando a condio true, podemos realizar alguma ao se a condio for falsa, false.
Podemos fazer isso usando uma instruo if / else:
6
Universidade Corporativa Prodemge 2014
Assim como antes, se a condio verdadeira, ento somente o cdigo dentro do primeiro par de chaves ser
executado. Caso contrrio, a condio falsa, ento somente o cdigo dentro do segundo par de chaves, depois da
palavra reservada else, ser executado.
3.4.2
Switch
A instruo switch nos permite realizar operaes de fluxo de controle mais complexas sem usar uma infinidade de
ifs e elses encadeados. Forma de testar uma dentre vrias possibilidades. A declarao default executa caso
nenhuma das opes for verdadeira. A declarao break faz com que o restante do cdigo no seja executado caso o
teste seja verdadeiro.
VAMOS PRATICAR
1. Inicie uma tag PHP, crie as variveis: nome, sobrenome, idade, peso e endereo.
2. Preencha as variveis criadas com seus dados.
3. Crie uma condio que imprima a mensagem J sou experiente! se voc tem mais que 60 anos, caso
contrrio imprima Estou em fase de aprendizagem!.
3.5 Arrays
Arrays nos permite armazenar listas de informaes em uma nica varivel. Arrays em PHP podem ser observados
como mapeamentos ou como vetores indexados. Mais precisamente, um valor do tipo array um dicionrio onde os
ndices so as chaves de acesso. Vale ressaltar que os ndices podem ser valores de qualquer tipo e no somente
inteiros. Inclusive, se os ndices forem todos inteiros, estes no precisam formar um intervalo contnuo. Como a
7
Universidade Corporativa Prodemge 2014
checagem de tipos em PHP dinmica, valores de tipos diferentes podem ser usados como ndices de array, assim
como os valores mapeados tambm podem ser de diversos tipos.
Exemplo:
3.5.1
Arrays Associativos
Uma caracterstica bem interessante dos arrays em PHP a capacidade de fazer associaes.
Quando nos referimos a associaes, queremos dizer que, ao invs de usarmos nmeros como ndices, podemos usar
strings (nomes). Dessa forma, fica muito mais simples e intuitivo obter um valor de um array, pois nomes fazem mais
sentido do que nmeros.
Para usarmos o array associativo basta apenas substituir o nmero do ndice por uma string. Veja o exemplo abaixo.
Caso queiramos inicializar o array diretamente usando associaes, devemos usar seta larga para vincular um valor a
uma chave.
A seta larga composta pelo sinal de igual mais o sinal de maior (=>). Veja o mesmo cdigo usando as setas largas
diretamente na associao.
8
Universidade Corporativa Prodemge 2014
3.5.2
PHP tambm possibilita o uso de matrizes que so arrays que contm outros arrays dentro dele. Ou seja, em cada
posio de um array, possui outro array. Dessa forma nosso array pode ser bidimensional (2D), tridimensional (3D) e
assim por diante.
Quando utilizamos arrays multidimensionais (matrizes) existem mais ndices numa mesma varivel.
Exemplos:
Array comum: $vetor []
Array bidimensional: $vetor [][]
Array tridimensional: $vetor [][][] e assim por diante.
Os ndices de um array multidimensional seguem as mesmas caractersticas dos ndices vistos at agora, podendo ser
tanto numrico como associativo. O exemplo abaixo toma como base o exemplo anterior, porm, iremos criar uma
matriz para que haja mais de uma pessoa cadastrada.
VAMOS PRATICAR
1. Crie um array chamado paises.
2. Preencha o array criado com 5 paises de sua preferencia.
3. Crie um novo array multidimensional chamado lugares.
4. Este array ser preenchido da seguinte forma: adicione 3 pases, cada pas ter duas caractersticas, cor (uma
cor existente na bandeira do pas) e cidade (uma cidade famosa do pas).
3.6.1
For
Estrutura de looping que executa um bloco de cdigo quantas vezes for indicado em uma varivel. Deve-se definir a
varivel que ser testada no looping, uma condio de teste e o incremento (ou decremento) da varivel de controle.
3.6.2
While
Estrutura de looping que no necessita de um nmero determinado de iteraes. Ele executado enquanto uma
condio for verdadeira.
3.6.3
Do-While
Outra forma de looping que executa um bloco de cdigo testa uma condio e repete novamente o bloco de cdigo (ou
no).
3.6.4
Foreach
O foreach uma simplificao do operador for para se trabalhar em colees de dados, ou seja, vetores e matrizes. Ele
permite acessar cada elemento individualmente iterando sobre toda a coleo e sem a necessidade de informao de
ndices.
Por exemplo, supondo que fosse preciso percorrer um vetor com alguns elementos com o for. Seria necessrio utilizar
um contador para servir tambm de ndice para acessar cada elemento, conforme a listagem a seguir.
Iterao em vetor com FOR:
10
Universidade Corporativa Prodemge 2014
Esse cdigo poderia ser simplificado com a utilizao do operador foreach, como mostrado abaixo:
3.8 Funes
Funes so trechos reutilizveis de cdigo que podemos usar para poupar um monte de comandos desnecessrios e
deixar nossos programas e aplicaes mais eficientes.
3.8.1
Funes nativas
O PHP possui mais de 700 funes nativas, ou seja, funes prontas para serem utilizadas. No decorrer do curso
veremos algumas delas e os restantes esto disponveis em http://php.net/.
Temos vrias funes nativas para diferentes necessidades, como:
3.8.2
Alm, das funes nativas, o PHP nos permite definir nossas prprias funes.
A sintaxe bsica para definir uma funo :
function nome_da_funo ([arg1, arg2, arg3]) {
Comandos;
12
Universidade Corporativa Prodemge 2014
... ;
[return <valor de retorno>];
}
Qualquer cdigo PHP vlido pode estar contido no interior de uma funo. Como a checagem de tipos em PHP
dinmica, o tipo de retorno no deve ser declarado, sendo necessrio que o programador esteja atento para que a
funo retorne o tipo desejado. recomendvel que esteja tudo bem documentado para facilitar a leitura e
compreenso do cdigo. Para efeito de documentao, utiliza-se o seguinte formato de declarao de funo:
tipo_funcao function nome_da_funcao (tipo arg1, tipo arg2, ...);
Este formato s deve ser utilizado na documentao do script, pois o PHP no aceita a declarao de tipos. Isso
significa que em muitos casos o programador deve estar atento aos tipos dos valores passados como parmetros, pois
se no for passado o tipo esperado no emitido nenhum alerta pelo interpretador PHP, j que este no testa os tipos.
Os tipos so usados tanto para funes quanto para variveis, sendo eles:
public - torna uma varivel/funo disponvel a partir de qualquer lado, mesmo outras classes e instncias do
objeto.
private - quando queremos que uma varivel/funo esteja visvel apenas dentro da sua prpria classe.
protected - quando queremos que uma varivel/funo esteja visvel em todas as classes que estendem a classe
atual, incluindo classes pai.
3.8.3
Uma facilidade que a linguagem PHP permite que podemos passar como parmetro de uma funo o retorno de
outra funo como no exemplo a segui.
Exemplo:
13
Universidade Corporativa Prodemge 2014
A chamada de funo acima ir imprimir 40, pois a funcao_numero_um recebe um valor como parmetro e retorna
o valor multiplicado por dois, a funcao_numero_dois recebe como parmetro o retorno multiplicado e retorna esse
valor multiplicado por dois e mostrado na tela.
VAMOS PRATICAR
1. Crie as seguintes funes:
A. Dado um nmero inteiro positivo n, calcular a soma dos n primeiros nmeros inteiros positivos.
B. Dada uma sequncia de nmeros inteiros no nulos, seguida por 0, imprimir seus quadrados.
C. Dado um nmero inteiro positivo n, imprimir os n primeiros naturais mpares.
Exemplo: Para n = 4 a sada dever ser 1, 3, 5, 7...
A especificao de uma classe composta por trs regies, nome da classe, atributos e mtodos.
3.9.1
Nome da classe
Um identificador para a classe, que permite referenci-la posteriormente, por exemplo, no momento da criao de um
objeto.
3.9.2
Atributos
14
Mtodos
O conjunto de funcionalidades da classe. Para cada mtodo, especifica-se sua assinatura, composta por:
nome: um identificador para o mtodo.
tipo: quando o mtodo tem um valor de retorno, o tipo desse valor.
lista de argumentos: quando o mtodo recebe parmetros para sua execuo, o tipo e um identificador para
cada parmetro.
visibilidade: como para atributos, define o quo visvel um mtodo a partir de objetos de outros classes.
As tcnicas de programao orientada a objetos recomendam que a estrutura de um objeto e a implementao de seus
mtodos devem ser to privativos como possvel. Normalmente, os atributos de um objeto no devem ser visveis
externamente. Da mesma forma, de um mtodo deve ser suficiente conhecer apenas sua especificao, sem
necessidade de saber detalhes de como a funcionalidade que ele executa implementada.
3.9.4
Criando Classes
3.9.5
Instanciando Objetos
Em programao orientada a objetos, a palavra "instanciar" significa criar. A instncia objeto criado com base em
uma classe definida.
Conceitualmente, a instncia possui duas propriedades fundamentais: a classe a partir da qual foi criado, que define
suas propriedades e mtodos padro, e um estado, que representa o conjunto de valores das propriedades e mtodos
definidos naquela instncia especfica. A instncia possui um ciclo de vida: criada (e neste momento seu construtor
invocado), manipulada conforme necessrio, e destruda quando no for mais til para o programa. O estado da
instncia evolui ao longo do seu ciclo de vida: seus atributos so definidos e tm seu valor alterado atravs de seus
mtodos e de manipulao realizada por outros objetos.
15
Universidade Corporativa Prodemge 2014
3.9.6
Herana
Herana em orientao a objeto pode ser entendida como um mecanismo que permite construir uma nova classe com
base em uma classe previamente existente, em que a nova classe herda automaticamente todos os atributos,
comportamentos e implementaes da classe-pai.
A herana, podemos reutilizar partes de cdigo j definidas, alm da agilidade, ela elimina a necessidade de duplicar
ou rescrever certo cdigo. Essas caractersticas nos permitem ao invs de escrevermos uma estrutura totalmente nova,
reaproveitar a estrutura existente mesmo que a mesma nos fornea apenas uma base abstrata para o desenvolvimento.
Para estender uma nova classe (chamaremos de subclasse), utilizamos a palavra reservada extends. Quando criamos
uma subclasse, todos os mtodos pertencentes a classe pai podem ser executados. Tambm possvel sobrescrever os
seus mtodos e propriedades, a fim de criar novos, com outras caractersticas. Se na subclasse escrito um mtodo
com o mesmo nome do mtodo existente na classe pai, passa a vigorar o mtodo da classe filha subclasse.
importante destacar que somente os mtodos protect e public podem ser reescritos.
Nada melhor que um exemplo para facilitar o entendimento por isso, vamos retornar a nossa classe pessoa e a partir
dela criaremos a classe funcionrio, pois o funcionrio uma pessoa, consequentemente, funcionrio herdar as
caractersticas da classe pessoa, ao invs de duplicarmos tudo de novo na classe funcionrio.
16
Universidade Corporativa Prodemge 2014
Nota que a ClasseFilho herda o mtodo reajustarSalario automaticamente da ClassePai e usa-o no mtodo
somarSalarioComReajuste.
3.9.7
Encapsulamento
O Encapsulamento serve para controlar o acesso aos atributos e mtodos de uma classe. uma forma eficiente de
proteger os dados manipulados dentro da classe, alm de determinar onde esta classe poder ser manipulada.
Elementos public so utilizados em variveis e mtodos universais, onde no h problema nem necessidade de
segurana daquele dado. Exemplo: horas, constantes, variveis globais, nome do programa ou da empresa etc.
Diferente dos elementos public, os private ou privado so informaes 'escondidas', ou no mnimo controladas. Por
exemplo, bem comum ver todas as variveis de uma classe definidas como private, e usar mtodos public do tipo
set, para dar um valor a esta varivel. Isso tudo tem um motivo: variveis private no podem ser acessadas nem por
suas subclasses.
O protected ou protegido pra quando no queremos deixar um atributo ou mtodo pblico, livre para todos. Porm,
voc quer compartilhar ele com as subclasses. O protected um intermedirio entre public e private. Como se fosse
um segredo de famlia (subclasses). Para todas as outras classes, atributos protected so invisveis, ou seja, estamos
protegendo do acesso externo.
A seguir trs exemplos usando Public, Private e Protected:
Public
Neste exemplo podemos ver atributos e mtodos pblicos na classe TesteEncapsulamento onde os mesmos
podero ser acessados em qualquer cdigo PHP que importe esta classe que esta no arquivo
TesteEncapsulamento.php, como veremos no index.php abaixo.
17
Universidade Corporativa Prodemge 2014
Private
O modelo usando private demonstra que atributos e mtodos que so privados no podero ser usados por
classes herdadas e nem por instancias do objeto que tenha mtodos privados, como mostrado no exemplo
abaixo. Nota que h dois casos de erro no cdigo abaixo por ser tentar utilizar mtodos privados em uma
instncia.
18
Universidade Corporativa Prodemge 2014
Protected
Notamos no exemplo abaixo que possvel usar mtodos e atributos protegidos somente em sua herana. A
classe TesteHerancaComEncapsulamento herda os mtodos e atributos de sua classe me
TesteEncapsulamento. Para que possamos usar os mtodos protegidos em uma instncia de classe. Pois uma
instancia de classe no poder usar os mtodos protegidos da classe me, por isso a classe filha ir herdar os
dados protegidos e repassa-la de forma publica para suas instncias.
19
Universidade Corporativa Prodemge 2014
3.9.8
Polimorfismo
O Polimorfismo a existncia de uma espcie sob vrias formas. um artefato simples, mas seu entendimento
muito importante na orientao a objetos. Pois podemos derivar classes de uma mesma superclasse e utilizar mtodos
iguais, porm com comportamentos diferentes. Veja o exemplo:
20
Universidade Corporativa Prodemge 2014
Repare h 2 arquivos diferentes onde a classe Calculo2 est herdando as caractersticas da classe Calculo1. Com
isso h a possibilidade de receber as resposta de Calculo1 (dividindo) e Calculo2 (somando) criando apenas o
objeto da classe Calculo2:
Mas digamos que no calculo 2 haja a necessidade de ter outra uma outra funo dividir (4 por 2) que ser especfica
apenas na determinada aplicao Calculo2 sem a necessidade de alterar a classe pai Calculo1.
Dessa forma ser demonstrado o funcionamento do polimorfismo. Quando for executado o mtodo $calculo->
dividir() o PHP ir procurar dentro da classe Calculo2 a funo dividir e, encontrando, executa a diviso 4/2 e, se
ela no existir, ele ir executar a outra funo dividir 10/2, que est dentro do arquivo Calculo1.php. Teoricamente
21
Universidade Corporativa Prodemge 2014
poderamos encontrar algum problema ao estender uma classe da outra e utilizar duas funes com o mesmo nome,
mas exatamente o contrrio que o polimorfismo nos permite fazer.
Banco de dados
O ponto de partida para a criao de uma aplicao termos um banco de dados. Podemos usar vrios tipos de banco
de dados; IBM DB2 (IBM DB2, Cloudscape and Apache Derby), Mssql (Microsoft SQL Server), MySQL (MySQL
Drivers and Plugins), SQL Oracle, etc.
O melhor banco de dados a ser usado no nosso caso o MySql.
A funo mysql_query faz consultas base previamente selecionada. Devem-se passar, como parmetros, os
comandos SQL apropriados. Novamente, o comando alternativo die pode tratar um no sucesso na consulta.
Para podermos testar nossos cdigos em PHP necessria a utilizao de um servidor com suporte a PHP. Caso ainda
no possua um servio de hospedagem, ou caso seu servio de hospedagem no de suporte linguagem, voc pode
testar suas pginas em PHP em um servidor local. Vamos para dar andamento ao contedo da apostila usar o WAMP
Server, que um pacote que j instala para voc o servidor internet local com suporte a PHP e MySQL. Basta ir
clicando e avanando. Aps a instalao ser mostrado prximo ao relgio o cone de seu servidor web.
WAMP ou XAMPP so sistemas indicados para os usurios que no tm instalado no sistema nenhum dos programas
necessrios para programar em PHP (Apache, PHP e MySQL), j que realiza uma instalao completa e desde zero.
Mas tambm podem utilizar este programa os usurios que dispem de Apache, PHP e/ou MySQL em seu sistema.
Em cujo caso, simplesmente se realizar outra cpia das aplicaes em um diretrio distinto, que a princpio, no tem
porque interferir com as outras instalaes alojadas em nosso computador.
4.2.1
A instalao se realiza atravs de um executvel Windows onde podem se introduzir poucas configuraes, apenas o
diretrio onde desejarmos que se instalem os programas. Depois do processo de instalao foram criados dois servios
com o servidor web e o de base de dados:
Servio wamp/xamp apache: Relacionado com o servidor Apache.
Servio wamp/xamp mysql: Relacionado com a base de dados MySQL.
Dentro do diretrio onde tivermos instalado WAMP/XAMPP ter sido criado uma pasta chamada "www", que
corresponde com o diretrio de publicao, ou seja, o lugar onde devem ser colocadas as pginas web.
Durante a instalao tambm devemos decidir se desejamos que WAMP/XAMPP se inicie automaticamente ao ligar o
computador ou se desejamos que seu funcionamento se realize manualmente.
4.2.2
Aps a instalao de um desses pacotes temos que inicia-lo sempre que formos utiliza-lo, caso no tivermos
selecionado que o servidor se inicie automaticamente.
Uma vez em funcionamento obteremos um cone na barra de tarefas com a forma parecida a de um marcador de
velocidade. Se clicarmos sobre esse cone, abrir um menu com opes variadas para providenciar os servios
relacionados com o pacote.
4.2.3
PHPMyAdmin
23
Universidade Corporativa Prodemge 2014
PHPMyAdmin um aplicativo web desenvolvido em PHP para administrao do MySQL pelo navegador web. A
partir deste sistema possvel criar e remover bases de dados, criar, remover e alterar tabelas, inserir, remover e editar
campos, executar cdigos SQL e manipular campos chaves. Atualmente o XAMPP insere o PHPMyAdmin junto com
o servidor PHP e MySql quando instalado. Site Oficial: http://www.phpmyadmin.net
4.3.1
GET
o mtodo mais simples e mais limitado para se usar. Neste caso os valores e seus respectivos identificadores so
transmitidos pela URL, como exemplo: http://www.meusite.com/versecao.php?id=32&descricao=Minha_Secao
Esse exemplo demonstra na prtica o uso da passagem de parmetros via GET. A presena da interrogao (?) indica
o fim do endereo e o incio da declarao dos nossos valores que sero passados. Neste caso, a pgina versecao.php
receber uma varivel chamada id com o valor 32, e outra varivel descricao com valor Minha_Secao.
Como os valores so passados pela URL, h um limite para o nmero de bytes que sero enviados. Podendo ser
enviado no mximo 1024 caracteres, o que limita bastante a possibilidades com esse mtodo.
Outra questo, agora referente segurana, sobre os tipos de dados que voc poder enviar via URL. Como nesse
mtodo os dados so visveis ao usurio e o navegador salva no histrico, no bom, que seja passado informaes
confidenciais via GET, como senhas por exemplo.
24
Universidade Corporativa Prodemge 2014
O ideal que se use o mtodo GET somente para passar parmetros para pesquisas e outras informaes no crticas.
Para solucionar os outros problemas temos disponvel o mtodo POST.
O PHP armazena as variveis vindas por GET em arrays associativos, vetores cujos ndices so strings.
Vejamos como seria o retorno do exemplo GET acima.
Foram passadas duas variveis: id e descrio. Para pegar o id e descrio fazemos:
$meuId = $_GET[id] e $minhaDescricao = $_GET[descricao]
4.3.2
POST
O mtodo POST representa uma alternativa ao mtodo GET para as questes de capacidade e segurana. Nesse
mtodo uma conexo paralela aberta e os dados so passados por ela. No h restrio referente ao tamanho e os
dados no so visveis ao usurio. H nica condio que se use um formulrio para a transferncia dos dados.
Na tag form, temos um atributo action. Nesse atributo que setado a pgina que receber nossas informaes. Quando
o boto submit for acionado todos os dados desse formulrio sero passados para a pgina definida no action. uma
maneira segura e com mais capacidade em termos de espao.
No caso do mtodo POST, temos um array chamado $_POST que armazenar os dados vindos do formulrio. Vale
lembrar que, nesse caso, os ndices do array sero os nomes dados aos inputs no seu formulrio.
Para acessar os valores vindos de um formulrio com nome e idade, fazemos:
4.4 Formulrio
Os valores enviados atravs de um formulrio podem ser recuperados pela varivel predefinida $_POST. Atravs dela
possvel obter os dados que foram enviados atravs do mtodo POST do HTML, bastando indicar o nome do campo
do formulrio. No comando action do formulrio, deve-se indicar a pgina PHP que ir receber os valores. O mesmo
documento pode conter o cdigo e o formulrio.
4.4.1
25
Universidade Corporativa Prodemge 2014
Criaremos a classe Conexao, esta classe ela cria uma conexo com o banco de dados MySQL passando por
parmetro no mtodo mysql_connect endereo do banco de dados, login e senha.
Logo em seguida h um if que verifica se h conexo seno ir disparar a mensagem de erro No conectado e a
cauda do erro emitido pelo MySQL.
Na funo mysql_select_db passado por parmetro o a base de dados selecionada e o link de conexo criado
acima. Novamente verificado se h conexo seno ir disparar o erro.
Criaremos o arquivo index.php que ser a pgina principal, neste arquivo haver um formulrio para listar todos os
clientes cadastrados pelo formulrio. Os valores recebidos no foreach vem de um mtodo da classe Clientes mtodo
listarClientes que ser mostrado em seguida.
H um boto para adicionar um novo cliente que redirecionar a pagina para o arquivo adicionar_cliente.php, que h
um formulrio para o cadastro do mesmo.
O arquivo abaixo o adicionar_cliente.php que haver um formulrio em HTML que cadastra o nome e
telefone do cliente. E envia para o mtodo salvarCliente da classe Clientes.
26
Universidade Corporativa Prodemge 2014
Finalmente iremos adicionar a classe Clientes no arquivo Clientes.php. Esta classe tem dois mtodos um para
salvar e outro para listar clientes. O mtodo salvarCliente cria uma nova conexo com bancos de dados e executa a
query de insert, esse mtodo chamado no arquivo adicionar_cliente.php.
O mtodo listarClientes executa uma query se select que retorna todos os clientes cadastrados e vetoriza os
resultados no array $clientes usando o operado while, esse mtodo chamado no index.php.
VAMOS PRATICAR
1. Acessar o PHPMyAdmin: localhost/phpmyadmin
2. Criar Base de dados: exemplo
27
Universidade Corporativa Prodemge 2014
Referncias
Manual PHP
Disponvel em < http://php.net/manual/pt_BR/index.php>. Acesso em 01 de set. de 2014.
Revista PHP
Disponvel em < http://www.revistaphp.com.br/>. Acesso em 03 de set. de 2014.
28
Universidade Corporativa Prodemge 2014