Você está na página 1de 99

Hypertext Preprocessor

Como? Quando? Porqu?


Surgiu em 1994 com pacotes CGI
criados por Rasmus Lerdof
1997, primeiro pacote PHP/IF (Form
Interpreter)
Zeev Suraski - PHP3, pouco recursos
de POO
2000, Zeev e Anti Gutmans - PHP4
PHP5 - modularizada, robusta

Como? Quando? Porqu?


Os valores abaixo referem-se ao nmero
de resultados retornados ao se fazer uma
pesquisa na web pelo nome das
linguagens listadas:
php: 10.210.000.000 resultados
asp: 2.600.000.000 resultados
java: 428.000.000 resultados
ruby: 96.400.000 resultados
python: 66.100.000 resultados

As 10 melhores prticas para


iniciantes
1. Seja amigo do manual e da documentao do PHP
2. D ateno aos erros do PHP
3. Use um IDE / GUI
1. IDE: Integrated Development Environment
2. GUI: Graphic User Interface
4. Use um Framework
5. Aprenda as prticas DRY e KISS
1. DRY: Dont Repeat Yourself (No Se Repita)
2. OAOO: Once And Only Once (Uma Vez e Somente Uma Vez)
3. KISS: Keep It Simple, Stupid (Mantenha Isso Simples,
Estpido)
4. YAGNI: You Arent Gonna Need It (Voc No Ir Precisar
Disso)
6. Organize o seu cdigo (Indentao e espaos)
7. Organize seus ficheiros
8. Sempre SEMPRE use <?php ?>
9. Use nomes consistentes e lgicos para variveis, funes,
mtodos e classes

Viso Geral
Interao do software
Base dados
MySql

Cliente/Browser

WEB/PHP

Software necessrio
Servidor WWW Apache
PHP
Base de dados MySQL

Notas Importantes
HTML Pr-requisito fundamental
Linguagem de programao
Conhecimento bsico de banco de
dados

Fundamentos do PHP

O que vem a ser o PHP?


O que pode ser feito com PHP?
Quanto custa o PHP?
Como surgiu o PHP?
PHP x JavaScript
PHP x ASP

O que vem a ser o PHP?


O PHP (Hipertext Preprocessor) uma linguagem de script
voltada para o desenvolvimento de pginas dinmicas
(para a internet de fcil uso e aprendizagem), permitindo
ao programador inserir os seus comandos diretamente nos
cdigos HTML de uma pgina.
O PHP oferece suporte de conexo com diversas bases de
dados, tais como: MySql, Oracle, Sybase, Dbase,
PostgreSQL etc.
Outra grande vantagem ao ser comparado com outras
linguagens, tais como: ASP e ColdFusion , a possibilidade
de ser executado em diversos sistemas operativos
(Multiplataforma) como Linux, Windows, Unix, OS/2,
Macintosh, NT etc., alm de permitir mudanas de
plataforma com nenhuma ou pouqussimas alteraes em

Quanto custa o PHP?


O PHP distribudo sobre GPL
( Licena Pblica Geral)
ou seja, no precisamos de pagar
nada para us-lo.

O que pode ser feito com


PHP?
Basicamente, qualquer coisa que pode ser feita por algum
programa CGI pode ser feita tambm com PHP
Explo: recolher dados de um formulrio, gerar pginas
dinamicamente
PHP tambm tem como uma das caractersticas mais
importantes o suporte a um grande nmero de base de
dados.
Construir uma pgina baseada numa base de dados
torna-se uma tarefa extremamente simples com PHP.
Alm disso, PHP tem suporte a outros servios atravs de
protocolos como:
IMAP, SNMP, NNTP, POP3 e, logicamente, HTTP.
Ainda possvel abrir sockets e interagir com outros

PHP x JavaScript
Os cdigos PHP so processados no servidor,
sendo apenas enviado ao cliente o HTML puro,
(ou seja o utilizador no tem acesso aos scripts
embutidos no HTML),
O JavaScript que processa os dados no
computador do cliente.
(este procedimento pode ser de grande valia,
quando estamos a lidar com dados confidenciais,
senhas etc).

