Vous êtes sur la page 1sur 56

Tpicos Especiais Internet com Php e MySql em Linux

Internet com PHP e MySQL em Linux

Professor: Marcelo Reis Mendes

Tpicos Especiais Internet com Php e MySql em Linux

Programao HTML

Afinal o que HTML ? Para se publicar informao a nvel mundial precisa-se de uma linguagem entendida mundialmente, algo parecido como uma linguagem mundial que todos os computadores possam entender. A linguagem usada para a World Wide Web o HTML (HyperText Markup Language). HTML permite aos autores os meios para: Publicar documentos online com texto, tabelas, fotografias e muito mais. Receber informaes atravs de ligaes (links) de hipertexto atravs de um clique. Desenhar forms para transaes comerciais atravs de servios remotos, para encontrar informao, fazer reservas, encomendar produtos, etc. E ainda incluir som, video e muitas mais aplicaes nos documentos. Uma breve hist ria do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido atravs do Mosaic, um browser desenvolvido em NCSA. Durante os primeiros anos dos 90 expandiuse com a enorme exploso do crescimento da WWW. Durante esse tempo HTML tem-se expandido sem limites de caminhos. A web depende de autores de pginas web que partilham as mesmas concesses de HTML. Isto motivado atravs de trabalho conjunto nas especificaes do HTML. HTML 2.0 (Novembro 1995) foi desenvolvido debaixo da alada da Internet Engineering Task Force (IEFT) para "codificar" a prtica comum nos finais de 1994. HTML+ (1993) e HTML 3.0 (1995) propuseram verses muito mais ricas para o HTML. Apesar de nunca terem recebido consenso nas discusses, os rascunhos levaram adoo de novas caractersticas. Os esforos do World Wide Web Consortium's HTML Working Group para "codificar" a prtica comum em 1996 resultou no HTML 3.2 (Janeiro 1997). Muitas pessoas concordam que os documentos HTML deveriam trabalhar bem atravs de diferentes browsers e sistemas operativos. Alcanando interoperabilidade baixa os custos para as pessoas que desenvolvem pginas porque assim apenas se desenvolve uma verso do documento. Se um esforo no for efetuado, existe um enorme risco que a web se desenvolva para um grande nmero de formatos incompatveis, reduzindo, sem quaisquer dvidas, todo o potencial comrcio na web para todos os participantes. Cada verso de HTML tem tentado refletir todo o consenso entre a indstria de software para que o investimento feito pelos autores de pginas no seja desperdiado e que os seus documentos no deixem de ser lidos num curto perodo de tempo. HTML tem sido desenvolvido com a viso que todos os equipamentos fossem capazes de usar a informao da Web, computadores com monitores de diversas resolues e vrios nmeros de cores, telefones celulares (telemveis), equipamentos para input e output de voz,

Tpicos Especiais Internet com Php e MySql em Linux

computadores com alta e baixa largura de frequncia e muito mais. HTML 4.0 HTML 4.0 estende o HTML com mecanismos para sytle sheets (CSS), scripting, frames (janelas), melhor suporte para texto com direo varivel (esquerda, direita, e ambos), tabelas mais visualizveis, melhorias nos forms, melhor accessibilidade para pessoas com incapacidades.

Atualmente este o standard em termos de HTML.

ESTRUTURA B SICA DAS TAGS DE UM DOCUMENTO HTML


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>DIGITE O TTULO DA PGINA AQUI</title> </head> <body> <!--AQUI VAI TODO O CONTEDO DA PGINA--> </body> </html>

TAGS HTML B SICAS <!DOCTYPE html PUBLIC .....> Especificao do tipo de documento html <head> Cabealho do documento; <title> Ttulo do documento; <body> Corpo do documento Vejamos agora as principais tags de formataes que iremos usar no decorrer do nosso curso: DETALHE: Essas tags devero ficar sempre dentro da tag body e sempre devero ser finalizadas!

Tpicos Especiais Internet com Php e MySql em Linux

CENTRALIZANDO <center> (texto, imagens, qualquer coisa) <center>Curso PHP</center> Lembrete: Para centralizar este texto, teremos que colocar esta tag dentro da tag: <body> <center>Curso PHP</center> </body> Todas essas formataes abaixo devero ficar dentro da tag body. NEGRITO <b> <b>Fucapi</b> IT LICO <i> <i>Fucapi</i> TEXTO TACHADO <strike> <strike>Fucapi </strike> SUBLINHADO <u> <u>Fucapi </u> PAR GRAFO Linha 1 <p/> Linha 2 Essa tag no precisa ser fechada! SALTO DE LINHA SIMPLES <br> <br/> Linha 1

Tpicos Especiais Internet com Php e MySql em Linux

<br/> Linha 2 Tambm no precisa ser fechada. ALTERANDO CORES E TAMANHO DA FONTE Veremos como ficaria para escrever o texto BOM DIA nas seguintes formataes: Fonte vermelha, tamanho 4, negrito <font color="red" size="4"><b>BOM DIA</b></font> EXEMPLOS DE TIPOS DE FONTES: Alguns tipos de fontes mais usados: <font face="Arial">Seu texto</font> Combinando tipo de fonte (Verdana), tamanho (4) e negrito <font face="Verdana" size="4"><b>Curso PHP</b></font> INSERINDO IMAGENS E COM UMA DESCRI O AO PASSAR O MOUSE POR CIMA DA IMAGEM
Para inserir imagem utilizamos a tag <img> e o comando title exibe um texto ao passar o mouse.

Ex: <img src="/diretrio/veiculo.gif" title="Veculo vencedor!" border=0> INSERINDO LINKS EM NOSSA PGINA: Usamos a tag <a href=pagina2.html>IR PARA PGINA 2</a>. O texto IR PARA PGINA 2 servir de link para pgina 2. Tags de tamanho pr definidas pelo html: <H1> TAMANHO <H2> TAMANHO

MXIMO

GRANDE

<H3> TAMANHO MDIO

Tpicos Especiais Internet com Php e MySql em Linux

<H4> TAMANHO QUASE NORMAL <H5> TAMANHO PEQUENO <H6> TAMANHO MNIMO

TABELAS
A tag <table> o elemento principal na definio de uma tabela, e tambm na definio de outros atributos especficos, que servem para dar maior controle sobre como deve ser apresentada uma tabela em uma pgina HTML. Os demais elementos da tabela so ignorados se no estiverem entre as tags <table> e </table>.

Antes de falarmos sobre linhas e colunas de uma tabela, falaremos sobre os atributos da tag table.

A tag <table> possui os seguintes atributos: id="descricao" Este atributo contem uma identificao da tabela, exemplo: id=HistoricoAluno.

border="valor"

Este atributo pode ser utilizado para controlar as bordas de uma tabela. Se tal atributo estiver presente, ento uma borda ser desenhada em torno das clulas de toda a tabela. O valor 0 (zero) no coloca borda na tabela.

A exata espessura da borda, e de como ela apresentada em um browser, s depende do prprio browser. O Netscape Navigator e o Internet Explorer apresentam as bordas de uma tabela de forma levemente difenciada.

cellspacing="valor" O atributo CELLSPACING define a quantidade de espao inserido entre clulas individuais da tabela. Seu valor padro de 2.

cellpadding="valor"

Tpicos Especiais Internet com Php e MySql em Linux

O atributo CELLPADDING define a quantidade de espao em branco entre as bordas da tabela e o contedo de cada clula (texto ou imagem). O valor padro 1.

Exemplo desses 4 atributos: <table border="0" id=tabela1 cellspacing="0" cellpadding="0">

Isso resulta em uma representao da tabela com o formato o mais compacto possvel.

Outros atributos da tag table: width="valor ou porcentual" Se utilizado, tal atributo pode especificar o tamanho exato da largura da tabela, medida em pixels, ou a largura da tabela como uma porcentagem da largura atual da janela do browser. O mais aconselhvel usar com tamanho em %, devido a certos usurios usarem o tamanho da tela 800 x 600 e outros usarem 1024 x 768, ento voc define tamanho 100%, logo a tabela atingir 100% da tela do usurio, no importando a resoluo de vdeo que ele estiver usando.

Se utilizado, tal atributo pode especificar o tamanho exato da altura da tabela, medida em pixels, ou a altura da tabela como uma porcentagem da altura atual da janela do browser.

align="left, right ou center" O atributo ALIGN, suportado tanto pelo Netscape, quanto pelo Explorer, permite que a tabela seja alinhada esquerda, direita ou centralizada na pgina.

