Download Curso Pratico de Criacao de Sites...
iniciais.indd 1
21/8/2006 12:33:36
© 2006 by Digerati Books Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. 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ônicos, mecânicos, fotográficos, gravação ou quaisquer outros.
Diretor Editorial Luis Matos Assistência Editorial Monalisa Neves Erika Sá Preparação de Originais Luciana Salgado Guimarães Moreira Revisão Karina Penariol Sanches Projeto Gráfico Daniele Fátima Diagramação Natalí Garcia
Universo dos Livros Editora Ltda. Rua Tito, 1609 CEP 05051-001 · São Paulo/SP www.universodoslivros.com.br e-mail:
[email protected] Conselho Administrativo: Alessandro Gerardi, Alessio Fon Melozo, Luis Afonso G. Neira, Luis Matos e William Nakamura. ISBN: 85-7702-063-0
iniciais.indd 2
23/8/2006 11:59:46
Prefácio Houve um tempo em que bastava o conhecimento da linguagem HTML para desenvolver páginas de Internet, que eram hospedadas em um dos poucos servidores disponíveis. Neste tempo, as páginas eram estáticas, as imagens eram muito raras e as conexões de acesso, na sua maioria, discadas. Mas a Internet evoluiu muito rápido e, em sua nova geração, a banda larga começou a se popularizar, agilizando em muito a velocidade de conexão. Os internautas também passaram a ser mais exigentes, buscando cada vez mais interação e atratividade. Ao léxico da Internet foram incorporados novos termos técnicos como ASP, PHP, Cold Fusion, Curl, JavaScript, Ajax, XML, DTHML, Flash, entre outros, e os profissionais que desenvolviam sites passaram a ter necessidade de conhecer cada uma destas tecnologias para implementar recursos sofisticados ao site. Os servidores Web também ganharam em recursos, e os profissionais passaram a ter opção de escolha entre soluções Made in Microsoft com o pacote Windows + ASP + SQL + IIS e soluções OpenSource com o pacote LAMP (Linux + Apache + MySQL + PHP). Neste livro você terá a oportunidade de conhecer, em linhas gerais, essas tecnologias e saber como combiná-las para criar um website altamente profissional. Boa leitura! Luis Matos
[email protected] Diretor Editorial
iniciais.indd 3
21/8/2006 12:34:03
iniciais.indd 4
21/8/2006 12:34:03
Sumário
Capítulo 1 Montagem de servidor ............................................... 07
Capítulo 2 Linguagens da Web .................................................... 31
Capítulo 3 PHP........................................................................53
Capítulo 4 SQL e MySQL............................................................. 83
iniciais.indd 5
23/8/2006 12:00:06
iniciais.indd 6
21/8/2006 12:34:03
Capítulo 1 Montagem de servidor
Cap1.indd 7
21/8/2006 13:41:18
Para ter seu próprio site, antes de tudo, você precisa de um servidor de hospedagem. Hospedagem é o nome que se dá ao serviço em que o dono de um computador (na verdade, de vários) e de um link de conexão à Internet “aluga” recursos da máquina (espaço em disco, processamento) e uma fatia do link para serem utilizados por quem estiver interessado. No caso dos serviços de hospedagem de sites, tanto pessoais quanto comerciais – se bem que os primeiros praticamente inexistem atualmente, por conta da presença dos blogs e do Orkut –, o que se aluga é um espaço para armazenagem dos sites no disco rígido do servidor, e a quantidade de conexões de usuários que poderão ser feitas para a página, simultaneamente. Para a hospedagem de sites profi ssionais deve existir ainda um espaço de disco oferecido para a inserção de bancos de dados e garantias de proteção contra invasões de crackers (ladrões de senhas e de dados), script kiddies – os “aprendizes” de hackers – e defacers, os costumeiros responsáveis por “pichações” em páginas da Web ou retirada de páginas do ar, usando técnicas de inundação de conexões (Denial of Service ou DOS) ou simplesmente apagando os arquivos do site de dentro do diretório de hospedagem. A segurança normalmente é feita com a presença de um firewall com algumas regras de proteção predefinidas. Sempre que um novo cliente se filia ao serviço de hospedagem de sites, ele poderá inserir novas regras ao firewall, que terão efeito apenas em sua conta. É assim que grandes empresas de hospedagem como a LocaWeb (www.locaweb.com.br) costumam trabalhar. Você pode montar seu próprio servidor Web em casa? Sim, e a um custo relativamente módico: cerca de mil reais. Compensa? Dependendo da situação pode compensar, mas, do ponto de vista financeiro, raramente será uma boa opção. Basta colocar todas as despesas na ponta do lápis:
8
Cap1.indd 8
21/8/2006 13:42:02
Curso prático de criação de sites
Servidor doméstico Item
Custo médio
Servidor (Pentium 4.2 GHz, 512 MB RAM, HD 40 GB, placa de rede).
R$ 800,00
Serviço Internet Banda Larga.
Entre R$ 100,00/mês (Links ADSL 400 Kbps) e R$ 200,00/mês (Link 1 Mbps).
Provedor de acesso à Internet.
Entre R$ 30,00/mês e R$ 200,00/mês (horas de conexão ilimitadas).
Sistema operacional do servidor.
Grátis (GNU/Linux), R$ 900,00 (RedHat Linux Enterprise) ou R$ 2.400,00 (Windows Server 2003).
Gastos de energia elétrica com o servidor e roteador de acesso à Web.
Entre R$ 50,00/mês (página disponível cinco dias por semana, oito horas por dia) e R$ 250,00 (página disponível todos os dias da semana, 24 horas por dia).
Tabela 1: Gastos com um servidor doméstico.
Servidor de hospedagem profissional Item
Custo médio
Servidor semidedicado: plano de hospedagem com banco de dados, 50 GB de transferência de dados, 1 GB de espaço em disco e 100 caixas postais de e-mail.
R$ 299,00/mês.
Serviço Internet Banda Larga.
Custo zero, já que será utilizado o link do serviço de hospedagem.
9
Cap1.indd 9
21/8/2006 13:42:02
Servidor de hospedagem profissional Item
Custo médio
Provedor de acesso à Internet.
Custo zero, já que será utilizado o link do serviço de hospedagem.
Sistema operacional do servidor.
Custo zero. Só se deve pagar pelo sistema operacional ao se contratar serviços de acesso dedicado.
Gastos de energia elétrica com o servidor e roteador de acesso à Web.
Custo zero.
Tabela 2: Gastos com serviço de hospedagem profissional.
Sistemas Operacionais Outro ponto que se deve levar em consideração, além dos custos, é a manutenção e segurança do site. Os bons provedores de hospedagem costumam fazer backups diários das informações armazenadas em seus servidores, além de garantir a segurança das informações por meio de criptografia e regras de firewall. Por sua vez, se você resolver montar seu próprio servidor, todos os encargos de manutenção do servidor, backup e segurança passarão a ser de responsabilidade sua. Essa preocupação é comum a todos os sistemas operacionais em uso em servidores, mas é especialmente preocupante em sistemas Windows. A maioria dos vírus criados afeta o sistema operacional da Microsoft, sobretudo as versões 2000/2003/XP do Windows. Boa parte deles, como o Slammer ou o MyDoom, afeta sobretudo a conectividade do computador com uma rede interna ou com a Internet, e podem se disseminar sem que o usuário sequer abra um arquivo ou e-mail proveniente da máquina infectada, como costumava acontecer com os vírus da geração anterior, ou seja, além de ficar com a sua página fora do ar, você pode infectar pessoas que
10
Cap1.indd 10
21/8/2006 13:42:02
Curso prático de criação de sites
acessem sua página e até potenciais clientes, caso mantenha um website com fins comerciais. Além disso, você terá de se encarregar da instalação do próprio sistema operacional, ação que, apesar de parecer corriqueira, adquire contornos um pouco mais dramáticos quando estamos diante de um servidor Web: além da instalação tradicional do sistema operacional, teremos de realizar a configuração dos elementos de rede, configurar os servidores Web e aplicar todos os patches de segurança existentes. Ao optar por sistemas operacionais da Microsoft – tanto em servidores de uma empresa de hospedagem como em casa – teremos de trabalhar com o servidor Web IIS (Internet Information Service), atualmente em sua versão 6 (o Windows 2000 utiliza a versão 5). A linguagem dinâmica ideal para se trabalhar com o IIS é o ASP (Active Server Page), também desenvolvido pela Microsoft. Ao optar por sistemas operacionais como o GNU/Linux, o servidor de Web padrão será o Apache (www.apache.org), atualmente em sua versão 2.2.2. O Apache apresenta problemas com páginas dinâmicas criadas em ASP, razão pela qual é recomendado criar páginas usando tecnologia livre como o PHP (PHP Hypertext Preprocessor) ou o Perl. Também existem versões do ASP para Windows.
Apache A fundação Apache, criada em 1989, lançou a primeira versão do seu servidor Web, que possui o mesmo nome da fundação, dez anos depois. Apesar da alcunha singela, o Apache tinha e tem muito a mostrar: um servidor robusto, mesmo rodando sobre a plataforma Windows, gratuito e com uma ferramenta de criação e análise de logs que permite uma filtragem quase total de informações. Desde então o Apache foi “engolindo mercado”, a ponto de ser o responsável por 65% dos servidores Web atualmente em atividade no mundo.
11
Cap1.indd 11
21/8/2006 13:42:02
Vamos mostrar agora como realizar a instalação do Apache em uma máquina rodando o Windows 2000 Server. Na seção seguinte, realizaremos a mesma instalação e configurações, mas dessa vez em um servidor GNU/Linux. Mesmo que você não deseje construir um servidor dentro de sua casa ou empresa, e já repassou a “dor de cabeça” para uma empresa de hospedagem, recomendamos que leia atentamente esta seção. Em raros provedores o próprio cliente deve fazer a instalação de seu servidor – em outros casos, você deve ter bagagem técnica para conversar com atendentes e delinear o tipo de configuração que deseja aplicar ao seu servidor. Além disso, se você quiser ser um profissional de Web, é obrigatório saber configurar o Apache. 1. Vá a página http://www.apache.org/mirrors/ e selecione um dos sites espelho (chamados também de mirrors) em que estiver disponível o download da última versão do Apache. Procure pelo diretório /apache/httpd/binaries/win32/ no mirror de sua escolha e clique no arquivo apache_2.2.2-win32-x86no_ssl.msi para iniciar o download.
Figura 1.1.
12
Cap1.indd 12
23/8/2006 12:07:39
Curso prático de criação de sites
2. Execute o arquivo quando o download estiver terminado. Clique em Next e, após aceitar a licença e ler a página de apresentação, clique em Next duas vezes para passar para a página de configurações.
Figura 1.2.
3. Em Network Domain, selecione o domínio em que sua página está inserido, por exemplo: digerati.com.br, ou eu.com. Certifique-se de já ter um domínio registrado no Registro.BR (http://registro.br/). Em Server Name, dê um nome ao seu servidor, como, por exemplo, tester1. Por fim, em Administrator´s E-mail Address, digite um endereço de e-mail que possa ser utilizado para a criação de arquivos de segurança.
Figura 1.3.
13
Cap1.indd 13
23/8/2006 12:07:55
4. Uma configuração de segurança importante: clique em for All Users, on Port 80, as a Service (para todos os usuários, na porta 80, como um serviço) para que seja possível instalar o Apache com todas as suas extensões e funcionalidades habilitadas e acessíveis a todos os usuários, via porta 80. Ao selecionar essa opção, o Apache passa a ser reconhecido pelo Windows como um serviço. Essa é a opção ideal, já que estamos falando de um servidor de acesso público. Clique em Next.
Figura 1.4.
5. Clique em Typical para realizar uma instalação completa. Na tela Destination Folder, clique em Change e selecione um novo local para seu servidor (no nosso caso, imaginamos alguém que estivesse familiarizado com o IIS e, por isso, selecionamos o diretório como C:\Apache Group).
Figura 1.5.
14
Cap1.indd 14
23/8/2006 12:07:59
Curso prático de criação de sites
6. Na tela seguinte, clique em Install e, em seguida, em Finish. O servidor já foi instalado.
Figura 1.6.
7. Agora é necessário configurar o sistema. Acessando o menu Iniciar > Programas > Apache HTTP Server 2.2.2 > Configure Apache Server, clique em Edit the Apache httpd.conf Configuration File. Se o arquivo não abrir imediatamente, você deve associá-lo a outro aplicativo. Utilize, por exemplo, o Bloco de Notas.
Figura 1.7.
15
Cap1.indd 15
23/8/2006 12:08:03
8. Para quem não está acostumado com arquivos de configuração do estilo UNIX, em que tudo é feito em arquivos de texto que devem ser editados, essa configuração pode parecer meio complicada, mas não é. Para quem sabe inglês, o arquivo é auto-explicativo. 9. Procure pela linha MaxRequestsPerChild 0. Ela define quantas conexões serão aceitas, de forma simultânea, pelo servidor. Se você tem uma largura de banda reduzida ou está rodando o Apache em uma máquina com poucos recursos de memória, digite uma quantidade entre 10 e 20. Valores acima disso não são recomendáveis em servidores isolados (que trabalham sozinhos) como os servidores domésticos, ou podem depender do número de conexões simultâneas contratadas com o serviço de hospedagem profi ssional. 10. Em seguida, procure pela linha Listen e observe se ela mantém o valor 80 como o padrão. Ela define que a porta 80 seja a porta padrão para envio e recebimento de material HTTP. Se você ou a empresa de hospedagem possuírem um serviço Microsoft IIS na mesma máquina – felizmente, e por razões óbvias, quase ninguém faz isso – podem ocorrer alguns problemas de compatibilidade, com dois servidores HTTP escutando na mesma porta. Nesse caso, selecione a porta 3128 para o Apache, que é a normalmente utilizada para serviços de proxy (conexão segura à Internet), e, na ausência deles, fica livre. Portanto, você também pode utilizar a porta 3128 se trabalhar em uma rede que possui um proxy transparente (que não requer autenticação). 11. Salve o arquivo e, em seguida, clique em Iniciar > Programas > Apache HTTP Server 2.2.2 > Control Apache Server > Restart para reiniciar o servidor.
16
Cap1.indd 16
21/8/2006 13:42:23
Curso prático de criação de sites
No Linux A utilização ideal do Apache Server está associada ao GNU/Linux e ao PHP. A maioria das distribuições GNU/Linux – inclusive as que são compradas como encartes em CDs ou DVDs – já vem com pacotes do Apache compilados e prontos para instalação. Na maioria das distribuições, pode-se optar pela inclusão do Apache desde o início da instalação do sistema operacional, com a opção de se levantar o serviço apenas retirando uma forquilha (#) em um arquivo de texto. Para ter certeza da necessidade de se instalar o Apache em um servidor GNU/Linux, digite o seguinte comando no terminal: ps -A | grep httpd O comando ps procura por instâncias do servidor HTTP Apache ativas. Se nenhuma instância for encontrada, então proceda à instalação, detalhada logo a seguir: 1. Se você deseja ter a última versão do Apache em seu sistema Linux, ele pode ser adquirido no site oficial, http://apache.org/. Escolha um mirror de sua preferência e procure pelo diretório /apache/httpd/binaries/linux/. Baixe o arquivo httpd-2.0.52-s390-ibm-linux.tar.gz. 2. Descompacte o arquivo para um diretório de sua escolha, dentro de sua máquina GNU/Linux. tar xvfz httpd-2.0.x.tar.gz 3. Será criado um diretório com o mesmo nome do arquivo, mas sem a extensão .tar.gz. Entre no diretório criado como administrador (root). Se você não souber fazer isso, basta utilizar o terminal de linha de comando para ser capaz de executar os comandos necessários à sua instalação.
17
Cap1.indd 17
21/8/2006 13:42:23
su (digite a senha de root). cd httpd-2.0.x 4. Agora que descompactamos o código-fonte e estamos dentro do diretório do Apache, realizaremos a compilação do programa: ./configure --enable-module=so --enablerule=SHARED _ CORE -prefix=/www # Voce pode escolher o diretorio para a instalaçao do Apache. Neste caso, seguimos, novamente o padrao IIS, mesmo estando em um servidor GNU/Linux, escolhendo /www. Isto e um comentario (precedido por #) e, portanto, nao precisa ser digitado. make make install # Estas duas ultimas operaçoes podem demorar alguns minutos ate a finalizaçao. 5. Feita a instalação, podemos iniciar o serviço utilizando o seguinte comando: /usr/local/apache/bin/apachectl start para interromper o serviço, caso surja algum erro, digite o comando: /usr/local/apache/bin/apachectl stop 6. Se tudo estiver funcionando corretamente, um navegador Web será aberto com a mensagem mostrada na Figura 1.8, dizendo que o Apache já está trabalhando. Se a mensagem não for mostrada, basta abrir qualquer navegador e digitar o
18
Cap1.indd 18
21/8/2006 13:42:23
Curso prático de criação de sites
endereço http://localhost:80 (ou http://localhost:8080, se você selecionou essa porta).
Figura 1.8.
7. Feito o teste, pode-se apagar o diretório de instalação do servidor: cd rm httpd-2.0.x.tar.gz rm -rf httpd-2.0.x 8. Agora passaremos para as configurações do Apache. Vamos criar os diretórios seguintes, que serão utilizados para armazenar as páginas (/www) e os scripts CGI (/www/cgi-bin): mkdir /home/www mkdir /home/www/cgi-bin 9. Agora vamos trabalhar com o arquivo de configuração do Apache. Diferente do que acontece com o Windows, não há uma interface gráfica para ajudar – portanto tudo terá de ser feito na linha de comando, utilizando um editor de textos como o vi, que pode ser chamado com o comando vi ou vim.
19
Cap1.indd 19
23/8/2006 12:16:00
Se o servidor foi montado com uma distribuição GNU/Linux que suporta o modo gráfico, você pode utilizar editores gráficos como o Xvim e o kedit. 10. Para chamar o arquivo em modo texto, use o comando: vim /usr/local/apache/conf/httpd.conf Para começar a editar o arquivo, aperte a tecla Insert do teclado do servidor e posicione o cursor sobre a área que deseja editar. 11. Para configurar o endereço do administrador do site, procure pela seção: # # ServerAdmin: Your address, where problems with the server should be # e-mailed. This address appears on some servergenerated pages, such # as error documents. e.g.
[email protected] # ServerAdmin
[email protected] e substitua o e-mail da última linha por um endereço de correio eletrônico do seu uso. 12. Agora vamos definir o diretório raiz (root). É nesse diretório que serão colocadas todas as páginas do site criado por nós. Procure pela seção: # # DocumentRoot: The directory out of which you will serve your # documents. By default, all requests are taken from this directory, but
20
Cap1.indd 20
21/8/2006 13:42:27
Curso prático de criação de sites
# symbolic links and aliases may be used to point to other locations. # DocumentRoot “/usr/local/apache/htdocs” e substitua o caminho da última linha pelo caminho de sua escolha como, por exemplo: DocumentRoot “/usr/local/apache/htdocs/meusite/” 13. Agora iremos configurar a aceitação de scripts CGI em nosso servidor Apache. Procure pelas seções: # This should be changed to whatever you set DocumentRoot to. # e # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs-2.0/mod/core. html#options # for more information. # Options Indexes FollowSymLinks e as substitua, por exemplo, por: # # This should be changed to whatever you set DocumentRoot to. # digite o caminho do diretório em que seu site será armazenado
21
Cap1.indd 21
21/8/2006 13:42:28
(...) # Formate o outro trecho da seguinte maneira, na qual permitimos a execução de scripts CGI # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs-2.0/mod/core. html#options # for more information. # Options Indexes FollowSymLinks Includes ExecCGI 14. É conveniente indicar quais páginas serão visualizadas por omissão, ou seja, não serão apresentadas ao browser quando apenas o nome do diretório for pedido, como quando se digita http://127.0.0.1 na linha de endereço de um browser. O Apache já vem com dois nomes preconfigurados, index.html e index.html.var, mas convém adicionar também index.shtml para que possa ter páginas com SSI – um componente dinâmico do CGI, que trabalha junto com o servidor Web – como página principal. Basta procurar a seção seguinte: # The index.html.var file (a type-map) is used to deliver content# negotiated documents. The MultiViews Option can be used for the # same purpose, but it is much slower. # DirectoryIndex index.html index.html.var e fazer a seguinte alteração:
22
Cap1.indd 22
21/8/2006 13:42:28
Curso prático de criação de sites
# The index.html.var file (a type-map) is used to deliver content# negotiated documents. The MultiViews Option can be used for the # same purpose, but it is much slower. # DirectoryIndex index.html index.html.var index. shtml 15. Agora vamos configurar o diretório no qual serão executados os arquivos CGI. Você pode utilizar a configuração padrão (/home/www/cgi-bin/). Se você alterou o diretório raiz para o armazenamento das páginas do site (Passo 12), terá que fazer alterações no diretório raiz dos arquivos CGI seguindo os mesmos moldes: # # ScriptAlias: This controls which directories contain server scripts. # ScriptAliases are essentially the same as Aliases, except that # documents in the realname directory are treated as applications and # run by the server when requested rather than as documents sent to the client. # The same rules about trailing “/” apply to ScriptAlias directives as to # Alias. # ScriptAlias /cgi-bin/ “/home/www/cgi-bin/” (...) # “/usr/local/apache/cgi-bin” should be changed to whatever your ScriptAliased
23
Cap1.indd 23
21/8/2006 13:42:28
# CGI directory exists, if you have that configured. # 16. Tal como na opção anterior, é necessário “descomentar” a linha com esta configuração para a ativar, mas também indicar ao servidor que os arquivos com a extensão .shtml são arquivos do tipo .html: # To parse .shtml files for server-side includes (SSI): # (You will also need to add “Includes” to the “Options” directive.) # AddType text/html .shtml AddOutputFilter INCLUDES .shtml 17. Para confirmar se as configurações foram bem feitas, basta acessar os arquivos secundários de configuração e conferir o status. Se você realizou as configurações anteriores, seu arquivo /home/www/index.shtml, por exemplo – ou seja qual for o caminho em que você depositou o seu arquivo index. shtml – deve estar estruturado da seguinte maneira: My web home using Apache My web home using Apache This is my home page. To see if it is working as it should, verify that the date presented be-
24
Cap1.indd 24
21/8/2006 13:42:28
Curso prático de criação de sites
low is my system’s date and that a listing of the site’s root directory appears right below it. The message below is generated by a script in the cgi-bin directory. 18. O arquivo /home/www/root_listing – ou seja qual for o caminho que você definiu para a raiz de sua página – deve ser mostrado da seguinte maneira: #!/bin/bash # HTTP header echo “Content-type: text/html” echo # lists current directory ls . Esse arquivo nada mais faz do que listar todo o conteúdo do diretório atual que esteja no formato .html.
25
Cap1.indd 25
21/8/2006 13:42:29
19. O arquivo www/cgi-bin/script deve ser apresentado como mostrado a seguir: #!/bin/bash # HTTP header echo “Content-type: text/html” echo # prints a funny message echo “That’s all folks!” 20. Se as configurações estiverem corretas, falta pouco para que o Apache esteja realmente funcional no GNU/Linux. Devemos, por exemplo, dar permissão para o funcionamento dos scripts para que eles possam funcionar dentro dos diretórios do Apache. As permissões funcionam como uma espécie de roteiro do que pode ou não ser feito em um diretório. No GNU/Linux elas podem ser definidas com o auxílio do comando chmod, como no caso seguinte, em que damos permissão de escrita para os nossos scripts: chmod 755 /home/www/root _ listing.cgi chmod 755 /home/www/cgi-bin/script
IIS O IIS (Internet Information Server) é distribuído gratuitamente com as versões de Windows baseadas em NT, como o Windows 2000 Server e 2003. Nessas versões, o IIS possui capacidade ilimitada de conexão de clientes e ampla margem de configuração. Na versão para Windows XP, ao contrário, o IIS pode ser utilizado apenas para dez conexões simultâneas. Dá para criar um site de sucesso? Não, mas pode ser bem útil em uma intranet.
26
Cap1.indd 26
23/8/2006 12:21:16
Curso prático de criação de sites
Dentro de uma rede comercial pequena – escritório com dez funcionários esparramados por um espaço geográfico mais ou menos extenso, por exemplo – uma intranet talvez seja a melhor maneira de compartilhar ou atualizar informações. Com a criação de uma rede interna de informações, fica muito mais fácil gerenciar conjuntos de dados que devem ser vistos por todas as máquinas da rede – com vantagens, inclusive, em relação aos comunicados via e-mail, que ainda podem ser considerados uma forma de comunicação um tanto estática. As empresas contratam profissionais que saibam montar páginas e sistemas de intranet com a mesma intensidade e entusiasmo com que fazem a contratação de profissionais especializados na montagem de websites externos (para a intranet). Vamos mostrar como realizar a instalação do IIS no Windows XP. A versão do IIS utilizada no XP é a 5, e são permitidas somente dez conexões simultâneas, mas vale a pena salientar que o método de instalação aqui mostrado pode também ser aplicado em máquinas Windows 2000/2003. 1. Com o CD do Windows XP no drive, espere que a interface de apresentação seja iniciada e, em seguida, clique em Instalar Componentes Opcionais do Windows. 2. Selecione o IIS na lista de programas que é mostrada, clique no botão Avançar e, em seguida, em Concluir. A máquina deverá ser reiniciada. 3. Para ver se o IIS foi iniciado corretamente, digite em seu browser: http://localhost A página seguinte deve ser mostrada:
27
Cap1.indd 27
23/8/2006 12:21:26
Figura 1.9: Página inicial do IIS.
4. O diretório padrão do IIS é C:\Inetpub\wwwroot. Tudo que você deseja que seja exibido na intranet deve ser colocado nesse diretório. Você pode configurar as páginas que serão exibidas através do Painel de Controle > Ferramentas Administrativas > Internet Information Service. Será aberta uma janela de console. 5. Clique com o botão direito sobre o ícone que representa o computador no qual está instalado o servidor IIS, clicando em seguida em Conectar. Na janela Conectar ao computador..., digite o nome da máquina em que foi instalado o IIS.
Figura 1.10.
28
Cap1.indd 28
21/8/2006 13:42:29
Curso prático de criação de sites
6. Expanda o diretório Sites da Web, clicando com o botão direito do mouse em Site da Web padrão e, após, em Propriedades. Na aba Site da Web, linha Descrição, dê um nome à sua página. Em seguida, na linha Endereço IP, coloque o IP de sua máquina. Em Porta TCP, definiremos a porta padrão para endereços Web e páginas HTTP (80).
Figura 1.11.
7. Na aba Documentos, clique em Ativar Documento Padrão. No campo seguinte, selecione a página que você deseja configurar como a página padrão, excluindo as páginas seguintes.
Figura 1.12.
8. Podemos adicionar um sistema de login à nossa intranet. Para fazer isso, clique em Segurança de diretório, botão Editar... Desabilite a opção Acesso anônimo e selecione a opção Autenticação básica.
29
Cap1.indd 29
21/8/2006 13:42:36
Figura 1.13.
9. Clique em seguida na opção Autenticação do Windows integrada, para utilizar as senhas de usuários do Windows. Você também poderá criar um usuário padrão intranet em seu Windows, para que todos os usuários se conectem através dessa conta. Clique em OK e feche o console do IIS.
Testando a intranet Para acessar a sua intranet em outras máquinas, inicie o Internet Explorer e digite o endereço: http://endereço.de.ip.da.sua.máquina Se o IP não funcionar, você pode substituí-lo pelo nome da máquina: http://nome_da_máquina
30
Cap1.indd 30
21/8/2006 13:42:40
Capítulo 2 Linguagens da Web
Cap2.indd 31
21/8/2006 13:46:20
Inexistia para a Web, há dez anos, uma linguagem específica para a organização, quer lógica, quer artística, das informações que estavam agrupadas em um determinado local: o acesso de dados era possível, mas não o de informações ou páginas de informações relacionadas. Tecnicamente, para se construir uma página de informação, seja ela para a Web ou para um sistema operacional, por exemplo, é necessário estruturar o material que se quer transformar em informação, dando-lhe uma forma. Essa estruturação só é conseguida com a utilização de uma linguagem – conjunto de funções lógicas que definirão o formato que os dados terão ao serem transformados em um documento.
O Hipertexto e o browser Com a abertura de mais terminais Web e a popularização da Internet, tornou-se necessária a criação de uma linguagem que padronizasse as informações, tornando-as facilmente disponíveis a qualquer máquina, leve e sem necessidade de trabalhos extras por parte do usuário para sua utilização. Foi assim que nasceu o hipertexto, que foi a primeira linguagem da Web a permitir a criação de documentos legíveis de forma não seqüencial. O hipertexto, no entanto, era muito simples: constava somente de seções de texto formatado em blocos e links para a navegação entre os textos. A entrada do hipertexto no cenário da Web e sua expansão ocasionaram, nessa mesma época, a criação de uma interface mais intuitiva para o hipertexto. Foi então que se criou o Mosaic: o primeiro browser da história, e um dos grandes responsáveis pela disseminação da Internet.
Um hipertexto com muito mais recursos HTML é a sigla para o inglês Hyper Text Markup Language (Linguagem de Marcação de Hipertexto). O HTML é uma coleção de estilos que define os vários componentes de um documento Word
32
Cap2.indd 32
21/8/2006 13:46:59
Curso prático de criação de sites
Wide Web (como formatação, hiperlinks clicáveis, imagens gráficas, documentos multimídia e formulários). O HTML é uma linguagem que deveria servir como marcação de outra linguagem – o hipertexto. A verdade é que acabou sendo sua substituta: hoje em dia ninguém usa hipertexto puro, mesmo em terminais de acesso. O conteúdo de hipertexto é delimitado por uma instrução de início e outra de fim da ação: e essa, essencialmente, é a estrutura de um código-fonte HTML será interpretado, posteriormente, pelo browser, o qual se encarregará de interpretar os comandos ou tags, como são usualmente chamados. O códigofonte poderá ser digitado em qualquer editor de texto (muita gente fez sua primeira página Web no Bloco de Notas), bastando salvar o documento com a extensão *.htm ou *.html. Os programadores de HTML que não são designers e estão mais preocupados com a segurança preferem criar seus códigos da maneira descrita: linha por linha de texto. Os outros, é claro, preferem construir em Dreamweaver ou Front Page. Desde já vamos desfazer um equívoco: uma das principais acusações contra o HTML é alegar que ele não é uma linguagem de programação estruturada, e sim um conjunto de instruções de texto que são interpretadas pelo browser (aliás, isso por si só já bastaria para que fosse uma linguagem de programação). Engano: apesar dos comandos (tags) serem carregados pelo browser, possuem delimitadores completos inclusive para suas próprias instruções. Uma tag é delimitada por < >, apresentando a seguinte forma: TEXTO ou Os primeiros são tags aos pares e os segundos são tags individuais; quando um navegador carrega uma página, procura por esses comandos para executar a página – o browser não é responsável pela formatação, tamanho ou recursos da página, mas sim o código. Graças a esses e a outras tags, os documentos em HTML possuem as seguintes características:
33
Cap2.indd 33
21/8/2006 13:46:59
Formatação de documentos em vários estilos de letras, cores e tamanhos; Formatação de tabelas; Formatação de listas; Criação de mapas clicáveis, relacionados a hiperlinks; Formatação de formulários para auxílio no cadastramento em sites, compras, entre outros. Os pontos negativos do HTML são a falta de dinamismo gráfico nas páginas feitas com esse código, além dos banners animados que podem ser feitos com tags. Além disso, os documentos HTML têm um uso comercial e empresarial um tanto restrito, já que a filtragem de dados não pode ser feita de forma simples e direta nos próprios documentos, necessitando de bancos de dados específicos, como o Oracle ou o MySQL, o que torna a administração de sites comerciais cara e complicada.
Soluções de dados para o HTML, entre outras coisas – o Cold Fusion A solução para as deficiências do HTML em matéria de manipulação de dados viria com a criação do XML (Extensible Markup Language), uma linguagem baseada em tags textuais como o HTML, mas que permite a marcação, extração e manipulação de dados através do próprio documento .xml. Enquanto essa tecnologia não era disponibilizada, no entanto, várias empresas tentaram melhorar a análise e a disponibilidade de dados do HTML, principalmente em servidores comerciais ou servidores de dados localizados em empresas. Uma dessas empresas foi a Allaire, que criou, em 1995, um servidor de extração de dados em páginas HTML – o Cold Fusion – que depois seria vendido para a Macromedia. Os arquivos de Cold Fusion para extração e manipulação de dados utilizam a extensão .cfml (Cold Fusion Markup Language), verdadeira precursora do XML, com o diferencial de ser um for-
34
Cap2.indd 34
21/8/2006 13:46:59
Curso prático de criação de sites
mato proprietário – e, portanto, pago. Além disso, o Cold Fusion é um servidor de aplicações, suportando tráfegos de grande volume, inclusive de bancos de dados de outras empresas, como Oracle e Sybase, além de trazer suporte para o gerenciamento de aplicações em clusters (diversas máquinas processando o mesmo aplicativo ou as mesmas informações como se fossem uma única máquina). Ou seja, um documento dinâmico (ou Template) criado e armazenado em um servidor Cold Fusion é diferente de uma página HTML estática, pois pode publicar dados dinamicamente. Uma variável armazena dados que podem ser utilizados por aplicações. Como em outras linguagens de programação, você deve configurar variáveis para armazenar informações que serão acessadas mais tarde e pode referenciar uma gama de tipos de variáveis para manipular diferentes tipos de processamento. Veja a seguir quais são as variáveis mais utilizadas em um documento .cfml: Local: inicia e manipula manualmente os valores na página dinâmica; Query: armazena automaticamente dados obtidos de uma Query (ex.: SELECT * FROM Tabela); Form: armazena automaticamente e passa valores dos form controls (text-box, list-box ou combo-box); URL: configura e passa manualmente os valores de uma página para outra no final da url (ex.: Pag_Teste.cfm? Var=Valor&ID=2); HTTP: cookies. Configura manualmente e passa automaticamente valores de identificação entre o cliente e o servidor; CGI: fornece automaticamente detalhes do ambiente, disponíveis no HTTP Web server, durante a requisição do browser do cliente; Application: inicia manualmente com valores uma página .cfm da aplicação. Referencia manualmente valores de páginas específicas de outras aplicações.
35
Cap2.indd 35
21/8/2006 13:46:59
O Curl Outro padrão de linguagem criado mais ou menos na mesma época foi o Curl. Assim como o Cold Fusion, o Curl destaca-se por poder criar uma simples página com conteúdo estático, como o HTML, até uma loja virtual, com a conseqüente marcação e manipulação de dados e, principalmente, ambientes 3D totalmente revolucionários. Talvez seja essa última característica a grande vantagem dessa linguagem, a ponto de ela ser usada atualmente somente com esse propósito. Na época de seu lançamento colocava-se em evidência sobretudo a facilidade de assimilação dos comandos da linguagem, além de sua maior estruturação em relação ao (sempre injustiçado) HTML. As diferenças, todavia, eram bem poucas, o que acabou por enterrar a linguagem como uma potencial substituta do HTML (e o lançamento de ferramentas voltadas para o trabalho em HTML, como o Dreamweaver, deram um empurrão extra para que isso acontecesse). Assim como no HTML, o Curl também baseava sua capacidade de formatar a página em tags. Nele, contudo, os comandos são definidos entre chaves. Outra diferença está na declaração de alguns comandos. Em vez de se declarar, para fins de inserção de texto, o comando , deve-se trabalhar com os comandos text e paragraph, que respectivamente definem a aparência de um texto e a de um parágrafo. Confira, no box a seguir, os principais comandos de uma página ou aplicativo baseado em Curl.
title: título; heading e heading level=2: define cabeçalhos com nível um e dois de destaque; paragraph: cria um novo parágrafo; text: texto; center: texto exibido no centro da página; italic: texto exibido em itálico; bold: texto exibido em negrito;
36
Cap2.indd 36
21/8/2006 13:46:59
Curso prático de criação de sites
itemize e enumerate: inicia uma lista de itens com marcadores ou numeradores; item: acrescenta um item à lista de marcadores ou numerada com o texto item1; image source=url “imagem.jpg”: exibe uma imagem; hrule: linha horizontal; table: exibe uma tabela na página; row: insere uma linha na tabela; cell: inclui uma célula com o texto Primeira Célula.
Como você pode ver, os comandos do Curl são incluídos dentro de chaves. Se algum comando estiver posicionado ou fechado incorretamente, a página não será processada. Por exemplo, para exibir uma tabela, o correto é digitar o código: { {table row cell celula} } e não {table row cellcelula} O Curl Surge Lab IDE pode ser adquirido no site www.curl.com, menu Products, link Surge Lab Integrated Development Environment (IDE). Sua utilização para programadores e estudantes é gratuita, mas existe um contrato de utilização por volume de dados de no mínimo 50 dólares.
37
Cap2.indd 37
21/8/2006 13:46:59
Algo realmente diferente: o ASP A Microsoft não poderia ficar de fora na busca de uma nova linguagem que desse maior riqueza ao HTML, principalmente depois do estrondoso sucesso do Windows NT como servidor de redes e de Internet e do crescimento do seu browser, o Internet Explorer, sobre o seu concorrente Netscape. E mostrou toda a sua força criando uma linguagem de programação que, ainda hoje, é padrão para muitos setores da Internet: o ASP. ASP é a sigla para Active Server Pages (Servidor de Páginas Dinâmicas). Trata-se de uma linguagem para desenvolvimento de páginas HTML dinâmicas que mesclou duas linguagens que ganhavam terreno na Web e em aplicações de rede: o JScript (Java Script) e o VBScript. O ASP, assim como as linguagens abordadas anteriormente, foi criado também para possibilitar uma manipulação de dados mais completa, impossível no HTML. É uma linguagem para Web criada pela Microsoft, assim como o IIS, e seu objetivo é permitir a criação de páginas e aplicações que, de alguma forma, permitam interação com o usuário. Ele funciona da seguinte maneira: sempre que há a requisição de uma página .asp, o servidor interpreta os comandos que estão entre tags (sempre as tags!) e mantém as instruções de outras linguagens, enviando, em seguida, o resultado ao browser. Esse processo faz com que o carregamento de páginas em ASP seja consideravelmente mais rápido do que o de páginas construídas de forma híbrida (HTML e Java, por exemplo) sem o suporte do ASP. A partir de um Windows NT Server com o IIS3 ou IIS4 (Internet Information Server) instalado, é possível rodar códigos que geram páginas HTML dinamicamente, e então mandá-las para o browser. Também é possível, a partir de uma única rotina, gerar uma página HTML contendo consultas a banco de dados e envio e recebimento de correio eletrônico, via páginas HTML, para criação de rotinas de propaganda rotativa, para identificação e autenticação de usuários, para leitura de arquivos texto e uma infinidade de outras aplicações.
38
Cap2.indd 38
21/8/2006 13:46:59
Curso prático de criação de sites
Isso tudo ocorre sem que o usuário consiga perceber que informações são processadas, já que o ASP baseia seu funcionamento em três camadas: a) A primeira interface é a do usuário, que acessará apenas a página de código HTML, em sua máquina cliente, via browser. Aqui não há processamento pesado, existe somente captação e exibição de dados; b) Na segunda camada temos as chamadas regras de negócio, ou seja, as que buscarão informações correlatas no código-fonte da aplicação, em que estão todas as condições da aplicação. Essa etapa ocorre no âmbito dos servidores da aplicação. c) A terceira camada corresponde ao banco de dados; é aqui que ocorrem todas as atualizações de dados efetivadas, com inclusões, alterações, exclusões. O ASP é utilizado na primeira camada para enviar dados para a segunda, e recebe dados da segunda para serem exibidos na primeira. Para quem tem conhecimento em Visual Basic, o ASP é uma questão de adaptação. Para quem já tem noção de lógica de programação, basta aprender alguns comandos e começar a desenvolver alguns sistemas em ASP.
E o .net? Após acertar com o ASP que, durante um bom tempo, foi um exemplo de linguagem bem estruturada e com suporte a bancos de dados mais do que um componente, a Microsoft, preocupada com o desenvolvimento de linguagens voltadas para a criação de clientes .rich (clientes com recursos mais robustos, como por exemplo a utilização interativa de aplicativos localizados no servidor, feitos principalmente pela Macromedia, como o Flash e o mais recente Studio MX), resolveu criar a plataforma .net.
39
Cap2.indd 39
21/8/2006 13:47:00
E assim, há cerca de dois anos ouvimos a Microsoft bradar aos quatro cantos do mundo uma espécie de sigla chamada .net (lê-se dotnet) que, segundo a própria, promete revolucionar o mundo das páginas dinâmicas de dados. A plataforma .net constitui-se de uma série de programas para a criação dessa tecnologia e um modelo de programação e ferramentas que permitem mais integração entre documentos .xml e a Web. Além disso, a .net deverá integrar-se com o novo sistema operacional Microsoft voltado para o mercado corporativo, o Windows .net e a diversas soluções de servidores e bancos de dados concorrentes, inclusive algumas Open Source, como o Apache. Isso quer dizer que todos os produtos e serviços criados com essa tecnologia passarão invisíveis aos olhos do usuário, que sentirá toda a força do .net sem sequer desconfiar que faz uso dessa misteriosa sigla. A funcionalidade de recursos básicos da Web, como HTML e páginas gráficas de conteúdo dinâmico, permanecerá inalterada. Já a criação de aplicações complexas para o uso de clientes terá muito a ganhar com o .net, que trará recursos de linguagens consagradas como o ASP, o C e o Visual Basic para o mundo da Internet e dos clientes .rich.
Mais sobre ASP Se você optou por trabalhar com o IIS, mas quer construir páginas dinâmicas antes mesmo de trabalhar com arquivos HTML, então terá de trabalhar com o ASP. Todo arquivo feito em ASP tem extensão .asp. Esse arquivo possui código em HTML e scripts que contêm as instruções que geram algum tipo de interatividade com o usuário. Cadastrar-se em um site, comprar em um site de comércio, ver data e hora atuais, receber e mandar e-mails são exemplos de interações que o ASP pode proporcionar. O ASP também permite o acesso a banco de dados que suportam objetos específicos para utilização de bancos de dados, como ODBC (Open Data Base Connectivity) e o acesso por ADO (Active Data Objects).
40
Cap2.indd 40
21/8/2006 13:47:00
Curso prático de criação de sites
As páginas em ASP, os scripts ou os serviços requeridos não são executados no computador de quem acessa essas páginas – por isso dizemos que a execução ocorre no âmbito do servidor e não do cliente. Ao acessar uma página desse tipo, o servidor que a hospeda deverá ter suporte para o ASP, processar as solicitações presentes na página e “entregar” o resultado no navegador do usuário, em formato HTML. Para que o servidor possa processar as requisições e entregar o resultado ao visitante da página, é necessário que nele esteja instalado o IIS (Internet Information Server) ou outro programa servidor capaz de processar páginas em linguagem ASP.
O que a linguagem ASP oferece A linguagem ASP possui várias vantagens: Independência do navegador: qualquer navegador de Internet, em qualquer sistema operacional, pode acessar sites em ASP, pois todo o processamento de informações é feito no servidor e somente os resultados são mostrados ao usuário; Código-fonte protegido: os visitantes de sites em ASP enxergam somente os resultados do processamento em páginas HTML, o que impede que o código-fonte seja visualizado; Banco de dados: a linguagem ASP funciona muito bem para visualizar e manipular informações em bancos de dados que suportam OBDC.
Exemplo de uma página em ASP Agora que você já sabe como as páginas em ASP são processadas, veremos um exemplo bastante simples, que mostra por que é interessante usar ASP em vez de simples páginas HTML – o que não livrará você, contudo, de ter de trabalhar com conceitos dessa linguagem no próximo capítulo. Vamos criar uma página em ASP,
41
Cap2.indd 41
21/8/2006 13:47:00
salvá-la, executá-la e, em seguida, veremos os resultados. O código para a página é mostrado a seguir: Exemplo de pagina em ASP Olá visitante! A hora atual é e estamos no dia Serviço informativo! Cortesia Digerati Books Note que: Ao utilizar a expressão definimos que estamos criando um script que será executado toda vez que a página for acessada; Iniciamos uma página em ASP sempre definindo o início (também chamado de bordas ou rebarbas) de uma página HTML. O HTML será o veículo utilizado para o encapsular do código ASP; é utilizado para especificar quantas vezes determinada parte do script será executada de forma contínua. 1 to 3 informa ao browser que o código deverá ser relido três vezes – se indicássemos a expressão como , esta seria repetida cinco vezes na mesma tela;
42
Cap2.indd 42
21/8/2006 13:47:00
Curso prático de criação de sites
retorna a hora atual do sistema do usuário no navegador; A expressão retorna a data do dia, seguindo as configurações do relógio do Windows ou de qualquer outro aplicativo de data e hora instalado na máquina cliente; Comandos do ASP devem sempre ser executados entre sinais de porcentagem (%). Salvando a página anterior em formato ASP (teste.asp) utilizando o Notepad, basta executá-la no browser e o resultado será mostrado na tela. Agora, um detalhe interessante: como já foi dito antes, o usuário que visita um site em ASP não pode ver o código-fonte, somente o resultado do processamento das páginas em ASP. Assim, se o usuário quiser ver o código da página ASP do exemplo anterior, verá apenas o seguinte código em HTML: Exemplo de página em ASP Olá visitante! A hora atual é 18:28:30 e estamos no dia 1 Digerati Books Digerati Books Digerati Books
43
Cap2.indd 43
21/8/2006 13:47:01
Variáveis Ao utilizar o ASP, trabalhamos com a noção de variáveis, que são utilizadas para definir possíveis caminhos para um comando. Quanto mais variáveis são definidas em um bloco, mais temos opções que podem ser aplicadas sobre esse mesmo comando. Comandos funcionais, mas com uma única variável, são tratados como possuidores de resultados estáticos. A ausência de variáveis também define que um comando é estático. Para criar uma variável simples no ASP utilizamos o sinal Exemplo de PHP Parte de HTML normal. # Aqui começa o codigo PHP, que sempre começa pela inclusao de ? e abertura de aspas
55
Cap3.indd 55
21/8/2006 13:58:30
Nesta página, o código HTML faz com que um mesmo processo seja repetido entre a linha 0 e 9, retornando a numeração em que a linha foi inscrita em cada execução do código. O resultado prático pode ser visto com a inserção do código no bloco de notas do Windows ou em qualquer outro editor de texto que não crie formatação (não use o Word) salvando o arquivo sob o formato .php.
Variáveis Até aqui mostramos somente o funcionamento de um arquivo PHP em uma página HTML. Agora entraremos mais a fundo no funcionamento de um código PHP, estudando as variáveis. Uma variável é um bloco que contém determinada informação, que pode ser substituída à vontade por números inteiros, números decimais ou caracteres. O conteúdo das variáveis pode ser substituído a qualquer momento. No PHP, todas as programações de variáveis começam com o cifrão ($) e não é necessário definir uma variável antes de utilizá-la nem definir um tipo para ela: uma variável pode tanto conter números quanto caracteres, assim como pode conter ambos simultaneamente. Observe como no código seguinte aparece novamente inserida no meio de uma página HTML: Inserção de variáveis em PHP
56
Cap3.indd 56
21/8/2006 13:58:30
Curso prático de criação de sites
No exemplo anterior, definimos três variáveis: $a, $b y $c. Em seguida, com o comando echo definimos que o valor contido nessas variáveis deve ser impresso na página HTML, em linhas separadas.
Operadores aritméticos As variáveis nos auxiliam a automatizar alguns processos, entre eles algumas funções de cálculo, que podem ser criadas com operadores aritméticos. Os operadores aritméticos do PHP são bem intuitivos, bastando ter aprendido o que foi ensinado sobre variáveis e acompanhar a tabela de operadores seguinte para ser capaz de realizar códigos:
Operador
Nome
Exemplo
Descrição
+
Soma
5+6
Soma dois ou mais números
-
Subtração
7-9
Restam dois ou mais números
*
Multiplicação
6*3
Multiplica dois ou mais números
/
Divisão
4/8
Divide dois ou mais números
%
Módulo
7%2
Devolve o resto da divisão dos números enunciados. Nesse exemplo, o resultado é um.
++
Soma um
$a++
Soma um ao conteúdo de uma variável.
--
Subtrai um
$a--
Subtrai um ao conteúdo de uma variável.
57
Cap3.indd 57
21/8/2006 13:58:31
Esses operadores aritméticos, inseridos em um contexto de código HTML, poderiam ser utilizados da seguinte maneira: Operadores aritméticos Confira o exemplo de criação booleana criado a seguir: Operadores de comparaçao aritmetica [doc. php] if ( $a == $b ) => IMPORTANTE!!! Não faça: if ( $a = $b ) if ( $a $b ) => Equivalente a montagem: if ( $a != $b ) if ( $a > $b ) if ( $a < $b ) if ( $a >= $b ) if ( $a Mais uma variação: em vez de inserir comentários dentro do código, iremos mesclar tags (etiquetas) HTML com código PHP. Ter conhecimentos dessa técnica é essencial para gerar sites propriamente ditos, e não páginas HTML com pequenas inserções de PHP: “Hello World” (IV) Combinaçao de tags (etiquetas) HTML e codigo PHP PHP – Hello World
60
Cap3.indd 60
21/8/2006 13:58:31
Curso prático de criação de sites
“Hello World” (IV-b) Inserindo tags HTML dentro de um script PHP PHP – Hello World A relação contrária é perfeitamente possível – o PHP é mesmo uma massa de modelar perfeita – como vemos no exemplo seguinte, em que inserimos as tags HTML em um código PHP: “Hello World” – Exemplo realizado somente com PHP! Inserir TODAS as tags HTML em um script PHP
(“”); (“”); (“ PHP – Hello World”); (“ ”); (“ ”); (“ Hello World!”); (“ ”); (“”);
61
Cap3.indd 61
21/8/2006 13:58:31
Um exercício simples Agora vamos montar um exercício simples: um programa em PHP que escreva seu nome em negrito e a cidade onde você nasceu.
Um outro exercício Vamos fazer um programa em PHP que escreva o resultado da soma de duas variáveis com os valores: x=-1 , y=9.
Trabalho rápido com tags HTML dentro de PHP: mais um exercício O problema das aspas duplas (“) Solução 1: substituir “ por ‘ dentro das TAGS HTML Solução 2: substituir “ por \” dentro das tags HTML Solução 3: Trabalhar com CSS, para evitar colocar parte do “desenho” dentro do código HTML
Sentenças condicionais Por meio dos comandos condicionais temos a oportunidade de avaliar uma expressão e, dependendo do resultado, retornar valores específicos para eles. Veja os exemplos seguintes: Trabalhando com esses exemplos teremos a frase: o valor é igual a 10 porque o valor da variável $valor é igual à passada no elseif. Ao montar uma estrutura com comandos variáveis, lembre-se de que: O if sempre abre as condições; O elseif é sempre o seguinte do if e é somado para cada opção; O else final é sempre escolhido se nenhum dos resultados no if ou elseif forem obtidos. No exemplo a seguir, criamos um aplicativo que retorna o valor negativo ou positivo de um pequeno estoque, de acordo com a quantidade declarada. Comandos condicionais: if [doc. php] if ( $quantidade < 0 ) { print(“Error:: A quantidade é negativa!”); } elseif ( $quantidade < 10 ) { print(“A quantidade pedida é menor que 10”); } else { print(“A quantidade mostrada é: $quantidade”); }
64
Cap3.indd 64
21/8/2006 13:58:31
Curso prático de criação de sites
Estruturas de controle Agora vamos demonstrar os tipos de estruturas de controle e repetição que existem no PHP. Essas estruturas são as engrenagens do PHP: é por meio delas que o programa se torna capaz de criar sistemas dinâmicos dentro do código. if/else – subtítulo2 A estrutura if/else, como na maioria das linguagens, é a mais utilizada, e no PHP não seria diferente. Nesse exemplo, se a variável $var1 for maior que a variável $var2, será impresso na tela var1 é maior que var2, caso contrário (if) será impresso var1 não é maior que var2. O primeiro exemplo poderia ser reescrito de uma maneira alternativa, como mostra o trecho seguinte: No exemplo anterior utilIzamos uma maneira alternativa de escrita da estrutura. Nesse caso, se a variável $variável for igual a 1, será impresso variável = 1, se a variável for igual a 4, então será impresso variável = 4, senão se $variável for igual a teste, então o script terá como saída o texto teste. No caso de nenhuma dessas condições serem verdadeiras (true), será impresso na tela erro!.
Switch A estrutura de controle switch se comporta como se colocássemos vários if seguidos no mesmo código. Muitas vezes o programador tem de comparar a mesma variável com alguns valores diferentes, e é aí que entra a estrutura switch. Utilizarei o exemplo anterior para demonstrar como é feita a implementação do switch case, como também é conhecido. Nesse caso a variável será testada com os valores 1, 4 e teste. Como não foi definido um default (valor padrão), se nenhuma das
66
Cap3.indd 66
21/8/2006 13:58:31
Curso prático de criação de sites
condições forem verdadeiras, o script não terá nenhum retorno. Vamos ver um exemplo com default:
0!!”;
4!!”;
teste!!”;
não é igual a 0, 4 ou Rodri-
Nesse caso, mesmo que todas as condições sejam false, o script irá executar o trecho de código que está no default.
While e suas variações A estrutura while é uma das mais simples estruturas de repetição e seu comportamento é idêntico ao das estruturas while em outras linguagens, como C, por exemplo. Sua sintaxe padrão é: while (expressão) instruções Essa instrução é executada enquanto a expressão de controle for true. Esse teste é feito no começo do loop e, assim sendo, se o resultado da primeira verificação for false, as instruções não são executadas nem uma vez.
67
Cap3.indd 67
21/8/2006 13:58:32
O exemplo a seguir cria um script que imprime na tela os números de 0 a 10. Quando a variável $i alcança o valor 11, ao ser testada será constatado que ela não é nem menor nem igual a 10, portanto retorna false, não executando o código dentro do loop.
Do... while A estrutura do... while é quase idêntica à estrutura while, com a diferença que o teste da variável é feito no final da estrutura, ou seja, o código é executado pelo menos uma vez. Veja o exemplo seguinte:
68
Cap3.indd 68
21/8/2006 13:58:32
Curso prático de criação de sites
Nele vemos que a variável $i seria impressa ao menos uma vez mesmo que o resultado da verificação fosse false. Após a impressão, o código não volta a ser executado. Para entendermos melhor, vamos dar uma olhada em mais um exemplo: Nesse exemplo, temos a mesma estrutura do exemplo anterior. O único diferencial fica por conta de um teste na variável de controle de repetição. Se (if) o resultado do mesmo for true, será impressa a mensagem i é maior que 10 enquanto i for maior que 10, conforme a condição do laço de repetição.
For O for é a estrutura de repetição mais complexa que existe no PHP, como em quase todas as linguagens de programação. Sua sintaxe é: for (expr1; expr2; expr3) instruçoes A primeira instrução é executada incondicionalmente no começo do loop. A segunda é executada ao se retornar o valor true (verdadeiro). Os comandos são executados, caso seja false o loop para sua execução. No final de cada loop, a terceira expressão é executada e são refeitos os testes anteriores. Agora observe a seguinte implementação: Esse script imprime números de 0 até 100, de acordo com a segunda expressão do for ($i
Comando break O comando break interrompe (daí seu nome) a execução de estruturas como o for, while, do...while e switch. Esse comando aceita um valor numérico como parâmetro, em que podemos definir em que nível queremos interromper a execução. Veja o exemplo seguinte:
Tipos de dados estruturados (simples): Array (vetor ou matriz) Observe o exemplo a seguir: $produtos[0] = “Açúcar”; $produtos[1] = “Azeite”; $produtos[2] = “Arroz”; Array (vetor) $produtos Os valores 0, 1 e 2 são os índices do array. Um array no PHP é um tipo de mapa ordenado. Um mapa é um tipo que relaciona valores para chaves. “Açúcar”, “Azeite” e “Arroz” são os valores que contêm o array. O vetor contém três posições, mas se indexa de 0 a 2 (!). Outra possibilidade: podemos fazer a inicialização do script a partir do array $produtos. Veja no exemplo a seguir: $produtos = array(“Açúcar”, “Azeite”, “Arroz”); ^ ^ ^ [ 0 ] [ 1 ] [ 2 ]
71
Cap3.indd 71
21/8/2006 13:58:33
Utilizando o comando for podemos mostrar o conteúdo do array $produtos (for). Veja essa nova implementação no exemplo: for ($i=0; $i
74
Cap3.indd 74
21/8/2006 13:58:33
Curso prático de criação de sites
Para chamar a rotina email.php, necessitamos de uma outra rotina. Essa rotina se chamará contato.php e nela utilizaremos a forma email. contato.php … Nome: Telefone:
75
Cap3.indd 75
21/8/2006 13:58:33
email:
76
Cap3.indd 76
21/8/2006 13:58:33
Curso prático de criação de sites
Mensagem:
77
Cap3.indd 77
21/8/2006 13:58:33
...
Projeto de Livro de Endereços Quer mais um exemplo? Vamos criar, então, utilizando apenas HTML e PHP, um formulário que se transforma em um livro de endereços (livro de ouro) ou livro de presença para os assinantes do site. Basta seguir o código para implementar o formulário, mas você deve possuir um banco de dados MySQL (ou SQL Server, se for o caso) para que as informações sejam enviadas para um banco de dados. Meu Livro de Contatos
79
Cap3.indd 79
21/8/2006 13:58:33
} --> ”> Assine meu Livro de Contatos! messages : ”>
80
Cap3.indd 80
21/8/2006 13:58:34
Curso prático de criação de sites
de (, ) email. length)||(point < arobase+3)) return false return true } function testform(nom,mail,url,city,country,comment) { if(nom.value==””) { nom.focus();return false } if(!verif(mail.value)) { mail.value=””;mail. focus();return false } if(url.value==”http://”) { url.value=”” } if(city.value==””) { city.focus();return false } if(country.value==””) { country.focus();return false } if(comment.value==””) { comment.focus();return false } return true } //--> ”> Nome Cidade País E-mail Site Cabeçalho
82
Cap3.indd 82
21/8/2006 13:58:34
Capítulo 4 SQL e MySQL
Cap4.indd 83
21/8/2006 13:59:50
Uma das principais utilidades das páginas dinâmicas é, além da aparência de interação com o usuário, permitir que dados enviados por ele ou processados pelo servidor durante uma sessão Web sejam armazenados para posterior verificação por parte dos administradores de sistemas ou pessoal das vendas. Existem até algumas empresas que oferecem o serviço de garimpagem dos dados enviados por usuários e armazenados em bancos de dados, tal a quantidade e diversidade de informações e oportunidades que podem ser obtidas através desse expediente – principalmente para empresas de mala direta, marketing direto e lojas virtuais. Afinal, imagine que você é um aficionado por chocolate suíço branco que sempre entra em diversas páginas procurando por ofertas desse produto e que, justamente uma das páginas que você visitou recentemente possuía um formulário do tipo “Escolha sua marca preferida”, acompanhado de um campo para adicionar seu e-mail para ganhar prêmios. Esse formulário provavelmente está ligado a um banco de dados, que guardará seu e-mail e o dia em que você se inscreveu na promoção, quantas vezes você entrou na página (é para isso que existem os cookies) e sua marca de chocolate preferida. Bancos de dados não são novidade: desde os tempos dos mainframes com cartões perfurados já existem sistemas de contagem de bancos de dados. Para os usuários do Microsoft Windows e de seu servidor Web, o IIS, a melhor opção é o SQL – um poderoso banco de dados online, desenvolvido por uma pequena empresa e comprado em definitivo pela Microsoft em 1998. O SQL utiliza strings, como linguagem de programação baseada em scripts, para fazer a garimpagem e retirada de dados enviados pelos clientes. Esses scripts podem ser inseridos no corpo de páginas ASP, JAVA ou PHP sem afetar a utilização da página por parte do usuário.
Instalação do SQL Server Para utilizar o Microsoft SQL em um site você precisará do inefável Bloco de Notas para inserção dos scripts, e de uma máquina
84
Cap4.indd 84
21/8/2006 14:00:29
Curso prático de criação de sites
rodando o SQL Server – o sistema de banco de dados em si – para que as requisições produzidas pelos scripts sejam enviadas. Os requisitos mínimos para a instalação do SQL Server são (nesses testes utilizamos a versão 2000): Pentium II, 256 MB de RAM, HD de 4 GB; Conexão com a Internet ou com uma rede interna; Windows NT 4.0 Server com Service Pack 5, Windows 2000 Server com Service Pack 2 ou Windows XP com Service Pack 1. 1. Insira o CD do Microsoft SQL Server 2000 Enterprise Edition e clique no arquivo Setup.bat. O diálogo de instalação do Microsoft SQL Server 2000 Enterprise Edition é iniciado. 2. No diálogo Nome do Computador, clique em Computador Local e em Avançar. 3. No diálogo Seleção de Instalação, clique em Criar uma nova instância do SQL Server. Se você já instalou um servidor SQL e deseja apenas instalar uma estação de trabalho para manipulação do banco de dados, clique em Instalar Ferramentas do Cliente e, em seguida, em Avançar. 4. No diálogo Defi nição de Instalação, clique em Ferramentas do Cliente e Servidor e, em seguida, em Avançar. No diálogo Nome da Instância, deixe Padrão marcado e clique em Avançar. 5. No diálogo Tipo de Instalação, clique em Personalizada; clique no botão Procurar e utilize uma partição diversa da utilizada pelo sistema operacional. O ideal mesmo seria utilizar um disco rígido em separado, mas sabemos que isso nem sempre é possível. Se você utilizar a partição E, por exemplo, seu diretório passará a se chamar E:\MYSQL.
85
Cap4.indd 85
21/8/2006 14:00:29
6. No diálogo Selecionar Componentes, aceite todos os componentes e subcomponentes padrão. Clique em Avançar. 7. Na janela Contas de Serviços, mantenha o valor padrão (utilizar a mesma conta para cada serviço). Em seguida, clique em Iniciar automaticamente o Serviço SQL Server. Para as Definições de Serviço, clique em Utilizar a Conta do Sistema Local. Clique em Avançar. 8. Em Permissões de Acesso Padrão, sob Permissões de Ativação Padrão e sob Permissões de Configuração Padrão, clique em Editar Padrão para definir as permissões padrão. 9. Na caixa Tipo de Acesso, selecione um tipo de acesso para o usuário ou grupo selecionado. No diálogo Modo de Autenticação, clique em Autenticação SQL e Autenticação Windows em Modo Misto e digite uma senha para o SQL. 10. No diálogo Definições de Intercalação, clique em Designador de Intercalação e selecione Latin1_General. Selecione Binário como Ordem de Classificação e clique em Avançar. No diálogo Bibliotecas de Rede, aceite os valores padrão para Canais Nomeados, Nome do Canal Nomeado e Sockets TCP/IP. 11. Quando o diálogo Iniciar Cópia de Arquivos for aberto, clique em Avançar para continuar a instalação do servidor de banco de dados. Se você desejar alterar quaisquer parâmetros, clique em Voltar. 12. No diálogo Escolher Modo de Licenciamento, clique em Licença do Processador para. Digite o número de processadores necessários para sua máquina – normalmente você utilizará um único processador. Clique em Continuar e conclua a instalação.
86
Cap4.indd 86
21/8/2006 14:00:30
Curso prático de criação de sites
Criação de uma tabela SQL Após a instalação, vamos iniciar a construção de nosso banco de dados SQL. Vamos, ao mesmo tempo, criar uma tabela que armazene todos os logins feitos em nossa página ASP. Basta abrir a página e abrir uma nova entrada do código no meio do código HTML, como: Para executar o código basta abrir o seu browser e introduzir a URL www.meu site.com.br/New_Table.asp.
Criação de usuários Criada nossa base de dados SQL, provavelmente desejaremos inserir alguns usuários no sistema. Para isso digite: CREATE USER nome _ do _ usuário [ [ WITH ] opção [ ... ] ] em que a opção pode ser: PASSWORD (digite uma senha para o usuário) IN GROUP nome _ do _ grupo do usuário – se não houver nenhum, digite o comando CREATE GROUP VALID UNTIL ‘data _ hora’
87
Cap4.indd 87
21/8/2006 14:00:30
Oferecendo privilégios a um usuário Para atribuir todos os privilégios de bancos de dados a um novo usuário, digite: GRANT ALL PRIVILEGES ON meuBD.* TO usuario@localhost IDENTIFIED BY ‘hello’ WITH GRANT OPTION; FLUSH PRIVILEGES; Esse comando atribui todos os privilégios a todas as tabelas do banco de dados meuBD ao usuário, a partir da máquina localhost, cuja senha é hello. O comando flush privileges atualiza as novas alterações na tabela SQL em uso. Caso o usuário não exista, um novo usuário será criado.
Funções de data e hora Após criar uma base de dados e utilizar consultas, por exemplo, como as mostradas, pode ser necessário executar uma filtragem dos dados armazenados. Afinal de contas, bancos de dados servem para que os dados inscritos neles sejam utilizados. Podemos fazer uma seleção, a partir da interface do cliente do SQL, utilizando o seguinte comando: SELECT * FROM table WHERE MONTH(data)=’05’; Em que ‘05’ seleciona todos os registros da tabela em que o campo data possui uma data localizada no mês de maio. Também podemos utilizar o seguinte comando: SELECT DISTINCT DAYOFMONTH(data),MONTH(data),YEAR(data); Esse comando seleciona o dia do mês, mês e ano localizados na tabela. Basta inserir os respectivos dados, na forma de números – 01 a 30 para dias; 01 a 12 para meses, números de quatro dígitos para anos – nas respectivas strings.
88
Cap4.indd 88
21/8/2006 14:00:30
Curso prático de criação de sites
Importando e exportando arquivos Mas nem só de consulta vive a administração de bancos de dados SQL. Alguns bancos e tabelas particulares costumam inchar tanto que se torna necessário migrar os dados para o formato texto e esvaziar a tabela original. Nesse caso, podemos utilizar o comando: LOAD DATA INFILE ‘data.txt’ INTO TABLE tbl _ name FIELDS TERMINATED BY ‘,’ ENCLOSED BY ‘”’ LINES TERMINATED BY ‘\n’; que carrega os registros em formato .txt do arquivo data.txt para a tabela tbl_name, em que os campos estão separados por ‘,’ (vírgula), delimitados por “ “ (aspas) e as linhas delimitadas por ‘\n’ (quebra de linha). Para selecionar todas as ocorrências encontradas na tabela e levá-las ao arquivo .txt, podemos utilizar o comando: SELECT * INTO OUTFILE ‘eu.txt’ FROM table; Não precisamos, necessariamente, apelar para um arquivo .txt; podemos fazer um backup da tabela original em uma nova tabela. Basta digitar em Cliente do SQL: INSERT INTO table1 (nome) SELECT nome FROM table2 Não é necessário criar a tabela previamente – ela é criada no instante em que é solicitada uma cópia de tabela preexistente tendo-a como arquivo de saída.
O Comando JOIN Às vezes, os dados que necessitamos estão dispostos em mais de uma tabela. Nesses casos usa-se o comando join, que utiliza campos de dados em comum para unir mais de uma tabela.
89
Cap4.indd 89
21/8/2006 14:00:30
Suponhamos, por exemplo, possuirmos uma tabela com a listagem de e-mails e outra de contra-senhas – a segunda possui todas as senhas de compra que devem ser fornecidas a cada usuário todas as vezes que ele inserir a conta de e-mail em um formulário. Essa lista pode utilizar o seguinte código: USE testesenha; SELECT e-mails.nome,contrasenha.resposta FROM emails,contrasenhas WHERE e-mails.contrasenhas = emails.contrasenhas; Pode-se também usar o join de forma implícita, utilizando a cláusula de condição where para mostrar tão-somente campos em que os registros sejam correspondentes. O código seria: USE testsenha; SELECT e-mails.nome,contrasenha.resposta FROM e-mails INNER JOIN contrasenhas ON e-mails.contrasenha = emails.contrasenha; Existem mais algumas variações de join que podem ser utilizadas. Em left join, os registros da primeira tabela são exibidos – right join faz o mesmo com a segunda tabela.
Aliases e contagem Um recurso que torna a criação de um código SQL mais rápida são os aliases ou apelidos dados a uma determinada tabela ou função. Basta colocar o alias desejado em frente aos nomes dos campos na cláusula select e depois dos nomes das tabelas from. Veja o código: USE testesenha; SELECT f.e-mail FROM contrasenhas f, contrasenhas d WHERE d.contrasenhas = f.contrasenhas AND d.resposta = ‘Recebido’;
90
Cap4.indd 90
21/8/2006 14:00:30
Curso prático de criação de sites
Note no código anterior que, após a implementação do alias, podemos, em vez de digitar contrasenha.resposta, digitar simplesmente d.descricao. Com o comando group by, por sua vez, podemos utilizar algumas das novas utilidades trazidas pelo comando alias. Utilizando group by ainda é possível fazer vários tipos de estatísticas e contagens – o que é muito útil para fazer a contabilidade de acessos e sucessos de um website. Se você possuir um servidor de e-mails em uma rede interna e desejar conhecer as contas de e-mails dos funcionários de cada departamento, por exemplo, pode usar o seguinte código: USE servidorl; SELECT d.conta departamento, CONT(f.e-mail) total FROM e-mails f, departamentos d WHERE d.departamento = f.departamento GROUP BY f.departamento Você também pode utilizar o comando sum: USE servidor; SELECT d.conta departamento, CONT(f.e-mail) total FROM e-mails f, departamentos d WHERE d.departamento = f.departamento SUM f.departamento que soma os resultados agrupados de todos os departamentos. Também podemos utilizar o comando select, como neste caso, em que ele retorna todos os e-mails, localizados na tabela e-mails, que pertençam ao provedor Hotmail: select e-mail, rg from E-MAILS where provedor = hotmail;
O MySQL Para quem não quer (ou não pode) gastar dinheiro, ou ainda se utiliza de um servidor rodando GNU/Linux e Apache, existe a pos-
91
Cap4.indd 91
21/8/2006 14:00:31
sibilidade de utilizar o MySQL, uma ferramenta livre de bases de dados, que é para o PHP o que MS-SQL é para o Windows e o IIS. A instalação do MySQL é simples, desde que você possua os pacotes corretos: mysql-server-(versão do pacote), mysql-client(versão do pacote), mysql-doc-(versão do pacote). Existe também uma versão para Windows, que pode ser configurada com o auxílio de arquivos texto. Os pacotes podem ser obtidos em http://www. mysql.com, assim como executáveis para Windows. 1. Para fazer a instalação no GNU/Linux usando a linha de comando, digite: ./configure --prefix=/opt/mysql-4.0.20 make make install 2. Em seguida, altere a senha de administrador do programa: /opt/mysql-4.0.20/bin/mysqladmin -u root password ‘nova _ senha’ /opt/mysql-4.0.20/bin/mysql –u root –p 3. Será pedida a senha que acabamos de cadastrar. Agora você estará em um prompt do MySQL como mostrado a seguir: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 1 to server version: 4.0.2 Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer. mysql>
92
Cap4.indd 92
21/8/2006 14:00:31
Curso prático de criação de sites
4. Precisamos selecionar o banco de dados principal, em que ficam cadastradas as contas do usuários para o acesso. Para isso, basta digitar: mysql> use mysql e surgirá a mensagem: Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed Feita a instalação básica, vamos implementar o acesso a um banco de dados MySQL usando um servidor PHP. Essa implementação, em relação aos fatores tempo gasto e simplicidade, é muito superior à implementação análoga usando o Microsoft SQL e o IIS.