Mini Curso PHP On‐Line – Nível Básico – v 1.0
Níível Bá
ásico
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Índice
Índice
Apresentação
Introdução à programação em PHP
Breve história do PHP
Tarefas Principais do PHP
Funções de correio eletrônico
Gestão de bases de dados
Gestão de Arquivos
Tratamento de Imagens
Instalação do PHP no nosso servidor
Instalação do PHP e Apache no Windows XP
Uso do PHPeditor
Introdução à sintaxe PHP
Variáveis em PHP
Variáveis de sistema em PHP
Variáveis superglobais
Tabelas ou Arrays em PHP
Cadeias (strings)
Uso de caracteres espeíficos em strings
Exercício 1
Controle do fluxo em PHP: Condições IF
Controle do fluxo em PHP: Loops
Loop While
Loop for
Loop foreach
Operadores
Operadores aritméticos
Operadores de comparação
Operadores lógicos
Operadores de incremento
Operadores combinados
Passagem de variáveis pela URL
Processar variáveis de formulários
Autochamada de páginas
Carregar uma aplicação PHP ao servidor
Como colocar os Arquivos PHP fora do diretório de publicação
Exercício Final
Conclusão
2
3
3
4
5
5
5
5
5
6
6
6
7
9
10
11
12
13
14
15
16
18
18
20
20
21
21
21
22
22
22
22
24
26
28
29
31
34
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Apresentação
Iniciamos aqui nossa primeira etapa do mini-curso On-Line de PHP. Esperamos que todos gostem
e venham obter o máximo de conhecimento possível através deste material.
Em caso de dúvidas, envie as mesmas para: [email protected]
Dos direitos autorais
Este material é o resultado de diversas fontes de pesquisa na internet e conhecimentos próprios,
porém durante a pesquisa e montagem não me lembrei de colocar as fontes de pesquisa e autores de
determinadas partes da apostila, portanto, caso alguém veja conteúdo próprio neste material e não
teve seu nome citado favor informar em meu e-mail citado acima qual o conteúdo de sua autoria pois
estarei providenciando os méritos neste material.
Esta apostila é de uso didático sem fins lucrativos, fazendo parte do projeto de inclusão digital da
4P Soluções. A mesma pode ser distribuída gratuitamente desde que sejam mantidos sua integridade
de conteúdo.
Montagem e adaptação: Eudson Fonseca – [email protected]
Colaboração: Josué Camelo dos Santos – [email protected]
Programação em PHP
Introdução à programação em PHP
PHP é uma das linguagens do lado do servidor (os scripts em PHP sã executados diretamente
no servidor hospedeiro, diferentemente do JavaScript que roda direto no browser do cliente) mais
utilizadas da Web. Nascida em 1994 trata-se de uma linguagem de criação relativamente crescente
que teve uma grande aceitação pela comunidade de Webmasters, sobretudo pela potência e
simplicidade que a caracterizam.
PHP permite-nos embeber os seus pequenos fragmentos de código dentro da página HTML e
realizar determinadas tarefas de uma forma fácil e eficaz sem ter de implementar programas
programados na íntegra numa linguagem diferente de HTML. Por outro lado, é aqui que reside o seu
maior interesse relativamente às outras linguagens pensadas para os CGI, o PHP oferece inúmeras
funções para a exploração de bases de dados de um modo fácil, sem complicações.
Poderíamos efetuar a comparação de dizer que PHP e ASP são linguagens parecidas em quanto à
potência e dificuldade se bem que a síntese pode diferir sensivelmente. Algumas diferenças principais
podem, mesmo assim, mencionar-se:
PHP, ainda que multiplataforma, foi desenhado inicialmente para sistemas UNIX e é neste
sistema operativo que se pode aproveitar melhor as suas prestações. ASP, sendo uma tecnologia
Microsoft, está orientado para sistemas Windows.
O ASP realiza numerosas tarefas servindo-se de componentes (objetos) que devem ser
comprados (ou programados) pelo servidor a determinadas empresas especializadas. PHP têm uma
filosofia totalmente diferente e, com um espírito mais generoso, é construído progressivamente por
colaboradores desinteressados que implementam novas funções em novas versões da linguagem.
Este manual está destinado a todos os que quiserem começar do zero na aprendizagem desta
linguagem e que estejam à procura da sua utilização direta no seu projeto de Site ou no seu Site
HTML. Os capítulos são extremamente simples, sem ser simplistas, procurando ser acessíveis à
maioria. Eles podem ser complementados posteriormente com outros artigos de maior nível,
destinados à gente mais experiente.
Mini Curso PHP On‐Line – Nível Básico – v 1.0 A forma como relatamos este manual faz com que este seja acessível a qualquer pessoa não
familiarizada com a programação. Mesmo assim, é possível que em determinadas alturas alguém que
nunca tenha programado se veja um pouco desorientado. O nosso conselho é de não querer perceber
tudo antes de passar ao capítulo seguinte, mas sim de tentar assimilar alguns conceitos e voltar a trás
quando surgir uma dúvida ou nos tenhamos esquecido de algum detalhe. Nunca faz mal ler várias
vezes o mesmo até que fique bem gravado e assimilado.
Esperamos que este manual seja do vosso agrado e que se corresponda às nossas expectativas:
O poder aproximar o PHP a todos os amantes do desenvolvimento de Web que querem dar o passo às
Webs ¨profissionais¨.
Breve história do PHP
PHP é uma linguagem criada por uma grande comunidade de pessoas. O sistema foi desenvolvido
originalmente no ano 1994 por Rasmus Lerdorf como um CGI escrito em C que permitia a
interpretação de um número limitado de comandos. O sistema foi denominado Personal Home Page
Tools e adquiriu um relativo êxito pelo que outras pessoas pediram a Rasmus que lhes permitisse
utilizar os seus programas nas suas próprias paginas. Devido à aceitação do primeiro PHP e de maneira
adicional, o seu criador desenhou um sistema para processar formulários ao qual deu o nome de FI
(Form Interpreter) e o conjunto destas duas ferramentas, seria a primeira versão compacta da
linguagem: PHP/FI.
A seguinte grande contribuição à linguagem foi realizada a meados de 97 quando se voltou a
programar o analisador sintático. Acrescentaram-se novas funcionalidades como o suporte de novos
protocolos de Internet e o suporte da grande maioria de bases de dados comerciais.
Todos estes melhoramentos constituíram a base do PHP versão 3. A versão atual de PHP é a
versão 5, que utiliza o motor Zend, desenvolvido com maior meditação para cobrir as necessidades
atuais e solucionar alguns inconvenientes da versão anterior. Alguns melhoramentos desta nova versão
são a sua rapidez, pois agora primeiro compila-se e depois executa-se, quando antes se executava ao
mesmo tempo que se interpretava o código. Outra qualidade é a sua independência do servidor Web,
criando versões de PHP nativas para mais plataformas, e também um API mais elaborado e com mais
funções.
Neste último ano, o número de servidores que utilizam PHP aumentou, conseguindo situar-se
perto dos 5 milhões de Sites e 800.000 endereços IP, o que converteu PHP numa tecnologia popular.
Isto deve-se, entre outras razões, ao fato de PHP ser o complemento ideal para que o LinuxApache seja compatível com a programação do lado do servidor de sítios Web. Devido à aceitação
que conseguiu, e o grande esforço realizado por uma crescente comunidade de colaboradores para
tentar conseguir uma implementação ótima, podemos assegurar que a linguagem irá converte-se num
standard que compartilhará os êxitos augurados ao conjunto dos sistemas desenvolvidos em código
aberto.
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Tarefas Principais do PHP
Pouco a pouco o PHP vai-se convertendo numa linguagem que nos permite fazer de tudo. Num
princípio desenhado para realizar pouco mais do que um contador e um livro de visitas, PHP
experimentou em pouco tempo uma verdadeira revolução e, a partir das suas funções, neste momento
pode realizar-se um grande número de tarefas úteis para o desenvolvimento Web:
Funções de correio eletrônico
Podemos com uma facilidade assombrosa enviar um e-mail a uma pessoa ou lista parametrizado
toda uma série de aspectos tais como o e-mail de procedência, assunto, pessoa a responder...
Outras funções menos freqüentes, mas de indiscutível utilidade para a gestão de correios
eletrônicos são incluídas na sua livraria.
Gestão de bases de dados
Torna-se complicado criar um Site atual, potente e rico em conteúdo que não é gerido por uma
base de dados. A linguagem PHP oferece interfaces para o acesso à maioria das bases de dados
comerciais e por ODBC a todas as bases de dados possíveis em sistemas Microsoft, a partir das quais
poderemos editar o conteúdo do nosso Site com uma simplicidade absoluta.
Gestão de Arquivos
Criar, apagar, mover, modificar... qualquer tipo de operação mais ou menos razoável de que nos
possamos lembrar pode ser realizada a partir de uma ampla livraria de funções para a gestão de
Arquivos PHP. Também podemos transferir Arquivos por FTP a partir de comandos no nosso código,
protocolo para o qual PHP previu também grande quantidade de funções.
Tratamento de Imagens
Evidentemente é muito mais simples utilizar Photoshop para o tratamento de uma imagem
mas... e se temos de tratar montes de imagens enviadas pelos nossos cibernautas?
A verdade é que pode ser chato uniformizar em tamanho e em formato várias imagens recebidas
todos os dias. Tudo isto pode ser automatizado eficazmente a través de PHP.
Também pode parece útil criar botões dinâmicos, isto é, botões em que utilizamos o mesmo
design e só mudamos o texto. Poderemos por exemplo criar um botão fazendo uma única chamada a
uma função em que introduzimos um estilo do botão e o texto a introduzir obtendo automaticamente o
botão desejado.
A partir da livraria de funções gráficas podemos fazer isto e muito mais.
Muitas outras funções pensadas para a Internet (tratamento de cookies, acessos restringidos,
comercio eletrônico...) ou para propósito geral (funções matemáticas, exploração de cadeias, de datas,
correção ortográfica, compressão de Arquivos...) são realizadas por esta linguagem. A esta imensa
livraria só resta agregar todas as funções pessoais que vamos criando por necessidades próprias e que
logo são reutilizadas noutros Sites e todas aquelas trocadas e obtidas em foros e Sites especializados.
Como vemos, as possibilidades que nos oferece são surpreendentes. Só é necessário um pouco
de vontade de aprender e um pouco de paciência nos nossos primeiros passos. O resultado pode ser
muito satisfatório.
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Instalação do PHP no nosso servidor
Como todas as linguagem do lado do servidor, PHP requer uma instalação de um servidor no
nosso PC para poder trabalhar em local. Este modo de trabalho torna-se mais pratico do que colocar os
Arquivos por FTP no servidor e executá-los a partir da Internet.
Desta maneira, antes de começar a criar os nossos programas em PHP é necessário:
Transformar o nosso computador num servidor. Isto faz-se instalando um dos vários servidores
disponíveis para o sistema operativo da nossa máquina.
Introduzir no nosso servidor os Arquivos que lhe permitem a compreensão do PHP. Estes
Arquivos podem ser obtidos, na sua versão mais atual, na página oficial do PHP.
Para ficar a conhecer a forma de instalar PHP sobre cada servidor de cada sistema operativo
podemos ir ao apartado de documentação da página oficial de PHP onde podemos consultar um manual
em HTML de rápida consulta e um enorme manual em PDF de quase 1000 páginas que explica de
minuciosamente entre outras coisas, os passos a seguir para cada caso particular. De qualquer forma,
nós vamos oferecer algumas ajudas para configurar PHP nos sistemas mais comuns. A eleição do
nosso programa servidor terá muito que ver com o sistema operativo que tenhas a funcionar no teu
computador. Estas seriam algumas possibilidades de sistemas operativos e soluções que funcionam
bem.
Instalação do PHP e Apache no Windows XP
Como vimos anteriormente o PHP é uma linguagem que roda direto no servidor, portanto, para
que possamos estudar os recursos desta poderá linguagem precisamos de um servidor WEB que pode
ser um servidor profissional ou então seu próprio computador, que é a maneira que estaremos
estudando, ou seja, seu computador se tornará um servidor WEB, não para uso profissional, mas para
fins de desenvolvimento e aprendizado.
Veja o tutorial completo para instalação do Apache + PHP + MySQL + PHPMyadmin:
www.kaizeninformatica.com/index.php?mod=dicas1
Uso do PHPeditor
Para a edição de nossos arquivos em PHP recomendamos o uso de um software gratuito, o
PHPeditor que é muito eficiente na programação.
Clique no link abaixo para download do mesmo:
www.phpgratis.com.br/editores/php-editor-gratis
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Introdução à sintaxe PHP
PHP escreve-se dentro da própria página Web, junto ao código HTML e como para qualquer outro
tipo de linguagem incluído num código HTML, em PHP necessitamos de especificar quais são as partes
constituintes do código escritas nesta linguagem. Isto faz-se, como em outros casos, delimitando o
nosso código por etiquetas.
Podemos utilizar diversos modelos de etiquetas em função das nossas preferências e costumes.
Há que ter em conta que não necessariamente todas estão configuradas inicialmente e que outras só
estão disponíveis a partir de uma determinada versão (3.0.4).
A maneira de abrir e fechar as etiquetas são:
<?
?>
<?php
?>
<script languaje="php">
Este último modo está principalmente aconselhado a todos aqueles que tenham a coragem de
trabalhar com o Front Page, pois usando qualquer outra etiqueta corremos o risco que a aplicação
no-la apague sem mais nem menos pois trata-se de um código incompreensível para ela.
O modo de funcionamento de uma página PHP, a grandes rasgos, não difere do clássico de uma
página dinâmica do lado do servidor: O servidor vai reconhecer a extensão correspondente a página
PHP (phtml, php, php4,...) e antes de enviá-la ao navegador vai encarregar-se de interpretar e
executar tudo aquilo que se encontre entre as etiquetas correspondentes a linguagem PHP. O resto, vai
enviá-lo tal qual, posto que assumirá que se trata de código HTML absolutamente compreensível para
o navegador.
Outra característica geral dos scipts em PHP é a forma na qual se separam umas sentenças das
outras. Para faze-lo, temos de acabar cada sentença com um ponto e virgula ";". Para a ultima
sentença, a que vai mesmo antes do etiqueta de fecho, não seria necessário.
Incluímos também neste capitulo a sintaxe de comentários. Um comentário, para aqueles que
não o saibam, é uma frase ou palavra que nós incluímos no código para compreende-lo mais
facilmente ao voltar a lê-lo um tempo mais tarde e por suposto, o computador tem de ignorar pois não
vai dirigido a ele, se não a nós mesmos. Os comentários tem uma grande utilidade pois é muito fácil
esquecer-se do funcionamento se um script programado faz algum tempo sendo muito útil se
queremos fazer rapidamente compreensível o nosso código a outra pessoa.
Pois bem, a forma de incluir estes comentários varia conforme o tamanho do comentário, isto é
se queres escrever uma linha ou mais. Vejamos um primeiro exemplo de script em PHP:
Na pasta raiz crie um arquivo chamado comentario.php e insira o seguinte conteúdo no mesmo.
<HTML>
<HEAD>
<TITLE>SCRIPT EM PHP</TITLE>
</HEAD>
<BODY>
<?
$mensagem="Meu primeiro script em PHP"; //Comentário de uma linha
echo $mensagem; #Este comentario também é de uma linha
/*Neste caso
o meu comentário ocupa
varias linhas, estás a ver? */
?>
</BODY>
</HTML>
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Logo depois de inserir o código usando o PHPeditor, o mesmo estará semelhante ao mostrado
abaixo:
Veja o resultado abrindo seu browser e digitando o seguinte endereço:
http://localhost/comentario.php
Observe bem o código e guarde os padrões, sempre que for iniciar um novo arquivo, clique em
arquivo > novo no PHPeditor que o mesmo inicia os padrões HTML automaticamente, pois a partir de
agora passaremos somente o código PHP.
Se usarmos dupla barra (//) ou o símbolo # podemos introduzir comentários de uma linha.
Mediante /* e */ criamos comentários multilinha. Claro que, nada nos impede de usar os últimos com
uma só linha.
Não te preocupes se não compreendes o texto contido nas etiquetas, tudo chegará. Adiantamos
que as variáveis em PHP definem-se antepondo um símbolo de dólar ($):
Exemplos de variaveis em PHP: $nome, $valor, $total...
A instrução echo serve para sacar pelo ecrã o que está escrito a continuação, ou seja, ela escreve
algo na tela, no nosso exemplo foi escrito o conteúdo armazenado na variável $mensagem.
Lembramos que todo o texto introduzido em forma de comentário é completamente ignorado
pelo servidor. É importante acostumar-se a deixar comentários, pois com o tempo, você pode precisar
fazer correções no código e nesses momentos os comentários são muito úteis.
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Variáveis em PHP
A variável é uma parte que fica reservada para armazenamento de informações que variam
(mudam constantemente) durante a execução do script. Vamos imaginar uma página de cadastro de
clientes, você abre esta página e tem um campo nome, com certeza nesta páginas serão cadastrados
vários clientes cada um com seu nome, é aí que entra o papel da variável. Podemos, portante, criar
uma variável chamada $nome que irá armazenar os nomes digitados.
Em PHP, as variáveis são definidas inserindo o símbolo dólar ($) antes do nome da variável que
estamos a definir.
O tipo da variável irá depender do tipo de informação que a mesma irá armazenar.
Variáveis numéricas: São as que armazenam números.
Inteiros: São variáveis que armazenam números sem casas decimais:
$inteiro= 2007;
Real: São variáveis que armazenam números com casas decimais:
$real= 3,14159;
Variáveis alfanuméricas: São as que armazenam textos compostos de letras e números.
Este tipo de variável armazena tudo em forma de texto (strings), ou seja, “5”, por exemplo, é o
número cinco e não um valor numérico 5.
$mensagem= “Texto ou número qualquer aqui”;
Existem diversos outros tipos de variáveis, porém iremos nos reter só as numéricas e
alfanuméricas por enquanto, já que para início iremos trabalhar mais só com estes dois tipos.
Para quem deseja se aprofundar mais nos tipos de variaveis em PHP, vale dar uma parada por
aqui e dar uma olhadinha no manual do PHP na sessão de variáveis.
Diferente das outras linguagens, o PHP tem uma grande flexibilidade a hora de operar com
variáveis. De fato, quando definimos uma variável dando-lhe um valor, o computador atribui-lhe um
tipo. Por exemplo, se definirmos uma variável entre aspas, a variável será considerada de tipo string
(de caracteres):
$variavel= "5"; //isto é uma string
$variavel= 5; //isto é um número
Não devemos preocupar-nos com nada, pois o PHP encarrega-se durante a execução de
interpretar o tipo de variável necessário para o bom funcionamento do programa, ou seja, não é
necessário informar ao PHP que aquela variável que você declarou é do tipo numérica ou alfanumérica,
pois o PHP já entende isso observando o valor dado à variável, ou seja, se a variável está entre aspas
(" ") ele já sabe que esta é uma variável alfanumérica, se não ele já sabe que a variável é do tipo
numérica.
Mesmo assim, em contraste, temos de ter cuidado para não mudar maiúsculas por minúsculas,
pois neste sentido, PHP é sensível, ou seja, pro PHP Kaizen – kaizen – KAIZEN são valores diferentes.
Convém pois trabalhar sempre em maiúsculas ou sempre em minúsculas para evitar este tipo de malentendidos às vezes muito difíceis de localizar.
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Variáveis de sistema em PHP
Dada a sua natureza de linguagem do lado do servidor, PHP é capaz de nos dar acesso a toda
uma série de variáveis para que o cliente envie ou receba dados do servidor. A informação destas
variáveis é atribuída pelo servidor e em nenhum caso nos é possível modificar os seus valores
diretamente mediante o script. Para fazê-lo é necessário influir sobre a propriedade que definem.
Existem várias variáveis deste tipo, algumas sem utilidade aparente e outras realmente
interessantes e com uma aplicação direita para o nosso Site. Aqui enumeramos algumas destas
variáveis e a informação que nos oferecem:
Variável
$HTTP_USER_AGENT
$HTTP_ACCEPT_LANGUAGE
$HTTP_REFERER
$PHP_SELF
$HTTP_GET_VARS
$HTTP_POST_VARS
$HTTP_COOKIES_VARS
$PHP_AUTH_USER
$PHP_AUTH_PW
$REMOTE_ADDR
$DOCUMENT_ROOT
$PHPSESSID
Descrição
Informa-nos principalmente sobre o sistema operativo e
tipo e versão do navegador utilizado pelo cibernauta. A sua
principal utilidade radica em que, a partir desta informação,
podemos redirecionar os nossos usuários a páginas otimizadas
para o seu navegador ou realizar qualquer outro tipo de ação
no contexto de um navegador determinado.
Retorna-nos a ou as abreviações da língua considerada
como principal pelo navegador. Esta língua ou línguas
principais podem ser escolhidas no menu de opções do
navegador. Esta variável torna-se também extremamente útil
para enviar o cibernauta às páginas na sua língua, se é que
existem.
Indica-nos a URL com a qual o cibernauta teve acesso a
página. Muito interessante para gerar botões de "atrás"
dinâmicos ou para criar os nossos próprios sistemas
estatísticos.
Retorna-nos uma cadeia com a URL do script que está a
ser executado. Muito interessante para criar botões para
recarregar a página.
Trata-se de um array que armazena os nomes e os
conteúdos das variáveis enviadas ao script por URL ou por
formulários GET.
Trata-se de um array que armazena os nomes e os
conteúdos das variáveis enviadas ao script por meio de um
formulário POST.
Trata-se de um array que armazena os nomes o os
conteúdos das cookies. Veremos o que são mais tarde.
Armazena a variável usuário quando se efetua a entrada
a
páginas
de
acesso
restringido.
Combinado
com
$PHP_AUTH_PW é ideal para controlar o acesso às páginas
internas do Site.
Armazena a variável password quando se efetua a
entrada a páginas de acesso restringido. Combinado com
$PHP_AUTH_USER é ideal para controlar o acesso às páginas
internas do Site.
Mostra o endereço IP do visitante.
Retorna-nos o path físico no qual se encontra alojada a
página no servidor.
Guarda o identificador da sessão do usuário. Veremos
mais à frente o que são as sessões.
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Nem todas as variáveis estão disponíveis na totalidade dos servidores ou em determinadas
versões dum mesmo servidor. Ademais, algumas delas tem de ser previamente ativadas ou definidas
por meio de algum evento. Assim, por exemplo, a variável $HTTP_REFERER não está definida a menos
que o cibernauta aceda ao script a partir de um link desde outra página.
Variáveis superglobais
A partir de PHP 4.1.0, dispõem-se de um conjunto de variáveis de tipo array que mantêm
informação do sistema, chamadas superglobais porque se definem automaticamente num âmbito
global.
Estas variáveis fazem referência ás mesmas que se acediam antes por meio dos arrays do tipo
$HTTP_*_VARS. Estas ainda existem, ainda que a partir de PHP 5.0.0 podem-se desativar com a
diretiva register_long_arrays.
A lista destas variáveis, extraída diretamente da documentação de PHP é a seguinte:
$GLOBALS
Contem uma referência a cada variável disponível no espectro das variáveis do script. As chaves
desta matriz são os nomes das variáveis globais. $GLOBALS existe desde PHP 3.
$_SERVER
Variáveis definidas pelo servidor Web ou diretamente relacionadas com o entorno onde se está a
executar.Análoga a antiga matriz $HTTP_SERVER_VARS (a qual ainda está disponível, ainda que não
se utilize).
$_GET
Variáveis proporcionadas ao script por meio de HTTP GET.
$HTTP_GET_VARS (que ainda está disponível, ainda que não se utilize).
Análoga
a
antiga
matriz
$_POST
Variáveis proporcionadas ao script por meio de HTTP POST. Análoga a antiga matriz
$HTTP_POST_VARS (que ainda está disponível, ainda que não se utilize).
$_COOKIE
Variáveis proporcionadas ao script por meio de HTTP cookies. Análoga a antiga matriz
$HTTP_COOKIE_VARS (que ainda está disponível, ainda que não se utilize).
$_FILES
Variáveis proporcionadas ao script por meio da subida de Arquivos via HTTP. Análoga a antiga
matriz $HTTP_POST_FILES (que ainda está disponível, ainda que não se utilize).
$_ENV
Variáveis proporcionadas ao script por meio do entorno.
$HTTP_ENV_VARS (que ainda está disponível, ainda que não se utilize).
Análoga
a
antiga
matriz
Mini Curso PHP On‐Line – Nível Básico – v 1.0 $_REQUEST
Variáveis proporcionadas ao script por meio de qualquer mecanismo de entrada do usuário e
portanto não se pode confiar nelas. A presença e a ordem em que aparecem as variáveis nesta matriz
são definidas pela diretiva de configuração variables_order. Esta matriz não tem um análogo em
versões anteriores a PHP 4.1.0. Veja também import_request_variables().
$_SESSION
Variáveis registradas na sessão do script. Análoga a antiga matriz $HTTP_SESSION_VARS (que
ainda está disponível, ainda que não se utilize).
Tabelas ou Arrays em PHP
Um tipo de variável que pode ser relativamente complicado de assimilar em relação à maioria,
são os arrays. Um array é uma variável que está formada de vários elementos, cada um deles
catalogado dentro dele mesmo por meio de uma chave.
<?
$sentido[1]="ver";
$sentido[2]="tocar";
$sentido[3]="ouvir";
$sentido[4]="gosto";
$sentido[5]="cheirar";
?>
Este array é como se imaginássemos uma tabela na horizontal com cinco quadros e cada quadro
fosse uma posição, veja:
[1]
[2]
ver
tocar
array $sentido de 5 posições:
[3]
[4]
ouvir
gosto
[5]
cheirar
Neste caso este array cataloga os seus elementos, normalmente chamados valores, por número.
Os números do 1 ao 5 são por conseguinte chaves e os sentidos são os valores associados, ou seja,
temos um array de 5 posições chamado de $sentido, portanto, a posição [1] recebe a string “ver”, a
posição [2] recebe a string “tocar”, a posição [3] recebe a string “ouvir”, a posição [4] recebe a string
“gosto ” e a posição [5] recebe a string “cheirar”.
Nada nos impede de utilizar nomes (strings) para classificá-los. A única coisa que temos de fazer
é colocá-los entre aspas, no exemplo abaixo, temos um array chamado $moeda de três posições, onde
cada posição informa um país, e nesta posição é armazenada a moeda deste país:
<?
$moeda["espanha"]="Peseta";
$moeda["Portugal"]="Escudo";
$moeda["usa"]="Dolar";
?>
["espanha"]
"Peseta"
array $moeda de três posições:
["Portugal"]
"Escudo"
["usa"]
"Dolar"
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Outra forma de definir identicamente este mesmo array e que nos pode ajudar na criação de
arrays mais complexos é a seguinte sentença.
<?
$moeda=array("espanha"=> "Peseta", "portugal" => "Escudo", "usa" => "Dolar");
?>
De início não nos interessa aprofundar em arrays, pois o uso do mesmo é um pouco complexo
para aqueles que estão iniciando com o PHP, porém guarde bem os conceitos dados até agora, pois
iremos usá-los posteriormente.
Cadeias (strings)
Uma das variáveis mais frequentes as que teremos que fazer frente na maioria dos nossos scripts
são as cadeias, ou então as chamadas “strings”, que não são mais que informação de carácteres não
numérico (textos, por exemplo).
Para atribuir a uma variável um conteúdo deste tipo, escrevemo-lo entre aspas dando lugar a
declarações deste tipo:
$cadeia= "Esta é a informação da minha variável";
Se queremos ver no browser o valor de uma variável ou uma mensagem qualquer usaremos o
comando echo como já dissemos anteriormente:
echo $cadeia; //Mostra no browser o texto informado na variável cadeia
echo " Esta é a informação da minha variável "; //daria o mesmo resultado
Podemos concatenar várias cadeias pondo um ponto entre elas, vamos a mais um exemplo
prático:
Crie um novo arquivo no PHPeditor chamado cadeias.php e insira o seguinte conteúdo no
espaço do código PHP.
<?
$cadeia1= "Cão";
$cadeia2= " morde";
$cadeia3= $cadeia1.$cadeia2;
echo $cadeia3 //O resultado é: "Cão morde"
?>
Salve o arquivo, abra o browser e digite o seguinte endereço:
http://localhost/cadeias.php
No browser você verá:
Cão morde
Neste exemplo temos três variáveis:
$cadeia1 recebe a string Cão
$cadeia2 recebe a string morde
$cadeia3 recebe o valor de $cadeia1 e junta com o valor de $cadeia2
Logo depois temos a função echo exibindo o conteúdo da variável $cadeia3.
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Também podemos introduzir variáveis dentro da nossa cadeia o qual nos pode ajudar muito a
desenvolver os nossos scripts. O que veremos não é o nome, mas sim o valor da variável.
<?
$a=55;
$mensagem="Tenho $a anos";
echo $mensagem //O resultado é: "Tenho 55 anos"
?>
Uso de caracteres espeíficos em strings
Existem momentos em que necessitamos de usar caracteres especiais nas stings, por exemplo,
desejo escrever no browser: O celular custa R$ 200,00. Pode-se observar que nessa string temos um
caractere especial que é o $.
Pois bem, pra colocar este e outros caracteres utilizados pela linguagem dentro de cadeias e não
confundi-las, temos que escrever uma contra barra (\) a frente, veja:
\$ = Insere o caractere reservado $ na string
\” = Insere o caractere reservado “ na string
\\ = Insere o caractere reservado \ na string
\8/2 = Escreve 8/2 e não 4 na string
Também existem outras utilidades de esta contra barra que nos permitem introduzir no nosso
documento HTML determinados eventos, por exemplo:
\t = Insere tabulação na string
\n = Muda de linha
\r = Salto de linha
Estas mudanças de linha e tabulações têm unicamente efeito no código e no texto executado
pelo navegador. Noutras palavras, se queremos que o nosso texto seja executado e no meio da
execução mude de linha de linha temos de introduzir um echo "" e não echo"\n" pois este ultimo só
muda de linha no arquivo HTML criado ao enviar ao navegador quando a página seja executada no
servidor. A diferença entre estes dois elementos pode ser facilmente compreendida observando o
código fonte produzido ao executar o script:
<?
echo "Olá, \n continuo na mesma linha executada mas não no código fonte.<br>Agora mudo de
linha executada mas continuo na mesma no código fonte.";
?>
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Exercício 1
Vamos a um exemplo simples porém didático pra treinarmos o que aprendemos até agora. Abra o
PHPeditor e crie um novo arquivo e salve-o como exercicio1.php e na parte de PHP insira o seguinte
código:
<?
//Anuncio
echo "Minha primeira página tabajara!";
echo "<br>";
//Informativo
//Data
$datahoje = date("d") . '-' . date("m") . '-' . date("Y");
echo "Hoje, dia '$datahoje' estamos inaugurando nossa primeira página tabajara!";
echo "<br>";
//Boas vindas com o IP
echo "Você está concectado ao nosso sistema através do seguinte IP:";
echo $_SERVER['REMOTE_ADDR'];
echo "<br>";
//Calculadora tabajara
//Variaveis
$num1= 5;
$num2= 10;
echo "Veja as funcionalidades de nossa mega power, bower, seilaoquewer calculadora tabajara!";
echo "<br>";
echo "Com apenas dois números: '$num1' e '$num2' ela é capaz de fazer:";
$soma= $num1+$num2;
$subtrai= $num1-$num2;
$divide= $num2/$num1;
$multiplica= $num1*$num2;
echo "Somar: '$soma' <br>";
echo "Subtrair: $subtrai <br>";
echo "Dividir: $divide <br>";
echo "Multiplicar: $multiplica <br>";
echo "Isto é uma revolução,<br>Tecnologia,<br>Inovação,Isto é TABAJARA!";
?>
Salve este arquivo e abra seu browser digitando o seguinte endereço:
http://localhost/exercicio1.php
Neste primeiro exercício vimos muitas coisas das quais estudamos anteriormente, de início
criamos um anúncio, informando uma data. Esta data é a retirada do servidor, o PHP usa a função
date para capturar a hora local do servidor, portanto se o servidor (que neste caso é seu próprio
computador), estiver com a data errada, no browser, consequentemente a data também estará errada.
Logo depois usamos a variavel &_SERVER para adquirirmos o seu IP, e por fim realizamos
algumas operações matemáticas com dois números armazenados em variáveis diferentes, treinamos
também o uso da função echo junto com recursos HTML <br> para saltar as linhas.
Para memorizar bem o que foi aprendido faça modificações gerais neste script salve e atuaize seu
browser para visualizar o resultado das alterações e treine bastante, pois o conteúdo apresentado até
agora será essencial para um bom aprendizado até o final de nossos estudos.
Não passe adiante sem ter certeza que o conteúdo anterior foi bem assimilado.
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Controle do fluxo em PHP: Condições IF
A programação exige em muitas ocasiões a repetição de ações sucessivas ou a escolha de uma
determinada sequência e não de outra dependendo das condições especificas da execução.
Como exemplo, podíamos fazer alusão a um script que execute uma sequência diferente em
função do dia da semana no que nos encontramos.
Este tipo de ações podem ser levadas a cabo graças a um conjunto de instruções presentes na
maioria das linguagens. Nesta etapa de nossos estudos vamos descrever algumas delas propostas por
PHP e que tem uma utilidade evidente.
Para evitar complicar o texto, vamos limitar-nos a introduzir as mais importantes deixando de
lado outras que poderão ser facilmente assimiláveis a partir de exemplos práticos.
As condições if
Quando queremos que o programa, chegado um certo ponto, tome um caminho concreto em
determinados casos e outro diferente se as condições de execução diferem, partimos do conjunto de
instruções if, else e elseif. A estrutura de base para este tipo de instruções é a seguinte:
if (condição)
{
Instrução 1;
Instrução 2;
...
}
else
{
Instrução A;
Instrução B;
...
}
Chegados a este ponto, o programa verificará o cumprimento ou não da condição. Se a condição
é certa as instruções 1 e 2 serão executadas. Do contrario (else), as instruções A y B serão levadas a
cabo.
Esta estrutura de base pode complicar-se um pouco mais se tivermos em conta que nem tudo é
necessariamente preto no branco e que existem muita possibilidades. É por isso que outras condições
se podem questionar dentro de uma condição principal. Falamos pois de condições aninhadas que
teriam uma estrutura do seguinte tipo:
if (condição1)
{
Instrução 1;
Instrução 2;
...
}
else
{
if (condição2)
{
Instrução A;
Instrução B;
...
}
else
{
Instrução X
...
}
}
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Deste modo, poderíamos introduzir o número de condições que quisermos dentro de uma
condição principal.
É de grande ajuda a instrução elseif que nos permite numa só linha introduzir uma condição
adicional. Este tipo de instrução simplifica ligeiramente a sintaxe que acabamos de ver.
if (condição1)
{
Instrução 1;
Instrução 2;
...
}
elseif (condição2)
{
Instrução A;
Instrução B;
...
}
else
{
Instrução X
...
}
Vamos treinar um pouco. O uso desta ferramenta é claro com um pouco de prática. Utilizemos
um exemplo simples de utilização de condições. O seguinte programa permitiria detectar a língua
empregue pelo navegador e visualizar uma mensagem nessa língua.
Crie um novo arquivo no PHPeditor e chame-o de linguas.php e insira o seguinte conteúdo na
parte de PHP:
<?
//Antes de nada introduzimos mensagens em forma de variáveis
$portugues= "Ola";
$ingles= "Hello";
$frances= "Bonjour";
//Agora lemos do navegador qual é a sua língua oficial
$idioma= substr($HTTP_ACCEPT_LANGUAGE,0,2);
//Formulamos as possibilidades que se podem dar
if ($idioma == "pt") {
echo "$portugues <br>";
echo "O idioma padrão atual de seu navegador é o Português";
}
elseif ($idioma == "fr") {
echo "$frances <br>";
echo "O idioma padrão atual de seu navegador é o Francês";
}else{
echo "$ingles <br>";
echo "O idioma padrão atual de seu navegador é o Inglês";
}
?>
Salve o arquivo, abra seu browser e digite o seguinte endereço:
http://localhost/linguas.php
Para poder ver o funcionamento deste script é necessário mudar o idioma preferido o qual pode
ser realizado a partir do menu de opções do navegador.
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Para ler a língua aceite pelo navegador o que fazemos é definir uma variável ($idioma) e,
mediante a função substr, recolhemos as duas primeiras letras do código correspondente ao idioma
aceitado pelo navegador ($HTTP_ACCEPT_LANGUAGE).
A terceira parte do script encarrega-se de ver se o navegador está em português (pt), francês
(fr) ou em qualquer outro idioma que não seja nenhum destes dois e de imprimir a mensagem que
proceda em cada caso.
Temos de destacar que, quando se trata de comparar variáveis, pomos um duplo igual "==" em
lugar de um simples "=". Este último fica reservado exclusivamente para atribuir valores às variáveis.
Controle do fluxo em PHP: Loops
Os computadores, como qualquer máquina, estão desenhados para realizar tarefas repetitivas. É
por isso que os nossos programas se podem aproveitar desse princípio para realizar uma determinada
sequência de instruções um certo numero de vezes. Para isso utilizamos as estruturas chamadas em
loop que nos ajudam a, usando poucas linhas, realizar uma tarefa incluída dentro dum loop um certo
número de vezes definido por nós mesmos.
PHP propõe vários tipos de loops, cada um com umas características especificas:
Loop While
Sem dúvida o loop mais utilizado e mais simples. Usamo-lo para executar as instruções contidas
no seu interior sempre que a condição definida seja verdadeira. A estrutura sintática é a seguinte:
while (condição)
{
instrução1;
instrução2;
...
}
Um exemplo simples é este loop que aumenta o tamanho da fonte numa unidade em cada
passagem:
<?
$size=1;
While ($size<=6)
{
echo"<font size=$size>Tamanho $size</font><br>\n";
$size++;
}
?>
Como explicação, diremos que, antes de mais, temos de definir o valor da variável que vamos
avaliar na condição. Algo absolutamente óbvio mas fácil de esquecer. Neste caso atribuímos-lhe o valor
1 que corresponde a letra mais pequena.
O passo seguinte é criar o loop no qual impomos a condição que a variável não exceda o valor 6.
A instrução a executar será imprimir no nosso documento um código HTML em que a etiqueta
font e a mensagem que contém variam à medida que $size muda o seu valor.
Seguidamente, devemos incrementar numa unidade o valor de $size. Isto pode-se fazer com uma
expressão como a mostrada no loop ($size++) que na realidade é sinônimo de: $size=$size+1
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Portanto, neste exemplo temos:
$size inicia com o valor 1
Começa o loop:
Enquanto a variável $size for menor ou igual a 6 entao o tamanho da fonte recebe o valor
armazenado na variavel $size.
$size recebe o seu valor acrescido de 1
Entra no loop novamente e verifica se $size é menor ou igual a 6, como neste momento $size
estará valendo 2 então a condição é satisfeita e o processo novamente é repetido. Assim
sucessivamente até que $size tenha o valor 6 onde o loop então é interrompido.
Outro exemplo do loop While
O loop while costuma utilizar-se quando não se sabe exatamente quantas iterações se devem
realizar antes de acabar. Utilizamo-lo num outro exemplo, no qual temos de recorrer uma cadeia até
encontrar um carácter dado. Se o encontra, escrever a sua posição. Se não, escrever que não se
encontrou.
Nota: Para fazer este exercício necessitamos de conhecer a função de cadeia strlen(), que
obtém a longitude da cadeia que se passa por parâmetro. int strlen (string cad) Retorna um inteiro
igual ao tamanho da cadeia.
Exercício:
Crie um novo arquivo no PHPeditor e chame-o de while.php e insira o seguinte conteúdo na
parte de PHP:
<?
$cadeia = "Ola a todo o mundo";
//recorro a cadeia até encontrar uma "m"
$i=0;
while ($cadeia[$i]!="m" && $i< strlen($cadeia))
{
$i++;
}
if ($i==strlen($cadeia))
echo "A letra procurada não se encontra...";
else
echo "A letra procurada está na posição $i";
?>
Neste exercício começamos criando uma variável chamada $cadeia e inserimos na mesma a
seguinte string: “Olá a todo mundo”.
Logo depois criamos uma variável chamada $i e iniciamos a mesma com o valor zero, esta
variável estará responsável por informar a posição atual do loop.
No fim do loop while, se saímos do loop é porque se encontrou o carácter "m", a variável $i terá
como valor um número menor que o tamanho da cadeia. Se saiu do loop por chegar ao fim da cadeia,
a variável $i terá um valor igual ao do tamanho da cadeia, e por tanto, obtemos que não se achou o
carácter passado por parâmetro.
Para realizar o teste, abra seu browser e digite o seguinte endereço:
http://localhost/while.php
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Loop for
PHP tem outros tipos de loops que também são muito práticos em determinadas situações. O
mais popular é o loop for que, como nos casos anteriores, se encarrega de executar instruções entre
chaves. A diferença para com os anteriores radica na forma como se especifica a condição de
finalização do loop. Para esclarecer o seu funcionamento vamos expressar o exemplo do loop while
visto no capítulo anterior em forma de loop for:
<?
For ($size=1;$size<=6;$size++)
{
echo"<font size=$size>Tamanho $size</font><br>\n";
}
?>
As expressões dentro do parêntese definem respectivamente:
Inicialização da variável. Valida para o primeiro recorrido do loop.
Condição de avaliação em cada recorrido. Se for certa, o loop continua.
A realizar no final de cada recorrido do loop.
Loop foreach
Este loop, implementado nas versões 4 do PHP, ajuda-nos a recorrer os valores de um array o
que pode ser muito útil para, por exemplo, efetuar uma leitura rápida do mesmo. Recordamos que um
array és uma variável que guarda um conjunto de elementos (valores) catalogados por chaves.
A estrutura geral é a seguinte:
Foreach ($array as $chave=>$valor)
{
instrução1;
instrução2;
...
}
Um exemplo prático é a leitura de um array que se poderia fazer do seguinte modo:
<?
$moeda=array("Espanha"=> "Peseta","Portugal" => "Escudo","USA" => "Dolar");
Foreach ($moeda as $chave=>$valor)
{
echo "Pais: $chave Moeda: $valor<br>";
}
?>
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Este script encarrega-se de nos mostrar pelo browser o conteúdo do array $moeda. Não seria
má idéia criar uma função própria baseada neste loop que nos permitisse visualizar arrays
unidimensionais e armazená-la na nossa livraria. Esta função poderia ser definida desta forma:
Function mostrar_array ($array)
{
Foreach ($array as $chave=>$valor)
{
echo "$chave=>$valor<br>";
}
}
Break e Continue
Estas duas instruções introduzem-se dentro da estrutura e servem-nos respectivamente para sair
do loop e para saltar a seguinte iteração. Podem ser muito úteis em algumas situações.
Operadores
As variáveis, como base da informação de uma linguagem, podem ser criadas, modificadas e
comparadas com outras por meio dos chamados operadores. Nos capítulos anteriores utilizamos nos
nossos exemplos alguns deles.
Neste capítulo pretendemos dar a conhecer os mais importantes para os usar em futuros
exemplos.
Operadores aritméticos
Permitem-nos realizar operações numéricas com as nossas variáveis.
+ --> Soma
- --> Subtração
* --> Multiplicação
/ --> Divisão
% --> Retorna o resto da divisão.
Operadores de comparação
Utilizam-se principalmente, nas nossas condições, para comparar duas variáveis e verificar se
cumprem ou não a propriedade do operador.
== --> Igualdade
!= --> Desigualdade
<
--> Menor que
<= --> Menor ou igual que
>
--> Maior que
>= --> Maior ou igual que
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Operadores lógicos
Usam-se em combinação com os operadores de comparação quando a expressão da condição
assim o requer.
And --> E
Or
--> Ou
!
--> Não
Operadores de incremento
Servem para aumentar ou diminuir numa unidade o valor de uma variável
++$variavel --> Aumenta em 1 o valor de $variavel
--$variavel
--> Diminui em 1 o valor de $variavel
Operadores combinados
Uma forma habitual de modificar o valor das variáveis é através dos operadores combinados:
$variavel += 10
$variavel += 10
$variavel = “acrescento”
--> Soma 10 à $variavel
--> Subtrai 10 à $variavel
--> Concatena (junta) as strings $variavel e “acrescento”
Este tipo de expressões não são mais do que abreviações de outras formas mais clássicas:
$variavel += 10 é o mesmo que: $variavel = $variavel +10
Passagem de variáveis pela URL
Loops e condições são úteis para processar os dados dentro de um mesmo script. Mas, num sítio
de internet, as páginas visitadas e os scripts utilizados são numerosos. Frequentemente precisamos
que os nossos scripts estejam conectados uns com os outros e que utilizem variáveis comuns.
Por outro lado, o usuário interage por meio de formulários cujos campos têm de ser processados
para poder dar resposta. Todo este tipo de fatores dinâmicos têm de ser eficazmente regulados por
uma linguagem como PHP.
É possível que se tenham apercebido que as variáveis de um script têm uma validez exclusiva
para o script e que se torna impossível conservar o seu valor quando executamos outro arquivo
diferente ainda que ambos estejam ligados. Existem várias formas de enviar as variáveis de uma
página a outra de maneira que a página destino reconheça o valor atribuído pelo script de origem:
Para passar as variáveis de uma página a outra podemos fazê-lo introduzindo a variável dentro
do link hipertexto da página destino. A sintaxe seria a seguinte:
<a href="destino.php?variavel=valor1&variavel2=valor2&...">Meu link</a>
Podem observar que estas variáveis não possuem o símbolo $ à frente. Isto é por que, na
realidade, este modo de passar variáveis não é específico de PHP, sendo utilizado por outras
linguagens.
Agora a nossa variável pertence também ao entorno da página destino.php e está pronta para a
sua utilização.
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Nota: Nem sempre se definem automaticamente as variáveis recebidas por parâmetro nas páginas Web,
depende de una variável de configuração de PHP: register_globals, que tem de estar ativada para que assim seja. Ver
comentários do artigo ao final da página para mais informação.
Para resolver possíveis dúvidas, vejamos isto em forma de exemplo. Teremos, pois duas páginas,
origem.html (não é necessário dar-lhe extensão PHP pois não há nenhum tipo de código) e
destino.php:
<HTML>
<HEAD>
<TITLE>origem.html</TITLE>
</HEAD>
<BODY>
<a href="destino.php?comprimento=ola&texto=Isto é uma variável de texto">Passo variáveis comprimento e
texto à página destino.php</a>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE>destino.php</TITLE>
</HEAD>
<BODY>
<?
echo "Variável \$comprimento: $comprimento <br>\n";
echo "Variável \$texto: $texto <br>\n"
?>
</BODY>
</HTML>
$_GET
Relembramos que é possível compilar numa só variável tipo array o conjunto de variáveis que
foram enviadas ao script por este método a partir da variável de sistema $_GET, que é um array
associativo. Utilizando-o ficaria assim:
<?
echo "Variável \$comprimento: $_GET_["comprimento"] <br>\n";
echo "Variável \$texto: $_GET["texto"] <br>\n"
?>
Nota: Ainda que possamos recolher variáveis com este array associativo ou utilizar directamente as variáveis
que se definem na nossa página, é mais seguro utilizar $_GET por duas razões, a primeira é que assim temos a
certeza que essa variável vem realmente da URL e a segunda, que assim o nosso código será mais claro quando o
quisermos ler, porque ficará especificado que estamos a receber essa variável pela URL.
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Processar variáveis de formulários
Este tipo de transferência é de uma grande utilidade pois permite-nos interagir diretamente com
o usuário.
Este processo é similar ao explicado para as URLs. Em primeiro lugar, apresentamos uma
primeira página com o formulário clássico para preencher e as variáveis são recolhidas numa segunda
página que as processa:
Nota: Nem sempre se definem automaticamente as variáveis recebidas por parâmetro nas páginas Web,
depende de uma variável de configuração de PHP: register_globals, que tem de estar ativada para que assim seja.
Ver comentários do artigo ao final da página para mais informação.
<HTML>
<HEAD>
<TITLE>formulario.html</TITLE>
</HEAD>
<BODY>
<FORM METHOD="POST" ACTION="destino2.php">
Nome<br>
<INPUT TYPE="TEXT" NAME="nome"><br>
Apelidos<br>
<INPUT TYPE="TEXT" NAME="apelidos"><br>
<INPUT TYPE="SUBMIT">
</FORM>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE>destino2.php</TITLE>
</HEAD>
<BODY>
<?
echo "Variável \$nome: $nome <br>\n";
echo "Variável \$apelidos: $apelidos <br>\n"
?>
</BODY>
</HTML>
$_POST
Relembramos que é possível compilar numa só variável tipo array o conjunto de variáveis que
foram enviadas ao script por este método a partir da variável de sistema $_POST:
echo "Variável \$nome: " . $_POST["nome"] . "<br>\n";
Nota: Ainda que possamos recolher variáveis com este array associativo ou utilizar diretamente as variáveis que
se definem na nossa página, torna-se mais seguro utilizar $_POST por duas razões, a primeira é que assim temos a
certeza que essa variável vem realmente de um formulário e a segunda, que assim o nosso código será menos
confuso quando queiramos lê-lo, porque ficará especificado que estamos a receber essa variável através de um
formulário.
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Exemplo de restrição de acesso por idade
Para continuar com exemplos de uso de formulários vamos realizar uma página que mostra e
solicita a idade do visitante e, dependendo da sua idade, permite ou não visualizar o conteúdo da Web.
A maiores de 18 anos é-lhes permitido ver a página e a menores não.
O exemplo é muito simples e não seria correto para utilizá-lo tal e qual a modo de uma
verdadeira barreira de acesso. Só nos serve para saber como obter dados de um formulário e como
tratá-los para realizar uma ou outra ação, dependendo do seu valor.
A página do formulário, à qual demos o nome idade.php, teria o seguinte aspecto:
<html>
<head>
<title>Restringir por idade</title>
</head>
<body>
<form action="idade2.php" method="post">
Escreve a tua idade: <input type="text" name="idade" size="2">
<input type="submit" value="Entrar">
</form>
</body>
</html>
Esta é uma página sem nenhum código PHP, simplesmente tem um formulário. Se repararmos no
action do formulário, que está dirigido a uma página chamada idade2.php, que é a que receberá o
valor da idade e mostrará um conteúdo ou outro dependendo desse valor. O seu código seria o
seguinte:
<html>
<head>
<title>Restringir por idade</title>
</head>
<body>
<?
$idade = $_POST["idade"];
echo "Tua idade: $idade<p>";
if ($idade < 18) {
echo "Não podes entrar";
}else{
echo "Bemvindo";
}
?>
</body>
</html>
Esperamos que este outro código também não seja estranho. Simplesmente o formulário recebe
a idade, utilizando o array $_POST. A seguir, mostra-se a idade e executa-se uma expressão
condicional em função de que a idade seja menor que 18. Em caso positivo (idade menor que 18),
mostra-se uma mensagem que informa que não se pode acessar à página. Em caso negativo (maior ou
igual a 18) mostra-se uma mensagem de Boas-vindas.
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Autochamada de páginas
Ao incluir um formulário numa página deve-se indicar, através do atributo action, o nome do
arquivo PHP ao que enviaremos os dados escritos no formulário. Desta maneira, para um esquema de
envio de dados por formulário, podem participar duas páginas: uma que contém o formulário e outra
que recebe os dados de dito formulário.
O mesmo acontece quando enviamos variáveis pela URL. Temos uma página que conterá o link e
outra página que receberá e tratará esses dados para mostrar uns resultados.
Neste artigo vamos ver como se pode enviar e receber dados de um formulário com uma única
página. Também veremos como na mesma página podemos ter links com passagem de variáveis pela
URL e podemos recolher e tratar esses dados com a mesma página. A este efeito podemos chamar-lhe
"autochamada de páginas", mas também é normal dar-lhe o nome de "formulários reentrantes" ou
términos similares. É muito interessante conhecer o modo de funcionamento destes scripts, porque
serão muito habituais nas nossas páginas PHP e ajudam muito a ter os códigos ordenados.
Em ambos casos, para formulários o envio de dados pela URL, deve-se seguir um esquema como
este:
Comprovar se recebo dados pela URL ou pelo formulário
Se não recebo dados
O Mostro o formulário e os links que pasma as variáveis
Se recebo dados
O Tenho de processar o formulário ou as variáveis da URL Para um formulário
Vejamos a continuação como seria o código de um formulário reentrante.
<html>
<head>
<title>Chamo-me a mim mesmo...</title>
</head>
<body>
<?
if (!$_POST){
?>
<form action="auto-chamada.php" method="post">
Nome: <input type="text" name="nome" size="30">
<br>
Empresa: <input type="text" name="empresa" size="30">
<br>
Telefone: <input type="text" name="telefone" size=14 value="+351 " >
<br>
<input type="submit" value="Enviar">
</form>
<?
}else{
echo "<br>Seu nome: " . $_POST["nome"];
echo "<br>Sua empresa: " . $_POST["empresa"];
echo "<br>Seu Telefone: " . $_POST["telefone"];
}
?>
</body>
</html>
No exemplo, o primeiro passo é conhecer se se estão a receber ou não os dados através de um
formulário. Pra isso comprova-se com um enunciado if se existe ou não uma variável $_POST.
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Em concreto if (!$_POST) quer dizer algo assim como "Se não existem dados provenientes de um
formulário". No caso de que não existam, mostro o formulário. Em caso de que efetivamente existam,
recolho os dados e imprimo-os na página.
Pode-se ver o exemplo em funcionamento noutra página.
Para passagem de variáveis pela URL
A idéia é a mesma. Verificar com um enunciado if se os dados são recebidos desde uma URL.
Vejamos o código a continuação. Trata-se de uma página que mostra uma serie de links para ver as
tabuadas do 1 ao 10. Cada um dos links mostra uma tabuada. Pressionando o primeiro link podemos
ver a tabuada do 1, no segundo a tabuada do 2, etc.
Recordemos que a página chama-se a si mesma. Para compreende-la mais facilmente é
interessante ve-la em funcionamento.
<html>
<head>
<title>Tabuadas</title>
</head>
<body>
<?
if (!$_GET){
for ($i=1;$i<=10;$i++){
echo "<br><a href='ver_tabuada.php?tabuada=$i'>Ver a tabuada do $i</a>\n";
}
} else {
$tabuada=$_GET["tabuada"];
?>
<table align=center border=1 cellpadding="1">
<?
for ($i=0;$i<=10;$i++){
echo "<tr><td>$tabuada X $i</td><td>=</td><td>" . $tabuada * $i . "</td></tr>\n";
}
?>
</table>
<?
}
?>
</body>
</html>
Este código é um pouco mais complicado, porque faz bastantes mais coisas que o anterior, mas
para o assunto que nos preocupa que é a autochamada de páginas, tudo continua igual de simples.
Temos de reparar que o if verifica se recebemos dados pela URL: if (¡$_GET), que quer dizer algo
como "Se não se recebem variáveis pela URL".
Em caso positivo (não se recebem dados pela URL) mostram-se os links para ver cada uma das
tabuadas e em caso de receber dados, mostra-se a tabuada do número que se está a receber na URL.
Para mostrar os links e as tabuadas utilizam-se loops for, que esperamos que não resultem
desconhecidos para o leitor. Pode ficar-se a conhecer mais sobre loops for em Controle de fluxo em
PHP: Loops II.
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Carregar uma aplicação PHP ao servidor
Uma vez pediram-me que escrevesse sobre um tema que até agora não tínhamos tocado
demasiado, que consiste em por uma aplicação a funcionar, programada em local, no nosso servidor
de hosting, isto é, na transferência de todos os Arquivos PHP e a base de dados ao nosso espaço no
servidor contratado num provedor de alojamento.
Espero que o assunto vos seja familiar a todos os que lêem os nossos artigos, pois
provavelmente já tenham tido que passar por essa etapa em alguma ocasião, ainda que pretendo dar
algumas dicas que podem ajudar a todos, tenham ou não experiência neste assunto.
Carregar os Arquivos
O nosso servidor deve ter um diretório para a publicação das páginas. Esse seria o lugar onde
haveríamos de carregar os Arquivos .php.
Dependendo do provedor com o que estamos a trabalhar, o diretório de publicação pode variar.
Normalmente, quando contratamos um serviço de hospedagem, proporcionam-nos uma conta de FTP
para nos poder conectar ao servidor e transferir os Arquivos do nosso Site, para além de uns dados
para a conexão, que serão o nome do servidor e o usuário e password para o acesso ao FTP.
Ao acessarmos o servidor com os dados do FTP, que devem ser proporcionados pelo nosso
provedor, somos setados a um diretório. Este diretório poderia ser o de publicação, ainda que
normalmente não é assim, é muito comum ser um subdiretório chamado "HTML" ou "docs" ou algo
similar. Como estava a dizer, este diretório pode ter nomes diferentes em provedores diferentes, mas
em qualquer caso, com uma simples pergunta ao nosso provedor resolvemos essa dúvida.
Os Arquivos devem ser carregados ao diretório de publicação, ou a qualquer subdiretório deste.
Concluindo, que teremos de hospedá-los por ai dentro e para acessá-los bastaria com escrever o nome
do domínio ou URL do nosso servidor de hospedagem, seguido do nome do arquivo. Se tivéssemos um
arquivo chamado ola.php e o nosso servidor de hospedagem tivesse sido contratado para o domínio
www.meudominio.com, deveríamos de carregar esse arquivo ao diretório de publicação e acessaríamos
ao arquivo escrevendo:
http://www.meudominio.com/ola.php
Se criarmos subdiretórios dentro do diretório de publicação poderemos carrega-los escrevendo o
nome do domínio ou URL do nosso Servidor de Hospedagem, seguido do nome do diretório e do nome
do arquivo. Por exemplo, se criamos um subdiretório chamado paginas e temos dentro um arquivo
chamado pag1.php, poderíamos acessa-lo da seguinte forma:
http://www.meudominio.com/paginas/pag1.php
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Como colocar os Arquivos PHP fora do diretório de publicação
É importante lembra que tudo o que pusermos fora do diretório de publicação não poderá ser
acessado através do navegador. Isto é, se criamos um diretório que se chame funcoes_php ao mesmo
nível que o diretório de publicação (fora do diretório de publicação) não seria possível acessar os
arquivos pelo navegados. Isto é assim porque a URL de inicio do nosso servidor de hospedagem
corresponde com esse diretório e não podemos mover-nos para um diretório que se encontra no
mesmo nível do diretório de publicação com as URLs, que são a maneira de especificar ao navegador
os recursos os quais desejamos acessar.
Não seria possível sair do diretório de publicação com uma URL como esta, por muito que
utilizemos o operador. (que serve para acessar ao diretório pai).
http://www.meudominio.com/../funcoes_php/arquivo_inalcancavel.php
De todos os modos, colocar alguns Arquivos fora do diretório de publicação pode ser muito útil.
Por exemplo, poderíamos colocar ali copias de segurança de alguns Arquivos ou documentos que
simplesmente queremos guardar no servidor para acessar a eles desde qualquer parte e com o nosso
programa de FTP.
Há outra utilidade mais interessante sobre colocar Arquivos fora do diretório de publicação.
Muitas vezes utilizamos nos nossos programas bocados de código repetidamente, por exemplo, para
abrir e fechar bases de dados, para mostrar o cabeçalho do nosso portal, para verificar que um e-mail
escrito num formulário é correto, etc. É muito útil separar estes bocados de código num arquivo à
parte e chamar este arquivo com as funções PHP include() ou require(). Deste modo, se um dia
modificamos o cabeçalho do nosso portal, só temos que modificar um arquivo ou se muda a base de
dados que utilizamos só teríamos que modificar o arquivo que faz a ligação à base de dados em vez de
ir alterando todas as páginas PHP que faziam uma apertura da base de dados.
Estes Arquivos não são páginas independentes, mas sim fragmentos. Provavelmente se os
executamos por separado não mostrariam nenhum resultado válido, inclusive poderiam dar mensagens
de erro. Por esta razão vale a pena colocá-los num lugar onde ninguém pudesse ter acesso: fora do
diretório de publicação. Com PHP poderemos acessar a este diretório para incluir estes Arquivos.
Somente deveríamos utilizar as funções PHP include() ou require() indicando o path para acessar aos
Arquivos.
No caso de ter uma página chamada ola.php no diretório de publicação e um arquivo, que chama
abre_base_dados.php, no diretório funcoes_php, que está fora do diretório de publicação, se
quiséssemos acessar (desde ola.php) ao arquivo que abre a base de dados fazemos da seguinte
maneira:
include("../funcoes_php/abre_base_dados.php")
Desde PHP sim podemos acessar aos Arquivos que se encontram fora do diretório de publicação.
Para isso especificamos o path adequado, na que utilizamos o operador .. Para descer ao diretório pai.
Não há nada mais a dizer sobre a colocação dos Arquivos: uma vez situados no diretório de
publicação pode-se acessar a Arquivos com o nosso navegador e deveria-se poder executar
perfeitamente. Temos de ter em conta que, tanto PHP como o servidor onde trabalhamos, podem ter
configurações diferentes e pode que algum detalhe de programação das nossas páginas não funcione
corretamente.
Por exemplo, o nosso PHP pode declarar ou não automaticamente as variáveis que chegam
através dum formulário. Se em local estava configurado para fazer isso e em remoto não, deveríamos
localizar os lugares onde recolhemos as variáveis e utilizar as variáveis corretas (ver artigo sobre
Processar variáveis em formulários e os comentários para saber mais sobre esta possível fonte de
erros).
Mesmo não sendo um caso habitual, poderíamos entrar em contantos com o nosso Provedor de
Hospedagem ver se haveria a possibilidade de nos ajudar com a configuração do sistema ou se podem
nos indicar os passos a seguir para resolver o assunto nos nossos scripts.
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Comentário: O seguinte script calcula o nível de diretório dos scripts que queremos incluir na página
atual.
// Achamos o nível do diretório onde se encontra a página
1. Contamos os caracteres que contem o nome do script atual.
$Chars = count_chars($PHP_SELF,1);
2. Exploramos a tabela dos caracteres retornados procurando o carácter ('/' Código 47 ) de diretório
(pasta) que retorna Apache.
foreach ($Chars as $Char=>$nChars){
if ($Char==47) {$n=$nChars;break;}
}
3. Geramos uma cadeia de n-1 vezes com a subcadeia "../" que nos da o nível de diretório no que se
encontra o script.
if ($n==0)
$PathString="";
else
$PathString=str_pad("",($n-1)*3,"../");
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Exercício Final:
Este script é apenas didático, não devendo ser usado comercialmente, porém nada lhe impede de
usar as funções aqui apresentadas em seus projetos comerciais.
A idéia deste script é a seguinte: Temos vários campos que devem ser preenchidos e que serão
validados ao se clicar em validar. A validação ocorre em PHP mesmo. Não é de nosso interesse explicar
o funcionamento deste script, cabe a você usar dos conhecimentos adquiridos neste mini curso e
comentar cada linha do script informando o que a mesma faz.
Aos que tentarem comentar as linhas deste script e quiserem ter as mesmas divulgadas na
versão 2.0 desta apostila favor enviar o script para [email protected] com o seguinte
assunto: Comentários exercício final PHP básico.
O script melhor comentado será divulgado na versão 2.0 da apostila.
Caso os campos passem pela validação, é exibido um texto com as informações que foram
preenchidas nos campos.
Repare uma opção interessante que caso a informação não seja válida, os campos não perdem o
que foram preenchidos.
<?
if ($_POST['validar']) {
$nome= $_POST['nome'];
$endereco= $_POST['endereco'];
$cep= $_POST['cep'];
$telefone= $_POST['telefone'];
$email= $_POST['email'];
$site= $_POST['site'];
switch (true) {
case empty($nome);
echo "<script>alert('O Nome deve ser informado!')</script>";
break;
case empty($endereco);
echo "<script>alert('O Endereço deve ser informado!')</script>";
break;
case empty($cep);
echo "<script>alert('O CEP deve ser informado!')</script>";
break;
case empty($telefone);
echo "<script>alert('O Telefone deve ser informado!')</script>";
break;
case empty($email);
echo "<script>alert('O E-Mail deve ser informado!')</script>";
break;
case empty($site);
echo "<script>alert('O Site deve ser informado!')</script>";
break;
default;
if (strlen($nome) < 10) {
echo "<script>alert('O Nome informado não é válido, por favor insira seu nome completo!')</script>";
}elseif (strlen($endereco) < 10) {
echo "<script>alert('O Endereço informado não é válido!')</script>";
}elseif ( (strlen($cep) < 8) or ( ! (substr_count($cep,"-") = 1)) or (ereg("[a-zA-Z]",$cep)) ) {
echo "<script>alert('O CEP informado não é válido. Ex.: #####-###')</script>";
}elseif ( (strlen($telefone) < 10) or ( ! (substr_count($telefone,"-") = 2)) or (ereg("[a-zAZ]",$telefone)) ) {
echo "<script>alert('O Telefone informado não é válido. Ex.: ##-###-####!')</script>";
}elseif ( ( ! (substr_count($email,"@") = 1)) or (substr_count($email,".") < 1) or
(strlen($email) < 5) or (substr_count($email, "\\") > 0) ) {
echo "<script>alert('O E-Mail informado não é válido. Ex.:usuario@dominio ')</script>";
}elseif ( (substr_count($site,"@") > 0) or (substr_count($site,".") < 2) or (strlen($site) < 5) ) {
echo "<script>alert('O site informado não é válido. Ex,: www.dominio!')</script>";
}
}
$informacoes = "Informaões sobre: $nome: <br><br>";
$informacoes .= "Localiza-se na: $endereco, CEP: $cep. <br>";
$informacoes .= "Contato pelo fone: $telefone, <br>";
$informacoes .= "ou correio eletrônico: $email <br><br>";
Mini Curso PHP On‐Line – Nível Básico – v 1.0 $informacoes .= "Visite o site de $nome --> $site <br>";
}else{
$hora = date("H");
if ($hora >= 0 && $hora < 6){
echo "<script>alert('Já é de madrugada!!!')</script>";
}elseif ($hora >= 6 && $hora < 12){
echo "<script>alert('Tenha um excelente dia!!!')</script>";
}elseif ($hora >= 12 && $hora < 18){
echo "<script>alert('Boa tarde!!!')</script>";
}else{
echo "<script>alert('Uma boa noite!!!')</script>";
}
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Exerc&iacute;cio Final PHP</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<table width="100%" border="0">
<tr>
<th colspan="2" scope="col">Valida&ccedil;&atilde;o de campos com PHP </th>
</tr>
<tr>
<td width="50%">&nbsp;</td>
<td width="50%" align="right">Seu IP: <? echo $_SERVER['REMOTE_ADDR']; ?></td>
</tr>
<tr>
<td align="right">Nome:</td>
<td><div align="left">
<input name="nome" type="text" id="nome" value="<? echo "$nome" ?>" />
</div></td>
</tr>
<tr>
<td align="right">Endere&ccedil;o:</td>
<td><input name="endereco" type="text" id="endereco" value="<? echo "$endereco" ?>" /></td>
</tr>
<tr>
<td align="right">CEP:</td>
<td><input name="cep" type="text" id="cep" value="<? echo "$cep" ?>" /></td>
</tr>
<tr>
<td align="right">Telefone:</td>
<td><input name="telefone" type="text" id="telefone" value="<? echo "$telefone" ?>" /></td>
</tr>
<tr>
<td align="right">E-mail:</td>
<td><input name="email" type="text" id="email" value="<? echo "$email" ?>" /></td>
</tr>
<tr>
<td align="right">Site:</td>
<td><input name="site" type="text" id="site" value="<? echo "$site" ?>" /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan="2" align="center"><input name="validar" type="submit" id="validar" value="Validar" /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td align="right">&nbsp;</td>
<td align="left"><? echo $informacoes ?></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</form>
</body>
</html>
Mini Curso PHP On‐Line – Nível Básico – v 1.0 Conclusão
Como qualquer outro curso, principalmente On-Line são os próprios alunos que fazem a
diferença, os resultados vem do esforço e dedicação de cada um, nós da equipe da 4P Soluções
estamos muito honrados em lhe repassar um pouco do que sabemos, e esperamos que com esse
pouco você possa fazer muito.
Com os conhecimentos adquiridos aqui você já estará apto a iniciar seus próprios projetos em
PHP, porém não se esqueça que o conteúdo proposto aqui é só o início, há muito o que estudar e
aprender ainda até que você se torne um programador(a) profissional. Porém quem quer consegue,
sabemos que não é fácil e a caminhada é longa, mas a recompensa é garantida.
Ajude-nos a manter nosso mini-curso sempre com uma boa qualidade de aprendizado, envie-nos
sua opinião, reclamação ou sugestão para [email protected]
Muito obrigado,
Eudson Fonseca.
Download

PHP básico - 4P Soluções