You are on page 1of 12

1

1
O PHP e a World Wide Web

1.1. Introduo
Ler um livro sobre uma determinada linguagem de programao e colocar os conhecimentos a adquiridos logo em prtica no faz com que a aprendizagem dessa nova linguagem seja imediata e isenta de erros. Ler e pensar so o incio 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 so rapidamente visveis. Para que se sinta mais confortvel na leitura deste trabalho, convm possuir alguns conhecimentos de HTML, bases de dados e, se possvel, alguns conhecimentos de uma linguagem estruturada, como o C/C++ ou o Perl. Neste livro, iremos adoptar os sistemas de gesto de bases de dados Microsoft Access e o MySQL como suporte para os exemplos aqui apresentados. Por isso, entende-se que, para tirar o mximo proveito desta ferramenta, o leitor dever ter os conhecimentos mnimos de utilizao destes sistemas. Obviamente que sendo um dos aspectos mais importantes do PHP o manuseamento de informao armazenada em bases de dados, convm, como no podia deixar de ser, ter conhecimentos na rea de desenho de bases de dados e da linguagem SQL. Neste captulo, iremos fazer uma breve apresentao das principais caractersticas do PHP, dando algumas indicaes do modo como interactua com o HTML e com os sistemas de gesto de bases de dados e apresentando alguns exemplos iniciais sobre os mesmos.

1.2. Breve apresentao do PHP


Para que um website se torne atractivo do ponto de vista da interactividade com os utilizadores, necessrio um trabalho complexo para que existam pginas para todas as possveis solicitaes efectuadas por esses mesmos utilizadores. A soluo para facilitar essa tarefa passa pela execuo de processos em que a criao de pginas se efectue de forma automtica e dinmica a pedido do utilizador final. O PHP a ferramenta aqui abordada que permite a criao dessas pginas dinmicas, capaz de ser embebido dentro de cdigo HTML e efectuar determinadas operaes capazes de gerar pginas instantaneamente. Mais interessante se torna quando essa interaco envolve o acesso informao armazenada em bases de dados e consequente visualizao 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 necessrio saber quais as razes da existncia do PHP e quais os grandes motivos do seu sucesso.

FCA Editora de Informtica

1
Programao com PHP 5.3

As principais razes sero indicadas adiante, mas pode-se adiantar que o PHP uma combinao de uma linguagem de programao e de um servidor aplicacional. Este tipo de tecnologia est actualmente em crescente expanso, sendo um bom indicador do interesse que desperta perante a grande parte dos programadores da web na criao dinmica de pginas. Funciona em praticamente todos os ambientes conhecidos, sendo suportada por uma enorme comunidade na Internet que contribui para a sua difuso e aceitao a nvel 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 programao, semelhante a muitas outras, no sentido em que possui variveis para armazenar valores e operadores capazes de manipular essas variveis. Igualmente de referir o suporte para objectos, que uma das suas mais-valias, e que a coloca em posio 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 importncia primordial, o URL (Universal Resource Locator). Os browsers e os servidores de web comunicam utilizando o protocolo HTTP, permitindo assim que a informao 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 utilizao de um esquema de endereos como o URL de enorme importncia, permitindo referenciar todos os sites e informao 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 ligao. O browser mostra o documento.

Caso o documento possua ligaes 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 tambm permitem manter uma cpia local dos documentos recentemente acedidos (cache) permitindo aliviar o trfego existente, assim como

FCA Editora de Informtica

1
O PHP e a World Wide Web

possuem os necessrios mecanismos que permitem acelerar o rendering dos prprios documentos de web. Sendo isto excelente para aceder a texto esttico ou visualizar imagens, tal deixa de ser vlido quando se acede a informao que muda constantemente ou solicitada pelo utilizador interactivamente consoante o momento, como, por exemplo, quando um utilizador pretende saber informao sobre um livro de uma biblioteca. O browser pouco ou nada sabe acerca dos documentos solicitados ao servidor. Aquilo que faz , consoante a informao obtida do servidor, de acordo com as especificaes MIME (Multipurpose Internet Mail Extensions), executar um conjunto de operaes 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 gravao do mesmo para o disco.

