Prim eiros 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
Elogios ao Use a Cabeça! HTML com CSS & XHTM L
“Eric e Elisabeth Freeman claramente entendem do assunto. À medida que a Internet vai se tornando mais complexa, fica cada vez mais importante criar páginas web atraentes. O design elegante é o cerne de todos os capítulos aqui, e cada conceito é apresentado com doses iguais de pragmatismo e inteligência.” — Ken Gold-Stein, Vice-Presidente Executivo & Diretor-Gerente, Disney Online “A web seria um lugar muito melhor se todo designer HTML começasse lendo este livro.” — L. David Baron, Diretor Técnico 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 fuçando até que as coisas ficassem bem na tela, mas com o advento de padrões web e a exigência de melhor acessibilidade, práticas de programação preguiçosas já não são mais aceitáveis... nem do ponto de vista empresarial, nem do ponto de vista da responsabilidade social. Use a Cabeça! HTML com CSS & XHTML lhe ensina como fazer as coisas corretamente desde o princípio, sem fazer com que o processo pareça impossível de aprender. A linguagem HTML, quando corretamente ensinada, não é mais complicada do que aprender inglês, e os Freemans íizerám um excelente trabalho em manter todos os conceitos compreensíveis.” — Mike Davidson, Presidente & CEO, Newsvine Inc. “Ah, ótimo. Vocês fizeram um livro de XHTML simples o suficiente para que um CEO consiga entendê-lo. O que farão 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 Path “Este livro tem humor, charme, mas o mais importante: tem coração. Eu sei que parece algo ridículo de se dizer sobre um livro técnico, 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 técnicas. O aprendizado - realmente entender e compreender - pelo leitor é claramente o objetivo número um na mente dos Freemans. E obrigado, obrigado, obrigado pela forte e sensível insistência que o livro prega pelo respeito aos padrões. É ótimo ver um livro para iniciantes, o qual acredito, que vai ser amplamente lido e estudado, fazer uma campanha tão eloquente e persuasiva pelo valor do respeito aos padrões na programação de páginas web. Encontrei aqui até mesmo alguns argumentos que ainda não 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 padrões, e por que eu devo fazê-lo?’ Agora eu tenho mais munição! Também gostei do fato de o livro apresentar alguns fundamentos sobre a mecânica de como realmente colocar a página no ar - FTP, fundamentos do servidor web, estruturas de arquivos, etc.” —Robert Neer, Diretor de Desenvolvimento de Produto, Movies.com
Elogios ao Use a Cabeça! JavaS cript
“Tão prático e útil, e tão bem-explicado. Este livro faz um excelente trabalho dt^apresentar um iniciante total ao JavaScript, e é mais uma prova da eficiência do método dè ensino Use a Cabeça! De todos os outros livros de JavaScript, Use a Cabeça! JavaScript é ótimo para aprender, comparado com outros livros de referência do tamanho de listas telefônicas.” — Alex Lee, Estudante, Universidade de Houston “Uma excelente opção para o desenvolvedor JavaScript iniciante.” — Fletcher Moore, Desenvolvedor e Designer Web, Georgia Institue of Technology “Mais um ótimo livro no clássico estilo ‘Use a Cabeça!’” — TW Scannell “O JavaScript vem sendo há bastante tempo o sistema por trás das páginas web, no lado do cliente, mas vem sendo também mal entendido e mal utilizado. Com Use a Cabeça! JavaScript, Michael Morrison apresenta uma introdução direta e fácil 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 páginas web.” — Anthony T. Holdener UI, Desenvolvedor de aplicações web e autor de Ajax: O Guia Definitivo “Uma página web tem três partes - conteúdo (HTML), aparência (CSS) e comportamento (JavaScript). Use a Cabeça! HTML apresentou os dois primeiros, e este livro usa a mesma abordagem divertida e prática para introduzir o JavaScript. A forma divertida com que o livro apresenta o JavaScript, e as muitas formas como ele reforça as informações para que você não as esqueça, fazem deste um livro perfeito para iniciantes usarem para começar a aprender a tomar suas páginas 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 usuários mais avançados. E toma 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 série Use a Cabeça! U se a C ab eça! Java U se a C ab eça! A nálise & Projeto O rientado a O bjetos (A & P O O ) U se a C a b eça! A jax Iniciação R ápida U se a C ab eça! H T M L com C S S e X H T M L U se a C a b eça! P adrões de Projeto U se a C a b eça! S ervlets e J S P U se a C a b eç a! P M P U se a C a b eça! S Q L U se a C abeça! D esenvolvim ento d e S oftw are U se a C a b eça! JavaS cript U se a C ab e ça! C # U se a C abeça! P H P & M y S Q L U se a C ab eça ! Física U se a C ab eç a! Á lgebra U se a C ab e ça! A jax Profissional U se a C ab eça ! E statística U se a C ab e ça! R uby on Rails
Use a Cabeça! PHP & MÿSQL
v í-
ALTA BOOKS EDI TORA Rio de Janeiro 2010
Use a Cabeçal PHP & MySQL
Copyright © 2010 da Starlin Alta Con. Com. Ltda. ISBN: 978-85-7608-502-7
Produção Editorial:
Starlin Alta Con. Com. Ltda.
Gerência de Produçáo: Maristela Almeida
Coordenação Administrativa:
Anderson Câmara
Supervisão de Produção:
Angel Cabeza
Tradução:
Marcelo Santos
Revisão Gramatical: Fátima Regina Félix
Revisão Técnica;
Giuliana Cirelli Formada em Engenharia Elétrica com ênfase em eletrônica. Especializada em Programação em linguagem C++ e nos ambientes de desenvolvimento Eclipse e Visual Studio.
Diagramação: Haroldo Sodré
Fechamento:
Luis Rodrigues
Translated From Original: Head First PHP & MySQL ISBN: 978-0596-00630-3 Use a Cabeça.! PHP & MySQL © 2010 Starlin Alta Con. Com. Ltda. Authorized translation of the English edition of Head First PHP & MySQL © 2009 Lynn Beighley and Michael Morrison. This translation ispublished
and sold by permission of O’Reilly Media, Inc., the owner of 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 autorização prévia por escrito da editora, poderá ser reproduzida ou transmitida sejam quais forem os meios empregados: eletrônico, mecânico, fotográfico, gravaçáo ou quaisquer outros. Todo o esforço foi feito para fornecer a mais completa e adequada informação, contudo a editora e o(s) autor(es) náo assumem responsabilidade pelos resultados e usos da informação fornecida. Recomendamos aos leitores testar a informação, bem como tomar todos os cuidados necessários (como o backup), antes da efetiva utilização. Este livro não contém CD-ROM, disquete ou qualquer outra mídia. Erratas e atualizações: Sempre nos esforçamos para entregar a você, leitor, um livro livre de erros técnicos ou de conteúdo; porém, nem sempre isso é conseguido, seja por motivo de mudança de software, interpretação ou mesmo quando alguns deslizes constam na versão original de alguns livros que traduzimos. Sendo assim, criamos em nosso site, www.altabooks.com. br, a seção Erratas, onde relataremos, com a devida correção, qualquer erro encontrado em nossos livros. Avisos e Renúncia de Direitos: Este livro é vendido como está, sem garantia de qualquer tipo, seja expressa ou implícita. Marcas Registradas: Todos os termos mencionados e reconhecidos como Marca Registrada e/ou comercial são de responsabilidade de seus proprietários. A Editora informa não 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, não visando ao lucro, favorecimento ou desmerecimento do produto/fabricante. Impresso no Brasil O código de propriedade intelectual de Io de julho de 1992 proíbe expressamente o uso coletivo sem autorização dos detentores do direito autoral da obra, bem como a cópia ilegal do original. Esta prática generalizada, nos estabelecimentos de ensino, provoca uma brutal baixa nas vendas dos livros a ponto de impossibilitar os autores de criarem novas obras.
ALTA BOOKS
EDI TORA
Rua Viúva Cláudio, 291 - Bairro Industrial do Jacaré TFP- 9n07
Para os meus pais, que frequentemente usam aplicações web e estão sempre me apoiando - Lynn Beighley Para Rasmus Lerdorf, que iniciou sozinho a linguagem que acabaria se tornando o PHP como nós o conhecemos. Prova duradoura de que realmente basta uma pessoa para liderar a todos nós em direção a um caminho novo e mais esclarecido. - Michael Morrison
o(s) autor{es)
Os Autores de Use a Cabepa! PttP S- MySQL
\£,VtâC^ Mo'r'f'SOir'
Lynn Beighley é uma escritora de
ficção presa no corpo de uma escritora de livros técnicos. Após descobrir que escrever livros técnicos realmente dava dinheiro, ela aprendeu a aceitar e desfrutar a profissão. Depois de voltar à escola para obter um Mestrado em Ciência da Computação, trabalhou para os acrônimos NRL e LANL. Depois, descobriu o Flash e escreveu seu primeiro best-seller. Vítima de um timing infeliz, mudou-se para Silicon Valley pouco antes da grande crise. Passou alguns anos trabalhando para o Yahoo! e escrevendo outros livros e cursos de treinamento. Finalmente rendendo-se ã sua vocação de escritora, mudou-se para a área de Nova Iorque para obter um MFA em Escrita Criativa. Sua tese, escrita no estilo Use a Cabeça!, foi defendida diante de uma sala lotada de professores e colegas estudantes. Foi extremamente bem-recebida, e ela terminou seu curso, terminou Use a Cabeça! SQL, e acabou de terminar Use a Cabeça! PHP à f MySQL. Ufa! Lynn adora viajar, escrever e inventar histórias detalhadas sobre totais estranhos. Ela tem um pouco de medo de OVNIs.
Michael Morrison tem sido um
contribuinte entusiasmado ao mundo online desde quando mantinha 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 não tem mais um BBS, mas ainda se mantém 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 programação de jogos para celulares até XML. Entrou no universo Use a Cabeça! com Use a Cabeça! JavaScript e não parou mais. Michael é também o fundador da Stalefish Labs (www.stalefishlabs.com, uma empresa de entretenimento especializada em jogos, brinquedos e mídia interativa. E já foi visto passando tempo fora da Internet (o quê?!) andando de skate, jogando hóquei no gelo e cuidando do seu lago de carpas com sua esposa Masheed. Ele até mesmo dorme, de vez em quando.
conteúdo
Conteúdo (Sumário) Introdução
xxvii
1
Está Vivo: A dicionando Vida às Suas Páginas Estáticas
1
2
Com o Tudo se Com bina: Conectando-se ao MySQL
59
3
C riando os Seus Próprios Dados: Crie e P reen ch a um Banco de Dados
103
4
Sua Aplicação na Web: Aplicações Realistas e Práticas
159
5
Q uando um Banco de Dados N ão é o Suficiente: T rabalhando com Dados A rm azenados em Arquivos
223
6
Presum a que Estão Todos Q ueren d o Te Pegar: T o m an d o a Sua Aplicação Segura
295
7
L em bra de Mim?: C riando A ç|icações Web Personalizadas
345
7V4
C om partilhar é Cuidar: Elim ine Código D uplicado
417
8
C olhendo Dados: C ontrole Seus Dados, C ontrole Seu M undo
427
9
Vivendo M elhor Através das Funções: Funções String e Personalizadas
501
10
Regras Para Substituição: Expressões Regulares
561
11
D esenhando Gráficos Dinâmicos: Visualizando seus Dados...e Mais!
605
12
Interfaces com o M undo: Republicação e Serviços Web
657
i
Os Dez Principais Tópicos (Q ue N ão A bordam os): Sobras
713
ii
Um Lugar para Brincar: C onfigure um A m biente de Desenvolvim ento
731
iii
O b ten h a A inda Mais Proveito: Amplie Seu PHP
749
índice Remissivo
755
Conteúdo (a coisa real) Introdução Seu cérebro ligado no PHP e MySQL.
você está tentando
aprender alguma coisa, enquanto o seu cérebro está lhe fazendo um favor ao certificar-se de que você não aprenda. Seu cérebro está pensando “é melhor guardar espaço para coisas mais importantes, como por exemplo, quais animais selvagens evitar e se fazer yoga em baixo d'água é uma boa ideia". Então, como enganar o seu cérebro, fazendo-o pensar que a sua vida depende de aprender PHP e MySQL?
A quem se destina este livro? Sabemos o que você está pensando Metacognição Faça seu cérebro lhe obedecer Leia-me Revisão técnica Agradecimentos
xxviü xxix xxxi xxxiii xxxiv xxxvi xxxvii ix
conteúdo (sumário)
Adicionando Vida às Suas Paginas Estáticas Está Vivo Você tem criado ótimas páginas web com HTML, com toques de CSS. Mas tem percebido que os visitantes do seu site não podem fazer muita coisa além de olhar passivamente o conteúdo das páginas. A comunicação está unidirecional, e você gostaria de mudar isso. Na verdade, o que você realmente gostaria é de saber o que o seu público está pensando. Mas para isso é preciso permitir que os usuários digitem informações em um formulário web, para que possa saber o que eles têm em mente. E também precisa ser capaz de processar essas informações, para que elas lhe sejam entregues. Está começando a parecer que vai precisar de mais do que HTML para levar seu site para o próximo nível.
HTML é estático e chato
2
PH P dã vida às páginas web
3
U m form ulário ajuda Owen a descobrir to d a a história
5
Form ulários são feitos de HTM L
6
O form ulário 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 ulário
16
Os scripts PHP precisam ficar em um servidor!
18
O servidor transform a PHP em HTML
22
Algumas regras PH P para o seu código
25
E ncontrando o nom e p erfeito para a sua variável
26
Variáveis servem p ara arm azenar dados de scripts
31
POST é um a variável especial que arm azena dados do form ulário
33
$_POST transporta os dados do form ulário p ara o seu script
34
C riando o corpo da m ensagem de em ail com PHP
44
Até m esm o texto simples pode ser form atado... um pouco
46
Newlines precisam de aspas duplas
47
Crie um a m ensagem de em ail para Owen
48
As variáveis arm azenam as partes do email
49
Enviando um a m ensagem de em ail com PHP
50
Owen com eça a receb er emails
53
Owen com eça a p erd e r emails
54
conteúdo (sumário)
C o n e c ta n d o -s e
M /S o L
Como Tudo se Combina Saber como as coisas se encaixam, antes de começar a construir, é uma boa ideia. Você criou seu primeiro script PHP, e ele está funcionando bem. Mas obter os seus resultados em um email já não é bom o suficiente. Agora precisa de uma forma de guardar os resultados do seu formulário, 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 ulário de Owen funciona bem . Bem até demais...
C onstrua a query INSERT n o PHP
61 62 64 67 70 73 74 76 77 78 80 85
Consulte o banco de dados MySQL com PHP
86
E ncerre sua conexão com mysqli-close{)
87
MySQL é excelente p ara arm azenar dados Owen precisa de u m banco de dados MySQL Crie um banco de dados e um a tabela MySQL A instrução INSERT em ação Use SELECT para ob ter dados da tabela Deixe o PHP lidar com as coisas tediosas do SQL O PHP perm ite usar os dados do form ulário web de Owen Conecte-se ao seu banco de dados a p artir do PHP Insira dados com um script PHP Use funções PH P p ara falar com o banco de dados Conecte-se com m ysqli_connect()
$_POST fornece os dados do form ulário Owen precisa de ajuda p ara p en eirar seus dados 1
60
Owen sai em busca de Fang
91 96 98
conteúdo (sumário)
Crie e rteencjici um Betnco de Dcufos Criando os Seus Próprios Dados Nem 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 irão armazenar esses dados E às vezes precisa criar o banco que armazenará os dados que precisa criar. Confuso? Você não ficará. Prepare-se para aprender como criar seus próprios bancos de dados e tabelas. E se isso não for o suficiente, ainda criará, no processo, a sua primeira aplicação combinando PHP e MySQL.
A loja Elvis está aberta
104
E lm er precisa de um a aplicação
105
Visualize o projeto da aplicação de Elm er
106
Tudo com eça com um a tabela
109
Faça contato com o servidor MySQL
110
Crie um banco de dados para os emails de Elm er
customermafling(ítf;
Crie um a tabela d en tro do banco de dados
111 112
JPrecisamos definir os nossos dados
113
I C onheça 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 tu ra das tabelas
123
I Elm er está p ro n to para arm azenar dados
125
Crie o script “A dicionar Email”
126
O outro lado da aplicação de E lm er
133
O funcionam ento in te rn o do script “Enviar Email” Em prim eiro lugar, o b ten h a os dados
134 135
mysqli_fetch_array() obtém os resultados da consulta 136 L oop para um WHILE
139
Loop através dos dados com while
140
Você tem email... de Elmer!
145
As vezes, as pessoas querem sair
146
Rem ovendo dados com DELETE
147
Use WHERE e DELETE para apagar dados específicos
148
M inimize o risco de apagam entos acidentais
149
Q ueroSerElvis.com é um a aplicação web
154
conteúdo (sumário)
A p l i c a r e s R e a lis ta s e p rá tic a s Sua Aplicação na Web Às vezes você precisa ser realista e repensar seus planos. Ou então planejar com mais cuidado logo no começo. Uma vez lançada a sua aplicação na Web, você poderá descobrir que não planejou suficientemente bem. Coisas que pensou que funcionariam podem não ser boas o suficiente no mundo real. Este capítulo dá uma olhada em alguns problemas do mundo real que podem ocorrer quando você transfere sua aplicação do ambiente de testes para um site real. E enquanto isso, lhe mostraremos exemplos de códigos PHP e SQL importantes.
MateMe&vfccoM itocyçwrlIrWraíT*. Ja*rw>w
òMafc*MaBvfe«wiflnfl'l&l Er*3u-,
Cus»ni*r<*! retncwefl.
nD&nny derviyQJWflh^gunMdlsk\ Qhro*WvflfllJwsfigelierraabdueiMn«-«W 0S&»/tKr«âJe« O DcnDíaowarapefôs^ing-ífiopôT.íôm
Elm er tem alguns clientes irritados
160
P rotegendo Elm er de... Elm er
163
Exija bons dados do form ulário
164
A lógica p o r trás da validação de Enviar Email
165
Seu código pode tom ar decisões com IF
166
Testando em busca d a verdade
167
IF verifica mais do q ue apenas igualdade
168
A lógica p o r trás da validação de Enviar Email
171
Funções PHP para verificar variáveis
172
Teste m úlüplas condições com AND e O R
179
Os usuários do form ulário precisam de feedback
183
Facilite a en trad a e a saída do PHP
193
Use um flag para evitar código duplicado
194
Codifique o form ulário HTM L apenas um a vez
195
Um form ulário que referencia a si raesm o
199
A ponte a ação do form ulário p ara o script
200
V erifique se o form ulário foi subm etido
202
Alguns usuários ain d a estão insatisfeitos
206
As linhas da tabela precisam ser identificáveis individualm ente
208
As chaves prim árias possibilitam a identificação individual
210
Das caixas de verificação até as IDs dos clientes
215
Faça loop através de um array com foreach
216
xiii
conteúdo (sumário)
T r a b a lh 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 lV o s Quando um Banco de Dados Não é o Suficiente Não acredite no hype... peio menos não naquele sobre OS banCOS de dados. Certamente os bancos são maravilhosos para se armazenar todo tipo de dados que envolvam texto, mas e quanto aos dados binários? Coisas como imagens JPEG e documentos PDF? Faz sentido armazenar todas essas figuras da sua coleção de palhetas raras de guitarra em uma tabela de banco de dados? Geralmente não. Esses tipos de dados normalmente são armazenados em arquivos, e nós os deixaremos nos arquivos. Mas é inteiramente possível ter o melhor de dois mundos - este capítulo revela que você pode usar arquivos e bancos de dados juntos para criar aplicações PHP cheias de dados binários.
Guitarristas virtuais gostam de com petir
224
A im agem é a prova
225
aplicação precisa arm azenar im agens Planejando os uploads de arquivos gráficos no G uitar Wars O banco de dados das pontuações máximas precisa ser ALTERado
226 231 232
Com o fazer p ara o usuário enviar a imagem?
236
Insira o (nom e do) arquivo gráfico no banco de dados
238
D escubra o nom e do arquivo enviado
239
Para o n d e foi o arquivo enviado?
244
Crie um lar para os arquivos gráficos enviados
248
Dados com partilhados precisam ser com partilhados
254
Serão necessários dados d o script com partilhado
255
Pense em require_once com o um “inserir”
256
O mais im portante para as pontuações máximas é a ordem
258
H om enageando o G uitar W arrior n ú m ero um
261
Form ate a m aior pontuação com HTML e CSS
262
São perm itidas apenas im agens pequenas
267
A validação de arquivos to rn a a aplicação mais robusta
268
}-
P laneje um a página A dm in
272
G ere links para rem oção de pontuações na página A dm in
275
Os scripts são capazes de com unicarem -se uns com os outros
276
Sobre GETs e POSTs
278
GET, POST e a rem oção d e pontuações
280
Isole a m aior pontuação p ara ser rem ovida
283
C ontrole o quanto você p o d e rem over com LIM IT
284
conteúdo (sumário)
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 Estão Todos Querendo Te Pegar Seus pais estavam certos: não fale com estranhos,
ou peio
menos não confie neles. Na pior das situações, não dê a eies as chaves para acessar os dados da sua aplicação, presumindo que não vão fazer nada de errado. Vivemos num mundo cruel, e você não pode partir do princípio que todos são confiáveis. Na verdade, como desenvolvedor de aplicações web você precisa ser metade incrédulo e metade adepto de teorias de conspiração. Sim, as pessoas em geral são más e elas definitivamente querem te pegar! OK, talvez isso seja um pouco de exagero, mas é muito importante levar a segurança a sério e elaborar as suas aplicações de forma que elas fiquem protegidas contra qualquer um que pretenda causar danos.
O dia em que a música m o rreu
296
Para o n d e foram as pontuações?
297
Segurança contra os bárbaros
299
Protegendo a página G uitar Wars A dm in
300
i A autenticação H TTP exige cabeçalhos
302
ij Tudo Sobre o Cabeçalho
304
C ontrole os cabeçalhos com PH P
305
A utenticando com cabeçalhos
306
Crie um script A utorizar
314
G uitar Wars Episódio II: A taque dos Clones de P ontuação
318
Subtração p o r adição
319
A segurança req u er intervenção h u m an a
320
Planeje m oderação n o G uitar Wars
321
A bra espaço p ara aprovações com ALTER
322
Pontuações não-aprovadas não são dignas
327
O hack de um m ilhão de pontos
330
Tudo em m oderação...?
331
Com o exatam ente ela fez isso?
333
E nganando o MySQL com com entários
334
O form ulário A dd Score recebeu um a injeção de SQL
335
Proteja seus dados co n tra injeções de SQL
336
U m INSERT mais seguro (com parâm etros)
337
A validação de form ulários n u n ca é inteligente dem ais
339
Cessar fogo!
341
XV
conteúdo (sumário)
C d ^ n d p A p l i ^ ç ê ^ s W e b p e r S 9 n cú i^ ld c tó
7
Lembra de Mim? Ninguém gosta de ser esquecido, especialmente usuários de ap lic aç õ e s Web. Se a aplicação tiver que trabalhar a
noção de “comunidade”, ou seja, se for planejado que os usuários interajam com
a aplicação de uma forma pessoal, então ela terá de se lembrar dos usuários. Você detestaria ter que se apresentar novamente à sua família a cada vez que entrasse em casa. Não precisa fazê-lo porque seus parentes possuem uma coisa maravilhosa chamada memória. Mas aplicações web não se lembram das pessoas automaticamente - é preciso que um desenvolvedor web esperto use as ferramentas disponíveis (PHP e MySQL, talvez?) para criar aplicações web personalizadas que realmente sejam capazes de se lembrar dos usuários. Dizem que os opostos se atraem
346
O negócio do Mismatch são os dados pessoais
347
O Mismatch precisa dos logins dos usuários
348
Preparando o banco de dados para os logins
351
| Construindo uma interface de usuário para o login
To v*w pis», m nsedtolog In to a r« Místfiatch* o* w»w nrte-match^er
:YotrpuiwerdV tftbtsentJft.thsdear' •• ■< .
: ijntftlÈ*
,PasstwrdiJ*«*««•M „AemftfTíbjy thís passwwd in my keythain
~êwesO
Lastiume:
*ViewProfíte BmGendfr: UCity: iue: >frwfci ; 0^» Mismatch Ushtímws jnesâes FfctState: nxe Í FÈPStnwne: Joijao Nísiks gü
Gfflda1;
Mate
BSrtbâate 1981-H-Q3
Locatínu Athecs,GÀ
Woukl you like to
353
Crip to grafe as senhas com SHA()
354
Comparando senhas
355
Autorizando usuários com H TTP
358
Fazendo login dos usuários com autenticação H TTP
361
Um formulário para novos usuários se cadastrarem
365
Do que é feito o cookie?
375
Use cookies com PHP
376
Repensando o fluxo dos logins
379
Um login baseado em cookies
380
Fazer logout significa apagar cookies
385
As sessões não dependem do cliente
389
Mantendo-se atualizado com os dados das sessões
391
Renove o Mismatch com as sessões
392
Faça Logout com sessões
393
Complete a sessão de transformações
398
Os usuários não estão se sentindo bem-vindos
404
As sessões tem vida curta...
406
...mas os cookies podem durar para sempre!
407
Sessões + Cookies = Persistência de login superior
409
conteúdo (sumário)
Elimine Côdigp Duplicado Compartilhar é Cuidar
Guarda-chuvas não são a única coisa que pode ser Compartilhada. Em qualquer aplicação web, você poderá encontrar situações em que um mesmo código encontra-se duplicado em mais de um lugar. Isso não só é um desperdício de recursos, como também pode levar a problemas de manutenção, uma vez que você inevitavelmente acabará fazendo modificações e estas terão de ser efetuadas em mais de um lugar. A solução é eliminar o código duplicado, compartilhando-o. Em outras palavras, você mantém o código duplicado em apenas um lugar, e depois, apenas referencia esse código sempre que precisar dele. A eliminação de código duplicado resulta em aplicativos mais eficientes, de manutenção mais fácil, e finalmente, mais robustos..
O Mismatch está em pedaços
421
R econstruindo o M ismatch a p artir de u m tem plate
422
R econstrua o M ismatch com tem plates
424
O M ismatch está novam ente em pé... e m uito m elh o r organizado
426
0 dâbefiâlho aparece «o ali» de cada pagina do Mismatch, e exibe © titulo da aplidaçSo juntamente tom w» título específico espet$\to pagina.. un> trtulo
Cada pagina do Mismatch
<^ue ■for pevsowàtaada pavà o usuário exigira um todig© de login, o <\ual mantém registro do usuário-
0 vodape -fomeCe Conteúdo «a parte de baixo de todas as paginas do AWatch, « ^wâí inclui um aviso de í.opyv-:*Ll
XVII
conteúdo (sumário)
C^nttole Seus üa
Seu Mundç>
Colhendo Dados Nada como uma boa colheita de dados no outono,
um sem-fim de
informações prontas para serem examinadas, classificadas, comparadas, combinadas, enfim, qualquer coisa que a sua excelente aplicação 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 usuários da web exigem mais do que dados estáticos e enfadonhos. Eles querem dados enriquecedores... dados compensadores... dados relevantes. Então, o que você está esperando? Dê a partida no seu trator MySQL e mãos à obra!
Fazendo o desenco n tro p erfeito
428
Os desencontros se referem aos dados
429
M odele o banco de dados com um schem a
431
Ju n te várias tabelas
436
Chaves estrangeiras em ação
437
As tabelas po d em com binar linha p o r lin h a
438
eT U m a linha leva a m uitas outras C hecando linhas de muitas-para-muitas
439 440
Crie um questionário M ismatch
445
C oloque as respostas no banco de dados
446
E possível com and ar u m form ulário com dados
450
G ere o form ulário do questionário M ismatch
456
P rocure p o r um pouco de norm alidade
462
Ao normalizar, pense em term os de átom os
463
Três passos para se criar um banco de dados norm alizado
465
A lterando o banco de dados do M ismatch
469
Então, o M ismatch realm ente é norm al?
470
U m a consulta d en tro de um a consulta d entro de um a consulta...
472
Vamos todos ju n ta r as tabelas
473
Ligue os pontos
474
C ertam ente podem os fazer mais com os in n e r jo in s
475
A pelidos para tabelas e colunas
477
Joins, ao trabalho!
478
Cinco passos para um desen co n tro com sucesso
485
Com pare usuários pela “desencontrabilidade”
487
Tudo o que precisam os é um loop FO R
488
conteúdo (sumário)
Funçpes String e persç>ncillzíulas Vivendo Melhor Através das Funções As funções levam as suas aplicações para um nível superior. Você já vem usando as funções internas do PHP para realizar as coisas. Agora é hora de dar uma olhada em mais algumas funções internas realmente úteis. E depois você aprenderá a criar suas próprias funções personalizadas para levá-lo mais além do que sequer imaginava que fosse possível. Bem, talvez não tão longe que você comece a usar espadas laser, mas as funções personalizadas certamente simplificam o seu código e o tornam reutilizável.
Strings e funções personalizadas
501
Um bom trabalho arriscado é difícil de en c o n trar
502
A busca não deixa m argem p ara erros
504
; As consultas SQL p o dem ser flexíveis com LIKE
505
; Transform e um a string em palavras individuais
510
Im plode() cria um a string a p artir de substrings
513
Pré-processe a string de busca
519
Substitua caracteres de busca indesejados
520
í A consulta precisa de term os de busca legítim os
524
Copie elem entos não-vazios para um novo array
525
As vezes você só precisa de p arte de u m a string
528
Extraia substrings do início o u do fim
529
Podem os classificar nossos resultados com m últiplas consultas
532
As funções lhe perm item reutilizar código
536
C onstrua um a consulta com um a função personalizada
537
Funções personalizadas: o quão personalizadas elas realmente são?
538
SWITCH tom a m uito mais decisões do que IF
542
Dê a build_query() a capacidade de classificar
545
Podem os paginar os nossos resultados
548
O b ten h a apenas as linhas de q ue você precisa com LIMIT
549
C ontrole os links das páginas com LIMIT
550
M antenha registro dos dados da paginação
551
D efina as variáveis da paginação
552
Revise a consulta para ter resultados paginados
553
Gere os links de navegação da página
554
M ontando o script Search com pleto
557
O script Search com pleto, continua...
558
xix
conteúdo (sumário)
E x p te s s P e s íle g u lc tfe s Regras Para Substituição As funções string são adoráveis. Mas, ao mesmo tempo, são lim itadas.
Certamente elas podem realizar tarefas como lhe dizer a
extensão da sua string, truncar a string, trocar certos caracteres por outros. Mas às vezes você precisa de liberdade para lidar com manipulações de texto mais complexas. É aqui que as expressões regulares podem ajudar. Elas podem modificar strings de forma precisa, com base em um conjunto de regras, em vez de um só critério.
D ecida com o deverá ser a aparência dos seus dados
562 566
F orm ule u m padrão p ara núm eros telefônicos
569
A Riskyjobs perm ite que os usuários subm etam currículos
C onferir endereços de em ail p o d e ser com plicado
570 572 579 584 591 592 596
Sufixos de dom ínios estão p o r toda a parte
598
Use PH P para verificar o dom ínio
599
Validação de email: m on tan d o o q uadro
600
Confira padrões com relação a expressões regulares Crie padrões usando m etacaracteres Ajuste os padrões com classes de caracteres V erifique os padrões com preg_m atch() Padronize os dados dos núm eros de telefone Livre-se dos caracteres indesejados
ViSUcdizctndo seus Dados--.
conteúdo (sumário)
eM aís!
Desenhando Gráficos Dinâmicos É claro que todos nós conhecemos o poder de uma boa consulta e os consequentes resultados satisfatórios. 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 representação gráfica dos dados: gráficos pizza, gráficos em barra, diagramas de Venn, desenhos Rorschach, qualquer coisa. Vale de tudo para ajudar os usuários a compreender os dados que fluem através da sua aplicação. Mas nem todos os gráficos úteis, em aplicações PHP, se originam do seu banco de dados. Por exemplo, você sabia que é possível evitar ataques de bots de spam com imagens geradas dinamicamente?
G uitar Wars Reloaded: A V ingança das M áquinas
606
N enhum form ulário de in p u t está a salvo
607
Precisamos separar os hum anos das m áquinas
608
Podem os vencer a autom ação usando a autom ação
611
G ere o texto d a senha de CAPTCHA
613
Visualizando a im agem CAPTCHA
614
P or d en tro das funções gráficas GD
616
D esenhando texto com um a fonte
620
G ere um a im agem CAPTCHA aleatória
623
A sanidade re to rn a ao G uitar Wars
625
A dicione CAPTCHA ao script A dicionar P ontuação
627
Cinco graus de oposição
630
P ondo a desencontrabilidade em tabela
631
A rm azenando dados do gráfico com barras
632
L endo entre as linhas com o sen h o r dos gráficos
635
De um array p ara ou tro
636
Crie um array de tópicos desencontrados
638
Form ulando um plano para execução de gráficos de barras
639
Amassando as categorias
640
A m atem ática das categorias
641
Fundam entos dos gráficos de barras
644
D esenhe e m ostre a im agem do gráfico de barras
647
Im agens individuais do gráfico de barras para todos
650
Os usuários do M ismatch estão gostando dos gráficos de barras
653
xxi
conteúdo (sumário)
ÍfepukliCcLçÍÍ9 e SetViçPS Web
U
Interfaces com o Mundo Existe um grande mundo lá fora, mundo esse que a sua aplicação web não pode se dar ao luxo de ignorar ou o que talvez seja mais, você é que não gostaria que o mundo ignorasse a sua aplicação. Uma excelente maneira de fazer o mundo notá-la é tornar os seus dados disponíveis para republicação, o que significa que os usuários poderão assinar o conteúdo do seu site, em vez de ter de visitá-lo diretamente para encontrar novas informações. Não apenas isso, a sua aplicação pode fazer interfaces com outras aplicações, através dos serviços web, e pode tirar proveito dos dados de outras pessoas para fornecer uma experiência mais rica.
A lgutts clie n te s de em ail tèm supo rte a co nte údo “p u sh ”» perm itindo que vo cê receba a tu a liz a ç õ e s do site d a m e sm a c o m o re ce be m e n s a g e n s de email.
M u ito s n a v e ga d o re s w eb tam bé m lhe perm item e xam inar co nte údo “pu sh " que revela rap idam ente a s n o tic ia s m a is re ce ntes p u b lic a d a s e m um de term inado site. A té m e sm o d isp o sitiv o s m ó v e is provém a c e s s o a co nte údo ‘'push*, o q ual é enviado a uto m aticam e nte quando e lg o s e m o d ific a no
Owen precisa avisar ao mundo sobre Fang Envie dados sobre abduções alienígenas para as pessoas O RSS envia conteúdo web para as pessoas O RSS é na verdade XML Do banco de dados para o news reader Visualizando RSS O que interessa a um comunicador Gere um envio RSS dinamicamente Crie um link para o envio RSS Um vídeo rale mais que mil palavras Obtendo conteúdo web de terceiros Republicando vídeos do You Tube ; Fazendo uma requisição de vídeo no You Tube Owen esta pronto para criar uma requisição REST O You Tube fala XML Deconstruindo uma resposta XML do You Tube Visualize os dados de vídeo XML Acesse os dados XML com objetos De elementos XML para objetos PHP Penetre nos dados XML com objetos Não sem um namespace! Cada vez mais avistamentos de Fang Disponibilize vídeos para visualização Formate os dados de vídeo para exibição
658 659 660 651 666
669 671 672 676 678 680 681 682
686
690 694 695 696 697 698 699 701 702 703
conteúdo (sumário)
$oL>ras Os Dez Principais Tópicos (Que Não Abordamos) Mesmo depois de tudo isso, ainda tem mais um pouco Ainda temos mais algumas coisas que você precisa conhecer. Não seria certo nós as ignorarmos, mesmo que só precisem de uma breve menção. Portanto, antes de guardar o livro, dê uma lida nestes pequenos, mas importantes parágrafos sobre PHP e MySQL. Além disso, uma vez concluído este aqui, só faltarão mais dois pequenos apêndices... e o índice... e talvez algumas propagandas... e aí o livro realmente acaba. Promessa!
#1. A dapte este livro para funções PHP4 e mysql
714
#2. Permissões do usuário n o MySQL
716
#3. Relato de erros p ara o MySQL
718
#4. Erros PHP com tratam ento de exceções
719
#5. PHP orientado a objetos
721
#6. T om ando segura a sua aplicação PHP
723
#7. Proteja sua aplicação de scripts cross-site
725
#8. Precedência de operadores
727
#9. Q ual é a diferença en tre PHP 5 e PHP 6
728
#10. Reutilizando o PHP de terceiros
730
xxiii
conteúdo (sumário)
C^nífgute um Ambiente de DesenVplVimentP 1 1
Um Lugar para Brincar
I I • •
Você precisa de um lugar para praticar suas recémadquiridas habilidades em P H P e M yS Q L, porém sem tornar OS SeUS dados vulneráveis na web. É sempre uma boa ideia ter um local seguro para desenvolver sua aplicação PHP antes de lançá-la no mundo (ou seja, na web). Este apêndice contém instruções para a instalação de um servidor web, do MySQL e do PHP, para lhe fornecer um lugar seguro onde possa trabalhar e praticar.
S e rv id o r
Crie um am biente de desenvolvim ento PHP
732
D escubra o que você tem
732
Você tem um servidor web?
733
Você tem o PHP? Q ual versão?
733
Você tem o MySQL? Q ual versão?
734
Com ece pelo Servidor Web
735
Passos para a instalação do PHP
737
Instalando o MySQL
738
Passos para a instalação do MySQL n o Windows
739
H abilitando o PH P n o Mac OS X
742
Passos p ara a instalação d o MySQL no Mac OS X
742
Passando do am biente de prod u ção para um site no a r
744
D um p seus dados (e as suas tabelas)
745
Prepare-se p ara usar seus dados
745
Mova os dados consolidados para o servidor ativo
746
Conecte-se ao servidor ativo
747
9Ê9
III
Araplílie Seu
conteúdo (sumário)
Obtenha Ainda Mais Proveito Sim, você pode programar com PHP e MySQL e criar Ótimas aplicações Web. Mas você sabe que ainda deve haver mais a se explorar. E há. Este pequeno apêndice irá lhe mostrar como instalar a extensão mysqli e a extensão biblioteca gráfica GD. Em seguida, mencionaremos mais algumas extensões do PHP que você poderá querer baixar. Porque às vezes não tem problema em querer sempre mais.
E stendendo o seu PHP
750
E no Mac..
753
XXV
Como Usor Este LíVrc> Introdução
Nesta seção, respondemos à ‘»»iporfcâ^ie per^wvfca--
u&ivfcdo> por <^we íoi <^ue eles doSoÊdV’âm isso e» um livro de PtfP e M y£$U ”
xxvii
como usar este fivro
A quem se destina este livro? Se você puder responder “sim” a todas estas perguntas: Você é um web designer com experiência em HTML ou XHTML, e deseja melhorar as suas páginas? Você deseja ir além do simples HTML e aprender, entender e se lembrar como usar PHP e MySQL para criar aplicações web? Você prefere conversas informais e estimulantes, em vez de aulas enfadonhas e acadêmicas?
então este livro é para você. Quem provavelmente deve fugir deste livro?
Se você puder responder “sim” a qualquer um a destas perguntas:
nenhum
Você não tem conhecimento sobre conceitos básicos de programação, tais como variáveis 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 referência?
Você tem medo de tentar algo diferente? Você prefere arrancar um dente do que misturar listras com xadrez? Você acha que um livro técnico não pode ser sério se um dos exemplos é um banco de dados sobre abduções alienígenas?
então este livro não é para você. Nota Ao d.fjH a.e.fc de frredi-fxj.
d o
d
t f l
d í
„ â r k e t i
introdução
Sabemos o que você está pensando “Como isso aqui pode ser um livro de PHP e MySQL sério?” “Por que tantas figuras?” “E realmente possível aprender desta forma?”
^
ÚrcU-c Isto ;
,mF'»rtâKit'
Sabemos o que o seu cérebro está pensando Seu cérebro p ede novidade. Ele está sem pre buscando, vasculhando, esperando p o r algo fora do com um . Ele foi construído dessa form a, e isso lhe ajuda a se m anter vivo.. Assim, o que o seu cérebro faz com todas as coisas rotineiras, comuns, normais, que você encontra? Faz todo o possível para evitar que elas interfiram no trabalho real do cérebro - registrar coisas que sejam importantes. Ele não se dá ao trabalho de armazenar as coisas chatas; elas nunca conseguem passar pelo filtro “isto aqui obviamente não é im portante”. Com o o seu cérebro sabe o que é ou não é im portante? S uponha que você esteja fazendo um a cam inhada n a selva e um tigre pule n a sua frente; o que acontece com a sua m ente e o seu corpo? Os neurônios se acendem . As em oções fluem. A
química dispara.
E é assim que o seu cérebro sabe que...
Isto deve ser importante! Não se esqueça! Mas im agine que você esteja em casa ou em um a biblioteca. É um a área segura, aconchegante, livre de tigres. Você está estudando. Se p rep a ra n d o para um a prova. O u tentando a p re n d er algum difícil assunto técnico que o seu chefe acha que só vai levar um a sem ana, dez dias no máximo. Só um problema. Seu cérebro está tentando lhe fazer um grande favor. Ele está tentando se certificar de que este conteúdo obviamente desimportante não ocupe recursos que são escassos. Recursos esses que são mais bem empregados armazenando-se as coisas realm ente importantes. Como tigres. Como o perigo do fogo. Como esconder rapidam ente ajanela do navegador com o vídeo de discos voadores no You Tube, antes que o seu chefe apareça. E n ão há um a form a simples de dizer ao seu cérebro “ei, cérebro, m uito obrigado, mas não im porta o q u anto este livro seja chato, e quão poucas em oções eu esteja sentindo neste exato m om ento, eu realm ente q uero que você se lem bre destes assuntos.”
Videos de ÍH/Ms no You Tube sa© obvia»wewte »«ais mievessa>vfces para o seu ievebv-o do ^ue um liw-o de TJ. xxix
como u sar este livro
tíntendeni9s cjue o JeítPr c[e um JiVtP cfa sène ^\Jse a C^eça! Então, o que é preciso para se aprender algo? Primeiramente, você precisa entender o assunto, e depois se certificar de que não vai esquecê-lo. Não adianta tentar entulhar fatos dentro da sua cabeça. Com base nas pesquisas mais recentes em ciência cognitiva, neurobiologia e psicologia da educação, é necessário muito mais do que texto em uma página para um verdadeiro aprendizado. Nós sabemos como chamar a atenção do seu cérebro
Alguns dos princípios de aprendizado Use a Cabeçal: Use o recurso visual. Imagens são muito mais memoráveis do que palavras sozinhas, e tomam o aprendizado muito mais eficiente (até 89% de melhoria em estudos sobre lembrança e transferência). Eias também tornam as coisas mais compreensíveis. Coloque as palavras dentro ou perto das imagens às quais elas se referem, em vez de na parte de baixo da página ou na página seguinte, e os estudantes terão duas vezes mais probabilidade de conseguir resolver problemas relacionados ao conteúdo.
U se um e stilo co iw e rsacio n al e personalizado. Em estudos recentes, os estudantes tiveram um desempenho até 40% melhor, em testes pós-aprendizado, quando o conteúdo falava diretamente ao leitor, usando um estilo conversacional, em primeira pessoa, do que quando se usava um tom mais formal, Conte histórias, em vez de lecionar. Use 1 casual. Não se leve muito a sério. Hm que você prestaria mais c estimulante conversa informal ou uma aula?
F a ça o e stu d an te pe n sa r um pou co m a is profun Em outras palavras, a não ser que você ativamente exercite os neurônios, não vai acontecer muita coisa dentro da sua cabeç precisa estar motivado, engajado, curioso e inspirado para res problemas, chegar a conclusões e gerar conhecimento novo. f isso, você precisa de desafios, exercícios e perguntas que prov o raciocínio, bem como de atividades que envolvam ambos os hemisférios do cérebro e vários sentidos.
O btenha - e m antenha - a a te n çã o do leitor. Tod< passamos por uma situação de "eu realmente quero aprender não consigo passar da página um acordado". O seu cérebro pr em coisas que sejam fora do comum, interessantes, estranhas, assunto técnico novo e difícil não precisa ser enfadonho. O se mais rapidamente se não for.
Provoque a s e m oções. Nós sabemos que a sua capacid algo depende largamente do conteúdo emocional. Você se lei que se importa. Você se lembra de algo quando sente algo. N< de histórias de partir o coração sobre um garoto e seu cachori emoções como surpresa, curiosidade, diversão, "que ... é essa? fera!” que vem quando você resolve um quebra-cabeças, apre acha que é difícil ou percebe que você sabe algo que o Bob "e do departamento de engenharia, não sabe.
U**a pequena domdào- Na verdade, nés Kistória de pariir o doraça© sobre um $â\rci# e seu ÁSâherro - o dadhorro -Çoi abduzido por alienígenas, e vode ajudará © íe**os
*
3 »kí/flB-f-Srá—ioJ.
introdução
Metacognipão: pensando sobre pensar
Se você realmente quer aprender com mais rapidez e mais profu preste atenção ao modo como prestamos atenção. Pense sobre c pensa. Aprenda sobre como você aprende. A maioria das pessoas não faz aulas de metacognição ou de teori aprendizado na escola. Sempre se esperou que nós aprendêsseir raramente nos ensinaram a aprender. Mas nós partimos do princípio 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 não 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 possível deste livro ou de qualquer livro ou experiência d assuma a responsabilidade sobre o seu cérebro. Focalize o seu cérebro neste conteúdo. O segredo é fazer o seu cérebro ver o novo material que você está aprendendo como sendo Realmente Importante. Crucial para o seu bem-estar. Tão importante quanto um tigre. Caso contrario, você se verá numa batalha constante, com o seu cérebro fazendo o possível para que o novo conteúdo não seja gravado..
Então, com o é que você faz com que o seu cérebro tra te o “PHP e My SQL” com o se ele fosse um tig re fam into?
Existe a forma lenta e tediosa, e existe a forma mais rápida e mais eficiente. A forma lenta é pura repetição. Você obviamente sabe é possível aprender e se lembrar até dos assuntos mais chatos, se continuar empurrando repetidamente a mesma coisa para o seu cérebro. Com suficiente repetição, seu cérebro diz “ele não sent isto é realmente importante, mas continua olhando as mesmas c repetidas e repetidas vezes, então suponho que deve ser importa A forma mais rápida é fazer qualquer coisa que aumente a atividade cerebral, e de preferência, diferentes tipos de atividade cerebral. As listadas na página anterior são uma grande parte da solução, e são o que comprovadamente ajudam o seu cérebro 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 cérebro a tentar entender a relação entre as palavras e a figura, e ist< mais neurônios se ativarem. Quando mais neurônios se ativam, há n chances de o seu cérebro entender que isto é algo a que 'rale a pena atenção, e possivelmente registrar. Um estilo conversacional ajuda porque as pessoas tendem a pres mais atenção quando percebem que estão envolvidas em uma cc uma vez que, nessa situação, espera-se que elas acompanhem o < está sendo dito para saber quando e como responder. O mais fai é que o seu cérebro não necessariamente liga se a “conversa” é e você e um livro! Por outro lado, se a escrita tiver um estilo form; seu cérebro o perceberá da mesma forma como a experiência d uma lição sentado em uma sala de aula cheia de estudantes pass Não é preciso ficar acordado. Mas as figuras e o estilo conversacional são apenas o início...
XXXI
como usar este f/vro ã
•
rn t
i V' A
Ta
Aqui esta o que NOS fizemos:
PiUç de -tenror
Nós usamos figuras, porque o seu cérebro está ajustado para prestar atenção em sinais visuais, e não em texto. Pelo menos no que concerne ao seu cérebro, uma imagem realmente vale por mil palavras. E quando texto e imagens precisam trabalhar juntos, nós colocamos o texto dentro das figuras, Um D esencontro ! porque o seu cérebro 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 Ítilnoí escondido em algum lugar dentro do texto. Nós usamos redundância, dizendo a mesma coisa de formas diferentes e com diferentes tipos de mídia, e visando a múltiplos sentidos, para aumentar a chance de o conteúdo ser registrado em mais de uma área do seu cérebro. Nós usamos conceitos e figuras de formas inesperadas, porque o seu cérebro está ajustado para prestar atenção em novidades, e usamos figuras e ideias com pelo menos algum conteúdo emocional, porque o cérebro está ajustado para prestar atenção à bioquímica das emoções. Aquilo que nos faz sentir algo é mais provável de ser lembrado, mesmo que esse sentimento não seja nada mais que um pouco de humor, surpresa ou interesse. Nós usamos um estilo personalizado, conversacional, porque o seu cérebro está ajustado para prestar mais atenção quando ele acredita que você está envolvido em uma conversação do que quando pensa que está passivamente ouvindo uma apresentação- Seu cérebro faz isso mesmo quando você está lendo. Nós incluímos mais de 80 atividades, porque o seu cérebro está ajustado para aprender e se lembrar mais quando você faz algo do que quando lê sobre algo. E fizemos os exercícios desafiadores, porém resolvíveis, porque isso é o que a maioria das pessoas prefere. lente isto' Nós usamos vários estilos de aprendizado, porque você poderá preferir procedimentos passo-a-passo, enquanto que outras pessoas poderão querer entender o quadro geral primeiro, e outras ainda só querem ver um exemplo. Mas indepen dentemente do seu método preferido de aprendizado, todo mundo se beneficia em ver o mesmo conteúdo representado de diversas fornias. Nós incluímos conteúdo para ambos os hemisférios do seu cérebro, porque quanto mais partes do seu cérebro 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 trabalhar um lado do cérebro 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 período de tempo maior. Nós incluímos estórias e exercícios que apresentam mais de um ponto de vista, porque o seu cérebro está ajustado para aprender com mais profundidade quando é forçado a fazer avaliações e julgamentos. Nós incluímos desafios, com exercícios e fazendo perguntas que nem sempre tem uma resposta direta, porque o seu cérebro está ajustado para aprender e se lembrar quando precisa trabalhar em algo. Pense no seguinte: não é possível fazer seu corpo ficar em forma apenas olhando as pessoas malhando na academia. Mas nós fizemos nosso melhor para garantir que, quando NAO estiver trabalhando duro, será sempre nas coisas certas, para que não tenha que gastar um neurônio sequer a mais do que o necessário processando um CCNFÏE exemplo difícil de entender ou tentando decifrar um texto difícil, cheio de ;$B3p3 termos técnicos obscuros ou sisudo demais. scaaSséi? Nós usamos pessoas. Nas estórias, exemplos, figuras, etc., porque, bem, porque você é uma pessoa. E o seu cérebro presta mais atenção nas pessoas do que nas coisas.
introdução
Veja o que fazer para que o seu cérebro se curve em sinal de submissão Ok, fizemos a nossa parte. O resto é com você. Estas dicas funcionam como um ponto de partida; ouça o seu cérebro e descubra o que funciona e o que não funciona para você. Experimente coisas diferentes. fcíeH* jsta pájina c cole na porta da sua geladeira. V á devagar. Quanto m ais você entende, menos você tem que memorizar.
Converse sobre o que está lendo. Em voz alta
Não leia, simplesmente. Pare e pense. Quando o livro lhe apresentar um a pergunta, não pule direto para a resposta. Imagine que um a pessoa real está lhe fazendo a pergunta. Q uanto mais aprofundadam ente você forçar o seu cérebro a pensar, maior a sua chance de realm ente aprender e se lem brar do que aprendeu.
Falar ativa um a parte diferente do cérebro. Se você quer entender algo ou aum entar as suas chances de se lem brar 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 não tinha percebido ainda durante a leitura,
Faça os exercícios. Faça su a s próprias | lOuça o seu cérebro. anotações. Preste atenção para saber se o seu cérebro está ficando sobrecarregado. Se você perceb er que está com eçando a ler superficialm ente ou esquecer o que acabou de ler, é h o ra de fazer um a pausa. U m a vez que você passa de certo po n to , n ão é possível a p re n d er mais rápido ten tan d o absorver mais e mais con teú d o e p o d erá até prejudicar o processo.
Nós elaboram os os exercícios, mas se os fizéssemos para você, isso seria com o ir à academ ia e ter alguém para m alhar p o r você. E não basta só olhar os exercícios. Use um lápis. H á m uita evidência de que a atividade física du ran te o processo de aprendizado pode m elhorar este últim o.
Leia a s se çõ e s “Não Existem Perguntas Idiotas”.
i
Todas elas. Elas n ã o são co m en tá rio s o p cio n ais fazem p a rte do c o 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 desafiante P arte do a p re n d iz a d o (esp e cia lm e n te a tra n sfe rê n c ia p a ra a m e m ó ria d e lo n g o p razo) o c o rre dep o is q u e você fec h a o livro. Seu c é re b ro p rec isa de algum te m p o p ara rea liza r to d o o p ro ce ssam en to . Se você te n ta r ab so rv er novas in fo rm aç õ es d u ra n te esse te m p o , u m a p a rte do q u e você ac ab o u de a p r e n d e r se rá p e rd id a .
i Beba água. Em grande quantidade. Seu cérebro funciona m elhor q uando envolvido em um bom banho. A desidratação (que pode acontecer antes m esm o de você sentir sede) p rejudica as funções cognitivas. 0
^Sinta algo. Seu cérebro precisa saber q ue isto é im portante. Envolva-se com as estórias. Crie as suas próprias legendas para as fotos. R esm ungar sobre um a piada ruim ainda é m elh o r do q ue não sentir nada.
Escreva bastante código. Só existe um a form a de aprender a programar: escrevendo um m onte de código. E é isso que você irá fazer ao longo deste livro. Programar é um a habilidade, e a única form a de se ficar bom nela é praticando. Nós iremos lhe oferecer muitas oportunidades de praticar: cada capítulo terá exercícios que apresentam problemas para você resolver. N ão deixe de fazê-los - um a boa parte do aprendizado acontece quando você resolve os exercícios. Nós incluímos soluções não tenha m edo de dar um a olhada na solução caso não consiga resolver algum exercício! (é com um um pequeno detalhe atrapalhar toda a resolução) Mas tente resolver o problem a antes de olhar as soluções. E, definitivamente, faça o exercício funcionar antes de passar para a parte seguinte do livro.
PHP o MySQL. ÍKe £er«*>'rte»* éríar
vjeb reais —nao sc es^ueta
de envia-las e C*perimer>tí-!as em um servidor y»eb vevdadeiro..
y
^
XXXIII
como usar este livro
Leia-me
Isto é uma experiência de aprendizado, e não um livro de referência. Nós 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 começar pelo começo, porque cada capítulo assume que você aprendeu o que viu no anterior. Nós começamos ensinando alguns conceitos simples de programação e fundamentos de conexão a banco de dados, em seguida apresentamos funções PHP e instruções MySQL mais complexas, e finalm ente mostramos alguns conceitos mais complexos sobre aplicações.
Embora seja importante permitir aos usuários adicionar dados e a retirar dados de uma aplicação web, antes disso, é preciso primeiramente, entender a sintaxe tanto do PHP quanto do MySQL. Assim, nós começamos apresentando instruções PHP e MySQL que você pode experimentar na prática. Assim, você poderá imediatamente fazer algo com PHP e MySQL, e começará a se sentir estimulado em usar essas tecnologias. Depois, mais adiante no livro, lhe mostraremos as boas práticas de projeto de aplicações e de bancos de dados. Nesse ponto, já terã um sólido domínio da sintaxe de que vai precisar e poderá se concentrar em aprender os conceitos. Nós não abordaremos todas as instruções, funções ou palavras-chaves do PHP ou MySQL
Teria sido possível colocar cada instrução, função e palavra-chave do PHP e do Na verdade, voòe MySQL neste livro, mas nós achamos que iria preferir um livro que não fosse pode wsâv o do tamanho de um catálogo telefônico, e lhe ensinasse as instruções, funções tovn este SWvoj e palavras-chaves mais importantes. Apresentaremos aquelas que você precisa -Çâz/ndo al$u»as conhecer, e que usará em 95% do tempo. E após terminar este livro, terá a modií itadoes ao confiança para procurar sozinho informações sobre aquela função de que precisa para terminar a aplicação que acabou de escrever. ^ ^ todifto. ^Consulte ^A o Nós estamos abordando o PHP 5 e o MySQL 5.0.
Devido ao fato de muita gente ainda usar o PHP 4 ou 5, nós evitamos usar códigos específicos para o PHP 4, 5 ou 6 sempre que possível. 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 código fosse compatível com versões posteriores. Você precisa de um servidor web com suporte a PHP.
O PHP precisa ser executado através de um servidor web para funcionar corretamente. Você precisa do Apache ou de algum outro servidor web instalado na sua máquina local, ou em alguma máquina à qual você tenha algum acesso, para que possa executar comandos MySQL sobre os dados. Consulte os Apêndices ii e iii para instruções sobre como instalar e estender o PHP e o MySQL.
introdução
Nós usamos o MySQL.
Embora exista uma linguagem SQL Padrão, neste livro nós usaremos a sintaxe particular do MySQL. Com apenas algumas poucas modificações na sintaxe, o código 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 funções e a sintaxe particulares do PHP, para se conectar a esses outros RDBMSs. Se fôssemos abordar todas as variações de sintaxe para cada comando, este livro teria muito mais páginas do que tem. Nós gostamos das árvores, por isso nos limitamos ao MySQL. As atividades NÃO são opcionais.
Os exercícios e atividades não são opcionais; fazem parte do conteúdo central do livro. Alguns deles servem para ajudar a memorização, outros para o entendimento e alguns irão lhe ajudar a pôr em prática o que acabou de aprender. Não deixe de fazê-los. As palavras cruzadas são a única coisa que não precisa fazer, mas são boas para dar ao seu cérebro uma chance de pensar de uma forma diferente nas palavras e termos que você está aprendendo. A redundância é intencional e importante.
Uma diferença importante de ura livro Use a Cabeça! é que nós queremos que você realmente entenda o assunto, E queremos que termine este livro lembrando-se do que aprendeu. A maioria dos livros de referência não tem a retenção e a recuperação como alvo, mas este é um livro de aprendizado, e portanto, verá alguns conceitos aparecendo mais de uma vez. Os exemplos são os mais simplificados possíveis.
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 possível, para que a parte que você está tentando aprender fique clara e simples. Não espere que todos os exemplos sejam super robustos ou Vários cios sempre completos - eles foram escritos especificamente para o propósito exemplos, pov-e*», didático, e não são necessariamente 100% funcionais. são aplidadoes w«b Nós colocamos todos os códigos de exemplo e aplicações na Web, para que £o*p|eiasf dapa«s você possa copiar e colar partes deles no seu editor de texto ou Terminal de +azer Coisas bew» MySQL ou então enviá-los como estão para o seu próprio servidor web, para poderosas.. realizar testes. Você os encontrará em h t t p : / / w w w .a lta b o o k s . c o m .b r
Os endereços de websites de terceiros podem ser alterados ou desatualizados a qualquer momento pelos seus mantedores, sendo assim, a Alta Books não controla ou se responsabiliza por qualquer conteúdo de websites. Os exercícios Poder do Cérebro não tem respostas.
Para alguns deles, não existe uma única resposta; para outros, parte da experiência didática das atividades Poder do Cérebro é você decidir se e em que contexto as suas respostas estão corretas. Em alguns dos exercícios Poder do Cérebro, você encontrará dicas para lhe guiar na direção correta. XXXV
equipe de revisão
Revisão técnica v W e AH»
1>âvid Bri99s
Will Hav*-is
Revisores Técnicos: Jereme Allen é um desenvolvedor web sênior com experiência no uso das tecnologias mais avançadas para a criação de aplicações web. Ele tem mais de nove anos de experiência no uso de PHP, MySQL, bem como vários outros frameworks, sistemas operacionais, linguagens de programação e software de desenvolvimento. é um a u to r de livros técnicos e e n g en h eiro de localização de software que vive em B irm ingham , Inglaterra. Q u an d o n ão está sendo detalhista sobre com o guiar os usuários através de algum software p articu larm en te difícil, n ão tem n ad a que ele goste m ais do que ir ao p arq u e local com sua esposa, P aulette e Cleo, o cachorro da família. é o responsável p o r um d epartam ento de TI que fornece serviços para 11 em presas em 4 continentes, e é o Vice-Presidente da filial em Las Vegas do PASS (Professional Association for SQL S erver). A noite, ele en tra n u m a cabine telefônica, coloca o seu uniform e web 2.0, e sai p o r aí ajudando os designers e desenvolvedores do Powered By G eek a garantir q ue as suas plataform as de dados perm aneçam flexíveis, portáteis, de fácil m anutenção e RÁPIDAS, usando MySQL e Rails. Ele tam bém gosta de passar seu tem po com sua esposa, H eather, suas lindas filhas M ara e EUie, e seu cachorro Swiper é um a instrutora técnica e desenvolvedora web em Sacram ento, Califórnia. Q uando ela não está p regando as virtudes do código que obedece aos padrões ou rem ovendo bugs de algum layout CSS, você a encontrará suando em um a pesada aula de yoga.
Stephanie Liese Steve /VJilano
Hâv-vey
ChHs Shi-Ple-tt
David Briggs
Will Harris
Stephanie liese
Steve Milano
Q uando não está escrevendo código para o The Day Job™ ou tocando punk rock com sua banda, a O nion Flavored Rings, em algum porão mal ventilado, ele provavelmente está em casa com seu laptop, negligenciando a com panhia felina de Ralph ou a com panhia hum ana de Bianca. H arvey Q uam eii desistiu de u m a carreira em program ação de com putadores p ara se ju n ta r ao chique e glam ouroso m u n d o universitário. A tualm ente, é Professor Associado de Inglês e H um anities C om puting na Universidade de Alberta, onde dá aulas sobre cybercultura, literatura do século XX e desenvolvim ento web incluindo PHP e MySQL. é o Chefe de Tecnologia da O m niTI, onde lidera a prática de segurança de aplicações web e guia a iniciativa de desenvolvim ento web. Chris é um reconhecido líd er nas com unidades de segurança do PHP e de aplicações web - um b logueiro bastante lido em shiflett.org, um p o p u lar palestrante em conferências no m undo todo, e o fu n d ad o r do PHP Security Consortium . Seus livros incluem Essential PHP Security (O ’Reilly) e H TTP D eveloper’s H and b o o k (Sams).
Chris Shiflett
introdução
Agradecimentos
Nossos editores: Muito obrigado a Brett McLaughlin pela incrível sessão de storyboarding que nos colocou no caminho certo, e pelo seu compromisso inquebrantável com o aprendizado cognitivo. Este livro não existiria se não fosse pelo esforço, paciência e persistência heróicos de Sanders Kleinfeld. Ele sempre conseguia apanhar os pinos com os quais estávamos fazendo malabarismo, toda vez que inevitavelmente deixávamos cair um (ou três!), e somos gratos por isso. Esperamos que ele tenha a chance de descansar por alguns dias antes de encarar um outro projeto tão difícil quanto este. A equipe O’Reilly: Obrigado a Lou Barr pelas suas fenomenais habilidades em design, que fizeram este livro ter uma aparência tão boa. Obrigado também 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 nós poderíamos escrever mais um ótimo livro da série Use a Cabeça!
Sanders tíeiníeid
E também: Finalmente, muitíssimo obrigado a Elvis Wilson por elaborar os vídeos de alienígenas no You Tube p a r a o C a p ítu lo 12. Ó tim o tra b a lh o ! E s p e c ia lm e n te
considerando que ele é um simples diretor de arte do tempo das cavernas.
xxxvii
1 Adicionando Vida às Suas Páginas Estáticas
*
+ Está Vivo
Você tem criado ótimas páginas web com HTML, com recursos de CSS mas tem percebido que os visitantes do seu site não podem fazer muita coisa além de olhar passivamente o conteúdo das páginas. A comunicação apresenta-se de forma unidirecional e você gostaria de mudar isso. Na verdade, o que você realmente gostaria é de saber o q u e o s e u p ú b lic o e s tá p e n s a n d o . Mas para isso precisa permitir que os usuários digitem informações em um formulário web, para que possa saber o que eles têm em mente. E seu site precisa ser capaz de processar essas informações, para que elas lhe sejam entregues. Está começando a parecer que você irá precisar de mais do que HTML para levar seu site para o próximo nível.
este é um novo capítulo ►
1
as vezes somente HTML não é suficiente
HTML é estático e chato O HTML é ótimo para se criar páginas web, até aí você já sabe. Mas, e quando você precisa que as páginas realizem alguma ação? Suponha que seja necessário 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 informações que nunca se modificam. HTML- c óWo ^«and©
0 a ‘m-temçao e apenâ*
towparblHar w»a do seu VidHo de estimâ^o-- mas
Estas pessoas esta© em busda interação.
»ao tawfco guando desejô ir>'tera^iv' to» cs visitantes do seu site-
O servidor web representa uma grande parte do problema com o HTML estático, uma vez que ele funciona como nada mais que um mecanismo de entrega sem graça. O navegador requisita uma página, o servidor responde com HTML, fim da história. Para transformar sites em aplicações web interativas, o servidor precisa assumir um papel novo, mais dinâmico... um papel possibilitado pelo PHP.
©
C»m páginas HTML pureis, 9 seiVidor s i m p l e s m e n t e s e tV e
HTML estático,
coijtôúdp.
de eXibít
adicionando vida às suas páginas estáticas
Co» uma pequena ajuda o — do 'servido»-/ »ct vioor'
PttP dá vida às páginas web
O PHP lhe permite manipular o conteúdo das páginas web no servidor, imediatamente antes de a página ser enviada ao navegador cliente. Funciona da seguinte maneira: um script PHP é executado no servidor, e pode alterar ou gerar código HTML à vontade. Uma página HTML então é entregue ao navegador, que não sabe e nem liga se há PHP envolvido na produção ou zyuste do HTML, no lado do servidor. -
j
*T
0
9 seíVxdot Web
e c a p e is d e £ e r a r
páginas HTML de fotma dinâmica, em tempp real. PttP Sdo
P0'" PHP, e pode se
'rto T M i
^ ’lr'âs no^ma»S|»as « ri* . fo, jarado dinamita^ente aivavés de PHP, no
dodifto HTML destas
Com ?H? na parada,
f
v
— nriodiíiÊar dinawitameníe, defendendo do que a -
ain»ia2íhados «o
^ — wvidor web, o^de
r
530 P^essados
1
e
depois os resultados entreves ao ^vegader £o»,o
servi d cv
Painas HTML. Servidor w eb
Navegador w eb clien te
N
A
Os sòrip-b PHP ÒonW tá d íp HTML e ftádiy> de sdnpt PHP, oi V * s
Páginas HTML dinâwõtas^^ SC rwodi-fÍÊ3w> e»» 'res^ostâ à iógita frogvamáiida presente nos sdripis PHP, -tornando—os intnveiwente íle*íveis.
deterwinaw o modo towo o
tód ',50 HTML t «.angulado-
Banco de dados MySQL
0 PHP armazina e retira dados de um banto de dâdos e os incorpora ao úodigo HTML gerado.
você esté ago/ ►
3
Cães no espapo E ste é o O w en . E le p e r d e u se u c a c h o r r o , F an g . M as e n c o n tr a r se u c ã o n ã o sc re s tr in g e a u m a sim p les la re fa d c p r o c u r a r p e l o b a i r r o . A c o n t e c e q u e F an g f o i a b d u z i d o p o r a lie n íg e n a s , o q u e e x p a n d e a b u sc a d e O w e n p o r to d o o u n iv e rso . O w en sa b e u m p o u c o d e HTM L. e CSS e a c h a q u e u m site p e rs o n a liz a d o p o d e r ia aju d á-lo a re so lv e r seu p ro b le m a , a o p e r m itir q u e o u tra s p esso as c o m p a r tilh e m suas p r ó p ria s e x p e riê n c ia s d e a b d u ç ã o a lie n íg e n a . M as, p a ra o b te r in fo rm a ç õ e s d as pesso as, O w en p re c is a rá d e u m fo rm u lá r io w eb c a p a z d e r e c e b e r in p u t ( e n tr a d a d e d a d o s ) d os u su á rio s e n o tific á-lo s o b re esse in p u t. S em p r o b le m a - o H T M L p o ssu i várias tags p a r a a c ria ç ã o d e f o rm u lá rio s w eb.
Os de-balv»es sao
sâWos t
»as o »yt
avrebatado ««* < M a° 50 tcu _ Y&r um V3'© lwz»
adicionando vida às suas páginas estáticas
Um formulário ajuda Owen a descobrir toda a história O 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 formulário HTML para requisitar histórias de abdução dos visitantes e que precisa descobrir se por acaso, eles viram Fang durante as suas jornadas interestelares. Mas Owen precisa de ajuda para conseguir montar o site e colocã-lo no ar. Eis o que ele tem em mente para o formulário.
Este é o tampo para 0 ewieveço de emaii do visitante-
,
0 VJÉK <^uer uma dcsâriçâo -Písifii ísiââ dos
aliehs.
Owtr, espera <\ue al^wcm
responda sim, «^*e eles viram *a espaçwave alienígena-
^uais^uçv fiomentirios adiciowais Sâo à o lo tà d a
a^ctí.
Òvjen deseja redeber uma mensagem de ema»! guando o usuirio submeter o -formulário-
£ste -formulário c lOO%t pur© HTML./
O que você achou do form ulário HTM L de Owen?
Você consegue pensar em quaisquer problemas com os quais Owen poderá se deparar quando tentar obter dados sobre abduções usando este formulário? Vá em frente, ponha suas ideias no papel. .vrsí. .
.r?:..!A í.:...ò X }.
.
.....................*................................................
você está aqui ►
5
formulário htm l do Owen
Se predisar de um re-Çresdo de memória sobre domo driar •formulários HTML, de uma olhada «o Capí-Wo l^vde Use a Cabeça! HTML tom CSS \
Formulários são feitos de HTML
O formulário “Relate uma Abdução de Owen” (baixe este código através do site da altabooks.com.br) se compõe, inteiramente, de tags e atributos HTML. Há campos de texto para a maioria das perguntas, botões de rádio para descobrir se o visitante viu Fang e uma área de texto para *rtTML comentários adicionais. E o formulário está configurado para enviar os dados recebidos para o endereço de email de Owen. O w n ira redeber o donieúdo deste -formulário enviado para ele «este endereço de t^uc dados à t -formulários seja» r «^ail - fohha a<^ui o seu enviados por email/ endereço para testar
Share your story of alien abduction:
^ o +ormulár»o.