4a Edição
Novatec
Copyright © 2008, 2013 da Novatec Editora Ltda.
Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a
reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização,
por escrito, do autor e da Editora.
Editor: Rubens Prates
Editoração eletrônica: Carolina Kuwabata
Revisão gramatical: Patrizia Zagni
Capa: Edinei Gonçalves
Histórico de impressões:
Quarta edição
ISBN 978-85-7522-386-4
Terceira edição:
ISBN: 978-85-7522-165-5
Primeira/segunda edição:ISBN: 85-7522-044-6
Novatec Editora Ltda.
Rua Luís Antônio dos Santos 110
02460-000 – São Paulo, SP – Brasil
Tel.: +55 11 2959-6529
Fax: +55 11 2950-8869
Email: [email protected]
Site: novatec.com.br
Twitter: twitter.com/novateceditora
Facebook: facebook.com/novatec
LinkedIn: linkedin.com/in/novatec
VC20131106
Sumário
Agradecimentos.........................................................................................15
Sobre o autor.............................................................................................17
Introdução.................................................................................................19
Quem deve ler este livro....................................................................................20
Como este livro está organizado........................................................................20
Download do código-fonte do livro....................................................................22
Capítulo 1  Revisão de PHP........................................................................23
Iniciando em PHP.............................................................................................23
Embutindo PHP na HTML...............................................................................25
Exibindo a página no navegador........................................................................26
Constantes........................................................................................................27
Variáveis ..........................................................................................................29
Escopo das variáveis....................................................................................30
Variáveis geradas dinamicamente ................................................................30
Arrays.............................................................................................................. 31
Objetos.............................................................................................................33
Operadores.......................................................................................................34
Aritméticos.................................................................................................34
Binários...................................................................................................... 35
Comparação...............................................................................................36
Atribuição.................................................................................................. 37
Lógicos.......................................................................................................38
Precedência de operadores................................................................................. 41
Estruturas de controle em PHP..........................................................................42
if................................................................................................................43
switch.........................................................................................................44
while..........................................................................................................45
do...while....................................................................................................46
for.............................................................................................................. 47
foreach.......................................................................................................48
Integração com bancos de dados........................................................................49
7
8
PHP para quem conhece PHP
Capítulo 2  Melhorando o processamento de formulários...........................53
Criação do formulário ......................................................................................53
Enviando as informações para um programa PHP..............................................56
Método GET..............................................................................................57
Método POST.............................................................................................58
Os arrays superglobais $_GET e $_POST...........................................................58
Funções especiais para formatação de dados......................................................59
Validação no cliente com JavaScript...................................................................62
Validação no servidor com PHP.........................................................................64
Espaços em branco.....................................................................................64
Número mínimo de caracteres.....................................................................65
Campos de e-mail.......................................................................................65
Numéricos................................................................................................. 67
CPF............................................................................................................68
CNPJ.........................................................................................................69
Exemplo de validação de dados......................................................................... 71
Capítulo 3  Mantendo informações com cookies e sessões..........................77
Por que usar cookies e sessões?..........................................................................77
Utilizando cookies............................................................................................78
Invasão de privacidade?...............................................................................79
Enviando cookies pelo PHP.........................................................................80
O array superglobal $_COOKIE.................................................................. 81
Autenticação de usuários.............................................................................82
Criando um sistema de username/senha para seu site..................................83
Utilizando sessões.............................................................................................89
O que é uma sessão?...................................................................................89
Propagando o identificador entre as páginas.................................................90
Criando uma sessão no PHP.......................................................................90
Registrando variáveis em uma sessão........................................................... 91
Parâmetros de configuração.........................................................................93
Usando sessões no sistema de username/senha............................................94
Funções do PHP para manipulação de sessões....................................................98
Capítulo 4  Arquivos-texto: praticidade e rapidez .................................... 101
Por que utilizar arquivos no PHP?.....................................................................101
Operando sobre arquivos................................................................................ 102
Abertura .................................................................................................. 102
Fechamento.............................................................................................. 104
Leitura..................................................................................................... 104
Escrita...................................................................................................... 108
Sumário
Criando um contador de acessos..................................................................... 109
Funções do PHP para manipulação de arquivos.................................................110
Capítulo 5  A página envia o e‑mail......................................................... 119
Por que enviar e-mails com o PHP?...................................................................119
Quem envia o e-mail?...................................................................................... 120
Utilizando a função mail..................................................................................121
Diretivas de configuração no php.ini.................................................................121
Composição de uma mensagem....................................................................... 122
Adicionando informações ao cabeçalho do e-mail............................................ 123
Enviando e-mails em formato HTML............................................................... 124
Exemplos de envio de e-mails com o PHP........................................................ 125
Coletando as sugestões de seus visitantes................................................... 125
Mensagens para diferentes áreas da empresa.............................................. 128
Lista dos cabeçalhos de e-mail (mail headers)................................................... 131
Capítulo 6  Enviar arquivos? Faça Upload!................................................ 133
Por que fazer upload de arquivos?.................................................................... 133
Diferenças entre os protocolos HTTP e FTP..................................................... 134
Upload utilizando PHP e HTTP...................................................................... 135
Definindo o formulário HTML.................................................................. 136
Parâmetros de configuração do upload ..................................................... 138
Recebendo e gravando o arquivo............................................................... 139
Upload utilizando PHP e FTP.......................................................................... 143
Definindo o formulário HTML.................................................................. 143
Configuração do servidor e do upload....................................................... 144
Conectando ao servidor e enviando o arquivo............................................ 145
Enviando múltiplos arquivos........................................................................... 148
Utilizando variáveis em sequência............................................................. 148
Utilizando um array.................................................................................. 152
Problemas comuns.......................................................................................... 154
Mensagens de erro.................................................................................... 155
Funções de FTP disponíveis no PHP................................................................ 155
Capítulo 7  A arte de gerar imagens no PHP............................................. 161
Por que manipular imagens?.............................................................................161
Introdução à biblioteca gráfica GD.................................................................. 163
Tipos de imagens suportados.................................................................... 163
Criando uma imagem............................................................................... 164
Definindo as cores.................................................................................... 165
Definindo o conteúdo............................................................................... 166
9
10
PHP para quem conhece PHP
Exibindo a imagem................................................................................... 167
Liberando a memória utilizada.................................................................. 169
Desenhando elementos gráficos básicos........................................................... 169
Linhas...................................................................................................... 169
Retângulos................................................................................................ 171
Polígonos.................................................................................................. 173
Arcos........................................................................................................ 176
Círculos e elipses...................................................................................... 177
Escrevendo em uma imagem............................................................................181
Usando a fonte-padrão...............................................................................181
Usando fontes TrueType............................................................................ 183
Exemplos de aplicações................................................................................... 185
Contador de visitas gráfico........................................................................ 185
Marcador de imagens para websites........................................................... 192
Miniaturas (thumbnails) de imagens......................................................... 197
Gráficos em formato de pizza....................................................................206
Gráficos de colunas....................................................................................218
Gráficos de linhas......................................................................................231
Funções do PHP para manipulação de imagens................................................ 237
Capítulo 8  A versatilidade dos documentos PDF...................................... 251
Por que criar documentos PDF?........................................................................251
Introdução à biblioteca PDFlib........................................................................ 253
Formas alternativas: Haru e FPDF............................................................. 253
Criando um arquivo PDF.......................................................................... 254
As propriedades do documento................................................................. 255
Adicionando páginas ao documento.......................................................... 255
Escolhendo o tipo e o tamanho da fonte.................................................... 257
Inserindo o conteúdo................................................................................ 258
Fechando o documento e liberando a memória.......................................... 259
Definindo o destino do documento gerado................................................ 259
Sistema de coordenadas................................................................................... 261
Inserindo caixas de texto no documento.......................................................... 262
Formatando o texto......................................................................................... 265
Inserindo imagens no documento....................................................................268
Desenhando em um documento...................................................................... 270
Linhas e curvas......................................................................................... 270
Retângulos e quadrados............................................................................ 272
Círculos e arcos........................................................................................ 274
Definindo um modelo (template) para as páginas............................................. 276
Inserindo referências no documento................................................................ 278
Bookmarks............................................................................................... 278
Weblinks.................................................................................................. 279
Programa-exemplo com referências............................................................280
Sumário
Exemplos de aplicações com a PDFlib..............................................................282
Conversor TXT para PDF.......................................................................... 283
Relatórios PDF a partir de consultas SQL...................................................286
Exemplos utilizando a FPDF........................................................................... 293
Funções do PHP para manipulação de documentos PDF..................................296
Capítulo 9  Utilizando modelos: seja “Smarty”......................................... 313
Por que utilizar modelos (templates)?................................................................313
As ferramentas existentes.................................................................................314
Smarty – A ferramenta de modelos...................................................................314
O que é Smarty?........................................................................................315
Download e instalação...............................................................................316
Incluindo uma chamada para a classe.........................................................317
Estrutura da aplicação...............................................................................317
Testando a ferramenta................................................................................319
Informações sobre o layout.............................................................................. 320
Delimitadores........................................................................................... 320
Comentários............................................................................................. 320
Funções.....................................................................................................321
Atributos...................................................................................................321
Variáveis................................................................................................... 322
Modificadores de variáveis........................................................................ 323
Arquivos de configuração.......................................................................... 328
Informações sobre a programação PHP...................................................... 330
A constante SMARTY_DIR....................................................................... 330
Variáveis de configuração...........................................................................331
Métodos................................................................................................... 334
Exemplos de aplicações com Smarty................................................................ 335
Catálogo de livros..................................................................................... 335
Sistema de notícias....................................................................................340
Funções da Smarty para a criação de templates................................................ 347
Embutidas................................................................................................ 347
Personalizadas.......................................................................................... 354
Métodos da classe Smarty para o PHP..............................................................371
Capítulo 10  Acesse um banco de dados! Não importa qual....................... 377
Por que usar abstração de banco de dados?...................................................... 377
Bibliotecas disponíveis.................................................................................... 379
Extensão dbx............................................................................................ 379
Extensão PDO..........................................................................................380
Utilizando a extensão dbx...............................................................................380
Instalação.................................................................................................380
Conectando ao banco de dados................................................................. 381
11
12
PHP para quem conhece PHP
Executando consultas SQL........................................................................382
Manipulando os resultados da consulta.....................................................383
Encerrando a conexão............................................................................... 385
Exemplos utilizando dbx.......................................................................... 385
Utilizando a extensão PDO............................................................................. 397
Instalação da PDO.................................................................................... 397
Conectando ao banco de dados................................................................. 398
Executando comandos SQL....................................................................... 399
Encerrando a conexão...............................................................................400
Exemplos utilizando PDO......................................................................... 401
Funções do PHP para a extensão DBX.............................................................. 407
Métodos da extensão PDO..............................................................................408
Classe PDO..............................................................................................408
Classe PDOStatement............................................................................... 410
Capítulo 11  Estudo de caso: controle de finanças..................................... 415
Definição do sistema....................................................................................... 415
Criando a base de dados..................................................................................418
Include de acesso ao banco de dados................................................................419
Autenticação do usuário com cookies.............................................................. 420
Login........................................................................................................421
Autenticação............................................................................................. 422
Logout..................................................................................................... 423
Opções do menu principal.............................................................................. 423
Inclusão de receitas e despesas......................................................................... 426
A planilha de receitas e despesas...................................................................... 430
Escolhendo o período de visualização........................................................ 430
Exibindo a planilha.................................................................................. 433
Gerando um gráfico de despesas............................................................... 441
Gerando um relatório PDF para o mês....................................................... 445
Enviando os dados por e-mail ..................................................................449
Exclusão dos dados cadastrados...................................................................... 452
Apêndice A  Comandos gerais do PHP...................................................... 457
Arrays............................................................................................................ 457
Classes e objetos.............................................................................................460
ClibPDF.........................................................................................................460
Data e hora.....................................................................................................463
dbx................................................................................................................464
Diretórios.......................................................................................................465
FTP................................................................................................................465
Funções..........................................................................................................466
HTTP............................................................................................................. 467
Sumário
Imagens.......................................................................................................... 467
IMAP, POP3 e NNTP...................................................................................... 470
InterBase........................................................................................................ 473
Matemática......................................................................................................474
Microsoft SQL Server...................................................................................... 476
mSQL............................................................................................................. 477
MySQL........................................................................................................... 478
MySQLi..........................................................................................................480
OCI8..............................................................................................................482
ODBC............................................................................................................484
Opções e informações do PHP.........................................................................485
Oracle............................................................................................................487
PDF................................................................................................................488
PostgreSQL......................................................................................................491
Sessões........................................................................................................... 494
Sistema de arquivos (Filesystem)...................................................................... 495
Strings............................................................................................................ 497
Sybase............................................................................................................500
URL................................................................................................................501
Variáveis..........................................................................................................501
Apêndice B  Novidades do PHP 5 e PHP 6................................................. 503
O que mudou a partir do PHP 5?..................................................................... 503
PHP será uma linguagem orientada a objetos?................................................. 503
Compatibilidade entre as versões 4, 5 e 6..........................................................504
As principais novidades ..................................................................................505
Orientação a objetos.................................................................................505
SQLite.......................................................................................................513
Suporte XML.............................................................................................514
Outras mudanças......................................................................................514
Apêndice C  Links interessantes............................................................... 519
Site oficial do PHP............................................................................................519
Scripts, programas e tutoriais PHP....................................................................519
Catálogos de links PHP................................................................................... 520
Outros links.................................................................................................... 520
Índice remissivo....................................................................................... 521
13
Download

Sumário - Novatec Editora