0% acharam este documento útil (0 voto)
24 visualizações65 páginas

slidesPHP-v1

O documento é uma introdução à programação web utilizando PHP, abordando conceitos como formulários, linguagens de scripting e acesso a bases de dados. Ele descreve como os formulários permitem a interação do usuário e como o PHP processa esses dados para gerar páginas dinâmicas. Além disso, discute a manutenção do estado das aplicações através de cookies e sessões.

Enviado por

quantikka
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
24 visualizações65 páginas

slidesPHP-v1

O documento é uma introdução à programação web utilizando PHP, abordando conceitos como formulários, linguagens de scripting e acesso a bases de dados. Ele descreve como os formulários permitem a interação do usuário e como o PHP processa esses dados para gerar páginas dinâmicas. Além disso, discute a manutenção do estado das aplicações através de cookies e sessões.

Enviado por

quantikka
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 65

MIEEC | SIEM | ano letivo 2014/15

Introdução à linguagem PHP

José A. Faria ([email protected])


FEUP, DEGI
Setembro 2014
Introdução à programação WEB

• Numa primeira fase da WEB, não era possível efetuar


qualquer tipo de processamento, como por exemplo
aceder a bases de dados, através de páginas HTML.

• Então, apenas existiam ficheiros estáticos na WEB


armazenados em servidores.
Introdução à programação WEB

• Posteriormente, foram adicionados elementos que


permitem:
1. recolher dados introduzidos pelo utilizador,
2. processar esses dados e
3. gerar respostas que, por sua vez são enviadas aos
utilizadores,

• Desta forma, tornou-se possível desenvolver verdadeiras


aplicações na web.
Introdução à programação WEB

De seguida, serão apresentados:

• os formulários através dos quais o utilizador introduz os


dados

• as linguagens de programação para o processamento


desses dados e geração dinâmica das páginas de
resposta aos utilizadores.
Formulários

• Um formulário (Form) é uma área da janela de interface


com o utilizador que contém campos de formulário
(FormFields).

• FormFields são objetos que permitem ao utilizador


introduzir informação.

• São exemplos de FormFields os campos de texto, os


menus descendentes e os botões de rádio.
Formulários

Tipicamente, quando o utilizador prime o botão Submit


de um dado formulário:

• o conteúdo dos vários campos desse formulário é


passado a um programa executado no servidor,

• esse programa processa os dados e gera uma


resposta a devolver ao utilizador.
Exemplos de FormFields

• Text field • Drop-down menu


• Password field • Submit button
• Hidden field • Reset button
• Text area • Image button
• Check box
• Radio button
Formulários

• Os formulários são delimitados pelas marcas <form> e


</form>.

• Entre estas marcas podem ser colocadas quaisquer


marcas HTML, o que significa que dentro de um
formulário, além dos FormFields, pode ser incluído texto,
figuras, links, ...
Formulários

As propriedades action e method da marca form indicam para


onde é enviado o conteúdo dos FormFields:

action = address
method = post or method = get

• address especifica o script que vai ser executado após o


botão Submit ter sido premido;

• method especifica o mecanismo segundo o qual os dados


introduzidos do formulário serão passados a esse script.
TextFields e PasswordFields

• Os Text fields são campos com uma linha nas quais o


utilizador pode introduzir texto.

ver exemplo formulario.html

Exemplo

<input type = "text" name="nome-user" value="escreva aqui


o seu nome" size = 30></input><p>
PasswordFields

• Os Password fields são semelhantes aos text fields,


residindo a diferença no facto de ser apresentado o
caracter * no lugar do texto introduzido pelo utilizador.

ver exemplo formulario.html

Exemplo

<input type="password" name="pass" size =10></input><p>


TextAreas

• Se se pretender um campo com mais do que uma


linha, terá de utilizada uma Text Area.

ver exemplo formulario.html


CheckBoxes e RadioButtons

• Os RadioButtons são utilizados quando se pretende


