Desenvolvimento WEB
Primeiro Semestre – 2008 - PHP
Conceitos : Páginas
dinâmicas em HTML – Aula 2

Diferença entre páginas Estáticas e Dinâmicas :



As estáticas, normalmente desenvolvidas somente
em HTML não exigem nenhum processamento por
parte do Servidor. O Cliente WEB faz uma requisição,
utilizando o protocolo HTTP , a um WebSite
localizado em um Servidor Web.
Ao receber a requisição o Servidor Web verifica a
extensão da página a ser enviada como resposta,
identificando a mesma como HTML não realiza
nenhum processamento.
Apenas a envia para o Cliente WEB. Todo o
processamento está localizado no Cliente WEB.
Estão inclusas nesta forma de publicação tecnologias
como JavaScript e Flash.




As páginas dinâmicas são desenvolvidas com
linguagens que são executadas pelo servidor cuja
característica é a geração dinâmica de HTML e
acesso a Banco de Dados (entre outras tarefas)
O Cliente WEB faz uma requisição, utilizando o
protocolo HTTP , a um WebSite localizado em um
Servidor Web.
Ao receber a requisição o Servidor Web verifica a
extensão da página a ser enviada como resposta,
identificando a mesma como PHP (outra linguagem
como ASP ou JSP poderia ser utilizada),
A página é então enviada ao módulo responsável
pelo processamento que realiza (realizando todas as
operações necessárias com Banco de Dados,
sessões etc) “devolvendo” ao servidor apenas o
HTML resultante desta operação e a envia para o
Cliente WEB. O processamento está localizado
no Servidor e no Cliente WEB.
Evolução das tecnologias de
conteúdo dinâmico

CGI = Common Gateway Interface –
É o sistema mais antigo que existe
para a programação das páginas
dinâmicas de servidor. Atualmente
se encontra um pouco defasado por
diversas razões entre as quais se
destaca a dificuldade com a que se
desenvolvem os programas e a
pesada carga que supõem para o
servidor que os executa



Funcionamento : Realiza-se uma
petição http, a qual podem
acompanhar dados que chegam ou
por um formulário, ou também
através da URL.
O servidor executa os programas
CGI aos que se acessa e trabalha
com os recursos necessários para
realizar as ações, como por
exemplo, as bases de dados.
O programa CGI vai escrevendo na
saída padrão, o resultado da
execução do CGI, que inclui
etiquetas HTML, já que o que se
escreve é uma página web.


Desvantagens : Os resultados se
escrevem diretamente com o CGI,
portanto o código do programa se
mistura com o do HTML tornando
difícil sua compreensão e
manutenção.
Cada programa CGI que se coloca
em funcionamento se faz em um
espaço de memória próprio. Sendo
assim, se três usuários colocam em
funcionamento um CGI ao mesmo
tempo, se multiplicará por três a
quantidade de recursos que ocupa
esse CGI. Isto significa uma grave
ineficiência.

ColdFusion = é uma ferramenta
usada no desenvolvimento de
aplicações web, que permite criar
páginas Web dinâmicas para
Internet, intranets ou extranets.
O Cold Fusion utiliza uma linguagem
denominada CFML (Cold Fusion
Markup Language), baseada em
tags, como o HTML. Esta linguagem
é muito poderosa e simples de
programar, perfeita para construção
de páginas dinâmicas.

Por ser suportado
primordialmente pela Adobe
Systems (veja histórico), o
ColdFusion Server oferece boa
interoperabilidade com outros
produtos da mesma empresa,
tais como Flash, Flex entre
outros, sendo também uma
escolha comum para aqueles
que trabalham com estas
tecnologias.

O ASP (de Active Server Pages) é uma estrutura
de programação em Script que se utiliza de
VBScript, JScript, PerlScript ou Python processadas
pelo lado servidor para geração de conteúdo
dinâmico na Web. Ele roda nativamente em
servidores Windows, através do serviço chamado
de IIS (Internet Information Service) - o servidor
web da Microsoft, ou do PWS (Personal Web
Server) em ambientes com Windows 98. Além disso
ele pode rodar em outras plataformas, como Linux
no servidor Apache quando usando um Módulo de
um programa como o Tomcat. O script é
interpretado no lado do servidor e o que é enviado
ao lado do usuário (navegador, por exemplo) é
apenas a saída. que normalmente é uma linguagem
de marcação como HTML, XHTML ou XML.


Através dessa tecnologia também é
possível executar consultas a Banco
de Dados, através da biblioteca de
componentes ActiveX.
O uso desta tecnologia vem
diminuindo sensivelmente pela
maturação da tecnologia .NET,
sendo gradativamente substituído
pelo ASP.NET que proporciona uma
gama maior de recursos e um
melhor desempenho.

PHP = PHP (um acrónimo recursivo
para "PHP: Hypertext Preprocessor")
é uma linguagem de programação
de computadores interpretada, livre
e muito utilizada para gerar
conteúdo dinâmico na Web. Apesar
de ser uma linguagem de fácil
aprendizado e de uso para
pequenos scripts dinâmicos simples,
o PHP é uma linguagem poderosa
orientada a objetos .



Características: Orientação a
objeto
Portabilidade - Independência
de plataforma - "write once run
anywhere";
Sintaxe similar a Linguagem
C/C++ e o PERL

Java Servlets = Servlets são
programas que correm no lado do
servidor e que estendem as
funcionalidades do servidor web,
gerando páginas de forma dinâmica
e interagindo com os clientes.
Constituem a alternativa da
tecnologia Java à programação em
CGI (Common Gateway Interface),
ultrapassando muitas das suas
limitações e, o mais importante,
numa base de independência de
plataforma (sistema operativo) e de
servidor web.


JSP = JSP é a abreviação de Java Server
Pages, que em português seria algo como
Páginas de Servidor Java. É então, uma
tecnologia orientada a criar páginas web
com programação em Java.
Com JSP podemos criar aplicações web
que se executam em vários servidores
web, de múltiplas plataformas, já que Java
é em essência uma linguagem
multiplataforma. As páginas JSP estão
compostas de código HTML/XML
misturado com etiquetas especiais para
programar scripts de servidor em sintaxe
Java. Portanto, poderemos escrever as
JSP com nosso editor HTML/XML habitual.
PHP e HTML


