Programando em PHP www.guilhermepontes.eti.br lgapontes@gmail.com Conceitos Básicos Todo o escopo deste estudo estará voltado para a criação de sites com o uso dos diversos recursos de programação web hoje existentes, mas com o foco sobre o script PHP. Primeiramente deve se ter os conceitos sobre o funcionamento de sistemas em três camadas: camada cliente, camada de regras do negócio e camada e a camada de banco de dados. Camada Cliente: Esta camada, também conhecida como Client Side Scripts, é formada pela interface com o cliente (usuário) do sistema. Existem diversos recursos que podem ser trabalhados na camada cliente (ou seja, que executam o computador do cliente final), descritos a seguir. Camada das Regras do Negócio: Armazenará todos os arquivos referentes a execução no servidor. Nesta camada em que é executado o PHP. Ele, na verdade, monta dinamicamente um página HTML de acordo com a requisição do cliente. Todos os aplicativos que funcionam nesta camada são processados no servidor. Geralmente denominamos como Server Side Scripts todos os itens dispostos nesta camada.
Camada de Banco de Dados: Responsável pelo armazenamento de todos os dados pertinentes ao sistema. Pode ou não estar sendo gerenciado pela mesma máquina do servidor HTTP (camada das regras do negócio), mas geralmente, fica disponível em outro computador onde roda o Sistema Gerenciador de Banco de Dados (SGBD). A relação abaixo mostra os ferramentas estudas neste curso. Client Side Scripts Server Side Scripts SGBD HTML Javascript CSS (Cascade Style Sheets) PHP MySQL Durante o decorrer do curso, abordaremos com detalhes os recursos oferecidos por cada um destes componentes. Devemos inicialmente entender a importância de cada um deles. Para reforçar este conceito, imagine o seguinte exemplo: Um computador cliente no Brasil (que marca em seu relógio 10:20) acessa um servidor web na França (que marca a hora 12:50). Se o site visitado pelo cliente conter um código Javascript para indicar a hora atual, qual hora será mostrada? Neste caso, por ser um código Client Side o script é capaz de resgatar a hora do computador do cliente e conseqüentemente mostrará 10:20. Por outro lado, se a página recorrer a um script PHP (que é Server Side), a hora mostrada será 12:50. Requisições ao Servidor Normalmente, páginas de internet são acessadas por uma URL formada por domínios encadeados. Todos os dados serão transmitidos pelo protocolo HTTP. Abaixo, temos dois exemplo de acesso onde, respectivamente, será acessado o site da Google e um servidor web local. http://www.google.com http://localhost/meusite.php Observe que o segundo exemplo, além de especificar a localização do site, indica um arquivo específico. Já o primeiro exemplo não indica nenhum arquivo. Isso ocorre graças ao servidor web que, em geral, trabalha com uma listagem de arquivos que serão abertos por default logo no momento em que ele receber uma requisição.
Neste estudo trabalharemos com o servidor Apache. Para maiores informações, consulte www.guilhermepontes.eti.br/linux/. Formulários HTML O HiperText Markup Language (HTML) é a linguagem padrão para a construção de sites estáticos na internet. Ela nos oferece variados recursos que serão estudados no decorrer do curso. Dentre eles, temos os formulários. Os formulários são tags (pode se entender como comandos) HTML responsáveis pela formação de uma interface pela qual o usuário pode interagir com a página como se estivesse interagindo com um sistema local. O principal intuito desses componentes (na verdade, o formulário é composto por campos de texto, CheckBox, ComboBox, botões etc) é captar informações do usuário Client Side e enviá las para a internet. Na tag de abertura do formulário existem vários parâmetros, dentre eles o METHOD e o ACTION. O primeiro deles especifica qual tipo de requisição será enviada para o servidor (Server Side). O segundo indica o arquivo no servidor (através da URL) que receberá a requisição. Existem dois tipos de requisições: GET e POST. Ambas serão brevemente abordadas nesta introdução e ao decorrer do curso, serão aprofundadas.
Método GET O método GET é capaz de enviar informações para o servidor através do endereço URL. Em geral, um endereço é formado pela localização de determinado arquivo que pode ou não estar declarado no URL. http://localhost/meusite/principal.php No exemplo anterior, encontraremos uma página (montada dinamicamente pelo PHP no servidor e exibida em HTML no cliente o PHP gera os códigos HTML) no endereço local. O método GET simplesmente utiliza de parâmetros específicos para enviar informações. O primeiro limitador é o ponto de interrogação (?) que inicia a definição das variáveis. Em seguida, temos n variáveis separadas pelo &, onde cada uma apresenta, após do sinal de igual (=) o seu valor. http://localhost/meusite/principal.php?nome=guilherme&idade=22 Observe por exemplo, que além da indentificação/localização do arquivo principal.php temos agora a definição de duas variáveis: nome e idade. Elas estão valoradas respectivamente por Guilherme e 22. A página principal.php é capaz de resgatar (com comandos PHP específicos) os valores destas variáveis e utilizar conforme a necessidade do sistema como por exemplo, armazenar no banco de dados. Lembre se que os scripts PHP executam no servidor e conseqüentemente têm acesso ao SGBD. O componente que define o nome das variáveis (neste caso, nome e idade) é o formulário HTML. Cada item do formulário possui uma identificação e um valor (entre outros parâmetros) e quando o usuário pressiona um botão do tipo SUBMIT o método do formulário (METHOD) é acionado e monta automaticamente a sintaxe URL análoga ao exemplo anterior. Uma das limitações dessa requisição é, de certa forma, clara. Como todos os dados estão dispostos na URL, o envio de dados sigilosos se torna inviável. Não poderíamos enviar a senha de um usuário, por exemplo. A outra limitação é que uma URL pode conter no máximo 1024 caracteres. Isso não permite a existência de GETs superiores. Abaixo temos um exemplo de código de um formulário que recorre ao arquivo cad.php e trabalha com o método GET. Este formulário é constituído por um único campo de texto (text) e um botão do tipo submit. Observe que o nome do campo de texto é ID.
<form method=get action="http://localhost/cad.php""> <input type=text name=id> <input type=submit value="cadastrar"> </form> Neste caso, imaginando que o usuário tenha digitado a palavra Guilherme no campo ID e em seguida pressionado o botão Cadastrar, a seguinte URL seria montada: http://localhost/cad.php?id=guilherme O arquivo cad.php receberia a requisição e trataria o valor conforme as especificações do sistema. Método POST O método POST tem funcionamento similar ao GET porém apresenta as seguintes vantagens: Não possui limite de tamanho e não aparece na URL os dados são enviados por um recurso do protocolo HTTP denominado header. Um formulário POST pode ser visto abaixo: <form method=post action="http://localhost/cad.php""> <input type=text name=id> <input type=submit value="cadastrar"> </form> A única diferença em relação ao GET mostrado anteriormente é a definição do método (METHOD) como POST. Neste caso, com o clique do botão Cadastrar as informações (ID) seriam enviadas ao servidor sem que a URL fosse modificada. http://localhost/cad.php Mais estudos sobre ambos os métodos serão abordados durante os próximos tutoriais. Outras definições também serão levantadas.