que o utilizador apenas possa escolher uma entre várias
alternativas.

ver exemplo formulario.html

• As Check boxes são utilizadas quando o utilizador pode


escolher mais do que uma das alternativas.
MenusDropDown

• Dependendo do valor das suas propriedades, os


menús drop-down podem servir como alternativa aos
radio buttons (apenas uma seleção), ou às check boxes
(seleção múltipla).

ver exemplo formulario.html


MenusDropDown

Exemplo

<Select name="Maquina">
<Option value=T1>Torno</Option><p>
<Option value=F1>Frezadora</Option><p>
<Option value=I1>Injeccao</Option><p>
<Option value=J1>Jito</Option><p>
</Select><p>
SubmitButton

• A actuação do botão submit de um formulário provoca o


envio do conteúdo dos campos desse formulário para o
programa cujo endereço foi especificado através da
propriedade action da marca <form>.

Exemplo

<input type = "submit" name="cmdsubmit“


value="OK"></input>
ResetButton

• Quando o botão reset é premido, o conteúdo dos


campos do formulário é reinicializado.

Exemplo

<input type="reset" name="cmdreset“


value="Limpar"></input><p>
Páginas dinâmicas

• A primeira solução para gerar dinamicamente páginas


HTML consistiu na especificação de uma interface,
designada por CGI - Common Gateway Interface,
através da qual o servidor WEB podia invocar
programas externos, normalmente em C.
CGI - Common Gateway Interface

Numa solução baseada em CGI:

• o servidor web passa a esses programas os dados


introduzidos pelo utilizador como parâmetros de entrada,

• esses programas geram dinamicamente as páginas HTML


a enviar ao cliente, o que pode envolver consultas a bases
de dados.
CGI - Common Gateway Interface

• As aplicações baseadas em CGI são relativamente pouco


eficiente pois, sendo as páginas dinâmicas geradas por
programas externos ao servidor WEB, é necessário
lançar um novo processo sempre que tem de ser gerada
uma nova página.

• Para ultrapassar esta limitação, surgiram as linguagens


de scripting.
Linguagens de scripting

Através destas linguagens, é possível incluir nos documentos


HTML código que é executado diretamente pelo servidor ou
pelo cliente, tornando:

• o desenvolvimento das aplicações mais simples;


• a sua execução mais eficiente.
Linguagens de scripting

• Os “scripts” são programas executáveis constituídos por


comandos interpretados.

• Os scripts executados no cliente (browser) são


designados por client side scripts.

• Os scripts executados no servidor são designados por


server side scripts.
Linguagens de scripting

• O JavaScript é uma linguagem de scripting client side.

• O PHP – personal home page tools é uma linguagem


de scripting server side.

• O VBscript é uma linguagem de scripting que pode ser


utilizada tanto em client side como em server side
scripts.
Linguagens de scripting

• Os comandos de script são inseridos nas páginas web


através das marcas das marcas <script ... /script> ou,
no caso do PHP, pelas marcas <?php ... ?>

Nota: No caso do servidor web onde é executada a página não


conhecer a linguagem de scripting, tudo o que está entre as
marcas que delimitam o script é ignorado pelo servidor.
Server side scripts

Numa página contendo server side scripts:

• o código HTML fora das marcas <script ... /script> ou


<?php ... ?> é enviado diretamente para o cliente,

• por seu lado, os comandos do script são executados e o


output gerado é acrescentado ao código a enviar ao
cliente.
Server side scripts

• Desta forma, os documentos recebidos pelos clientes


apenas contém código HTML.

• Portanto, podem ser visualizados em qualquer browser,


independentemente da linguagem de scripting utilizada.
Primeiro exemplo de server side script

<html>
<body>
Esta é uma linha editada diretamente em html<p>
<?php
echo "esta linha e as duas seguintes são
geradas pelo script php <p>";
$a = 10;
$b = 15;
echo “soma = “. $a + $b;
echo "a data de hoje é:". date()." <p>";
?>
Esta linha é editada diretamente em html<p>
</body>
</html>
ver exemplo php-e-html.php
Introdução à linguagem PHP
Linguagem PHP

