Professional Documents
Culture Documents
Maio, 2007
Programao Internet
Pgina 2 de 33
Programao Internet
4. Pode igualmente ser utilizado o conjunto de etiquetas limitadoras <% e %>. Este
formato bastante familiar do desenvolvimento de programas em ASP (Active
Server Pages).
<%
echo ("Ol mundo!");
%>
exemplo_04.php
3. SEPARAES DE INSTRUES
As instrues em PHP so separadas umas das outras, a semelhana do que ocorre com
outras linguagens de programao semelhantes, utilizando o ponto e vrgula (;).
A etiqueta de fim de cdigo (?>) equivalente ao ; se de seguida no existirem mais
comandos PHP. Assim, o seguinte cdigo:
<?php
echo ("Isto apenas um teste");
?>
exemplo_05.php
equivalente ao seguinte:
<?php echo ("Isto apenas um teste") ?>
exemplo_06.php
4. UTILIZAO DE COMENTRIOS
Na linguagem PHP existem 3 tipos distintos de comentrios. Podem ser do mesmo
estilo usado na linguagem C (/* */), do mesmo estilo da linguagem de programao
C++ (//) e finalmente do mesmo estilo utilizado pela linguagem de programao shell
do Unix (#).
No caso de comentar grandes blocos de cdigo, devem ser utilizados os mesmos
comentrios do que os da linguagem de programao C, usando o /* e */.
<?
/* Este cdigo vai ser utilizado para produzir uma frase no ecr
em que se mostra que o programa apenas funciona como um teste */
echo ("Isto apenas um teste");
?>
exemplo_07.php
Pgina 3 de 33
Programao Internet
5. TIPOS DE DADOS
A linguagem de programao PHP suporta vrios tipos de dados simples. Estes tipos de
dados so os seguintes: nmeros inteiros, nmeros de vrgula flutuante, cadeia de
caracteres (strings), arrays e objectos.
<?php
$var1 = 1234;
$var2 = -123;
# Nmero decimal
# Nmero decimal negativo
$var3 = -1.23;
No PHP, os arrays podem funcionar tanto como arrays associativos (tabelas de hash)
ou arrays indexados, tambm designados normalmente como vectores. As chaves de
um array associativo tm uma funo semelhante aos ndices de um array indexado,
mas com a seguinte diferena:
Pgina 4 de 33
Programao Internet
6. ESTRUTURAS DE CONTROLO
if [ else [ elseif ] ]
A estrutura de controlo if muito importante em qualquer linguagem de programao,
pois permite fazer verificaes de condies e consequentemente s executar alguns
blocos de instrues.
(1) ---------------if (expressao) {
instrucoes;
}
(2) ---------------if (expressao) {
instrucoes;
}
else {
instrucoes;
}
Pgina 5 de 33
Programao Internet
switch
A estrutura de controlo switch permite fazer vrias verificaes que poderiam ser feitas
por N if's encadeados mas assim torna-se muito mais simples.
switch (expressao) {
case valor1:
instrucoes;
[break;]
case valor2:
instrucoes;
[break;]
[default:
instrucoes;]
[EXEMPLO] Desejar um bom dia, com especial ateno para o incio e fim da semana.
<?php
$d = date("D");
switch ($d) {
case "Fri":
case "Mon":
default:
}
?>
exemplo_12.php
while
Este ciclo sem dvida, um dos mais utilizados, talvez pela sua simplicidade. Executa o
bloco de instrues enquanto a expresso for TRUE caso seja FALSE logo de inicio nem
sequer chega a executar as instrues, nesse caso devera ser usado um ciclo dowhile
que iremos ver de seguida.
while (expressao) {
instrucoes;
}
Pgina 6 de 33
Programao Internet
dowhile
O ciclo dowhile similar ao while, com a excepo do teste da expresso, que
efectuada no fim do ciclo e no no incio.
do {
instrucoes
} while (expressao);
for
O ciclo mais complexo em PHP, sendo a sintaxe a seguinte:
for (expressao inicial; expressao condicional; expressao final) {
instrucoes;
}
A expresso inicial executada apenas uma vez (normalmente usada para inicializar
variveis), enquanto que, expresso condicional, analisada a cada ciclo se FALSE o
ciclo termina caso contrrio continua. A expresso final, no final de cada ciclo esta
expresso executada.
Pgina 7 de 33
Programao Internet
continue
Salta o resto das instrues do ciclo actual que o contm e continua a execuo na
expresso condicional.
continue;
require
A expresso require (ou o seu complementar require_once) serve para incluir um
outro ficheiro de cdigo (ficheiros externos) dentro do actual.
require ficheiro-a-introduzir;
include
A expresso include (ou o seu complementar include_once) inclui e avalia um
determinado ficheiro. Isto acontece de cada vez que uma expresso include
encontrada, portanto, pode ser utilizada por exemplo dentro de uma estrutura cclica
para incluir diferentes ficheiros.
include ficheiro-a-introduzir;
Pgina 8 de 33
Programao Internet
7. FUNES
Funes definidas pelo utilizador no so realmente necessrias, pode-se produzir sites
interessantes e teis sem recorrer a funes, apenas com construes bsicas e funes
j existentes no PHP. Se acha que os seus ficheiros em PHP esto a ficar demasiados
grandes, difceis de perceber, e difcil de fazer a gesto, ento, nesse caso podemos
estruturar o nosso algoritmo em funes.
O que uma funo?
Funo uma maneira de pegar num pedao de cdigo dar-lhe um nome e p-lo a parte
e quando quiser pode chama-lo pelo nome, so especialmente teis quando vamos usar
esse pedao de cdigo vrias vezes, no entanto em situaes que s so usadas uma vez
tambm so teis por permite dividir bem o cdigo tornando-o mais legvel.
function nome-da-funcao ($arg1, $arg2, ...) {
instrucoes;
[return $valor;]
}
[EXEMPLO] Funo "soma", que permite somar dois valores enviados por parmetro.
<?php
function soma ($valor1, $valor2) {
return($valor1 + $valor2);
}
$a = 10;
echo soma($a,25);
?>
exemplo_19.php
Pgina 9 de 33
Programao Internet
Retorno de valores
Podem ser retornados valores de funes utilizando a expresso return. Qualquer tipo
de dados pode ser retornado, inclusive listas e objectos.
Argumentos de funes
Informao que pode ser passada para funes atravs de uma lista de argumentos. Esta
lista composta por variveis e/ou constantes, separados por virgulas.
8. FICHEIROS EM PHP
fopen
O comando fopen serve para abrir o ficheiro
fopen (nome-ficheiro, modo-de-abertura)
Descrio
Pgina 10 de 33
Programao Internet
fclose
Aps a utilizao de um ficheiro aberto com o fopen devemos fecha-lo com o fclose.
fclose (apontador-para-ficheiro)
fread
Realiza uma leitura binria do ficheiro aberto com o fopen, lendo quantos bytes forem
introduzidos, ou ento at ao final do ficheiro (EOF).
fread (apontador-para-ficheiro, numero-de-bytes)
9. FORMULRIOS
Uma das funcionalidades mais importantes do PHP a possibilidade de interaco com
o HTML. Uma das formas mais bsicas desta interaco atravs da utilizao de
formulrios em HTML.
Estes formulrios em HTML permitem que os utilizadores introduzam valores para
campos que lhes so apresentados e que podem ser posteriormente tratados para
processamento. Por forma a processar os valores introduzidos por um utilizador num
formulrio de HTML necessrio um programa ou script.
form
<form name="nome-do-formulario" action="ficheiro-para-processamento"
method="mtodo-de-envio" enctype="tipo-formulrio">
</form>
Propriedade
name
action
method
Descrio
Programao Internet
enctype
<?php
if (isset($_POST['SUBMETER'])){
echo "Primeiro nome = " . $_POST['primeiro_nome'] . "<br />";
echo "ltimo nome = " . $_POST['ultimo_nome'] . "<br />";
}
?>
processar.php
Elemento
<form>
Descrio
<select>
Programao Internet
[EXEMPLO] Para realizar testes ao PHP e ao MYSQL, ao mesmo tempo para analisar o
MySQL
O servidor MySQL um SGBD onde armazenado todo um conjunto de informao
estruturada. Pode conter qualquer tipo de informao, desde uma lista de produtos de
um site comercial at grandes blocos de informao de um grande grupo empresarial.
Para adicionar, aceder ou processar a informao armazenada num computador
necessrio um sistema de controlo e gesto que funcione independentemente ou como
parte de outras aplicaes (por exemplo aplicaes em PHP).
Pgina 13 de 33
Programao Internet
PhpMyAdmin
O PhpMyAdmin uma ferramenta de administrao do MySQL e que, tal como o
prprio nome indica, foi totalmente desenvolvido em PHP para que possa funcionar
independentemente da plataforma em que se encontre o servidor web. Atravs do
PhpMyAdmin, podemos:
mysql_connect
Estabelece a conexo ao servidor MySQL. Esta funo retorna um valor inteiro, que o
identificador da conexo estabelecida e dever ser armazenado numa varivel para ser
utilizado depois.
mysql_connect (hostname, login, password)
mysql_close
Fecha a conexo MySQL.
mysql_close ([conexo])
Pgina 14 de 33
Programao Internet
mysql_select_db
Depois de conectado ao servidor (mysql_connect), ser necessrio definir qual a base
de dados que existe no servidor e a qual nos pretendemos ligar. O valor de retorno
zero (0) se o comando falhar e um (1) no caso de sucesso.
mysql_select_db (nome-da-base-de-dados, conexo)
mysql_query
Aps estabelecida a conexo e seleccionada a base de dados, praticamente toda a
interaco com o servidor MySQL pode ser realizada atravs de consultas escritas em
SQL. O valor de retorno zero (0) se o comando falhar e um (1) no caso de sucesso.
O sucesso, apenas nos permite perceber que a sintaxe utilizada no comando SQL foi
executada no servidor, e nenhuma informao sobre o resultado da consulta retornada
deste comando.
mysql_query (consulta, [conexo])
[EXEMPLO] Criar uma base de dados, no servidor web, atravs de scripts em PHP
(database.php).
<?php
$connection = mysql_connect ("localhost", "root", "root");
$query = "CREATE DATABASE 'exemploDB'";
mysql_query ($query, $connection);
mysql_close ($connection);
?>
database.php
[EXEMPLO] Criar uma tabela, dentro de uma base de dados no servidor web, atravs de
scripts em PHP (table.php).
<?php
$connection = mysql_connect ("localhost", "root", "root");
$select_db = mysql_select_db ("exemploDB", $connection);
$query = "CREATE TABLE 'exemplo' (
'codigo' INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
'nome' VARCHAR(40),
'email' VARCHAR(50) )";
mysql_query ($query, $connection);
mysql_close ($connection);
?>
table.php
Pgina 15 de 33
Programao Internet
($query1,
($query2,
($query3,
($query4,
$connection);
$connection);
$connection);
$connection);
mysql_close ($connection);
?>
insert.php
=
=
=
=
"localhost";
"root";
"root";
"exemploDB";
#
#
#
#
nome do servidor
nome do utilizador
password
nome da base de dados
Pela mesma ordem de ideias, devemos criar um ficheiro de include para fechar a
conexo base de dados, utilizando-o nas nossas pginas quando j no necessitamos
de realizar consultas base de dados.
<?php
mysql_close ($connection);
?>
# fechar conexo
close.inc
Pgina 16 de 33
Programao Internet
mysql_free_result
No final, devemos libertar o resultado das nossas consultas.
mysql_free_result (resultado)
mysql_num_rows
Retorna o nmero de linhas de um SQL SELECT.
mysql_num_rows (resultado)
Pgina 17 de 33
Programao Internet
mysql_free_result ($result);
// fechar a ligao base de dados
include ("close.inc");
?>
pesquisa_02.php
mysql_fetch_array
Obtm uma linha como uma matriz associativa, uma matriz numrica, ou ambas.
Retorna uma matriz que corresponde a linha obtida e move o ponteiro interno dos dados
para a linha seguinte.
mysql_fetch_array (resultado)
Pgina 18 de 33
Programao Internet
=
=
=
=
"localhost";
"root";
"root";
"exemploDB";
#
#
#
#
nome do servidor
nome do utilizador
password
nome da base de dados
close.inc ficheiro com a instruo de fecho de conexo base de dados. Sempre que
necessrio, ser includo, atravs do comando include, nos ficheiros com scripts para
acesso base de dados.
<?php
mysql_close ($connection);
?>
# fechar conexo
close.inc
Na imagem que se segue, podemos ver uma apresentao deste ficheiro (index.php).
Pgina 19 de 33
Programao Internet
index.php
<?php
// estabelecer a ligao base de dados
include ("connection.inc");
$query = "SELECT * FROM exemplo";
$result = mysql_query ($query, $connection);
?>
<html>
<head>
<title>MANUTENO DA TABELA</title>
</head>
<body>
<p><strong>MANUTENO DA TABELA</strong><br />
<a href="inserir.htm">inserir dados</a>
<form id="frmPesquisa" name="frmPesquisa" method="post"
action="pesquisar.php">
<input name="pesquisa" type="text" id="pesquisa" />
<input type="submit" name="Submit" value="pesquisar" />
</form>
<p>Foram encontrado(s) <?=mysql_num_rows ($result)?> registo(s).
<hr /></p>
<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="80"><strong>CDIGO</strong></td>
<td><strong>NOME</strong></td>
<td><strong>EMAIL</strong></td>
<td width="80"><strong>EDITAR</strong></td>
<td width="80"><strong>ELIMINAR</strong></td>
</tr>
<?php while ($row = mysql_fetch_array ($result)) { ?>
<tr>
<td><?=$row ["codigo"]?></td>
<td><?=$row ["nome"]?></td>
<td><?=$row ["email"]?></td>
<td><a href="editar.php?codigo=<?=$row ["codigo"]?>">editar</a></td>
<td><a href="eliminar.php?codigo=<?=$row ["codigo"]?>">eliminar</a></td>
</tr>
<?php } ?>
</table>
Pgina 20 de 33
Programao Internet
</body>
</html>
<?php
// fechar a ligao base de dados
include ("close.inc");
?>
index.php
vamos poder inserir o nome e e-mail do contacto, para que este fique a constar na base
de dados. Este formulrio vai chamar o ficheiro inserir.php que vai ser responsvel
por gravar os dados introduzidos na base de dados.
Na imagem que se segue, podemos ver uma apresentao deste ficheiro (inserir.htm).
inserir.htm
<html>
<head>
<title>INSERIR</title>
</head>
<body>
<p><strong>MANUTENO DA TABELA</strong><br />
inserir dados | <a href="index.php">cancelar insero</a>
<p> <hr /></p>
<form name="frmInserir" method="post" action="inserir.php">
<table width="600" border="0" cellspacing="2" cellpadding="2">
<tr>
<td width="60"><strong>nome</strong></td>
<td><input name="nome" type="text" size="70" maxlength="40" /></td>
</tr>
<tr>
<td><strong>email</strong></td>
<td><input name="email" type="text" size="70" maxlength="50" /></td>
</tr>
<tr>
<td> </td>
<td><input name="inserir" type="submit" value="inserir" />
<input name="limpar" type="reset" value="limpar" /></td>
</tr>
Pgina 21 de 33
Programao Internet
</table>
</form>
</body>
</html>
inserir.htm
inserir.php trata-se de uma pgina web, com uma estrutura muito idntica ao
eliminar.php, que vai ser responsvel por inserir na base de dados os dados enviados
do formulrio (inserir.htm) atravs do mtodo POST.
<?php
// estabelecer a ligao base de dados
include ("connection.inc");
$query = "INSERT INTO exemplo (nome, email)
VALUES ('$_POST[nome]', '$_POST[email]')";
$result = mysql_query ($query, $connection);
// fechar a ligao base de dados
include ("close.inc");
// redireccionar para a pgina principal
header("location: index.php");
?>
inserir.php
pesquisar.php trata-se de uma pgina web, com uma estrutura muito idntica ao
index.php, que vai apresentar apenas os contactos em que o nome e/ou e-mail
pesquisar.php
Pgina 22 de 33
Programao Internet
<?php
// estabelecer a ligao base de dados
include ("connection.inc");
$query = "SELECT * FROM exemplo WHERE nome LIKE '%$_POST[pesquisa]%'
OR email LIKE '%$_POST[pesquisa]%'";
$result = mysql_query ($query, $connection);
?>
<html>
<head>
<title>PESQUISA</title>
</head>
<body>
<p><strong>MANUTENO DA TABELA</strong><br />
<a href="index.php">pgina principal</a>
<form name="frmPesquisa" method="post" action="pesquisar.php">
<input name="pesquisa" type="text" value="<?=$_POST[pesquisa]?>" />
<input type="submit" name="Submit" value="pesquisar" />
</form>
<p>Foram encontrado(s) <?=mysql_num_rows ($result)?> registo(s).<hr /></p>
<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="80"><strong>CDIGO</strong></td>
<td><strong>NOME</strong></td>
<td><strong>EMAIL</strong></td>
<td width="80"><strong>EDITAR</strong></td>
<td width="80"><strong>ELIMINAR</strong></td>
</tr>
<?php while ($row = mysql_fetch_array ($result)) { ?>
<tr>
<td><?=$row ["codigo"]?></td>
<td><?=$row ["nome"]?></td>
<td><?=$row ["email"]?></td>
<td><a href="editar.php?codigo=<?=$row ["codigo"]?>">editar</a></td>
<td><a href="eliminar.php?codigo=<?=$row ["codigo"]?>">eliminar</a></td>
</tr>
<?php } ?>
</table>
</body>
</html>
<?php
// fechar a ligao base de dados
include ("close.inc");
?>
pesquisar.php
base de dados, para o nome e e-mail do contacto a editar e vai permitir efectuar as
alteraes desejadas. Este formulrio vai chamar o ficheiro gravar.php que vai ser
responsvel por gravar os dados introduzidos na base de dados.
<?php
// estabelecer a ligao base de dados
include ("connection.inc");
$query = "SELECT * FROM exemplo WHERE codigo=$_GET[codigo]";
$result = mysql_query ($query, $connection);
Pgina 23 de 33
Programao Internet
editar.php
gravar.php trata-se de uma pgina web, com uma estrutura muito idntica ao
eliminar.php, que vai ser responsvel por alterar na base de dados os dados enviados
do formulrio (editar.php) atravs do mtodo POST.
<?php
// estabelecer a ligao base de dados
include ("connection.inc");
$query = "UPDATE exemplo SET nome = '$_POST[nome]',
email = '$_POST[email]' WHERE codigo = $_POST[codigo]";
$result = mysql_query ($query, $connection);
// fechar a ligao base de dados
include ("close.inc");
// redireccionar para a pgina principal
header("location: index.php");
?>
gravar.php
Pgina 24 de 33
Programao Internet
eliminar.php trata-se de uma pgina web, com uma estrutura muito idntica ao
inserir.php, que vai ser responsvel por eliminar o contacto cujo cdigo enviado no
eliminar.php
11. SESSES
A nova verso de PHP possui desde logo o suporte nativo para a gesto de sesses de
utilizadores. Esta tem vindo a ser uma das caractersticas mais reclamadas pelos
programadores que clamavam por uma forma simples e eficaz de gerir utilizadores.
A criao de sesses permite que o programador possa acompanhar e analisar todas as
aces de um determinado utilizador durante um determinado perodo de tempo
enquanto estiver no website.
Por forma a que seja associada informao de sesso com um utilizador especfico,
necessrio um identificador nico de sesso (tipicamente um numero nico). este
identificador de sesso que permitir a associao de um utilizador s suas variveis de
sesso e o seu acesso atravs do PHP.
Uma das principais utilidades das sesses que o protocolo HTTP HyperText
Transfer Protocol no possui um mecanismo que permita manter um estado. O
problema que no possvel preservar dados do cliente entre dois pedidos diferentes
(pelo menos no fcil de o fazer), e principalmente o servidor web no consegue
aperceber de que os pedidos podem ser originrios de utilizadores diferentes.
A utilizao de sesses extremamente importante principalmente no comrcio
electrnico do tipo business-to-consumer, nas lojas virtuais. Por exemplo, determinado
utilizador dirige-se a uma loja, efectua o login da sua conta pessoal, escolhe os artigos
que deseja comprar, adiciona-os ao seu carrinho de compras, introduz a sua morada e o
mtodo de pagamento e confirma e expede a sua encomenda e depois sai do web
browser. Este processo completo, desde que entrou na loja at que saiu do seu web
browser, corresponde a uma sesso e todos os dados correspondentes ao utilizador so
partilhados como variveis de sesso.
Pgina 25 de 33
Programao Internet
Pgina 26 de 33
Programao Internet
Pgina 27 de 33
Programao Internet
ANEXOS
a) REFERNCIA DE HTML 4.01
Pgina 28 de 33
Programao Internet
Descrio
<!--...-->
<!DOCTYPE>
<a>
<abbr>
<acronym>
Insere um acrnimo
<address>
<applet>
<area>
<b>
<base>
<basefont>
<bdo>
<big>
<blockquote>
<body>
<br>
<button>
<caption>
<center>
<cite>
<code>
<col>
<colgroup>
<dd>
<del>
Pgina 29 de 33
Programao Internet
<dir>
<dfn>
<div>
<dl>
<dt>
<em>
<fieldset>
<font>
<form>
Insere um formulrio
<frame>
<frameset>
<h1> a <h6>
<head>
<hr>
<html>
<i>
<iframe>
<img>
<input>
<ins>
<isindex>
<kbd>
<label>
<legend>
<li>
Pgina 30 de 33
Programao Internet
<link>
<map>
<menu>
<meta>
<noframes>
<noscript>
<object>
<ol>
<optgroup>
<option>
<p>
Insere um pargrafo
<param>
<pre>
<q>
<s>
<samp>
<script>
Insere um script
<select>
<small>
<span>
<strike>
<strong>
<style>
<sub>
<sup>
<table>
Pgina 31 de 33
Programao Internet
<tbody>
<td>
<textarea>
<tfoot>
<th>
<thead>
<title>
<tr>
<tt>
<u>
<ul>
<var>
Pgina 32 de 33
Programao Internet
REFERNCIAS BIBLIOGRFICAS
Serro, C. e Marques, J., Programao com o PHP 4, FCA, 2001.
Soares, W., Conceitos, PHP5 - Programao e Integrao com Banco de Dados,
RICA, 2006.
http://www.w3c.org
http://pt.wikipedia.org
http://www.artifice.web.pt/tutoriais/cntd/tut_html1.html
Pgina 33 de 33