Você está na página 1de 28

PROGRAMAO EM PHP

Introduo Programao em PHP PHP uma das linguagens do lado do servidor (os scripts em PHP s executados diretamente no servidor hospedeiro, diferentemente do JavaScript que roda direto no browser do cliente) mais utilizadas da Web. Nascida em 1994 trata-se de uma linguagem de criao relativamente crescente que teve uma grande aceitao pela comunidade de Webmasters, sobretudo pela potncia e simplicidade que a caracterizam. PHP permite-nos embeber os seus pequenos fragmentos de cdigo dentro da pgina HTML e realizar determinadas tarefas de uma forma fcil e eficaz sem ter de implementar programas programados na ntegra numa linguagem diferente de HTML. Por outro lado, aqui que reside o seu maior interesse relativamente s outras linguagens pensadas para os CGI, o PHP oferece inmeras funes para a explorao de bases de dados de um modo fcil, sem complicaes. Poderamos efetuar a comparao de dizer que PHP e ASP so linguagens parecidas em quanto potncia e dificuldade se bem que a sntese pode diferir sensivelmente. Algumas diferenas principais podem, mesmo assim, mencionar-se:

PHP, ainda que multiplataforma, foi desenhado inicialmente para sistemas UNIX e neste sistema operativo que se pode aproveitar melhor as suas prestaes. ASP, sendo uma tecnologia Microsoft, est orientado para sistemas Windows. O ASP realiza numerosas tarefas servindo-se de componentes (objetos) que devem ser comprados (ou programados) pelo servidor a determinadas empresas especializadas. PHP tm uma filosofia totalmente diferente e, com um esprito mais generoso, construdo progressivamente por colaboradores desinteressados que implementam novas funes em novas verses da linguagem.

Este manual est destinado a todos os que quiserem comear do zero na aprendizagem desta linguagem e que estejam procura da sua utilizao direta no seu projeto de Site ou no seu Site HTML. Os captulos so extremamente simples, sem ser simplistas, procurando ser acessveis maioria. Eles podem ser complementados posteriormente com outros artigos de maior nvel, destinados gente mais experiente. A forma como relatamos este manual faz com que este seja acessvel a qualquer pessoa no familiarizada com a programao. Mesmo assim, possvel que em determinadas alturas algum que nunca tenha programado se veja um pouco desorientado. O nosso conselho de no querer perceber tudo antes de passar ao captulo seguinte, mas sim de tentar assimilar alguns conceitos e voltar a trs quando surgir uma dvida ou nos tenhamos esquecido de algum detalhe. Nunca faz mal ler vrias vezes o mesmo at que fique bem gravado e assimilado. Esperamos que este manual seja do vosso agrado e que se corresponda s nossas expectativas: O poder aproximar o PHP a todos os amantes do desenvolvimento de Web que querem dar o passo s Webs profissionais.

Breve Histria do PHP PHP uma linguagem criada por uma grande comunidade de pessoas. O sistema foi desenvolvido originalmente no ano 1994 por Rasmus Lerdorf como um CGI escrito em C que permitia a interpretao de um nmero limitado de comandos. O sistema foi denominado Personal Home Page Tools e adquiriu um relativo xito pelo que outras pessoas pediram a Rasmus que lhes permitisse utilizar os seus programas nas suas prprias paginas. Devido aceitao do primeiro PHP e de maneira adicional, o seu criador desenhou um sistema para processar formulrios ao qual deu o nome de FI (Form Interpreter) e o conjunto destas duas ferramentas, seria a primeira verso compacta da linguagem: PHP/FI.

A seguinte grande contribuio linguagem foi realizada a meados de 97 quando se voltou a programar o analisador sinttico. Acrescentaram-se novas funcionalidades como o suporte de novos protocolos de Internet e o suporte da grande maioria de bases de dados comerciais. Todos estes melhoramentos constituram a base do PHP verso 3. A verso atual de PHP a verso 5, que utiliza o motor Zend, desenvolvido com maior meditao para cobrir as necessidades atuais e solucionar alguns inconvenientes da verso anterior. Alguns melhoramentos desta nova verso so a sua rapidez, pois agora primeiro compila-se e depois executa-se, quando antes se executava ao mesmo tempo que se interpretava o cdigo. Outra qualidade a sua independncia do servidor Web, criando verses de PHP nativas para mais plataformas, e tambm um API mais elaborado e com mais funes. Neste ltimo ano, o nmero de servidores que utilizam PHP aumentou, conseguindo situar-se perto dos 5 milhes de Sites e 800.000 endereos IP, o que converteu PHP numa tecnologia popular. Isto deve-se, entre outras razes, ao fato de PHP ser o complemento ideal para que o Linux-Apache seja compatvel com a programao do lado do servidor de stios Web. Devido aceitao que conseguiu, e o grande esforo realizado por uma crescente comunidade de colaboradores para tentar conseguir uma implementao tima, podemos assegurar que a linguagem ir converte-se num standard que compartilhar os xitos augurados ao conjunto dos sistemas desenvolvidos em cdigo aberto.

Tarefas Principais do PHP Pouco a pouco o PHP vai-se convertendo numa linguagem que nos permite fazer de tudo. Num princpio desenhado para realizar pouco mais do que um contador e um livro de visitas, PHP experimentou em pouco tempo uma verdadeira revoluo e, a partir das suas funes, neste momento pode realizar-se um grande nmero de tarefas teis para o desenvolvimento Web:

Funes de correio eletrnico Podemos com uma facilidade assombrosa enviar um e-mail a uma pessoa ou lista parametrizado toda uma srie de aspectos tais como o e-mail de procedncia, assunto, pessoa a responder... Outras funes menos freqentes, mas de indiscutvel utilidade para a gesto de correios eletrnicos so includas na sua livraria.

Gesto de bases de dados Torna-se complicado criar um Site atual, potente e rico em contedo que no gerido por uma base de dados. A linguagem PHP oferece interfaces para o acesso maioria das bases de dados comerciais e por ODBC a todas as bases de dados possveis em sistemas Microsoft, a partir das quais poderemos editar o contedo do nosso Site com uma simplicidade absoluta.

Gesto de Arquivos Criar, apagar, mover, modificar... qualquer tipo de operao mais ou menos razovel de que nos possamos lembrar pode ser realizada a partir de uma ampla livraria de funes para a gesto de Arquivos PHP. Tambm podemos transferir Arquivos por FTP a partir de comandos no nosso cdigo, protocolo para o qual PHP previu tambm grande quantidade de funes.

Tratamento de Imagens Evidentemente muito mais simples utilizar Photoshop para o tratamento de uma imagem mas... e se temos de tratar montes de imagens enviadas pelos nossos cibernautas? A verdade que pode ser chato uniformizar em tamanho e em formato vrias imagens recebidas todos os dias. Tudo isto pode ser automatizado eficazmente a travs de PHP. Tambm pode parece til criar botes dinmicos, isto , botes em que utilizamos o mesmo design e s mudamos o texto. Poderemos por exemplo criar um boto fazendo uma nica chamada a uma funo em que introduzimos um estilo do boto e o texto a introduzir obtendo automaticamente o boto desejado. A partir da livraria de funes grficas podemos fazer isto e muito mais. Muitas outras funes pensadas para a Internet (tratamento de cookies, acessos restringidos, comercio eletrnico...) ou para propsito geral (funes matemticas, explorao de cadeias, de datas, correo ortogrfica, compresso de Arquivos...) so realizadas por esta linguagem. A esta imensa livraria s resta agregar todas as funes pessoais que vamos criando por necessidades prprias e que logo so reutilizadas noutros Sites e todas aquelas trocadas e obtidas em foros e Sites especializados. Como vemos, as possibilidades que nos oferece so surpreendentes. S necessrio um pouco de vontade de aprender e um pouco de pacincia nos nossos primeiros passos. O resultado pode ser muito satisfatrio.