1.4. HTML esttico versus HTML dinmico


A maior parte das pginas HTML no se modifica significativamente ao longo do tempo (embora isto possa contrariar um dos bons princpios do web design que indica que uma boa pgina da web aquela que actualizada frequentemente), sendo por isso possvel estabelecer ligaes entre pginas de sites diferentes, permitindo assim que motores de pesquisa as consigam catalogar e indexar. deste modo possvel encontrar sempre as mesmas pginas quando se visitam os mesmos sites. por isso que as podemos encontrar hoje, amanh, na prxima semana ou at mesmo no prximo ano sem que haja grandes alteraes pode-se dizer que o cdigo HTML utilizado para criar estas pginas esttico, j que o seu contedo praticamente permanece inalterado. Mas o que acontece se quisermos saber as cotaes da bolsa neste momento, o resultado das eleies durante a contagem de votos ou poucos minutos aps o fecho das urnas, o horrio de chegada de um determinado transporte, a temperatura ambiente actual numa cidade? bvio que para estas situaes a criao de documentos estticos no funciona mesmo que haja uma equipa de web designers a efectuar actualizaes constantes dos documentos. Por isso, torna-se necessrio utilizar um tipo de aplicao capaz de gerar documentos consoante as solicitaes do browser (ou melhor, do utilizador), ou seja, a pedido. Este tipo de aplicaes, em que gerado HTML dinmico no momento do pedido efectuado pelo browser, a soluo mais indicada para resolver este tipo de problemas j que tm em conta a interactividade com a solicitao do utilizador. Ao construir sites pequenos (com poucas pginas) nos quais o contedo no actualizado regularmente, a utilizao de pginas estticas , neste caso, a mais indicada. Mas se o site requer actualizaes constantes, de acordo com os pedidos efectuados pelo browser e solicitados pelo utilizador, a nica opo vivel para resolver este tipo de problema o recurso gerao de HTML dinmico. As principais diferenas entre as duas aproximaes podem ser resumidas na Tabela 1.1.

FCA Editora de Informtica

1
Programao com PHP 5.3
ESTTICO NA CRIAO DE
UMA PGINA SIMPLES

DINMICO

Criao de pgina utilizando cdigo HTLM Criao de pginas individuais

Requer em primeiro lugar a criao de um mdulo/modelo (template) e ento gera o contedo da pgina Com o mdulo construdo, somente o contedo instantneo necessita de ser gerado O site da web dinmico a soluo adequada

EM PROJECTOS DE
GRANDES DIMENSES

EM PROJECTOS
ESPECIAIS

Projectos, com interaco com bases de dados em tempo real, inviabilizam a criao de documentos estticos Novo contedo significa a criao de novas pginas; qualquer alterao na estrutura propaga-se a todas as pginas, obrigando a constantes alteraes O servidor tem um processamento reduzido limitando-se a ler os ficheiros HTML

NA MANUTENO

O novo contedo pode ser inserido na estrutura do mdulo previamente construdo, facilitando qualquer actualizao As pginas so criadas instantaneamente sendo necessria a utilizao de software adicional. Tal implica um maior processamento, sendo este tanto maior quanto maior for a estrutura do site Lenta e faseada pois requer conhecimentos de programao, desenvolvimento em bases de dados, manuteno de sites, etc.

NO
PROCESSAMENTO NO SERVIDOR WEB

NA
APRENDIZAGEM

Fcil, pois requer conhecimentos bsicos de HTML

TABELA 1.1 Comparao entre o HTML esttico e o dinmico