Um programa escrito em PHP pode
possuir comandos HTML e códigos
PHP;
Os comandos HTML devem
aparecer fora das tags (?php e ?>,
pois estas limitam um trecho de
programa PHP. Dentro destas tags
até podem existir comandos HTML,
mas somente se utilizarmos o
comando ECHO para escrevê-los.




Cada script PHP existente na página deve
começar com a tag<?php, e terminar com
?>.
Ao final de cada linha de comando
devemos terminar com um ; (ponto e
vírgula), senão ocorrerão erros no
momento da execução da página.
Entre essas tags você pode escrever suas
linhas de código em PHP, aproveitando
tudo que a linguagem lhe oferece de
recursos.
Toda essa mistura do PHP com HTML é
muito interessante, pois utilizamos o PHP
para gerar dados dinamicamente e o
HTML para formatar e exibir dados nas
páginas mostradas no browser;

Vamos ver este exemplo misturando
HTML e PHP para mostrar somente
a data atual :
<html>
<body>
<?php
$data_de_hoje = date
(“d/m/y”,time());
?>
<p align=“center”>Hoje é dia <?php
echo $data_de_hoje; ?></p>
</body>
</html>


Perceba, no início do programa a
atribuição à variável $data_de_hoje
a data atual, utilizando o comando
DATE.
Depois utilizamos comandos HTML
para escrever “Hoje é dia”, e
completamos abrindo um novo
trecho de PHP, escrevendo a data
atual armazenada na variável
$data_de_hoje por meio do
comando ECHO que veremos logo a
frente.
Exibindo a página no Browser


Para o browser mostrar alguma coisa na
tela é necessário que a página tenha pelo
menos um comando ECHO para escrever
algo, ou então comandos HTML que
escrevam o conteúdo da página.
Portanto para realmente se ter conteúdo
dinâmico na tela, você deve sempre se
utilizar do comando ECHO ou algum outro
comando PHP, pois como já dito o HTML é
estático, imprime sempre as mesmas
informações na tela.
Exemplo de código
<html>
<body>
<?php
$time = “Gremio”
$ano = 1983
$frase1=“O $time é o melhor clube de futebol
do mundo !”;
$frase2=“O $time foi campeão do mundo em
$ano”;
echo “<h3>$frase1</h3>”;
echo “<h3>$frase2</h3>”;
?>
</body>
</html>

O resultado desse código, será
a impressão na tela conforme
abaixo ?
O Gremio é o melhor clube de
futebol do mundo !
O Gremio foi campeão do
mundo em 1983


Outra função muito importante que já
poderemos utilizar é a PHPINFO. Ela nos
fornece informações diversas sobre o PHP
que estamos utilizando.
Por exemplo, o estado atual do PHP. Isto
inclui informações sobre as opções de
compilação do PHP e extensões, a versão
do PHP, informações do servidor e
ambiente (se compilado como um módulo),
o ambiente PHP, informação da versão do
SO, caminhos, valores principais e locais
das opções de configuração, cabeçalhos
HTTP e a licença do PHP.

Devido a configuração em cada
sistema ser diferente, a função
phpinfo() e normalmente utilizada
para conhecer as definições de
configuração e as variáveis
predefinidas que estejam disponíveis
no sistema. phpinfo() é também é
uma ferramenta valiosa para
eliminação de erros já que contém
todos os dados de EGPCS
(Environment, GET, POST, Cookie,
Server).
Opções do Comando ?
INFO_GENERAL-valor=1-A linha de
configuração, localização do php.ini
data de construção, Servidor Web,
Sistema e mais.
INFO_CREDITS-valor=2-Créditos do
PHP 4. Veja também phpcredits()
INFO_CONFIGURATION-valor=4Valores locais e principais para as
diretivas de configuração do PHP.
Veja também ini_get().
INFO_MODULES-valor=8-Módulos
carregados e suas respectivas
configurações. Veja também
get_loaded_modules().
INFO_ENVIRONMENT-valor=16Informação das variáveis de
ambiente que também esta
disponível em $_ENV.
INFO_VARIABLES-valor=32-Mostra
todas as variáveis predefinidas de
EGPCS (Environment, GET, POST,
Cookie, Server).
INFO_LICENSE-valor=64Informação sobre a Licença do
PHP. Veja também o faq sobre a
licença.
INFO_ALL-valor=-1-Mostra tudo
acima. Este é o valor padrão.
Exemplo do Código
<?php
// Mostra todas as informações, usa o
padrão INFO_ALL
phpinfo();
// Mostra apenas informações dos
módulos.
// phpinfo(8) mostra um resultado identico.
phpinfo(INFO_MODULES);
?>
Resumindo


Temos a importância do comando
ECHO : sem ele não conseguimos
gerar dados dinâmicos, é
fundamental dominar este comando;
As variáveis : daqui por diante as
usaremos muito. Lembrando que no
PHP as variáveis sempre começam
pelo símbolo cifrão ($). Sempre que
houver este símbolo antes de
qualquer nome o PHP o interpretará
como uma variável.
Conceitos Básicos PHP Caracteres de Escape

Caracteres de escape são muito
utilizados em programação. \n
por exemplo significa nova linha
e não é o único caracter de
escape que existe. Veja abaixo
alguns dos caracteres de
escape mais utilizados:









\a-=Alarme
\cX=Control X, onde X pode ser
qualquer caracter
\e=Escape
\f=Formfeed (alimentação de
formulário)
\n=Nova linha
\r=Retorno de cabeçote (nova linha)
\t=Tab
\xHH=Caracter com código
hexadecimal HH
\DDD=Caracter com código octal
DDD
Exemplo de Escape

<?php
echo ("Hello world<br>\n");
echo (“Teste de PHP<br>\n");
echo (“Belo Teste!<br>\n");
?>
Comentar linhas no PHP

Assim como existem comentários em
HTML delimitados por <!-- e -->, em PHP
também é possível comentar partes de um
código. Para tal, quando se quer comentar
uma única linha, utilizamos os caracteres //
para comentar a linha que não será
processada pelo todo.
Quando é um número maior de linhas ou
blocos, utilizamos " /* " para abrir o
comentário, e para fechar " */ "
Exemplo

<?
// Uma linha de comentario ..
/*
Um Simples
bloco de
comentario !!!
*/
?>
Escrevendo em um
Documento com PHP

Abrindo qualquer editor de
textos já podemos escrever
código PHP. Podemos digitar
este exemplo como uma
estrutura inicial de código :
<html>
<body>
<?php
//Legal, estou escrevendo um
código
echo “<h2
align=‘center’>Parabéns para
mim!</h2>”;
?>
</body>
</html>

Salve este programa como
Prog1.php e envie para o
diretório que você criou para
hospedar seu site. Este
programa vai gerar a frase
“Parabéns para mim!”
centralizada na página.
WAMP



WAMP é acrônimo para a
combinação:
Windows, Apache, MySQL, PHP
O WAMP é o instalador do servidor
Apache, do banco de dados Mysql e
da linguagem PHP para o sistema
operacional Windows. Também é
possível encontrar instaladores para
outros sistemas operacionais:
LAMP – Linux
MAMP – Mac OS
SAMP – Soliaris


É possível baixar o WAMP em:
http://www.wampserver.com ou em
superdownloads, por exemplo, basta
procurar por WAMP;
Depois de efetuar a download, basta
executar o programa e seguir os
passos de instalação que o Apache,
o MySQL, o PHP e uma ferramenta
denominada PHPMyAdmin (que
permite criar e manipular BD
MySQL) estarão instalados e
prontos para seram utilizados.



Em cada um desses pacotes, é necessário
verificar qual o diretório onde devemos
salvar os arquivos PHP para
posteriormente acessar no navegador
através do endereço
http://localhost/nome_arquivo.php ou
http://ip_da_maquina/nome_arquivo.php
para que os comandos PHP sejam
interpretados e seja gerada uma resposta
HTML que será enviada ao navegador;
Depois de efetuar a instalação do PHP e
do Apache, seja com um pacote de
configuração automático ou manualmente,
para testar se está tudo funcionando basta
abrir um editor de texto, digitar o código
abaixo:
<?= phpinfo(); ?>


Salvar com o nome teste.php no
diretório específico (ex:
C:/wamp/www) e acessar no
navegador
(http://localhost/teste.php);
Uma das vantagens de se utilizar
uma linguagem dinâmica que roda
do lado do servidor, como o PHP, é
que além de ser possível acessar
Banco de Dados, efetuar o envio de
dados por e-mail, permitir o upload
de arquivos, gerar gráficos, etc...
não ficamos mais “presos” a
tecnologia que temos no cliente;


Se pensarmos, por exemplo, na validação
de um formulário feita com JavaScript, é
necessário que o navegador do cliente
suporte JavaScript e também que a
execução de scripts esteja habilitada, caso
contrario de nada valerá a validação e o
cliente poderá submeter o formulário com
campos obrigatórios em branco ou com
campos preenchidos de forma errada;
Se essa mesma validação fosse efetuada
no servidor, isso não ocorreria. Claro que
também temos que pensar que no caso de
muitos acessos simultâneos, efetuar a
validação do formulário no servidor poderia
sobrecarregá-lo, já a validação no cliente,
além de mais rápida, não sobrecarregaria
o servidor.


Outra diferença entre o PHP e o
JavaScript, é que no PHP a lógica
fica protegida, ou seja, mesmo que o
cliente exiba o código fonte da
página, os comandos PHP não
serão exibidos pois quando é feita a
solicitação de uma página PHP, os
comandos são interpretados e é
gerada uma resposta HTML que
será enviada para o navegador do
cliente, vejamos o exemplo abaixo:
Abra o bloco de notas e digite o
código abaixo e salve como
teste2.php:
Abra no navegador este código.
Clique na opção Código Fonte do menu Exibir e verifique
que a resposta que foi enviada ao navegador só possuir
comandos HTML ;
Constantes



São valores que são predefinidos no
início do programa e que não
mudam ao longo de sua execução.
Você pode definir suas próprias
constantes utilizando o comando
DEFINE, que possui a sintaxe :
Bool define(string nome, misto
valor[,bool case_insensitive]) onde:



Nome=nome que você vai usar
para representar a constante;
Valor=é um valor qualquer
numérico ou alfanumérico a ser
atribuído a ela;
Case_insensitive=valor lógico,
true ou false, que indica se o
php deve diferenciar letras
maiúsculas e minúsculas
quando houver uma referência a
essa constante. Veja o exemplo
:
<html>
<body>
<?php
define(“meunome”,”juliano”);
define(“peso”,78);
echo “O meu nome é “.meunome;
echo “<br>”
echo “O meu peso é “.peso.” quilos”;
?>
</body>
</html>

O resultado da execução deste
programa será :
O meu nome é juliano
O meu peso é 78 quilos



Note que para as constantes não
utilizamos o símbolo $. Este símbolo
só é utilizado para definição de
variáveis;
Outro recurso apresentado e muito
utilizado é o .(ponto). Com ele
podemos concatenar quantos dados
quisermos, e todos eles serão
exibidos como apenas uma
sequência de caracteres.
Além das constantes que você cria,
o PHP possui diversas constantes
próprias predefinidas, veja a seguir:
TRUE=valor verdadeiro, utilizado em
comparações;
FALSE=valor falso;
_FILE_=contém o nome do script que está
sendo executado;
_LINE_=contém o número da linha do script
que está sendo executado;
PHP_VERSION=contém a versão corrente
do php;
PHP_OS=nome do sistema operacional onde
o php está rodando;
E_ERROR=exibe um erro ocorrido em um
script. A execução é interrompida;
E_WARNING=exibe uma mensagem de
aviso do pho, a execução não pára;
E_PARSE=exibe um erro de
sintaxe, a execução é
interrompida;
E_NOTICE=mostra que ocorreu
algo,mas não necessariamente
um erro. A execução não pára.
Variáveis

As variáveis servem para armazenar
dados que podem ser usados em qualquer
parte do programa.Cada variável está
associada a uma posição de memória em
seu computador. Ao contrário das
linguagens tradicionais, como delphi, C,
Pascal, no PHP não é necessário fazer
declaração de variáveis. Basta atribuir
diretamente um valor a ela e a partir desse
momento já está criada e associada a um
tipo , dependendo do valor que lhe foi
atribuído;
Exemplos de Variáveis
Válidas




$nota1
$casa120
$bisc8
$futebol_brasileiro
Exemplo de Variáveis
Inválidas



$100vezes
$5
$20_numero
Atente sempre para nunca criar
variáveis que comecem com
números, o PHP não aceita isso;
Crie sempre nomes de variáveis que
tentem descrever ao máximo o que
elas irão fazer.


Quando criar uma variável,
cuidado com as letras
maiúsculas e minúsculas.
Por exemplo, $NotaAluno é
diferente de $notaAluno, que é
diferente de $notaaluno que é
diferente de $NOTAALUNO.
Escopo das Variáveis



Podemos utilizar a mesma variável em
locais e momentos diferentes, embora isso
não seja muito interessante de ser feito.
Uma variável declarada dentro de uma
função só funciona dentro da função. Fora
dali seu valor não está acessível em
nenhuma parte do programa.
No entanto, se quisermos, podemos usar
dentro de uma função o valor de uma
variável existente dentro do programa
principal e para isso existem duas
maneiras :



1) Definí-la como Global no
início do programa;
2) Utilizar o array predefinido
$GLOBALS, que utiliza os
nomes das variáveis como
chave associativa.
Vejamos alguns exemplos ?
<?php
$num=5000;
function testa_variavel()
{
$num +=5; //somei seu
conteúdo com 5
echo $num.”<br>”;
}
echo $num.”<br>”;
testa_variavel();
?>


Após a execução deste
programa serão mostrados na
tela os valores 5000 e na linha
de baixo 5.
Isso ocorre porque quando
somamos o conteúdo da
variável $num dentro da função
(note que dentro da função ela
não vale nada) o resultado será
5. O valor de 5000 está fora da
função !
Utilizando o valor de uma variável
global dentro da função
<?php
$num=5000;
function testa_variavel()
{
global $num;
$num +=5; //somei seu
conteúdo com 5
echo $num.”<br>”;
}
echo $num.”<br>”;
testa_variavel();
?>


Os valores mostrados no
exemplo anterior serão de 5000
e 5005 na linha de baixo. Isso
porque dentro da função
especificamos que a variável
$num que será utilizada é
global, então, altera-se o valor
dela com a soma, ela entra na
função valendo 5000, somandose mais 5 temos 5005.
Vejamos agora o exemplo
utilizando o array $GLOBALS :
<?php
$num=5000;
function testa_variavel()
{
echo $GLOBALS[“num”].”<br>”;
$GLOBALS[“num”]++;
}
testa_variavel();
echo $num;
?>

Os valores impressos serão
5000 e 5001. Isso porque logo
no início da função, o programa
imprime o valor da variável
global $num. Na linha de baixo
existe um incremento utilizando
o array $GLOBALS com a
chave associativa (++) em um,
passando a valer 5001.
Conversão de Variáveis




Se tivermos uma string contendo
somente números e quisermos
somar esses números, o PHP irá
automaticamente convertê-los em
numérico e realizar o cálculo. Se
houver textos e números em uma
string, o PHP utilizará somente os
números e realizará a conta.
Exemplo :
$string = “5”;
$numero = 3;
$texto = “3 vezes campeão”;



Se somarmos $numero+$string,
o resultado será 8;
Se somarmos 3.45+$string, o
resultado será 8.45.
Se somarmos $numero+$texto,
o resultado será 6, pois
somente a parte numérica da
string será considerada;
Conversão Manual de
Variáveis





Int,integer = converte para
inteiro;
Real, float, double = converte
para ponto flutuante;
String = converte em string;
Array = converte em vetor;
Object = converte em objeto.

Exemplo :
<?php
$x = 50;
$y = 2,35;
$soma = (int) $y + $x;
echo $soma;
?>


No exemplo, a variável $y é do
tipo float, foi convertida para
inteiro por meio do conversor
int;
Se quiséssemos converter o
resultado de toda uma
expressão para inteiro, bastaria
colocar os parênteses para
delimitar expressão cujo
resultado deve ser convertido.
Por exemplo :
$soma=(float)($x+$y);
Tipos de Variáveis


Numéricas = valores inteiros ou
reais; Exemplo $numero = 10
ou $y = 15.002
Alfanuméricas ou Strings =
cadeias de caracteres que
podem ser delimitados por
aspas simples ‘ ou duplas
“;Exemplo $nome=‘Glaucio’ ou
$profissao=“professor”

Arrays = ou vetor, podem
armazenar vários valores ao
mesmo tempo, pois se trata de
uma estrutura de
armazenamento que possui um
identificador além de um índice
associado, onde cada índice
indica uma posição de memória
em que fica armazenado o
elemento do array. O índice
aparece entre colchetes[] logo
após o identificador do array.
Exemplo :
$vetor[0] = 30;
$vetor[1] = 40;
$vetor[“time”] = “Santos”;

Veremos mais adiante a utilização
correta dos arrays e seus casos
de aplicação.


Objetos = é um tipo de variável
que serve para instanciar uma
classe. Um objeto pode acessar
funções pré definidas numa
classe;
Teremos mais adiante um
aprofundamento em Orientação
a Objetos, quando veremos a
aplicação deste tipo de variável
mais detalhadamente.
Operadores






Operadores aritméticos = utilizados
para qualquer cálculo matemático,
somar, subtrair, multiplicar, dividir e
etc. São eles :
+ adição
- subtração
* multiplicação
/ divisão
% resto da divisão




Existem também os operadores
aritméticos que atuam apenas em
um operando e nos são úteis para
incrementar, decrementar ou trocar
sinais, são eles :
-oper – troca o sinal do operando;
++oper – primeiro incrementa o valor
do operando e depois realiza a
operação;
--oper - primeiro decrementa o valor
do operando e depois realiza a
operação;



Oper++ - primeiro realiza a
operação e depois realiza o
incremento;
Oper-- - primeiro realiza a
operação e depois realiza o
decremento;
Se o objetivo for somente
incrementar o valor de uma
variável, digita-se o nome da
variável seguido do operador
++, por exemplo :
$variavel ++;
Exemplo de Código :
<html>
<body>
<?php
$a=1;
$b=3;
$c=5;
$res1=++$b - $a;
$res2=$c-- + $a;
$res3= --$a+$c++;
echo”a = $a<br> b = $b<br> c = $c<br><br>”;
echo “res1 = $res1<br> res2 = $res2<br> res3 =
$res3<br>”;
?>
</body>
</html>


O resultado em tela deverá ser
o seguinte ?
a=0
b=4
c=5
res1 = 3
res2 = 6
res3 = 4
Operadores Relacionais



Permitem comparar duas ou
mais variáveis;
Com eles podemos testar se
uma variável é maior que a
outra ou se possui um valor
maior que determinado numero
ou ainda se o retorno de uma
função foi verdadeiro ou falso.
Veja a tabela a seguir ?







op1==op2 – verdadeiro se op1 for
igual a op2;
op1>=op2 – verdadeiro se op1 for
maior ou igual a op2;
op1<=op2 – verdadeiro se op1 for
menor ou igual a op2;
op1!=op2 – verdadeiro se op1 for
diferente de op2;
op1<>op2 – também serve para
representar diferença;
op1>op2 – verdadeiro se op1 for
maior que op2;
op1<op2 – verdadeiro se op1 for
menor que op2.
Operadores de Atribuição


São operadores utilizados para
representar a colocação de um
valor em uma variável;
A variável sempre estará do
lado esquerdo do operador e o
valor ou expressão a ser
atribuído sempre do lado direito.
Veja o quadro dos operadores
disponíveis :








Op1=op2 – op1 recebe o valor de op2;
Op1+=op2 - equivale a op1=op1+op2;
Op1-=op2 – equivale a op1=op1-op2;
Op1*=op2 – equivale a op1=op1*op2;
Op1/=op2 – equivale a op1=op1/op2
Op1.=op2 – Concatenação. Equivale a
op1.op2;
Op1%=op2 – equivale a op1=op1%op2;
Cuidado ao usar = e == . O comando = é
de atribuição e o == é de comparação !
Exemplo com comandos de atribuição :
<html>
<body>
<?php
$soma=0;
$valor1=10;
$valor2=20;
$valor3=30;
$soma += $valor1; //$soma fica com 10
$soma += $valor2; //$soma fica com 10+20=30
$soma *= $valor3; //$soma fica 30*30=900
$soma %= 100; //$soma fica com 900%100=0
echo $soma;
?>
</body>
</html>

Operadores Lógicos







São todos aqueles que nos retornam um
valor verdadeiro ou falso :
!op1 – verdadeiro se op1 for falso;
op1ANDop2 – verdadeiro se op1 E op2
forem verdadeiros;
op1ORop2 – verdadeiro se op1 OU op2
forem verdadeiros;
op1XORop2 – verdadeiro se SÓ op1 ou
SÓ op2 for verdadeiro;
Op1&&op2 – verdadeiro se op1 E op2
forem verdadeiros;
Op1||op2 – verdadeiro se op1 OU op2
forem verdadeiros;




Atenção para os operadores
AND e && e OR e ||.
A diferença básica entre eles
está na precedência.
A precedência mais alta é dos
operadores && e || e a mais
baixa está no AND e OR.
Cuidado ao utilizá-los pois seus
resultados serão diferentes. No
próximo tópico trataremos da
precedências desses
operadores.
Exemplo de código :
<html>
<body>
<?php
...
if (empty($nome) OR empty(&email) OR
empty($cpf))
{
echo”Você deve preencher os campos
NOME,E-MAIL e CPF !”;
exit;
}
...
?>
</body>
</html>

Tabela de resultados gerada
pelos operadores lógicos



AND (E)
V–V=V
V–F=F
F–V=F
F–F=F
OR(OU)
V–V=V
V–F=V
F- V=V
F- F=F
XOR (OU EXCLUSIVO)
V–V=F
V–F=V
F–V=V
F–F=F

!(NOT)
V=F
F-V
Precedência dos Operadores


Nada mais é que a ordem que
os programas em PHP tratam a
ordem de seus operadores.
Na tabela a seguir estão
listados os operadores em
ordem DECRESCENTE de
precedência :
-!~++- = negativo, não logico, inversão
de bits, incremento e decremento;
*/% = multiplicação, divisão e resto de
divisão;
+-. = adição, subtração e
concatenação;
<<>> deslocamentos binários;
>< >= <= = maior, menor,maior ou
igual, menor ou igual;
== != <> = iguale diferente;
& = AND binário;
^ = XOR binário;
| = OR binário;
&& = AND lógico;
|| = OR lógico;
?: = Operador ternário;
= += -= *= /= %= &= ~= <<= >>= ^= =
Operadores de atribuição;
AND = AND lógico (de menor
prioridade);
XOR = XOR lógico (de menor
prioridade);
OR = OR lógico (de menor
prioridade).
Observações


Sempre será executado primeiro as
operações que estiverem entre
parênteses. Se dentro dos
parênteses houver diversas
operações, daí sim será aplicada
pelo PHP a precedência para definir
a ordem.
Quando existirem operadores da
mesma precedência em uma
operação, o PHO começa a resolver
a expressão sempre da esquerda
para a direita.
Exemplo de Código:
<?php
$num = 5;
$resultado = 8+3*2 + ++$num;
echo “$num<br>”;
echo $resultado;
?>
 O resultado será :
6
20




O operador ++ tem prioridade
em relação aos operadores + e
*, portanto o programa primeiro
incrementou $num, passando a
vale 6.
O segundo operador que tem
precedência é o *, então
realizou-se a operação 3*2 = 6.
Depois ficamos então com a
soma de 8+6+6. 8+6=14 e
depois 14+6=20.
Arrays


Os arrays podem ser vistos como
uma forma de lista indexada de
variáveis (array unidimensional), ou
como uma tabela (array
bidimensional), e podem conter
qualquer tipo de dados (caracter,
inteiro, decimal, string).
Este tipo de estrutura de dados, é
bastante funcional, quando estamos
tratando informações relacionadas.
Exemplo :


imaginemos que estamos fazendo uma
lista de compras, e nessa lista queremos
produtos tal com couves, batatas, laranjas,
maçãs, e peras. Sem usar arrays, teríamos
que ter qualquer coisa do tipo:
$produto1="Batatas";
$produto2="Laranjas";
$produto3="Maças";
$produto4="Pêras";
Se quisermos saber quantos produtos
temos, teríamos que verificar se a variável
$produtoX tem, ou não, um valor. Com
arrays é diferente!. Ao invés de ter as
variáveis a parte, temos uma "lista" de
elementos. Exemplo da
lista de produtos com array:



$produto[0]="Batatas";
$produto[1]="Laranjas";
$produto[2]="Maçãs";
$produto[3]="Pêras";
Outra forma de criar um array, é
usado a função"array()" do php:
$produto=array("Batatas","Laran
jas","Maçãs","Peras");

Pode parecer que não mudou muito, ou
até que é mais complicado por levar os
parênteses , mas na verdade, este tipo de
estrutura de dados, é muito mais
vantajosa. Ao invés de termos varias
variáveis, temos uma lista de elementos,
dentro do array $produto: Assim, o
elemento 0 ($produto[0]) do array $produto
tem o mesmo valor que tinha a variável
$produto1; o elemento 1 ($produto[1]) tem
o mesmo valor que tinha a variável
$produto2; e assim sucessivamente.
Isto é bastante útil, porque a qualquer
momento, eu posso perguntar:
"Quantos elementos tem o array
$produto?" e automaticamente obtenho o
numero de produtos da minha lista de
compras.






Os arrays podem ser indexados por um
numero inteiro, ou uma palavra associada:
$numero[0]=1;
$idade["Dragon"]=22;
Se utilizarmos arrays bi-dimensionais,
podemos construir uma tabela. Exemplo:
Construir uma lista de compras para o Ze e
para a Maria:
$produto["Ze"][0]="Batatas";
$produto["Ze"][1]="Laranjas";
$produto["Ze"][2]="Maças";
$produto["Ze"][3]="Pêras";
$produto["Maria"][0]="Chocolates";
$produto["Maria"][1]="Doces";
Funções de Manipulação de
Array



Array
array array(...);
É a função que cria um array a partir
dos parâmetros fornecidos. É
possível fornecer o índice de cada
elemento. Esse índice pode ser um
valor de qualquer tipo, e não apenas
de inteiro. Se o índice não for
fornecido o PHP atribui um valor
inteiro sequencial, a partir do 0 ou do
último índice inteiro explicitado.



range
array range(int minimo, int
maximo);
A função range cria um array
cujos elementos são os inteiros
pertencentes ao intervalo
fornecido, inclusive. Se o valor
do primeiro parâmetro for maior
do que o do segundo, a função
Devolve false (valor vazio).



shuffle
void shuffle(array &arr);
Esta função "embaralha" o
array, ou seja, troca as posições
dos elementos aleatoriamente e
não Devolve valor algum.



sizeof
int sizeof(array arr);
Devolve um valor inteiro
contendo o número de
elementos de um array. Se for
utilizada com uma variável cujo
valor não é do tipo array,
Devolve 1. Se a variável não
estiver setada ou for um array
vazio, Devolve 0.
Funções de Ordenação de
Arrays

São funções que servem para
ordenar os elementos de um
array de acordo com
determinados critérios. Estes
critérios são: manutenção ou
não da associação entre índices
e elementos; ordenação por
elementos ou por índices;
função de comparação entre
dois elementos.



sort
void sort(array &arr);
A função mais simples de
ordenação de arrays. Ordena os
elementos de um array em
ordem crescente, sem manter
os relacionamentos com os
índices.



rsort
void rsort(array &arr);
Funciona de maneira inversa à
função sort. Ordena os
elementos de um array em
ordem decrescente, sem os
manter os relacionamentos com
os índices.






asort
void asort(array &arr);
Tem o funcionamento bastante
semelhante à função sort. Ordena os
elementos de um array em ordem
crescente, porém mantém os
relacionamentos com os índices.
arsort
void arsort(array &arr);
Funciona de maneira inversa à
função asort. Ordena os elementos
de um array em ordem decrescente
e mantém os relacionamentos dos
elementos com os índices.






ksort
void ksort(array &arr);
Função de ordenação baseada nos
índices. Ordena os elementos de um array
de acordo com seus índices, em ordem
crescente, mantendo os relacionamentos.
usort
void usort(array &arr, function compara);
Esta é uma função que utiliza outra função
como parâmetro. Ordena os elementos de
um array sem manter os relacionamentos
com os índices, e utiliza para efeito de
comparação uma função definida pelo
utilizador, que deve comparar dois
elementos do array e devolver 0, 1 ou -1,
de acordo com qualquer critério
estabelecido pelo utilizador.



uasort
void uasort(array &arr, function
compara);
Esta função também utiliza outra
função como parâmetro. Ordena os
elementos de um array e mantém os
relacionamentos com os índices,
utilizando para efeito de comparação
uma função definida pelo utilizador,
que deve comparar dois elementos
do array e devolver 0, 1 ou -1, de
acordo com qualquer critério
estabelecido pelo utilizador.



uksort
void uksort(array &arr, function
compara);
Esta função ordena o array através
dos índices, mantendo os
relacionamentos com os elementos.,
e utiliza para efeito de comparação
uma função definida pelo utilizador,
que deve comparar dois índices do
array e devolver 0, 1 ou -1, de
acordo com qualquer critério
estabelecido pelo utilizador.
Estruturas de Controle –
Comandos Condicionais


Com estes comandos temos a
oportunidade de avaliar uma
expressão, onde, dependendo do
seu resultado, executar um trecho
de código diferente. Sempre que há
necessidade de uma tomada de
decisões utilizamos esses
comandos.
Os comandos condicionais são IF e
SWITCH.
IF => comando que avalia a expressão e
dependendo do resultado executa um conjunto
diferente de instruções.O IF pode possuir como
complemento o ELSEIF e/ou o ELSE. Veja a
sintaxe :
 If (expressão1)
{bloco1}
elseif (expressão 2)
{bloco2}
else
{bloco3}
A leitura se assim ?
Se expressão 1 for verdadeira, execute bloco1;
Senão se expressão2 for verdadeira, execute bloco2;
Senão execute bloco3.


Exemplo de código :
<?php
$prova1=7;
$prova2=5;
$nota=($prova1+$prova2)/2;
if ($nota<3)
$desempenho=
“PESSIMO”;
elseif ($nota<5)
$desempenho=
“RUIM”;
elseif ($nota<7)
$desempenho=
“MEDIO”;
elseif ($nota<9)
$desempenho=
“BOM”;
else
$desempenho=“EXCELENTE”;
echo “O seu desempenho foi $desempenho”;
?>
Outro exemplo :
<?php
if ($nota ==10)
{
echo “Parabéns! <br>”;
echo “Você tirou a nota
máxima!”;
}
?>
Neste exemplo, somente se a nota for
= 10 será executado o bloco todo,
caso contrário não acontecerá nada.

SWITCH


É parecido com o comando IF, pois ambos
avaliam o valor de uma expressão para
escolher qual bloco de instruções deve ser
executado. Algumas vezes você tem a
mesma variável a ser testada com valores
diferentes, nesse caso o mais indicado é
comando SWITCH, que trabalha com o
operador de igualdade, enquanto o IF
trabalha com qualquer tipo de operador.
O SWITCH torna o código mais limpo que
o IF, pois este se utiliza apensa de uma
cláusula (CASE), enquanto o IF utilizada
várias(if,elseif,else e as vezes endif).
Exemplo de código :
Switch (operador)
{
case valor1:
comandos
break;
case valor2:
comandos
break;
}


Perceba que após cada bloco
de comandos sempre utilizamos
o comando BREAK, para que o
SWITCH seja encerrado e a
execução continue após ele,
caso contrário o PHP continua a
execução do programa dentro
do SWITCH, avaliando as
demais expressões.
Exemplo com IF :
<?php
...
If ($numero == 0)
{
echo “numero vale 0”;
}
elseif ($numero ==1)
{
echo “numero vale 1”;
}
elseif ($numero ==2)
{
echo “numero vale 2”;
}
...
?>

Exemplo com SWITCH
<?php
...
Switch ($numero)
{
case 0:
echo “numero vale 0”;
break;
case 1:
echo “numero vale 1”;
break;
case 2:
echo “numero vale 2”;
break;
}
...
?>




No comando SWITCH também
podemos utilizar a opção
DEFAULT, que tem a mesma
função do ELSE no comando IF.
Lembrando que o comando
DEFAULT NÃO É
OBRIGATÓRIO no comando
SWITHC.
Veja um exemplo :
<?php
...
Switch ($opcao)
{
case ‘s’ :
echo “Você escolheu SIM”;
break;
case ‘n’ :
echo “Você escolheu NÃO”;
break;
default :
echo “A opção digitada é inválida”;
break;
}
?>
Comando de Repetição

WHILE – em português significa
enquanto. Ele avalia a
expressão e enquanto a
expressão for verdadeira, a
execução do mesmo bloco se
repetirá. Quando se tornar falso,
a execução vai para o final do
comando WHILE
Sintaxe :
While (expressão)
{
comandos
}


Atenção para não colocar dentro do
comando WHILE expressões que
jamais se tornarão falsas, senão
teremos um loop infinito dentro do
programa.
Exemplo de código :
<?php
$cont=1;
while ($cont<100)
{
echo “O valor atual do contador
é $cont <b>”;
$cont++;
}
?>
 A execução desse programa resultará em
99 linhas mostradas na tela.
 Se ao invés de usarmos $cont<100
usássemos a expressão $cont!=0
(diferente de 0), teríamos neste caso um
loop infinito.


DO WHILE = A diferenã entre o
DO WHILE e o WHILE é que o
while avalia a expressão no
inicio do laço e o DO WHILE no
final do laço, portanto, utilizando
o DO WHILE o laço será
executado pelo menos uma vez,
enquanto que no WHILE o laço
pode não ser executado, caso
na primeira avaliação a
expressão avaliada retorne
falso.
Sintaxe :
Do
{
comandos
}
While (expressão)

Exemplo de Código :
<?php
$numero=1;
do
{
echo “O valor atual do número é
$numero <br>”;
$numero++;
}
while ($numero<4);
?>
 O resultado apresentado será
O valor atual do número é 1
O valor atual do número é 2
O valor atual do número é 3

Comando FOR = utilizado quando
queremos executar um conjunto de
instruções um certo número de
vezes.
 Por exemplo, pode ser útil quando
se quer imprimir todos os elementos
de um array, ou todos os registros
que retornaram de uma consulta de
um banco de dados.
 Sintaxe =
For (inicialização;condição;operador)
{
comandos
}

Ou ainda ?
For (inicialização;condição;operador)
comandos
Endfor;
Onde :



Inicialização = onde determinamos o valor inicial da
variável que vai controlar o loop, por exemplo
$cont=0;
Condição = a condição que deve ser atingida para
que o loop continue, exemplo, para executar o loop
20 vezes, a condição seria $cont<20.
Operador = usado para autalizar o valor da variável
de controle do loop, fazendo incremento ou
decremento. Ao final de cada iteração do loop, o
valor da variável de controle é automaticamente
atualizado.
Exemplo de código :
<?php
for($cont=0;$cont<10;$cont++)
{
echo”A variável \$cont vale
$cont”;
echo”<br>”;
}
?>

O resultado gerado pela
execução desse programa será
o seguinte :
A variável $cont vale 0
A variável $cont vale 1
A variável $cont vale 2
A variável $cont vale 3
...
A variável $cont vale 9

<html>
<body>
<?php
echo”Contagem regressiva: <br>”;
for($i=15;$i>=0;$i--)
{
echo $i.”,”;
}
echo”...FIM !”;
?>
</body>
</html>
O resultado será o seguinte :
15,14,13,12,11,10,9,8,7,6,5,4,3,2,
1,0...FIM !

Apesar de pouco comum, podemos ter mais de
uma variável na inicialização do FOR e mais de um
operador no terceiro parâmentro. Basta utilizar a
vírgula, veja o exemplo :
<?php
for($i=0,$k=10;$i<10;$i++,$k--)
{
echo”\$i vale $i e\$k vale $k”;
if ($i==$k)
{
echo”(os valores são iguais !)”;
}
echo “<br>”;
}
?>

A tela deverá aparecer assim :
$i vale 0 e $k vale 10
$i vale 1 e $k vale 9
$i vale 2 e $k vale 8
$i vale 3 e $k vale 7
$i vale 4 e $k vale 6
$i vale 5 e $k vale 5(os valores são
iguais!)
$i vale 6 e $k vale 4
$i vale 7 e $k vale 3
$i vale 8 e $k vale 2
$i vale 9 e $k vale 1

Comando FOREACH = só funciona
do php4 em diante.
 É o tipo de comando que nos
permite “navegar” entre os
elementos de um array muito mais
facilmente.
 Sintaxe =
Foreach($nome_array as $elemento)
{
comandos
}




Comando BREAK = termina a
execução do comando atual,
que pode ser um if, for, while ou
switch.
Quando este comando é
encontrado o fluxo de execução
passa para o primeiro comando
após o término dessa estrutura.
É um grande recurso que pode
ser utilizado para forçar a saída
de um laço ou de um comando
condicional
<?php
...
$k = 1;
while ($k<20)
{
if($vetor[$k]==“Sair”)
{
break;
}
echo $vetor[$k].”<br>”;
$k++;
}
?>

1)
2)
Este programa apresentará na
tela os valores de um vetor
qualquer. O looping será
encerrado de duas formas :
Se o valor de $k for maior ou
igual a 20;
Se algum elemento do vetor
possuir o valor “sair”.

O comando BREAK também
aceita um argumento numérico
como opcional, que diz o
número de estruturas que
deverá ser finalizado. Portanto,
utilizar o break seria a mesma
coisa que usar um break1.
<?php
$i=0;
$k=0;
while ($k<10)
{
$i++;
$k++;
while ($i<20)
{
if($i==10)
{
echo”Encerrando o primeiro while...<br>”;
break;
echo”Esta linha não vai ser impressa.”;
}
elseif($i==15)
{
echo”encerrando os dois whiles...”;
break2;
}
$i++;
}
}
?>



No exemplo, quando a variável $i
chegar ao valor 10, a execução
passa para dentro do if, e quando o
break é executado termina
imediatamente a execução do laço
atual. Logo após, o comando echo
não será executado.
Quando $i chegar a 15, o comando
executado será o break2. Sendo
assim, as duas estruturas de
repetição serão finalizadas.
A execução continuará após os dois
whiles. Esse é o principal objetivo do
comando break.

Comando CONTINUE =
utilizado dentro dos comandos
de repetição para ignorar o
restante das instruções
pertencentes ao laço corrente e
ir para a próxima iteração
voltando ao início do laço.
<?php
$vetor=array(1,3,5,8,11,12,15,20);
for($i=0;$si<sizeof($vetor);$i++)
{
if($vetor[$i]%2 !=0) //é impar
{
continue;
}
$num_par=$vetor[$i];
echo”O numero $num_par é
par.<br>”;
}
?>




A função SIZEOF nos devolve o numero
de elementos do array, no caso, 8. O FOR
passa por todos os elementos do array,
mas somente os numeros pares
aparecerão na tela.
No comando if o programa testa se o resto
de alguma divisão é diferente de zero, ou
se o número é impar.
Se ele encontrar um numero impar, o
comando continue é executado e os
comandos seguintes não serão
executados. Sendo assim a execução
retorna ao início do laço e o proximo
elemento do vetor é acessado.
No final do laço só teremos valores pares
mostrados na tela, pois o comando
continue evitou que os ímpares fossem
mostrados.
Funções
São trechos de código que realizam
qualquer tipo de tarefa, como por exemplo
validar um cpf, converter letras minúsculas
para maiúsculas, somar números e etc.
 As funções podem ser acionadas a
qualquer momento em qualquer parte do
programa.
 Sintaxe :
Function nomeFunção(arg1,arg2...)
{
comandos
[return <expressão>]
}



O nome da função deverá ser
um identificador com um nome
único no programa.
Este não deve iniciar com um
número e não é permitido a
utilização de caracteres como
ponto, vírgula, espaço e etc. O
_(sublinhado) é bastante
utilizado em nome de funções.


Uma função numa chamada
recebe diversos valores que
chamamos de argumentos, que
são valores recebidos no
momento da chamada e que
serão processados no código da
função.
A utilização desses parâmetros
é opcional e se a função não
necessita de parâmetros, deve
ser declarada apenas function
nomeFuncao()


Quando o php encontrar uma
chamada a uma função, a execução
do programa é interrompida e o fluxo
de execução passa para o início do
código da função. Quando acabar a
execução da função o programa vai
para a próxima linha de quando ele
parou antes de executar a função.
Existe um comando opcional nas
funções que é o return. Ele existe
para quando quisermos retornar um
valor da função para o ponto de
onde foi chamada. Utilizamos return
em duas situações :
Exemplo :
<?php
function cubo($valor)
{
$cubo=$valor*$valor*$valor;
return $cubo;
}
$valor = 7;
echo “O cubo de $valor é “ .
cubo($valor);
?>

1)
2)