bgcolor="#rrggbb (cd. cor) ou nome_da_cor(red, blue, etc)" Tal como nos casos acima, o atributo BGCOLOR suportado pelos dois browsers. Esse atributo permite que se especifique a cor de fundo da tabela. Para tal pode-se dar um valor em hexadecimal (ex.: FF0000 para o vermelho) ou dar o nome da cor desejada.

bordercolor="#rrggbb ou nome_da_cor" O Internet Explorer suporta um atributo extra que permite setar a cor em que a borda dever ser mostrada pelos browsers. Segue a mesma conveno para os casos acima. Para que o atributo BORDERCOLOR funcione necessria a presena do atributo BORDER no tag <TABLE>.

Tpicos Especiais Internet com Php e MySql em Linux

LINHAS E COLUNAS DE UMA TABELA

A tag <table> assinala o incio de uma tabela (na qual ser necessrio definir as respectivas linhas e colunas) e, tal como a maioria das tags HTML, a tag </table > assinala o fim da mesma. Para definir as linhas que compem a tabela utiliza-se a tag <tr> (que termina com </tr>); a definio das colunas, que deve estar dentro da definio da linha, faz-se atravs da tag <td> (que termina com </td>). Apresentamos, em seguida, o exemplo de uma tabela simples e tradicional composta por 3 linhas e 2 colunas.

<table width=20% id=tab1 align=center border=1> <tr> <td>Linha1Coluna1</td> <td>Linha1Coluna2</td> </tr> <tr > <td>Linha2Coluna1</td> <td>Linha2Coluna2</td> </tr> <tr > <td>Linha3Coluna1</td> <td>Linha3Coluna2</td> </tr> </table>

Veja o resultado:

MESCLAGEM DE CLULAS

Tpicos Especiais Internet com Php e MySql em Linux

Em muitos casos voc precisar mesclar determinadas clulas da tabela, o cdigo abaixo ir mesclar a terceira linha de nossa tabela, veja como fica a tabela com a clula mesclada:

Usamos para mesclar COLUNAS a tag colspan seguido do valor, ou seja, a quantidade de clulas que queremos mesclar, neste caso, foi preciso mesclar duas colunas, ento colspan="2", veja o cdigo completo: <table border="1"> <tr> <td>Linha1Coluna1</td> <td>Linha1Coluna2</td> </tr> <tr > <td>Linha2Coluna1</td> <td>Linha2Coluna2</td> </tr> <tr > <td colspan="2">Linha3 Mesclada</td> </tr> </table>

Repare que a tag colspan fica dentro da tag td, que significa coluna.

Agora queremos centralizar a clula que foi mesclada:

Basta colocar a tag center: align="center" Cdigo completo: <table border="1"> <tr>

Tpicos Especiais Internet com Php e MySql em Linux

10

<td>Linha1Coluna1</td> <td>Linha1Coluna2</td> </tr> <tr > <td>Linha2Coluna1</td> <td>Linha2Coluna2</td> </tr> <tr > <td colspan="2" align="center">Linha3 Mesclada</td> </tr> </table>

Acabamos de mesclar duas colunas, agora queremos mesclar determinadas linhas, vamos mesclar as 3 linhas da coluna 1:

Para mesclar linhas, usamos a tag rowspan="valor", veja o cdigo completo:

<table border="1"> <tr> <td rowspan="3">Clulas Mescladas</td> <td>Linha1Coluna2</td> </tr> <tr > <td>Linha2Coluna2</td> </tr> <tr > <td>Linha3Coluna2</td> </tr> </table>

Lembrando:

Tpicos Especiais Internet com Php e MySql em Linux

11

colspan - mescla colunas rowspan - mescla linhas.

De acordo com atualizaes de tag's e novos padres da w3c e xhtml, foram includos novos atributos em tabelas, veja um exemplo de uma estrutura de tabela de acordo com os padres atuais da web. <table width=20% id=TabListagem align=center border=1> <caption>Listagem de Ocorr&ecirc;ncias</caption> <thead> <tr> <th width="90">Data</th> <th width="50">Atrasos</th> <th width="50">Faltas</th> <th width="50">Abonos</th> </tr> </thead> <tbody> <tr> <td align="center">20/06/2006</td> <td align="center">09:00</td> <td align="center">17:00</td> <td>Abono Chefia</td> </tr> </tbody> </table>

Tpicos Especiais Internet com Php e MySql em Linux

12

INSERINDO FORMUL RIO

Por ser uma linguagem de marcao, a sintaxe do HTML na maioria dos casos exige uma tag de incio e uma de final daquele bloco. Exatamente isso que ocorre com a definio de um formulrio: uma tag no incio e outra no final, sendo que todos os elementos do formulrio devem estar entre as duas tags. Isto torna possvel a incluso de mais de um formulrio num mesmo html. As tags citadas so: <form name= action= method= > </form> Onde temos: name: o identificador do formulrio; action: nome do script que receber os dados do formulrio ao ser submetido. Mais frente esto abordadas as maneiras de tratar esses dados recebidos; method: mtodo de envio dos dados: get ou post;

Exemplo: <form name=formcadastro action="recebedados.php" method="post"> (textos e elementos do form) campos; botes; selects; ... </form> Cada elemento do formulrio deve possuir um nome que ir identific-lo no momento em que o script indicado no ACTION for tratar os dados. INSERINDO INPUT'S A tag <input> Muitos elementos de um formulrio html so definidos pela tag <input>. Cada tipo de elemento possui parmetros prprios, mas todos possuem pelo menos dois parmetros em comum: type, que define o tipo de elemento, e name, que como j foi dito define o nome daquele elemento. Usaremos tambm, o parmetro id, que receber o mesmo valor dado ao name. A partir de agora tambm usaremos este novo parmetro obdecendo as normas e regras do XHTML, que tambm uma linguagem de marcao assim como o html, no futuro, as novas geraes de browses (navegadores) identificaro os nomes dos inputs somente atravs do id.

Tpicos Especiais Internet com Php e MySql em Linux

13

Campo de texto (type="text") <input type="text" name="idade" id="idade" value="" size="5" maxlength="3">

O campo mais comum em formulrios. Exibe na tela um campo para entrada de texto com apenas uma linha. Parmetros: Value o valor pr-definido do elemento, que aparecer quando a pgina for carregada; Size O tamanho do elemento na tela, em caracteres; Maxlength O tamanho mximo do texto contido no elemento, em caracteres; Campo de texto com mscara (input type="password") <input type="password" name="senha" id="senha" size="" maxlength="">

Tipo de campo semelhante ao anterior, com a diferena que neste caso os dados digitados so substitudos por asteriscos, e por isso so os mais recomendados para campos que devam conter senhas. importante salientar que nenhuma criptografia utilizada. Apenas no aparece na tela o que est sendo digitado. Parmetros: Size O tamanho do elemento na tela, em caracteres; Maxlength O tamanho mximo do texto contido no elemento, em caracteres;

Checkbox (type="checkbox") <input type="checkbox" name="" id="" value="" checked> Utilizado para campos de mltipla escolha, onde o usurio pode marcar mais de uma opo.

Parmetros:

Tpicos Especiais Internet com Php e MySql em Linux

14

Value o valor que ser enviado ao servidor quando o formulrio for submetido, no caso do campo estar marcado Checked O estado inicial do elemento. Quando presente, o elemento j aparece marcado;

Radio Button (type="radio") <input type="radio" name="" id="" value="" checked> Utilizado para campos de mltipla escolha, onde o usurio pode marcar apenas uma opo. Para agrupar vrios elementos deste tipo, fazendo com que eles sejam exclusivos, basta atribuir o mesmo nome a todos do grupo.

Parmetros: Value o valor que ser enviado ao servidor quando o formulrio for submetido, no caso do campo estar marcado. Checked O estado inicial do elemento. Quando presente, o elemento j aparece marcado;

Submit Button (type="submit") <input type="submit" name="btenviar" id=" btenviar " value="Enviar"> Utilizado para enviar os dados do formulrio para o script descrito na seo action da definio do formulrio.

Parmetros: Value o texto que aparecer no corpo do boto.

Reset Button (type="reset") <input type="reset" name="btlimpar" id=" btlimpar " value="Limpar Campos">

Tpicos Especiais Internet com Php e MySql em Linux

15

Utilizado para fazer com que todos os campos do formulrio retornem ao valor original, quando a pgina foi carregada. Bastante utilizado como boto limpar, mas na realidade s limpa os campos se todos eles tiverem como valor uma string vazia.