• O PHP é uma linguagem de server side scripting que


dispõe dos elementos habituais das linguagens de
programação:
• variáveis,
• operadores,
• controlo de fluxo,
• acesso a ficheiros,
• ...

• Além disso, o PHP tem, como característica mais saliente,


o facto de poder ser embebido em código HTML.
Linguagem PHP

Através de scripts PHP embebidos em HTML é possível:

• processar os dados introduzidos pelo utilizador através


de formulários HTML;

• gerar novas páginas HTML a enviar, como resposta, ao


utilizador;

• na geração dessas páginas podem ser utilizados


resultados de consultas a bases de dados.
Nota

• De seguida, será apresentada uma introdução à linguagem


PHP focada nos aspetos da mais relevantes para a
realização do trabalho prático da disciplina.

• Esta apresentação não dispensa a consulta do manual do


PHP (disponível on-line) e de outras fontes de informação.
Linguagem PHP

As páginas PHP são ficheiros com extensão .php que


podem conter:
• código HTML
• código PHP

Nota: A execução destas páginas requer um módulo de


extensão ao servidor web tal que, quando este encontra um
script PHP numa página, passa o controlo da execução para
esse módulo.
Processamento de formulários

Quando um formulário é submetido pelo utilizador, os


dados dos campos desse formulário ficam automaticamente
disponíveis no interior dos scripts PHP através de um array
associativo:

• cujos índices correspondem aos nomes dos elementos


do formulário;

• cujos valores correspondem aos dados introduzidos pelo


utilizador.
Arrays associativos

Os arrays associativos são idênticos aos arrays convencionais


com a diferença dos índices não estarem limitados a
números inteiros, mas também puderem ser strings.

Por exemplo, o array $localidade associa o nome de cada


pessoa ao respectivo local de residência:

$localidade[‘António’] = “Porto”;
$localidade[‘Joana’] = “Matosinhos”;
$localidade[‘Luís’] = “Gaia”;
Processamento de formulários

No formulário:

<form method = ‘Post’ ...>


<input type = "text" name=“cidade“ </input>

No script PHP:

a variável $_POST[‘cidade’] contém o valor introduzido


pelo utilizador no campo de texto com o nome cidade.

ver exemplo-formulário
Processamento de formulários

<form method='POST' action='trata-soma.php'>

Primeira parcela: <input type="text" name="parcela1">

Segunda parcela: <input type="text" name="parcela2">

<input type="submit" value="Calcular" name="botão1">

</form>

ver form-soma.html
Processamento de formulários

Código
html O resultado da soma das duas parcelas é:
<?php
echo $parcela1 + $parcela2;
?>
Script
php
Para retornar, prima
<a href="form-soma.html">aqui</a>

ver trata-soma.php
Processamento de formulários

No formulário:
<input type="checkbox" name="opcao1"
value="T1"> Torno1
<input type="checkbox" name="opcao2"
value="F2"> Freza 2

No script PHP:

a variável opcao1 toma o valor T1 ou o valor null,


conforme o utilizador selecionou, ou não, a opção opcao1.

ver formulário.htm e tratar-formulario.php


Acesso a bases de dados

O PHP dispõe de uma biblioteca para acesso à base de


dados Postgres.

Essa biblioteca oferece funções que permitem:


• Estabelecer ligações à base de dados
• Executar comandos SQL
• Terminar a ligação à base de dados
Acesso a bases de dados

Ligação à base de dados