– quando queremos atribuir o
valor retornado a uma variável;
- quando queremos testar o
valor de retorno de uma
função;
A função também pode
simplesmente não retornar
nenhum valor, simplesmente
executar alguns cálculos e
exibir alguma coisa na tela.
Criando Funções
Exemplo :
<?php
function soma_valores($valor1,$valor2,$valor3)
{
$soma=$valor1+$valor2+$valor3;
echo”A soma dos valores $valor1, $valor2, $valor3
é $soma”;
}
$n1=10;
$n2=20;
$n3=50;
soma_valores($n1,$n2,$n3);
?>

Passagem de Parâmetros
:valor e referência

Se uma função recebe como
argumento uma variável, por
exemplo $teste que possui o
valor 10, quando a função
acabar de se executar a variável
terá ainda o mesmo valor, isso
fica inalterado indiferente do
que aconteça dentro da função.
A isso chamamos de passagem
de parâmetros por valor.


Existem casos que queremos
que o valor da variável se altere
na execução da função. A esse
processo chamamos de
passagem de valores por
referência.
Para isso, devemos colocar o
símbolo & antes do nome da
variável.
<?php
function dobro($valor)
{
$valor = 2*$valor;
}
function duplica (&$valor)
{
$valor=2*$valor;
}
$valor=5;
dobro($valor);
echo $valor . “<br>”;
duplica ($valor);
echo $valor;
?>