Parmetros: Value - o texto que aparecer no corpo do boto.

Button (type="button") <input type="button" name="btcadalunos" value="Cadastrar Alunos"> Utilizado normalmente para ativar funes de scripts client-side (JavaScript, por exemplo), e criar links para outras pginas. Sem essa utilizao, no produz efeito algum.

Parmetros: Value - o texto que aparecer no corpo do boto.

TextArea <textarea cols="2" rows="7" name="mensagem">texto</textarea> Exibe na tela uma caixa de texto, com o tamanho definido pelos parmetros cols e rows.

Parmetros: Cols nmero de colunas do campo, em caracteres; Rows nmero de linhas do campo, em caracteres; Value O elemento do tipo textarea no possui o parmetro value. O valor prdefinido do campo o texto que fica entre as tags <textarea> e </textarea>.

Tpicos Especiais Internet com Php e MySql em Linux

16

Select <select name="estcivil"> <option value="">texto</option> </select> Se o parmetro size tiver o valor 1 e no houver o parmetro multiple, exibe na tela uma combo box. Caso contrrio, exibe na tela uma select list

Parmetros: Size nmero de linhas exibidas. Default: 1; Multiple parmetro que, se presente, permite que sejam selecionadas duas ou mais linhas, atravs das teclas Control ou Shift; Option Cada item do tipo option acrescenta uma linha ao select; Value Valor a ser enviado ao servidor se aquele elemento for selecionado. Default: o texto do item; Text Valor a ser exibido para aquele item. No definido por um parmetro, mas pelo

texto que fica entre as tags <option> e </option>. Fieldset <fieldset> <legend>DADOS PESSOAS</legend> Nome: <input type="text" name="name" size="10"><br> Cpf: <input type="text" name="cpf" size="10"><br> </fieldset>

COMENT RIOS EM HTML Veja um exemplo de comentrios em html:

<!-- Isto um comentrio em html -->

Tpicos Especiais Internet com Php e MySql em Linux

17

MENSAGENS EM JAVASCRIPT Iremos usar bastante as famosas caixas alert em javascript para exibir mensagens de SUCESSO OU FALHAS EM INSERES, UPDATES, etc. <script> alert('Registro Inserido com Sucesso!'); </script>

Folha de Estilos - CSS (Cascading Style Sheet)


(cores, fontes, fundo, margem) Se voc se interessa pela criao de home pages j deve ter ouvido falar em Cascading Style Sheets, ou CSS apenas. Trata-se de um padro de formatao para pginas web. O Cascading Style Sheet(CSS) permite uma versatilidade maior na programao do layout de pginas web sem aumentar o seu tamanho em Kb, pois oferece vrias possibilidades que antes s eram conseguidas com a utilizao de gifs e jpgs. Basicamente, o CSS permite ao designer um controle maior sobre os atributos de uma home page, como tamanho e cor das fontes, espaamento entre linhas e caracteres, margem do texto, caixas de texto, botes de formulrio, entre outros. A tag de folha de estilo deve ficar dentro da tag head, vejamos um exemplo: <style type="text/css"> .caixa { font-family: Arial; font-size: 12px; color: #FF0000; font-weight: normal; font-style: italic; text-decoration: underline;
background-color: blue;

} </style>

Iremos utilizar CSS em nosso projeto final, vejamos um exemplo completo de CSS junto ao input type text:

Tpicos Especiais Internet com Php e MySql em Linux <html> <head> <title>Usando CSS</title> </head> <style type="text/css"> .inputtext { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #FFFFFF; background-color: blue; border: 1px solid #000000; } .botaook { font-family: Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold; color: #FFFFFF; background-color: #333333; border: 1px #003399; } </style>

18

<body> NOME DO CLIENTE: <input type="text" name="nomecli" class="inputtext" size="25"> <p> <input type="submit" name="btenviar" class="botaook" value="CADASTRAR"> </body> </html>

Veja o resultado do script:

Tpicos Especiais Internet com Php e MySql em Linux

19

Outra alternativa para incluso de folha de estilos nas pginas html, atravs de links css, inserido entre as tags head, veja o exemplo: <head> <title>::..SPE..::</title> <link rel="stylesheet" type="text/css" href="css/layout.css" /> </head> Neste caso temos uma folha de estilos em um arquivo separado chamado layout.css que est dentro da pasta css, aconselhvel criar folhas de estilos em arquivos isolados.

Tpicos Especiais Internet com Php e MySql em Linux

20

Programao em PHP

O que PHP?
PHP(Hypertext Preprocessor) uma linguagem que permite criar sites WEB dinmicos, possibilitando uma interao com o usurio atravs de formulrios, parmetros da URL e links. A diferena de PHP com relao a linguagens semelhantes a Javascript que o cdigo PHP executado no servidor, sendo enviado para o cliente apenas html puro. Desta maneira possvel interagir com bancos de dados e aplicaes existentes no servidor, com a vantagem de no expor o cdigo fonte para o cliente. Isso pode ser til quando o programa est lidando com senhas ou qualquer tipo de informao confidencial.

O que pode ser feito com PHP?


Basicamente, qualquer coisa que pode ser feita por algum programa CGI pode ser feita tambm com PHP, como coletar dados de um formulrio, gerar pginas dinamicamente ou criar e destruir sesses nos navegadores. PHP tambm tem como uma das caractersticas mais importantes o suporte a um grande nmero de bancos de dados, como dBase, Interbase, mSQL, mySQL, Oracle, Sybase, PostgreSQL e vrios outros. Construir uma pgina baseada em um banco de dados torna-se uma tarefa simples com PHP, bastando apenas seguir algumas umas regras.

Enviando dados para o servidor HTTP


Programar para a web pode ser considerado como um jogo que consiste em receber os dados do usurio, process-los e enviar a resposta dinmica. Uma vez enviada a resposta, encerrado o contato entre o servidor e o cliente. Portanto a primeira coisa a aprender como fazer para receber os dados enviados pelo browser para o servidor. O protocolo HTTP prov dois principais mtodos para enviar informaes para o servidor web, alm da URL referente ao arquivo solicitado. Esses mtodos so o POST e o GET.

Tpicos Especiais Internet com Php e MySql em Linux

21

Os mtodos GET e POST


O HyperText Transfer Protocol (Protocolo de Transferncia de Hipertexto HTTP) o protocolo de comunicao utilizado para a troca de dados entre um navegador e um servidor web. o protocolo de comunicao que voc aciona quando digita um endereo no seu navegador: http://www... para isto que existem os mtodos HTTP. Dois desses mtodos, associados transferncia de dados de formulrios, so muito importantes: o mtodo GET e o mtodo POST. POST envia em nvel de ambiente e as variveis no ficam disponveis visivelmente. GET envia as variveis atravs da URL, ficando disponveis no endereo da pgina. Se voc for fazer uma autenticao de usurio, por exemplo, no utilize o mtodo GET para o envio do formulrio, porque os dados de login ficaro visveis na URL. Teramos algo como: http://localhost/valida.php?senha=ceef&login=william. J no caso de uma pgina de pesquisa, faz mais sentido usar o mtodo GET. http://localhost/busca.php?procura=php Para visualizar melhor essa diferena entre o GET E O POST, vamos criar duas pginas em php. A pagina1.php ir ter 2 inputs type text: valor1 e valor2 e um boto submit. A pagina2.php ir receber essas variveis. No esquea do form na pagina1.php.

Delimitando o c digo PHP O cdigo PHP fica embutido no prprio HTML. O interpretador identifica quando um cdigo PHP pelas seguintes tags: <?php comandos ?> ou <? comandos ?>

Tpicos Especiais Internet com Php e MySql em Linux

22

Separador de instru es Entre cada instruo em PHP preciso utilizar o ponto-e-vrgula, assim como em C, Perl e outras linguagens mais conhecidas. Na ltima instruo do bloco de script no necessrio o uso do ponto-e-vrgula, mas por questes estticas recomenda-se o uso sempre. Nomes de variveis Toda varivel em PHP tem seu nome composto pelo caracter $ e uma string, que deve iniciar por uma letra ou o caracter _. PHP case sensitive, ou seja, as variveis $fucapi e $FUCAPI so diferentes. Por isso preciso ter muito cuidado ao definir os nomes das variveis. bom evitar os nomes em maisculas, pois como veremos mais adiante, o PHP j possui algumas variveis pr-definidas cujos nomes so formados por letras maisculas. Exemplo de uma varivel: $veiculo = Fusca; //a varivel veiculo tem o valor Fusca $veiculo = Brasilia;//agora a varivel veiculo tem o valor Brasilia No PHP no h necessidade de declarar antes a varivel, em outras linguagens de programao, voc deveria declarar a varivel veculo, antes de atribuir qualquer valor a ela. O php trata isso de forma dinmica, ao atribuir um valor a uma varivel, a mesma j criada. Declarao de uma varivel Como a tipagem em PHP dinmica, as variveis no precisam ser declaradas. Uma varivel inicializada no momento em que feita a primeira atribuio. O tipo da varivel ser definido de acordo com o valor atribudo. Comentrios H dois tipos de comentrios em cdigo PHP: Comentrios de uma linha: Marca como comentrio at o final da linha ou at o final do bloco de cdigo PHP o que vier antes. Pode ser delimitado pelo caracter # ou por duas barras ( // ).

Tpicos Especiais Internet com Php e MySql em Linux

23

Exemplo: <? echo teste; #isto um teste ?> <? echo teste; //este teste similar ao anterior ?> (+ usado) Comentrios de mais de uma linha: Tem como delimitadores os caracteres /* para o incio do bloco e */ para o final do comentrio. Se o delimitador de final de cdigo PHP ( ?> ) estiver dentro de um comentrio, no ser reconhecido pelo interpretador. Exemplos: <? echo teste; /* Isto um comentrio com mais de uma linha, mas no funciona corretamente ?> */ <? echo teste; /* Isto um comentrio com mais de uma linha que funciona corretamente */ ?> Imprimindo c digo html Um script php geralmente tem como resultado uma pgina html, ou algum outro texto. Para gerar esse resultado, deve ser utilizada uma das funes de impresso, echo e print. Para utiliz-las deve-se utilizar um dos seguintes formatos:
print OL MUNDO!; echo ola mundo; formatando: echo <font color='red' size='2' face='verdana'><b>FUCAPI</b></font>; Iremos utilizar por padro o echo, o mais utilizados pelos desenvolvedores.

Constantes Como voc viu anteriormente, podemos alterar o valor armazenado de uma varivel. Tambm podemos declarar constantes. Uma constante armazena um valor como

Tpicos Especiais Internet com Php e MySql em Linux

24

uma varivel, mas seu valor configurado uma vez e, ento, no pode ser alterado em outra parte do script. Voc pode definir essas constantes utilizando a funo define: define("TOTAL",100); define("PRECO",15); Voc notou que os nomes da constante esto inteiramente em letras maisculas. Essa uma conveno emprestada de C que facilita distinguir rapidamente entre variveis e constantes. Essa conveno no necessria mas facilitar a leitura e manuteno do cdigo. Uma diferena importante entre constantes e variveis que quando voc referencia a uma constante, ela no tem um sinal de cifro na sua frente. Se quiser utilizar o valor de uma constante, utilize somente seu nome. Por exemplo, para utilizar uma das constantes que acabamos de criar, poderamos digitar: echo TOTAL; Execute este exemplo de constante: <?php define("VALOR",100); define("VALOR",150); //tentando trocar o valor de 100 para 150 echo VALOR; //imprimir 100 ?>

Tipos em Php
Tipos Suportados PHP suporta os seguintes tipos de dados:

Integer (Inteiro) - Utilizado para nmeros inteiros Double (Dupla preciso) - Utilizado para nmeros reais Strings - Utilizado para strings de caracteres Array (Vetor) - Utilizado para armazenar mltiplos itens de dados do mesmo tipo Object (Objeto) - Utilizado para armazenar instncias de classes.

Tpicos Especiais Internet com Php e MySql em Linux

25

PHP utiliza checagem de tipos dinmica, ou seja, uma varivel pode conter valores de diferentes tipos em diferentes momentos da execuo do script. Por este motivo no necessrio declarar o tipo de uma varivel para us-la. O interpretador PHP decidir qual o tipo daquela varivel, verificando o contedo em tempo de execuo. Strings Strings podem ser atribudas de duas maneiras: 1. utilizando aspas simples ( ' ) - Desta maneira, o valor da varivel ser exatamente o texto contido entre as aspas (com exceo de \\ e \' ) 2. utilizando aspas duplas ( " ) - Desta maneira, qualquer varivel ou caracter de escape ser expandido antes de ser atribudo. Exemplo:
<?php $escola = "Fucapi"; $viva = '---$escola---'; echo "$viva"; echo "<br>"; ?> <?php $escola = "Fucapi"; $viva = "---$escola---"; echo "$viva"; ?> A sada desses scripts ser: ---$escola-----Fucapi---

Fun es para manipular strings Em muitas aplicaes que voc escrever na linguagem PHP, haver a necessidade de manipular ou analisar strings. Para ajudar nessa tarefa, a linguagem PHP dispe de vrias funes teis para manipular strings. Abaixo voc poder ver uma lista dessas funes e aprender a utilizar cada uma delas.

Tpicos Especiais Internet com Php e MySql em Linux

26

substr() A funo substr() utilizada para procurar uma substring (parte ou pedao de uma string). Quando o script chama essa funo ela retorna parte de uma string. Essa funo recebe trs argumentos (sendo que dois so obrigatrios e um opcional). O primeiro argumento a string que ser analisada, o segundo argumento a posio de onde comear a retornar a string e o terceiro argumento opcional o nmero de caracteres que a funo deve retornar. Lembre-se que a posio do primeiro caractere de uma string sempre 0. Observe alguns exemplos abaixo:
<?php // Esse exemplo ir imprimir "rasil". echo (substr("Brasil", 1)); ?> <?php // Esse exemplo ir usar o terceiro argumento opcional e imprimir "ras". echo (substr("Brasil", 1, 3)); ?>

Observe que se voc utilizar no segundo argumento um nmero negativo, ele ir comear a contar a partir do final da string. chr() A funo chr() usada para transformar o cdigo ASCII no caractere correspondente. Observe o exemplo abaixo:
<?php // Esse exemplo imprimir a letra "a". echo (chr(97)); ?>

ord() A funo ord() faz o trabalho inverso da funo chr(), ou seja, voc insere o caractere e ele retorna o valor ASCII correspondente. Observe o exemplo abaixo:
<?php // Esse exemplo imprimir "97". echo (ord(a)); ?>

Tpicos Especiais Internet com Php e MySql em Linux

27

strlen() A funo strlen() retorna o nmero de caracteres de uma string. Observe o exemplo abaixo:
<?php / /Esse exemplo imprimir "6". echo (strlen("Brasil")); ?>

strtolower() A funo strtolower coloca a string toda em letras minsculas, veja o exmplo:
<?php $nome = "Fulano de Tal"; echo strtolower($nome); ?>

strtoupper() A funo strtoupper coloca a string toda em letras maisculas, veja o exmplo:
<?php $nome = "fulano de Tal"; echo strtoupper($nome); ?>

ucfirst() A funo ucfirst coloca o primeiro caracter de uma string em letra maiscula se ele for alfabtico, veja o exmplo:
<?php $nome = "fulano de tal"; echo ucfirst($nome); ?>

ucwords() A funo ucwords coloca o primeiro caracter de cada palavra em letra maiscula na string que inicia com um caracter alfabtico, veja o exmplo:
<?php $nome = "fulano de tal"; echo ucwords($nome); ?>

Tpicos Especiais Internet com Php e MySql em Linux

28

Manipulando o tratamento de arrays

Fun es Genricas

a funo que cria um array a partir dos parmetros fornecidos. possvel fornecer o ndice de cada elemento. Esse ndice pode ser um valor de qualquer tipo, e no apenas de inteiro. Se o ndice no for fornecido o PHP atribui um valor inteiro sequencial, a partir do 0 ou do ltimo ndice inteiro explicitado. Veja o exemplo: Para imprimir a partir de agora nossos arrays, iremos utilizar o comando print_r, que serve somente para imprimir arrays. print_r(array);
<?php $nomes = array("Marcelo","Sergio","Emilia","Maria","Joao"); print_r($nomes); //Criamos o vetor nomes e no definimos indices para este vetor, logo o php atribui um valor inteiro sequencial echo "<p>";

$escolas = array(5=>"Fucapi",2=>"Cesf",4=>"Ceef",1=>"Ulbra",3=>"Ufam");

print_r($escolas); //Atribuimos indices aos elementos do vetor escola

echo "<p>"; $lojas = array(2=>raiuga,1=>Bemol,5=>Utilar,3=>DB,4=>Carrefour); print_r($lojas); //Sem aspas tambm funciona ?>

Em geral, no recomendvel utilizar arrays com vrios tipos de ndices, j que isso pode confundir o programador. No caso de realmente haver a necessidade de utilizar esse recurso, deve-se ter bastante ateno ao manipular os ndices do array. Fun es para manipular Arrays sizeof Retorna um valor inteiro contendo o nmero de elementos de um array. Se for utilizada com uma varivel cujo valor no do tipo array, retorna 1. Se a varivel no estiver setada ou for um array vazio, retorna 0.

Tpicos Especiais Internet com Php e MySql em Linux

29

Ex: <?php $teste = array("zero","um","dois","tres","quatro"); print_r($teste); //Imprimindo na tela antes de usar o sizeof echo "<p>"; echo sizeof($teste); ?>

Fun es de "navegao"
Toda varivel do tipo array possui um ponteiro interno indicando o prximo elemento a ser acessado no caso de no ser especificado um ndice. As funes seguintes servem para modificar esse ponteiro, permitindo assim percorrer um array para verificar seu contedo (chaves e elementos). reset Seta o ponteiro interno para o primeiro elemento do array, e retorna o contedo desse elemento. Ex: <?php $teste = array("zero","um","dois","tres","quatro"); print_r($teste); echo reset($teste); ?> end Seta o ponteiro interno para o ltimo elemento do array, e retorna o contedo desse elemento. Ex: <?php $frutas = array('melancia', 'banana', 'morango'); print_r ($frutas); print "<p>"; print end($frutas); // morango ?>

Tpicos Especiais Internet com Php e MySql em Linux

30

next Seta o ponteiro interno para o prximo elemento do array, e retorna o contedo desse elemento. Obs.: esta no uma boa funo para determinar se um elemento o ltimo do array, pois pode retornar false tanto no final do array como no caso de haver um elemento vazio. Ex: <?php $teste = array("zero","um","dois","tres","quatro"); print_r($teste); echo "<p>"; echo next($teste); //um ?> prev Seta o ponteiro interno para o elemento anterior do array, e retorna o contedo desse elemento. Funciona de maneira inversa a next. Veremos um exemplo usando a funo prev e algumas anteriores para entendermos melhor a navegao. <?php $transportes = array('lancha', 'bicicleta', 'carro', 'aviao'); //Nosso array print_r ($transportes); //Impressao na tela $reset = reset($transportes); // retorna o primeiro elemento do array = 'lancha'; $next1 = next($transportes); // prximo elemento do array = 'bicicleta'; $next2 = next($transportes); // prximo elemento do array = 'carro'; $prev = prev($transportes); // elemento anterior do array = 'bicicleta'; $end = end($transportes); // ltimo elemento do array = 'aviao'; echo "<p>"; echo "Imprimindo na tela:"; echo "<p>"; echo "Reset: ".$reset; echo "<br>"; echo "Next: ".$next1; echo "<br>"; echo "Next: ".$next2; echo "<br>"; echo "Prev: ".$prev; echo "<br>"; echo "End: ".$end; echo "<br>"; ?>

Tpicos Especiais Internet com Php e MySql em Linux

31

pos Retorna o contedo do elemento atual do array, indicado pelo ponteiro interno. Ex: <?php $transportes = array('lancha', 'bicicleta', 'carro', 'aviao'); print_r ($transportes); $reset = reset($transportes); //= 'lancha'; $next1 = next($transportes); //= 'bicicleta'; $next2 = next($transportes); //= 'carro'; $prev = prev($transportes); //= 'bicicleta'; $end = end($transportes); //= 'aviao'; $pos = pos($transportes); //= 'aviao'; echo "<p>"; echo "Lembrando as funes anteriores:"; echo "<p>"; echo "Reset: ".$reset; echo "<br>"; echo "Next: ".$next1; echo "<br>"; echo "Next: ".$next2; echo "<br>"; echo "Prev: ".$prev; echo "<br>"; echo "End: ".$end; echo "<br>"; echo "Pos: ".$pos; echo "<br>"; ?>

Fun es de ordenao So funes que servem para arrumar os elementos de um array de acordo com determinados critrios. Estes critrios so: manuteno ou no da associao entre ndices e elementos; ordenao por elementos ou por ndices; funo de comparao entre dois elementos. sort A funo mais simples de ordenao de arrays. Ordena os elementos de um array em ordem crescente, sem manter os relacionamentos com os ndices. Ex: <?php $teste = array("Dia","Mes","Zebra","Php","Aula"); echo "Array antes da ordenao:<br>";

Tpicos Especiais Internet com Php e MySql em Linux

32

print_r ($teste); sort($teste); echo "<p>"; print_r ($teste); echo "<p>"; echo "Ordena em ordem crescente, SEM manter relacionamento com os indices."; //Array ( [0] => Aula [1] => Dia [2] => Mes [3] => Php [4] => Zebra ) ?> rsort Funciona de maneira inversa funo sort. Ordena os elementos de um array em ordem decrescente, sem manter os relacionamentos com os ndices. Ex: <?php $teste = array("cd","dvd","gravador","hd","vcd"); echo "Array antes da ordenao:<br>"; print_r ($teste); rsort($teste); //ordenando echo "<p>"; print_r($teste); echo "<p>"; echo "Ordena em ordem decrescente, SEM manter relacionamento com os ndices."; //Array ( [0] => vcd [1] => hd [2] => gravador [3] => dvd [4] => cd ) ?> asort Tem o funcionamento bastante semelhante funo sort. Ordena os elementos de um array em ordem crescente, porm mantm os relacionamentos com os ndices. Ex: <?php $teste = array("Jakeline","Carla","Ariane","Vanessa","Giovanna"); echo "Array antes da ordenao:<br>"; print_r($teste);

Tpicos Especiais Internet com Php e MySql em Linux

33

asort($teste); print_r($teste); echo "<p>"; echo "Ordena em ordem crescente, MANTEM relacionamento com os indices. Reparem nos indices.";
//Array ( [2] => Ariane [1] => Carla [4] => Giovanna [0] => Jakeline [3] => Vanessa )

?> arsort Funciona de maneira inversa funo asort. Ordena os elementos de um array em ordem decrescente e mantm os relacionamentos dos elementos com os ndices. Ex: <?php $teste = array("Jakeline","Carla","Ariane","Vanessa","Giovanna"); echo "Array antes da ordenao:<br>"; print_r($teste); arsort($teste); print_r($teste); echo "<p>"; echo "Ordena em ordem decrescente, MANTEM relacionamento com os indices. Reparem nos indices.";
//Array ( [3] => Vanessa [0] => Jakeline [4] => Giovanna [1] => Carla [2] => Ariane )

?> ksort Funo de ordenao baseada nos ndices. Ordena os elementos de um array de acordo com seus ndices, em ordem crescente, mantendo os relacionamentos. Ex: <?php $teste = array (4=>"Jakeline",1=>"Carla",3=>"Ariane",2=>"Vanessa",0=>"Giovanna"); echo "Array antes da ordenao:<br>"; print_r($teste); ksort($teste); print_r($teste);
//Array ( [0] => Giovanna [1] => Carla [2] => Vanessa [3] => Ariane [4] => Jakeline )

?>

Tpicos Especiais Internet com Php e MySql em Linux

34

Trabalhando com datas no PHP - funo date() Veremos agora sobre como trabalhar com datas utilizando a linguagem PHP. A funo date() tem por finalidade formatar a data e a hora local. Segue abaixo uma pequena tabela com algumas formataes aceitas por essa funo: Formato Descrio d D m M y Y l (L minsculo) h H i s Dia do ms com 2 dgitos Representao textual do dia Representao numrica do ms Representao textual do ms Representao do ano com 2 dgitos Representao do ano com 4 dgitos Descrio do dia da semana Formato em 12 horas Formato em 24 horas Minutos Segundos

Outras formataes, consultar o manual do PHP em http://www.php.net Exemplos: 1) Exibindo a data no formato 11/12/2004. <? //FUNO DATE() echo date("d/m/Y"); ?> 2) Exibindo a data e a hora no formato 14/02/2004 21:04:02 <? //FUNO DATE() echo $data = date("d/m/Y H:i:s "); ?> Por ventura, voc queira desmembrar a data, pode-se usar assim: <?php $data = getdate();

Tpicos Especiais Internet com Php e MySql em Linux

35

$dia = $data["mday"]; $mes = $data["mon"]; $ano = $data["year"]; $data = $dia."/".$mes."/".$ano; echo $data; ?>

Quando formos armazenar data no banco de dados, teremos que usar o formato DATE do MySql, o formato date, obedece o padro americano ANO-MS-DIA. Ex: 2005-06-22. Diante disto, teremos que tratar nossa data(DD/MM/AAAA) antes de inserir no banco. Iremos utilizar a funo explode. Veja um exemplo. <input name=campodata value=22/06/2005> $campodata = explode("/", $_POST["campodata"]); A funo EXPLODE retorna um array(vetor) de 3 posies, temos que organizar para o padro americano antes de inserir no banco: O dia a posio 2; o ms posio 1 e o ano posio 0. $campodata[2]-$campodata[1]-$campodata[0]

Operadores em Php
Operadores Aritmticos Os operadores aritmticos so muito simples e diretos - eles so simplesmente os operadores matemticos normais. Os operadores aritmticos so mostrados abaixo:
Operador + * / % Nome Adio Subtrao Multiplicao Diviso Mdulo Exemplo $a + $b $a - $b $a * $b $a / $b $a % $b

Tpicos Especiais Internet com Php e MySql em Linux

36

Exemplo de uso desses operadores: <?php $a = 50; $b = 2; $soma = $a + $b; echo "Operadores Aritmeticos<p>"; echo "A = 50<br>"; echo "B = 2<p>"; echo "A + B = ".$soma."<p>";

$sub = $a - $b; echo "A - B = ".$sub."<p>"; $mult = $a * $b; echo "A * B = ".$mult."<p>"; $div = $a / $b; echo "A / B = ".$div."<p>"; $resto = $a % $b; echo "A % B = ".$resto."<p>"; ?> Operadores de strings Voc pode utilizar o operador de concatenao de string para juntar duas string e gerar e armazenar um resultado da mesma maneira como voc utilizaria o operador de adio para somar dois nmeros: <?php $a = Fundacao; $b = Fucapi; $result = $a.$b; $result2 = $a." ".$b; //Espao entre as palavras echo $result; echo "<br>"; echo $result2; ?>

Tpicos Especiais Internet com Php e MySql em Linux

37

Operadores de Pr e P s-Incremento e Decremento Podem ser utilizados de duas formas: antes ou depois da varivel. Quando utilizado antes, retorna o valor da varivel antes de increment-la ou decrement-la. Quando utilizado depois, retorna o valor da varivel j incrementado ou decrementado. Exemplo: <?php echo "Operadores de Pre e Pos Incremento e Decremento<p>"; $a = $b = 10; echo "Passo 1<br>"; echo "A = $a<br>"; // = 10 echo "B = $b<p>"; // = 10 At aqui s atribuindo o valor $c = $a++; /* C est recebendo a varivel A que 10 e a varivel A esta sendo incrementada, notem o incremento DEPOIS da var*/ echo "Passo 2<br>"; echo "C = $c<br>"; // = 10 echo "A = $a<p>"; // = 11 $d = ++$b; //Reparem o incremento antes da varivel B e D j vai receber B incrementado echo "Passo 3<br>"; echo "D = $d<br>"; // = 11 echo "B = $b<br>"; // = 11 ?> Operadores de Igualdade O operador de comparao de igualdade, = = (dois sinais de igual) permite testar se dois valores so iguais. Por exemplo, poderamos utilizar a expresso. $a = = $b

Tpicos Especiais Internet com Php e MySql em Linux

38

Para testar se os valores armazenados em $a e $b so os mesmos. O resultado retornado por essa expresso ser true se eles forem iguais ou false se eles no forem iguais. fcil confundir isso com =, o operador de atribuio.
Operador == === != <> < > <= >= Nome Igual a Idntico a No igual a $ No igual a $ Menor que Maior que Menor que ou igual a O maior que ou igual a Utilizao $a = = $b $a = = = $b $a != $b $a <> $b $a < $b $a > $b $a <= $b $a >= $b

Estruturas de Controle Blocos Um bloco consiste de vrios comandos agrupados com o objetivo de relacionlos com determinado comando ou funo. Em comandos como if, for, while, switch e em declaraes de funes blocos podem ser utilizados para permitir que um comando faa parte do contexto desejado. Blocos em PHP so delimitados pelos caracteres { e }. A utilizao dos delimitadores de bloco em uma parte qualquer do cdigo no relacionada com os comandos citados ou funes no produzir efeito algum, e ser tratada normalmente pelo interpretador. Exemplo: if ($x == $y) comando1; comando2; Para que comando2 esteja relacionado ao if preciso utilizar um bloco: if ($x == $y) { comando1;

Tpicos Especiais Internet com Php e MySql em Linux

39

comando2; }
Veja outro exemplo:

<?php $a = 10; $b = 20;

if ($a == $b) { echo "A e B Sao iguais!"; } else { echo "A e B Sao diferentes!"; } echo "<p>"; $c = 15; $d = 15; if ($c != $d) //Ta perguntando: Se NO IGUAL { echo "C e D Sao diferentes"; } else { echo "C e D Sao Iguais"; } ?>

A seguir, temos um exemplo do comando if utilizado com else if e and: if ($docencia == 'Iniciante' and $titulacao == 'Doutor') { $totaldiurno = $chdiurno * $di_diurno; $aux2 = $totaldiurno / $qtdemeses; $totalmensald = ($aux2*100) / 100; $aux = $chdiurno / 22;

Tpicos Especiais Internet com Php e MySql em Linux

40

} else if ($docencia == 'Iniciante' and $titulacao == 'Especialista' ) { $totaldiurno = $chdiurno * $ei_diurno; $aux2 = $totaldiurno / $qtdemeses; $totalmensald = ($aux2*100) / 100; $aux = $chdiurno / 22; $chsemanal1 = ($aux*100) / 100; } O exemplo acima tem dois blocos, no primeiro if testa se duas condies so verdadeiras, se for executa os clculos contidos no bloco. O segundo testa outra condio, se tambm as duas condies forem verdadeiras executa os clculos do bloco. Se no satisfazerem nem uma ou nem outra condio executa o seno (else). Em determinadas situaes necessrio fazer mais de um teste, e executar condicionalmente diversos comandos ou blocos de comandos.

switch O comando switch atua de maneira semelhante a uma srie de comandos if na mesma expresso. Frequentemente o programador pode querer comparar uma varivel com diversos valores, e executar um cdigo diferente a depender de qual valor igual ao da varivel. Quando isso for necessrio, deve-se usar o comando switch. O exemplo seguinte mostra dois trechos de cdigo que fazem a mesma coisa, sendo que o primeiro utiliza uma srie de ifs e o segundo utiliza switch: if ($i == 0) echo i igual a zero; elseif ($i == 1) echo i igual a um; elseif ($i == 2) echo i igual a dois; switch ($i) { case 0: print i igual a zero;

Tpicos Especiais Internet com Php e MySql em Linux

41

break; case 1: print i igual a um; break; case 2: print i igual a dois; break; default: echo "i no igual a 0, 1 ou 2"; }

importante compreender o funcionamento do switch para no cometer enganos. O comando switch testa linha a linha os cases encontrados, e a partir do momento que encontra um valor igual ao da varivel testada, passa a executar todos os comandos seguintes, mesmo os que fazem parte de outro teste, at o fim do bloco. por isso usa-se o comando break, quebrando o fluxo e fazendo com que o cdigo seja executado da maneira desejada. Veja o exemplo: switch ($i) { case 0: echo i igual a zero; case 1: echo i igual a um; case 2: echo i igual a dois; } No exemplo acima, se $i for igual a zero, os trs comandos echo sero executados. Se $i for igual a 1, os dois ltimos echo sero executados. O comando s funcionar da maneira desejada se $i for igual a 2. Em outras linguagens que implementam o comando switch, ou similar, os valores a serem testados s podem ser do tipo inteiro. Em PHP permitido usar valores do tipo string como elementos de teste do comando switch. O exemplo abaixo funciona perfeitamente:
<?php //Varivel SESSION um array, neste exemplo estamos pegando na posio 1 $_SESSION['extensao'][1] = 2; switch($_SESSION['extensao'][1]) {

Tpicos Especiais Internet com Php e MySql em Linux case 0:

42

print "Acesso permitido"; break; case 1: print "Acesso permitido"; break; case 2: print "<script>alert('Acesso No Autorizado!');location='principal.php';</script>"; exit(); break; default: print "<script>alert('Acesso No Autorizado!');location='principal.php';</script>"; exit(); break;

?>

Se a sesso do usurio, for igual a 2 ou superior, ele no poder acessar a pgina, se for 0 ou 1 acessa normalmente e ainda imprime a mensagem Acesso permitido. Veremos mais adiante com detalhes, o uso de sesses. Sesses em php de extrema importncia para quem ir trabalhar com pginas protegidas, ou ir dar mensagens de boas vindas aos usurios. Exemplo: Ol fulano_de_tal!.

Comandos de repetio
while O while o comando de repetio (lao) mais simples. Ele testa uma condio e executa um comando, ou um bloco de comandos, at que a condio testada seja falsa. Assim como o if, o while tambm possui duas sintaxes alternativas: while (<expressao>) <comando>; while (<expressao>): <comando>; ... <comando>; endwhile;

Tpicos Especiais Internet com Php e MySql em Linux

43

A expresso s testada a cada vez que o bloco de instrues termina, alm do teste inicial. Se no teste inicial a condio for avaliada como false, o bloco de comandos no ser executado. O exemplo a seguir mostra o uso do while para imprimir os nmeros de 1 a 10: $i = 1; while ($i <=10) print $i++;

do... while O lao do..while funciona de maneira bastante semelhante ao while, com a simples diferena que a expresso testada ao final do bloco de comandos. O lao do..while possui apenas uma sintaxe, que a seguinte: do { <comando> ... <comando> } while (<expressao>); O exemplo utilizado para ilustrar o uso do while pode ser feito da seguinte maneira utilizando o do.. while: $i = 1; do { print $i++; } while ($i <= 10)

for O tipo de lao mais complexo o for. Para os que programam em C, C++ ou Java, a assimilao do funcionamento do for natural. Mas para aqueles que esto acostumados a linguagens como Pascal, h uma grande mudana para o uso do for. As duas sintaxes permitidas so: for (<inicializacao>;<condicao>;<incremento>)

Tpicos Especiais Internet com Php e MySql em Linux

44

<comando>; for (<inicializacao>;<condicao>;<incremento>) : <comando>; ... <comando>; endfor; As trs expresses que ficam entre parnteses tm as seguintes finalidades: Inicializao: comando ou sequencia de comandos a serem realizados antes do inicio do lao. Serve para inicializar variveis. Condio: Expresso booleana que define se os comandos que esto dentro do lao sero executados ou no. Enquanto a expresso for verdadeira (valor diferente de zero) os comandos sero executados. Incremento: Comando executado ao final de cada execuo do lao. for( $i=1; $i<=10; $i++) { echo $i; }

Quebra de fluxo

break O comando break pode ser utilizado em laos de do, for e while, alm do uso j visto no comando switch. Ao encontrar um break dentro de um desses laos, o interpretador PHP para imediatamente a execuo do lao, seguindo normalmente o fluxo do script. $i = 1; while ($i <= 10) { print $i++;

Tpicos Especiais Internet com Php e MySql em Linux

45

if ($i == 5) { print "<br>ACHEI! i = 5"; break; } }

Fun es Definindo fun es As funes existem na maioria das linguagens de programao. Elas so utilizadas para separar cdigo que realiza uma tarefa nica e bem-definida. Isso torna o cdigo mais fcil de ler e permitir reutilizar o cdigo toda vez que precisarmos fazer a mesma tarefa. Uma funo um mdulo autocontido de cdigo que prescreve uma interface de chamada, realiza alguma tarefa e opcionalmente retorna um resultado. Por que voc define suas pr prias fun es? As funes predefinidas para PHP permitem interagir com arquivos, utilizar banco de dados e conectar-se a outros servidores. Declarar uma funo permite utilizar seu prprio cdigo da mesma maneira como as funes predefinidas. Voc simplesmente chama sua funo e fornece a ela os parmetros necessrios. Estrutura bsica da funo Uma declarao cria ou declara uma nova funo. A declarao comea com a palavra-chave function, fornece o nome de funo, os parmetros necessrios e contm o cdigo que ser executado toda vez que essa funo for chamada. Eis a declarao de uma funo trivial: function nome_funcao( ) { echo "Minha funo";

Tpicos Especiais Internet com Php e MySql em Linux

46

} my_function( ); Nomeando sua funo A coisa mais importante a considerar ao nomear suas funes que o nome deve ser curto mas descritivo. Algumas restries so as seguintes: Sua funo no pode ter o mesmo nome que uma funo existente. Seu nome de funo somente pode conter letras. function soma() { $a=3; $b=6; $total=$a+$b; return $total; }

echo soma();

Parmetros Passar um parmetro permite obter dados que foram criados fora da funo, no nosso caso abaixo chamamos as variveis $a, $b que se encontravam fora da funo. $a=9; $b=6; function soma($a,$b) { $total=$a+$b; return $total; } echo soma($a,$b);

Tpicos Especiais Internet com Php e MySql em Linux

47

Funo nada mais que um segmento de cdigo que somente se executa se for solicitado. Ela representa uma forma simplificada de executarmos um mesmo trecho de cdigo em diversos pontos do mesmo script.

ISSET
isset - Informa se a varivel foi iniciada. Veja o exemplo:
<?php $fruta = "Maa"; //depois troque para NULL if (isset($fruta)) { echo "Varivel Existe!".$fruta; } else { echo "Varivel No existe!"; } ?>

O isset muito utilizado com form's, ou seja, ao enviar um formulrio queremos que um bloco de cdigo seja ativado, vejamos um exemplo: Crie um form com 2 inputs: um text e submit.
<form name="form1" method="post" action="?checar"> Nome da Fruta <input type="text" name="fruta" size="15"><br> <input type="submit" name="btok" value="OK"> </form>

Quando o usurio enviar o form, ser ativado este bloco PHP:


<?php //inclua este bloco aps </html> if (isset($checar)) { echo $fruta; } ?>

Tpicos Especiais Internet com Php e MySql em Linux

48

ATIVIDADE 1 Desenvolver uma pgina php contendo um form e dois input's type text, com os nomes: av1 e av2. Aps o usurio digitar os valores e enviar o form, um script php ir somar e calcular a mdia. OBS: Utilizar a funo isset e o resultado dever ser impresso em uma caixa alert, como mostra a figura abaixo.

Trabalhando com session (sesses)


Nada mais do que uma maneira de preservar (guardar, armazenar) certos dados para serem utilizados futuramente. Podemos, por exemplo, construir um website com sistema de rea restrita, ou seja, acesso a rea restrita somente aos usurios cadastrados no sistema. Quando o usurio quiser acessar a parte restrita do website ele ter que informar um usurio e senha. Agora imagine que para cada pgina da rea restrita o usurio tenha que digitar o usurio e senha! Agora se implementarmos um sistema de login com session, o usurio ter que digitar apenas uma vez o usurio e senha e pronto! A cada pgina da rea restrita que o usurio acessar o sistema faz uma verificao se o usurio est cadastrado no sistema e lhe dar permisso de acesso pgina!

session_start: inicia dados de uma sesso Comando utilizado para iniciar uma nova sesso ou iniciar uma sesso existente.

Tpicos Especiais Internet com Php e MySql em Linux

49

Obs: necessrio declarar session_start() no incio de cada script onde for necessrio alguma informao que esteja registrada na sesso. session_destroy: encerra a sesso, eliminando todos os dados registrados

Comando

utilizado

para

encerrar

uma

sesso

existente.

<? session_start(); // antes de destruir a sesso, necessrio inici-la. session_destroy(); ?>

conceitos:

Antes de praticar a criao de uma session, precisamos de mais alguns

As instrues include() e require()


A instruo include() inclui e avalia o arquivo informado. A instruo require() inclui a avalia um arquivo especfico. Esses dois construtores so idnticos a exceo de como eles manipulam erros. include() produz um Warning enquanto require() produzir um Fatal Error. Em outras palavras, utilize require() se voc deseja que um arquivo faltando interrompa o processamento da pgina. include() no se comporta da mesma maneira, permitindo que o script continue nessas situaes. location Seta uma determinada pgina, sua utilizao ser em conjunto com scripts em javascript.

Tpicos Especiais Internet com Php e MySql em Linux

50

ATIVIDADE COM SESSION Iremos simular uma checagem de login e senha, onde o usurio digita o login, senha e nvel, o script ir armazenar na session esses dados e exibir na pgina principal. Caso o usurio no esteja logado no sistema, o php no deixa ele acessar a pgina principal. Primeiro passo: Faa uma tela com o layout acima: salve com o nome de acesso.php

No action do form ficar ?checar. Bloco checar:


<?php if (isset($checar)) { session_start(); $dados = array($login,$senha,$nivel); $_SESSION['aula'] = $dados; echo "<script>location='principal.php';</script>"; } ?>

Teremos tambm o arquivo verificarsessao.php:


<?php // Verifica se o usurio j est logado session_start(); if (!isset($_SESSION['aula'])) { header("Location: acesso.php"); } if (isset($_GET['logout'])) {

Tpicos Especiais Internet com Php e MySql em Linux session_destroy(); header("Location: acesso.php"); } ?>

51

E a pgina principal.php:
<?php include("verificarsessao.php"); ?> <html> <head> <title>Session</title> </head> <body> <table align="center" width="60%" border="1"> <tr>

<td><?php echo $_SESSION['aula'][2]; ?></td> </tr> <tr> <td><a href="?logout">LOGOUT - SAIR</a></td> </tr> </table> </body> </html>

BANCO DE DADOS MYSQL


MySQL um sistema de gerenciamento de banco de dados relacional que utiliza a linguagem padro SQL e largamente utilizado em aplicaes para internet. Para trabalhar com o MySql iremos utilizar a ferramenta phpmyadmin. Principais conceitos de fun es do mysql que iremos utilizar: mysql_query Realiza uma query MySQL. Envia uma query para o banco de dados ativo no servidor da conexo informada, ou seja, a ltima conexo aberta usada. Nota: A string da query no deve terminar com ponto e virgula(;). Ex:
$query = mysql_query("select * from tabtipos where descricao = 'Acervo'");

Tpicos Especiais Internet com Php e MySql em Linux

52

mysql_num_rows Retorna o nmero de linhas em um resultado. Este comando valido apenas para o SELECT. Para obter o nmero de linhas afetadas por INSERT, UPDATE ou DELETE, use mysql_affected_rows(). Ex: $resultado = mysql_num_rows($query);

mysql_affected_rows Devolve o nmero de linhas afetadas na operao anterior com o MySQL Retorna o nmero de linhas afetadas pela ultima query INSERT, UPDATE ou DELETE associada a link aberto por mysql_connect(). Ex:
mysql_query("DELETE FROM tabprod WHERE cod < 10"); echo ("Registros excludos: ", mysql_affected_rows());

mysql_fetch_array Busca o resultado de uma linha e o coloca como uma matriz associativa, matriz numrica ou ambas. Retorna uma matriz que corresponde a linha buscada, ou FALSE se no houverem mais linhas. Alm de guardar os dados em um ndice numrico na matriz, tambm guarda os dados em ndices associativos, usando o nome do campo como chave. Ex:
<?php $sql = mysql_query("select id, nome, nivel FROM tabusuarios WHERE login = '$login' AND senha = '$senha'"); $linhas = mysql_num_rows($sql); $vetor = mysql_fetch_array($sql); if ( $linhas == 1 ) { session_start(); $id $nome $nivel $campos = $vetor["id"]; = $vetor["nome"]; = $vetor["nivel"]; = array($nome,$nivel,$id); //0 = nome; 1 = nvel e 2 = id

$_SESSION['locadora'] = $campos;

Tpicos Especiais Internet com Php e MySql em Linux

53

echo "<script>location='principal.php';</script>"; } else { echo "<script>alert('Login ou Senha Invlidos! Tente Novamente...'); location='index.php';</script>"; } ?>

Acessando o MySql via PHP


Estabelecendo conex es Para acessar bases de dados num servidor MySql, necessrio antes estabelecer uma conexo. Para isso, deve ser utilizado o comando mysql_connect, ou o mysql_pconnect. A diferena entre os dois comandos que o mysql_pconnect estabelece uma conexo permanente, ou seja, que no encerrada ao final da execuo do script. Iremos usar o mysql_connect para nosso sistema. mysql_connect -- Abre uma conexo com o servidor MySQL; mysql_pconnect -- Abre uma conexo persistente com um servidor MySQL; Iremos utilizar este exemplo em nosso sistema, por padro iremos chamar este arquivo de 'conexao.php'.
<?php $_ENV["host"] = "localhost"; //endereo $_ENV["login"] = "root"; //usurio do mysql $_ENV["senha"] = "xxyyy"; //senha do usurio root $_ENV["db"] = "fucapi"; //database $conn = mysql_connect($_ENV["host"], $_ENV["login"], $_ENV["senha"]) or die ("No foi possvel conectar com o servidor."); mysql_select_db($_ENV["db"],$conn) or die ("No foi possvel selecionar o banco."); //estabelecendo a conexao ?>

mysql_select_db -- Seleciona um banco de dados MySQL O valor de retorno um inteiro que identifica a conexo, ou falso se a conexo falhar. Antes de tentar estabelecer uma conexo, o interpretador PHP verifica se j existe uma conexo estabelecida com o mesmo host, o mesmo login e a mesma senha. Se existir,

Tpicos Especiais Internet com Php e MySql em Linux

54

o identificador desta conexo retornado. Seno, uma nova conexo criada. Uma conexo estabelecida com o comando mysql_connect encerrada ao final da execuo do script.

Acessando o MySql em modo terminal


Iremos aprender as operaes bsicas com o MySql em modo terminal (texto). Para entrar no ambiente do mysql digite no terminal: mysql Como no definimos senha para o root, no digite nada quando pedir a senha, apenas aperte

enter.

Pronto, este o ambiente onde voc ir criar databases, criar tabelas, inserir valores, alterar e excluir registros.

ATIVIDADES COM O MYSQL EM MODO TERMINAL


1. Criar banco de dados > create database cadastro; 2. Utilizando o banco de dados Voc precisa informar qual banco ir usar para criar tabelas > use cadastro; 3. Criando tabelas e campos > create table imovel (id int not null auto_increment primary key, nome varchar(40) not null, cpf varchar(14) not null);

Foi criada a tabela imvel, com os campos: id tipo int, auto incremento, chave primria e no pode ser nulo Nome 40 posies e no nulo; CPF 14 posies e no nulo.
Neste ambiente do mysql voce pode saltar de linha, desde que no inclua o ponto e vrgula (;) no final. O ; indica que para executar o comando. 4. Inserindo registros na tabela > insert into imovel (id, nome, cpf) values (1,Jakeline,159.123.000-00); 5. Selecionando os campos

Tpicos Especiais Internet com Php e MySql em Linux > select * from imovel; 6. Atualizando registros > update imovel set cpf=111.111.111-11 where id=1; 7. Alterando tabelas depois da criao Vamos alterar o tamanho do campo nome para 15 > alter table imovel modify nome varchar(15) not null; 8. Deletando os registros da tabela > delete from imovel;

55

Cuidado!. Exclui todo o registro da tabela imovel. 9. Excluindo a tabela e seus registros > drop table imovel;

Todos os procedimentos acima, foram criados com o tipo padro do MySql o TYPE=MyISAM. Esse tipo (MyIsam) no permite integridade relacional entre as tabelas. Para incluir integridade relacional entre as tabelas preciso utilizar o type InnoDB. O QUE INTEGRIDADE RELACIONAL???
Para explicar o conceito de integridade relacional, vejamos um exemplo bem prtico: Temos 2 tabelas: tabfuncionarios e tabdependentes Na tabfuncionarios temos os campos: cpf(PK) e nome; Na tabdependentes temos: codigo(PK), cpf_func(FK) e nome.

Um funcionrio pode ter vrios dependentes; No podemos excluir funcionrio, se o mesmo tiver dependente; Quando alterarmos o cpf do funcionrio, o mesmo alterado automtico na

Tpicos Especiais Internet com Php e MySql em Linux

56

tabela dependentes. Vejamos o script SQL para gerar tabelas InnoDB com integridade relacional.
CREATE TABLE tabfuncionarios ( cpf int(3) NOT NULL , nome varchar(30) NOT NULL , PRIMARY KEY (cpf) ) TYPE = INNODB;

CREATE TABLE tabdependentes ( codigo varchar(10) NOT NULL , nome varchar(30) NOT NULL, cpf_func int(3) NOT NULL , PRIMARY KEY (codigo, cpf_func), INDEX (cpf_func), FOREIGN KEY (cpf_func) REFERENCES tabfuncionarios(cpf) ON UPDATE CASCADE ON DELETE RESTRICT ) TYPE = INNODB;

Faa o teste dessas integridades usando a ferramenta phpmyadmin.

Referncias Consultadas
Site Oficial do PHP

http://www.php.net/manual/pt_BR/

Vous aimerez peut-être aussi