Programação PHP 5.3

Page 1


1

1

O PHP e a World Wide Web 1.1. Introdução Ler um livro sobre uma determinada linguagem de programação e colocar os conhecimentos aí adquiridos logo em prática não faz com que a aprendizagem dessa nova linguagem seja imediata e isenta de erros. Ler e pensar são o início de um longo processo para quem se quer iniciar com uma nova ferramenta de trabalho. Mas dada a variedade de ferramentas com que se tem de trabalhar na web, nem sempre os resultados são rapidamente visíveis. Para que se sinta mais confortável na leitura deste trabalho, convém possuir alguns conhecimentos de HTML, bases de dados e, se possível, alguns conhecimentos de uma linguagem estruturada, como o C/C++ ou o Perl. Neste livro, iremos adoptar os sistemas de gestão de bases de dados Microsoft Access e o MySQL como suporte para os exemplos aqui apresentados. Por isso, entende-se que, para tirar o máximo proveito desta ferramenta, o leitor deverá ter os conhecimentos mínimos de utilização destes sistemas. Obviamente que sendo um dos aspectos mais importantes do PHP o manuseamento de informação armazenada em bases de dados, convém, como não podia deixar de ser, ter conhecimentos na área de desenho de bases de dados e da linguagem SQL. Neste capítulo, iremos fazer uma breve apresentação das principais características do PHP, dando algumas indicações do modo como interactua com o HTML e com os sistemas de gestão de bases de dados e apresentando alguns exemplos iniciais sobre os mesmos.

1.2. Breve apresentação do PHP Para que um website se torne atractivo do ponto de vista da interactividade com os utilizadores, é necessário um trabalho complexo para que existam páginas para todas as possíveis solicitações efectuadas por esses mesmos utilizadores. A solução para facilitar essa tarefa passa pela execução de processos em que a criação de páginas se efectue de forma automática e dinâmica a “pedido” do utilizador final. O PHP é a ferramenta aqui abordada que permite a criação dessas páginas dinâmicas, capaz de ser embebido dentro de código HTML e efectuar determinadas operações capazes de gerar páginas instantaneamente. Mais interessante se torna quando essa interacção envolve o acesso à informação armazenada em bases de dados e consequente visualização dos dados referentes ao pedido efectuado. Mas existindo outras linguagens capazes de realizarem este tipo de tarefas, como, por exemplo, o Perl ou o Python, torna-se necessário saber quais as razões da existência do PHP e quais os grandes motivos do seu sucesso.

© FCA – Editora de Informática

1


1 Programação com PHP 5.3

As principais razões serão indicadas adiante, mas pode-se adiantar que o PHP é uma combinação de uma linguagem de programação e de um servidor aplicacional. Este tipo de tecnologia está actualmente em crescente expansão, sendo um bom indicador do interesse que desperta perante a grande parte dos programadores da web na criação dinâmica de páginas. Funciona em praticamente todos os ambientes conhecidos, sendo suportada por uma enorme comunidade na Internet que contribui para a sua difusão e aceitação a nível mundial. Por outro lado, existe uma empresa, a Zend, que desenvolve e explora produtos relacionados com o PHP e que actua no mercado como grande impulsionadora desta excelente ferramenta, sendo a empresa estandarte no mundo PHP. Como linguagem de programação, é semelhante a muitas outras, no sentido em que possui variáveis para armazenar valores e operadores capazes de manipular essas variáveis. Igualmente de referir é o suporte para objectos, que é uma das suas mais-valias, e que a coloca em posição de ombrear com outras linguagens rivais. Mas o seu maior valor reside no papel que desempenha como servidor aplicacional. Adiante veremos com mais pormenor as suas potencialidades.

1.3. Acesso a documentos na web Tim Berners Lee inventou e desenvolveu no CERN a World Wide Web, criando para tal o HTTP (HyperText Transfer Protocol) e um outro conceito de importância primordial, o URL (Universal Resource Locator). Os browsers e os servidores de web comunicam utilizando o protocolo HTTP, permitindo assim que a informação possa ser transferida, seguindo um paradigma computacional cliente-servidor. Para que os browsers saibam como aceder aos servidores e o que fazer quando chegam ao seu destino, a utilização de um esquema de endereços como o URL é de enorme importância, permitindo referenciar todos os sites e informação por eles disponibilizados. De uma forma simplista, o que normalmente acontece quando se visita um website pode ser descrito da seguinte forma:

1) 2) 3) 4) 5) 6)

O browser descodifica a primeira parte do URL e contacta o servidor. O browser fornece o restante do URL ao servidor. O servidor transforma o URL num caminho e nome de ficheiro. O servidor envia o documento ao browser. O servidor corta a ligação. O browser mostra o documento.

Caso o documento possua ligações para outros documentos (por exemplo, imagens), o browser volta a executar toda a rotina e, sempre que se contacta o servidor, é como se nunca o tivesse feito, sendo produzido um novo documento a cada pedido efectuado. Independentemente de outros mecanismos mais complexos (por exemplo, proxies), afortunadamente, os browsers modernos também permitem manter uma cópia local dos documentos recentemente acedidos (cache) permitindo aliviar o tráfego existente, assim como

© FCA – Editora de Informática

2


1 O PHP e a World Wide Web

possuem os necessários mecanismos que permitem acelerar o rendering dos próprios documentos de web. Sendo isto excelente para aceder a texto estático ou visualizar imagens, tal deixa de ser válido quando se acede a informação que muda constantemente ou é solicitada pelo utilizador interactivamente consoante o momento, como, por exemplo, quando um utilizador pretende saber informação sobre um livro de uma biblioteca. O browser pouco ou nada sabe acerca dos documentos solicitados ao servidor. Aquilo que faz é, consoante a informação obtida do servidor, de acordo com as especificações MIME (Multipurpose Internet Mail Extensions), executar um conjunto de operações que permitem saber o que fazer com o documento. Deste modo, o browser sabe que, se o documento for em HTML, é para visualizar, mas se for um ficheiro do tipo ZIP, sabe que terá de permitir a gravação do mesmo para o disco.

1.4. HTML estático versus HTML dinâmico A maior parte das páginas HTML não se modifica significativamente ao longo do tempo (embora isto possa contrariar um dos bons princípios do web design que indica que uma boa página da web é aquela que é actualizada frequentemente), sendo por isso possível estabelecer ligações entre páginas de sites diferentes, permitindo assim que motores de pesquisa as consigam catalogar e indexar. É deste modo possível encontrar sempre as mesmas páginas quando se visitam os mesmos sites. É por isso que as podemos encontrar hoje, amanhã, na próxima semana ou até mesmo no próximo ano sem que haja grandes alterações – pode-se dizer que o código HTML utilizado para criar estas páginas é estático, já que o seu conteúdo praticamente permanece inalterado. Mas o que acontece se quisermos saber as cotações da bolsa neste momento, o resultado das eleições durante a contagem de votos ou poucos minutos após o fecho das urnas, o horário de chegada de um determinado transporte, a temperatura ambiente actual numa cidade? É óbvio que para estas situações a criação de documentos estáticos não funciona mesmo que haja uma equipa de web designers a efectuar actualizações constantes dos documentos. Por isso, torna-se necessário utilizar um tipo de aplicação capaz de gerar documentos consoante as solicitações do browser (ou melhor, do utilizador), ou seja, “a pedido”. Este tipo de aplicações, em que é gerado HTML dinâmico no momento do pedido efectuado pelo browser, é a solução mais indicada para resolver este tipo de problemas já que têm em conta a interactividade com a solicitação do utilizador. Ao construir sites pequenos (com poucas páginas) nos quais o conteúdo não é actualizado regularmente, a utilização de páginas estáticas é, neste caso, a mais indicada. Mas se o site requer actualizações constantes, de acordo com os pedidos efectuados pelo browser e solicitados pelo utilizador, a única opção viável para resolver este tipo de problema é o recurso à geração de HTML dinâmico. As principais diferenças entre as duas aproximações podem ser resumidas na Tabela 1.1.

© FCA – Editora de Informática

