Escolar Documentos
Profissional Documentos
Cultura Documentos
ApostilaPHP PDF
ApostilaPHP PDF
1 Introduo....................................................................................................................... 3
2 Exemplo de Script .......................................................................................................... 3
3 Configurao (php.ini) ................................................................................................... 5
4 Sintaxe Bsica ................................................................................................................ 6
5 Variveis......................................................................................................................... 8
6 Tipos de dados................................................................................................................ 9
7 Constantes..................................................................................................................... 12
8 Expresses .................................................................................................................... 13
9 Operadores.................................................................................................................... 14
10 Estruturas de Controle .............................................................................................. 18
11 Funes..................................................................................................................... 22
12 Classes e Objetos...................................................................................................... 23
13 Referncias ............................................................................................................... 24
14 Matrizes .................................................................................................................... 26
15 Incluso de Arquivos................................................................................................ 27
16 Cookies ..................................................................................................................... 28
17 Parmetros ................................................................................................................ 30
18 Formulrios............................................................................................................... 31
19 Uploads..................................................................................................................... 33
20 Envio de e-mails ....................................................................................................... 34
21 Introduo ao MySQL.............................................................................................. 35
22 Exibio.................................................................................................................... 35
23 Consulta e Ordenao............................................................................................... 37
24 Incluso e Atualizao.............................................................................................. 38
25 Excluso ................................................................................................................... 40
Referncias ........................................................................................................................... 40
2
1 Introduo
PHP uma sigla recursiva que significa PHP HyperText Preprocessor. O PHP uma
linguagem de cdigo-fonte aberto, muito utilizada na Internet e especialmente criada para o
desenvolvimento de aplicativos Web.
Note como isso diferente de scripts CGI escritos em outras linguagens como Perl ou C
--- ao invs de escrever um programa com um monte de comandos para imprimir HTML,
voc escreve um arquivo HTML com algum cdigo inserido para fazer alguma coisa (nesse
caso, imprimir um pouco de texto). O cdigo PHP delimitado por tags iniciais e finais que
lhe permitem pular pra dentro e pra fora do modo PHP.
A melhor coisa em usar PHP est no fato de ele ser extremamente simples para um
iniciante, mas oferece muitos recursos para o programador profissional.
Para testar scripts PHP necessrio um servidor com suporte a esta tecnologia.
Normalmente, o mais utilizado o Apache. O banco de dados mais utilizado com os scripts
PHP o MySQL. Um exemplo de pacote pronto para execuo de um ambiente Apache +
PHP + MySQL o EasyPHP (http://www.easyphp.org). Qualquer editor de textos pode ser
usado para escrever os scripts PHP (ex. bloco de notas ou a ferramenta free MPS PHP
Designer em http://www.mpsoftware.dk).
As pginas PHP devem ser salvas no diretrio raiz do servidor. Para testes locais com o
EasyPHP, essa pasta c:\Arquivos de programas\EasyPHP\www. Para acessar a pgina,
deve-se abrir o browser Internet Explorer e digitar-se o nome do domnio (http://127.0.0.1)
e o nome da pgina com extenso .php. Quando o EasyPHP est sendo executado, aparece
um cone com uma letra e ao lado do relgio do Windows.
2 Exemplo de Script
Para criar o primeiro exemplo, digite o seguinte cdigo-fonte no seu editor e salve com
o nome de teste.php dentro do diretrio raiz do servidor.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php echo "<p>Al Mundo</p>"; ?>
</body>
</html>
Figura 1 Primeiro script
No browser, digite o endereo http://127.0.0.1/teste.php e veja o resultado. Veja
tambm o cdigo fonte da pgina (Exibir Cdigo fonte). interessante notar que os
comandos PHP no aparecem porque o servidor interpreta todos os scripts antes de enviar a
pgina para o browser.
O que PHP pode fazer ?
Qualquer coisa. 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: coletar
3
dados de formulrios, gerar pginas com contedo dinmico ou enviar e receber cookies.
Mas o PHP pode fazer muito mais.
O PHP pode ser utilizado na maioria dos sistemas operacionais, incluindo Linux, vrias
variantes Unix (incluindo HP-UX, Solaris e OpenBSD), Microsoft Windows, Mac OS X,
RISC OS, e provavelmente outros. O PHP tambm suportado pela maioria dos servidores
web atuais, incluindo Apache, Microsoft Internet Information Server, Personal Web Server,
Netscape and iPlanet Servers, Oreilly Website Pro Server, Caudium, Xitami, OmniHTTPd,
e muitos outros. O PHP pode ser configurado como mdulo para a maioria dos servidores,
e para os outros como um CGI comum.
Com o PHP, portanto, voc tem a liberdade para escolher o sistema operacional e o
servidor web. Do mesmo modo, voc pode escolher entre utilizar programao estrutural ou
programao orientada a objeto, ou ainda uma mistura deles. Mesmo no desenvolvendo
nenhum recurso padro de OOP (Object Oriented Programming, Programao Orientada a
Objetos) na verso atual do PHP, muitas bibliotecas de cdigo e grandes aplicaes
(incluindo a biblioteca PEAR) foram escritos somente utilizando OOP.
Com PHP voc no est limitado a gerar somente HTML. As habilidades do PHP
incluem gerao de imagens, arquivos PDF e animaes Flash (utilizando libswf ou Ming)
criados dinamicamente. Voc pode facilmente criar qualquer padro texto, como XHTML e
outros arquivos XML. O PHP pode gerar esses padres e os salvar no sistema de arquivos,
em vez de imprimi-los, formando um cache dinmico de suas informaes no lado do
servidor.
Talvez a mais forte e mais significativa caracterstica do PHP seu suporte a uma
ampla variedade de banco de dados. Escrever uma pgina que consulte um banco de dados
incrivelmente simples. Os seguintes bancos de dados so atualmente suportados:
4
Adabas D Ingres Oracle (OCI7 and OCI8)
dBase InterBase Ovrimos
Empress FrontBase PostgreSQL
FilePro (read-only) mSQL Solid
Hyperwave Direct MS-SQL Sybase
IBM DB2 MySQL Velocis
Informix ODBC Unix dbm
3 Configurao (php.ini)
[PHP]
;;;;;;;;;;;
; WARNING ;
;;;;;;;;;;;
; This is the default settings file for new PHP installations.
; By default, PHP installs itself with a configuration suitable for
; development purposes, and *NOT* for production purposes.
; For several security-oriented considerations that should be taken
; before going online with your site, please consult php.ini-
recommended
5
; and http://php.net/manual/en/security.php.
;;;;;;;;;;;;;;;;;;;
; About this file ;
;;;;;;;;;;;;;;;;;;;
; This file controls many aspects of PHP's behavior. In order for PHP
to
; read it, it must be named 'php.ini'. PHP looks for it in the
current
; working directory, in the path designated by the environment
variable
; PHPRC, and in the path that was defined in compile time (in that
order).
; Under Windows, the compile-time path is the Windows directory. The
; path in which the php.ini file is looked for can be overridden using
; the -c argument in command line mode.
;
; The syntax of the file is extremely simple. Whitespace and Lines
; beginning with a semicolon are silently ignored (as you probably
guessed).
; Section headers (e.g. [Foo]) are also silently ignored, even though
; they might mean something in the future.
Figura 2 Trecho de exemplo do php.ini
Atravs de modificaes neste arquivo possvel alterar vrias opes no
comportamento do PHP. Todas as linhas iniciadas por ponto-e-vrgula so comentrios.
4 Sintaxe Bsica
Tags especiais indicam ao PHP onde esto os blocos de cdigo. A tag de abertura
formada por um sinal de menor que (<), um sinal de interrogao (?) e a sigla php. A tag
de fechamento formada por um ponto interrogao (?) e sinal de maior que (>).
Ex:
<?php
...
?>
Exerccio: digite o cdigo da figura 1 e salve no diretrio raiz do servidor Apache. Veja
o resultado da pgina atravs de seu carregamento no browser.
O sinal de ponto-e-vrgula (;) indica o final de um comando (ver figura 1). A prxima
figura mostra outro exemplo.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$a = 10;
$b = 15;
6
$c = $a + $b;
echo "$a mais $b igual a $c";
?>
</body>
</html>
Figura 3 Exemplo de cdigo
Os comentrios de mais de uma linha no PHP so obtidos atravs de /* e */. Os
comentrios de apenas uma linha so obtidos atravs de //.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
/*
O cdigo abaixo soma duas variveis
e exibe o valor encontrado
*/
$a = 10;
$b = 15;
$c = $a + $b;
echo "$a mais $b igual a $c";
?>
</body>
</html>
Figura 4 Exemplo de cdigo com comentrios de mais de uma linha
Os comentrios no aparecem no browser.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$a = 10; //A varivel $a recebe o valor 10
$b = 15; //A varivel $b recebe o valor 15
//A varivel $c recebe o valor da soma
$c = $a + $b;
//O resultado obtido exibido
echo "$a mais $b igual a $c";
?>
</body>
</html>
Figura 5 - Exemplo de cdigo com comentrios de uma linha
7
Palavras-chave do PHP
and do for include require true
break else foreach list return var
case elseif function new static virtual
class extends global not switch xor
continue false if or this while
default
5 Variveis
Variveis armazenam valores. Pode-se referir a variveis para obter seu valor ou para
alterar seu contedo.
No PHP elas so representadas por um cifro ($) mais o nome da varivel. Os nomes de
variveis vlidos so iniciados por letras ou por um subscrito ( _ ). Existe diferenciao
entre nomes de variveis maisculas e minsculas.
Ex: $a, $_A, $_a
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$a = 10;
$A = 20;
echo "O valor de 'a' $a e o de 'A' $A";
?>
</body>
</html>
Figura 6 Exemplo de cdigo com variveis minscula e maiscula
Quando a varivel declarada dentro de uma funo, ela s estar disponvel para o
cdigo desta funo. O cdigo a seguir gera um erro devido a essa caracterstica.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
function soma($a)
{
$b = $a + 5;
}
soma(10);
8
?>
</body>
</html>
Figura 7 Declarao de varivel dentro de funo
Para evitar este tipo de problema, deve-se definir a varivel como global. O cdigo a
seguir resolve o problema do cdigo anterior. Compare os resultados dos dois scripts.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
function soma($a)
{
global $b;
$b = $a + 5;
}
soma(10);
?>
</body>
</html>
Figura 8 Declarao de varivel global
6 Tipos de dados
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
9
<?php
$a = True;
if ($a)
{
echo "Verdadeiro";
}
else
{
echo "Falso";
}
?>
</body>
</html>
Figura 9 Cdigo com dados booleanos
Teste o cdigo anterior alterando o valor da varivel para False.
Pode-se armazenar valores inteiros, positivos ou negativos. Pode-se usar tambm
valores hexadecimais.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
?>
</body>
</html>
Figura 10 Cdigo com variveis hexadecimal e valor negativo
Os valores de ponto flutuante so representados atravs de ponto ( . ).
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$preco = 11.90;
10
$soma = $preco * 4;
?>
</body>
</html>
Figura 11 Cdigo com varivel de ponto flutuante
As strings so armazenadas dentro de aspas duplas ( ) ou simples ( ).
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
echo $texto1;
echo $texto2;
?>
</body>
</html>
Figura 12 Cdigo com strings entre aspas simples e duplas
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$frutas = array(
1 => "Laranja",
2 => "Ma",
3 => "Uva");
?>
11
</body>
</html>
Figura 13 Cdigo com matriz
7 Constantes
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
define("CONSTANTE", "Al mundo.");
echo CONSTANTE;
?>
</body>
</html>
Figura 14 Cdigo com constante
O PHP implementa algumas constantes, a maioria so matemticas. O cdigo seguinte
demonstra o uso da constante M_PI.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
function calculaAreaCirculo($raio)
{
return M_PI * pow($raio, 2);
}
$meuRaio = 5;
$area = calculaAreaCirculo($meuRaio);
?>
</body>
</html>
Figura 15 Cdigo com a constante M_PI
12
8 Expresses
Tudo que tem um valor pode ser considerado uma expresso. O cdigo a seguir
demonstra na prtica.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$b = ($a = 5);
echo "O valor de 'b' $b";
?>
</body>
</html>
Figura 16 Cdigo com uso de expresso
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$b = $a = 5;
echo "O valor de 'b' $b";
?>
</body>
</html>
Figura 17 Variao do cdigo anterior
Expresses de comparao retornam valores booleanos, sendo vazio representando
verdadeiro e um representando falso. As expresses de comparao so usadas em
declaraes condicionais para determinar se um bloco de cdigo ser executado ou no.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
13
?>
</body>
</html>
Figura 18 Cdigo com expresso de comparao
9 Operadores
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$x = 2;
echo($x + 2);
echo "<br>";
$x = 2;
echo(5 - $x);
echo "<br>";
$x = 4;
echo($x * 5);
echo "<br>";
$x = 15;
echo($x / 5);
echo "<br>";
$x = 10;
echo($x % 8);
echo "<br>";
$x = 5;
$x++;
echo($x);
echo "<br>";
$x = 5;
$x--;
echo($x);
echo "<br>";
$x = 8;
echo($x);
14
echo "<br>";
$x = 8;
$x = $x + 10;
echo($x);
echo "<br>";
$x = 8;
$x += 10;
echo($x);
?>
</body>
</html>
Figura 19 Cdigo com diversas operaes matemticas
H tambm os operadores de comparao. Uma comparao sempre gera um dos dois
valores possveis: vazio, que corresponde a falso, e 1, que corresponde a verdadeiro.
= = igual a
! = no igual a
> maior que
< menor que
>= maior ou igual a
<= menor ou igual a
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$x = 5;
if($resultado == 1)
{
echo "verdadeiro";
}
else
{
echo "falso";
}
echo "<br>";
$x = 5;
if($resultado == 1)
{
echo "verdadeiro";
}
else
15
{
echo "falso";
}
echo "<br>";
$x = 5;
if($resultado == 1)
{
echo "verdadeiro";
}
else
{
echo "falso";
}
echo "<br>";
$x = 5;
if($resultado == 1)
{
echo "verdadeiro";
}
else
{
echo "falso";
}
echo "<br>";
$x = 5;
if($resultado == 1)
{
echo "verdadeiro";
}
else
{
echo "falso";
}
echo "<br>";
$x = 5;
if($resultado == 1)
{
16
echo "verdadeiro";
}
else
{
echo "falso";
}
?>
</body>
</html>
Figura 20 Cdigo com operadores de comparao
Operadores lgicos
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$x = 6;
$y = 3;
if($resultado == 1)
{
echo "verdadeiro";
}
else
{
echo "falso";
}
echo "<br>";
$x = 6;
$y = 3;
if($resultado == 1)
{
echo "verdadeiro";
}
17
else
{
echo "falso";
}
echo "<br>";
$x = 6;
$y = 3;
if($resultado == 1)
{
echo "verdadeiro";
}
else
{
echo "falso";
}
?>
</body>
</html>
Figura 21 Cdigo com operadores lgicos
10 Estruturas de Controle
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$x = 20;
18
?>
</body>
</html>
Figura 22 Cdigo com declarao condicional if verdadeiro
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$x = 5;
</body>
</html>
Figura 23 Cdigo com declarao condicional if falso
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$x = 5;
</body>
</html>
Figura 24 Cdigo com declarao condicional if e else
<html>
<head>
<title>Teste PHP</title>
</head>
19
<body>
<?php
$cor = "branco";
if ($cor == "vermelho")
{
echo("A varivel contm o valor 'vermelho'.");
}
else if ($cor == "azul")
{
echo("A varivel contm o valor 'azul'.");
}
else if ($cor == "amarelo")
{
echo("A varivel contm o valor 'amarelo'.");
}
else
{
echo("O valor da varivel no foi identificado.");
}
?>
</body>
</html>
Figura 25 Cdigo com declarao condicional if e else if
switch / case forma de testar uma dentre vrias possibilidades. A declarao default
executa caso nenhuma das opes for verdadeira (figura 26). A declarao break faz com
que o restante do cdigo no seja executado caso o teste seja verdadeiro.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$d = getdate();
switch ($d['wday'])
{
case 5:
echo("Finalmente Sexta");
break;
case 6:
echo("Super Sbado");
break;
case 0:
echo("Domingo Sonolento");
break;
default:
echo("Estou esperando pelo fim da semana");
}
?>
20
</body>
</html>
Figura 26 Cdigo com declarao condicional switch e case
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.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
?>
</body>
</html>
Figura 27 Cdigo com looping definido pelo comando if
while estrutura de looping que no necessita de um nmero determinado de iteraes.
Ele executado enquanto uma condio for verdadeira.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$i = 1;
?>
</body>
</html>
Figura 28 Cdigo com declarao condicional while
21
do-while outra forma de looping que executa um bloco de cdigo, testa uma condio
e repete novamente o bloco de cdigo (ou no).
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$i = 1;
do
{
echo ("Linha $i <br>");
$i++;
}
while ($i < 10)
?>
</body>
</html>
Figura 29 - Cdigo com declarao condicional do-while
11 Funes
Para se chamar uma funo, deve-se escrever seu nome e indicar os parmetros entre
parnteses.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
function soma($valor1, $valor2)
{
$resultado = $valor1 + $valor2;
return ($resultado);
}
$x = soma(7, 8);
22
echo($x);
?>
</body>
</html>
Figura 30 Exemplo de uma funo
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
function escreveTexto()
{
echo("J sei criar funes!");
}
escreveTexto();
?>
</body>
</html>
Figura 31 Segundo exemplo de declarao de funo
12 Classes e Objetos
Uma classe uma coleo de atributos e mtodos. O cdigo a seguir define uma classe
chamada CarrinhoDeCompras, que uma matriz associativa com os artigos do carrinho e
duas funes: uma para adicionar e outra para remover os itens.
Classes so tipos, isto , rascunhos para a criao de objetos. Deve-se utilizar o
operador new para criar uma varivel do tipo CarrinhoDeCompras.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
class CarrinhoDeCompras
{
var $items; // Items no carrinho de compras
23
// Retira $num artigos do $artnr do carrinho
</body>
</html>
Figura 32 Cdigo de definio de uma classe
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
class CarrinhoDeCompras
{
var $itens; // Itens no carrinho de compras
</body>
</html>
24
Figura 33 Definio de classe e instanciao de um objeto do tipo CarrinhoDeCompras
13 Referncias
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$a =& $b;
$b = 100;
echo $a;
?>
</body>
</html>
Figura 34 Cdigo de exemplo de atribuio de valor a duas variveis (a e b)
O comando unset remove uma referncia previamente declarada, mas ela mantm o
ltimo valor recebido.
<html>
<head>
25
<title>Teste PHP</title>
</head>
<body>
<?php
$a =& $b;
$b = 100;
unset($b);
$b = 200;
echo $a;
?>
</body>
</html>
Figura 35 Cdigo de remoo de uma referncia
14 Matrizes
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
echo "<b>Funcionrios</b>";
echo "<ul>";
echo "<li>" . $funcionarios[0];
echo "<li>" . $funcionarios[1];
echo "<li>" . $funcionarios[3];
echo "</ul><p>";
echo "<b>Funcionrias</b>";
26
echo "<ul>";
echo "<li>" . $funcionarios[2];
echo "<li>" . $funcionarios[4];
echo "</ul>";
?>
</body>
</html>
Figura 36 Cdigo com declarao de matriz
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
echo $siglas["SP"];
?>
</body>
</html>
Figura 37 Cdigo com declarao de matriz e referncia atravs de string
15 Incluso de Arquivos
O comando include permite a incluso de outros arquivos php dentro do script que
est sendo executado. Pode-se criar uma funo que imprime a data atual e pode-se reus-lo
sem precisar reescrever o cdigo cada vez que for necessrio. No exemplo a seguir, pode-se
chamar o primeiro script de cabecalho.php e o prximo script o inclui atravs do comando
include.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
27
4 => "Abril",
5 => "Maio",
6 => "Junho",
7 => "Julho",
8 => "Agosto",
9 => "Setembro",
10 => "Outubro",
11 => "Novembro",
12 => "Dezembro");
$hoje = getdate();
$dia = $hoje["mday"];
$mes = $hoje["mon"];
$nomeMes = $meses[$mes];
$ano = $hoje["year"];
?>
</body>
</html>
Figura 38 Script que salvo com o nome de cabecalho.php
<html>
<head>
<title>Pgina PHP</title>
</head>
<body>
<?php
include("cabecalho.php");
?>
</body>
</html>
Figura 39 Cdigo com incluso de arquivo externo chamado cabecalho.php
16 Cookies
<?php
if (isset($HTTP_POST_VARS['usuario'])) {
$user = $HTTP_POST_VARS['usuario'];
setcookie("usuario", $user);
$mensagem = "Usurio $user conectado.<p>";
28
}
else
{
?>
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?
echo $mensagem;
?>
</body>
</html>
Figura 40 Cdigo que cria um cookie com o nome do usurio
<html>
<head>
<title>Pgina PHP</title>
</head>
<body>
<?php
$user = $_COOKIE["usuario"];
?>
</body>
</html>
Figura 41 Cdigo que recupera os dados do cookie criado anteriormente
O cdigo a seguir demonstra o uso de um cookie com tempo de vida definido em
3600 segundos, isto , uma hora. Aps uma hora decorrida de sua criao, ele removido.
<?php
if (isset($_POST['usuario'])) {
29
$user = $_POST['usuario'];
}
else
{
?>
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?
echo $mensagem;
?>
</body>
</html>
Figura 42 Cdigo que cria um cookie com o nome do usurio que dura uma hora
17 Parmetros
<html>
<head>
<title>Pgina PHP</title>
</head>
<body>
<?php
if (isset($_GET["valor"]))
30
{
$valor = $_GET["valor"];
echo "Voc clicou no link $valor <p>";
}
else
{
echo "Clique em um dos links abaixo:<p>";
}
?>
</body>
</html>
Figura 43 Cdigo com passagem de parmetro
Caso exista necessidade de se passar mais de um parmetro, deve-se separ-los atravs
de e comercial (&), conforme figura 44.
<html>
<head>
<title>Pgina PHP</title>
</head>
<body>
<?php
if (isset($_GET["nome"]) && isset($_GET["sobrenome"])) {
$nome = $_GET["nome"];
$sobrenome = $_GET["sobrenome"];
echo "O nome selecionado foi $nome $sobrenome<p>";
}
else
{
echo "Selecione um nome<p>";
}
?>
</body>
</html>
Figura 44 Cdigo com passagem de mais de um parmetro
18 Formulrios
Os valores enviados atravs de um formulrio podem ser recuperados pela varivel pr-
definida $_POST. Atravs dela possvel obter os dados que foram enviados atravs do
31
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 (figura 45).
<html>
<head>
<title>Pgina PHP</title>
</head>
<body>
<?php
?>
</body>
</html>
Figura 45 Cdigo com formulrio enviando dados atravs do mtodo POST
Se for usado o mtodo GET, os dados podem ser visualizados na URL do browser. Para
recuperar estes dados, deve-se usar a varivel pr-definida $_GET. Executar os cdigos das
figuras 45 e 46 e analisar o comportamento do browser.
<html>
<head>
<title>Pgina PHP</title>
</head>
<body>
<?php
32
echo "Ol $pnome $snome.<p>";
}
else
{
echo "Digite o seu nome.<p>";
}
?>
</body>
</html>
Figura 46 Cdigo com formulrio enviando dados atravs do mtodo GET
19 Uploads
O PHP permite que sejam enviados arquivos para o servidor. Deve-se modificar o
arquivo de configurao (php.ini):
file_uploads = On
upload_tmp_dir ="C:\Arquivos de programas\EasyPHP\tmp\"
upload_max_filesize = 2M
Para o prximo exemplo, o diretrio de upload deve ser trocado para C:\temp.
necessrio reiniciar o servidor a cada modificao em algum arquivo de configurao.
Todas as informaes sobre o arquivo enviado ficam armazenadas na varivel
$_FILES. O comando que trata o envio do arquivo move_uploaded_file. No exemplo a
seguir, o usurio envia um arquivo de no mximo 30 Kb.
<html>
<head>
<title>Pgina PHP</title>
</head>
<body>
<?php
if (isset($_FILES['arquivo']['name'])){
$uploaddir = 'c:\\temp\\';
$arquivo = $uploaddir. $_FILES['arquivo']['name'];
if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $arquivo)) {
print "O arquivo foi gravado com sucesso.";
33
}
else
{
print "Erro. O arquivo no foi enviado.";
}
}
?>
</body>
</html>
Figura 47 Cdigo com upload de arquivo e armazenamento na pasta C:\temp
20 Envio de e-mails
O PHP permite que se enviem e-mails de forma automatizada. Para isso, deve-se ajustar
o arquivo de configurao (php.ini) para se indicar o servidor SMTP:
[mail function]
SMTP = localhost ;for win32 only
sendmail_from = me@localhost.com ;for win32 only
;sendmail_path = ;for unix only, may supply
arguments as well (default is 'sendmail -t -i')
A opo SMTP indica o endereo ou nmero IP do servidor SMTP. A opo
sendmail_from indica o endereo do remetente da mensagem. necessrio reiniciar o
servidor a cada modificao em algum arquivo de configurao. O prximo exemplo envia
uma mensagem para o destinatrio.
<html>
<head>
<title>Pgina PHP</title>
</head>
<body>
<?php
$destinatario = "cristiano@urcamp.tche.br";
$assunto = "Como enviar e-mais via PHP";
$mensagem = "
<h2>Envio de e-mails via PHP</h2>
34
mail($destinatario, $assunto, $mensagem, $cabecalho);
</body>
</html>
Figura 48 Cdigo com envio de e-mail
PHP e MySQL
21 Introduo ao MySQL
O MySQL o gerenciador de banco de dados mais usado com o PHP. Existem muitas
funes pr-definidas para manipulao de conexes com bancos de dados.
A funo mysql_connect tenta uma conexo com um servidor MySQL. Deve-se passar
como parmetros: o nome do servidor (ou nmero IP) onde o MySQL est sendo
executado, o nome de usurio e a senha deste usurio. O comando alternativo die trata um
possvel fracasso na conexo.
A funo mysql_selectdb seleciona qual base ser selecionada dentro do banco de
dados que foi conectado. O comando alternativo die trata um possvel fracasso na seleo
da base, podendo ser includa uma mensagem customizada.
A funo mysql_query faz consultas base previamente selecionada. Deve-se passar,
como parmetros, os comandos SQL apropriados. Novamente, o comando alternativo die
pode tratar um no sucesso na consulta.
<html>
<head>
<title>Pgina PHP</title>
</head>
<body>
<?php
$link = mysql_connect("127.0.0.1", "root", "")
or die("No foi possvel conectar");
mysql_select_db("teste")
or die("No foi possvel selecionar o banco de dados");
</body>
</html>
Figura 49 Cdigo com conexo a um banco de dados MySQL, seleo de uma base teste e consulta
todos os registros da tabela Clientes
35
22 Exibio
<html>
<head>
<title>Pgina PHP</title>
</head>
<body>
<?php
$link = mysql_connect("127.0.0.1", "root", "")
or die("No foi possvel conectar");
mysql_select_db("teste")
or die("No foi possvel selecionar o banco de dados");
$linha = mysql_fetch_assoc($resultado);
$NomeDaEmpresa = $linha["NomeDaEmpresa"];
$NomeDoContato = $linha["NomeDoContato"];
?>
</body>
</html>
Figura 50 Cdigo com impresso de um registro a partir de uma consulta
<html>
<head>
<title>Pgina PHP</title>
</head>
<body>
<?php
$link = mysql_connect("127.0.0.1", "root", "")
or die("No foi possvel conectar");
mysql_select_db("teste")
or die("No foi possvel selecionar o banco de dados");
36
$consulta = "SELECT * FROM Clientes";
$resultado = mysql_query($consulta)
or die("Falha na execuo da consulta");
$NomeDaEmpresa = $linha["NomeDaEmpresa"];
$NomeDoContato = $linha["NomeDoContato"];
?>
</body>
</html>
Figura 51 Cdigo com impresso de todos registros a partir de uma consulta
23 Consulta e Ordenao
Pode-se fazer consultas atendendo a certos critrios, que vo fazer com que a consulta
seja refinada. No prximo exemplo, desejamos selecionar apenas os clientes de So Paulo.
Nesse caso, a clusula que deve ser alterada a que faz a consulta SQL.
<html>
<head>
<title>Pgina PHP</title>
</head>
<body>
<?php
mysql_select_db("teste")
or die("No foi possvel selecionar o banco de dados");
$resultado = mysql_query($consulta)
or die("Falha na execuo da consulta");
$NomeDaEmpresa = $linha["NomeDaEmpresa"];
$NomeDoContato = $linha["NomeDoContato"];
37
echo "<b>Nome do contato:</b> $NomeDoContato<p>";
}
?>
</body>
</html>
Figura 52 Cdigo com impresso de determinados registros que satisfazem uma condio (select ...
from ... where ...)
No caso de ordenao, a clusula order by deve ser anexada query SQL.
<html>
<head>
<title>Pgina PHP</title>
</head>
<body>
<?php
$link = mysql_connect("127.0.0.1", "root", "")
or die("No foi possvel conectar");
mysql_select_db("teste")
or die("No foi possvel selecionar o banco de dados");
$resultado = mysql_query($consulta)
or die("Falha na execuo da consulta");
$NomeDaEmpresa = $linha["NomeDaEmpresa"];
$NomeDoContato = $linha["NomeDoContato"];
?>
</body>
</html>
Figura 53 Cdigo com impresso de determinados registros que satisfazem uma condio, ordenados
por um dos atributos (select ... from ... where ... order by ...)
24 Incluso e Atualizao
Para se incluir dados em uma tabela MySQL, deve-se usar o comando INSERT. No
exemplo a seguir, a incluso de dados esttica. Para se criar um aplicativo que permita
38
incluso, seria necessrio adaptar o script para receber dados via formulrio e inclu-los no
banco de dados.
<html>
<head>
<title>Pgina PHP</title>
</head>
<body>
<?php
$link = mysql_connect("127.0.0.1", "root", "")
or die("No foi possvel conectar");
mysql_select_db("teste")
or die("No foi possvel selecionar o banco de dados");
$CodigoDoCliente = "EELTD";
$NomeDaEmpresa = "Editora Europa";
$NomeDoContato = "Rodolfo Melo";
$Cidade = "So Paulo";
?>
</body>
</html>
Figura 54 Cdigo com incluso de um registro em uma tabela do banco de dados
O comando UPDATE altera um registro de uma tabela. No exemplo a seguir, o registro
cujo cdigo EELTD passa a ter o nome Robinson Melgar.
<html>
<head>
<title>Pgina PHP</title>
</head>
<body>
<?php
$link = mysql_connect("127.0.0.1", "root", "")
or die("No foi possvel conectar");
mysql_select_db("teste")
or die("No foi possvel selecionar o banco de dados");
$CodigoDoCliente = "EELTD";
$NomeDoContato = "Robinson Melgar";
39
$consulta = "UPDATE Clientes
SET NomeDoContato = '$NomeDoContato'
WHERE CdigoDoCliente = '$CodigoDoCliente'";
$resultado = mysql_query($consulta)
or die("Falha na execuo da consulta");
?>
</body>
</html>
Figura 55 Cdigo com alterao de dados via comando update
25 Excluso
<html>
<head>
<title>Pgina PHP</title>
</head>
<body>
<?php
$link = mysql_connect("127.0.0.1", "root", "")
or die("No foi possvel conectar");
mysql_select_db("teste")
or die("No foi possvel selecionar o banco de dados");
$CodigoDoCliente = "EELTD";
$resultado = mysql_query($consulta)
or die("Falha na execuo da consulta");
?>
</body>
</html>
Figura 56 Cdigo com remoo de registros
40
Referncias
EDITORA Europa. Curso de PHP. www.com.br, So Paulo, n. 40, set. 2003. CD-ROM.
41