768
Primeiros Elogios ao Use a Cabeça! PHP & MySQL “PHP e MySQL são duas das tecnologias de desenvolvimento web mais populares de hoje em dia, e este livro mostra aos leitores o porquê. Criar um site sem elas, atualmente, é tão inimaginável quanto fazer web design sem CSS. Este livro é uma ótima introdução e é também uma boa fonte de risadas. E o livro que eu queria ter tido quando estava aprendendo.” — Harvey Quamen, Professor Ássociado de Inglês e Humanities Computing, Universidade de Alberta “Tudo o que nos acostumamos a aceitar como trabalho pesado no processo de aprendizado técnico foi abandonado, e em seu lugar foi criado um incomum método de aprendizado divertido. Eu tenho plena confiança de que a série Use a Cabeça! irá revolucionar a indústria de livros técnicos, e que estes métodos acabarão se tornando o padrão. Aposto que até a minha avó tecnofóbica poderia aprender técnicas de PHP e MySQL após uma única leitura. Ela provavelmente ainda se divertiria ao fazê-lo!” — Will Harris, Administrador de Bancos de Dados, Powered By Geek “Ler Use a Cabeça! PHP 8c MySQL é como assistir a uma aula do professor ‘legal’. Faz você ficar com vontade de aprender.” ---- Stephanie Liese, Desenvolvedora Web “Usando imagens e humor, o livro é fácil de digerir, e ainda por cima apresenta um sólido conhecimento técnico.” —Jereme Alien, Desenvolvedor Web “Após uma desafiadora e ultrarrápida primeira leitura, e vários projetos práticos divertidos, como por exemplo “Meu cachorro foi abduzido por alienígenas” e a “Agência de Encontros Mismatch”, não vejo a hora de adicionar um pouco de PHP aos meus sites.” — David Briggs. Engenheiro de Software e Escritor de Livros Técnicos

Use a cabeca php.pdf

Embed Size (px)

DESCRIPTION

Php and Mysql how to book.