$conn = pg_connect("dbname=temperaturas user=jfaria


password=jfaria")

Definição e execução da query

$query = "select * from weather;";


$result = pg_exec($conn, $query);

ver teste-php-pg-ok.php
Acesso a bases de dados

Obtenção da primeira linha do resultado

$linha=pg_fetch_row($result,0);

Escrita dos dois campos da primeira linha

echo "linha[0] = ".$linha[0]." ";


echo "linha[1] = ".$linha[1]."<br>";
Acesso a bases de dados

Obtenção da segunda linha do resultado

$linha=pg_fetch_row($result,1);

Escrita dos campos da segunda linha

echo "linha[0] = ".$linha[0]." ";


echo "linha[1] = ".$linha[1]."<br>";
Acesso a bases de dados

Obtenção do nº de linhas do resultado

$num_linhas = pg_numrows($result);

Acesso em ciclo às linhas do resultado

$i = 0;
while ($i < $num_linhas) {
$linha = pg_fetch_row($result, $i);
echo $linha[0]." ".$linha[1]."<br>";
$i++; }
Acesso a bases de dados

Fecho da ligação à base de dados

pg_close($conn);
Apresentação dos dados

Geração de tabela em HTML


<tr>
<td>Coimbra</td>
<td>30</td>
</tr>

Geração de tabela estática através de script


echo "<tr>";
echo "<td>Coimbra</td>”;
echo “<td>30</td>";
echo "</tr>";
ver gerar-tabela.php
Apresentação dos dados

Geração dinâmica de tabela

$query = "select * from weather;";


$result = pg_exec($conn, $query);

$linha = pg_fetch_row($result, $i);


echo "<tr>";
echo “<td>".$linha[0]."</td>”;
echo “<td>".$linha[1]."</td>";
echo "</tr>";

ver gerar-tabela.php
Apresentação dos dados

Geração de tabela estática


echo "<tr>";
echo "<td>Coimbra</td>”;
echo “<td>30</td>";
echo "</tr>";

Geração dinâmica de tabela


$linha = pg_fetch_row($result, $i);
echo "<tr>";
echo “<td>".$linha[0]."</td>”;
echo “<td>".$linha[1]."</td>";
echo "</tr>";
Estado das aplicações

A manutenção do estado das aplicações é um requisito


fundamental em muitas situações, por exemplo:

nas aplicações de comércio eletrónico, para implementar


os “shopping carts”;

no acesso a páginas com conteúdo restrito que


requerem autenticação prévia por parte do utilizador.
Estado das aplicações

Nos casos anteriores, é necessário manter o estado das


aplicações, i.e., conhecer o que aconteceu anteriormente.

Acontece que o http é um protocolo stateless e portanto o


servidor não tem forma de reconhecer que uma dada
sequência de pedidos é originária do mesmo utilizador.

Cookies e sessões são dois mecanismos disponíveis no PHP


que permitem ultrapassar esta limitação e manter o estado
das aplicações.
Cookies

Os Cookies:
são strings que contém dados do tipo nome_variável=valor;
são utilizados para memorizar informações entre requests
http.
circulam entre os servidores web e os browsers nos headers
das mensagens http.
Cookies em PHP

Os cookies são criados pelos scripts executados no


servidor através da função:
setcookie(name, value, expire)

O servidor web envia o cookie para o browser (de forma


transparente para o programa de aplicação).

O browser armazena o cookie num ficheiro de texto local,


...
Cookies em PHP

...
O browser devolve o cookie ao servidor sempre que for
invocada uma nova página desse servidor.

Os scripts php acedem aos cookies retornados pelo


browser através da variável:

$_COOKIE[‘name’]
Cookies: Exemplo
O script seguinte apresenta o
nº de acessos efetuado pelo
utilizador ao site:
<?php
if (is_null($_COOKIE['numero_acessos']))
$nº_acessos = 1;
else
$nº_acessos = $_COOKIE['numero_acessos'] + 1;

setcookie('numero_acessos', $nº_acessos, time()+120);


?>

<html><body>
Nº de acessos: <?php echo $nº_acessos?>
</body></html>
Expiração dos cookies

Os cookies podem manter-se ativos até a sessão terminar


(i.e., até que o browser seja fechado), ou até que seja
atingida a data de expiração.

setcookie(name, value, expire)

Fixar uma data de expiração permite, por exemplo, conservar


as preferências de um utilizador entre acessos ao mesmo site
em alturas distintas, algo comum em sites de comércio
eletrónico.
Cookies: limitações

As cookies apresentam algumas limitações


importantes:

Os utilizadores podem desativar os cookies no browser


(por razões de segurança)

Os browser suportam um nº máximo de cookies (para


todos os servidores) pelo que podem eliminar cookies de
forma imprevisível
...
Sessões

Tal como as cookies, as sessões permitem às aplicações web


manter dados distintos para cada utilizador e aceder a esses
dados ao longo das páginas invocadas pelo utilizador.

No entanto, enquanto que os cookies são mantidos no


cliente (browser), as variáveis de sessão são mantidos no
servidor web.

Como tal, as variáveis de sessão são um mecanismo mais


fiável pois não depende do comportamento do cliente.
Sessões

Para cada utilizador é criada uma sessão distinta e cada


sessão conserva o seu próprio conjunto de dados.

As sessões podem terminar automaticamente (ao fim de


um tempo pré-definido ou quando o browser é fechado),
ou por ação explícita do utilizador (logout).
Sessões

As sessões são criadas através da função:


session_start()

Uma vez criada a sessão, podem ser-lhe associadas


variáveis:
session_register(“nome_variável")

Às variáveis podem ser atribuídos valores:


$nome_variável= “valor"

Sessões


No início de cada página é executada a função
session_start(), a qual testa se já existe uma sessão criada
anteriormente para o utilizador.

Se já existir, as variáveis associados à sessão são recuperadas


e ficam disponíveis através do array associativo:
$_SESSION[‘nome_variavel’]

Se ainda não existir, é criada uma nova sessão.


Sessões: Exemplo

Este script apresenta o nº de acessos ao site,


mas agora o nº de acessos é memorizado
<? através de uma variável de sessão:
session_start();
session_register('nacessos');
$_SESSION['nacessos'] += 1;
?>

<html><body>
Nº de acessos: <?php echo $_SESSION['nacessos']?>
</body></html>
Identificador de sessão

Quando é criada uma nova sessão, é-lhe atribuído um


identificador único (o qual é gerado automaticamente
pelo sistema).

O identificador da sessão é passado (também


automaticamente) a todas as páginas executadas
enquanto a sessão estiver activa.

O servidor web utiliza o identificador de sessão como


chave para as variáveis de sessão do utilizador.
Passagem do ID de sessão entre páginas

Por defeito, o identificador de sessão é passado de


página para página através do cookie PHPSESSID.

Quando os cookies são desativados no cliente, o ID é


passado como um parâmetro dos URL.

Neste caso, o PHP acrescenta automaticamente a todos


os links relativos contidos na página o parâmetro
PHPSESSID.
Autenticação

O acesso a páginas com autenticação é uma situação típica


para a utilização de sessões.

No primeiro acesso a uma página com conteúdo de acesso


restrito, o utilizador é solicitado a autenticar-se
(username/password).

Após uma autenticação válida, e enquanto a sessão


permanecer ativa, o utilizador não é mais solicitado a
autenticar-se.
Sessões autenticadas

Uma sessão autenticada contém uma variável que assinala se


o utilizador está autenticado, ou não.

Essa variável:
por defeito não está definida;
toma o valor true depois de o utilizador ter procedido a
uma autenticação válida.
...

ver exemploAutenticação
Sessões autenticadas

...
No início de cada página de acesso restrito, a variável de
autenticação é testada:
no caso de tomar o valor true, é dado acesso à página ao
utilizador;
se caso de ser nula, o utilizador é reencaminhado para
uma página de login.

Se o utilizador introduzir um par username/password válido


na página de login, é atribuído o valor true à variável de
autenticação e, a partir daí passa a ter acesso às páginas de
acesso restrito.

Você também pode gostar