Escolar Documentos
Profissional Documentos
Cultura Documentos
PHP
INTRODUÇÃO
PHP (uma abreviação recursiva para "PHP: Hypertext Preprocessor") é uma linguagem de
programação interpretada, livre e muito utilizada para gerar conteúdo dinâmico na Web.
A linguagem surgiu por volta de 1994, como um subconjunto de scripts Perl criados por Rasmus
Lerdof, com o nome Personal Home Page Tools. Mais tarde, em 1997, foi lançado o novo pacote da
linguagem com o nome de PHP/FI, trazendo a ferramenta Forms Interpreter, que era na verdade um
interpretador de comandos SQL.
Mais tarde, Zeev Suraski desenvolveu o analisador do PHP 3, que começou a ter forma de uma
linguagem de programação.
Pouco depois, Zeev e Andi Gutmans, escreveram o PHP 4, abandonando por completo o PHP 3,
dando mais poder à máquina da linguagem e maior número de recursos.
Trata-se de uma linguagem extremamente modularizada, o que a torna ideal para instalação e uso
em servidores web. Diversos módulos são criados no repositório de extensões PECL (PHP Extension
Community Library) e alguns destes módulos são introduzidos como padrão em novas versões da
linguagem. É muito parecida, em tipos de dados, sintaxe e mesmo funções, com a linguagem C e com a
C++. O código PHP fica embutida no código HTML. Existem versões do PHP disponíveis para os seguintes
sistemas operacionais: Windows, Linux, FreeBSD, Mac OS, OS/2, AS/400, Novell Netware, RISC OS, IRIX
e Solaris.
Construir uma página dinâmica baseada em bases de dados é simples com PHP, este provê
suporte a um grande número de bases de dados: Oracle, Sybase, PostgreSQL, InterBase, MySQL, SQLite,
MSSQL, Firebird etc, podendo abstrair o banco com a biblioteca ADOdb, entre outras.
// Comenta apenas uma linha. Para comentar mais de uma linha, insira /* no início e */ no
final.
echo Comando de impressão que envia para o navegador seqüências de strings, podendo ser
textos e/ou tags HTML; valores de variáveis, até fórmulas matemáticas.
Após visualizar este arquivo pelo navegador, clique com o botão direito e peça para visualizar o
código. Aparecerá o código a seguir:
Quando o internauta acessa o site, ele faz uma requisição através do endereço fornecido. O
servidor recebe esta requisição, localiza o arquivo e o processa. O ato de processamento corresponde ao
envio do cabeçalho mais o código HTML do web site. O internauta não vê o código PHP, somente o código
HTML convertido.
TIPOS DE DADOS
O PHP tem tipagem dinâmica, os valores das variáveis podem ser alterados em qualquer momento
durante a execução do algoritmo.
Strings corresponde a seqüência de caracteres. A seqüência deve ser demarcada com aspas simples ou
aspas duplas.
Numéricos corresponde a valores numéricos, podendo ser números inteiros ou números reais (com
casas decimais).
Quando o programador quiser utilizar uma variável, basta atribuir o que deseja a qualquer variável,
pois não existe a identificação do tipo de dado das informações.
VARIÁVEIS
Não existe declaração de variáveis em PHP, o programador atribui o valor à variável desejada. Para
identificar uma variável, esta é iniciada com o símbolo de cifrão, por exemplo: $nome, $Media, $FALTAS.
Deixando claro que PHP é case sensitive, maiúscula é diferente de minúscula. Veja o exemplo a seguir.
Programação Web Professor Nícolas Trigo 3
Observe que entre as variáveis e strings é inserido o símbolo ponto (“.”) que tem a função de
concatenar as informações. Quando o programador visualizar o código-fonte do seu navegador aparecerá o
código a seguir:
EXPRESSÕES
OPERADORES
Os principais operadores são:
• Operadores Aritméticos
• Operadores de Comparação
• Operadores Lógicos
• Operadores de Atribuição
• Operador Ternário
Operadores Aritméticos
Operadores de Comparação
Operador Descrição
var1 == var2 Verdadeiro se var1 for igual a var2.
var1 != var2 Verdadeiro se var1 for diferente a var2.
var1 <> var2 Outra forma de aceitar diferente
var1 > var2 Verdadeiro se var1 for maior do que var2.
var1 >= var2 Verdadeiro se var1 for maior ou igual a var2.
var1 < var2 Verdadeiro se var1 for menor do que var2.
var1 <= var2 Verdadeiro se var1 for menor ou igual a var2.
Operadores Lógicos
Operador Descrição
var1 AND var2 Verdadeiro se var1 E var2 forem verdadeiros, senão Falso.
var1 && var2 Verdadeiro se var1 E var2 forem verdadeiros, senão Falso
var1 OR var2 Verdadeiro se var1 OU var2 forem verdadeiros, senão Falso
var1 || var2 Verdadeiro se var1 OU var2 forem verdadeiros, senão Falso
var1 XOR var2 Verdadeiro se somente var1 OU var2 for verdadeiro, senão Falso
! var1 Verdadeiro se var1 for Falso.
Operadores de Atribuição
Operador Descrição
var1 = var2 Atribui o valor de var2 em var1.
var1 += var2 var1 = var1 + var2.
var1 –= var2 var1 = var1 – var2.
var1 *= var2 var1 = var1 * var2.
var1 /= var2 var1 = var1 / var2.
var1 %= var2 var1 = var1 % var2.
var1 .= var2 var1 = var1 . var2.
Operador Ternário
Este é um tipo especial de operador. Ele é usado quando você deseja atribuir um entre dois valores
de uma variável, dependendo de alguma condição. A sintaxe do operador ternário é mostrada a seguir:
Se a condicao for verdadeira então a expressao1 é atribuída à $variavel, senão (se a condicao for
falsa) expressao2 é atribuída à $variavel.
Programação Web Professor Nícolas Trigo 5
ESTRUTURAS DE SELEÇÃO
Existem duas estruturas de seleção em PHP: if e switch.
IF
A estrutura do if pode ser:
SWITCH
A estrutura SWITCH é montada da seguinte forma:
switch(variavel){
case valor1:
<comando(s)>;
break;
case valor2:
<comando(s)>;
break;
...
case valorN:
<comando(s)>;
break;
default:
<comando(s)>;
break;
}
Veja o exemplo:
ESTRUTURAS DE REPETIÇÃO
Existem duas estruturas de repetição consideradas as principais em PHP: while e for.
WHILE
A estrutura WHILE é montada da seguinte forma:
while(condição){
<comando(s)>;
}
Veja o exemplo:
FOR
A estrutura FOR é montada da seguinte forma:
Veja o exemplo:
ALGUNS RECURSOS
Alguns recursos serão vistos de forma bem rápida nesta seção.
date()
include() e require()
Quando um arquivo2 é incluído em arquivo1, o seu código entra no escopo de variável da linha do
arquivo1. Qualquer variável disponível da linha do arquivo2 estará disponível para o arquivo1, daquele
ponto em diante, Observe a figura a seguir.
Arquivo1
include(Arquivo2)
Continuação do Arquivo1
Veja o exemplo:
GET Método que solicita ao servidor o envio de um recurso; é o serviço essencial para o
protocolo. O resultado do recurso é retornado através do URI.
Observe as substrings em negrito da URL acima. Os termos hl, tab e q são variáveis que passam
informações de um documento para outro através do método GET. Observe que os valor de hl é pt-BR, o
valor de tab é wi e q não tem valor.
hl=pt-BR tab=wi q=
Programação Web Professor Nícolas Trigo 10
POST Método que permite que o cliente envie mensagens e conteúdo de formulários para
servidores que irão manipular a informação de maneira adequada.
O método POST não deixa visíveis as variáveis com seus valores como age o método GET. O
POST é o melhor método para transição de informações confidenciais.
Contém um array associativo de variáveis passadas para o script atual através do método HTTP
GET. Esta é uma variável automaticamente global. Isto significa que ela é disponível em todos os níveis de
um script. Você não precisa fazer um global $_GET.
Contém um array associativo de variáveis passadas para o script atual através do método HTTP
POST. Esta é uma variável automaticamente global. Isto significa que ela é disponível em todos os níveis de
um script.
</BODY>
</HTML>
Observações:
CREATE
)
O MySQL tem suporte a FOREIGN KEY (Chave estrangeira) a partir da versão 4 e o PHPTriad
utiliza a versão 3.23.47, por isso será visto uma condição na subseção SELECT como relacionar uma chave
estrangeira TELEFONE.codusuario com a chave primário USUARIO.codigo.
Programação Web Professor Nícolas Trigo 12
DROP
INSERT
UPDATE
DELETE
SELECT
SELECT <campos> FROM <nome_tabela> [WHERE <condições separadas por OR e/ou AND>
ORDER BY <campo> ASC(Crescente) | DESC(Decrescente)]
Por exemplo:
OPERADOR DESCRIÇÃO
LIKE ‘A%’ Começa com a letra A.
LIKE ‘%A’ Termina com a letra A.
LIKE ‘%A%’ Tenha a letra A em qualquer posição.
LIKE ‘A%B’ Começa com a letra A e termina com a letra B.
NOT LIKE ‘A%’ Não começa com a letra A
Para conectar com o Gerenciador de Banco de Dados deve ser utilizado o seguinte comando:
Depois de conectar ao Gerenciador, deve-se selecionar qual banco de dados deseja ter acesso.
Para selecionar um Banco de Dados deve ser usar o seguinte comando:
mysql_select_db(‘NomeBD’,$id) or die(mysql_error());
Se o nomeBD (nome do banco de dados) estiver correto e a variável $id estiver com status de
conexão feita (conexão com o Gerenciador do BD estiver funcionando corretamente) então o nomeBD será
Programação Web Professor Nícolas Trigo 14
o banco de dados ativo para acesso às informações, senão imprime a mensagem de erro através do
comando mysql_error().
Se a Query SQL (usando, por exemplo, INSERT, SELECT, etc.) estiver correta então o comando
mysql_query armazena na variável $resultado uma ligação com o resultado da consulta gerada pela Query
SQL, senão imprime a mensagem de erro através do comando mysql_error().
Os comandos a seguir indicam a quantidade de linhas afetadas pelo comando anterior do MySQL.
mysql_affected_rows();
mysql_num_rows($resultado);
Após enviar um SELECT pelo mysql_query, retornará uma linha de registro para manipular as suas
informações, que deverá usar o seguinte comando:
$dados = mysql_fetch_row($resultado);
A variável $dados será um array, iniciando o índice por 0 (zero) e seguindo a ordem dos campos da
tabela.
Existe um pequeno problema para o comando anterior. Ele só captura uma linha. E se precisar de
mais de uma linha? Para atender a esta necessidade deve-se usar o seguinte comando:
$dados[‘linha’] = mysql_result($resultado,‘linha’,‘IDCAMPO’);
A variável $dados será um array controlado pela variável linha (o mesmo utilizado pelas estruturas
de repetição que identificará a linha do registro). No comando mysql_result tem o identificador do comando
mysql_query, seguido pelo número da linha e finalizando com o IDCAMPO, que pode ser o nome do campo
na tabela ou o número de ordenação do campo na tabela.
Veja o exemplo:
<?
$local = 'localhost';
$user = 'root';
$passwd = '';
$id = mysql_connect($local,$user,$passwd) or die(mysql_error());
$db = 'AGENDA';
mysql_select_db($db,$id) or die(mysql_error());
$resultado = mysql_query("SELECT * FROM USUARIO") or die(mysql_error());
$linhas = mysql_num_rows($resultado);
$usuario = mysql_fetch_row($resultado);
Programação Web Professor Nícolas Trigo 15
SESSÕES E AUTENTICAÇÃO
Sessão
Sessões são usadas para guardar dados enquanto a janela do browser estiver aberta. São
geralmente usadas para manter dados como nome do usuário, tipo do usuário (se é o administrador ou se é
um visitante não cadastrado, por exemplo), entre outros dados importantes. Dica: NUNCA COLOQUE A
SENHA NA SESSÃO. VOCÊ SÓ PRECISA DELA PARA AUTENTICAÇÃO!
session_start();
Se quisermos destruir a sessão (no caso de o usuário ter feito logoff), usamos a função:
session_destroy();
Agora precisamos apenas setar os valores que ficarão na sessão. No PHP os valores são
armazenados em um vetor associativo chamado $_SESSION. As associações são feitas com pares chave e
valor. Por exemplo, vamos setar o nome do usuário e a permissão dele, e colocar esses dados na sessão.
Vamos buscar esses dados a partir de um formulário fictício, via POST.
<?php
//iniciamos a sessão
session_start();
//colocamos o usuário na sessão.
$_SESSION['usuario'] = $_POST['usuario'];
//da mesma forma setamos outras informações necessárias.
$_SESSION['qualquer_coisa'] = $_POST['qualquer_coisa'];
//Redirecionamos para a pagina principal.
echo “<meta http-equiv=\“refresh\” content= \“0;url=‘principal.php’\”>”;
?>
Com isso feito, podemos acessar as variáveis da sessão de qualquer lugar da nossa aplicação
através do vetor $_SESSION.
Programação Web Professor Nícolas Trigo 16
Se retornar true é porque a variável foi iniciada. A sugestão é que utilize o comando “isset()”, em
vez do “session_is_registered()”.
Autenticação e Segurança:
Veja o exemplo abaixo de uma pequena aplicação com sessão.
session_start();
$_SESSION['codigo'] = $dados[0];
$_SESSION['nome'] = $dados[1];
$_SESSION['email'] = $dados[2];
echo "<meta http-equiv=\"refresh\" content=\"0;url='principal.php'\">";
}else{
echo "<meta http-equiv=\"refresh\" content=\"0;url='index.php'\">";
}
?>
UPLOAD DE ARQUIVOS
Veja a aplicação web exemplo abaixo:
<BODY>
<P>UPLOAD DE ARQUIVOS - VISUALIZAÇÃO</P>
Programação Web Professor Nícolas Trigo 18