No caso de criao de pginas dinmicas, e dada a necessidade de utilizao de software adicional, possvel imaginar o investimento requerido para concretizar este tipo de aproximao. Apesar de existir uma enorme variedade de solues comerciais, existe, felizmente, software que vai de encontro necessidade de cada um consoante o fim em vista. O PHP uma destas solues e destaca-se de outras congneres, na medida em que uma soluo capaz de satisfazer os requisitos mais exigentes, pois, alm de ter um custo praticamente nulo, possui uma curva de aprendizagem reduzida, associada a um conjunto de funcionalidades que o torna mpar entre a concorrncia. actualmente, de facto, uma referncia no mundo do desenvolvimento das aplicaes da web.

1.5. PHP, o que ?


Uma resposta mais directa a esta pergunta passa por afirmar que o PHP uma linguagem de programao vocacionada para o desenvolvimento de aplicaes orientadas para a World

FCA Editora de Informtica

1
O PHP e a World Wide Web

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

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

As diferenas entre estes dois tipos dificultam a deciso a tomar relativamente a um dado projecto da web. O primeiro tipo utiliza os recursos existentes no sistema do utilizador (no sendo por isso de estranhar que o nosso computador fique mais lento quando se puxa uma pgina com cdigo deste tipo). So exemplos de algumas linguagens de programao deste gnero o JavaScript, ActiveX, Java Applets, entre outras. A lentido no carregamento destas pginas pode ser atenuada, tentando-se construir pginas em que o cdigo seja o mais pequeno possvel. Por outro lado, temos a situao em que o processamento totalmente efectuado no servidor. Se este no estiver preparado para responder a pedidos em simultneo de vrios browsers, notar-se- uma acentuada quebra nas performances de resposta, no s no envio de documentos de web ao browser cliente, como tambm de outras tarefas que o servidor tem a correr em simultneo. As pessoas que criaram a World Wide Web foram as responsveis pelo desenvolvimento desta tcnica a que deram o nome de CGI (Common Gateway Interface), e graas a tal pode-se, com o tipo de aplicaes que fazem recurso desta tcnica, executar praticamente todas as tarefas que a nossa imaginao nos permita. Por exemplo, aceder a bases de dados, executar sesses Telnet, gerar grficos e efectuar estatsticas no so tarefas desconhecidas para quem trabalha com CGI. Contudo, e apesar de o conceito bsico por detrs do CGI ser bastante simples, a sua aplicabilidade no imediata, pois exige conhecimentos de programao algo avanados (embora seja igualmente possvel 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 tcnicas complexas. No ambiente PHP, o cdigo embebido directamente no documento HTML, dando assim origem a um script contendo instrues especficas. Deste modo, o servidor da web, a que foi acrescentado um mdulo PHP, consegue interpretar os comandos a inseridos, e transforma o resultado em cdigo HTML facilmente interpretvel pelo browser cliente. Repare-se que, diferentemente da programao em CGI com o recurso a linguagens clssicas, como o C ou o Pascal, em que o cdigo-fonte compilado num ficheiro executvel para se tornar utilizvel, no PHP, tal j no necessrio pois, sendo esta linguagem integrada no servidor da web, passa ento a ser interpretada por esse mesmo servidor. Assim, pode-se intercalar ou embeber cdigo PHP com cdigo HTML, havendo somente necessidade de indicar onde este se inicia e termina usando delimitadores especficos e criados para o efeito.

FCA Editora de Informtica

1
Programao 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 dvida, a referente aos formulrios (forms), uma vez que so estes que iro guardar momentaneamente e transmitir os dados inseridos pelo utilizador para um determinado script PHP que os ir processar. Deste modo, a interaco com os valores introduzidos (inputs) pelo utilizador no formulrio torna-se de primordial importncia, j que, com esta possibilidade, o PHP permite gerar cdigo dinmico de acordo com o pedido efectuado. Por isso, importante entender o modo como os formulrios HTML interactuam com os servidores da web. O HTML, no sendo uma linguagem pura de programao, especialmente indicado na criao, formatao e design de pginas de web. A linguagem HTML assim uma linguagem de representao visual de informao, que utilizada pelos programadores da web para descrever o contedo de pginas, recorrendo a directivas especficas posteriormente interpretadas pelos browsers:
< HTML> < HEADS> </HEAD> < BODY> </BODY> </HTML>

Por seu lado, os formulrios em HTML permitem que se recolham os inputs dos utilizadores, deixando-os preencher campos apropriados para o efeito. Estes formulrios podem ser compostos por vrios elementos, como botes, radio buttons, selection lists, input boxes, e muitos outros, capazes de permitirem um grau de interaco com o utilizador final suficientemente satisfatrio. Todos estes elementos so indicados usando etiquetas HTML (tags), sendo possvel haver mais de um formulrio por cada documento HTML. Algumas das etiquetas HTML indicadoras do tipo de elementos utilizados num formulrio podem ser visualizadas a seguir:
< input type = Text > Password Checkbox Radio Hidden Submit Reset

No querendo entrar em detalhes sobre o HTML, convm por fim referir que as opes mais importantes a especificar nos formulrios so method e action, pois permitem definir o modo de transmisso e o tipo de processamento a ser realizado sobre a informao introduzida:

Method Especifica o modo como a informao do formulrio transmitida ao script PHP. Pode ser do tipo GET ou POST;

FCA Editora de Informtica

1
O PHP e a World Wide Web

Action Indica o nome e a localizao do script PHP que ir processar a informao que foi introduzida no formulrio.

Estas duas opes permitem que o utilizador, atravs de um formulrio, consiga interagir com a aplicao residente no servidor da web atravs de variveis de sistema especficas. Mas, o curioso que, ao trabalhar com PHP, no necessrio saber nada sobre essas variveis (nomeadamente, o seu tipo ou a sua dimenso), pois estas so muito simples de criar, bastando acrescentar o sinal $ antes do seu nome ou, no caso de uma varivel correspondente a um campo de um formulrio, ser o nome a definido com o sinal $ antes do seu nome. O que acabmos de descrever funciona se uma directiva de nome register_globals no ficheiro geral de configurao do PHP tiver o valor On. Caso contrrio, o acesso s variveis do PHP realizado atravs de um conjunto de arrays superglobais que o PHP possui. Por predefinio, o valor desta directiva Off, por motivos de segurana, o que implica que os utilizadores tenham que recorrer a estes arrays superglobais do PHP para processar as variveis que so enviadas pelo formulrio em HTML. Na Figura 1.1, temos um exemplo simples de um script que permite somar o valor de 2 variveis:
<?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 instrues que fazem parte do script PHP. Engana-se pois se visualizar o cdigo FCA Editora de Informtica

1
Programao com PHP 5.3

-fonte no seu browser, ter uma surpresa agradvel, j que ter acesso nica e exclusivamente ao cdigo HTML gerado resultante do processamento do script de PHP. Uma outra situao interessante em que o leitor estar a pensar ser o da transmisso de variveis entre scripts. Um exemplo simples de utilizao de formulrios no PHP consiste na utilizao de dois ficheiros; o ficheiro form.html (onde o utilizador efectuar os inputs) e o ficheiro php_2.php que contm os comandos PHP que iro processar os dados inseridos no formulrio. Os dados inseridos no formulrio (Figura 1.2) pelo utilizador so transmitidos ao servidor de web, recorrendo opo de envio indicada em method e ento processados atravs do script indicado em action. Exemplo de form.html:
<html> <head> <title> formulrio 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 Formulrio em HTML

FCA Editora de Informtica

1
O PHP e a World Wide Web

Exemplo do script (php_2.php) que processa os dados do formulrio:


<?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 acabmos de explicar anteriormente, e que est em vigor desde a verso 4.2.0 do PHP em que a varivel register_globals do ficheiro de configurao do PHP (php.ini) passou a ter o valor predefinido igual a Off. Isto tem a ver com questes de segurana, mas esta alterao vem afectar um conjunto de variveis definidas num mbito global. Por exemplo, as variveis nome, idade e marca sero capturadas no script php_2.php referenciando-se com o nome da varivel global que foi transmitida; $_post (nome), $_post (idade), $_post (marca). Anteriormente (quando a varivel register_globals do php.ini era Off), estas variveis eram transmitidas e capturadas bastando colocar o smbolo $ antes da varivel: $nome, $idade, $marca. O leitor poder testar estas alteraes 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 formulrio

No poderamos, contudo, deixar de realar um dos pontos mais fortes do PHP e que reside na possibilidade de este poder efectuar ligaes a bases de dados de uma forma fcil, muito simples e intuitiva. A interaco com bases de dados vai permitir uma maior funcionalidade por parte de quem utiliza as aplicaes da web, pois, consoante os inputs dos utilizadores, obter-se-o respostas imediatas sob a forma de pginas HTML. Os principais motivos tcnicos que justificam a utilizao de bases de dados para interaco/acesso atravs da web podem ser resumidos nos seguintes aspectos:

FCA Editora de Informtica

1
Programao com PHP 5.3

Qualquer utilizador pode aceder base de dados (BD) utilizando uma interface standard (browser); possvel efectuar interrogaes BD via SQL e gerar pginas instantaneamente consoante o pedido; Os utilizadores no necessitam de possuir software cliente especial para aceder s bases de dados; As alteraes efectuadas na BD so realizadas no servidor, no havendo por isso necessidade de distribuir actualizaes do software cliente; A base de dados pode conter ligaes a outros recursos disponveis na web.

Pelo exposto, apercebemo-nos de que, sendo possvel efectuar ligaes a bases de dados, poderemos interactuar com estas de modo a criar pginas HTML instantneas e dinmicas de acordo com as solicitaes dos utilizadores. Deste modo, o dinamismo requerido na criao deste tipo de pginas 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 atravs de um formulrio que aparece no browser. 2) O servidor da web verifica se existem ligaes a bases de dados disponveis e estabelece a
ligao em caso afirmativo. 3) Os dados so processados de acordo com as instrues existentes no script. 4) O servidor da web envia o documento HTML ao browser, devidamente formatado. 5) O browser interpreta o HTML permitindo a visualizao do documento.