Citation preview

  • Primeiros Elogios ao Use a Cabea! PHP & MySQL

    PHP e MySQL so duas das tecnologias de desenvolvimento web mais populares de hoje em dia, e este livro mostra aos leitores o porqu. Criar um site sem elas, atualmente, to inimaginvel quanto fazer web design sem CSS. Este livro uma tima introduo e tambm uma boa fonte de risadas. E o livro que eu queria ter tido quando estava aprendendo.

    Harvey Quamen, Professor ssociado de Ingls e Humanities Computing, Universidade de Alberta

    Tudo o que nos acostumamos a aceitar como trabalho pesado no processo de aprendizado tcnico foi abandonado, e em seu lugar foi criado um incomum mtodo de aprendizado divertido. Eu tenho plena confiana de que a srie Use a Cabea! ir revolucionar a indstria de livros tcnicos, e que estes mtodos acabaro se tornando o padro. Aposto que at a minha av tecnofbica poderia aprender tcnicas de PHP e MySQL aps uma nica leitura. Ela provavelmente ainda se divertiria ao faz-lo!

    Will Harris, Administrador de Bancos de Dados, Powered By Geek

    Ler Use a Cabea! PHP 8c MySQL como assistir a uma aula do professor legal. Faz voc ficar com vontade de aprender.

    ---- Stephanie Liese, Desenvolvedora Web

    Usando imagens e humor, o livro fcil de digerir, e ainda por cima apresenta um slido conhecimento tcnico.

    Jereme Alien, Desenvolvedor Web

    Aps uma desafiadora e ultrarrpida primeira leitura, e vrios projetos prticos divertidos, como por exemplo Meu cachorro foi abduzido por aliengenas e a Agncia de Encontros Mismatch, no vejo a hora de adicionar um pouco de PHP aos meus sites.

    David Briggs. Engenheiro de Software e Escritor de Livros Tcnicos

  • Elogios ao Use a Cabea! HTML com CSS & XHTML

    Eric e Elisabeth Freeman claramente entendem do assunto. medida que a Internet vai se tornando mais complexa, fica cada vez mais importante criar pginas web atraentes. O design elegante o cerne de todos os captulos aqui, e cada conceito apresentado com doses iguais de pragmatismo e inteligncia.

    Ken Gold-Stein, Vice-Presidente Executivo & Diretor-Gerente, Disney OnlineA web seria um lugar muito melhor se todo designer HTML comeasse lendo este livro.

    L. David Baron, Diretor Tcnico de Layout & CSS, Mozilla Corporation,http://dbaron. org/

    Eu escrevo HTML e CSS h dez anos, e o que antes era um longo processo de aprendizado por tentativa e erro agora acaba de ser reduzido a um nico e atraente livro. HTML costumava ser algo que voc simplesmente ficava fuando at que as coisas ficassem bem na tela, mas com o advento de padres web e a exigncia de melhor acessibilidade, prticas de programao preguiosas j no so mais aceitveis... nem do ponto de vista empresarial, nem do ponto de vista da responsabilidade social. Use a Cabea! HTML com CSS & XHTML lhe ensina como fazer as coisas corretamente desde o princpio, sem fazer com que o processo parea impossvel de aprender. A linguagem HTML, quando corretamente ensinada, no mais complicada do que aprender ingls, e os Freemans izerm um excelente trabalho em manter todos os conceitos compreensveis.

    Mike Davidson, Presidente & CEO, Newsvine Inc.Ah, timo. Vocs fizeram um livro de XHTML simples o suficiente para que um CEO consiga entend-lo. O que faro a seguir? Um livro de contabilidade simples o suficiente para que o meu desenvolvedor consiga entender? Se continuar assim acabaremos tendo de fazer coisas como colaborar e trabalhar em equipe.

    Janice Fraser, CEO, Adaptive PathEste livro tem humor, charme, mas o mais importante: tem corao. Eu sei que parece algo ridculo de se dizer sobre um livro tcnico, mas eu realmente percebo que, no seu cerne, este livro (ou pelo menos os seus autores) realmente est preocupado em fazer os leitores aprenderem o material. Isso se faz notar no estilo, na linguagem e nas tcnicas. O aprendizado - realmente entender e compreender - pelo leitor claramente o objetivo nmero um na mente dos Freemans. E obrigado, obrigado, obrigado pela forte e sensvel insistncia que o livro prega pelo respeito aos padres. timo ver um livro para iniciantes, o qual acredito, que vai ser amplamente lido e estudado, fazer uma campanha to eloquente e persuasiva pelo valor do respeito aos padres na programao de pginas web. Encontrei aqui at mesmo alguns argumentos que ainda no tinham-me ocorrido

    - argumentos que eu posso me lembrar e usar quando as pessoas me perguntam, e elas perguntam, qual a vantagem de respeitar os padres, e por que eu devo faz-lo? Agora eu tenho mais munio! Tambm gostei do fato de o livro apresentar alguns fundamentos sobre a mecnica de como realmente colocar a pgina no ar - FTP, fundamentos do servidor web, estruturas de arquivos, etc.

    Robert Neer, Diretor de Desenvolvimento de Produto, Movies.com

  • Elogios ao Use a Cabea! JavaScript

    To prtico e til, e to bem-explicado. Este livro faz um excelente trabalho dt^apresentar um iniciante total ao JavaScript, e mais uma prova da eficincia do mtodo d ensino Use a Cabea! De todos os outros livros de JavaScript, Use a Cabea! JavaScript timo para aprender, comparado com outros livros de referncia do tamanho de listas telefnicas.

    Alex Lee, Estudante, Universidade de Houston

    Uma excelente opo para o desenvolvedor JavaScript iniciante. Fletcher Moore, Desenvolvedor e Designer Web, Georgia Institue of

    Technology

    Mais um timo livro no clssico estilo Use a Cabea! TW Scannell

    O JavaScript vem sendo h bastante tempo o sistema por trs das pginas web, no lado do cliente, mas vem sendo tambm mal entendido e mal utilizado. Com Use a Cabea! JavaScript, Michael Morrison apresenta uma introduo direta e fcil de entender sobre a linguagem, removendo quaisquer mal entendidos que possam ter existido e mostrando como us-la da forma mais eficiente para melhorar suas pginas web.

    Anthony T. Holdener UI, Desenvolvedor de aplicaes web e autor de Ajax: OGuia Definitivo

    Uma pgina web tem trs partes - contedo (HTML), aparncia (CSS) e comportamento (JavaScript). Use a Cabea! HTML apresentou os dois primeiros, e este livro usa a mesma abordagem divertida e prtica para introduzir o JavaScript. A forma divertida com que o livro apresenta o JavaScript, e as muitas formas como ele refora as informaes para que voc no as esquea, fazem deste um livro perfeito para iniciantes usarem para comear a aprender a tom ar suas pginas web interativas.

    Stephen Chapman, Dono da Felgall Pty Ltd., editor de JavaScript de about.com

    Este o livro que eu estive procurando para recomendar aos meus leitores. E simples o suficiente para totais iniciantes, mas inclui aprofundamentos suficientes para ser til aos usurios mais avanados. E tom a divertido o processo de aprendizado. Este pode acabar sendo o nico livro de JavaScript de que voc precisar.

    Julie L. Baumler, Editora de JavaScript de BellaOnline.com

  • Outros livros da srie Use a Cabea!

    Use a Cabea! Java

    Use a Cabea! Anlise & Projeto Orientado a Objetos (A&PO O )

    Use a Cabea! A jax Iniciao Rpida

    Use a Cabea! H TM L com C SS e X H TM L

    Use a Cabea! Padres de Projeto

    Use a Cabea! Servlets e JSP

    Use a Cabea! PM P

    Use a Cabea! SQ L

    Use a Cabea! Desenvolvimento de Software

    Use a Cabea! JavaScript

    Use a Cabea! C #

    Use a Cabea! P H P & M ySQ L

    Use a Cabea! Fsica

    Use a Cabea! lgebra

    Use a Cabea! A jax Profissional

    Use a Cabea! Estatstica

    Use a Cabea! Ruby on Rails

  • Use a Cabea! PHP & MSQL

    v -ALTA BOOKSE D I T O R ARio de Janeiro 2010

  • Use a Cabeal PHP & MySQLCopyright 2010 da Starlin Alta Con. Com. Ltda. ISBN: 978-85-7608-502-7Produo Editorial:Starlin Alta Con. Com. Ltda.Gerncia de Produo:Maristela AlmeidaCoordenao Administrativa:Anderson CmaraSuperviso de Produo:Angel CabezaTraduo:Marcelo SantosReviso Gramatical:Ftima Regina FlixReviso Tcnica;Giuliana CirelliFormada em Engenharia Eltrica com nfase em eletrnica. Especializada em Programao em linguagem C++ e nos ambientes de desenvolvimento Eclipse e Visual Studio.

    Diagramao:Haroldo Sodr

    Fechamento:Luis Rodrigues

    Translated From Original: Head First PHP & My SQL ISBN: 978-0- 596-00630-3Use a Cabea.! PHP & My SQL 2010 Starlin Alta Con. Com. Ltda. Authorized translation o f the English edition o f Head First PHP & MySQL 2 00 9 Lynn Beighley and Michael Morrison. This translation is published and sold by permission o f OReilly Media, Inc., the owner o f all rights to publish and sell the same. PORTUGUESE language edition published by Editora Starlin Alta Con. Com. Ltda. Copyright 2010 by Editora Starlin Alta Con. Com. Ltda.

    Todos os direitos reservados e protegidos pela Lei ne 9.610/98. Nenhuma parte deste livro, sem autorizao prvia por escrito da editora, poder ser reproduzida ou transmitida sejam quais forem os meios empregados: eletrnico, mecnico, fotogrfico, gravao ou quaisquer outros. Todo o esforo foi feito para fornecer a mais completa e adequada informao, contudo a editora e o(s) autor(es) no assumem responsabilidade pelos resultados e usos da informao fornecida. Recomendamos aos leitores testar a informao, bem como tomar todos os cuidados necessrios (como o backup), antes da efetiva utilizao. Este livro no contm CD-ROM, disquete ou qualquer outra mdia.Erratas e atualizaes: Sempre nos esforamos para entregar a voc, leitor, um livro livre de erros tcnicos ou de contedo; porm, nem sempre isso conseguido, seja por motivo de mudana de software, interpretao ou mesmo quando alguns deslizes constam na verso original de alguns livros que traduzimos. Sendo assim, criamos em nosso site, www.altabooks.com. br, a seo Erratas, onde relataremos, com a devida correo, qualquer erro encontrado em nossos livros.Avisos e Renncia de Direitos: Este livro vendido como est, sem garantia de qualquer tipo, seja expressa ou implcita.Marcas Registradas: Todos os termos mencionados e reconhecidos como Marca Registrada e/ou comercial so de responsabilidade de seus proprietrios. A Editora informa no estar associada a nenhum produto e/ou fornecedor apresentado no livro. No decorrer da obra, imagens, nomes de produtos e fabricantes podem ter sido utilizados e, desde j, a Editora informa que o uso apenas ilustrativo e/ou educativo, no visando ao lucro, favorecimento ou desmerecimento do produto/fabricante.Impresso no BrasilO cdigo de propriedade intelectual de Io de julho de 1992 probe expressamente o uso coletivo sem autorizao dos detentores do direito autoral da obra, bem como a cpia ilegal do original. Esta prtica generalizada, nos estabelecimentos de ensino, provoca uma brutal baixa nas vendas dos livros a ponto de impossibilitar os autores de criarem novas obras.

    ALTA BOOKSEDI TORARua Viva Cludio, 291 - Bairro Industrial do Jacar

    TFP- 9n07

  • Para os meus pais, que frequentemente usam aplicaes web e esto sempre me apoiando- Lynn Beighley

    Para Rasmus Lerdorf, que iniciou sozinho a linguagem que acabaria se tornando o PHP como ns o conhecemos. Prova duradoura de que realmente basta uma pessoa para liderar a todos ns em direo a um caminho novo e mais esclarecido.- Michael Morrison

  • o(s) autor{es)

    Os Autores de Use a Cabepa! PttP S- MySQL

    Lynn Beighley uma escritora de fico presa no corpo de uma escritora de livros tcnicos. Aps descobrir que escrever livros tcnicos realmente dava dinheiro, ela aprendeu a aceitar e desfrutar a profisso. Depois de voltar escola para obter um Mestrado em Cincia da Computao, trabalhou para os acrnimos NRL e LANL.Depois, descobriu o Flash e escreveu seu primeiro best-seller. Vtima de um timing infeliz, mudou-se para Silicon Valley pouco antes da grande crise. Passou alguns anos trabalhando parao Yahoo! e escrevendo outros livros e cursos de treinamento. Finalmente rendendo-se sua vocao de escritora, mudou-se para a rea de Nova Iorque para obter um MFA em Escrita Criativa. Sua tese, escrita no estilo Use a Cabea!, foi defendida diante de uma sala lotada de professores e colegas estudantes.Foi extremamente bem-recebida, e ela terminou seu curso, terminou Use a Cabea! SQL, e acabou de terminar Use a Cabea! PHP f MySQL. Ufa!Lynn adora viajar, escrever e inventar histrias detalhadas sobre totais estranhos. Ela tem um pouco de medo de OVNIs.

    \,VtC^Mo'r'f'SOir'

    Michael Morrison tem sido um contribuinte entusiasmado ao mundo online desde quando m antinha um BBS no seu Commodore 64, na poca em que ser nerd era bem menos maneiro do que hoje em dia. Alguns milhares de bauds depois, ele ainda fica fascinado com o progresso que fizemos, e com que rapidez. Michael no tem mais um BBS, mas ainda se mantm bastante envolvido com os equivalentes modernos e com as ferramentas que usamos para cri-los. Ele passa a maior parte do seu tempo

    oficial escrevendo sobre tecnologias relacionadas com a web, tendo escrito ou co-escrito mais de cinquenta livros, a respeito desde programao de jogos para celulares at XML. Entrou no universo Use a Cabea! com Use a Cabea! JavaScript e no parou mais.Michael tambm o fundador da Stalefish Labs (www.stalefishlabs.com, uma empresa de entretenimento especializada em jogos, brinquedos e mdia interativa. E j foi visto passando tempo fora da Internet (o qu?!) andando de skate, jogando hquei no gelo e cuidando do seu lago de carpas com sua esposa Masheed. Ele at mesmo dorme, de vez em quando.

  • contedo

    Contedo (Sumrio)Introduo xxvii1 Est Vivo: A dicionando Vida s Suas Pginas Estticas 12 Como Tudo se Combina: Conectando-se ao MySQL 593 Criando os Seus Prprios Dados: Crie e Preencha um Banco de Dados 1034 Sua Aplicao na Web: Aplicaes Realistas e Prticas 1595 Q uando um Banco de Dados No o Suficiente: Trabalhando com

    Dados Armazenados em Arquivos 2236 Presum a que Esto Todos Q uerendo Te Pegar: Tom ando a Sua Aplicao Segura 2957 Lem bra de Mim?: Criando A|icaes Web Personalizadas 3457V4 Com partilhar Cuidar: Elimine Cdigo Duplicado 4178 Colhendo Dados: Controle Seus Dados, Controle Seu M undo 4279 Vivendo M elhor Atravs das Funes: Funes String e Personalizadas 50110 Regras Para Substituio: Expresses Regulares 56111 D esenhando Grficos Dinmicos: Visualizando seus Dados...e Mais! 605

    12 Interfaces com o Mundo: Republicao e Servios Web 657i Os Dez Principais Tpicos (Que No Abordamos): Sobras 713ii Um Lugar para Brincar: Configure um Am biente de Desenvolvimento 731iii O btenha Ainda Mais Proveito: Amplie Seu PHP 749ndice Remissivo 755

    Contedo (a coisa real)

    IntroduoSeu crebro ligado no PHP e MySQL. voc est tentandoaprender alguma coisa, enquanto o seu crebro est lhe fazendo um favor ao

    certificar-se de que voc no aprenda. Seu crebro est pensando melhor guardar

    espao para coisas mais importantes, como por exemplo, quais animais selvagens

    evitar e se fazer yoga em baixo d'gua uma boa ideia". Ento, como enganar o seu

    crebro, fazendo-o pensar que a sua vida depende de aprender PHP e MySQL?

    A quem se destina este livro? xxviSabemos o que voc est pensando xxixMetacognio xxxiFaa seu crebro lhe obedecer xxxiiiLeia-me xxxivReviso tcnica xxxviAgradecimentos xxxvii

    ix

  • contedo (sumrio)

    Adicionando Vida s Suas Paginas Estticas

    Est VivoVoc tem criado timas pginas web com HTML, com toques de CSS. Mas tem percebido que os visitantes do seu site no podem fazer muita coisa alm de olhar passivamente o contedo das pginas. A comunicao

    est unidirecional, e voc gostaria de mudar isso. Na verdade, o que voc realmente

    gostaria de saber o que o seu pblico est pensando. Mas para isso preciso

    permitir que os usurios digitem informaes em um formulrio web, para que possa

    saber o que eles tm em mente. E tambm precisa ser capaz de processar essas

    informaes, para que elas lhe sejam entregues. Est comeando a parecer que vai

    precisar de mais do que HTML para levar seu site para o prximo nvel.

    HTML esttico e chato 2

    PHP d vida s pginas web 3

    Um form ulrio ajuda Owen a descobrir toda a histria 5

    Formulrios so feitos de HTML 6

    O form ulrio HTML apresenta problem as 8

    HTML roda no cliente 10

    PHP roda no servidor 11

    Os scripts PHP rodam no servidor 12

    Use PHP para acessar os dados do form ulrio 16

    Os scripts PHP precisam ficar em um servidor! 18

    O servidor transform a PHP em HTML 22

    Algumas regras PHP para o seu cdigo 25

    Encontrando o nom e perfeito para a sua varivel 26

    Variveis servem para arm azenar dados de scripts 31

    POST um a varivel especial que arm azena

    dados do form ulrio 33

    $_POST transporta os dados do form ulrio para o seu script 34

    Criando o corpo da mensagem de email com PHP 44

    At mesmo texto simples pode ser formatado... um pouco 46

    Newlines precisam de aspas duplas 47

    Crie um a mensagem de email para Owen 48

    As variveis arm azenam as partes do email 49

    Enviando um a mensagem de email com PHP 50

    Owen com ea a receber emails 53

    Owen com ea a perder emails 54

  • contedo (sumrio)

    C o n e c t a n d o - s e M / S o L

    Como Tudo se CombinaSaber como as coisas se encaixam, antes de comear a construir, uma boa ideia. Voc criou seu primeiro script PHP, e ele estfuncionando bem. Mas obter os seus resultados em um email j no bom o suficiente.

    Agora precisa de uma forma de guardar os resultados do seu formulrio, para que possa

    mant-los pelo tempo que precisar, e ter acesso a eles quando quiser. Um banco de dados

    MySQL pode armazenar seus dados para voc. Mas preciso conectar seu script PHP ao

    banco de dados MySQL para fazer isso acontecer.

    O form ulrio de Owen funciona bem. Bem at demais...

    MySQL excelente para arm azenar dados

    Owen precisa de um banco de dados MySQL

    Crie um banco de dados e um a tabela MySQL

    A instruo INSERT em ao

    Use SELECT para obter dados da tabela

    Deixe o PHP lidar com as coisas tediosas do SQL

    O PHP perm ite usar os dados do form ulrio web de Owen

    Conecte-se ao seu banco de dados a partir do PHP

    Insira dados com um script PHP

    Use funes PHP para falar com o banco de dados

    Conecte-se com mysqli_connect()

    Construa a query INSERT no PHP

    Consulte o banco de dados MySQL com PHP

    Encerre sua conexo com mysqli-close{)

    $_POST fornece os dados do form ulrio

    Owen precisa de ajuda para peneirar seus dados

    91

    60

    61626467707374767778 80 85

    96

    86

    87

    1 Owen sai em busca de Fang 98

  • Crie e rteencjici um Betnco de DcufosCriando os Seus Prprios DadosNem sempre voc tem os dados de que precisa.s vezes voc mesmo tem que criar os dados que pretende usar, s vezes

    precisa criar as tabelas que iro armazenar esses dados E s vezes precisa criar

    o banco que armazenar os dados que precisa criar. Confuso? Voc no ficar.

    Prepare-se para aprender como criar seus prprios bancos de dados e tabelas. E

    se isso no for o suficiente, ainda criar, no processo, a sua primeira aplicao

    combinando PHP e MySQL.

    A loja Elvis est aberta 104

    Elm er precisa de um a aplicao 105

    Visualize o projeto da aplicao de Elmer 106

    Tudo com ea com um a tabela 109

    Faa contato com o servidor MySQL 110

    Crie um banco de dados para os emails de Elmer 111

    Crie um a tabela dentro do banco de dados 112

    JPrecisamos definir os nossos dados 113

    I Conhea alguns tipos de dados MySQL 114

    Crie sua tabela com um a consulta 117

    SELECIONE o banco de dados antes de us-lo 120

    DESCRIBE revela a estru tura das tabelas 123

    I Elmer est pronto para arm azenar dados 125

    Crie o script Adicionar Email 126

    O outro lado da aplicao de Elm er 133

    O funcionam ento in terno do script Enviar Email 134

    Em prim eiro lugar, obtenha os dados 135

    mysqli_fetch_array() obtm os resultados da consulta 136

    Loop para um WHILE 139

    Loop atravs dos dados com while 140

    Voc tem email... de Elmer! 145

    As vezes, as pessoas querem sair 146

    Removendo dados com DELETE 147

    Use WHERE e DELETE para apagar

    dados especficos 148

    Minimize o risco de apagam entos acidentais 149

    QueroSerElvis.com um a aplicao web 154

    contedo (sumrio)

    customer mafling (tf;

  • A p l i c a r e s R e a l i s t a s e p r t i c a s

    Sua Aplicao na Webs vezes voc precisa ser realista e repensar seus planos.Ou ento planejar com mais cuidado logo no comeo. Uma vez lanada a sua

    aplicao na Web, voc poder descobrir que no planejou suficientemente bem.

    Coisas que pensou que funcionariam podem no ser boas o suficiente no mundo

    real. Este captulo d uma olhada em alguns problemas do mundo real que podem

    ocorrer quando voc transfere sua aplicao do ambiente de testes para um site real. E

    enquanto isso, lhe mostraremos exemplos de cdigos PHP e SQL importantes.

    contedo (sumrio)

    MateMe&vfccoMitocywrlIrWraT*. Ja*rw>w Mafc* Ma Bvfe wiflnfl 'l&l

    Er*3u-,

    Cusni*r

  • contedo (sumrio)

    T r a b a l h a n d o c o m D a d o s A r m a z e n a d o s m A ^ u l V o s

    Quando um Banco de Dados No o SuficienteNo acredite no hype... peio menos no naquele sobreOS banCOS de dados. Certamente os bancos so maravilhosos para se armazenar todo tipo de dados que envolvam texto, mas e quanto aos dados binrios?

    Coisas como imagens JPEG e documentos PDF? Faz sentido armazenar todas essas

    figuras da sua coleo de palhetas raras de guitarra em uma tabela de banco de

    dados? Geralmente no. Esses tipos de dados normalmente so armazenados em

    arquivos, e ns os deixaremos nos arquivos. Mas inteiramente possvel ter o melhor

    de dois mundos - este captulo revela que voc pode usar arquivos e bancos de dados

    juntos para criar aplicaes PHP cheias de dados binrios.

    Guitarristas virtuais gostam de com petir 224

    A imagem a prova 225

    aplicao precisa arm azenar imagens 226

    Planejando os uploads de arquivos grficos no Guitar Wars 231

    O banco de dados das pontuaes mximas precisa ser ALTERado 232

    Como fazer para o usurio enviar a imagem? 236

    Insira o (nom e do) arquivo grfico no banco de dados 238

    Descubra o nom e do arquivo enviado 239

    Para onde foi o arquivo enviado? 244

    Crie um lar para os arquivos grficos enviados 248

    Dados com partilhados precisam ser com partilhados 254

    Sero necessrios dados do script com partilhado 255

    Pense em require_once como um inserir 256

    O mais im portante para as pontuaes mximas a ordem 258

    H om enageando o Guitar W arrior nm ero um 261

    Form ate a m aior pontuao com HTML e CSS 262

    So perm itidas apenas imagens pequenas 267

    A validao de arquivos to rna a aplicao mais robusta 268} -

    Planeje um a pgina Admin 272

    Gere links para rem oo de pontuaes na pgina Admin 275

    Os scripts so capazes de comunicarem-se uns com os outros 276

    Sobre GETs e POSTs 278

    GET, POST e a remoo d e pontuaes 280

    Isole a m aior pontuao para ser removida 283

    Controle o quanto voc pode remover com LIMIT 284

  • T o r n a n d o ct - S u a A p l i c a ? S e g u r a

    Presuma que Esto Todos Querendo Te PegarSeus pais estavam certos: no fale com estranhos, ou peiomenos no confie neles. Na pior das situaes, no d a eies as chaves para

    acessar os dados da sua aplicao, presumindo que no vo fazer nada de

    errado. Vivemos num mundo cruel, e voc no pode partir do princpio que

    todos so confiveis. Na verdade, como desenvolvedor de aplicaes web voc

    precisa ser metade incrdulo e metade adepto de teorias de conspirao. Sim,

    as pessoas em geral so ms e elas definitivamente querem te pegar! OK, talvez

    isso seja um pouco de exagero, mas muito importante levar a segurana a

    srio e elaborar as suas aplicaes de forma que elas fiquem protegidas contra

    qualquer um que pretenda causar danos.

    contedo (sumrio)

    O dia em que a msica m orreu 296

    Para onde foram as pontuaes? 297

    Segurana contra os brbaros 299

    Protegendo a pgina Guitar Wars Admin 300

    i A autenticao HTTP exige cabealhos 302

    ij Tudo Sobre o Cabealho 304

    Controle os cabealhos com PHP 305

    A utenticando com cabealhos 306

    Crie um script Autorizar 314

    Guitar Wars Episdio II: Ataque dos Clones de Pontuao 318

    Subtrao por adio 319

    A segurana requer interveno hum ana 320

    Planeje m oderao no Guitar Wars 321

    Abra espao para aprovaes com ALTER 322

    Pontuaes no-aprovadas no so dignas 327

    O hack de um milho de pontos 330

    Tudo em moderao...? 331

    Como exatam ente ela fez isso? 333

    Enganando o MySQL com com entrios 334

    O form ulrio Add Score recebeu um a injeo de SQL 335

    Proteja seus dados contra injees de SQL 336

    Um INSERT mais seguro (com parm etros) 337

    A validao de formulrios nunca inteligente demais 339

    Cessar fogo! 341

    XV

  • C d ^ n d p A p l i ^ ^ s W e b p e r S 9 n c i ^ l d c t

    7 Lembra de Mim?Ningum gosta de ser esquecido, especialmenteusurios de aplicaes Web. Se a aplicao tiver que trabalhar a noo de comunidade, ou seja, se for planejado que os usurios interajam com

    a aplicao de uma forma pessoal, ento ela ter de se lembrar dos usurios.

    Voc detestaria ter que se apresentar novamente sua famlia a cada vez que

    entrasse em casa. No precisa faz-lo porque seus parentes possuem uma

    coisa maravilhosa chamada memria. Mas aplicaes web no se lembram das pessoas automaticamente - preciso que um desenvolvedor web esperto use

    as ferramentas disponveis (PHP e MySQL, talvez?) para criar aplicaes web

    personalizadas que realmente sejam capazes de se lembrar dos usurios.

    contedo (sumrio)

    To v*w pis, m nsedtolog In to a r Mstfiatch* o* ww nrte-match^er : Yotr puiwerd Vtft bt sentJft.thsdear' 0 ^ U shtm w s jneses

    State: g FPStnwne: Joijao Ffctnxe NsiksGfflda1; Mate BSrtbate 1981-H-Q3 Locatnu Athecs,G

    Woukl you like to

    Dizem que os opostos se atraem

    O negcio do Mismatch so os dados pessoais

    O Mismatch precisa dos logins dos usurios

    Preparando o banco de dados para os logins

    | Construindo uma interface de usurio para o login

    Crip to grafe as senhas com SHA()

    Comparando senhas

    Autorizando usurios com HTTP

    Fazendo login dos usurios com autenticao HTTP

    Um formulrio para novos usurios se cadastrarem

    Do que feito o cookie?

    Use cookies com PHP

    Repensando o fluxo dos logins

    Um login baseado em cookies

    Fazer logout significa apagar cookies

    As sesses no dependem do cliente

    Mantendo-se atualizado com os dados das sesses

    Renove o Mismatch com as sesses

    Faa Logout com sesses

    Complete a sesso de transformaes

    Os usurios no esto se sentindo bem-vindos

    As sesses tem vida curta...

    ...mas os cookies podem durar para sempre!

    Sesses + Cookies = Persistncia de login superior

    346

    347

    348

    351

    353

    354

    355

    358

    361

    365

    375

    376

    379

    380

    385

    389

    391

    392

    393

    398

    404

    406

    407

    409

  • contedo (sumrio)

    Elimine Cdigp DuplicadoCompartilhar CuidarGuarda-chuvas no so a nica coisa que pode ser Compartilhada. Em qualquer aplicao web, voc poder encontrar situaes em que um mesmo cdigo encontra-se duplicado em mais de um

    lugar. Isso no s um desperdcio de recursos, como tambm pode levar

    a problemas de manuteno, uma vez que voc inevitavelmente acabar

    fazendo modificaes e estas tero de ser efetuadas em mais de um lugar.

    A soluo eliminar o cdigo duplicado, compartilhando-o. Em outras palavras, voc mantm o cdigo duplicado em apenas um lugar, e depois,

    apenas referencia esse cdigo sempre que precisar dele. A eliminao de

    cdigo duplicado resulta em aplicativos mais eficientes, de manuteno

    mais fcil, e finalmente, mais robustos..

    O Mismatch est em pedaos 421

    Reconstruindo o Mismatch a partir de um tem plate 422

    Reconstrua o Mismatch com templates 424

    O Mismatch est novam ente em p... e m uito m elhor organizado 426

    0 dbefilho aparece o ali de cada pagina do Mismatch, e exibe titu lo da aplidaSo juntamente tom un> trtulo especfico pagina..w ttulo espe t$ \to

    Cada pagina do Mismatch

  • contedo (sumrio)

    C^nttole Seus aColhendo Dados

    Nada como uma boa colheita de dados no outono, um sem-fim deinformaes prontas para serem examinadas, classificadas, comparadas, combinadas,

    enfim, qualquer coisa que a sua excelente aplicao web precisar que seja feito. Compensador? Sim. Mas assim como as colheitas na vida real, preciso muito trabalho

    duro e uma boa dose de conhecimento para se obter controle sobre os dados em um

    banco MySQL. Os usurios da web exigem mais do que dados estticos e enfadonhos.

    Eles querem dados enriquecedores... dados compensadores... dados relevantes. Ento,

    o que voc est esperando? D a partida no seu trator MySQL e mos obra!

    Fazendo o desencontro perfeito 428

    Os desencontros se referem aos dados 429

    Modele o banco de dados com um schema 431

    Ju n te vrias tabelas 436

    Chaves estrangeiras em ao 437

    As tabelas podem com binar linha p o r linha 438

    eT Um a linha leva a muitas outras 439

    Checando linhas de muitas-para-muitas 440

    Crie um questionrio Mismatch 445

    Coloque as respostas no banco de dados 446

    E possvel com andar um form ulrio com dados 450

    Gere o form ulrio do questionrio Mismatch 456

    Procure po r um pouco de norm alidade 462

    Ao normalizar, pense em termos de tomos 463

    Trs passos para se criar um banco de dados norm alizado 465

    Alterando o banco de dados do Mismatch 469

    Ento, o Mismatch realm ente normal? 470

    Um a consulta den tro de um a consulta

    dentro de um a consulta... 472

    Vamos todos ju n ta r as tabelas 473

    Ligue os pontos 474

    Certam ente podem os fazer mais com os inner jo ins 475

    Apelidos para tabelas e colunas 477

    Joins, ao trabalho! 478

    Cinco passos para um desencontro com sucesso 485

    Com pare usurios pela desencontrabilidade 487

    Tudo o que precisamos um loop FOR 488

  • contedo (sumrio)

    Funpes String e pers>ncillzulas

    Vivendo Melhor Atravs das FunesAs funes levam as suas aplicaes para um nvel superior.Voc j vem usando as funes internas do PHP para realizar as coisas. Agora hora

    de dar uma olhada em mais algumas funes internas realmente teis. E depois voc aprender a criar suas prprias funes personalizadas para lev-lo mais alm do que

    sequer imaginava que fosse possvel. Bem, talvez no to longe que voc comece a usar

    espadas laser, mas as funes personalizadas certamente simplificam o seu cdigo e o

    tornam reutilizvel.

    Strings e funes personalizadas 501

    Um bom trabalho arriscado difcil de encontrar 502

    A busca no deixa m argem para erros 504

    ; As consultas SQL podem ser flexveis com LIKE 505

    ; Transforme um a string em palavras individuais 510

    Im plode() cria um a string a partir de substrings 513

    Pr-processe a string de busca 519

    Substitua caracteres de busca indesejados 520

    A consulta precisa de term os de busca legtimos 524

    Copie elem entos no-vazios para um novo array 525

    As vezes voc s precisa de parte de um a string 528

    Extraia substrings do incio ou do fim 529

    Podemos classificar nossos resultados com mltiplas consultas 532

    As funes lhe perm item reutilizar cdigo 536

    Construa um a consulta com um a funo personalizada 537

    Funes personalizadas: o quo personalizadas elas realmente so? 538

    SWITCH tom a m uito mais decises do que IF 542

    D a build_query() a capacidade de classificar 545

    Podemos paginar os nossos resultados 548

    O btenha apenas as linhas de que voc precisa com LIMIT 549

    Controle os links das pginas com LIMIT 550

    M antenha registro dos dados da paginao 551

    Defina as variveis da paginao 552Revise a consulta para ter resultados paginados 553

    Gere os links de navegao da pgina 554

    M ontando o script Search com pleto 557

    O script Search com pleto, continua... 558

    xix

  • contedo (sumrio)

    E x p t e s s P e s l e g u l c t f e s

    Regras Para SubstituioAs funes string so adorveis. Mas, ao mesmo tempo,so limitadas. Certamente elas podem realizar tarefas como lhe dizer a extenso da sua string, truncar a string, trocar certos caracteres por outros. Mas s vezes voc precisa de liberdade para lidar com manipulaes de texto mais

    complexas. aqui que as expresses regulares podem ajudar. Elas podem

    modificar strings de forma precisa, com base em um conjunto de regras, em vez

    de um s critrio.

    A Riskyjobs perm ite que os usurios submetam currculos

    Decida como dever ser a aparncia dos seus dados

    Form ule um padro para nm eros telefnicos

    Confira padres com relao a expresses regulares

    Crie padres usando m etacaracteres

    Ajuste os padres com classes de caracteres

    Verifique os padres com preg_m atch()

    Padronize os dados dos nm eros de telefone

    Livre-se dos caracteres indesejados

    Conferir endereos de email pode ser complicado

    Sufixos de domnios esto por toda a parte

    Use PHP para verificar o dom nio

    Validao de email: m ontando o quadro

    562566569

    570 572 579 584591592 596598

    599

    600

  • ViSUcdizctndo seus Dados--. eM as!Desenhando Grficos Dinmicos claro que todos ns conhecemos o poder de uma boa consulta e os consequentes resultados satisfatrios.Mas os resultados de consultas nem sempre falam por si mesmos. s vezes

    til apresentar os dados de uma forma diferente, uma forma mais visual. O PHP

    possibilita o fornecimento de uma representao grfica dos dados: grficos pizza,

    grficos em barra, diagramas de Venn, desenhos Rorschach, qualquer coisa. Vale de tudo para ajudar os usurios a compreender os dados que fluem atravs da sua

    aplicao. Mas nem todos os grficos teis, em aplicaes PHP, se originam do seu

    banco de dados. Por exemplo, voc sabia que possvel evitar ataques de bots de

    spam com imagens geradas dinamicamente?

    contedo (sumrio)

    Guitar Wars Reloaded: A Vingana das Mquinas 606

    N enhum form ulrio de input est a salvo 607

    Precisamos separar os hum anos das m quinas 608

    Podemos vencer a autom ao usando a autom ao 611

    Gere o texto da senha de CAPTCHA 613

    Visualizando a imagem CAPTCHA 614

    Por den tro das funes grficas GD 616

    D esenhando texto com um a fonte 620

    Gere um a imagem CAPTCHA aleatria 623

    A sanidade re to rna ao Guitar Wars 625

    Adicione CAPTCHA ao script Adicionar Pontuao 627

    Cinco graus de oposio 630

    Pondo a desencontrabilidade em tabela 631

    A rm azenando dados do grfico com barras 632

    Lendo entre as linhas com o senhor dos grficos 635

    De um array para outro 636

    Crie um array de tpicos desencontrados 638

    Form ulando um plano para execuo de

    grficos de barras 639

    Amassando as categorias 640

    A m atem tica das categorias 641

    Fundam entos dos grficos de barras 644

    Desenhe e mostre a imagem do grfico de barras 647

    Imagens individuais do grfico de barras para todos 650

    Os usurios do Mismatch esto gostando dos

    grficos de barras 653

    xxi

  • fepukliCcL9 e SetViPS Web

    U Interfaces com o MundoExiste um grande mundo l fora, mundo esse que a sua aplicao web no pode se dar ao luxo de ignorar ou o quetalvez seja mais, voc que no gostaria que o mundo ignorasse a sua aplicao. Uma excelente maneira de fazer o mundo not-la tornar os seus dados

    disponveis para republicao, o que significa que os usurios podero assinar o

    contedo do seu site, em vez de ter de visit-lo diretamente para encontrar novas

    informaes. No apenas isso, a sua aplicao pode fazer interfaces com outras aplicaes, atravs dos servios web, e pode tirar proveito dos dados de outras

    pessoas para fornecer uma experincia mais rica.

    contedo (sumrio)

    Algutts clientes de email tm suporte a contedo pu sh permitindo que voc receba atualizaes do site da m esm a

    com o recebe m ensagens de email.

    Muitos navegadores web tambm lhe permitem exam inar contedo push" que revela rapidamente a s noticias m ais recentes publicadas em um determinado site.

    A t m esm o dispositivos m veis provm a c e sso a contedo 'push*, o qual enviado autom aticam ente quando e lgo se m odifica no

    Owen precisa avisar ao mundo sobre Fang 658Envie dados sobre abdues aliengenas para as pessoas 659 O RSS envia contedo web para as pessoas 660O RSS na verdade XML 651Do banco de dados para o news reader 666Visualizando RSS 669O que interessa a um comunicador 671Gere um envio RSS dinamicamente 672Crie um link para o envio RSS 676Um vdeo rale mais que mil palavras 678Obtendo contedo web de terceiros 680Republicando vdeos do You Tube 681

    ; Fazendo uma requisio de vdeo no You Tube 682Owen esta pronto para criar uma requisio REST 686O You Tube fala XML 690Deconstruindo uma resposta XML do You Tube 694Visualize os dados de vdeo XML 695Acesse os dados XML com objetos 696De elementos XML para objetos PHP 697Penetre nos dados XML com objetos 698No sem um namespace! 699Cada vez mais avistamentos de Fang 701Disponibilize vdeos para visualizao 702Formate os dados de vdeo para exibio 703

  • $oL>rasOs Dez Principais Tpicos (Que No Abordamos)Mesmo depois de tudo isso, ainda tem mais um pouco Aindatemos mais algumas coisas que voc precisa conhecer. No seria certo ns as

    ignorarmos, mesmo que s precisem de uma breve meno. Portanto, antes de guardar

    o livro, d uma lida nestes pequenos, mas importantes pargrafos sobre PHP e MySQL.

    Alm disso, uma vez concludo este aqui, s faltaro mais dois pequenos apndices... e

    o ndice... e talvez algumas propagandas... e a o livro realmente acaba. Promessa!

    contedo (sumrio)

    #1. Adapte este livro para funes PHP4 e mysql 714

    #2. Permisses do usurio no MySQL 716

    #3. Relato de erros para o MySQL 718

    #4. Erros PHP com tratam ento de excees 719

    #5. PHP orientado a objetos 721

    #6. Tom ando segura a sua aplicao PHP 723

    #7. Proteja sua aplicao de scripts cross-site 725

    #8. Precedncia de operadores 727

    #9. Qual a diferena en tre PHP 5 e PHP 6 728

    #10. Reutilizando o PHP de terceiros 730

    xxiii

  • C^nfgute um Ambiente de DesenVpl Vim entP1 1 Um Lugar para BrincarI I Voc precisa de um lugar para praticar suas recm- adquiridas habilidades em PHP e M ySQL, porm sem tornar

    OS SeUS dados vulnerveis na web. sempre uma boa ideia ter um local seguro para desenvolver sua aplicao PHP antes de lan-la no mundo (ou seja,

    na web). Este apndice contm instrues para a instalao de um servidor web, do

    MySQL e do PHP, para lhe fornecer um lugar seguro onde possa trabalhar e praticar.

    contedo (sumrio)

    Servidor

    Crie um am biente de desenvolvimento PHP 732

    D escubra o que voc tem 732

    Voc tem um servidor web? 733

    Voc tem o PHP? Qual verso? 733

    Voc tem o MySQL? Qual verso? 734

    Comece pelo Servidor Web 735

    Passos para a instalao do PHP 737

    Instalando o MySQL 738

    Passos para a instalao do MySQL no Windows 739

    H abilitando o PHP no Mac OS X 742

    Passos para a instalao do MySQL no Mac OS X 742

    Passando do am biente de produo para um site no ar 744

    Dump seus dados (e as suas tabelas) 745

    Prepare-se para usar seus dados 745

    Mova os dados consolidados para o servidor ativo 746

    Conecte-se ao servidor ativo 747

  • contedo (sumrio)

    99

    IIIArapllie SeuObtenha Ainda Mais ProveitoSim, voc pode programar com PHP e MySQL e criartimas aplicaes Web. Mas voc sabe que ainda deve haver mais a se explorar. E h. Este pequeno apndice ir lhe mostrar como instalar a extenso

    mysqli e a extenso biblioteca grfica GD. Em seguida, mencionaremos mais

    algumas extenses do PHP que voc poder querer baixar. Porque s vezes no

    tem problema em querer sempre mais.

    Estendendo o seu PHP 750

    E no Mac.. 753

    XXV

  • Como Usor Este LVrc>Introduo

    Nesta seo, respondemos iporfc^ ie per^ wvfca-- u&ivfcdo> por

  • como usar este fivro

    A quem se destina este livro?Se voc p u d e r re sp o n d e r sim a todas estas perguntas:

    Voc um web designer com experincia em HTML ou XHTML, e deseja melhorar as suas pginas?

    Voc deseja ir alm do simples HTML e aprender, entender e se lembrar como usar PHP e MySQL para criar aplicaes web?

    Voc prefere conversas informais e estimulantes, em vez de aulas enfadonhas e acadmicas?

    en to este livro p a ra voc.

    Quem provavelmente deve fugir deste livro?

    Se voc p u d e r re sp o n d e r sim a q u a lq u er um a destas perguntas:

    Voc no tem conhecimento nenhum sobre conceitos bsicos de programao, tais como variveis e loops?

    (Mas mesmo que jamais tenha programado antes, voc provavelmente ser capaz de absorver os conceitos-chaves de que precisa, neste livro.)

    Voc um super desenvolvedor web PHP procurando por um livro de referncia?

    Voc tem medo de tentar algo diferente? Voc prefere arrancar um dente do que misturar listras com xadrez? Voc acha que um livro tcnico no pode ser srio se um dos exemplos um banco de dados sobre abdues aliengenas?

    en to este livro no p a ra voc.

    Nota Ao d .f jH a .e .fc d o d t f l d r k e t ide frredi-fxj.

  • introduo

    Sabemos o que voc est pensandoComo isso aqui pode ser um livro de PHP e MySQL srio? Por que tantas figuras?E realmente possvel aprender desta forma?

    Sabemos o que o seu crebro est pensandoSeu crebro pede novidade. Ele est sem pre buscando, vasculhando, esperando p o r algo fora do comum. Ele foi construdo dessa forma, e isso lhe ajuda a se m anter vivo..

    Assim, o que o seu crebro faz com todas as coisas rotineiras, comuns, normais, que voc encontra? Faz todo o possvel para evitar que elas interfiram no trabalho real do crebro - registrar coisas que sejam importantes. Ele no se d ao trabalho de armazenar as coisas chatas; elas nunca conseguem passar pelo filtro isto aqui obviamente no importante.

    Como o seu crebro sabe o que ou no im portante? Suponha que voc esteja fazendo um a cam inhada na selva e um tigre pule na sua frente; o que acontece com a sua m ente e o seu corpo?

    Os neurnios se acendem . As emoes fluem. A qumica dispara.E assim que o seu crebro sabe que...

    Isto deve ser importante! No se esquea!

    Mas imagine que voc esteja em casa ou em um a biblioteca. um a rea segura, aconchegante, livre de tigres. Voc est estudando. Se preparando para um a prova. O u tentando aprender algum difcil assunto tcnico que o seu chefe acha que s vai levar um a semana, dez dias no mximo.

    S um problema. Seu crebro est tentando lhe fazer um grande favor. Ele est tentando se certificar de que este contedo obviamente desimportante no ocupe recursos que so escassos. Recursos esses que so mais bem empregados armazenando-se as coisas realmente importantes. Como tigres. Como o perigo do fogo. Como esconder rapidamente ajanela donavegador com o vdeo de discos voadores no You Tube, antes que o seu

    ^ rcU-cIsto ;,mF'rtKit'

    chefe aparea.

    E no h um a form a simples de dizer ao seu crebro ei, crebro, m uito obrigado, mas no im porta o quanto este livro seja chato, e quo poucas emoes eu esteja sentindo neste exato m om ento, eu realm ente quero que voc se lem bre destes assuntos.

    Videos de H/Ms no You Tube sa obviawewte ais mievessa>vfces para o seu ievebv-o do ^ue um liw-o de TJ.

    xxix

  • como usar este livro

    tntendeni9s cjue o JetPr c[e um JiVtP cfa sne ^\Jse a C^ea!

    Ento, o que preciso para se aprender algo? Primeiramente, voc precisa entender o assunto, e depois se certificar de que no vai esquec-lo. No adianta tentar entulhar fatos dentro da sua cabea. Com base nas pesquisas mais recentes em cincia cognitiva, neurobiologia e psicologia da educao, necessrio muito mais do que texto em uma pgina para um verdadeiro aprendizado. Ns sabemos como chamar a ateno do seu crebro

    Alguns dos princpios de aprendizado Use a Cabeal:Use o recurso visual. Imagens so muito mais memorveis do que palavras

    sozinhas, e tomam o aprendizado muito mais eficiente (at 89% de melhoria em estudos sobre lembrana e transferncia). Eias tambm tornam as coisas mais compreensveis. Coloque as palavras dentro ou perto das imagens s quais elas se referem, em vez de na parte de baixo da pgina ou na pgina seguinte, e

    os estudantes tero duas vezes mais probabilidade de conseguir resolver problemas relacionados ao contedo.

    U se um estilo coiw ersacional e personalizado.Em estudos recentes, os estudantes tiveram um desempenho at 40% melhor, em testes ps-aprendizado, quando o contedo falava diretamente ao leitor, usando um estilo conversacional, em primeira pessoa, do que quando se usava um tom mais formal, Conte histrias, em vez de lecionar. Use 1 casual. No se leve muito a srio. Hm que voc prestaria mais c estimulante conversa informal ou uma aula?Faa o estudante pensar um pouco m ais profunEm outras palavras, a no ser que voc ativamente exercite os neurnios, no vai acontecer muita coisa dentro da sua cabe precisa estar motivado, engajado, curioso e inspirado para res problemas, chegar a concluses e gerar conhecimento novo. f isso, voc precisa de desafios, exerccios e perguntas que prov o raciocnio, bem como de atividades que envolvam ambos os hemisfrios do crebro e vrios sentidos.Obtenha - e mantenha - a ateno do leitor. Tod< passamos por uma situao de "eu realmente quero aprender no consigo passar da pgina um acordado". O seu crebro pr em coisas que sejam fora do comum, interessantes, estranhas, assunto tcnico novo e difcil no precisa ser enfadonho. O se mais rapidamente se no for.

    Provoque as emoes. Ns sabemos que a sua capacid algo depende largamente do contedo emocional. Voc se lei que se importa. Voc se lembra de algo quando sente algo. N< de histrias de partir o corao sobre um garoto e seu cachori emoes como surpresa, curiosidade, diverso, "que ... essa? fera! que vem quando voc resolve um quebra-cabeas, apre acha que difcil ou percebe que voc sabe algo que o Bob "e do departamento de engenharia, no sabe.

    U**a pequena domdo- Na verdade, ns e**os Kistria de pariir o doraa sobre um $\rci# e seu Sherro - o dadhorro -oi abduzido por aliengenas, e vode ajudar * 3 k/flB-f-Sr ioJ.

  • introduo

    Metacognipo: pensando sobre pensarSe voc realmente quer aprender com mais rapidez e mais profu preste ateno ao modo como prestamos ateno. Pense sobre c pensa. Aprenda sobre como voc aprende.

    raramente nos ensinaram a aprender.Mas ns partimos do princpio de que, se voc est com este livro porque realmente quer aprender a criar sites baseados em bane dados, usando PHP e MySQL. E provavelmente no quer despenc tempo. Par poder usar o que voc ir ler neste livro, ter de se lei do que leu. E para isso, voc precisa entender o assunto. Para tirai proveito possvel deste livro ou de qualquer livro ou experincia d assuma a responsabilidade sobre o seu crebro. Focalize o seu crebro neste contedo.O segredo fazer o seu crebro ver o novo material que voc est aprendendo como sendo Realmente Importante. Crucial para o seu bem-estar. To importante quanto um tigre. Caso contrario, voc se ver numa batalha constante, com o seu crebro fazendo o possvel para que o novo contedo no seja gravado..Ento, como que voc faz com que o seu crebro tra te o PHP e My SQL como se ele fosse um tigre faminto?Existe a forma lenta e tediosa, e existe a forma mais rpida e mais eficiente. A forma lenta pura repetio. Voc obviamente sabe possvel aprender e se lembrar at dos assuntos mais chatos, se continuar empurrando repetidamente a mesma coisa para o seu crebro. Com suficiente repetio, seu crebro diz ele no sent isto realmente importante, mas continua olhando as mesmas c repetidas e repetidas vezes, ento suponho que deve ser importaA forma mais rpida fazer qualquer coisa que aumente a atividade cerebral, e de preferncia, diferentes tipos de atividade cerebral. As listadas na pgina anterior so uma grande parte da soluo, e so o que comprovadamente ajudam o seu crebro a trabalhar em seu fav exemplo, alguns estudos mostram que colocar palavras dentro das f que elas descrevem (em vez de coloc-las em algum outro lugar na f como, por exemplo, em uma legenda ou no corpo do texto) obriga crebro a tentar entender a relao entre as palavras e a figura, e ist< mais neurnios se ativarem. Quando mais n e u r n io s se ativam, h n chances de o seu crebro entender que isto algo a que 'rale a pena ateno, e possivelmente registrar.Um estilo conversacional ajuda porque as pessoas tendem a pres mais ateno quando percebem que esto envolvidas em uma cc uma vez que, nessa situao, espera-se que elas acompanhem o < est sendo dito para saber quando e como responder. O mais fai que o seu crebro no necessariamente liga se a conversa e voc e um livro! Por outro lado, se a escrita tiver um estilo form; seu crebro o perceber da mesma forma como a experincia d uma lio sentado em uma sala de aula cheia de estudantes pass No preciso ficar acordado.Mas as figuras e o estilo conversacional so apenas o incio...

    A maioria das pessoas no faz aulas de metacognio ou de teori aprendizado na escola. Sempre se esperou que ns aprendsseir

    XXXI

  • como usar este f/vro

    Um Desencontro!

    tilno

    rn t i V ' A Ta PiU de -tenrorAqui esta o que NOS fizemos:Ns usamos figuras, porque o seu crebro est ajustado para prestar ateno em sinais visuais, e no em texto. Pelo menos no que concerne ao seu crebro, uma imagem realmente vale por mil palavras. E quando texto e imagens precisam trabalhar juntos, ns colocamos o texto dentro das figuras, porque o seu crebro funciona de forma mais eficiente quando o texto se encontra dentro da coisa a que ele se refere, em vez de em uma legenda ou escondido em algum lugar dentro do texto.Ns usamos redundncia, dizendo a mesma coisa de formas diferentes e com diferentes tipos de mdia, e visando a mltiplos sentidos, para aumentar a chance de o contedo ser registrado em mais de uma rea do seu crebro.Ns usamos conceitos e figuras de formas inesperadas, porque o seu crebro est ajustado para prestar ateno em novidades, e usamos figuras e ideias com pelo menos algum contedo emocional, porque o crebro est ajustado para prestar ateno bioqumica das emoes. Aquilo que nos faz sentir algo mais provvel de ser lembrado, mesmo que esse sentimento no seja nada mais que um pouco de humor, surpresa ou interesse.Ns usamos um estilo personalizado, conversacional, porque o seu crebro est ajustado para prestar mais ateno quando ele acredita que voc est envolvido em uma conversao do que quando pensa que est passivamente ouvindo uma apresentao- Seu crebro faz isso mesmo quando voc est lendo.Ns inclumos mais de 80 atividades, porque o seu crebro est ajustado para aprender e se lembrar mais quando voc faz algo do que quando l sobre algo. E fizemos os exerccios desafiadores, porm resolvveis, porque isso o que a maioria das pessoas prefere.Ns usamos vrios estilos de aprendizado, porque voc poder preferir procedimentos passo-a-passo, enquanto que outras pessoas podero querer entender o quadro geral primeiro, e outras ainda s querem ver um exemplo.Mas indepen dentemente do seu mtodo preferido de aprendizado, todo mundo se beneficia em ver o mesmo contedo representado de diversas fornias.Ns inclumos contedo para ambos os hemisfrios do seu crebro, porque quanto mais partes do seu crebro voc utiliza, maior a probabilidade de voc aprender e se lembrar, e maior o tempo durante o qual conseguir se manter focado. Uma vez que trabalharum lado do crebro frequentemente significa que o outro lado ter um M wL J U L / x Z tempo para descansar, voc poder ser mais produtivo nos estudos, por um perodo de tempo maior.Ns inclumos estrias e exerccios que apresentam mais de um ponto de vista, porque o seu crebro est ajustado para aprender com mais profundidade quando forado a fazer avaliaes e julgamentos.Ns inclumos desafios, com exerccios e fazendo perguntas que nem sempre tem uma resposta direta, porque o seu crebro est ajustado para aprender e se lembrar quando precisa trabalhar em algo. Pense no seguinte: no possvel fazer seu corpo ficar em forma apenas olhando as pessoas malhando na academia. Mas ns fizemos nosso melhor para garantir que, quando estiver trabalhando duro, ser sempre nas coisas certas, para que no tenha que gastar um neurnio sequer a mais do que o necessrio processando um exemplo difcil de entender ou tentando decifrar um texto difcil, cheio de termos tcnicos obscuros ou sisudo demais.Ns usamos pessoas. Nas estrias, exemplos, figuras, etc., porque, bem, porque voc uma pessoa. E o seu crebro presta mais ateno nas pessoas do que nas coisas.

    lente isto'

    NAO CCNFE ;$B3p3scaaSsi?

  • introduo

    Veja o que fazer para que o seu crebro se curve em sinal de submissoOk, fizemos a nossa parte. O resto com voc. Estas dicas funcionam como um ponto de partida; oua o seu crebro e descubra o que funciona e o que no funciona para voc. Experimente coisas diferentes.fceH* jsta pjina c cole na porta da sua geladeira.

    V devagar. Quanto mais voc entende, menos voc tem que memorizar.No leia, simplesmente. Pare e pense. Quando o livro lhe apresentar uma pergunta, no pule direto para a resposta. Imagine que uma pessoa real est lhe fazendo a pergunta. Quanto mais aprofundadamente voc forar o seu crebro a pensar, maior a sua chance de realmente aprender e se lembrar do que aprendeu.

    Faa os exerccios. Faa suas prprias | anotaes.Ns elaboramos os exerccios, mas se os fizssemos para voc, isso seria como ir academia e ter algum para m alhar po r voc.E no basta s olhar os exerccios. Use um lpis. H m uita evidncia de que a atividade fsica durante o processo de aprendizado pode m elhorar este ltimo.

    Leia as sees No Existem iPerguntas Idiotas.

    Todas elas. Elas no so com entrios opcionais fazem p arte do co n te d o central! N o as deixe de lado.

    Que isso seja a ltima coisa que voc l antes de dormir. Ou pelo menos a ltima coisa desafianteP arte do ap rend izado (especia lm ente a transfe rncia p ara a m em ria de longo prazo) ocorre depois que voc fecha o livro. Seu c reb ro p recisa de algum tem po para realizar todo o p rocessam ento . Se voc te n ta r absorver novas in form aes d u ran te esse tem po, um a p arte do que voc acabou de ap re n d e r ser perd ida .

    i Beba gua. Em grande quantidade.Seu crebro funciona m elhor quando envolvido em um bom banho. A desidratao (que pode acontecer antes mesmo de voc sentir sede) prejudica as funes cognitivas.

    0 PHP o MySQL. Ke er*>'rte* rar ^ vjeb reais nao sc es^ueta y

    de envia-las e C*perimer>t-!as em um servidor yeb vevdadeiro..

    Converse sobre o que est lendo. Em voz altaFalar ativa um a parte diferente do crebro. Se voc quer entender algo ou aum entar as suas chances de se lembrar do assunto depois, pronuncie-o em voz alta. Melhor ainda, tente explic-lo, em voz alta, a outra pessoa. Voc aprender mais rapidamente e poder descobrir ideias que no tinha percebido ainda durante a leitura,

    lOua o seu crebro.Preste ateno para saber se o seu crebro est ficando sobrecarregado. Se voc perceber que est com eando a ler superficialm ente ou esquecer o que acabou de ler, hora de fazer um a pausa. Um a vez que voc passa de certo ponto, no possvel ap render mais rpido tentando absorver mais e mais contedo e poder at prejudicar o processo.

    ^Sinta algo.Seu crebro precisa saber que isto im portante. Envolva-se com as estrias. Crie as suas prprias legendas para as fotos. Resm ungar sobre um a piada ruim ainda m elhor do que no sentir nada.

    Escreva bastante cdigo.S existe um a forma de aprender a programar: escrevendo um m onte de cdigo. E isso que voc ir fazer ao longo deste livro. Programar um a habilidade, e a nica forma de se ficar bom nela praticando. Ns iremos lhe oferecer muitas oportunidades de praticar: cada captulo ter exerccios que apresentam problemas para voc resolver. No deixe de faz-los - um a boa parte do aprendizado acontece quando voc resolve os exerccios. Ns inclumos solues - no tenha medo de dar um a olhada na soluo caso no consiga resolver algum exerccio! ( comum um pequeno detalhe atrapalhar toda a resoluo) Mas tente resolver o problema antes de olhar as solues. E, definitivamente, faa o exerccio funcionar antes de passar para a parte seguinte do livro.

    XXXIII

  • como usar este livro

    Leia-meIsto uma experincia de aprendizado, e no um livro de referncia. Ns deliberadamente retiramos tudo que pudesse atrapalhar o aprendizado de qualquer que seja o assunto tratado em um determinado ponto do livro. E na primeira leitura, voc precisa comear pelo comeo, porque cada captulo assume que voc aprendeu o que viu no anterior.Ns comeamos ensinando alguns conceitos simples de programao e fundamentos de conexo a banco de dados, em seguida apresentamos funes PHP e instrues MySQL mais complexas, e finalmente mostramos alguns conceitos mais complexos sobre aplicaes.Embora seja importante permitir aos usurios adicionar dados e a retirar dados de uma aplicao web, antes disso, preciso primeiramente, entender a sintaxe tanto do PHP quanto do MySQL. Assim, ns comeamos apresentando instrues PHP e MySQL que voc pode experimentar na prtica. Assim, voc poder imediatamente fazer algo com PHP e MySQL, e comear a se sentir estimulado em usar essas tecnologias. Depois, mais adiante no livro, lhe mostraremos as boas prticas de projeto de aplicaes e de bancos de dados.Nesse ponto, j ter um slido domnio da sintaxe de que vai precisar e poder se concentrar em aprender os conceitos.Ns no abordaremos todas as instrues, funes ou palavras-chaves do PHP ou MySQLTeria sido possvel colocar cada instruo, funo e palavra-chave do PHP e do MySQL neste livro, mas ns achamos que iria preferir um livro que no fosse do tamanho de um catlogo telefnico, e lhe ensinasse as instrues, funes e palavras-chaves mais importantes. Apresentaremos aquelas que voc precisa conhecer, e que usar em 95% do tempo. E aps terminar este livro, ter a confiana para procurar sozinho informaes sobre aquela funo de que precisa para terminar a aplicao que acabou de escrever. ^ ^ ^ ^ ANs estamos abordando o PHP 5 e o MySQL 5.0.Devido ao fato de muita gente ainda usar o PHP 4 ou 5, ns evitamos usar cdigos especficos para o PHP 4, 5 ou 6 sempre que possvel. Sugerimos que voc use o PHP 5 ou 6 e o MySQL 5 ou 6 ao estudar os conceitos deste livro.No desenvolvimento deste livro, nos concentramos no PHP 5 e no MySQL 5, ao mesmo tempo nos certificando de que o cdigo fosse compatvel com verses posteriores.Voc precisa de um servidor web com suporte a PHP.O PHP precisa ser executado atravs de um servidor web para funcionar corretamente. Voc precisa do Apache ou de algum outro servidor web instalado na sua mquina local, ou em alguma mquina qual voc tenha algum acesso, para que possa executar comandos MySQL sobre os dados.Consulte os Apndices ii e iii para instrues sobre como instalar e estender o PHP e o MySQL.

    Na verdade, voe pode wsv o

    tovn este SWvoj -z/ndo al$uas modi itadoes ao todifto. Consulte o

  • introduo

    Ns usamos o MySQL.Embora exista uma linguagem SQL Padro, neste livro ns usaremos a sintaxe particular do MySQL. Com apenas algumas poucas modificaes na sintaxe, o cdigo deste livro dever funcionar no Oracle, MS SQL Server, PostgreSQL, DB2 e em mais alguns outros Sistemas de Gerenciamento de Bancos de Dados Relacionais (Relational Database Management Systems ou RDBMSs) existentes. Voc ter de pesquisar as funes e a sintaxe particulares do PHP, para se conectar a esses outros RDBMSs. Se fssemos abordar todas as variaes de sintaxe para cada comando, este livro teria muito mais pginas do que tem. Ns gostamos das rvores, por isso nos limitamos ao MySQL.As atividades NO so opcionais.Os exerccios e atividades no so opcionais; fazem parte do contedo central do livro. Alguns deles servem para ajudar a memorizao, outros para o entendimento e alguns iro lhe ajudar a pr em prtica o que acabou de aprender. No deixe de faz-los. As palavras cruzadas so a nica coisa que no precisa fazer, mas so boas para dar ao seu crebro uma chance de pensar de uma forma diferente nas palavras e termos que voc est aprendendo.A redundncia intencional e importante.Uma diferena importante de ura livro Use a Cabea! que ns queremos que voc realmente entenda o assunto, E queremos que termine este livro lembrando-se do que aprendeu. A maioria dos livros de referncia no tem a reteno e a recuperao como alvo, mas este um livro de aprendizado, e portanto, ver alguns conceitos aparecendo mais de uma vez.Os exemplos so os mais simplificados possveis.Nossos leitores nos dizem que frustrante ter que navegar por 200 linhas de um exemplo, procurando pelas nicas duas linhas que eles precisam entender. A maioria dos exemplos deste livro mostrada dentro do menor contexto possvel, para que a parte que voc est tentando aprender fique clara e simples. No espere que todos os exemplos sejam super robustos ou sempre completos - eles foram escritos especificamente para o propsito didtico, e no so necessariamente 100% funcionais.Ns colocamos todos os cdigos de exemplo e aplicaes na Web, para que voc possa copiar e colar partes deles no seu editor de texto ou Terminal MySQL ou ento envi-los como esto para o seu prprio servidor web, para realizar testes. Voc os encontrar emh t t p : / / w w w . a l t a b o o k s . c o m .b rOs endereos de websites de terceiros podem ser alterados ou desatualizados a qualquer momento pelos seus mantedores, sendo assim, a Alta Books no controla ou se responsabiliza por qualquer contedo de websites.

    Vrios cios exemplos, pov-e*, so aplidadoes wb o*p|eiasf dapas de +azer Coisas bew poderosas..

    Os exerccios Poder do Crebro no tem respostas.Para alguns deles, no existe uma nica resposta; para outros, parte da experincia didtica das atividades Poder do Crebro voc decidir se e em que contexto as suas respostas esto corretas. Em alguns dos exerccios Poder do Crebro, voc encontrar dicas para lhe guiar na direo correta.

    XXXV

  • equipe de reviso

    Reviso tcnicav W e A H 1>vid Bri99s Will Hav*-is Stephanie Liese S teve /VJilano

    Revisores Tcnicos:Jereme Allen um desenvolvedor web snior com experincia no uso das tecnologias mais avanadas para a criao de aplicaes web. Ele tem mais de nove anos de experincia no uso de PHP, MySQL, bem como vrios outros frameworks, sistemas operacionais, linguagens de programao e software de desenvolvimento.David Briggs um au to r de livros tcnicos e engenheiro de localizao de software que vive em Birm ingham , Inglaterra. Q uando no est sendo detalhista sobre como guiar os usurios atravs de algum software particularm ente difcil, no tem nada que ele goste mais do que ir ao parque local com sua esposa, Paulette e Cleo, o cachorro da famlia.Will Harris o responsvel por um departam ento de TI que fornece servios para 11 empresas em 4 continentes, e o Vice-Presidente da filial em Las Vegas do PASS (Professional Association for SQL Server). A noite, ele en tra num a cabine telefnica, coloca o seu uniform e web 2.0, e sai por a ajudando os designers e desenvolvedores do Powered By Geek a garantir que as suas plataformas de dados perm aneam flexveis, portteis, de fcil m anuteno e RPIDAS, usando MySQL e Rails. Ele tam bm gosta de passar seu tem po com sua esposa, Heather, suas lindas filhas Mara e EUie, e seu cachorro Swiper Stephanie liese um a instrutora tcnica e desenvolvedora web em Sacramento, Califrnia. Q uando ela no est pregando as virtudes do cdigo que obedece aos padres ou rem ovendo bugs de algum layout CSS, voc a encontrar suando em um a pesada aula de yoga.

    Hv-vey ChHs Shi-Ple-tt

    Q uando Steve Milano no est escrevendo cdigo para o The Day Job ou tocando punk rock com sua banda, a Onion Flavored Rings, em algum poro mal ventilado, ele provavelmente est em casa com seu laptop, negligenciando a companhia felina de Ralph ou a companhia hum ana de Bianca.Harvey Quameii desistiu de um a carreira em program ao de com putadores para se ju n ta r ao chique e glamouroso m undo universitrio. Atualmente, Professor Associado de Ingls e Humanities Com puting na Universidade de Alberta, onde d aulas sobre cybercultura, literatura do sculo XX e desenvolvimento web - incluindo PHP e MySQL.Chris Shiflett o Chefe de Tecnologia da OmniTI, onde lidera a prtica de segurana de aplicaes web e guia a iniciativa de desenvolvimento web. Chris um reconhecido lder nas com unidades de segurana do PHP e de aplicaes web - um blogueiro bastante lido em shiflett.org, um popular palestrante em conferncias no m undo todo, e o fundador do PHP Security Consortium. Seus livros incluem Essential PHP Security (O Reilly) e HTTP Developers H andbook (Sams).

  • introduo

    AgradecimentosNossos editores:Muito obrigado a Brett McLaughlin pela incrvel sesso de storyboarding que nos colocou no caminho certo, e pelo seu compromisso inquebrantvel com o aprendizado cognitivo.Este livro no existiria se no fosse pelo esforo, pacincia e persistncia hericos de Sanders Kleinfeld. Ele sempre conseguia apanhar os pinos com os quais estvamos fazendo malabarismo, toda vez que inevitavelmente deixvamos cair um (ou trs!), e somos gratos por isso. Esperamos que ele tenha a chance de descansar por alguns dias antes de encarar um outro projeto to difcil quanto este.

    A equipe OReilly:Obrigado a Lou Barr pelas suas fenomenais habilidades em design, que fizeram este livro ter uma aparncia to boa.Obrigado tambm a Brittany Smith por todo o seu trabalho em cima da hora e a Caitrin McCollough por colocar no ar os sites de exemplo. E a Laurie Petrycki por acreditar que ns poderamos escrever mais um timo livro da srie Use a Cabea!

    Sanders teineid

    E tambm:

    Finalmente, muitssimo obrigado a Elvis Wilson por elaborar os vdeos de aliengenas no You Tube p a ra o C a p tu lo 12. tim o trab a lh o ! E sp ec ia lm e n te considerando que ele um simples diretor de arte do tempo das cavernas.

    xxxvii

  • 1 Adicionando Vida s Suas Pginas Estticas

    * + Est Vivo

    Voc tem criado timas pginas web com HTML, com recursos deCSS mas tem percebido que os visitantes do seu site no podem fazer muita coisa alm de olhar passivamente o contedo das pginas. A comunicao apresenta-se de forma unidirecional e

    voc gostaria de mudar isso. Na verdade, o que voc realmente gostaria de saber o que o se u

    p b lico e st p e n sa n d o . Mas para isso precisa permitir que os usurios digitem informaes em

    um formulrio web, para que possa saber o que eles tm em mente. E seu site precisa ser capaz

    de processar essas informaes, para que elas lhe sejam entregues. Est comeando a parecer

    que voc ir precisar de mais do que HTML para levar seu site para o prximo nvel.

    este um novo captulo 1

  • as vezes somente HTML no suficiente

    HTML esttico e chatoO HTML timo para se criar pginas web, at a voc j sabe. Mas, e quando voc precisa que as pginas realizem alguma ao? Suponha que seja necessrio fazer uma busca em um banco de dados ou enviar um email... como fazer? O HTML deixa a desejar, porque uma linguagem sem vida, elaborada para exibir informaes que nunca se modificam.

    0 HTML- c Wo ^and a m-temao e apen*

    mastowparblHar wa do seu VidHo de estim^o-- ao tawfco guando desejir>'tera^ iv' to cs visitantesdo seu site-

    Estas pessoas esta em busda

    interao.

    O servidor web representa uma grande parte do problema com o HTML esttico, uma vez que ele funciona como nada mais que um mecanismo de entrega sem graa. O navegador requisita uma pgina, o servidor responde com HTML, fim da histria. Para transformar sites em aplicaes web interativas, o servidor precisa assumir um papel novo, mais dinmico... um papel possibilitado pelo PHP.

    Cm pginas HTML pureis, 9 seiVidor s i m p l e s m e n t e s e t V e HTML esttico,

  • Co uma pequena ajuda do servido-/

    adicionando vida s suas pginas estticas

    o 'ct vioor'

    PttP d vida s pginas webO PHP lhe permite manipular o contedo das pginas web no servidor, imediatamente antes de a pgina ser enviada ao navegador cliente. Funciona da seguinte maneira: um script PHP executado no servidor, e pode alterar ou gerar cdigo HTML vontade. Uma pgina HTML ento entregue ao navegador, que no sabe e nem liga se h PHP envolvido na produo ou zyuste do HTML, no lado do servidor.

    - j 0 dodifto HTML destas

    *T 'rtoTM i P0'" PHP, e pode se^ lr's nriodiiar dinawitamene,no^maS|as f defendendo do que a r i* . fo, jarado v -dinamita^ente 1aivavs de PHP, no servi d cv

    Com ?H? na parada,9 seVxdot Web

    e c a p e i s d e e r a rpginas HTML de fotma dinmica, em tempp real.

    P ttP Sdo ainia2hados o

    ^ wvidor web, o^de r 530 P^essados e

    depois os resultados entreves ao ^vegader o,oPainas HTML.

    Servidor web

    Navegador w eb cliente

    Pginas HTML dinwtas^^ SC rwodi-f3w> e 'res^ost igita frogvamiida presente nos sdripisPHP, -tornandoosintnveiwente le*veis.

    Banco de dados MySQL

    N AOs srip-b PHP onW t d p HTML e ftdiy> de sdnpt PHP, oi V * sdeterwinaw o modo towo o td',50 HTML t .angulado-

    0 PHP armazina e retira dados de um banto de ddos e os incorpora ao odigo HTM L gerado.

    voc est ago/ 3

  • Ces no espapoEste o O w en. Ele p e rd e u seu ca c h o rro , F ang. Mas e n c o n tra r seu co n o sc re s tr in g e a u m a sim ples la re fa d c p r o c u r a r p e lo b a irro . A c o n t e c e q u e Fang fo i a b d u z id o p o r a lien g en a s , o q u e e x p a n d e a busca d e O w en p o r to d o o un iverso . O w en sabe u m p o u c o d e HTML. e CSS e ac h a q u e u m site p e rso n a liz ad o p o d e r ia ajud-lo a reso lver seu p ro b le m a , ao p e rm itir q u e o u tra s pessoas c o m p a rtilh e m suas p r p ria s ex p e rin c ia s de ab d u o a lien g en a .

    M as, p a ra o b te r in fo rm a es das pessoas, O w en p rec isa r d e u m fo rm u l r io w eb capaz d e re c e b e r in p u t (e n tra d a d e d ad o s) dos u su rio s e no tific-lo so b re esse in p u t. S em p ro b le m a - o H T M L possu i vrias tags p a ra a c riao d e fo rm u l rio s web.

    Os de-balves sao as osWos t yt

    avrebatado * < M a 50 tcu _ Y&r um V3' lwz

  • adicionando vida s suas pginas estticas

    Um formulrio ajuda Owen a descobrir toda a histriaO novo site de Owen, AliensMeAbducteme.com, tem por objetivo conect-lo com abduzidos que possam ajudar a esclarecer um pouco sobre o desaparecimento de Fang. Owen sabe que precisa de um formulrio HTML para requisitar histrias de abduo dos visitantes e que precisa descobrir se por acaso, eles viram Fang durante as suas jornadas interestelares. Mas Owen precisa de ajuda para conseguir m ontar o site e coloc-lo no ar. Eis o que ele tem em mente para o formulrio.

    Este o tampo para 0 ewieveo de emaii do visitante-

    , 0VJK

  • Formulrios so feitos de HTMLO formulrio Relate uma Abduo de Owen (baixe este cdigo atravs do site da altabooks.com.br) se compe, inteiramente, de tags e atributos HTML. H campos de texto para a maioria das perguntas, botes de rdio para descobrir se o visitante viu Fang e uma rea de texto para comentrios adicionais. E o formulrio est configurado para enviar os dados recebidos para o endereo de email de Owen.

    VailV' c um ^robotoo ue permi-te t^ uc dados t -formulrios seja enviados por email-

    formulrio html do OwenSe predisar de um re-resdo de memria sobre domo driar formulrios HTML, deuma olhada o Cap-Wo l^vde Use a Cabea! HTML tom CSS \ *rtTML

    Share your story of alien abduction:

    fc-.What is your email address?Cinpuf*~type="text" id="email" name="email" 7>When did it happen?c/label>

    How many did you see? cinput ty^C="text" id="howmany" name = " howmany' /xbr /> What did they do to you?

    Have you seen my dog Fang?Yes cinput id=fangspotted" name="fangspotted" type="radio" value="yes" />No cinput id="fangspotted" name="fangspotted" type="radio" value="no" />cbr /> cimg src="fang. jpg" width=,'100" height="175" alt="My abducted dog Fang." />cbr />

    clabel for="other">Anything else you want to add?c/label> ctextarea id="other" name="other"x/textareaxbr /> cinput type="submit" value="Report Abduction" name="submit" />

    c/form>

    0 -formulrio -fidS dontdo dentro de ta$s de abertura e de -fedbamento-

    Nenhuma surpresa a^ ui - o -formulrio e \0% puro totligo HTML/

    0 botao submeter" diz. a -formulrio para exedutar a ao exposta ali.

  • adicionando vida s suas pginas estticas

    T f e s r O r v c

    Teste o formulrio Relatar uma Abduo.Baixe o cdigo da pgina Relatar uma Abduo no site da Alta Boks, em www. altabooks. com. br . O cdigo estar no cadastro deste Livro. O folder chi contm o formulrio de Owen em report. html, bem como uma folha de estilo (style. css) e uma imagem de Fang (f ang. jpg).Abra a pgina report. html em um editor de texto e troque o endereo de email de Owen pelo seu. Em seguida, abra a pgina em um navegador web, digite algumas informaes no formulrio e clique no boto Relatar Abduo (Report Abduction).

    t O style.cssJ^(M8f report. WnM fan9 -jpg

    Aliens Abducted Me - Report an AbductionShare your story of alien abduction;

    $u3ho v

  • mailto - m idia

    0 formulrio HTML apresenta problemasO formulrio Relatar uma Abduo est no ar, operante, mas ele no consegue obter muitas inforaiaes dos usurios. Ser que a abduo de Fang corresponde a um incidente isolado... ou tem algo de errado com o formulrio. Vejamos o que os usurios tm a dizer.

    Eu observei algo parecido com o seguinte no campo Assunto:

    ?When=

  • adicionando vida s suas pginas estticas

    Parece estar tudo OK com o formulrio. Ser que o problema tem algo a ver com aquela parte do "mailto"?

    Oo

    Sim. O cdigo HTML do formulrio est correto, mas m ailto no uma boa maneira de enviar dadosO formulrio de Owen funciona bem at o usurio clicar no boto Relatar Abduo. Nesse ponto, voc passa a depender do recurso de m a i l to para empacotar os dados do formulrio em uma mensagem de email. Mas este emal no enviado automaticamente - ele criado no programa de mail padro do computador do usurio. E o pior: o usurio precisa enviar ele mesmo o email, para que os dados sejam realmente enviados para voc! Voc no tem nenhum controle sobre a entrega do email, significando que ele poder ou no - fazer a viagem do seu formulrio web, passando pelo navegador do usurio e pelo seu cliente de email, at chegar a voc como uma mensagem de email. Nada bom.Voc precisa de uma forma para ter o controle sobre a entrega do formulrio web. Mais especificamente, voc precisa que o PHP empacote os dados em uma mensagem de email, e depois se certifique de que essa mensagem ser enviada. Isto envolve desviar a sua ateno do cliente (HTML, m a il to , etc.) para o servidor (PHP).

    0 ormulrio estatimo, a te voee t\\t no boWRelatav Abduo - enta? tudo dcsntoron!

    voc est aqui 9

  • lado-cliente versus lado-servidor

    HTML roda no clienteO formulrio de Owen foi escrito em HTML puro, com uma ao m a i l to que tenta enviar os ciados via email. Embora a pgina r e p o r t h tm l venha de um servidor web, ela preenchida e processada inteiramente no navegador web do usurio.

    O navegador requisita a pgina web de Owen, a qual inclui o formulrio

    0 software navegador do seu domputador roda a\ui, ta m bem torMctido ornoC L lW T t .

    O servidor retorna o cdigo HTML para a pgina web.

    O usurio preenche o formulrio e o submete.

    0 sa-bwave servidor web de O t^T voda a\ui> tambem donHedido domo SERVlPR

    A tag de ao do formulrio diz ao navegador para pedir ao programa de email do usurio que crie uma mensagem de email.

    O programa de email do usurio cria uma mensagem com os dados do formulrio - mas o usurio que precisa envi-los, manualmente, a Owen.

    O papel do servidor, aqui, limita-se a apenas entregar a pgina web ao navegador. Quando o usurio submete o formulrio, o navegador (cliente!) precisa resolver sozinho a questo de como fazer os dados serem enviados via email. O cliente no est. equipado para entregar dados do formulrio - esse um trabalho para o servidor.

    servidor jamais entra em dontato tom os dados digitados em -formulrios

  • adicionando vida s suas pginas estticas

    PHP roda m o servidorO PHP lhe permite controlar os dados que o usurio digita no formulrio, enviando-os para voc de forma transparente. O usurio digita o seu caso de abduo no formulrio, clica no boto Relatar Abduo e pronto! O cdigo PHP cria a mensagem de email, a envia para voc e ento gera uma pgina de confirmao para o usurio.^ ---- ---Eu gostaria de

    ^ receber a pgina "Relatar7 uma Abduo1', por favor.

    0 O navegador requisita a pgina web de Owen.

    O servidor responde com o cdigo HTML para a pgina web.

    O usurio preenche o formulrio e o submete, enviando os dados a um script PHP presente no servidor.

    O servidor envia uma confirmao em HTML ao navegador.

    O**:* vetebe, to u*ayadaveWen-te atado.

    Marque os lugares onde voc acha que os scripts PHP devem residir:

    | | no cliente X no servidor j^j em ambos j^j em nenhum dos doisvoc est aqui 11

  • php uma linguagem do lado-servidor

    Os scrpts PHP rodam mo servidorO cdigo PHP roda no servidor e armazenado em sciipts PHP que geralmente tem a extenso . php. Os scripts PHP frequentemente se parecem bastante com pginas HTML normais, porque contm tanto cdigo HTML quanto CSS. De fato, quando o servidor executa um script PHP, o resultado final sempre HTML e CSS puros. Assim, todo script PHP acaba se transformando em HTML e CSS, uma vez terminada a sua execuo no servidor.Vamos dar uma olhada mais detalhada no modo como o script PHP modifica o fluxo do formulrio web de Owen.

    O navegador do cliente requisita uma pgina HTML -

    re p o rt htm l

    O O servidor retorna a pgina HTML

    hc t\\tr M boto "Relatar Abduo", 0 usuatrio submete os dados do ww.uliriopara o sfivift PHP do servidor.

    O usurio preenche o formulrio e o submete, fazendo o navegador repassar os dados para um script PHP no servidor.

  • adicionando vida s suas pginas estticas

    0 PBP uma linguagem de programaodo lado do serVidPT (serVe-side) -pofs ele rpda em um serVidor Web.

    O servidor retoma uma pgina de HTML puro, gerada pelo script PHP.

    0 sdript PttP v-oda no servidor!

    Embora O nome da pagina aparea tom uma extenso fhp no navegador, ela tfuro HTML, neste ponto.

    O navegador exibe a pgina de confirmao.

    Aliens Abducted Me - Report an AbductionYou were abducted last Nororiberaod were gone for I bowsdescribe dicta Was Fau

  • o atributo action do formulrio

    s tc t o YiOTnt oseu sflrip-l PHP-

    O atributo action dos elementos do formulrio o que conecta este ltimo ao script PHP, fazendo o script ser executado quando o formulrio submetido.Os formulrios so criados usando-se a tag HTML < f orm> e cada tag < f orm> possui um atributo action. O arquivo cujo nome voc inclui com o atributo action usado pelo servidor web para processar o formulrio quando este submetido. Assim, se o script PHP de Owen se chamar report. php, ento a tag para conect-lo ao formulrio se parecer com o seguinte:

    < fo rm a c t i o n =s m e th o d = " p o s t M>

    r e p o r t h t m l

    Quando o usurio clica no boto Relatar Abduo formulrio faz o script report. php ser executado para processamento dos dados.

    e>Alie:1S Me - an Abduction

    ^ 2>^ lie?!.,AhdUCt6d Me " RePrt an Abduct ion

  • adicionando vida s suas pginas estticas

    nty? existeniT e r g u n t a s i d P t c t s

    T * * 0 que significa PHP?

    PHP um acrnimo que originalmente significava Personal Home Pages (Pginas Pessoais). De alguma forma, o acrnimo teve o seu significado modificado para PHP: Hypertext Processor (Processador de Hipertexto PHP). Este ltimo considerado um acrnimo recursivo, porque ele referencia a si mesmo - um acrnimo (PHP) dentro do acrnimo. Inteligente? Confuso? Voc decide!

    * Mesmo que o meu navegador esteja mostrando que o nome da pgina termina com .php, ela ainda puro HTML? Como possvel?

    Isso possvel porque a pgina comea a sua vida como cdigo PHP no servidor, mas transformada em cdigo HTML antes de ser enviada para o navegador. Assim, o servidor executa o cdigo PHP e o converte em HTML antes de envi-lo para ser visualizado no navegador. Isso significa que, mesmo que o arquivo .php contenha cdigo PHP, o navegador nunca v esse cdigo - ele v apenas o cdigo HTML, resultado da execuo do cdigo PHP no servidor.

    * Mas no verdade que toda pgina web se origina no servidor, inclusive as pginas HTML puras, em arquivos .html?

    Sim. Todos os arquivos que compem um site ficam armazenados no servidor - . html, . c s s , . php, etc. Mas nem todos eles so processados peio servidor. Os arquivos HTML e CSS, bem como arquivos grficos, so enviados diretamente para o navegador do cliente, sem preocupaes sobre o contedo deles. Os arquivos PHP so diferentes porque contm cdigos que so processados e executados no servidor web. No o cdigo PHP que enviado ao navegador, e sim os resultados obtidos ao se executar o cdigo PHP, - esses resultados so HTML e CSS puros.

    voc est aqui 15

  • Use PHP para acessar os dados do formulrio

    seu 1a script php

    Ento, Owen precisa de um script PHP capaz de fazer com que as informaes do formulrio cheguem a ele de forma mais confivel do que atravs do e-mail. Vamos criar esse script.No se preocupe em entender tudo agora - ns chegaremos l:

    O.*riftsPHP M , a V i nwas doisas -ficafrequentemente

    to * t tp * r * tc o & > - mi o w a ^ es. j X * bastante . w ^ a

    jjma HTML normal- do pWf5propriamente dito.ort an Abduction

    Aliens Abducted Me

    Aliens Abdus? d Me - Report an Abduction

    per-feitamente normal um script PHP niluir ia^s c atributos HTML normais.

    J0 blodo de ddijo inteiro PHP o restante do strip t c HTML normal-

    j | fcsU pedao dc I PHP obtemos dados doformulrio, para

  • adicionando vida s suas pginas estticas

    T f e f iT O R f V E

    Modifique o formulrio de Owen de forma que ele use um script PHP para processar os dados do formulrio.Crie um novo arquivo de texto chamado r e p o r t . php e digite nele todo o cdigo da pgina anterior. Esse o script que ir processar o formulrio web de Owen.O script PHP ainda no est conectado ao formulrio; abra a pgina report.html em um editor de textos e modifique a ao do formulrio para report .php em vez de mailto.

    :form action = method = "post":report.html p^ty

    reportphp ar>g.jpgAbra a pgina r e p o r t . h tm l em um navegador web, digite algumas informaes do seu caso de abduo no formulrio e clique no boto Relatar Abduo.

    Aliens Abducted Me - Report an AbductionShare y o o r s to iy o f afiB abduction;

    Dpersdeftd do seu havendo*-, voe podara ve*- uma p^ ih 'web Com ww ie*to esquisito ou Possivelmente apenas o toi$o- fotvfce PttP do sript report php.

    First name:Last name:W hat is your email address?

    W ien did it happen?

    How Long -were you gone?

    How many did vou see?

    Dtsc-rEb them:W hat did they do to you? Have you seen my * *6 Fang?

    5 Nadir >alfin*er*al|s ilasr Hov^'Der : il hre Aliens Abducted Me - Report an Abduction3= ----------Y ouv, M ucd', SwbeaJLhappewd". echo and w ere gone fo r .

    5 iio w _ lo n g ; echo ^ ,:

  • colocando scripts php no servidor

    Os scripts PHP precisam ficar em um servidor!A no ser que voc, por acaso, tenha um servidor web rodando no seu se vt tivercomputador local, o script r e p o r t .php no poder ser executado ur* servidor webquando voc submeter o fo rm u l rio Relatar uma Abduo. Lembre-se, o instalado lodalmetc, PHP uma linguagem de programao e precisa de um ambiente onde e ele tiver suporte apossa rodar. Esse ambiente um servidor web com suporte a PHP. Scripts P^P> enta poderPHP e pginas web que dependem deles precisam ser colocadas em um testar os stripts PHP servidor web real, no basta apenas abrir um script diretamente a partir de diretamente no seuum sistema de arquivos local. tomputador.

    Os navegadores web no sabem nada sobre PHP e, portanto, no so capazes de rodar scripts PHP.

    $0 tontrrio de paginas HTML- podem ser abertas Totalmente em w* navegador web, os stripts PttP sempre ser waberW atravs de um IXRLi a partir de um servidor web

    $e s trip t PHP representa apenas um monte de tdigo sem sentido para o navegador web.

    0 servidor web entende este tdigo PHP e e*etuta o stript!

    Wma -forma ra>ida de saber se uma pagina web esta sendo entregue por um servidor web c olhar se a U R L tometa tom wKttp:M. Pginas web abertas tomo arquivos letais sempre iomeam tom W-file'W

    Os servidores web com suporte a PHP so equipados para rodar scripts PHP e transform- los em pginas HTML que os navegadores possam entender.

    Os scripts PHP deVem ser eXecutadPS em um serVdPT W e b , o u e n t o n a q u n c f n t o .

  • adicionando vida s suas pginas estticas

    Coloque os seus scripts PHP no servidorE perfeitamente vlido criar e editar scripts PHP no seu computador local. Porm, voc precisa colocar os arquivos em um servidor web antes de execut-los. Os arquivos PHP, frequentemente, so colocados junto com arquivos HTML em um servidor. No h nada fora do comum em colocar scripts PHP no servidor web - basta coloc-los em um lugar onde as suas pginas web possam acess-los. Para fazer o upload (envio) dos arquivos para o servidor, voc precisar da ajuda de um utilitrio, como por exemplo, um programa de FTP (File Transfer Protocol ou Protocolo de Transferncia de Arquivos).

    A maioria dos sdripts PHP apareie junto domoutros arquivos, a esma pasta, de*tro do servidor. so, 3*

    vezs, armazet^ads Cm urtv pstprpria, par melhoror^nizaddo no servidor... mas fido

    _ este daso.style.css fang.jpg

    jeralmente, ha pasta o servidor web onde a maioria, se no todos, os arquivos sao armazenados.

    Fazer o upload dos seus scripts PHP para um servidor web no o suficiente - esse servidor tambm precisa ter o PHP instalado nele. Alguns servidores incluem o PHP por padro, alguns no.

    ne existemperguntas idptas

    T * Como eu posso saber se o meu servidor web tem o PHP instalado?

    Voc pode perguntar ao seu administrador, ou sua empresa de hospedagem de sites, ou ento pode realizar um pequeno teste, voc mesmo. Crie um arquivo de texto chamado t e s t e .p h p e coloque o seguinte cdigo nele:

    ste ddi$o pede para o^ t in-formaoes sobre o PHP sejam mostradas no

    Agora, envie (upload) o teste.php para oS&tf&Widor, e ento digite a sua URL em um navegador web. Se o PHP estiver instalado no seu servidor, aparecero vrias informaes detalhadas sobre o PHP, incluindo a sua verso. Bingo!

    Se voc no tive r o P H P insta lado no seu se rv id o r web, consulte

    o Apndice ii.Nele, encontrar instrues para ter o PHP instalado e operante no seu servidor.

    Lembre-se de deietar o sdript phpmo guando estiver terminado, desta -forma, nin^ uem mais tonse^ue ver isto

    voc est aqui > 19

  • _ T J e s t O r i v e

    test drive no seu script php

    Faa o upload dos arquivos da pgina "Relatar uma Abduo e teste o formulrio... novamente.Envie os arquivos report. html, report. php, style . css efang.j pg para um servidor web que tenha o PHP instalado. Digite a URL da pgina report, html no seu navegador, preencha o formulrio com informaes do seu caso de abduo, e clique no boto Relatar Ab