Instalao do PHP no Nosso Servidor Como todas as linguagem do lado do servidor, PHP requer uma instalao de um servidor no nosso PC para poder trabalhar em local. Este modo de trabalho torna-se mais pratico do que colocar os Arquivos por FTP no servidor e execut-los a partir da Internet. Desta maneira, antes de comear a criar os nossos programas em PHP necessrio: Transformar o nosso computador num servidor. Isto faz-se instalando um dos vrios servidores disponveis para o sistema operativo da nossa mquina. Introduzir no nosso servidor os Arquivos que lhe permitem a compreenso do PHP. Estes Arquivos podem ser obtidos, na sua verso mais atual, na pgina oficial do PHP. Para ficar a conhecer a forma de instalar PHP sobre cada servidor de cada sistema operativo podemos ir ao apartado de documentao da pgina oficial de PHP onde podemos consultar um manual em HTML de rpida consulta e um enorme manual em PDF de quase 1000 pginas que explica de minuciosamente entre outras coisas, os passos a seguir para cada caso particular. De qualquer forma, ns vamos oferecer algumas ajudas para configurar PHP nos sistemas mais comuns. A eleio do nosso programa servidor ter muito que ver com o sistema operativo que tenhas a funcionar no teu computador. Estas seriam algumas possibilidades de sistemas operativos e solues que funcionam bem.

Instalao do PHP e Apache no Windows XP Como vimos anteriormente o PHP uma linguagem que roda direto no servidor, portanto, para que possamos estudar os recursos desta poder linguagem precisamos de um servidor WEB que pode ser um servidor profissional ou ento seu prprio computador, que a maneira que estaremos estudando, ou seja, seu computador se tornar um servidor WEB, no para uso profissional, mas para fins de desenvolvimento e aprendizado.

Veja o tutorial completo para instalao do Apache + PHP + MySQL + PHPMyadmin: www.kaizeninformatica.com/index.php?mod=dicas1

Uso do PHPeditor Para a edio de nossos arquivos em PHP recomendamos o uso de um software gratuito, o PHPeditor que muito eficiente na programao. Clique no link abaixo para download do mesmo: www.phpgratis.com.br/editores/php-editor-gratis

Introduo Sintaxe PHP PHP escreve-se dentro da prpria pgina Web, junto ao cdigo HTML e como para qualquer outro tipo de linguagem includo num cdigo HTML, em PHP necessitamos de especificar quais so as partes constituintes do cdigo escritas nesta linguagem. Isto faz-se, como em outros casos, delimitando o nosso cdigo por etiquetas (tambm chamadas de tags). Podemos utilizar diversos modelos de etiquetas em funo das nossas preferncias e costumes. H que ter em conta que no necessariamente todas esto configuradas inicialmente e que outras s esto disponveis a partir de uma determinada verso (3.0.4). A maneira de abrir e fechar as etiquetas so: Etiquetas PHP

<? ?> <?php ?> <script language="php"

>

Este ltimo modo est principalmente aconselhado a todos aqueles que tenham a coragem de trabalhar com o Front Page, pois usando qualquer outra etiqueta corremos o risco que a aplicao no-la apague sem mais nem menos pois trata-se de um cdigo incompreensvel para ela. O modo de funcionamento de uma pgina PHP, a grandes rasgos, no difere do clssico de uma pgina dinmica do lado do servidor: O servidor vai reconhecer a extenso correspondente a pgina PHP (phtml, php, php4,...) e antes de envi-la ao navegador vai encarregar-se de interpretar e executar tudo aquilo que se encontre entre as etiquetas correspondentes a linguagem PHP. O resto, vai envi-lo tal qual, posto que assumir que se trata de cdigo HTML absolutamente compreensvel para o navegador. Outra caracterstica geral dos scipts em PHP a forma na qual se separam umas sentenas das outras. Para faze-lo, temos de acabar cada sentena com um ponto e virgula ";". Para a ultima sentena, a que vai mesmo antes do etiqueta de fecho, no seria necessrio. Inclumos tambm neste capitulo a sintaxe de comentrios. Um comentrio, para aqueles que no o saibam, uma frase ou palavra que ns inclumos no cdigo para compreende-lo mais facilmente ao voltar a l-lo um tempo mais tarde e por suposto, o computador tem de ignorar pois no vai dirigido a ele, se no a ns mesmos. Os comentrios tem uma grande utilidade pois muito fcil esquecer-se do funcionamento se um script programado faz algum tempo sendo muito til se queremos fazer rapidamente compreensvel o nosso cdigo a outra pessoa. Pois bem, a forma de incluir estes comentrios varia conforme o tamanho do comentrio, isto se queres escrever uma linha ou mais. Vejamos um primeiro exemplo de script em PHP: Na pasta raiz crie um arquivo chamado comentario.php e insira o seguinte contedo no mesmo. comentario.php

<HTML> <HEAD> <TITLE>SCRIPT EM PHP</TITLE> </HEAD> <BODY> <? $mensagem="Meu primeiro script em PHP"; //Comentrio de uma linha echo $mensagem; #Este comentario tambm de uma linha /*Neste caso o meu comentrio ocupa varias linhas, ests a ver? */ ?> </BODY> </HTML> Logo depois de inserir o cdigo usando o PHPeditor, o mesmo estar semelhante ao mostrado abaixo:

Veja o resultado abrindo seu browser e digitando o seguinte endereo: http://localhost/comentario.php Observe bem o cdigo e guarde os padres, sempre que for iniciar um novo arquivo, clique em arquivo > novo no PHPeditor que o mesmo inicia os padres HTML automaticamente, pois a partir de agora passaremos somente o cdigo PHP. Se usarmos dupla barra (//) ou o smbolo # podemos introduzir comentrios de uma linha. Mediante /* e */ criamos comentrios multilinha. Claro que, nada nos impede de usar os ltimos com uma s linha. No te preocupes se no compreendes o texto contido nas etiquetas, tudo chegar. Adiantamos que as variveis em PHP definem-se antepondo um smbolo de dlar ($).

Exemplos de variaveis em PHP: $nome, $valor, $total... A instruo echo serve para sacar pelo ecr o que est escrito a continuao, ou seja, ela escreve algo na tela, no nosso exemplo foi escrito o contedo armazenado na varivel $mensagem. Lembramos que todo o texto introduzido em forma de comentrio completamente ignorado pelo servidor. importante acostumar-se a deixar comentrios, pois com o tempo, voc pode precisar fazer correes no cdigo e nesses momentos os comentrios so muito teis. Variveis em PHP A varivel uma parte que fica reservada para armazenamento de informaes que variam (mudam constantemente) durante a execuo do script. Vamos imaginar uma pgina de cadastro de clientes, voc abre esta pgina e tem um campo nome, com certeza nesta pginas sero cadastrados vrios clientes cada um com seu nome, a que entra o papel da varivel. Podemos, portanto, criar uma varivel chamada $nome que ir armazenar os nomes digitados. Em PHP, as variveis so definidas inserindo o smbolo dlar ($) antes do nome da varivel que estamos a definir. O tipo da varivel ir depender do tipo de informao que a mesma ir armazenar.

Variveis numricas: So as que armazenam nmeros. Inteiros: So variveis que armazenam nmeros sem casas decimais: $inteiro= 2007; Real: So variveis que armazenam nmeros com casas decimais: $real= 3,14159; Variveis alfanumricas: So as que armazenam textos compostos de letras e nmeros. Este tipo de varivel armazena tudo em forma de texto (strings), ou seja, 5, por exemplo, o nmero cinco e no um valor numrico 5. $mensagem= Texto ou nmero qualquer aqui; Existem diversos outros tipos de variveis, porm iremos nos reter s as numricas e alfanumricas por enquanto, j que para incio iremos trabalhar mais s com estes dois tipos. Para quem deseja se aprofundar mais nos tipos de variaveis em PHP, vale dar uma parada por aqui e dar uma olhadinha no manual do PHP na sesso de variveis. Diferente das outras linguagens, o PHP tem uma grande flexibilidade a hora de operar com variveis. De fato, quando definimos uma varivel dando-lhe um valor, o computador atribui-lhe um tipo. Por exemplo, se definirmos uma varivel entre aspas, a varivel ser considerada de tipo string (de caracteres): $variavel= "5"; //isto uma string $variavel= 5; //isto um nmero No devemos preocupar-nos com nada, pois o PHP encarrega-se durante a execuo de interpretar o tipo de varivel necessrio para o bom funcionamento do programa, ou seja, no necessrio informar ao PHP que aquela varivel que voc declarou do tipo numrica ou alfanumrica, pois o PHP j entende isso observando o valor dado varivel, ou seja, se a varivel est entre aspas (" ") ele j sabe que esta uma varivel alfanumrica, se no ele j sabe que a varivel do tipo numrica. Mesmo assim, em contraste, temos de ter cuidado para no mudar maisculas por minsculas, pois neste sentido, PHP sensvel, ou seja, para o PHP Kaizen kaizen KAIZEN so valores diferentes. Convm pois trabalhar sempre em maisculas ou sempre em minsculas para evitar este tipo de mal-entendidos s vezes muito difceis de localizar.