3


1 Programação com PHP 5.3 ESTÁTICO

DINÂMICO

Criação de página utilizando código HTLM

Requer em primeiro lugar a criação de um módulo/modelo (template) e então gera o conteúdo da página

Criação de páginas individuais

Com o módulo construído, somente o conteúdo instantâneo necessita de ser gerado

Projectos, com interacção com bases de dados em tempo real, inviabilizam a criação de documentos estáticos

O site da web dinâmico é a solução adequada

NA MANUTENÇÃO

Novo conteúdo significa a criação de novas páginas; qualquer alteração na estrutura propaga-se a todas as páginas, obrigando a constantes alterações

O novo conteúdo pode ser inserido na estrutura do módulo previamente “construído”, facilitando qualquer actualização

NO

O servidor tem um processamento reduzido limitando-se a ler os ficheiros HTML

As páginas são criadas instantaneamente sendo necessária a utilização de software adicional. Tal implica um maior processamento, sendo este tanto maior quanto maior for a estrutura do site

Fácil, pois requer conhecimentos básicos de HTML

Lenta e faseada pois requer conhecimentos de programação, desenvolvimento em bases de dados, manutenção de sites, etc.

NA CRIAÇÃO DE UMA PÁGINA SIMPLES

EM PROJECTOS DE GRANDES DIMENSÕES

EM PROJECTOS ESPECIAIS

PROCESSAMENTO NO SERVIDOR WEB

NA APRENDIZAGEM

TABELA 1.1 – Comparação entre o HTML estático e o dinâmico

No caso de criação de páginas dinâmicas, e dada a necessidade de utilização de software adicional, é possível imaginar o investimento requerido para concretizar este tipo de aproximação. Apesar de existir uma enorme variedade de soluções comerciais, existe, felizmente, software que vai de encontro à necessidade de cada um consoante o fim em vista. O PHP é uma destas soluções e destaca-se de outras congéneres, na medida em que é uma solução capaz de satisfazer os requisitos mais exigentes, pois, além de ter um custo praticamente nulo, possui uma curva de aprendizagem reduzida, associada a um conjunto de funcionalidades que o torna ímpar entre a concorrência. É actualmente, de facto, uma referência no mundo do desenvolvimento das aplicações da web.

1.5. PHP, o que é? Uma resposta mais directa a esta pergunta passa por afirmar que o PHP é uma linguagem de programação vocacionada para o desenvolvimento de aplicações orientadas para a World

© FCA – Editora de Informática

4


1 O PHP e a World Wide Web

Wide Web. Contudo, e de um ponto de vista funcional, existe uma explicação mais completa se considerarmos que na web existem essencialmente dois tipos de linguagem: • •

O baseado no cliente (browser); O baseado no servidor.