A grande diferença entre
passagem por valores e
passagem por referência é que
por referência o php altera os
valores diretamente na variável
aplicada, e por valores é feita
uma cópia do conteúdo da
variável e as alterações são
feitas nessa cópia, não
refletindo na variável original
portanto.
Funções de Data e Hora


Você pode usar estas funções para tratar
com a data e a hora. Estas funções
permitem conseguir a data e a hora do
servidor onde o PHP está rodando. Você
pode usar estas funções para formatar a
saída de data e hora de muitas maneiras
diferentes.
Obs: Tenha em mente que estas funções
dependem das configurações locais do
servidor. Considerar especialmente horário
de verão e anos bissextos.







Algumas Funções :
checkdate -- Valida uma data/hora;
Sintaxe = bool checkdate ( int
month, int day, int year);
Retorna TRUE se a data dada é
válida; caso contrário retorna
FALSE. Checa a validade da data
formada pelos argumentos. Uma
data é considerada válida se:
o year está entre 1 e 32767
o month está entre 1 e 12
Day deve está dentro do número de
dias permitidos para o dado month.
years são levados em consideração.


Date = Formata a data e a hora
local ;
Sintaxe : string date ( string
format [, int timestamp])
Retorna uma string de acordo
com o formato da string usando
o inteiro dado timestamp ou a
hora corrente local se nenhum
timestamp é dado.