Variveis de Sistema em PHP Dada a sua natureza de linguagem do lado do servidor, PHP capaz de nos dar acesso a toda uma srie de variveis para que o cliente envie ou receba dados do servidor. A informao destas variveis atribuda pelo servidor e em nenhum caso nos possvel modificar os seus valores diretamente mediante o script. Para faz-lo necessrio influir sobre a propriedade que definem. Existem vrias variveis deste tipo, algumas sem utilidade aparente e outras realmente interessantes e com uma aplicao direita para o nosso Site. Aqui enumeramos algumas destas variveis e a informao que nos oferecem:

Varivel

Descrio Informa-nos principalmente sobre o sistema operativo e tipo e verso do navegador utilizado pelo cibernauta. A sua principal utilidade radica em que, a partir desta informao, podemos redirecionar os nossos usurios a pginas otimizadas para o seu navegador ou realizar qualquer outro tipo de ao no contexto de um navegador determinado.

$HTTP_USER_AGENT

Retorna-nos a ou as abreviaes da lngua considerada como principal pelo navegador. Esta lngua ou lnguas principais podem ser escolhidas no menu de opes do $HTTP_ACCEPT_LANGUAGE navegador. Esta varivel torna-se tambm extremamente til para enviar o cibernauta s pginas na sua lngua, se que existem. $HTTP_REFERER $PHP_SELF $HTTP_GET_VARS $HTTP_POST_VARS $HTTP_COOKIES_VARS $PHP_AUTH_USER Indica-nos a URL com a qual o cibernauta teve acesso a pgina. Muito interessante para gerar botes de "atrs" dinmicos ou para criar os nossos prprios sistemas estatsticos. Retorna-nos uma cadeia com a URL do script que est a ser executado. Muito interessante para criar botes para recarregar a pgina. Trata-se de um array que armazena os nomes e os contedos das variveis enviadas ao script por URL ou por formulrios GET. Trata-se de um array que armazena os nomes e os contedos das variveis enviadas ao script por meio de um formulrio POST. Trata-se de um array que armazena os nomes o os contedos das cookies. Veremos o que so mais tarde. Armazena a varivel usurio quando se efetua a entrada a pginas de acesso restringido. Combinado com $PHP_AUTH_PW ideal para controlar o acesso s pginas internas do Site. Armazena a varivel password quando se efetua a entrada a pginas de acesso restringido. Combinado com $PHP_AUTH_USER ideal para controlar o acesso s pginas internas do Site. Mostra o endereo IP do visitante. Retorna-nos o path fsico no qual se encontra alojada a pgina no servidor. Guarda o identificador da sesso do usurio. Veremos mais frente o que so as sesses.

$PHP_AUTH_PW $REMOTE_ADDR $DOCUMENT_ROOT $PHPSESSID

Nem todas as variveis esto disponveis na totalidade dos servidores ou em determinadas verses dum mesmo servidor. Ademais, algumas delas tem de ser previamente ativadas ou definidas por meio de algum evento. Assim, por exemplo, a varivel $HTTP_REFERER no est definida a menos que o cibernauta aceda ao script a partir de um link desde outra pgina. Variveis Superglobais A partir do PHP 4.1.0, dispem-se de um conjunto de variveis de tipo array que mantm informao do sistema, chamadas superglobais porque se definem automaticamente num mbito global.

Estas variveis fazem referncia s mesmas que se acediam antes por meio dos arrays do tipo $HTTP_*_VARS. Estas ainda existem, ainda que a partir de PHP 5.0.0 podem-se desativar com a diretiva register_long_arrays. A lista destas variveis, extrada diretamente da documentao de PHP a seguinte: $GLOBALS Contem uma referncia a cada varivel disponvel no espectro das variveis do script. As chaves desta matriz so os nomes das variveis globais. $GLOBALS existe desde PHP 3. $_SERVER Variveis definidas pelo servidor Web ou diretamente relacionadas com o entorno onde se est a executar.Anloga a antiga matriz $HTTP_SERVER_VARS (a qual ainda est disponvel, ainda que no se utilize). $_GET Variveis proporcionadas ao script por meio de HTTP GET. Anloga a antiga matriz $HTTP_GET_VARS (que ainda est disponvel, ainda que no se utilize). $_POST Variveis proporcionadas ao script por meio de HTTP POST. Anloga a antiga matriz $HTTP_POST_VARS (que ainda est disponvel, ainda que no se utilize). $_COOKIE Variveis proporcionadas ao script por meio de HTTP cookies. Anloga a antiga matriz $HTTP_COOKIE_VARS (que ainda est disponvel, ainda que no se utilize). $_FILES Variveis proporcionadas ao script por meio da subida de Arquivos via HTTP. Anloga a antiga matriz $HTTP_POST_FILES (que ainda est disponvel, ainda que no se utilize). $_ENV Variveis proporcionadas ao script por meio do entorno. Anloga a antiga matriz $HTTP_ENV_VARS (que ainda est disponvel, ainda que no se utilize). $_REQUEST Variveis proporcionadas ao script por meio de qualquer mecanismo de entrada do usurio e portanto no se pode confiar nelas. A presena e a ordem em que aparecem as variveis nesta matriz so definidas pela diretiva de configurao variables_order. Esta matriz no tem um anlogo em verses anteriores a PHP 4.1.0. Veja tambm import_request_variables(). $_SESSION Variveis registradas na sesso do script. Anloga a antiga matriz $HTTP_SESSION_VARS (que ainda est disponvel, ainda que no se utilize). Tabelas ou Arrays em PHP Um tipo de varivel que pode ser relativamente complicado de assimilar em relao maioria, so os arrays. Um array uma varivel que est formada de vrios elementos, cada um deles catalogado dentro dele mesmo por meio de uma chave. Array PHP <? $sentido[1]="ver"; $sentido[2]="tocar";

$sentido[3]="ouvir"; $sentido[4]="gosto"; $sentido[5]="cheirar"; ?> Este array como se imaginssemos uma tabela na horizontal com cinco quadros e cada quadro fosse uma posio, veja: array $sentido de 5 posies [1] ver [2] tocar [3] ouvir [4] gosto [5] cheirar

Neste caso este array cataloga os seus elementos, normalmente chamados valores, por nmero. Os nmeros do 1 ao 5 so por conseguinte chaves e os sentidos so os valores associados, ou seja, temos um array de 5 posies chamado de $sentido, portanto, a posio [1] recebe a string ver, a posio [2] recebe a string tocar, a posio [3] recebe a string ouvir, a posio [4] recebe a string gosto e a posio [5] recebe a string cheirar. Nada nos impede de utilizar nomes (strings) para classific-los. A nica coisa que temos de fazer coloc-los entre aspas, no exemplo abaixo, temos um array chamado $moeda de trs posies, onde cada posio informa um pas, e nesta posio armazenada a moeda deste pas: Array com Nomes <? $moeda["espanha"]="Peseta"; $moeda["Portugal"]="Escudo"; $moeda["usa"]="Dolar"; ?> array $moeda de 3 posies ["espanha"] "Peseta" ["Portugal"] "Escudo" ["usa"] "Dolar"

Outra forma de definir identicamente este mesmo array e que nos pode ajudar na criao de arrays mais complexos a seguinte sentena. Definindo um Array <? $moeda=array("espanha"=> "Peseta", "portugal" => "Escudo", "usa" => "Dolar"); ?> De incio no nos interessa aprofundar em arrays, pois o uso do mesmo um pouco complexo para aqueles que esto iniciando com o PHP, porm guarde bem os conceitos dados at agora, pois iremos us-los posteriormente. Cadeias (strings) Uma das variveis mais frequentes as que teremos que fazer frente na maioria dos nossos scripts so as cadeias, ou ento as chamadas strings, que no so mais que informao de carcteres no numrico (textos, por exemplo). Para atribuir a uma varivel um contedo deste tipo, escrevemo-lo entre aspas dando lugar a declaraes deste tipo: $cadeia= "Esta a informao da minha varivel";