As diferenças entre estes dois tipos dificultam a decisão a tomar relativamente a um dado projecto da web. O primeiro tipo utiliza os recursos existentes no sistema do utilizador (não sendo por isso de estranhar que o nosso computador fique mais lento quando se puxa uma página com código deste tipo). São exemplos de algumas linguagens de programação deste género o JavaScript, ActiveX, Java Applets, entre outras. A lentidão no carregamento destas páginas pode ser atenuada, tentando-se construir páginas em que o código seja o mais pequeno possível. Por outro lado, temos a situação em que o processamento é totalmente efectuado no servidor. Se este não estiver preparado para responder a pedidos em simultâneo de vários browsers, notar-se-á uma acentuada quebra nas performances de resposta, não só no envio de documentos de web ao browser cliente, como também de outras tarefas que o servidor tem a correr em simultâneo. As pessoas que criaram a World Wide Web foram as responsáveis pelo desenvolvimento desta técnica a que deram o nome de CGI (Common Gateway Interface), e graças a tal pode-se, com o tipo de aplicações que fazem recurso desta técnica, executar praticamente todas as tarefas que a nossa imaginação nos permita. Por exemplo, aceder a bases de dados, executar sessões Telnet, gerar gráficos e efectuar estatísticas não são tarefas desconhecidas para quem trabalha com CGI. Contudo, e apesar de o conceito básico por detrás do CGI ser bastante simples, a sua aplicabilidade não é imediata, pois exige conhecimentos de programação algo avançados (embora seja igualmente possível fazer CGI em Visual Basic, por exemplo), sendo, por isso, um contratempo a ultrapassar. Por esse motivo, o PHP aparece como uma ferramenta poderosa capaz de resolver alguns dos problemas associados ao CGI, já que a sua simplicidade é enorme quando comparada, e permite contornar a maioria dos problemas que o CGI por vezes soluciona mas com o recurso a técnicas complexas. No ambiente PHP, o código é embebido directamente no documento HTML, dando assim origem a um script contendo instruções específicas. Deste modo, o servidor da web, a que foi acrescentado um módulo PHP, consegue interpretar os comandos aí inseridos, e transforma o resultado em código HTML facilmente interpretável pelo browser cliente. Repare-se que, diferentemente da programação em CGI com o recurso a linguagens clássicas, como o C ou o Pascal, em que o código-fonte é compilado num ficheiro executável para se tornar utilizável, no PHP, tal já não é necessário pois, sendo esta linguagem integrada no servidor da web, passa então a ser interpretada por esse mesmo servidor. Assim, pode-se intercalar ou embeber código PHP com código HTML, havendo somente necessidade de indicar onde este se inicia e termina usando delimitadores específicos e criados para o efeito.

© FCA – Editora de Informática

5


1 Programação com PHP 5.3

1.6. O PHP e o HTML A parte mais interessante do HTML e que afecta directamente o PHP é, sem sombra de dúvida, a referente aos formulários (forms), uma vez que são estes que irão guardar momentaneamente e transmitir os dados inseridos pelo utilizador para um determinado script PHP que os irá processar. Deste modo, a interacção com os valores introduzidos (inputs) pelo utilizador no formulário torna-se de primordial importância, já que, com esta possibilidade, o PHP permite gerar código dinâmico de acordo com o pedido efectuado. Por isso, é importante entender o modo como os formulários HTML interactuam com os servidores da web. O HTML, não sendo uma linguagem pura de programação, é especialmente indicado na criação, “formatação” e design de páginas de web. A linguagem HTML é assim uma linguagem de representação visual de informação, que é utilizada pelos programadores da web para descrever o conteúdo de páginas, recorrendo a directivas específicas posteriormente interpretadas pelos browsers: < HTML> < HEADS> … </HEAD> < BODY> ………………… </BODY> </HTML>

Por seu lado, os formulários em HTML permitem que se recolham os inputs dos utilizadores, deixando-os preencher campos apropriados para o efeito. Estes formulários podem ser compostos por vários elementos, como botões, radio buttons, selection lists, input boxes, e muitos outros, capazes de permitirem um grau de interacção com o utilizador final suficientemente satisfatório. Todos estes elementos são indicados usando etiquetas HTML (tags), sendo possível haver mais de um formulário por cada documento HTML. Algumas das etiquetas HTML indicadoras do tipo de elementos utilizados num formulário podem ser visualizadas a seguir: < input type = “Text” > “Password” “Checkbox” “Radio” “Hidden” “Submit” “Reset”

Não querendo entrar em detalhes sobre o HTML, convém por fim referir que as opções mais importantes a especificar nos formulários são method e action, pois permitem definir o modo de transmissão e o tipo de processamento a ser realizado sobre a informação introduzida: •

Method – Especifica o modo como a informação do formulário é transmitida ao script PHP. Pode ser do tipo GET ou POST;

© FCA – Editora de Informática

6


1 O PHP e a World Wide Web •

Action – Indica o nome e a localização do script PHP que irá processar a informação que foi introduzida no formulário.