PHP x ASP
O PHP multiplataforma, podendo ser
executado em quase todos os sistemas
operativos,
O ASP somente executado em sistemas
operativos da Microsoft.
O acesso base de dados por intermdio
do PHP feito de forma mais simples do
que o ASP.
Em relao a velocidade, o PHP
comprovadamente mais rpido que o ASP,
alm de possuir uma gesto de memria
mais eficaz do que o ASP.

O que so pginas
estticas

Pginas dinmicas

Sintaxe bsica para um


programa em PHP
O cdigo PHP fica embutido no prprio HTML. O
interpretador identifica quando um cdigo PHP pelas
seguintes tags:

Como enviar cdigos HTML


dentro de um script PHP

Variveis
As variveis contidas num programa PHP so volteis
e somente existem enquanto um script estiver a ser
executado, ou seja, ao mudar de uma pgina para
outra elas elas deixam de existir ( a menos que sejam
transferidas para a prxima pgina, ou definidas como
global);
O valor atribudo a uma varivel pode ser definido
pelo prprio programador, pelo resultado de um
determinado clculo dentro do programa ou por uma
entrada de dados de um formulrio;
Uma varivel pode armazenar somente um valor de
cada vez.

Variveis
Por ser uma linguagem case-sensitive (sensvel a
letras maisculas e minsculas ), sendo A
(maisculo) diferente de a (minsculo), assim uma
varivel de nome Contador diferente de contador .
Em PHP todas as variveis so obrigatoriamente
iniciadas com o smbolo $ (cifro), seguido pelo seu
nome.
Exemplos vlidos : $contador, $_autor, $VALOR
Exemplos no vlidos :
$segundo.nome

$5Valor,

$titulo

livro ,

Atribuio de valor
Para atribuir um valor a uma varivel, devemos usar o sinal
de =, seguido do valor a ser armazenado.
Os valores alfanumricos (strings) a serem armazenados
devem estar sempre entre aspas ()
Valores numricos so armazenados sem o uso das aspas.
Em PHP no precisamos de definir uma varivel para us-la,
como comum noutras linguagens: basta atribuir um valor
diretamente a ela, e a partir desse instante ela ser
automaticamente criada.
Exemplos:

$titulo = Programando em PHP;


$precolivro = 129.30;

PHP com uso de


variveis

PHP com uso de


variveis
Numricos
Numricos inteiros ou absolutos e nmeros fracionrios,
tambm conhecido como ponto flutuante.
Alfanumricos
Os dados alfanumricos, tambm conhecidos por
strings, contm uma cadeia de caracteres que podem
ser simples letras ou palavras, at frases inteiras.
Exemplos:
$A = 25;
$B = -1234;
$C = 78.56;
$D = -9.3245;
$E = Ol, como vai? ;
$F = 78.999;

Operadores Aritmticos
+
*
/
%

Adio
Subtrao
Multiplicao
Diviso
Resto da diviso

Usar Operadores
Aritmticos

Prioridades dos
Operadores
A prioridade adotada nos clculos
em PHP segue de acordo com as
mesmas regras matemticas, ou
seja, os clculos so executados
de acordo com a seguinte ordem:
Parnteses => diviso => Multiplicao =>
Adio => Subtrao

Trabalhar com variveis


alfanumricas

Armazenando Strings
$A = Ol, Pessoal ! ;
$B = Rua Javali 3456 ;

Diferena entre as aspas


simples e aspas duplas

Sequncia de Escape
\n, \r
\t
\\
\$
\
\

Nova linha
Tabulao horizontal
A prpria barra ( \ )
O smbolo $
Aspa simples
Aspa dupla

Concatenar Strings

Como descobrir o
comprimento de uma string

Como eliminar espaos em


branco finais e iniciais de
uma string