Se queremos ver no browser o valor de uma varivel ou uma mensagem qualquer usaremos o comando echo como j dissemos anteriormente: echo $cadeia; //Mostra no browser o texto informado na varivel cadeia echo " Esta a informao da minha varivel "; //daria o mesmo resultado Podemos concatenar vrias cadeias pondo um ponto entre elas, vamos a mais um exemplo prtico. Crie um novo arquivo no PHPeditor chamado cadeias.php e insira o seguinte contedo no espao do cdigo PHP. cadeias.php <? $cadeia1= "Co"; $cadeia2= " morde"; $cadeia3= $cadeia1.$cadeia2; echo $cadeia3 //O resultado : "Co morde" ?> Salve o arquivo, abra o browser e digite o seguinte endereo: http://localhost/cadeias.php No browser voc ver: Co morde Neste exemplo temos trs variveis: $cadeia1 recebe a string Co $cadeia2 recebe a string morde $cadeia3 recebe o valor de $cadeia1 e junta com o valor de $cadeia2

Logo depois temos a funo echo exibindo o contedo da varivel $cadeia3. Tambm podemos introduzir variveis dentro da nossa cadeia o qual nos pode ajudar muito a desenvolver os nossos scripts. O que veremos no o nome, mas sim o valor da varivel. Varivel na Cadeia <? $a=55; $mensagem="Tenho $a anos"; echo $mensagem //O resultado : "Tenho 55 anos" ?> Uso de Caracteres Especficos em Strings Existem momentos em que necessitamos de usar caracteres especiais nas stings, por exemplo, desejo escrever no browser: O celular custa R$ 200,00. Pode-se observar que nessa string temos um caractere especial que o $. Pois bem, pra colocar este e outros caracteres utilizados pela linguagem dentro de cadeias e no confundi-las, temos que escrever uma contra barra (\) a frente, veja: \$ = Insere o caractere reservado $ na string \ = Insere o caractere reservado na string \\ = Insere o caractere reservado \ na string \8/2 = Escreve 8/2 e no 4 na string

Tambm existem outras utilidades de esta contra barra que nos permitem introduzir no nosso documento HTML determinados eventos, por exemplo: \t = Insere tabulao na string \n = Muda de linha \r = Salto de linha

Estas mudanas de linha e tabulaes tm unicamente efeito no cdigo e no texto executado pelo navegador. Noutras palavras, se queremos que o nosso texto seja executado e no meio da execuo mude de linha de linha temos de introduzir um echo "" e no echo"\n" pois este ultimo s muda de linha no arquivo HTML criado ao enviar ao navegador quando a pgina seja executada no servidor. A diferena entre estes dois elementos pode ser facilmente compreendida observando o cdigo fonte produzido ao executar o script: Quebra de Linha <? echo "Ol, \n continuo na mesma linha executada mas no no cdigo fonte.<br>Agora mudo de linha executada mas continuo na mesma no cdigo fonte."; ?> Exerccio 1 Vamos a um exemplo simples porm didtico pra treinarmos o que aprendemos at agora. Abra o PHPeditor e crie um novo arquivo e salve-o como exercicio1.php e na parte de PHP insira o seguinte cdigo: exercicio1.php <? //Anuncio echo "Minha primeira pgina tabajara!"; echo "<br>"; //Informativo //Data $datahoje = date("d") . '-' . date("m") . '-' . date("Y"); echo "Hoje, dia '$datahoje' estamos inaugurando nossa primeira pgina tabajara!"; echo "<br>"; //Boas vindas com o IP echo "Voc est concectado ao nosso sistema atravs do seguinte IP:"; echo $_SERVER['REMOTE_ADDR']; echo "<br>"; //Calculadora tabajara //Variaveis $num1= 5; $num2= 10; echo "Veja as funcionalidades de nossa mega power, bower, seilaoquewer calculadora tabajara!"; echo "<br>"; echo "Com apenas dois nmeros: '$num1' e '$num2' ela capaz de fazer:"; $soma= $num1+$num2; $subtrai= $num1-$num2; $divide= $num2/$num1; $multiplica= $num1*$num2; echo "Somar: '$soma' <br>"; echo "Subtrair: $subtrai <br>";

echo "Dividir: $divide <br>"; echo "Multiplicar: $multiplica <br>"; echo "Isto uma revoluo,<br>Tecnologia,<br>Inovao,Isto TABAJARA!"; ?> Salve este arquivo e abra seu browser digitando o seguinte endereo: http://localhost/exercicio1.php Neste primeiro exerccio vimos muitas coisas das quais estudamos anteriormente, de incio criamos um anncio, informando uma data. Esta data a retirada do servidor, o PHP usa a funo date para capturar a hora local do servidor, portanto se o servidor (que neste caso seu prprio computador), estiver com a data errada, no browser, consequentemente a data tambm estar errada. Logo depois usamos a variavel &_SERVER para adquirirmos o seu IP, e por fim realizamos algumas operaes matemticas com dois nmeros armazenados em variveis diferentes, treinamos tambm o uso da funo echo junto com recursos HTML <br> para saltar as linhas. Para memorizar bem o que foi aprendido faa modificaes gerais neste script salve e atuaize seu browser para visualizar o resultado das alteraes e treine bastante, pois o contedo apresentado at agora ser essencial para um bom aprendizado at o final de nossos estudos.

Controle do fluxo em PHP: Condies IF A programao exige em muitas ocasies a repetio de aes sucessivas ou a escolha de uma determinada sequncia e no de outra dependendo das condies especificas da execuo. Como exemplo, podamos fazer aluso a um script que execute uma sequncia diferente em funo do dia da semana no que nos encontramos. Este tipo de aes podem ser levadas a cabo graas a um conjunto de instrues presentes na maioria das linguagens. Nesta etapa de nossos estudos vamos descrever algumas delas propostas por PHP e que tem uma utilidade evidente. Para evitar complicar o texto, vamos limitar-nos a introduzir as mais importantes deixando de lado outras que podero ser facilmente assimilveis a partir de exemplos prticos. As Condies if Quando queremos que o programa, chegado um certo ponto, tome um caminho concreto em determinados casos e outro diferente se as condies de execuo diferem, partimos do conjunto de instrues if, else e elseif. A estrutura de base para este tipo de instrues a seguinte: Estrutura if if (condio) { Instruo 1; Instruo 2; ... } else { Instruo A; Instruo B; ... }

Chegados a este ponto, o programa verificar o cumprimento ou no da condio. Se a condio certa as instrues 1 e 2 sero executadas. Do contrrio (else), as instrues A y B sero levadas a cabo. Esta estrutura de base pode complicar-se um pouco mais se tivermos em conta que nem tudo necessariamente preto no branco e que existem muita possibilidades. por isso que outras condies se podem questionar dentro de uma condio principal. Falamos pois de condies aninhadas que teriam uma estrutura do seguinte tipo: Condies if aninhadas if (condio1) { Instruo 1; Instruo 2; ... } else { if (condio2) { Instruo A; Instruo B; ... } else { Instruo X ... } } Deste modo, poderamos introduzir o nmero de condies que quisermos dentro de uma condio principal. de grande ajuda a instruo elseif que nos permite numa s linha introduzir uma condio adicional. Este tipo de instruo simplifica ligeiramente a sintaxe que acabamos de ver. Condies adicionais if (condio1) { Instruo 1; Instruo 2; ... } elseif (condio2) { Instruo A; Instruo B; ... } else { Instruo X ... } Vamos treinar um pouco. O uso desta ferramenta claro com um pouco de prtica. Utilizemos um exemplo simples de utilizao de condies. O seguinte programa permitiria detectar a lngua empregue pelo navegador e visualizar uma mensagem nessa lngua. Crie um novo arquivo no PHPeditor e chame-o de linguas.php e insira o seguinte contedo na parte de PHP:

linguas.php <? //Antes de nada introduzimos mensagens em forma de variveis $portugues= "Ola"; $ingles= "Hello"; $frances= "Bonjour"; //Agora lemos do navegador qual a sua lngua oficial $idioma= substr($HTTP_ACCEPT_LANGUAGE,0,2); //Formulamos as possibilidades que se podem dar if ($idioma == "pt") { echo "$portugues <br>"; echo "O idioma padro atual de seu navegador o Portugus"; } elseif ($idioma == "fr") { echo "$frances <br>"; echo "O idioma padro atual de seu navegador o Francs"; }else{ echo "$ingles <br>"; echo "O idioma padro atual de seu navegador o Ingls"; } ?> Salve o arquivo, abra seu browser e digite o seguinte endereo: http://localhost/linguas.php Para poder ver o funcionamento deste script necessrio mudar o idioma preferido o qual pode ser realizado a partir do menu de opes do navegador. Para ler a lngua aceite pelo navegador o que fazemos definir uma varivel ($idioma) e, mediante a funo substr, recolhemos as duas primeiras letras do cdigo correspondente ao idioma aceitado pelo navegador ($HTTP_ACCEPT_LANGUAGE). A terceira parte do script encarrega-se de ver se o navegador est em portugus (pt), francs (fr) ou em qualquer outro idioma que no seja nenhum destes dois e de imprimir a mensagem que proceda em cada caso. Temos de destacar que, quando se trata de comparar variveis, pomos um duplo igual "==" em lugar de um simples "=". Este ltimo fica reservado exclusivamente para atribuir valores s variveis.

Controle do Fluxo em PHP: Loops Os computadores, como qualquer mquina, esto desenhados para realizar tarefas repetitivas. por isso que os nossos programas se podem aproveitar desse princpio para realizar uma determinada sequncia de instrues um certo numero de vezes. Para isso utilizamos as estruturas chamadas em loop que nos ajudam a, usando poucas linhas, realizar uma tarefa includa dentro dum loop um certo nmero de vezes definido por ns mesmos. PHP prope vrios tipos de loops, cada um com umas caractersticas especificas:

Loop While Sem dvida o loop mais utilizado e mais simples. Usamo-lo para executar as instrues contidas no seu interior sempre que a condio definida seja verdadeira. A estrutura sinttica a seguinte: Loop While while (condio)

{ instruo1; instruo2; ... } Um exemplo simples este loop que aumenta o tamanho da fonte numa unidade em cada passagem: Exemplo While <? $size=1; While ($size<=6) { echo"<font size=$size>Tamanho $size</font><br>\n"; $size++; } ?> Como explicao, diremos que, antes de mais, temos de definir o valor da varivel que vamos avaliar na condio. Algo absolutamente bvio mas fcil de esquecer. Neste caso atribumos-lhe o valor 1 que corresponde a letra mais pequena. O passo seguinte criar o loop no qual impomos a condio que a varivel no exceda o valor 6. A instruo a executar ser imprimir no nosso documento um cdigo HTML em que a etiqueta font e a mensagem que contm variam medida que $size muda o seu valor. Seguidamente, devemos incrementar numa unidade o valor de $size. Isto pode-se fazer com uma expresso como a mostrada no loop ($size++) que na realidade sinnimo de: $size=$size+1 Portanto, neste exemplo temos: $size inicia com o valor 1 Comea o loop:

Enquanto a varivel $size for menor ou igual a 6 entao o tamanho da fonte recebe o valor armazenado na variavel $size. $size recebe o seu valor acrescido de 1 Entra no loop novamente e verifica se $size menor ou igual a 6, como neste momento $size estar valendo 2 ento a condio satisfeita e o processo novamente repetido. Assim sucessivamente at que $size tenha o valor 6 onde o loop ento interrompido.

Outro Exemplo do Loop While O loop while costuma utilizar-se quando no se sabe exatamente quantas iteraes se devem realizar antes de acabar. Utilizamo-lo num outro exemplo, no qual temos de recorrer uma cadeia at encontrar um carcter dado. Se o encontra, escrever a sua posio. Se no, escrever que no se encontrou. Nota: Para fazer este exerccio necessitamos de conhecer a funo de cadeia strlen(), que obtm a longitude da cadeia que se passa por parmetro. int strlen (string cad) Retorna um inteiro igual ao tamanho da cadeia. Exerccio: Crie um novo arquivo no PHPeditor e chame-o de while.php e insira o seguinte contedo na parte de PHP:

while.php <? $cadeia = "Ola a todo o mundo"; //recorro a cadeia at encontrar uma "m" $i=0; while ($cadeia[$i]!="m" && $i< strlen($cadeia)) { $i++; } if ($i==strlen($cadeia)) echo "A letra procurada no se encontra..."; else echo "A letra procurada est na posio $i"; ?> Neste exerccio comeamos criando uma varivel chamada $cadeia e inserimos na mesma a seguinte string: Ol a todo mundo. Logo depois criamos uma varivel chamada $i e iniciamos a mesma com o valor zero, esta varivel estar responsvel por informar a posio atual do loop. No fim do loop while, se samos do loop porque se encontrou o carcter "m", a varivel $i ter como valor um nmero menor que o tamanho da cadeia. Se saiu do loop por chegar ao fim da cadeia, a varivel $i ter um valor igual ao do tamanho da cadeia, e por tanto, obtemos que no se achou o carcter passado por parmetro. Para realizar o teste, abra seu browser e digite o seguinte endereo: http://localhost/while.php Loop For PHP tem outros tipos de loops que tambm so muito prticos em determinadas situaes. O mais popular o loop for que, como nos casos anteriores, se encarrega de executar instrues entre chaves. A diferena para com os anteriores radica na forma como se especifica a condio de finalizao do loop. Para esclarecer o seu funcionamento vamos expressar o exemplo do loop while visto no captulo anterior em forma de loop for: Estrutura For <? For ($size=1;$size<=6;$size++) { echo"<font size=$size>Tamanho $size</font><br>\n"; } ?> As expresses dentro do parntese definem respectivamente:

Inicializao da varivel. Valida para o primeiro recorrido do loop. Condio de avaliao em cada recorrido. Se for certa, o loop continua. A realizar no final de cada recorrido do loop.

Loop Foreach Este loop, implementado nas verses 4 do PHP, ajuda-nos a recorrer os valores de um array o que pode ser muito til para, por exemplo, efetuar uma leitura rpida do mesmo.

Recordamos que um array s uma varivel que guarda um conjunto de elementos (valores) catalogados por chaves. A estrutura geral a seguinte: Estrutura Foreach Foreach ($array as $chave=>$valor) { instruo1; instruo2; ... } Um exemplo prtico a leitura de um array que se poderia fazer do seguinte modo: Exemplo Foreach <? $moeda=array("Espanha"=> "Peseta","Portugal" => "Escudo","USA" => "Dolar"); Foreach ($moeda as $chave=>$valor) { echo "Pais: $chave Moeda: $valor<br>"; } ?> Este script encarrega-se de nos mostrar pelo browser o contedo do array $moeda. No seria m idia criar uma funo prpria baseada neste loop que nos permitisse visualizar arrays unidimensionais e armazen-la na nossa livraria. Esta funo poderia ser definida desta forma: Function mostrar_array()

Function mostrar_array ($array) { Foreach ($array as $chave=>$valor) { echo "$chave=>$valor<br>"; } } Break e Continue Estas duas instrues introduzem-se dentro da estrutura e servem-nos respectivamente para sair do loop e para saltar a seguinte iterao. Podem ser muito teis em algumas situaes.

Operadores As variveis, como base da informao de uma linguagem, podem ser criadas, modificadas e comparadas com outras por meio dos chamados operadores. Nos captulos anteriores utilizamos nos nossos exemplos alguns deles. Neste captulo pretendemos dar a conhecer os mais importantes para os usar em futuros exemplos.

Operadores Aritmticos

Permitem-nos realizar operaes numricas com as nossas variveis.

+ --> Soma - --> Subtrao * --> Multiplicao / --> Diviso % --> Retorna o resto da diviso.

Operadores de Comparao Utilizam-se principalmente, nas nossas condies, para comparar duas variveis e verificar se cumprem ou no a propriedade do operador.

== --> Igualdade != --> Desigualdade < --> Menor que <= --> Menor ou igual que > --> Maior que >= --> Maior ou igual que

Operadores Lgicos Usam-se em combinao com os operadores de comparao quando a expresso da condio assim o requer.

And --> E Or --> Ou ! --> No

Operadores de Incremento Servem para aumentar ou diminuir numa unidade o valor de uma varivel

++$variavel --> Aumenta em 1 o valor de $variavel --$variavel --> Diminui em 1 o valor de $variavel

Operadores Combinados Uma forma habitual de modificar o valor das variveis atravs dos operadores combinados:

$variavel += 10 --> Soma 10 $variavel $variavel += 10 --> Subtrai 10 $variavel $variavel = acrescento --> Concatena (junta) as strings $variavel e acrescento

Este tipo de expresses no so mais do que abreviaes de outras formas mais clssicas: $variavel += 10 o mesmo que: $variavel = $variavel +10 Passagem de Variveis pela URL Loops e condies so teis para processar os dados dentro de um mesmo script. Mas, num stio de internet, as pginas visitadas e os scripts utilizados so numerosos. Frequentemente precisamos que os nossos scripts estejam conectados uns com os outros e que utilizem variveis comuns. Por outro lado, o usurio interage por meio de formulrios cujos campos tm de ser processados para poder dar resposta. Todo este tipo de fatores dinmicos tm de ser eficazmente regulados por uma linguagem como PHP.

possvel que se tenham apercebido que as variveis de um script tm uma validez exclusiva para o script e que se torna impossvel conservar o seu valor quando executamos outro arquivo diferente ainda que ambos estejam ligados. Existem vrias formas de enviar as variveis de uma pgina a outra de maneira que a pgina destino reconhea o valor atribudo pelo script de origem. Para passar as variveis de uma pgina a outra podemos faz-lo introduzindo a varivel dentro do link hipertexto da pgina destino. A sintaxe seria a seguinte: <a href="/destino.php?variavel=valor1&variavel2=valor2&...">Meu link</a> Podem observar que estas variveis no possuem o smbolo $ frente. Isto por que, na realidade, este modo de passar variveis no especfico de PHP, sendo utilizado por outras linguagens. Agora a nossa varivel pertence tambm ao entorno da pgina destino.php e est pronta para a sua utilizao. Nota: Nem sempre se definem automaticamente as variveis recebidas por parmetro nas pginas Web, depende de una varivel de configurao de PHP: register_globals, que tem de estar ativada para que assim seja. Ver comentrios do artigo ao final da pgina para mais informao. Para resolver possveis dvidas, vejamos isto em forma de exemplo. Teremos, pois duas pginas, origem.html (no necessrio dar-lhe extenso PHP pois no h nenhum tipo de cdigo) e destino.php:

origem.html <HTML> <HEAD> <TITLE>origem.html</TITLE> </HEAD> <BODY> <a href="destino.php?comprimento=ola&texto=Isto uma varivel de texto" Passo variveis comprimento e texto pgina destino.php </a> </BODY> </HTML> destino.php <HTML> <HEAD> <TITLE>destino.php</TITLE> </HEAD> <BODY> <? echo "Varivel \$comprimento: $comprimento <br>\n"; echo "Varivel \$texto: $texto <br>\n" ?> </BODY> </HTML> $_GET Relembramos que possvel compilar numa s varivel tipo array o conjunto de variveis que foram enviadas ao script por este mtodo a partir da varivel de sistema $_GET, que um array associativo. Utilizando-o ficaria assim: Exemplo $_GET <? echo "Varivel \$comprimento: $_GET_["comprimento"] <br>\n"; echo "Varivel \$texto: $_GET["texto"] <br>\n"

?> Nota: Ainda que possamos recolher variveis com este array associativo ou utilizar directamente as variveis que se definem na nossa pgina, mais seguro utilizar $_GET por duas razes, a primeira que assim temos a certeza que essa varivel vem realmente da URL e a segunda, que assim o nosso cdigo ser mais claro quando o quisermos ler, porque ficar especificado que estamos a receber essa varivel pela URL. Processar Variveis de Formulrios Este tipo de transferncia de uma grande utilidade pois permite-nos interagir diretamente com o usurio. Este processo similar ao explicado para as URLs. Em primeiro lugar, apresentamos uma primeira pgina com o formulrio clssico para preencher e as variveis so recolhidas numa segunda pgina que as processa: Nota: Nem sempre se definem automaticamente as variveis recebidas por parmetro nas pginas Web, depende de uma varivel de configurao de PHP: register_globals, que tem de estar ativada para que assim seja. Ver comentrios do artigo ao final da pgina para mais informao. formulario.html <HTML> <HEAD> <TITLE>formulario.html</TITLE> </HEAD> <BODY> <FORM METHOD="POST" ACTION="destino2.php"> Nome<br> <INPUT TYPE="TEXT" NAME="nome"><br> Apelidos<br> <INPUT TYPE="TEXT" NAME="apelidos"><br> <INPUT TYPE="SUBMIT"> </FORM> </BODY> </HTML> destino2.php <HTML> <HEAD> <TITLE>destino2.php</TITLE> </HEAD> <BODY> <? echo "Varivel \$nome: $nome <br>\n"; echo "Varivel \$apelidos: $apelidos <br>\n" ?> </BODY> </HTML> $_POST Relembramos que possvel compilar numa s varivel tipo array o conjunto de variveis que foram enviadas ao script por este mtodo a partir da varivel de sistema $_POST: echo "Varivel \$nome: " . $_POST["nome"] . "<br>\n"; Nota: Ainda que possamos recolher variveis com este array associativo ou utilizar diretamente as variveis que se definem na nossa pgina, torna-se mais seguro utilizar $_POST por duas razes, a primeira que assim temos a certeza que essa varivel vem realmente de um formulrio e a segunda, que assim o nosso cdigo ser menos confuso quando queiramos l-lo, porque ficar especificado que estamos a receber essa varivel atravs de um formulrio.

Exemplo de Restrio de Acesso por Idade Para continuar com exemplos de uso de formulrios vamos realizar uma pgina que mostra e solicita a idade do visitante e, dependendo da sua idade, permite ou no visualizar o contedo da Web. A maiores de 18 anos -lhes permitido ver a pgina e a menores no. O exemplo muito simples e no seria correto para utiliz-lo tal e qual a modo de uma verdadeira barreira de acesso. S nos serve para saber como obter dados de um formulrio e como trat-los para realizar uma ou outra ao, dependendo do seu valor. A pgina do formulrio, qual demos o nome idade.php, teria o seguinte aspecto: idade.php <html> <head> <title>Restringir por idade</title> </head> <body> <form action="idade2.php" method="post"> Escreve a tua idade: <input type="text" name="idade" size="2"> <input type="submit" value="Entrar"> </form> </body> </html> Esta uma pgina sem nenhum cdigo PHP, simplesmente tem um formulrio. Se repararmos no action do formulrio, que est dirigido a uma pgina chamada idade2.php, que a que receber o valor da idade e mostrar um contedo ou outro dependendo desse valor. O seu cdigo seria o seguinte: idade2.php <html> <head> <title>Restringir por idade</title> </head> <body> <? $idade = $_POST["idade"]; echo "Tua idade: $idade<p>"; if ($idade < 18) { echo "No podes entrar"; }else{ echo "Bemvindo"; } ?> </body> </html> Esperamos que este outro cdigo tambm no seja estranho. Simplesmente o formulrio recebe a idade, utilizando o array $_POST. A seguir, mostra-se a idade e executa-se uma expresso condicional em funo de que a idade seja menor que 18. Em caso positivo (idade menor que 18), mostra-se uma mensagem que informa que no se pode acessar pgina. Em caso negativo (maior ou igual a 18) mostra-se uma mensagem de Boas-vindas.

Autochamada de Pginas

Ao incluir um formulrio numa pgina deve-se indicar, atravs do atributo action, o nome do arquivo PHP ao que enviaremos os dados escritos no formulrio. Desta maneira, para um esquema de envio de dados por formulrio, podem participar duas pginas: uma que contm o formulrio e outra que recebe os dados de dito formulrio. O mesmo acontece quando enviamos variveis pela URL. Temos uma pgina que conter o link e outra pgina que receber e tratar esses dados para mostrar uns resultados. Neste artigo vamos ver como se pode enviar e receber dados de um formulrio com uma nica pgina. Tambm veremos como na mesma pgina podemos ter links com passagem de variveis pela URL e podemos recolher e tratar esses dados com a mesma pgina. A este efeito podemos chamar-lhe "autochamada de pginas", mas tambm normal dar-lhe o nome de "formulrios reentrantes" ou trminos similares. muito interessante conhecer o modo de funcionamento destes scripts, porque sero muito habituais nas nossas pginas PHP e ajudam muito a ter os cdigos ordenados. Em ambos casos, para formulrios o envio de dados pela URL, deve-se seguir um esquema como abaixo. Comprovar se recebo dados pela URL ou pelo formulrio: Se no recebo dados