Nota: A linha válida de um timestamp é
tipicamente de Fri, 13 Dec 1901 20:45:54
GMT to Tue, 19 Jan 2038 03:14:07 GMT.
(Estas são as datas que correspodem aos
mínimos e máximos valores para um
inteiro de 32-bit definido). No windows esta
linha é limitada de 01-01-1970 para 19-012038.
Para gerar um timestamp de uma string
para representação de data, você deve
estar capaz de usarstrtotime().
Adicionalmente, alguns bancos de dados
têm para converter suas datas em
timestamps (tais como a função MySQL's
UNIX_TIMESTAMP ).













GetDate = Consegue informações data/hora ;
Sintaxe = array getdate ( [int timestamp]) ;
Retorna uma matriz contendo a data do timestamp,
ou a hora corrente local se se nenhum timestamp é
dado, como a seguintes elementos da matriz:
"seconds" - segundos
"minutes" - minutos
"hours" - horas
"mday" - dia do ano
"wday" - dia da semana, numérico : de 0 como
Domingo até 6 como Sábado
"mon" - mês, numérico
"year" - ano, numérico
"yday" - dia do ano, numérico; i.e. "299"
"weekday" - dia da semana, texo, completo; i.e.
"Friday"
"month" - mês, texto, completo; i.e. "January"

Exemplo :
$today = getdate(); $month =
$today['month']; $mday =
$today['mday']; $year =
$today['year']; echo "$month
$mday, $year";