Como converter em letra


maiscula ou minscula

Como trabalhar com


substrings

Trabalhar com array

Trabalhando com arrays

<HTML>
<HEAD>
<TITLE> Curso PHP MySql </TITLE>
</HEAD>
<BODY>

<?
// Vetor unidimensional
$hoje = date(w);
$diaSemana[0] = Domingo;
$diaSemana[1] = Segunda-feira;
$diaSemana[2] = Tera-feira;
$diaSemana[3] = Quarta-feira;
$diaSemana[4] = Quinta-feira;
$diaSemana[5] = Sexta_feira;
$diaSemana[6] = Sbado;
echo Hoje : <b> $diaSemana[$hoje] </b>;
?>
</BODY>
</HTML>

Obs: Salvar com a extenso .php

Prato do dia
Element
o

Dia da
semana

Prato do dia

Preo

Domingo

Lasanha a quatro queijos

R$ 12,60

Segunda-feira

Frango ao molho madeira

R$ 10,00

Tera-feira

Arroz grega

R$ 09,40

Quarta-feira

Feijoada moda da casa

R$ 11,20

Quinta-feira

Nhoque paulista

R$ 08,50

Sexta-feira

Bacalhau ao forno

R$ 15,20

Sbado

Feijo branco

R$ 10,00

Hoje Sbado
Nossa sugesto para hoje : Lasanha a quatro
queijos
Preo : 12,20

Listas

Objetos

Booleanos
0 falso (false)
Outro valor 0 verdadeiro (true)
Ex.:
0 == falso
1 == verdadeiro
-2 == verdadeiro

Constantes

Operadores Aritmticos

+
*
/
%
++
--

adio
subtrao
multiplicao
diviso
mdulo
incremento
decremento

Operador Alfanumrico
. Operador de concatenao

Operadores de atribuio

= atribuio simples
+=
atribuio com adio
-= atribuio com subtrao
*= atribuio com multiplicao
/= atribuio com diviso
%= atribuio com mdulo
.= atribuio com concatenao

Usando Operadores de
Atribuio

Formulrios

Toda seo de uma pgina que contenha um formulrio deve sempre


estar entre as tags
<FORM> ...</FORM>
A tag <FORM> contm uma srie de atributos, sendo que os mais
importantes so:
ACTION => Informa ao servidor a pgina que deve ser carregada, assim
que o usurio clicar sobre o boto enviar contido no formulrio.
Method => Este atributo controla como as informaes contidas no
formulrio devem ser enviadas ao servidor.

Existem os mtodos GET e POST

GET => acrescenta URL um ponto de interrogao (?) seguido por


todos os nomes dos campos ex.
http://www.phb.fap.com.br/formulario.php?txtnome=tim

POST => Transmite as informaes de um modo invisivel, ou seja


no as insere na URL mas sim no corpo da requisio HTML, alm de
permitir uma quantidade maior de informaes a ser passada de
uma pgina para outra.

Ex. http://www.phb.fap.com.br/formulario.php, ele no apresenta o


contedo.

Principais controles do HTML que so


usados na coleta de dados em um
formulrio

Caixa de texto de uma linha (TEXT);

Caixa de texto de rolagem (TEXTAREA);

Caixa de seleo (CHECKBOX);

Boto de radio (RADIO);

Menu suspenso (SELECT e OPTION);

Boto de envio (SUBMIT).

Caixa de texto de uma linha


Cdigo HTML

Caixa de texto de uma linha


Cdigo PHP

Boto de opo (RADIO)


Cdigo HTML

<HTML>
<HEAD>
<TITLE> Formulrio com boto de radio </TITLE>
</HEAD>
<BODY>

Qual o seu estado civil ?

<form Method = POST Action = civil.php>


<input type=radio name=opcao value=Casado >Casado<br>
<input type=radio name=opcao value=Solteiro >Solteiro<br>
<input type=radio name=opcao value=Vivo >Vivo<br>
<input type=radio name=opcao value=Separado >Separado<br>
</BODY>
<input type=submit value=Enviar>
</HTML>
</form>

