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