Mktime =Obtém um modelo UNIX para uma data ;
Atenção: Note a estranha ordem dos argumentos, que
diferem da ordem dos argumentos em um chamada
regular da UNIX mktime() e que não combina bem com si
mesma para a omissão dos parâmetros da direita para a
esquerda (veja abaixo). é um erro comum misturar estes
valores acima em um script.
Retorna o timestamp Unix correspondente para os
argumentos dados. Este timestamp é um longo inteiro
contendo o número de segundos entre a Era Unix
(January 1 1970) e o tempo especificado.
Argumentos podem ser omitidos da direita para
esquerda; quaisquer argumentos assim omitidos serão
definidos para o valor atual de acordo com a data e a
hora local.
is_dst pode ser definido para 1 se está durante o horário
de verão, 0 se não estiver, ou -1 (o padrão) se não se
sabe se está em horário de verão ou não. Se é
desconhecido, o PHP tenta calcular. Isto pode causar
resultados inesperados (mas não incorretos).
Nota: is_dst adicionado no 3.0.10.

mktime() é útil para fazer data
aritimética e validação, ela
calculará automaticamente o
valor correto para um receptor
fora de linha. Por exemplo, cada
uma das seguintes linhas
produz a string "Jan-01-1998".



Strtotime = Analisa qualquer
descrição em texto em inglês de
data hora em timestamp UNIX ;
Sintaxe = int strtotime ( string time [,
int now])
Exemplo :
echo strtotime ("now"), "\n"; echo
strtotime ("10 September 2000"),
"\n"; echo strtotime ("+1 day"), "\n";
echo strtotime ("+1 week"), "\n";
echo strtotime ("+1 week 2 days 4
hours 2 seconds"), "\n"; echo
strtotime ("next Thursday"), "\n";
echo strtotime ("last Monday"), "\n";
Funções de Manipulação de
Strings
CHR = Retorna um caracter específico. Retorna
uma string de um único caractere contendo o
caracter especificado pelo ascii.
 Sintaxe = string chr ( valor ascII )
 Exemplo
<?php
//retornando o alfabeto em letras minusculas
for($i=97;$i<123;$i++)
{
echo chr($i).”($i)”.($i<122 ? “,”:””);
}
?>









COUN T_CHARS = retorna algumas informações
sobre os caracteres existentes na string informada.
Sintaxe = array/string count_chars(valor,modo)
Dependendo do modo informado, será retornado
um array(modos 0,1 e2) ou uma string(modos 3 e
4). Os possíveis valores para o modo e o resultado
obtido da função são os seguintes :
1 – modo padrão, retorna um array numerado de 0
a 255 com o número de repetições para cada byte
correspondente na string informada.
2 – O mesmo que zero, mas retorna somente se o
número de repetições for maior que zero.
3 – O mesmo que zero, mas retorna somente se o
numero de repetições for igual zero.
4 – Uma string contendo uma lista de todos os
caracteres presentes na string.
5 – Uma string contendo uma lista de todos os
caracteres ausentes na string.
Exemplo :
<?php
$valor = “PHP 5 – Guia do
Programador, Editora Érica – 2004”;
$s1=count_chars($valor,1);
$s2=count_chars($valor,3);
echo”<pre>”;
print_r($s1);
echo $s2;
echo “</pre>”;
?>
OBS : Print_r faz com que o php imprima na
tela um array num formato intelegível




EXPLODE = retorna um array
contendo cada elemento de uma
parte da string informada. Cada
parte será determinada conforme o
separador informado.
Sintaxe = array
explode(separator,string,limite)
O último parâmetro, limite, é
opcional e se informado, indica à
função o número máximo de
elementos do array(neste caso o
último elemento do array conterá o
restante da string).
<?php
$string=“Este é um exemplo
da função explode no PHP”;
$v1=explode(“ “,$string);
$v2=explode(“ “,$string,3);
echo”<pre>”;
print_r($v1);
print_r($v2);
echo “</pre>”;
?>



IMPLODE = faz o inverso do
EXPLODE, retorna uma string
representando todos os
elementos do array informado e
separando os elementos com o
separador informado.
Sintaxe = string
implode(separador,array)
Exemplo :
<?php
$arr = array(“PHP5”,”Guia do
Programador”);
echo implode(“ “,$arr);
?>




Str_replace/str_ireplace = executam a
busca e a substituição de um texto por
outro dentro de uma string informada. A
diferença é que str_replace é case
sensitive e a outra não. A sintaxe para
ambas é a mesma.
Sintaxe = string
str_replace(texto_src,texto_rep,texto_princ,
cont)
Onde texto_src é o texto que deve ser
procurado em texto_princ,text_rep é que
irá substituir todas as ocorrências de
text_src em texto_princ, e cont é opcional
e se for informada receberá o número de
trocas efetuadas.
Exemplo :
<?php
$texto=“PHP5 – Guia Programador”;
$vog=array(“a”,”e”,”i”,”o”,”u”);
$s1=str_replace($vog,”-”,$texto,$cont);

$s2=str_ireplace(“PHP”,”*”,”$texto”,$co
nt2);
echo “str_replace: $s1. Número de
substituições: $cont <br>”;
echo “str_ireplace: “ . $s2 . “ Número
de substituições: $cont2<br>”;
?>
STRLEN = fornece o tamanho
da string informada.
 Sintaxe = integer strlen(texto)
 Exemplo :
<?php
$texto=“Paralelograma”;
echo strlen($texto);
?>

STRTOLOWER = a função
strtolower transforma todos os
caracteres da string informada
em minúsculas.
 Sintaxe = string strtolower(texto)
 Exemplo :
<?php
$texto = “Teste de LETRAS”;
echo strtolower($texto);
?>

STRTOUPPER = ao inverso do
strtolower, esta função retorna
uma string com todos os
caracteres em maiúsculos.
 Sintaxe = string
strtoupper(texto)
 Exemplo :
<?php
$texto=“PHP TESTE”;
echo strtoupper($texto);
?>

SUBSTR = retorna um pedaço da
string informada.
 Sintaxe = string
substr(texto,posic_inicial,tamanho)
 OBS : a posição inicial de uma string
no PHP é ZERO e não 1, tome
cuidado.
 Exemplo :
<?php
$texto=“Texto inicial do PHP”;
echo substr($texto,0,14);
?>

Exemplo de funções para obter o IP
e o BROWSER do visitante, veja o
exemplo :
<?php
$ip =
($_SERVER['REMOTE_ADDR']);
print (" Seu IP corrente é: $ip");
?></br>
<? $browser =
($_SERVER['HTTP_USER_AGENT']
);
print ("Você está usando $browser");
?>

Outras funções de IP
Veja o exemplo ?
$ip = $_SERVER['REMOTE_ADDR'];
echo $ip; // 127.0.0.1
$host =
gethostbyaddr($_SERVER['REMOT
E_ADDR']);
echo $host; // localhost
$get_ip =
gethostbyname('www.uol.com.br');
echo $get_ip; // 200.221.2.45


A primeira função,
$_SERVER[’REMOTE_ADDR’],
é utilizada para sabermos o
endereço de IP de um usuário,
por exemplo. A segunda,
gethostbyaddr(), informa o
nome do host name de Internet
referente ao endereço de IP. A
função gethostbyname() retorna
o endereço de IP
correspondente a um host name
de internet
Estruturas de Controle
Especiais


REQUIRE E INCLUDE - Têm por
objetivo inserir pedaços de código
PHP no script atual. A diferença
básica entre eles está na maneira
como tratam os erros.,
O INCLUDE produz apenas uma
mensagem de aviso (warning) e o
REQUIRE produz um erro fatal (fatal
error), encerrando a execução do
programa.

Sintaxe = INCLUDE (nome arquivo)
e
REQUIRE(nome arquivo)
Exemplo :
<?php
//variaveis.inc
$meses=array(“jan”,”fev”,”mar”,”abr”,
”mai”,”jun”,”jul”,”ago”,”set”,”out”,”nov”
,”dez”);
$dias=(“seg”,”ter”,”qua”,”qui”,”sex”,”s
ab”,”dom”);
?>
<?php
//teste.php
print_r($dias);
include(“variaveis.inc”);
print_r($dias);
print_r($meses);
?>

INCLUDE_ONDE e
REQUIRE_ONCE

Têm as mesmas funcionalidades do
REQUIRE e do INCLUDE, só que
com uma diferença fundamental. O
PHP verifica se o arquivo que
estamos tentando inserir já foi
inserido anteriormente.Se já foi
inserido, ele não será entrará no
código novamente. Muito útil para
códigos muito dinâmicos com muitas
includes e requires, nem sempre
sabemos quais aquivos já foram
inseridos.

DICA = Tanto o include_once e
o require_once são case
sensitive. Portanto, não importa
o sistema operaciona, o php
fará distinção entre maiúsculas
e minúsculas nos nomes dos
arquivos, cuidado.
Comando RETURN

Return pode ser utilizado dentro
das funções em PHP ou dentro
de um script ou ainda dentro de
um arquivo incluído. Seu efeito
é encerrar a função atual, o
programa ou o processamento
do arquivo inserido.
<?php
//arq1.inc
Function dobro($valor)
{
return $valor * 2;
}
If ($vlr==0)
{
return -1;
}
Else
{
return dobro($vlr);
}
?>
<?php
$vlr=10;
$b = include(“arq1.inc”);
echo $b;
?>
Esse script tem como resultado
20.
Formulários
Exemplo de um código básico para
um formulário :
<form>
<p>Digite seu E-Mail : <input
type=“text”name=“email”
size=“20”></p>
<p><input
type=“submit”value=“Enviar
!”name=“enviar”></p>
</form>

Para se tornar esse formulário
devemos informar para onde irá o
formulário. Aí que entra o PHP.
Fazemos isso com a opção action,
utilizada na tag form do HTML.
<form action=“recebeDados.php”>
<p>Digite seu E-Mail : <input
type=“text”name=“email”
size=“20”></p>
<p><input
type=“submit”value=“Enviar
!”name=“enviar”></p>
</form>




Agora sim, toda vez que este
programa HTML rodar, suas
informações serão processadas
pelo programa PHP declarado.
Falta agora criar o programa em
PHP que fará isso.
Observe também que temos a
tag input no formulário, que
pode assumir os seguintes
valores :





Name= nome do campo
Value=valor padrão para o
campo
Size= tamanho do campo na
tela
Maxlenght=numero maximo de
caracteres que podem ser
digitados no campo
Type=informa qual o tipo do
campo de entrada de dados












Também temos as possíveis opções para a cláusula type,
dentro do input :
Text=caixa de texto de uma linha, dados numéricos ou
alfa.
Password=para digitação de senhas, são mostrados *.
Hidden=campo escondido, não aparece na tela.
Utilizados para passar informações aos programas que
recebem os dados.
Select=lista de seleção
Checkbox=caixa de seleção que pode ser marcada ou
desmarcada.
Radio=botões de seleção, o usuário escolhe uma entre
várias.
Textarea=caixa de texto com várias linhas
File=permite o envio de arquivos
Submit=botão que aciona o envio das informações do
formulário
Image=mesma função do submit, mas utiliza uma
imagem ao invés do botão tradicional
Reset=limpa todos os campos do formulário e os retorna
ao valor padrão.
Enviando as Informações



Existem dois métodos para o
envio de informações. GET e
POST.
Ambos são colocados na tag
form com o comando method :
<form action=“processa.php”
method=“POST”
GET é o método padrão, portanto se nenhum
parâmetro for informado, o HTML assume como
GET.
 Considere o formulário ?
<form action=“recebeDados.PHP>
<p>Digite seu Nome : <input type=“text”
name=“nome” size=“30”></p>
<p>Digite sua Idade : <input type=“text”
name=“idade” size=“3”></p>
<p><input type”submit” value=“Enviar !”
name=“enviar”></p>
</form>

Note que não há o method, portanto será utilizado o
GET.
Ao preenchermos os camps e quando clicarmos no
botão, o endereço ativado será o seguinte :
http://www.seusite.com.br/recebeDados.php?nome=Jo
aquim&idade=20



Os campos serão passados como parâmetros após
o endereço de destino. O caractere ? Representa o
início de uma cadeia de variáveis e o & o início de
uma nova variável.As variáveis e seus valores são
separadas por =.
Em GET existe o inconveniente de se limitar o
numero de caracteres a ser enviado, mais ou
menos 2000. Outro problema é que o usuário
enxergará os dados a serem enviados na barra de
endereço do browser. Para isso existe o método
POST.
A vantagem é que o método GET, por passar os
valores de parâmetros na barra de endereço, pode
ser utilizado para enviar esses dados de uma
página para outra. Já o POST não faz isso, só
processa o formulário mesmo.
Método POST
<form action=“recebeDados.PHP
method=“POST”>
<p>Digite seu Nome : <input
type=“text” name=“nome”
size=“30”></p>
<p>Digite sua Idade : <input
type=“text” name=“idade”
size=“3”></p>
<p><input type”submit”
value=“Enviar !” name=“enviar”></p>
</form>




Neste caso, utilizando o POST, os dados
serão enviados ao servidor por meio do
corpo da mensagem, Portanto, ao clicar
em enviar, o usuário não verá aquele
endereço enorme na barra de endereço,
só verá o endereço do programa.php.
Não há limitação de tamanho como no
GET.
Portanto, é recomendado se utilizar o
POST para formulários com muitas
informações.
Além disso, no POST podemos enviar
outros tipos de informações não aceitas no
GET, como imagens ou outros arquivos.
Tratando as Informações
recebidas no PHP
O programa php que tratará
suas informações, agirá da
seguinte forma :
<?php
$username=$_POST[“usernam
e”];
$nome=$_POST[“nome”];
E assim por diante.

Validação dos Campos

Podemos testar os valores do
formulário. Por exemplo, posso
testar se algum campo que deve ser
numérico veio com letras por
exemplo, ou se um campo
obrigatório está em branco. Posso
ainda exigir um número mínimo de
caracteres por exemplo, para um
campo senha que seja obrigatório no
mínimo 5 dígitos.
Para isso testamos seus valores da seguinte forma,
após termos atribuído seus valores nas respectivas
variáveis :
 Strlen = retorna o numero de caracteres de uma
string. Exemplo :
if(strlen($username)<5)
{
echo “O numero minimo de caracteres é 5 !”
 Empty= verifica se a string está vazia ou nula.
Exemplo ?
if(empty($nome))
{
echo “Favor preencher o campo nome !”;
 Strstr = verifica a primeira existencia em uma string.
Exemplo :
if strstr($email,”@”)

Upload de Arquivos

É relativamente fácil se incluir um
upload de arquivos em nossa
página. Basta antes de mais nada
criar nosso formulário com o campo
(INPUT TYPE=“FILE”>, não
esquecendo de acrescentar no
marcador FORM o elemento
ENCTYPE=“multipart/form-data”,
sem isso tudo o upload não
funcionará.
Programação O.O. em PHP

No PHP já temos recursos
como gerenciamento de
exceções (try,catch), herança,
definição de atributos e métodos
públicos e privados,
construtores, destruidores e
reflexão de classes,
possibilitando uma melhor
estruturação nos sistemas.
Classes – Definição e Criação

Classe é uma abstração de um objeto, ou
seja, é um modelo a partir do qual os
objetos podem ser criados.Enquanto um
objeto representa algo real em um
instante, a classe é uma generalização
deste. Tipo, um objeto funcionário, tem
nome João, Idade 43. Já a classe é
genérica para todos. Por exemplo, temos
as características deste objeto, como
nome, idade, endereço e etc. Percebe-se
que estamos tratando esses dados para
todos !

Para se criar uma classe no
PHP devemos seguir a seguinte
forma :
Class nome_classe
{
atributos
métodos
}
Este é um formato mínimo para criarmos
uma classe em PHP :
<?php
class carro
{
private $_marca;
private $_modelo;
private $_cor;
private $_ano;

public function setMarca($_m)
{
$this ->_marca=$_m
}
public function setModelo($_mo)
{
$this->_modelo=$_mo;
}
public function setCor($_c)
{
$this->_cor=$_c;
}
public function setAno($_a)
{
$this->_ano=$_a;
}
public function getMarca()
{
return $this->_marca;
}
public function getModelo()
{
return $this->_modelo;
}
public function getCor()
{
return $this->_cor;
}
public function getAno()
{
return $this->_ano;
}
public function getCarro()
{
return “Marca: “.$this>getMarca().”<br/>”.
“Modelo: “.$this->getModelo().”<br/>”.
“Cor: “.$this->getCor().”<br/>”.
“Ano: “.$this->getAno();
}
}
?>
Visibilidade de Atributos e
Métodos



Os métodos e atributos de uma
classe em PHP podem ser definidos
como private, public e protected.
Public = um atributo ou método
definido como publico torna-o
acessível em qualquer lugar da
classe, subclasse bem como em
qualquer parte dos scripts que
contêm a classe.
Exemplo :
<?php
class carro
{
public $_modelo;
public function setModelo($_m)
{
$this->_modelo=$_m;
}
}
$_c=new carro();
$_c->setModelo(“FORD”);
$_c-> _modelo=“CHEVROLET”;
?>
Protected = atributos ou métodos definidos como protected são visíveis pela classe
que os criou e por suas subclasses, fora deste contexto não estão acessíveis.
<?php
class carro{
protected $_modelo;
public function setModelo($_m){
$this->_modelo=$_m;
}
}
class caminhao extends carro{
protected $_eixos;
public function setModelo($_m){
parent:::_modelo=$_m;
}
public function setEixo($_ne){
$this->_eixos=$_ne;
}
}
$_c=new carro();
$_c->setModelo(“FORD”);
$_c->_modelo=“CHEVROLET”; //gera um erro
$_c= new caminhao();
$_c->setModelo(“SCANIA”);
$_c->setEixo(8);
var_dump($c);
?>



Private = os atributos e métodos
são visíveis apenas na classe
que os criou, ou seja,
subclasses ou o script que
comtêm a classe não podem
acessar esses atributos ou
métodos.
Exemplo :
<?php
class pessoas{
private $_tipo;
protected $_nome;
protected $_endereco;
protected $_telefone;
protected function setTipo($_t){
$_this->_tipo=$_t;
}
}
class estudante extends pessoas{
protected $_curso;
function _CONSTRUCTOR(){
parent::setTipo(“E”);
}
}
$e=new estudante();
$e->_tipo=“A”;//erro
?>
Funções Especiais – HTTP

As funções HTTP servem para
gerenciamento da conexão
entre o PHP e o browser do
usuário. As principais funções
são : header, para o envio de
um cabeçalho http, header_list
para obter uma lista do
cabeçalho e headers_sent para
verificar se um cabeçalho foi
enviado ou não.
HEADER





Esta função serve para enviar um ou
vários cabeçalhos http.
Sintaxe : header(cabeçalho,atualiza)
O parâmetro atualiza indica se um
cabeçalho anterior do mesmo tipo deve ser
atualizado(true) ou se deve ser inserida
uma nova linha com o mesmo tipo de
cabeçalho(false).
Existem dois cabeçalhos especiais : o
primeiro é o cabeçalho do tipo HTTP/ o
qual indica que um código de retorno está
sendo enviado(por exemplo página não
encontrada).
Exemplo :
<?php
header(HTTP/1.0 404 Página não encontrada”);
exit;
?>
O segundo tipo é o cabeçalho “Location”, que
executa um redirecionamento no browser (o
browser busca o endereço informado no
cabeçalho).
 Exemplo :
<?php
header(“Location:http://www.php.net”);
exit;
?>


IMPORTANTE : Os cabeçalhos HTTP devem ser
enviados antes de qualquer outra tag HTML.
HEADERS_LIST
Esta função retorna um array com todos os cabeçalhos
enviados ao browser pelo script atual.
 Sintaxe : array headers_list()
 Exemplo :
<?php
header(“Expires:Mon, 20 May 2007 05:00:00 GMT”);
header(“Last-Modified:” . Gmdate(“D, d M Y H:i:s”) . “
GMT”);
header(“Cache-Control:no-store, no-cache, mustrevalidate”);
header(“Cache-Control:post-check=0, pre-check=0”, false);
header(“Pragma: no-cahce”);
header(“Content-Type:text/HTML”);
setcookie(“nome”,”Glaucio”);
var_dump((headers_list());//exibe atributos do array
?>

HEADERS_SENT




Verifica se um cabeçalho já foi enviado ao
browser, retornando verdadeiro (true) caso
um cabeçalho já tenha sido enviado e
falso(false) caso contrário. Muito útil para
controlarmos o envio de cookies e outras
informações ao browser.
Sintaxe : bool
headers_sent(&arquivo,&linha)
Os parâmetros opcionais arquivo e linha
receberão, se informados, o nome do
programa e a linha na qual o envio de
informações para o browser foi iniciado.
Exemplo :
<?php
function server_url()
{
$proto=“http”.((isset($_SERVER[‘HTTPS’])&&$server[‘HTTPS’]==“on’)?”s”:
””).”://”;
$server=isset($_SERVER[‘HTTP_HOST’])
? $_SERVER[‘HTTP_HOST’]
: $_SERVER[‘SERVER_NAME’];
return $proto.$server;
}
function redir($_url)
{
$url=server_url().dirname($_SERVER[‘PHP_SELF´]).”/”.$_url;
if (!headers_sent())
{
header(“Location: $url”);
}
else
{
echo “<meta http-equiv=‘refresh’ content=‘0;url=$url’>”;
}
}
?>
COOKIES E SESSÕES


Cookies são arquivos texto que
podem ser armazenados no
computador do usuário para serem
recuperados posteriormente pelo
servidor no qual seu site está
hospedado.
Sessões são recursos que podemos
utilizar para manter uma conexão
com o usuário, enquanto ele estiver
navegando no site.





Utilidades em se utilizar cookies e sessões
:
Autenticação de Usuários : criação de um
sistema envolvendo login, autenticação e
logout, garantindo acesso ao site somente
a usuários autorizados.
Carrinho de compras : utilizado para
guardar as compras do cliente enquanto
ele navega pelo site.
Exibição de anúncios ou imagens :
mantêm informações sobre quais anúncios
ou mensagens já foram mostradas para
aquele usuário.
Personalização de páginas : exemplo de
uma livraria que poderia mostrar anúncio
de livros de informática a um usuário que
da última vez comprou livros de informática
Utilizando Cookies


O PHP nos fornece a função
setcookie que envia cookies para o
computador do usuário. Esta função
é utilizada tanto para se criar um
cookie quanto para excluí-lo.
Sintaxe : bool setcookie(string
nome[,string valor[,int
validade[,string caminho[,string
dominio[,int seguro]]]]]) onde :






nome=nome do cookie que está sendo
enviado, é o único parametro obrigatorio
na função.
Valor=é o valor do cookie, se não
fornecido, o comando exclui o cookie se
este existir.
Validade=define o tempo de validade do
cookie.
Caminho=caminho no servidor para o qual
o cookie estará disponível
Dominio=domínio para o qual o cookie
estará disponível
seguro=valor inteiro(0 ou 1) que indica se
o cookie é seguro.Se for utilizado 1, o
cookie será transmitido se a conexão for
segura (HTTPS)







OBS : se for criado um cookie somente com o
nome, a função setcookie excluirá o cookie.
Portanto, sempre crie um cookie com pelo menos
nome e valor.
Exemplo : setcookie(“nome”,”Joao”);
Se quiser excluir o cookie anterior, o comando
ficaria :
Setcookie(“nome”)
Para criar um cookie valido por dois dias, utilizamos
a função time :
Setcookie(“nome”,”Joao”,time()+172800);//a função
time obtem o tempo atual e somamos 172.800
segundos, que equivalem a 48 horas.
IMPORTANTE : a criação de cookies deve ser feita
antes de qualquer comando HTML, até mesmo
antes do <HTML> e <BODY>.



Para se recuperar esse cookie
gravado na máquina do cliente,
devemos utilizar o array superglobal
$_COOKIE..
Você só poderá recuperar seu
cookie na próxima requisição de
página feita pelo cliente. Porque na
primeira requisição você criou o
cookie, certo ?
Resumindo : para criar
setcookie(“nome”,”joao”) e para
recuperar este cookie
$_COOKIE(“nome”);
Sessões



Já vimos que sessão é o período de tempo que o
usuário navega pelas páginas de um site. Serve
para que registremos variáveis no servidor e
poderão ser acessadas em qualquer página do site.
ENQUANTO A SESSÃO ESTIVER ABERTA.
Cada sessão tem um número de identificador único,
chamado de session id. Para uma página ter
acesso aos dados da sessão ela deve conhecer
esse identificador. Para se transmitir o identificador
da sessão entre as páginas existem duas formas :
cookies e propagação de variáveis na
URL(endereço destino)
O primeiro consiste em armazenar o id em um
cookie na máquina do usuário e utilizá-lo como
referência. É o melhor método, mas se o usuário
bloquear o recebimento de cookies devemos usar o
segundo método.
No segundo método
propagamos o id pela url.
Acrescentamos ao final da url a
constante SID, que o PHP cria
automaticamente no início de
uma sessão. Exemplo :
Echo ‘<a
ref=“pagina.php?’.SID.’”>Clique
aqui</a>’;
O melhor e mais seguro método é
por cookies.




Para se criar uma sessão no PHP
existem duas maneiras, manual e
automática.
Na manual se faz de forma explícita
(função session_start) ou de forma
implícita(ao se registrar uma variável
com a função session_register).
Na automática habilitamos a diretiva
session.auto_start do arquivo
php.ini. Assim, sempre que o usuário
entrar em seu site será criada uma
sessão.
VARIÁVEIS DE AMBIENTE






Embora utilizadas no PHP, essas variáveis são do
ambiente do servidor WEB e não da linguagem
PHP.
Com elas podemos descobrir diversas informações,
como o endereço de IP do visitante, de onde veio a
requisição da página, qual o tipo de conteúdo
solicitado e etc.
Para se obter o valor das variáveis de ambiente
utilizamos a função getenv do PHP. Sua sintaxe é a
seguinte :
Getenv(“nome_da_variavel”) ;
Por exemplo, se quisermos saber qual foi o método
de envio de dados utilizado, fazemos o seguinte :
$metodo = getenv(“REQUEST_METHOD”);
LISTA DE VARIÁVEIS DE
AMBIENTE









Já vimos que com o getenv nos retorna os valores de
diversas variáveis de ambiente. Agora veremos uma lista
com as principais variáveis de ambiente:
SERVER_SOFTWARE=servidor e softwares utilizados,
ex apache, PHP, etc.
SERVER_NAME=nome do servidor ou endereço IP
GATEWAY_INTERFACE=versão da especificação CGI
que o servidor fornece.
SERVER_PROTOCOL=Nome e versão do protocolo
utilizado Ex HTTP/1.1
SERVER_PORT=numero da porta para a qual a
requisição foi feita
REQUEST_METHOD=o metodo de envio de dados tipo
GET, POST
PATH_INFO=Informação extra de caminho dada pelo
cliente para acesso de alguns scripts.
PATH_TRANSLATED=versão traduzida de
PATH_INFO.Faz um mapeamento de virtual para físico.











SCRIPT_NAME=caminho virtual para o script que está sendo
executado.Usado por páginas que referenciam elas mesmas.
QUERY_STRING=armazena tudo o que vem após o ? Em uma
url chamada.
REMOTE_HOST=nome do host de onde veio a requisição.
REMOTE_ADDR=contem o endereço de ip do visitante que
solicitou a página.
AUTH_TYPE=metodo de autenticação(usado por servidores que
suportam autenticação de usuários)
REMOTE_USER=nome do usuario(se o servidor suportar
autenticação)
REMOTE_IDENT=se o servidor suporta identificação padrão
RFC 931, esta variável conterá nome do utilizador remoto que
faz a requisição.
CONTENT_TYPE=tipo MIME dos dados enviados, ex: “text/html”
CONTENT_LENGHT= tamanho dos dados em bytes recebidos
pelo servidor
HTTP_ACCEPT=lista dos tipos MIME que o cliente pode aceitar.
HTTP_USER_AGENT=nome e versão do browser utilizado pelo
cliente.
Certificados Digitais



Um certificado digital é um arquivo de computador
que contém um conjunto de informações referentes
a entidade para o qual o certificado foi emitido (seja
uma empresa, pessoa física ou computador) mais a
chave pública referente a chave privada que
acredita-se ser de posse unicamente da entidade
especificada no certificado.
A certificação digital atesta a identidade de uma
pessoa ou instituição na internet por meio de um
arquivo eletrônico assinado digitalmente.
Seu objetivo é atribuir um nível maior de segurança
nas transações eletrônicas, permitindo a
identificação inequívoca das partes envolvidas, bem
como a integridade e a confidencialidade dos
documentos e dados da transação.






A certificação digital oferece as seguintes
garantias:
Autenticidade do emissor e do receptor da
transação ou do documento;
Integridade dos dados contidos na
transação ou no documento;
Confidencialidade entre as partes;
Não-repúdio das transações efetuadas ou
documentos assinados.
A Administração Pública Federal, por meio
da MP 2.200-2/2001, instituiu a InfraEstrutura de Chaves Públicas (ICP-Brasil),
estabelecendo padrões de certificação
digital para os órgãos federais.



As versões mais atualizadas dos navegadores já
reconhecem automaticamente os certificados ICPBrasil.
Obter uma assinatura digital não é algo tão simples.
Primeiro é necessário procurar uma entidade que
faça esse serviço, isto é, deve-se procurar uma
Autoridade Certificadora (AC). Uma AC tem a
função de verificar a identidade de um usuário e
associar a ele uma chave. Essas informações são
então inseridas no certificado digital.
Para que um certificado seja válido, é necessário
que o interessado tenha a chave pública da AC
para comprovar que aquele certificado foi, de fato,
emitido por ela. A questão é que existem inúmeras
ACs espalhadas pelo mundo e fica, portanto,
inviável ter a chave pública de cada uma.


A solução encontrada para esse problema foi a
criação de "ACs supremas" (ou "ACs-Raiz"), ou
seja, instituições que autorizam as operações das
ACs que emitem certificados a pessoas e
empresas. Esse esquema é conhecido como ICP
(Infra-estrutura de Chaves Públicas) ou, em inglês,
PKI (Public Key Infrastructure).
No Brasil, a ICP-Brasil controla as ACs: Presidência
da República, Receita Federal, SERPRO, Caixa
Econômica Federal, Serasa e CertiSign. Isso
significa que, para que tenha valor legal diante do
governo brasileiro, uma dessas instituições deve
prover o certificado. Porém, para que isso seja feito,
cada instituição pode ter requisitos e custos
diferentes para a emissão, uma vez que cada
entidade pode emitir certificados para finalidades
distintas. E isso se aplica a qualquer AC no mundo.

No entanto, qualquer instituição
pode criar uma ICP, independente
de seu porte. Por exemplo, se uma
empresa criou uma política de uso
de certificados digitais para a troca
de informações entre a matriz e sua
filiais, não vai ser necessário pedir
tais certificados a uma AC
controlada pela ICP-Brasil. A própria
empresa pode criar sua ICP e fazer
com que um departamento das filiais
atue como AC ou AR, solicitando ou
emitindo certificados para seus
funcionários.
FIM
Professor Glaucio Bianchini
UNIBAN maio/2008
Download

Desenvolvimento WEB