Obs: Salvar com a extenso .htm

Boto de opo (RADIO)


Cdigo PHP

<HTML>
<BODY>

<?
echo Seu estado civil : $opcao ;
?>
</BODY>
</HTML>

Obs: Salvar como civil.php

A instruo condicional IF
<HTML>
<BODY>

<?
$valor = 5;
If ($valor == 5) {
echo A varivel valor : $valor;
}
?>
</BODY>
</HTML>

Obs: Salvar com a extenso .php

<?
$valor = 2;
switch ( $valor ) {
case 1 :
echo Primeiro valor;
break;
case 2 :
echo Segundo Valor ;
break;
default :
echo Valor maior que 2 ;
break;
}
?>

Instruo condicional switch

Operadores Relacionais
op1 == op2
op1 > op2

Verdadeiro se op1 for igual a op2


Verdadeiro se op1 maior que op2

op1 < op2


op1 >= op2

Verdadeiro se op1 menor que op2


Verdadeiro se op1 maior ou igual
a op2
Verdadeiro se op1 menor ou igual
a op2
Verdadeiro se op1 diferente de
op2

op1 <= op2


op1 != op2

Operadores lgicos
&&

and

||

or
!op1

Verdadeiro se uma expresso A e


uma expresso B forem
verdadeira
Verdadeiro se uma expresso A
(AND) e uma expresso B forem
verdadeira
Verdadeiro se uma expresso A ou
uma expresso B forem
verdadeira
Verdadeiro se uma expresso A ou
(OR) uma expresso B forem
verdadeira
Ser considerado verdadeiro se o
valor de op1 for falso

Exerccio

Escreva uma pgina com os seguintes campos


de formulrio:
Nome
Endereo
Idade
Sexo
Escreva um programa em php para receber os
valores do formulrio acima e apresentar na
tela o nome,endereo e verificar se a idade for
maior que 18 anos ,mostrar a mensagem :
Minha idade : XX, caso contrrio a
mensagem : Menor de idade .

Exerccio: Senha

Faa um formulrio com entradas para


Nome de Usurio e Senha e um boto
Entrar.
Esse formulrio ser interpretado pela
pgina pagina_protegida.php que dever
exibir uma mensagem de boas vindas
para o usurio citando o seu cargo, ou
uma mensagem de erro caso a senha ou
o nome de usurio estejam incorretos.

Trabalhando com Loop


Instruo while e do-while

Trabalhando com Loop

Trabalhando com Loop


Instruo for

Quebra de Fluxo

break
Usado em laos for, while, do...while e
switch.
Interrompe imediatamente a execuo do
lao.

continue
Semelhante ao break, mas ao invs de
sair do lao, volta pro incio dele.

Exerccio
Utilize uma estrutura de repetio para
gerar tags <Hx>.
Ex.:

Letra H1
Letra H2
Letra H3
Letra H4
Letra H5

Exerccios

Fazer a tabela Prato do Dia utilizando a


estrutura de repetio For.

Exerccio: Formatao via


formulrio

Crie um formulrio com os seguintes itens:


Uma caixa de texto
Trs Checkbox para Itlico, Negrito e
Sublinhado
Um Select com opes de alinhamento
Um select com opes de cor
Uma caixa de texto para digitar o nmero de
repeties.
Um select com nmeros correspondentes ao
tamanho.

Exerccio: Calculadora

Fazer uma calculadora simplificada.


A calculadora possuir:
Dois campos onde sero digitados os
termos
Um seletor tipo Radio com as operaes
bsicas
Um boto Calcular que ser usado para
realizar o clculo
O resultado deve ser apresentado na
mesma pgina do formulrio.