Estas duas opções permitem que o utilizador, através de um formulário, consiga interagir com a aplicação residente no servidor da web através de variáveis de sistema específicas. Mas, o curioso é que, ao trabalhar com PHP, não é necessário saber “nada” sobre essas variáveis (nomeadamente, o seu tipo ou a sua dimensão), pois estas são muito simples de criar, bastando acrescentar o sinal $ antes do seu nome ou, no caso de uma variável correspondente a um campo de um formulário, será o nome aí definido com o sinal $ antes do seu nome. O que acabámos de descrever funciona se uma directiva de nome “register_globals” no ficheiro geral de configuração do PHP tiver o valor On. Caso contrário, o acesso às variáveis do PHP é realizado através de um conjunto de arrays superglobais que o PHP possui. Por predefinição, o valor desta directiva é Off, por motivos de segurança, o que implica que os utilizadores tenham que recorrer a estes arrays superglobais do PHP para processar as variáveis que são enviadas pelo formulário em HTML. Na Figura 1.1, temos um exemplo simples de um script que permite somar o valor de 2 variáveis: <?php /*php_1.php*/ ?> <html> <head> <title> Resultado </title> </head> <body> <?php $X=5; $Y=3; $Z=$X + $Y; echo "Total"; echo "= $Z"; ?> </body> </html>

FIGURA 1.1 – Resultado do script PHP anterior

Mas o leitor estará a pensar que, sendo este ficheiro colocado no servidor da web, poderá visualizar as instruções que fazem parte do script PHP. Engana-se pois se visualizar o código© FCA – Editora de Informática

7


1 Programação com PHP 5.3

-fonte no seu browser, terá uma surpresa agradável, já que terá acesso única e exclusivamente ao código HTML gerado resultante do processamento do script de PHP. Uma outra situação interessante em que o leitor estará a pensar será o da transmissão de variáveis entre scripts. Um exemplo simples de utilização de formulários no PHP consiste na utilização de dois ficheiros; o ficheiro “form.html” (onde o utilizador efectuará os inputs) e o ficheiro “php_2.php” que contém os comandos PHP que irão processar os dados inseridos no formulário. Os dados inseridos no formulário (Figura 1.2) pelo utilizador são transmitidos ao servidor de web, recorrendo à opção de envio indicada em method e então processados através do script indicado em action. Exemplo de “form.html”: <html> <head> <title> formulário PHP </title> </head> <form enctype="multipart/form-data" method="POST" action="php_2.php"> <p>Nome <input type="text" name=”nome” size="30"></p> <p>Idade <input type="text" name=”idade” size="2"></p> <p>Qual o carro que mais gostas? <select name=”marca”> <option>Ferrari</option> <option>Mercedes</option> <option>BMW</option> </select></p> <p><input type="Submit" value="OK"></p> </form> <p> </html>

FIGURA 1.2 – Formulário em HTML

© FCA – Editora de Informática

8


1 O PHP e a World Wide Web

Exemplo do script (php_2.php) que processa os dados do formulário: <?php /*php_2.php*/ ?> <htlm> <head> <title> Resultado </title></head> <body> <?php echo " O Meu Nome é ".$_POST['nome'].", tenho" . $_POST['idade']. " anos e gosto de carros da marca ". $_POST['marca']; ?> </body> </html>

Isto decorre do que acabámos de explicar anteriormente, e que está em vigor desde a versão 4.2.0 do PHP em que a variável register_globals do ficheiro de configuração do PHP (“php.ini”) passou a ter o valor predefinido igual a “Off”. Isto tem a ver com questões de segurança, mas esta alteração vem afectar um conjunto de variáveis definidas num âmbito global. Por exemplo, as variáveis nome, idade e marca serão capturadas no script php_2.php referenciando-se com o nome da variável global que foi transmitida; $_post (‘nome’), $_post (‘idade’), $_post (‘marca’). Anteriormente (quando a variável register_globals do “php.ini” era “Off”), estas variáveis eram transmitidas e capturadas bastando colocar o símbolo “$” antes da variável: $nome, $idade, $marca. O leitor poderá testar estas alterações criando os scripts adequados e reiniciando o servidor da web. Repare no operador “.”; este permite unir a cadeia de palavras iniciada por echo. O resultado é o da Figura 1.3.

FIGURA 1.3 – Resultado do processamento do formulário