Mostro o formulrio e os links que pasma as variveis

Se recebo dados

Tenho de processar o formulrio ou as variveis da URL Para um formulrio

Vejamos a continuao como seria o cdigo de um formulrio reentrante: Exemplo Autochamada <html> <head> <title>Chamo-me a mim mesmo...</title> </head> <body> <? if (!$_POST){ ?> <form action="auto-chamada.php" method="post"> Nome: <input type="text" name="nome" size="30"> <br> Empresa: <input type="text" name="empresa" size="30"> <br> Telefone: <input type="text" name="telefone" size=14 value="+351 " > <br> <input type="submit" value="Enviar"> </form> <? }else{ echo "<br>Seu nome: " . $_POST["nome"]; echo "<br>Sua empresa: " . $_POST["empresa"]; echo "<br>Seu Telefone: " . $_POST["telefone"]; } ?> </body> </html> No exemplo, o primeiro passo conhecer se se esto a receber ou no os dados atravs de um formulrio. Pra isso comprova-se com um enunciado if se existe ou no uma varivel $_POST.

Em concreto if (!$_POST) quer dizer algo assim como "Se no existem dados provenientes de um formulrio". No caso de que no existam, mostro o formulrio. Em caso de que efetivamente existam, recolho os dados e imprimoos na pgina. Pode-se ver o exemplo em funcionamento noutra pgina.

Para Passagem de Variveis pela URL A idia a mesma. Verificar com um enunciado if se os dados so recebidos desde uma URL. Vejamos o cdigo a continuao. Trata-se de uma pgina que mostra uma serie de links para ver as tabuadas do 1 ao 10. Cada um dos links mostra uma tabuada. Pressionando o primeiro link podemos ver a tabuada do 1, no segundo a tabuada do 2, etc. Recordemos que a pgina chama-se a si mesma. Para compreende-la mais facilmente interessante ve-la em funcionamento. Variveis pela URL <html> <head> <title>Tabuadas</title> </head> <body> <? if (!$_GET){ for ($i=1;$i<=10;$i++){ echo "<br><a href='ver_tabuada.php?tabuada=$i'>Ver a tabuada do $i</a>\n"; } } else { $tabuada=$_GET["tabuada"]; ?> <table align=center border=1 cellpadding="1"> <? for ($i=0;$i<=10;$i++){ echo "<tr><td>$tabuada X $i</td><td>=</td><td>" . $tabuada * $i . "</td></tr>\n"; } ?> </table> <? } ?> </body> </html> Este cdigo um pouco mais complicado, porque faz bastantes mais coisas que o anterior, mas para o assunto que nos preocupa que a autochamada de pginas, tudo continua igual de simples. Temos de reparar que o if verifica se recebemos dados pela URL: if ($_GET), que quer dizer algo como "Se no se recebem variveis pela URL". Em caso positivo (no se recebem dados pela URL) mostram-se os links para ver cada uma das tabuadas e em caso de receber dados, mostra-se a tabuada do nmero que se est a receber na URL. Para mostrar os links e as tabuadas utilizam-se loops for, que esperamos que no resultem desconhecidos para o leitor. Carregar uma Aplicao PHP ao Servidor

Uma vez pediram-me que escrevesse sobre um tema que at agora no tnhamos tocado demasiado, que consiste em por uma aplicao a funcionar, programada em local, no nosso servidor de hosting, isto , na transferncia de todos os Arquivos PHP e a base de dados ao nosso espao no servidor contratado num provedor de alojamento. Espero que o assunto vos seja familiar a todos os que lem os nossos artigos, pois provavelmente j tenham tido que passar por essa etapa em alguma ocasio, ainda que pretendo dar algumas dicas que podem ajudar a todos, tenham ou no experincia neste assunto.

Carregar os Arquivos O nosso servidor deve ter um diretrio para a publicao das pginas. Esse seria o lugar onde haveramos de carregar os Arquivos .php. Dependendo do provedor com o que estamos a trabalhar, o diretrio de publicao pode variar. Normalmente, quando contratamos um servio de hospedagem, proporcionam-nos uma conta de FTP para nos poder conectar ao servidor e transferir os Arquivos do nosso Site, para alm de uns dados para a conexo, que sero o nome do servidor e o usurio e password para o acesso ao FTP. Ao acessarmos o servidor com os dados do FTP, que devem ser proporcionados pelo nosso provedor, somos setados a um diretrio. Este diretrio poderia ser o de publicao, ainda que normalmente no assim, muito comum ser um subdiretrio chamado "HTML" ou "docs" ou algo similar. Como estava a dizer, este diretrio pode ter nomes diferentes em provedores diferentes, mas em qualquer caso, com uma simples pergunta ao nosso provedor resolvemos essa dvida. Os Arquivos devem ser carregados ao diretrio de publicao, ou a qualquer subdiretrio deste. Concluindo, que teremos de hosped-los por ai dentro e para acess-los bastaria com escrever o nome do domnio ou URL do nosso servidor de hospedagem, seguido do nome do arquivo. Se tivssemos um arquivo chamado ola.php e o nosso servidor de hospedagem tivesse sido contratado para o domnio www.meudominio.com, deveramos de carregar esse arquivo ao diretrio de publicao e acessaramos ao arquivo escrevendo:

http://www.meudominio.com/ola.php Se criarmos subdiretrios dentro do diretrio de publicao poderemos carrega-los escrevendo o nome do domnio ou URL do nosso Servidor de Hospedagem, seguido do nome do diretrio e do nome do arquivo. Por exemplo, se criamos um subdiretrio chamado paginas e temos dentro um arquivo chamado pag1.php, poderamos acessa-lo da seguinte forma:

http://www.meudominio.com/paginas/pag1.php Como Colocar os Arquivos PHP Fora do Diretrio de Publicao importante lembrar que tudo o que pusermos fora do diretrio de publicao no poder ser acessado atravs do navegador. Isto , se criamos um diretrio que se chame funcoes_php ao mesmo nvel que o diretrio de publicao (fora do diretrio de publicao) no seria possvel acessar os arquivos pelo navegados. Isto assim porque a URL de inicio do nosso servidor de hospedagem corresponde com esse diretrio e no podemos movernos para um diretrio que se encontra no mesmo nvel do diretrio de publicao com as URLs, que so a maneira de especificar ao navegador os recursos os quais desejamos acessar. No seria possvel sair do diretrio de publicao com uma URL como esta, por muito que utilizemos o operador. (que serve para acessar ao diretrio pai).

http://www.meudominio.com/../funcoes_php/arquivo_inalcancavel.php De todos os modos, colocar alguns Arquivos fora do diretrio de publicao pode ser muito til. Por exemplo,

poderamos colocar ali copias de segurana de alguns Arquivos ou documentos que simplesmente queremos guardar no servidor para acessar a eles desde qualquer parte e com o nosso programa de FTP. H outra utilidade mais interessante sobre colocar Arquivos fora do diretrio de publicao. Muitas vezes utilizamos nos nossos programas bocados de cdigo repetidamente, por exemplo, para abrir e fechar bases de dados, para mostrar o cabealho do nosso portal, para verificar que um e-mail escrito num formulrio correto, etc. muito til separar estes bocados de cdigo num arquivo parte e chamar este arquivo com as funes PHP include() ou require(). Deste modo, se um dia modificamos o cabealho do nosso portal, s temos que modificar um arquivo ou se muda a base de dados que utilizamos s teramos que modificar o arquivo que faz a ligao base de dados em vez de ir alterando todas as pginas PHP que faziam uma apertura da base de dados. Estes Arquivos no so pginas independentes, mas sim fragmentos. Provavelmente se os executamos por separado no mostrariam nenhum resultado vlido, inclusive poderiam dar mensagens de erro. Por esta razo vale a pena coloc-los num lugar onde ningum pudesse ter acesso: fora do diretrio de publicao. Com PHP poderemos acessar a este diretrio para incluir estes Arquivos. Somente deveramos utilizar as funes PHP include() ou require() indicando o path para acessar aos Arquivos. No caso de ter uma pgina chamada ola.php no diretrio de publicao e um arquivo, que chama abre_base_dados.php, no diretrio funcoes_php, que est fora do diretrio de publicao, se quisssemos acessar (desde ola.php) ao arquivo que abre a base de dados fazemos da seguinte maneira:

include("../funcoes_php/abre_base_dados.php") Desde PHP sim podemos acessar aos Arquivos que se encontram fora do diretrio de publicao. Para isso especificamos o path adequado, na que utilizamos o operador .. Para descer ao diretrio pai. No h nada mais a dizer sobre a colocao dos Arquivos: uma vez situados no diretrio de publicao pode-se acessar a Arquivos com o nosso navegador e deveria-se poder executar perfeitamente. Temos de ter em conta que, tanto PHP como o servidor onde trabalhamos, podem ter configuraes diferentes e pode que algum detalhe de programao das nossas pginas no funcione corretamente. Por exemplo, o nosso PHP pode declarar ou no automaticamente as variveis que chegam atravs dum formulrio. Se em local estava configurado para fazer isso e em remoto no, deveramos localizar os lugares onde recolhemos as variveis e utilizar as variveis corretas (ver artigo sobre Processar variveis em formulrios e os comentrios para saber mais sobre esta possvel fonte de erros). Mesmo no sendo um caso habitual, poderamos entrar em contantos com o nosso Provedor de Hospedagem ver se haveria a possibilidade de nos ajudar com a configurao do sistema ou se podem nos indicar os passos a seguir para resolver o assunto nos nossos scripts.

Comentrio: O seguinte script calcula o nvel de diretrio dos scripts que queremos incluir na pgina atual. // Achamos o nvel do diretrio onde se encontra a pgina 1. Contamos os caracteres que contem o nome do script atual. $Chars = count_chars($PHP_SELF,1); -

2. Exploramos a tabela dos caracteres retornados procurando o carcter ('/' Cdigo 47 ) de diretrio (pasta) que retorna Apache. foreach ($Chars as $Char=>$nChars){ if ($Char==47) {$n=$nChars;break;} } -

3. Geramos uma cadeia de n-1 vezes com a subcadeia "../" que nos da o nvel de diretrio no que se encontra o script. if ($n==0) $PathString=""; else $PathString=str_pad("",($n-1)*3,"../"); Exerccio Final Este script apenas didtico, no devendo ser usado comercialmente, porm nada lhe impede de usar as funes aqui apresentadas em seus projetos comerciais. A idia deste script a seguinte: Temos vrios campos que devem ser preenchidos e que sero validados ao se clicar em validar. A validao ocorre em PHP mesmo. No de nosso interesse explicar o funcionamento deste script, cabe a voc usar dos conhecimentos adquiridos neste mini curso e comentar cada linha do script informando o que a mesma faz. Aos que tentarem comentar as linhas deste script e quiserem ter as mesmas divulgadas na verso 2.0 desta apostila favor enviar o script para minicursophp@hydecorp.org com o seguinte assunto: Comentrios exerccio final PHP bsico. O script melhor comentado ser divulgado na verso 2.0 da apostila. Caso os campos passem pela validao, exibido um texto com as informaes que foram preenchidas nos campos. Repare uma opo interessante que caso a informao no seja vlida, os campos no perdem o que foram preenchidos. Exercicio PHP <? if ($_POST['validar']) { $nome= $_POST['nome']; $endereco= $_POST['endereco']; $cep= $_POST['cep']; $telefone= $_POST['telefone']; $email= $_POST['email']; $site= $_POST['site']; switch (true) { case empty($nome); echo "<script>alert('O Nome deve ser informado!')</script>"; break; case empty($endereco); ec ho "<script>alert('O Endereo deve ser informado!')</script>"; break; case empty($cep); echo "<script>alert('O CEP deve ser informado!')</script>"; break; case empty($telefone); echo "<script>alert('O Telefone deve ser informado!')</script>"; break; case empty($email); echo "<script>alert('O E-Mail deve ser informado!')</script>"; break; case empty($site); echo "<script>alert('O Site deve ser informado!')</script>"; break;

default; if (strlen($nome) < 10) { echo "<script>alert('O Nome informado no vlido, por favor insira seu nome completo!')</script>"; }elseif (strlen($endereco) < 10) { echo "<script>alert('O Endereo informado no vlido!')</script>"; }elseif ( (strlen($cep) < 8) or ( ! (substr_count($cep,"-") = 1)) or (ereg("[a-zA-Z]",$cep)) ) { echo "<script>alert('O CEP informado no vlido. Ex.: #####-###')</script>"; }elseif ( (strlen($telefone) < 10) or ( ! (substr_count($telefone,"-") = 2)) or (ereg("[a-zA-Z]",$telefone)) ) { echo "<script>alert('O Telefone informado no vlido. Ex.: ##-###-####!')</script>"; }elseif ( ( ! (substr_count($email,"@") = 1)) or (substr_count($email,".") < 1) or (strlen($email) < 5) or (substr_count($email, "\\") > 0) ) { echo "<script>alert('O E-Mail informado no vlido. Ex.:usuario@dominio ')</script>"; }elseif ( (substr_count($site,"@") > 0) or (substr_count($site,".") < 2) or (strlen($site) < 5) ) { echo "<script>alert('O site informado no vlido. Ex,: www.dominio!')</script>"; } } $informacoes = "Informaes sobre: $nome: <br><br>"; $informacoes .= "Localiza-se na: $endereco, CEP: $cep. <br>"; $informacoes .= "Contato pelo fone: $telefone, <br>"; $informacoes .= "ou correio eletrnico: $email <br><br>"; $informacoes .= "Visite o site de $nome --> $site <br>"; }else{ $hora = date("H"); if ($hora >= 0 && $hora < 6){ echo "<script>alert('J de madrugada!!!')</script>"; }elseif ($hora >= 6 && $hora < 12){ echo "<script>alert('Tenha um excelente dia!!!')</script>"; }elseif ($hora >= 12 && $hora < 18){ echo "<script>alert('Boa tarde!!!')</script>"; }else{ echo "<script>alert('Uma boa noite!!!')</script>"; } } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Exerc&iacute;cio Final PHP</title> </head> <body> <form id="form1" name="form1" method="post" action=""> <table width="100%" border="0"> <tr> <th colspan="2" scope="col">Valida&ccedil;&atilde;o de campos com PHP </th> </tr> <tr> <td width="50%">&nbsp;</td> <td width="50%" align="right">Seu IP: <? echo $_SERVER['REMOTE_ADDR']; ?></td> </tr> <tr> <td align="right">Nome:</td> <td><div align="left"> <input name="nome" type="text" id="nome" value="<? echo "$nome" ?>" /> </div></td> </tr> <tr>

<td align="right">Endere&ccedil;o:</td> <td><input name="endereco" type="text" id="endereco" value="<? echo "$endereco" ?>" /></td> </tr> <tr> <td align="right">CEP:</td> <td><input name="cep" type="text" id="cep" value="<? echo "$cep" ?>" /></td> </tr> <tr> <td align="right">Telefone:</td> <td><input name="telefone" type="text" id="telefone" value="<? echo "$telefone" ?>" /></td> </tr> <tr> <td align="right">E-mail:</td> <td><input name="email" type="text" id="email" value="<? echo "$email" ?>" /></td> </tr> <tr> <td align="right">Site:</td> <td><input name="site" type="text" id="site" value="<? echo "$site" ?>" /></td> </tr> <tr> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td colspan="2" align="center"><input name="validar" type="submit" id="validar" value="Validar" /></td> </tr> <tr> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td align="right">&nbsp;</td> <td align="left"><? echo $informacoes ?></td> </tr> <tr> <td>&nbsp;</td> <td>&nbsp;</td> </tr> </table> </form> </body> </html> Concluso Como qualquer outro curso, principalmente On-Line so os prprios alunos que fazem a diferena, os resultados vem do esforo e dedicao de cada um, ns da equipe da 4P Solues estamos muito honrados em lhe repassar um pouco do que sabemos, e esperamos que com esse pouco voc possa fazer muito. Com os conhecimentos adquiridos aqui voc j estar apto a iniciar seus prprios projetos em PHP, porm no se esquea que o contedo proposto aqui s o incio, h muito o que estudar e aprender ainda at que voc se torne um programador(a) profissional. Porm quem quer consegue, sabemos que no fcil e a caminhada longa, mas a recompensa garantida.

Você também pode gostar