Funes
1. O emprego das funes permite estruturar
um programa de modo bem mais eficiente e
produtivo, pois garante a criao de
pequenas sees de cdigo que podem ser
reutilizadas a qualquer momento
2. Podemos definir uma funo como sendo um
pequeno programa, inserido em seu
programa principal, que pode ser chamado a
qualquer instante para executar um
determinada operao.

Sintaxe para declarao de


funes
function nome_da_funo($arg1, $arg2,
$arg3)
{
Comandos;
...
return <valor de retorno>;
}

Retorno

No obrigatrio
Pode-se retornar qualquer tipo de dados,
inclusive vetores.
Sintaxe:
return valor;

Argumentos

Devem ser declarados dentro dos


parnteses
No precisa especificar o tipo
Ex.:
function imprime($texto)
{
echo $texto;
}
imprime("teste de funes");

Passagem de parmetros
por referncia

Utiliza-se o caracter & antes do nome do


parmetro.
Pode ser utilizado na declarao da funo
ou na chamada da funo.
Ex.:
function mais5(&$num1, $num2)
{
$num1 += 5;
$num2 += 5;
}
mais5($a, &$b);

Argumentos com valores


pr-definidos
Ex.:
function teste($php = "testando")
{
echo $php;
}
teste(); // imprime "testando"
teste("outro teste"); // imprime "outro
teste"

$php =
"Testando";
function Teste()
{
echo $php;
}
Teste();

Escopo

$php = "Testando";
function Teste()
{
global $php;
echo $php;
}
Teste();

Funes - Exemplos
<HTML>
<BODY>

<?
function comissao($valor)
{
$valor = $ valor * 0.06;
return $valor;
}
echo Ana vendeu R$ 25000, sua comisso : R$ . comissao(25000);
echo <br>;
echo Carolina vendeu R$ 34680, sua comisso : R$ . comissao(34680);
}
?>

</BODY>
</HTML>

Obs: Salvar com a extenso .php

Fazer uma funo que retorna uma string


de cumprimento: Bom dia, boa tarde, boa
noite dependendo da hora em que ele
acessa a pgina.
Dica: A funo date(H) retornar a hora
do dia.

Exerccio: Cumprimento

Fazer uma funo que retorne a data atual


no formato do exemplo abaixo:
Domingo, 29 de abril de 2006
Dica: Para inicializar os arrays usar listas.
Ex.: $x = array(1 => valor1, 2 =>
valor2...)

Exerccio: Data por extenso

Modificador Static
Cria uma varivel local, porm seu valor
no ser perdido ao sair da funo.
Ex.:

function Teste()
{
$a = 0;
echo $a;
Variveis
$a++;
}

function Teste()
{
static $a = 0;
echo $a;
$a++;
}

$a = "teste";
$$a = "Mauricio Vivas";
O exemplo acima e equivalente ao
seguinte:
$a = "teste";
$teste = "Mauricio Vivas";

Variveis Variveis

Ex.:
$_SERVER[PHP_SELF]
$_SERVER[REQUEST_URI]

phpinfo( );

Variveis de Ambiente

gettype($x);
Retorna: "integer", "double", "string",
"array", "object" e "unknown type"
is_int( ), is_integer( ), is_real( ), is_long( ),
is_float( ), is_string( ), is_array( ) e
is_object( )

Obter o tipo da varivel

unset($x); //Destri a varivel


isset($x); //Verifica se a varivel existe
empty($x); //Verifica se a varivel tem um
valor diferente de 0 ou ;

Outras operaes

class Nome_da_classe {
var $variavel1;
var $variavel2;
function funcao1 ($parmetro) {
/* === corpo da funo === */
}
}

Classes e Objetos

Sintaxe para criao de objetos:


$varivel = new nome_da_classe;
Para utilizar as funes definidas na
classe, deve ser utilizado o operador "->",
como no exemplo:
$variavel->funcao1();

Objetos

Quando for necessrio fazer chamadas a


funes do prprio objeto utilizamos a
varivel $this.

A varivel $this