Não poderíamos, contudo, deixar de realçar um dos pontos mais fortes do PHP e que reside na possibilidade de este poder efectuar ligações a bases de dados de uma forma fácil, muito simples e intuitiva. A interacção com bases de dados vai permitir uma maior funcionalidade por parte de quem utiliza as aplicações da web, pois, consoante os inputs dos utilizadores, obter-se-ão respostas imediatas sob a forma de páginas HTML. Os principais motivos técnicos que justificam a utilização de bases de dados para interacção/acesso através da web podem ser resumidos nos seguintes aspectos:

© FCA – Editora de Informática

9


1 Programação com PHP 5.3 • • • • •

Qualquer utilizador pode aceder à base de dados (BD) utilizando uma interface standard (browser); É possível efectuar interrogações à BD via SQL e gerar páginas instantaneamente consoante o pedido; Os utilizadores não necessitam de possuir software cliente especial para aceder às bases de dados; As alterações efectuadas na BD são realizadas no servidor, não havendo por isso necessidade de distribuir actualizações do software cliente; A base de dados pode conter ligações a outros recursos disponíveis na web.

Pelo exposto, apercebemo-nos de que, sendo possível efectuar ligações a bases de dados, poderemos interactuar com estas de modo a criar páginas HTML instantâneas e dinâmicas de acordo com as solicitações dos utilizadores. Deste modo, o dinamismo requerido na criação deste tipo de páginas poderá ser assim conseguido com o recurso a um cliente da web (browser), servidor da web (ex.: Apache), servidor de bases de dados (ex.: MySQL), e uma ferramenta que permita ligar estes servidores (ex.: PHP). O diagrama da Figura 1.4 é exemplificativo da arquitectura PHP.

FIGURA 1.4 – Arquitectura do PHP

Para que o script armazenado no servidor da web consiga aceder e processar os dados armazenados numa base de dados, o processo é de certo modo bastante simples:

1) O utilizador introduz os dados através de um formulário que aparece no browser. 2) O servidor da web verifica se existem ligações a bases de dados disponíveis e estabelece a ligação em caso afirmativo. 3) Os dados são processados de acordo com as instruções existentes no script. 4) O servidor da web envia o documento HTML ao browser, devidamente formatado. 5) O browser interpreta o HTML permitindo a visualização do documento.

Em PHP, se quisermos trabalhar com uma base de dados, torna-se necessário, em primeiro lugar, efectuar a ligação a essa mesma base de dados (e correspondente servidor no qual a base de dados se encontra alojada). Consoante o tipo de sistema de gestão de base de dados (MySQL, Oracle, SQLite,...) que se pretenda trabalhar, ou o sistema operativo, as instruções também serão variáveis para nos ligar à BD.

© FCA – Editora de Informática

10


1 O PHP e a World Wide Web

Por exemplo, a instrução em MySQL para efectuar a ligação é efectuada através do seguinte comando: mysql_connect (‘nome servidor’, ‘utilizador’, ‘password’)

Estando efectuada essa ligação entre o PHP e a base de dados, é possível posteriormente efectuar um variado e complexo conjunto de operações sobre os dados que se encontram armazenados na mesma, apresentando-os sob diversas formas no browser web. Especificar qual a informação que vamos obter e como a vamos apresentar pode ser por vezes bastante confuso, mas a versatilidade de linguagens de manuseamento de dados, como o SQL, pode facilitar tarefas aparentemente morosas e bastante complexas. A sua integração com o PHP é de facto excelente e esse é um dos aspectos que o fortalecem, pois a possibilidade de embeber código SQL permite aumentar a utilidade do PHP até níveis anteriormente conseguidos somente com soluções proprietárias. Para além disso, o SQL pode conferir alguns aspectos de portabilidade às aplicações desenvolvidas. Foi então possível, ao longo deste primeiro capítulo introdutório, verificar alguns dos aspectos mais relevantes da linguagem de programação PHP. Houve um cuidado por parte dos autores em não progredir para tópicos muito avançados que serão abordados nas próximas secções deste mesmo livro.

© FCA – Editora de Informática

11


1 Programação com PHP 5.3

© FCA – Editora de Informática

12


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.