Em PHP, se quisermos trabalhar com uma base de dados, torna-se necessrio, em primeiro lugar, efectuar a ligao a essa mesma base de dados (e correspondente servidor no qual a base de dados se encontra alojada). Consoante o tipo de sistema de gesto de base de dados (MySQL, Oracle, SQLite,...) que se pretenda trabalhar, ou o sistema operativo, as instrues tambm sero variveis para nos ligar BD.

FCA Editora de Informtica

10

1
O PHP e a World Wide Web

Por exemplo, a instruo em MySQL para efectuar a ligao efectuada atravs do seguinte comando:
mysql_connect (nome servidor, utilizador, password)

Estando efectuada essa ligao entre o PHP e a base de dados, possvel posteriormente efectuar um variado e complexo conjunto de operaes sobre os dados que se encontram armazenados na mesma, apresentando-os sob diversas formas no browser web. Especificar qual a informao 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 integrao com o PHP de facto excelente e esse um dos aspectos que o fortalecem, pois a possibilidade de embeber cdigo SQL permite aumentar a utilidade do PHP at nveis anteriormente conseguidos somente com solues proprietrias. Para alm disso, o SQL pode conferir alguns aspectos de portabilidade s aplicaes desenvolvidas. Foi ento possvel, ao longo deste primeiro captulo introdutrio, verificar alguns dos aspectos mais relevantes da linguagem de programao PHP. Houve um cuidado por parte dos autores em no progredir para tpicos muito avanados que sero abordados nas prximas seces deste mesmo livro.

FCA Editora de Informtica

11

1
Programao com PHP 5.3

FCA Editora de Informtica

12

You might also like