Académique Documents
Professionnel Documents
Culture Documents
APACHE, PHP e
MySQL
SUMRIO
1. INTRODUO .......................................................................................................... 4
2. EXEMPLO DE SCRIPT............................................................................................ 5
3. CONFIGURAO (PHP.INI) .................................................................................. 8
4. SINTAXE BSICA .................................................................................................... 9
5. VARIVEIS.............................................................................................................. 10
6. TIPOS DE DADOS................................................................................................... 11
7. CONSTANTES ......................................................................................................... 13
8. FUNES ................................................................................................................. 14
9. EXPRESSES .......................................................................................................... 15
10. OPERADORES ...................................................................................................... 16
OPERADORES LGICOS........................................................................................ 19
11. ESTRUTURAS DE CONTROLE......................................................................... 20
12. FORMULRIOS.................................................................................................... 23
MANIPULANDO DADOS DE FORMULRIOS COM PHP ................................. 25
INTRODUO.......................................................................................................... 25
CAMPOS HIDDEN ................................................................................................... 26
CAMPOS TEXT E TEXTAREA ............................................................................... 26
CAMPOS RADIO ...................................................................................................... 27
CAMPOS CHECKBOX............................................................................................. 27
CAMPOS SELECT .................................................................................................... 28
13. CLASSES E OBJETOS ......................................................................................... 29
14. REFERNCIAS ..................................................................................................... 31
15. MATRIZES............................................................................................................. 32
16. INCLUSO DE ARQUIVOS ................................................................................ 33
17. COOKIES ............................................................................................................... 34
18. PARMETROS...................................................................................................... 35
19. UPLOADS ............................................................................................................... 36
20. ENVIO DE E-MAILS ............................................................................................ 37
PHP E MYSQL .......................................................................................................... 38
21. INTRODUO AO MYSQL................................................................................ 38
22. EXIBIO .............................................................................................................. 39
23. CONSULTA E ORDENAO ............................................................................. 40
24. INCLUSO E ATUALIZAO .......................................................................... 41
25. EXCLUSO ............................................................................................................ 42
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 PHP Editor disponvel em http://www.baixaki.com.br/download/phpeditor.htm).
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. Ou ento
pode-se criar uma estrutura especfica para armazenar os arquivos, como por exemplo,
uma partio diferente da onde o sistema operacional est instalado (d:/). Veja as
modificaes essenciais para que isso ocorra na figura abaixo.
...
# If your host doesn't
address here.
#
ServerName localhost:80
have
registered
DNS
name,
enter
its
IP
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory,
but
# symbolic links and aliases may be used to point to other locations.
#
#DocumentRoot "C:/Program Files (x86)/EasyPHP5.3.0/www"
DocumentRoot "D:backup_ce/arquivos/Softwares/Php/Teste_PHP"
#
# Each directory to which Apache has access can be configured with
respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
...
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 (ou pasta que voc
escolher para armazenar os cdigos).
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php echo "<p>Al Mundo</p>"; ?>
</body>
</html>
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 dados de formulrios, gerar pginas com contedo dinmico ou enviar e
receber cookies. Mas o PHP pode fazer muito mais.
Esses so os maiores campos onde os scripts PHP podem se utilizados:
Script
campo de atuao do PHP. Voc precisa de trs coisas para seu trabalho. O
interpretador do PHP (como CGI ou mdulo), um servidor web e um browser.
Basta rodar o servidor web conectado a um PHP instalado. Voc pode acessar os
resultados de seu programa PHP com um browser, visualizando a pgina PHP
atravs do servidor web.
Script
Ingres
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)
As configuraes do PHP ficam armazenadas em um arquivo denominado
php.ini e que carregado cada vez que o servidor iniciado. No Windows, ele fica na
pasta c:\Windows.
Exemplo:
[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.inirecommended
; 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.
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
...
?>
10
?>
</body>
</html>
do
else
elseif
extends
false
for
foreach
function
global
if
include
list
new
not
or
require
return
static
switch
this
true
var
virtual
xor
while
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";
?>
11
</body>
</html>
12
13
<body>
<?php
$preco = 11.90;
$soma = $preco * 4;
echo "Quatro revistas W custam R$ $soma<br>";
?>
</body>
</html>
14
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
define("CONSTANTE", "Al mundo.");
echo CONSTANTE;
?>
</body>
</html>
M_PI.
O comando
return
tem a capacidade de
15
9. 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
16
$b = ($a = 5);
echo "O valor de 'b' $b";
?>
</body>
</html>
vazio
17
18
19
}
echo "<br>";
$x = 5;
$resultado = ($x <= 8);
if($resultado == 1)
{
echo "verdadeiro";
}
else
{
echo "falso";
}
?>
</body>
</html>
20
}
echo "<br>";
$x = 6;
$y = 3;
$resultado = (!($x == $y));
if($resultado == 1)
{
echo "verdadeiro";
}
else
{
echo "falso";
}
echo "<br>";
$x = 6;
$y = 3;
$resultado = ($x == 6 xor $y == 2);
if($resultado == 1)
{
echo "verdadeiro";
}
else
{
echo "falso";
}
?>
</body>
</html>
21
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$x = 5;
if ($x > 10)
{
echo("O valor da varivel maior que 10.");
}
?>
</body>
</html>
22
?>
</body>
</html>
23
12. FORMULRIOS
Muito importante consultar a URL: http://penta.ufrgs.br/edu/forms/tut1.html
para acompanhamento do contedo de formulrios com exerccios fornecidos pelo autor
do site.
Os valores enviados atravs de um formulrio podem ser recuperados pela
varivel predefinida $_POST. Atravs dela possvel obter os dados que foram
enviados atravs do mtodo POST do HTML, bastando indicar o nome do campo do
formulrio. No comando action do formulrio, deve-se indicar a pgina PHP que ir
24
25
</form>
</body>
</html>
INTRODUO
Um formulrio HTML apenas um "rosto bonito" para onde os usurios
podero inserir informaes que sero interpretados de alguma maneira por algum script
do lado do servidor. E no nosso caso, esse script um script PHP.
Primeiro: antes para poder enviar as informaes, seu formulrio deve conter um
boto "submit", isso se consegue atravs do comando:
<input type=submit value="Texto do Boto">
Segundo: todos os campos que sero tratados no script PHP devem conter o
parmetro "NAME", caso contrrio, os dados no sero passados para o script PHP. Ex:
<input type=text name=nome_do_campo>
26
Existem dois mtodos como as informaes podem ser passadas: GET e POST.
O recomendvel, sempre para todos os formulrios, usar o mtodo POST, onde os
dados enviados no so visveis nas URLs, ocultando possveis importantes
informaes e permitindo o envio de longas informaes. O GET totalmente o
contrrio disso.
Como as informaes chegam para o script PHP?
Assuma o seguinte formulrio:
<form action="script.php" method="post">
Campo 1: <input type=text name=campo1><br>
Campo 2: <input type=text name=campo2><br>
<input type=submit value="OK">
</form>
Esse formulrio usa o mtodo POST para envio das informaes, ento em
"script.php":
<?php
echo "O valor de CAMPO 1 : " . $_POST["campo1"];
echo "<br>O valor de CAMPO 2 : " . $_POST["campo2"];
?>
CAMPOS HIDDEN
Os campos hidden so usados para passar informaes que no podem ser
alteradas pelo usurio que estar inserindo informaes no formulrio. Por exemplo:
voc tem um site com sistema de login e o usurio quer alterar as informaes de login
dele. O script que ir manipular esse formulrio precisa saber o ID do usurio para
poder alterar as informaes no banco de dados, ento esse ID um campo hidden.
Cdigos Exemplos:
hidden.html
<form action="hidden.php" method="post">
<input type=hidden name=escondido value="valor do escondido">
<input type=hidden name=id value="111">
<input type=submit>
</form>
hidden.php
<?php
echo "Campo Hidden: " . $_POST["escondido"];
echo "<br>Oi, seu ID : " . $_POST["id"];
?>
27
texts.php
<?php
echo "Ol " . $_POST["nome"] . " (email:
")<br><br>";
echo "Sua mensagem: " . $_POST["mensagem"];
?>
"
$_POST["email"]
CAMPOS RADIO
Campos Radio permitem um relacionamento de um para muitos entre
identificador e valor, ou seja, eles tm mltiplos possveis valores, mas somente um
pode ser pr-exibido ou selecionado. Por exemplo: voc tem um sistema de "quiz".
Cada pergunta possui cinco possveis respostas. Cada resposta um radio, onde os
cinco radios dessa pergunta possuem o mesmo identificador, mas cada com valores
diferentes. Cdigos Exemplos:
radio.html
<form action="radio.php" method="post">
<B>Qual seu sistema operacional?</B><br>
<input type=radio name=sistema value="Windows Seven"> Win 7
<input type=radio name=sistema value="Windows XP"> Win XP
<input type=radio name=sistema value="Linux"> Linux
<input type=radio name=sistema value="Mac"> Mac
<br><br>
<B>Qual a marca de seu monitor?</B><br>
<input type=radio name=monitor value="Samsung"> Samsung
<input type=radio name=monitor value="LG"> LG
<input type=radio name=monitor value="Desconhecido"> Desconhecido
<br><br>
<input type=submit>
</form>
radio.php
<?php
echo "Seu sistema operacional : " . $_POST["sistema"];
echo "<br>Seu monitor : " . $_POST["monitor"];
?>
CAMPOS CHECKBOX
28
checkbox.php
<?php
// Verifica se usurio escolheu algum nmero
if(isset($_POST["numeros"]))
{
echo "Os nmeros de sua preferncia so:<BR>";
// Faz loop pelo array dos numeros
foreach($_POST["numeros"] as $numero)
{
echo "- " . $numero . "<BR>";
}
}
else
{
echo "Voc no escolheu nmero preferido!<br>";
}
// Verifica se usurio quer receber newsletter
if(isset($_POST["news"]))
{
echo "Voc deseja receber as novidades por email!";
}
else
{
echo "Voc no quer receber novidades por email...";
}
?>
CAMPOS SELECT
29
Os campos select permitem tratar uma variedade de opes, onde o usurio pode
selecionar apenas uma opo ou mltiplas opes. Quando voc permite mltiplas
selees, deve adicionar "[]" no final do nome, para o PHP interpretar como array.
Nos exemplos, pode ser visto o funcionamento e tratamento. Cdigos exemplos:
select.html
<form action="select.php" method="post">
<B>Qual seu processador?</B><br>
<select name=processador>
<option value=Pentium>Pentium</option>
<option value=AMD>AMD</option>
<option value=Celeron>Celeron</option>
</select><BR><BR>
<B>Livros que deseja comprar?</B><br>
Obs: segure "CTRL" para selecionar mais de um.<BR>
<select name="livros[]" multiple>
<option value="Biblia do PHP 4">Biblia do PHP 4</option>
<option value="PHP Professional">PHP Professional</option>
<option value="Iniciando em PHP">Iniciando em PHP</option>
<option value="Novidades do PHP 5">Novidades do PHP 5</option>
<option value="Biblia do MySQL">Biblia do MySQL</option>
</select><BR><BR>
<input type=submit>
</form>
select.php
<?php
echo "Seu processador : " . $_POST["processador"] . "<BR>";
// Verifica se usurio escolheu algum livro
if(isset($_POST["livros"]))
{
echo "O(s) livro(s) que voc deseja comprar:<br>";
// Faz loop para os livros
foreach($_POST["livros"] as $livro)
{
echo "- " . $livro . "<br>";
}
}
else
{
echo "Voc no escolheu nenhum livro!";
}
?>
30
31
?>
</body>
</html>
$a
$b
$a
est apontando
para $b ou vice versa, mas sim que $a e $b apontam para o mesmo lugar.
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$a =& $b;
$b = 100;
echo $a;
?>
</body>
</html>
32
<title>Teste PHP</title>
</head>
<body>
<?php
$a =& $b;
$b = 100;
unset($b);
$b = 200;
echo $a;
?>
</body>
</html>
33
</head>
<body>
<?php
$siglas = array("SP" => "So Paulo",
"RJ" => "Rio de Janeiro",
"MG" => "Minas Gerais");
echo $siglas["SP"];
?>
</body>
</html>
include
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
$meses = array(1 => "Janeiro",
2 => "Fevereiro",
3 => "Maro",
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"];
echo "Ol. Hoje dia $dia de $nomeMes de $ano."
?>
</body>
</html>
34
?>
</body>
</html>
35
Figura 46 Cdigo que cria um cookie com o nome do usurio que dura uma hora
18. PARMETROS
O uso de parmetros facilita a programao porque permite a passagem de dados
entre o browser e o script ou entre scripts. A passagem de parmetros entre o browser e
o script feita dentro da URL, por exemplo, e manipulada pela funo $_GET.
Nesse exemplo, a seguir, cada um dos links envia um valor diferente para a
pgina que aberta (teste.php). Para enviar um parmetro, a sintaxe inclui um sinal de
interrogao, o nome da varivel, um sinal de igual e o valor da varivel.
<html>
<head>
<title>Pgina PHP</title>
</head>
<body>
<?php
if (isset($_GET["valor"]))
{
$valor = $_GET["valor"];
echo "Voc clicou no link $valor <p>";
}
36
else
{
echo "Clique em um dos links abaixo:<p>";
}
?>
<a href="teste.php?valor=1">link 1</a><br>
<a href="teste.php?valor=2">link 2</a><br>
<a href="teste.php?valor=3">link 3</a><br>
<a href="teste.php?valor=4">link 4</a><br>
<a href="teste.php?valor=5">link 5</a><br>
</body>
</html>
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
37
<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.";
}
else
{
print "Erro. O arquivo no foi enviado.";
}
}
?>
<form enctype="multipart/form-data" action="teste.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30000">
Enviar este arquivo: <input name="arquivo" type="file">
<input type="submit" value="Envia Arquivo">
</form>
</body>
</html>
38
39
40
41
ORDER BY NomeDoContato";
$resultado = mysql_query($consulta)
or die("Falha na execuo da consulta");
while ($linha = mysql_fetch_assoc($resultado))
{
$NomeDaEmpresa = $linha["NomeDaEmpresa"];
$NomeDoContato = $linha["NomeDoContato"];
echo "<b>Nome da empresa:</b> $NomeDaEmpresa<br>";
echo "<b>Nome do contato:</b> $NomeDoContato<p>";
}
?>
</body>
</html>
42
<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";
$consulta = "UPDATE Clientes
SET NomeDoContato = '$NomeDoContato'
WHERE CdigoDoCliente = '$CodigoDoCliente'";
$resultado = mysql_query($consulta)
or die("Falha na execuo da consulta");
echo "Dados alterados com sucesso";
?>
</body>
</html>
43
26. REFERNCIAS
BAKKEN,
S.
S.
et
al.
PHP
Manual.
Disponvel
<http://br.php.net/get/php_manual_pt_BR.chm/from/this/mirror>.
em:
Acesso