You are on page 1of 100

Hypertext Preprocessor

Ministrante: Luiz Lins Monteiro Junior E-mail: luizmagao@gmail.com

Como? Quando? Porque?


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

Como? Quando? Porque?


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 praticas 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 arquivos 8. Sempre SEMPRE use <?php ?> 9. Use nomes consistentes e lgicos para variveis, funes, mtodos e classes 10. No se preocupe em perguntar, mas nunca tenha medo de tentar

Viso Geral
Interao dos softwares
Banco MySql

Cliente/Browser

WEB/PHP

Software Necessarios
Servidor WWW Apache PHP Banco 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 seus comandos diretamente nos cdigos HTML de uma pgina. O PHP oferece suporte de conexo com diversos bancos 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 operacionais (Multiplataforma) como Linux, Windows, Unix, OS/2, Macintosh, NT etc., alm de permitir mudanas de plataforma com nenhuma ou pouqussimas alteraes em seus cdigos fontes.

Quanto custa o PHP?


O PHP distribudo sobre GPL ( Licena Pblica Geral), ou seja voc no precisa 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, como coletar dados de um formulrio, gerar pginas dinamicamente . PHP tambm tem como uma das caractersticas mais importantes o suporte a um grande nmero de bancos de dados. Construir uma pgina baseada em um banco 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 protocolos.

Como surgiu o PHP?


Em 1994, Rasmus Lerdorf desenvolveu algumas ferramentas que tinham por objetivo monitorar os visitantes de seu site por intermdio de um contador de acesso, um livro de visitas e outros pequenos aplicativos. Era o incio do PHP Personal Home Page tools (ferramentas para home page pessoal). Um ano depois, Lerdorf aprimorou sua linguagem e incorporou ao PHP um pacote para interpretao de formulrios (FI Form Interpretation) e algumas ferramentas para acesso a banco de dados, passando o PHP a ser conhecido como PHP-FI Democraticamente, Lerdorf abriu o cdigo-fonte de sua linguagem, dando incio a uma verdadeira avalanche de novos contribuintes ao PHP-FI. Em 1997, o PHP-FI ganhou dois novos colaboradores de peso, Zeev Suraski e Andi Gutmans, que reescreveram o interpretador, criando a verso 3.0. Deste ponto em diante, o PHP3 deixa de ser Personal Home Page Tools para se transformar em Hipertext Preprocessor. Em maio de 2000, desembarca no mercado a verso 4 do PHP com muitas novidades, como suporte a sesses, permitindo a identificao de usurios que solicitam informaes em um site.

PHP x JavaScript
Uma das diferenas marcantes entre o PHP e o JavaScript consiste em que os cdigos PHP so processados no servidor, sendo apenas enviado ao cliente o HTML puro, ou seja o usurio no tem acesso aos scripts embutidos no HTML, como ocorre com o JavaScript que processa os dados no computador do cliente. Este procedimento pode ser de grande valia, quando estamos lidando com dados confidenciais, senhas etc.

PHP x ASP
O PHP multiplataforma, podendo ser executado em quase todos os sistemas operacionais, enquanto ASP somente executado em sistemas operacionais da Microsoft. Tambm podemos destacar que o acesso banco de dados por intermdio do PHP feito de forma mais simples do que o ASP. Com relao a velocidade, o PHP comprovadamente mais rpido que o ASP, alm de possuir um gerenciamento de memria superior ao do 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 em um programa PHP so volteis e somente existem enquanto um script estiver sendo executado, ou seja, ao se mudar de uma pgina para outra 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 esta 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 : $5Valor, $titulo livro , $segundo.nome

Atribuio de valor
Para atribuir um valor a uma varivel, voc deve usar o sinal de =, seguido pelo 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 voc no precisa definir uma varivel para us-la, como comum em outras linguagens, basta atribuir um valor diretamente a ela, e a partir deste 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

Usando 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

Trabalhando com variveis alfanumricas

Armazenando Strings
$A = Ol, Pessoal ! ;

$B = Rua Javali 3456 ;

Diferena entre as aspas simples e aspas duplas

Seqncia de Escape
\n, \r Nova linha \t 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 letras maiscula ou minscula

Como trabalhar com substrings

Trabalhando com array


Ministrante: Luiz Lins Monteiro Junior E-mail: luizmagao@gmail.com

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
Elemento 0 1 2 3 4 5 6 Dia da semana Domingo Segunda-feira Tera-feira Quarta-feira Quinta-feira Sexta-feira Sbado Prato do dia Lasanha a quatro queijos Frango ao molho madeira Arroz grega Feijoada moda da casa Nhoque paulista Bacalhau ao forno Feijo branco Preo R$ 12,60 R$ 10,00 R$ 09,40 R$ 11,20 R$ 08,50 R$ 15,20 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> <input type=submit value=Enviar> </form>
</BODY> </HTML>

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

Instruo condicional switch


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

Operadores Relacionais
op1 == op2 op1 > op2 op1 < op2 op1 >= op2 Verdadeiro se op1 for igual a op2 Verdadeiro se op1 maior que op2 Verdadeiro se op1 menor que op2 Verdadeiro se op1 maior ou igual a op2

op1 <= op2


op1 != op2

Verdadeiro se op1 menor ou igual a op2


Verdadeiro se op1 diferente de op2

Operadores lgicos
&& 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

and
|| or

!op1

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"

Escopo
$php = "Testando"; function Teste() { echo $php; } Teste(); $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

Exerccio: Cumprimento
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: Data por extenso


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...)

Variveis
Modificador Static Cria uma varivel local, porm seu valor no ser perdido ao sair da funo.
Ex.:
function Teste() { $a = 0; echo $a; $a++; } function Teste() { static $a = 0; echo $a; $a++; }

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

Variveis de Ambiente
Ex.:
$_SERVER*PHP_SELF+ $_SERVER*REQUEST_URI+

phpinfo( );

Obter o tipo da varivel


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( )

Outras operaes
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 ;

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

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();

A varivel $this
Quando for necessrio fazer chamadas a funes do prprio objeto utilizamos a varivel $this.

Exemplo usando $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(); // retorna 50

Sub-Classes
Exemplo de subclasses:
class novaconta extends conta { var $numero; function numero() { return $this->numero; } } $outraconta = new novaconta; $outraconta->numero = 123456; echo $outraconta->numero();

Construtores
Um construtor uma funo definida na classe que automaticamente chamada no momento em que a classe instanciada

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

Cookies
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 ser desativada a qualquer momento pelo visitante.

setcookie
Setcookie("nome_cookie","seu_valor","tempo_ vida")

Cookies: Exemplo
<? $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"];

Sesses
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: Exemplo 1.1


<?
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.2


<?
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 2.1


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

Sesses: Exemplo 2.2


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

Sesses: Exemplo 3.1


<?

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"; ?>

Include e Require
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,

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

BANCO DE DADOS

MySQL

You might also like