class conta
{
var $saldo;
function saldo() {
return $this->saldo;
}
function credito($valor) {
$this->saldo += $valor;
}
}
$minhaconta = new conta;
echo $minhaconta->saldo() . '<br>';
$minhaconta->credito(50);
echo $minhaconta->saldo();
Exemplo
usando $this // retorna 50

Exemplo de subclasses:

class novaconta extends conta


{
var $numero;
function numero() {
return $this->numero;
}
}
$outraconta = new novaconta;
$outraconta->numero = 123456;
echo $outraconta->numero();

Sub-Classes

Um construtor uma funo definida na


classe que automaticamente chamada
no momento em que a classe
instanciada

Construtores

class conta {
var $saldo;
function conta () {
$this->saldo = 0;
}
function saldo() {
return $this->saldo;
}
function credito($valor) {
$this->saldo += $valor;
}
Exemplo
de Construtores
}

Cookies so mecanismos para armazenar e


consultar informaes nos browsers dos
visitantes da pgina. O PHP atribui cookies
utilizando a funo setcookie, que deve ser
utilizada antes da tag <html> numa pgina.
No use cookies para acessar informaes
sigilosas. Os dados dos cookies so armazenados
no diretrio de arquivos temporrios do visitante,
sendo facilmente visualizado por pessoas mal
intencionadas.
Ateno para a opo "aceitar cookies" que pode
Cookies
ser desativada a qualquer momento pelo
visitante.

Setcookie("nome_cookie","seu_valor","tem
po_vida")

setcookie

<?
$valor = 'Texto armazenado no cookie';
setcookie("TesteCookie", $valor, time()+3600);
?>
<?
echo $_COOKIE["TesteCookie"];
?>

A partir de agora qualquer pgina do site


ter acesso a $_COOKIE["TesteCookie"];

Cookies: Exemplo

Sesses so mecanismos parecidos com os


cookies.
Suas diferenas so que sesses so
armazenadas no prprio servidor e no
expiram.
Cookie => Computador do usurio
Session => Servidor

Sesses

<?
session_start();
?>
<?
echo 'Bem vindo pagina 1';
$_SESSION[cor'] = 'verde';
$_SESSION['animal'] = 'gato';
$_SESSION[acesso'] = time();
echo '<br><a href="pagina2.php">Pgina 2</a>';
?>

Sesses: Exemplo 1.1

<?
session_start();
?>
<?
echo 'Bem vindo a pagina 2<br>';
echo $_SESSION['animal'] . '<br>'; // gato
echo $_SESSION[cor']; // verde
echo date('d/m/Y H:i:s', $_SESSION[acesso']);
echo '<br /><a href="pagina1.php">Pagina 1</a>';
?>

Sesses: Exemplo 1.2

Contador de visitas
<?
session_start();
if (!isset($_SESSION['contador'])) {
$_SESSION['contador'] = 0;
} else {
$_SESSION['contador']++;
}
?>

Sesses: Exemplo 2.1

<?php
session_start();
unset($_SESSION['contador']);
?>

Sesses: Exemplo 2.2

<?
session_start();
$autoriza = 0;
if (isset($_SESSION['usuario'])) {
$autoriza = 1;
else {
$usuario = $_GET['usuario'];
$senha = $_GET['senha'];
if (($usuario == 'fulano') && ($senha == '123'))
$autoriza = 1;
}
if (!$autoriza)
echo "Voc deve fazer login.";
else
echo "Voc acessou a pgina com sucesso";
?>

Sesses: Exemplo 3.1

A funo require() pe o contedo de um outro


arquivo no arquivo php atual, antes de ser
executado. Quando o interpretador do PHP ler
este arquivo, ele encontrar todo o contedo
dos "requires" adicionado no arquivo corrente.
A funo include() semelhante funo
require(), com a diferena que o cdigo do
arquivo includo processado em tempo de
execuo,

Include e Require

require ("arquivo.php");
include("arquivo.php");

Exemplos

BANCO DE DADOS

MySQL

Você também pode gostar