tópicos especiais html/php/mysql - mrmsistemas.com.br fileuma breve história do html html foi...

48
Tópicos Especiais – Internet/Php/MySql 1 Tópicos especiais HTML/PHP/MySql EDUCAÇÃO PROFISSIONAL TÉCNICA DE NÍVEL MÉDIO EM INFORMÁTICA

Upload: lamngoc

Post on 29-Nov-2018

247 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 1

Tópicos especiais HTML/PHP/MySql

EDUCAÇÃO PROFISSIONAL TÉCNICA DE NÍVEL MÉDIO EM INFORMÁTICA

Page 2: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 2

Programação HTML

Afinal o que é HTML ? Para se publicar informação a nível 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

informaçôes através de ligações (links) de hipertexto através de um clique. Desenhar forms para transações comerciais através de serviços remotos, para encontrar informação, fazer reservas, encomendar produtos, etc. E ainda incluir som, vídeo e muitas mais aplicações nos documentos. Uma breve história do HTML

HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através do Mosaic, um browser desenvolvido em NCSA. Durante os primeiros anos dos 90 expandiu-se com a enorme explosão do crescimento da WWW. Durante esse tempo HTML tem-se expandido sem limites de caminhos. A web depende de autores de páginas web que partilham as mesmas concessões de HTML. Isto é motivado através de trabalho conjunto nas especificações do HTML.

HTML 2.0 (Novembro 1995) foi desenvolvido debaixo da alçada da Internet Engineering Task Force (IEFT) para "codificar" a prática comum nos finais de 1994. HTML+ (1993) e HTML 3.0 (1995) propuseram versões muito mais ricas para o HTML. Apesar de nunca terem recebido consenso nas discussões, os rascunhos levaram à adoção de novas características. Os esforços do World Wide Web Consortium's HTML Working Group para "codificar" a prática comum em 1996 resultou no HTML 3.2 (Janeiro 1997).

Muitas pessoas concordam que os documentos HTML deveriam trabalhar bem através de diferentes browsers e sistemas operativos. Alcançando interoperabilidade baixa os custos para as pessoas que desenvolvem páginas porque assim apenas se desenvolve uma versão do

Page 3: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 3

documento. Se um esforço não for efetuado, existe um enorme risco que a web se desenvolva para um grande número de formatos incompatíveis, reduzindo, sem quaisquer dúvidas, todo o potencial comércio na web para todos os participantes.

Cada versão de HTML tem tentado refletir todo o consenso entre a indústria de software para que o investimento feito pelos autores de páginas não seja desperdiçado e que os seus documentos não deixem de ser lidos num curto período de tempo.

HTML tem sido desenvolvido com a visão que todos os equipamentos fossem capazes de usar a informação da Web, computadores com monitores de diversas resoluções e vários números de cores, telefones celulares (telemóveis), equipamentos para input e output de voz, computadores com alta e baixa largura de freqüência 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 direção variável (esquerda, direita, e ambos), tabelas mais visualizáveis, melhorias nos forms, melhor accessibilidade para pessoas com incapacidades.

Sobre a tão comentada Web 2.0

Breve histórico

O termo Web 2.0 foi usado pela primeira vez em Outubro de 2004 pela O'Reilly Media e pela MediaLive International como nome de uma série de conferências sobre o tema, popularizando-se rapidamente a partir de então. Tratou-se de uma constatação de que as empresas que conseguiram se manter através da crise da Internet possuíam características comuns entre si, o que criou uma série de conceitos agrupados que formam o que chamamos Web 2.0.

Conceitualização

A conceitualização dada neste artigo segue os princípios ditados por Tim O'Reilly, sabidamente o precursor do uso do termo em seu artigo de conceitualização (e também de defesa) do termo Web 2.0. Tim define que:

"Web 2.0 é a mudança para uma internet como plataforma, e um entendimento das regras para obter sucesso nesta nova plataforma. Entre outras, a regra mais importante é desenvolver aplicativos que aproveitem os efeitos de rede para se tornarem melhores quanto mais são usados pelas pessoas, aproveitando a inteligência coletiva"

As regras a que se refere O'Reilly já foram discutidas antes do surgimento do termo, sob outros nomes como infoware[5], the internet operating system e the open source paradigm shift e são produto de um consenso entre empresas como Google, Amazon, Yahoo e Microsoft e estudiosos da Web (como Tim O'Reilly, Vicent Cerf e Tim Berners-Lee) e da consolidação do que realmente traz resultado na Internet. Segundo Tim O'Reilly, a regra mais importante seria desenvolver aplicativos que aproveitem os efeitos da rede para se tornarem melhores quanto mais são usados pelas pessoas, aproveitando a inteligência coletiva.

Web 2.0 e a programação

Começaram-se a desenvolver softwares que são usados pela Internet e vendidos não em pacotes mas como serviços, pagos mensalmente como uma conta de água. Além disso, mudou-se a forma de fazer softwares. Para que tudo funcionasse bem na Internet, foi necessária a união de

Page 4: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 4

várias tecnologias (como AJAX) que tornassem a experiência do usuário mais rica, com interfaces rápidas e muito fáceis de usar.

Definiu-se então que quanto mais simples e modular a programação, melhor. Assim é fácil tirar ou acrescentar uma funcionalidade ou compartilhar uma parte do seu software com outro software. Os módulos podem ser reutilizados em diversos softwares ou compartilhados para serem usados por programas de terceiros. Metodologias e conceitos como o Getting Real e Agile tem-se popularizado entre as empresas que desenvolvem aplicativos ditos "Web 2.0".

Segundo estes princípios, os softwares são desenvolvidos de modo que fiquem melhores quanto mais são usados, pois os usuários podem ajudar a torná-lo melhor. Por exemplo, quando um usuário avalia uma notícia, ele ajuda o software a saber qual notícia é a melhor. Da mesma maneira, quando um usuário organiza uma informação através de marcações, ele ajuda o software a entregar informações cada vez mais organizadas.

Interfaces com o utilizador

A Web 2.0 propõe uma experiência de uso semelhante à de aplicativos para desktop, freqüentemente fazendo uso de uma combinação de tecnologias surgidas no final da década de 1990, que incluem Web services APIs (1998), AJAX (1998), Web syndication (1997), entre outras. Estas tecnologias aumentaram a velocidade e a facilidade de uso de aplicativos Web, sendo responsáveis por um aumento significativo no conteúdo (colaborativo ou meramente expositivo) existente na Internet. Estas também permitiram que usuários comuns, que até então não possuíam conhecimentos necessários para publicar conteúdo na Internet - pela ausência de ferramentas de uso simplificado - publicassem e consumissem informação de forma rápida e constante. Notadamente têm-se os blogs e wikis como expoentes desta massificação. Permitiu ainda o desenvolvimento de interfaces ricas, completas e funcionais, sendo que alguns aplicativos Web, ainda em versão beta, são considerados por muitos como "desktops on-line", proporcionando ao usuário um ambiente de trabalho inteiramente baseado na WWW, acessível de qualquer computador com conexão à Internet.

De forma particular, o AJAX permite ao usuário não esperar que uma página Web se recarregue ou que o processo seja terminado para continuar usando o software. Cada informação é processada separadamente, de forma assíncrona, de forma que não é mais necessário recarregar a página a cada clique.

Web 2.0 e o conteúdo

O conteúdo dos websites também sofreu um enorme impacto com a Web 2.0, dando ao usuário a possibilidade de participar, geralmente gerando e organizando as informações. Mesmo quando o conteúdo não é gerado pelos usuários, este pode ser enriquecido através de comentários, avaliação, ou personalização.

Algumas aplicações Web 2.0 permitem a personalização do conteúdo mostrado para cada usuário, sob forma de página pessoal, permitindo a ele a filtragem de informação que ele considera relevante.

O conceito usado é comparável com o do software livre: se há muitas pessoas olhando, todos os erros são corrigidos facilmente. Para isso existem comunidades que se auto-moderam, através da participação dos usuários indicando ao sistema qual usuário não deve mais participar da comunidade.

Dentro dos princípios da Web 2.0 o conteúdo deve ser aberto, utilizando licenças como "Creative Commons" que flexibilizam os direitos autorais permitindo que o usuário reutilize (republicando, alterando ou colaborando) o conteúdo. O compartilhamento de informações deve dar ao usuário a possibilidade de reutilizá-lo.

Page 5: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 5

Além do conteúdo editorial e noticioso, na web 2.0 o conteúdo de alguns sites visa gerar comunidades, seja através de sites de relacionamento, seja através de comentários em notícias e blogues.

Tag's, não taxonomia: o usuário organiza o próprio conteúdo.

A organização do conteúdo é feita também pelo próprio usuário sob forma de marcações, em contraste de uma taxonomia do sistema. Por exemplo, o aplicativo del.icio.us para guardar e compartilhar links favoritos criou o conceito de marcação de conteúdo. Em vez de criar pastas e categorias pré-definidas para o usuário escolher, cada usuário pode definir uma palavra-chave para um determinado conteúdo, assim, quanto mais usuários marcarem o conteúdo, melhor organizado ele será.

Tecnologias novas

Apesar de o termo AJAX ter sido usado pela primeira vez em 2005, as tecnologias que englobam o termo tiveram início ainda no final da década de 90, nos navegadores de geração “4” (Internet Explorer 4.0 e Netscape Navigator 4.0), que introduziram suporte a técnicas de Remote Scripting. Com o lançamento da versão 5.0 do Internet Explorer em 2000, e com a estagnação do Netscape Navigator (que mais tarde teve seu código fonte aberto gerando o Firefox), a Microsoft inaugurou uma forma mais elegante de remote Scripting com o XMLHttpRequest. Daí até os dias atuais o conceito só evoluiu, ganhando força e notoriedade recentemente. Linguagens e frameworks de desenvolvimento rápido para web (RAD) já existiam antes da Web 2.0. Pode-se citar a linguagem ColdFusion da Allaire (1995) e o Fusebox (1998)[19]. A sindicância de conteúdo (famosa hoje pelo RSS), já chamada no passado de “conteúdo push” já era conhecida de usuários do Internet Explorer 4.0 e o seu serviço ActiveChannels. Agências de notícias como a Reuters já utilizavam sistemas de intercâmbio de conteúdo e notícias entre agências e consumidores de notícias muito antes do surgimento da Web 2.0, sistemas estes que inclusive foram os precursores dos padrões atuais. O próprio XML data de 1997. A portabilidade de sistemas para dispositivos móveis (a tão aclamada "convergência"), é um discurso antigo, que antecede em muito a Web 2.0, e que sempre esteve em constante evolução, cujo passo inicial remonta os primeiros dispositivos móveis, sejam eles celulares ou PDAs.

Fonte: http://pt.wikipedia.org/wiki/Web_2.0 em 01/09/2008.

Utilizando AJAX em desenvolvimento de páginas web AJAX (acrônimo em língua inglesa de Asynchronous Javascript And XML) é o uso

metodológico de tecnologias como Javascript e XML, providas por navegadores, para tornar páginas mais interativas com o usuário, utilizando-se de solicitações assíncronas de informações. AJAX não é somente um novo modelo, é também uma iniciativa na construção de aplicações web mais dinâmicas e criativas. AJAX não é uma tecnologia, são realmente várias tecnologias conhecidas trabalhando juntas, cada uma fazendo sua parte, oferecendo novas funcionalidades. AJAX incorpora em seu modelo.:

Apresentação baseada em padrões, usando XHTML e CSS;

Exposição e interação dinâmica usando o DOM;

Intercâmbio e manipulação de dados usando XML e XSLT;

Recuperação assíncrona de dados usando o objeto XMLHttpRequest;

e JavaScript unindo todas elas em conjunto.

Page 6: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 6

O modelo clássico de aplicação web trabalha assim: A maioria das ações do usuário na interface dispara uma solicitação HTTP para o servidor web. O servidor processa algo — recuperando dados, realizando cálculos, conversando com vários sistemas legados — e então retorna uma página HTML para o cliente. É um modelo adaptado do uso original da Web como um agente de hipertexto, porém o que faz a Web boa para hipertexto não necessariamente a faz boa para aplicações de software.

Esta aproximação possui muito dos sentidos técnicos, mas não faz tudo que um usuário experiente poderia fazer. Enquanto o servidor está fazendo seu trabalho, o que o usuário estará fazendo? O que é certo, esperando. E a cada etapa em uma tarefa, o usuário aguarda mais uma vez.

Obviamente, se nós estivéssemos projetando a Web a partir do zero para aplicações, não faríamos com que os usuários esperassem em vão. Uma vez que a interface está carregada, por que a interação do usuário deveria parar a cada vez que a aplicação precisasse de algo do servidor? Na realidade, por que o usuário deveria ver a aplicação ir ao servidor toda vez?

A maior vantagem das aplicações AJAX é que elas rodam no próprio navegador web. Então, para estar hábil a executar aplicações AJAX, bastar possuir algum dos navegadores modernos, ou seja, lançados após 2001. São eles: Mozilla Firefox, Internet Explorer 5+, Opera, Konqueror e Safari.

Fonte: http://pt.wikipedia.org/wiki/AJAX(programação) em 01/09/2008

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 TÍTULO DA PÁGINA AQUI</title>

</head>

<body>

<!--AQUI VAI TODO O CONTEÚDO DA PÁGINA-->

</body>

</html>

TAGS HTML BÁSICAS <!DOCTYPE html PUBLIC .....> Especificação do tipo de documento html <head> Cabeçalho do documento; <title> Título do documento; <body> Corpo do documento

Vejamos agora as principais tags de formatações que iremos usar no decorrer do nosso curso:

DETALHE: Essas tags deverão ficar sempre dentro da tag body e sempre deverão ser finalizadas!

Page 7: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 7

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 formatações abaixo deverão 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 não precisa ser fechada! SALTO DE LINHA SIMPLES <br> <br/> Linha 1 <br/> Linha 2 Também não precisa ser fechada. ALTERANDO CORES E TAMANHO DA FONTE

Veremos como ficaria para escrever o texto BOM DIA nas seguintes formatações: Fonte vermelha, tamanho 4, negrito

Page 8: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 8

<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="/diretório/veiculo.gif" title="Veículo vencedor!" border=”0”> INSERINDO LINKS EM NOSSA PÁGINA:

Usamos a tag <a href=”pagina2.html”>IR PARA PÁGINA 2</a>. O texto IR PARA PÁGINA 2 servirá de link para página 2.

Tags de tamanho pré definidas pelo html:

<H1> TAMANHO MÁXIMO <H2> TAMANHO GRANDE <H3> TAMANHO MÉDIO <H4> TAMANHO QUASE NORMAL <H5> TAMANHO PEQUENO

<H6> TAMANHO MÍNIMO

TABELAS

A tag <table> é o elemento principal na definição de uma tabela, e também na definição de outros atributos específicos, que servem para dar maior controle sobre como deve ser apresentada uma tabela em uma página HTML. Os demais elementos da tabela são ignorados se não 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:

Page 9: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 9

id="descricao" Este atributo contem uma identificação da tabela, exemplo: id=”HistoricoAluno”.

border="valor"

Este atributo pode ser utilizado para controlar as bordas de uma tabela. Se tal atributo estiver presente, então uma borda será desenhada em torno das células de toda a tabela. O valor 0 (zero) não coloca borda na tabela.

A exata espessura da borda, e de como ela é apresentada em um browser, só

depende do próprio 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 espaço inserido entre células individuais da tabela. Seu valor padrão é de 2.

cellpadding="valor"

O atributo CELLPADDING define a quantidade de espaço em branco entre as bordas da tabela e o conteúdo de cada célula (texto ou imagem). O valor padrão é 1. Exemplo desses 4 atributos: <table border="0" id=”tabela1” cellspacing="0" cellpadding="0">

Isso resulta em uma representação da tabela com o formato o mais compacto possível. 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 aconselhável é usar com tamanho em %, devido a certos usuários usarem o tamanho da tela 800 x 600 e outros usarem 1024 x 768, então você define tamanho 100%, logo a tabela atingirá 100% da tela do usuário, não importando a resolução de vídeo 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 página.

bgcolor="#rrggbb (cód. cor) ou nome_da_cor(red, blue, etc)"

Page 10: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 10

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 convenção para os casos acima. Para que o atributo BORDERCOLOR funcione é necessária a presença do atributo BORDER no tag <TABLE>.

LINHAS E COLUNAS DE UMA TABELA

A tag <table> assinala o início de uma tabela (na qual será necessário 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 compõem a tabela utiliza-se a tag <tr> (que termina com </tr>); a definição das colunas, que deve estar dentro da definição da linha, faz-se através 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:

Page 11: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 11

MESCLAGEM DE CÉLULAS

Em muitos casos você precisará mesclar determinadas células da tabela, o código abaixo irá mesclar a terceira linha de nossa tabela, veja como fica a tabela com a célula mesclada:

Usamos para mesclar COLUNAS a tag colspan seguido do valor, ou seja, a

quantidade de células que queremos mesclar, neste caso, foi preciso mesclar duas colunas, então colspan="2", veja o código 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 célula que foi mesclada:

Basta colocar a tag center: align="center"

Código completo:

Page 12: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 12

<table border="1">

<tr>

<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 código completo:

<table border="1">

<tr>

<td rowspan="3">Células Mescladas</td>

<td>Linha1Coluna2</td>

</tr>

<tr >

<td>Linha2Coluna2</td>

</tr>

<tr >

<td>Linha3Coluna2</td>

</tr>

</table>

Lembrando:

colspan - mescla colunas

Page 13: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 13

rowspan - mescla linhas.

De acordo com atualizações de tag's e novos padrões da w3c e xhtml, foram incluídos novos atributos em tabelas, veja um exemplo de uma estrutura de tabela de acordo com os padrões 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>

INSERINDO FORMULÁRIO

Por ser uma linguagem de marcação, a sintaxe do HTML na maioria dos casos exige uma “tag” de início e uma de final daquele bloco. É Exatamente isso que ocorre com a definição de um formulário: uma tag no início e outra no final, sendo que todos os elementos do formulário devem

Page 14: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 14

estar entre as duas tags. Isto torna possível a inclusão de mais de um formulário num mesmo html. As tags citadas são:

<form name=” ” action=” ” method=” ”> </form> Onde temos: name: o identificador do formulário; action: nome do script que receberá os dados do formulário ao ser submetido. Mais à

frente estão abordadas as maneiras de tratar esses dados recebidos; method: método de envio dos dados: get ou post; Exemplo: <form name=”formcadastro” action="recebedados.php" method="post"> (textos e elementos do form) campos; botões; selects; ... </form> Cada elemento do formulário 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 formulário html são definidos pela tag <input>. Cada tipo de

elemento possui parâmetros próprios, mas todos possuem pelo menos dois parâmetros em comum: type, que define o tipo de elemento, e name, que como já foi dito define o nome daquele elemento.

Usaremos também, o parâmetro id, que receberá o mesmo valor dado ao name. A partir de agora também usaremos este novo parâmetro obdecendo as normas e regras do XHTML, que também é uma linguagem de marcação assim como o html, no futuro, as novas gerações de browses (navegadores) identificarão os nomes dos inputs somente através do id.

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

O campo mais comum em formulários. Exibe na tela um campo para entrada de texto

com apenas uma linha. Parâmetros: Value o valor pré-definido do elemento, que aparecerá quando a página for

carregada; Size O tamanho do elemento na tela, em caracteres; Maxlength O tamanho máximo do texto contido no elemento, em caracteres; Campo de texto com máscara (input type="password") <input type="password" name="senha" id="senha" size="" maxlength="">

Page 15: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 15

Tipo de campo semelhante ao anterior, com a diferença que neste caso os dados

digitados são substituídos por asteriscos, e por isso são os mais recomendados para campos que devam conter senhas. É importante salientar que nenhuma criptografia é utilizada. Apenas não aparece na tela o que está sendo digitado.

Parâmetros: Size O tamanho do elemento na tela, em caracteres; Maxlength O tamanho máximo do texto contido no elemento, em caracteres; Checkbox (type="checkbox") <input type="checkbox" name="" id="" value="" checked> Utilizado para campos de múltipla escolha, onde o usuário pode marcar mais de uma

opção.

Parâmetros: Value o valor que será enviado ao servidor quando o formulário 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 múltipla escolha, onde o usuário pode marcar apenas uma

opção. Para agrupar vários elementos deste tipo, fazendo com que eles sejam exclusivos, basta atribuir o mesmo nome a todos do grupo.

Parâmetros:

Value o valor que será enviado ao servidor quando o formulário 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 formulário para o script descrito na seção “action”

da definição do formulário.

Page 16: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 16

Parâmetros:

Value o texto que aparecerá no corpo do botão.

Reset Button (type="reset")

<input type="reset" name="btlimpar" id=" btlimpar " value="Limpar Campos"> Utilizado para fazer com que todos os campos do formulário retornem ao valor

original, quando a página foi carregada. Bastante utilizado como botão “limpar”, mas na realidade só limpa os campos se todos eles tiverem como valor uma string vazia.

Parâmetros:

Value - o texto que aparecerá no corpo do botão.

Button (type="button")

<input type="button" name="btcadalunos" value="Cadastrar Alunos"> Utilizado normalmente para ativar funções de scripts client-side (JavaScript, por

exemplo), e criar links para outras páginas. Sem essa utilização, não produz efeito algum.

Parâmetros:

Value - o texto que aparecerá no corpo do botão.

TextArea

<textarea cols="2" rows="7" name="mensagem">texto</textarea> Exibe na tela uma caixa de texto, com o tamanho definido pelos parâmetros “cols” e

“rows”.

Parâmetros: Cols número de colunas do campo, em caracteres; Rows número de linhas do campo, em caracteres;

Page 17: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 17

Value O elemento do tipo textarea não possui o parâmetro “value”. O valor pré-definido do campo é o texto que fica entre as tags <textarea> e </textarea>.

Select

<select name="estcivil"> <option value="">texto</option> </select> Se o parâmetro “size” tiver o valor 1 e não houver o parâmetro “multiple”, exibe na tela

uma “combo box”. Caso contrário, exibe na tela uma “select list”

Parâmetros: Size número de linhas exibidas. Default: 1; Multiple parâmetro que, se presente, permite que sejam selecionadas duas ou mais

linhas, através 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. Não é definido por um parâmetro, 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 comentários em html: <!-- Isto é um comentário em html -->

MENSAGENS EM JAVASCRIPT

Iremos usar bastante as famosas caixas alert em javascript para exibir mensagens de SUCESSO OU FALHAS EM INSERÇÕES, UPDATES, etc.

<script> alert('Registro Inserido com Sucesso!'); </script>

Folha de Estilos - CSS (Cascading Style Sheet)

Page 18: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 18

(cores, fontes, fundo, margem)

Se você se interessa pela criação de home pages já deve ter ouvido falar em Cascading Style Sheets, ou CSS apenas. Trata-se de um padrão de formatação para páginas web.

O Cascading Style Sheet(CSS) permite uma versatilidade maior na programação do layout de páginas web sem aumentar o seu tamanho em Kb, pois oferece várias possibilidades que antes só eram conseguidas com a utilização 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, espaçamento entre linhas e caracteres, margem do texto, caixas de texto, botões de formulário, 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:

<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; }

Page 19: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 19

.botaook { font-family: Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold; color: #FFFFFF; background-color: #333333; border: 1px #003399; } </style> <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:

Outra alternativa para inclusão de folha de estilos nas páginas html, é através 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, é aconselhável criar folhas de estilos em arquivos isolados.

Page 20: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 20

Programação em PHP

O que é PHP? PHP(Hypertext Preprocessor) é uma linguagem que permite criar sites WEB

dinâmicos, possibilitando uma interação com o usuário através de formulários, parâmetros da URL e links. A diferença de PHP com relação a linguagens semelhantes a Javascript é que o código PHP é executado no servidor, sendo enviado para o cliente apenas html puro. Desta maneira é possível interagir com bancos de dados e aplicações existentes no servidor, com a vantagem de não expor o código fonte para o cliente. Isso pode ser útil quando o programa está lidando com senhas ou qualquer tipo de informação confidencial.

O que pode ser feito com PHP?

Basicamente, qualquer coisa que pode ser feita por algum programa CGI pode

ser feita também com PHP, como coletar dados de um formulário, gerar páginas dinamicamente ou criar e destruir sessões nos navegadores.

PHP também tem como uma das características mais importantes o suporte a um grande número de bancos de dados, como dBase, Interbase, mSQL, mySQL, Oracle, Sybase, PostgreSQL e vários outros. Construir uma página 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

Page 21: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 21

receber os dados do usuário, processá-los e enviar a resposta dinâmica. 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 métodos para enviar informações para o servidor web, além da URL referente ao arquivo solicitado. Esses métodos são o POST e o GET.

Os métodos GET e POST

O HyperText Transfer Protocol (Protocolo de Transferência de Hipertexto -

HTTP) é o protocolo de comunicação utilizado para a troca de dados entre um navegador e um servidor web. É o protocolo de comunicação que você aciona quando digita um endereço no seu navegador: http://www...

É para isto que existem os métodos HTTP. Dois desses métodos, associados à transferência de dados de formulários, são muito importantes: o método GET e o método POST.

POST envia em nível de ambiente e as variáveis não ficam disponíveis visivelmente.

GET envia as variáveis através da URL, ficando disponíveis no endereço da página.

Se você for fazer uma autenticação de usuário, por exemplo, não utilize o método GET para o envio do formulário, porque os dados de login ficarão visíveis na URL. Teríamos algo como: http://localhost/valida.php?senha=ceef&login=200854999.

Já no caso de uma página de pesquisa, faz mais sentido usar o método GET. http://localhost/busca.php?procura=php

Para visualizar melhor essa diferença entre o GET E O POST, vamos criar

duas páginas em php. A pagina1.php irá ter 2 inputs type text: valor1 e valor2 e um botão submit. A

pagina2.php irá receber essas variáveis. Não esqueça do form na pagina1.php. Delimitando o código PHP O código PHP fica embutido no próprio HTML. O interpretador identifica

quando um código é PHP pelas seguintes tags: <?php comandos ?> ou <? comandos ?>

Separador de instruções

Entre cada instrução em PHP é preciso utilizar o ponto-e-vírgula, assim como

em C, Perl e outras linguagens mais conhecidas. Na última instrução do bloco de script não é necessário o uso do ponto-e-vírgula, mas por questões estéticas recomenda-se o uso

Page 22: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 22

sempre.

Nomes de variáveis

Toda variável 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 variáveis $fucapi e $FUCAPI são

diferentes. Por isso é preciso ter muito cuidado ao definir os nomes das variáveis. É bom evitar os nomes em maiúsculas, pois como veremos mais adiante, o PHP já possui algumas variáveis pré-definidas cujos nomes são formados por letras maiúsculas.

Exemplo de uma variável: $veiculo = “Fusca”; //a variável veiculo tem o valor Fusca $veiculo = “Brasilia”;//agora a variável veiculo tem o valor Brasilia No PHP não há necessidade de declarar antes a variável, em outras

linguagens de programação, você deveria declarar a variável veículo, antes de atribuir qualquer valor a ela. O php trata isso de forma dinâmica, ao atribuir um valor a uma variável, a mesma já é criada.

Declaração de uma variável Como a tipagem em PHP é dinâmica, as variáveis não precisam ser

declaradas. Uma variável é inicializada no momento em que é feita a primeira atribuição. O tipo da variável será definido de acordo com o valor atribuído.

Comentários

Há dois tipos de comentários em código PHP:

Comentários de uma linha:

Marca como comentário até o final da linha ou até o final do bloco de código PHP o que vier antes. Pode ser delimitado pelo caracter “#” ou por duas barras ( // ).

Exemplo: <? echo “teste”; #isto é um teste ?> <? echo “teste”; //este teste é similar ao anterior ?> (+ usado)

Comentários de mais de uma linha:

Tem como delimitadores os caracteres “/*” para o início do bloco e “*/” para o final do comentário. Se o delimitador de final de código PHP ( ?> ) estiver dentro de um comentário, não será reconhecido pelo interpretador.

Exemplos: <? echo “teste”; /* Isto é um comentário com mais de uma linha, mas não funciona corretamente ?> */

Page 23: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 23

<? echo “teste”; /* Isto é um comentário com mais de uma linha que funciona corretamente */ ?>

Imprimindo código html

Um script php geralmente tem como resultado uma página html, ou algum outro texto. Para gerar esse resultado, deve ser utilizada uma das funções de impressão, 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 padrão o echo, o mais utilizados pelos desenvolvedores.

Constantes

Como você viu anteriormente, podemos alterar o valor armazenado de uma variável. Também podemos declarar constantes. Uma constante armazena um valor como uma variável, mas seu valor é configurado uma vez e, então, não pode ser alterado em outra parte do script.

Você pode definir essas constantes utilizando a função define: define("TOTAL",100); define("PRECO",15); Você notou que os nomes da constante estão inteiramente em letras

maiúsculas. Essa é uma convenção emprestada de C que facilita distinguir rapidamente entre variáveis e constantes. Essa convenção não é necessária mas facilitará a leitura e manutenção do código.

Uma diferença importante entre constantes e variáveis é que quando você referencia a uma constante, ela não tem um sinal de cifrão 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, poderíamos 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

Page 24: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 24

Tipos Suportados

PHP suporta os seguintes tipos de dados: Integer (Inteiro) - Utilizado para números inteiros Double (Dupla precisão) - Utilizado para números reais Strings - Utilizado para strings de caracteres Array (Vetor) - Utilizado para armazenar múltiplos itens de dados do

mesmo tipo Object (Objeto) - Utilizado para armazenar instâncias de classes. PHP utiliza checagem de tipos dinâmica, ou seja, uma variável pode conter

valores de diferentes tipos em diferentes momentos da execução do script. Por este motivo não é necessário declarar o tipo de uma variável para usá-la. O interpretador PHP decidirá qual o tipo daquela variável, verificando o conteúdo em tempo de execução.

Strings

Strings podem ser atribuídas de duas maneiras:

1. utilizando aspas simples ( ' ) - Desta maneira, o valor da variável será exatamente o texto contido entre as aspas (com exceção de \\ e \' )

2. utilizando aspas duplas ( " ) - Desta maneira, qualquer variável ou caracter de escape será expandido antes de ser atribuído.

Exemplo: <?php $escola = "Fucapi"; $viva = '---$escola---'; echo "$viva"; echo "<br>"; ?> <?php $escola = "Fucapi"; $viva = "---$escola---"; echo "$viva"; ?> A saída desses scripts será: ---$escola---

---Fucapi---

Funções para manipular strings Em muitas aplicações que você escrever na linguagem PHP, haverá a

necessidade de manipular ou analisar strings. Para ajudar nessa tarefa, a linguagem PHP dispõe de várias funções úteis para manipular strings. Abaixo você poderá ver uma lista dessas funções e aprender a utilizar cada uma delas.

substr()

Page 25: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 25

A função substr() é utilizada para procurar uma substring (parte ou pedaço de

uma string). Quando o script chama essa função ela retorna parte de uma string. Essa função recebe três argumentos (sendo que dois são obrigatórios e um é opcional). O primeiro argumento é a string que será analisada, o segundo argumento é a posição de onde começar a retornar a string e o terceiro argumento opcional é o número de caracteres que a função deve retornar. Lembre-se que a posição 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 número negativo, ele

irá começar a contar a partir do final da string. chr() A função chr() é usada para transformar o código ASCII no caractere

correspondente. Observe o exemplo abaixo: <?php // Esse exemplo imprimirá a letra "a". echo (chr(97)); ?> ord() A função ord() faz o trabalho inverso da função 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)); ?> strlen() A função strlen() retorna o número de caracteres de uma string. Observe o

exemplo abaixo: <?php / /Esse exemplo imprimirá "6". echo (strlen("Brasil")); ?> strtolower() A função strtolower coloca a string toda em letras minúsculas, veja o exmplo: <?php $nome = "Fulano de Tal"; echo strtolower($nome); ?>

Page 26: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 26

strtoupper() A função strtoupper coloca a string toda em letras maiúsculas, veja o exmplo: <?php $nome = "fulano de Tal"; echo strtoupper($nome); ?> ucfirst() A função ucfirst coloca o primeiro caracter de uma string em letra maiúscula se

ele for alfabético, veja o exmplo: <?php $nome = "fulano de tal"; echo ucfirst($nome); ?> ucwords() A função ucwords coloca o primeiro caracter de cada palavra em letra

maiúscula na string que inicia com um caracter alfabético, veja o exmplo: <?php $nome = "fulano de tal"; echo ucwords($nome); ?>

Manipulando o tratamento de arrays Funções Genéricas É a função que cria um array a partir dos parâmetros fornecidos. É possível

fornecer o índice de cada elemento. Esse índice pode ser um valor de qualquer tipo, e não apenas de inteiro. Se o índice não 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 não 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 também funciona ?>

Page 27: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 27

Em geral, não é recomendável utilizar arrays com vários 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 atenção ao manipular os índices do array.

Funções para manipular Arrays sizeof Retorna um valor inteiro contendo o número de elementos de um array. Se for

utilizada com uma variável cujo valor não é do tipo array, retorna 1. Se a variável não estiver setada ou for um array vazio, retorna 0.

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 "navegação" Toda variável do tipo array possui um ponteiro interno indicando o próximo

elemento a ser acessado no caso de não ser especificado um índice. As funções seguintes servem para modificar esse ponteiro, permitindo assim percorrer um array para verificar seu conteúdo (chaves e elementos).

reset Seta o ponteiro interno para o primeiro elemento do array, e retorna o

conteúdo 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 conteúdo

desse elemento. Ex: <?php $frutas = array('melancia', 'banana', 'morango'); print_r ($frutas); print "<p>"; print end($frutas); // morango ?>

Page 28: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 28

next Seta o ponteiro interno para o próximo elemento do array, e retorna o

conteúdo desse elemento. Obs.: esta não é uma boa função 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 conteúdo

desse elemento. Funciona de maneira inversa a next. Veremos um exemplo usando a função prev e algumas anteriores para

entendermos melhor a navegação. <?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); // próximo elemento do array = 'bicicleta'; $next2 = next($transportes); // próximo 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>"; ?> pos Retorna o conteúdo 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';

Page 29: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 29

echo "<p>"; echo "Lembrando as funções 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 ordenação São funções que servem para arrumar os elementos de um array de acordo

com determinados critérios. Estes critérios são: manutenção ou não da associação entre índices e elementos; ordenação por elementos ou por índices; função de comparação entre dois elementos.

sort A função mais simples de ordenação 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 ordenação:<br>"; 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 à função 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 ordenação:<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.";

Page 30: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 30

//Array ( [0] => vcd [1] => hd [2] => gravador [3] => dvd [4] => cd ) ?> asort Tem o funcionamento bastante semelhante à função sort. Ordena os

elementos de um array em ordem crescente, porém mantém os relacionamentos com os índices.

Ex: <?php $teste = array("Jakeline","Carla","Ariane","Vanessa","Giovanna"); echo "Array antes da ordenação:<br>"; print_r($teste); 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 à função asort. Ordena os elementos de um

array em ordem decrescente e mantém os relacionamentos dos elementos com os índices. Ex: <?php $teste = array("Jakeline","Carla","Ariane","Vanessa","Giovanna"); echo "Array antes da ordenação:<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 Função de ordenação 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 ordenação:<br>"; print_r($teste); ksort($teste); print_r($teste);

//Array ( [0] => Giovanna [1] => Carla [2] => Vanessa [3] => Ariane [4] => Jakeline ) ?>

Page 31: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 31

Trabalhando com datas no PHP - função date() Veremos agora sobre como trabalhar com datas utilizando a linguagem PHP.

A função date() tem por finalidade formatar a data e a hora local. Segue abaixo uma pequena tabela com algumas formatações aceitas por essa

função: Formato Descrição d Dia do mês com 2 dígitos D Representação textual do dia m Representação numérica do mês M Representação textual do mês y Representação do ano com 2 dígitos Y Representação do ano com 4 dígitos l (L minúsculo) Descrição do dia da semana h Formato em 12 horas H Formato em 24 horas i Minutos s Segundos

Outras formatações, consultar o manual do PHP em http://www.php.net Exemplos: 1) Exibindo a data no formato 11/12/2004. <? //FUNÇÃO DATE() echo date("d/m/Y"); ?> 2) Exibindo a data e a hora no formato 14/02/2004 21:04:02 <? //FUNÇÃO DATE() echo $data = date("d/m/Y H:i:s "); ?> Por ventura, você queira desmembrar a data, pode-se usar assim: <?php $data = getdate(); $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 padrão americano ANO-MÊS-DIA. Ex: 2005-06-22.

Diante disto, teremos que tratar nossa data(DD/MM/AAAA) antes de inserir no banco.

Page 32: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 32

Iremos utilizar a função explode. Veja um exemplo. <input name=”campodata” value=”22/06/2005”> $campodata = explode("/", $_POST["campodata"]); A função EXPLODE retorna um array(vetor) de 3 posições, temos que

organizar para o padrão americano antes de inserir no banco: O dia é a posição 2; o mês é posição 1 e o ano posição 0. $campodata[2]-$campodata[1]-$campodata[0]

Operadores em Php

Operadores Aritméticos

Os operadores aritméticos são muito simples e diretos - eles são

simplesmente os operadores matemáticos normais. Os operadores aritméticos são mostrados abaixo:

Operador Nome Exemplo + Adição $a + $b - Subtração $a - $b * Multiplicação $a * $b / Divisão $a / $b % Módulo $a % $b

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>"; ?>

Page 33: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 33

Operadores de strings

Você pode utilizar o operador de concatenação de string para juntar duas

string e gerar e armazenar um resultado da mesma maneira como você utilizaria o operador de adição para somar dois números:

<?php $a = Fundacao; $b = Fucapi; $result = $a.$b; $result2 = $a." ".$b; //Espaço entre as palavras echo $result; echo "<br>"; echo $result2; ?>

Operadores de Pré e Pós-Incremento e Decremento

Podem ser utilizados de duas formas: antes ou depois da variável. Quando utilizado antes, retorna o valor da variável antes de incrementá-la ou decrementá-la. Quando utilizado depois, retorna o valor da variável 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 variável A que é 10 e a variável 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 variável B e D já vai receber B

incrementado echo "Passo 3<br>"; echo "D = $d<br>"; // = 11 echo "B = $b<br>"; // = 11 ?>

Page 34: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 34

Operadores de Igualdade

O operador de comparação de igualdade, = = (dois sinais de igual) permite testar se dois valores são iguais. Por exemplo, poderíamos utilizar a expressão.

$a = = $b Para testar se os valores armazenados em $a e $b são os mesmos. O

resultado retornado por essa expressão será true se eles forem iguais ou false se eles não forem iguais.

É fácil confundir isso com =, o operador de atribuição.

Operador Nome Utilização = = Igual a $a = = $b = = = Idêntico a $a = = = $b != Não igual a $ $a != $b <> Não igual a $ $a <> $b < Menor que $a < $b > Maior que $a > $b <= Menor que ou igual a $a <= $b >= O maior que ou igual a $a >= $b

Estruturas de Controle

Blocos

Um bloco consiste de vários comandos agrupados com o objetivo de relacioná-los com determinado comando ou função. Em comandos como if, for, while, switch e em declarações de funções blocos podem ser utilizados para permitir que um comando faça parte do contexto desejado. Blocos em PHP são delimitados pelos caracteres “{” e “}”. A utilização dos delimitadores de bloco em uma parte qualquer do código não relacionada com os comandos citados ou funções não 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; comando2; } Veja outro exemplo: <?php $a = 10;

Page 35: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 35

$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 NÃO 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; } 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 condições são

verdadeiras, se for executa os cálculos contidos no bloco. O segundo testa outra condição, se também as duas condições forem verdadeiras executa os cálculos do bloco. Se não satisfazerem nem uma ou nem outra condição executa o senão (else).

Em determinadas situações é necessário fazer mais de um teste, e executar

condicionalmente diversos comandos ou blocos de comandos.

Page 36: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 36

switch O comando switch atua de maneira semelhante a uma série de comandos if na

mesma expressão. Frequentemente o programador pode querer comparar uma variável com diversos valores, e executar um código diferente a depender de qual valor é igual ao da variável.

Quando isso for necessário, deve-se usar o comando switch. O exemplo

seguinte mostra dois trechos de código que fazem a mesma coisa, sendo que o primeiro utiliza uma série de if’s 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”; break; case 1: print “i é igual a um”; break; case 2: print “i é igual a dois”; break; default: echo "i não é igual a 0, 1 ou 2"; } É importante compreender o funcionamento do switch para não cometer

enganos. O comando switch testa linha a linha os cases encontrados, e a partir do momento que encontra um valor igual ao da variável 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 código 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 três comandos “echo” serão

executados. Se $i for igual a 1, os dois últimos “echo” serão executados. O comando só funcionará da maneira desejada se $i for igual a 2.

Page 37: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 37

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 //Variável SESSION é um array, neste exemplo estamos pegando na posição 1 $_SESSION['extensao'][1] = 2; switch($_SESSION['extensao'][1]) { case 0: print "Acesso permitido"; break; case 1: print "Acesso permitido"; break; case 2: print "<script>alert('Acesso Não Autorizado!');location='principal.php';</script>"; exit(); break; default: print "<script>alert('Acesso Não Autorizado!');location='principal.php';</script>"; exit(); break; } ?> Se a sessão do usuário, for igual a 2 ou superior, ele não poderá acessar a

página, se for 0 ou 1 acessa normalmente e ainda imprime a mensagem “Acesso permitido”. Veremos mais adiante com detalhes, o uso de sessões. Sessões em php é de

extrema importância para quem irá trabalhar com páginas protegidas, ou irá dar mensagens de boas vindas aos usuários. Exemplo: Olá fulano_de_tal!.

Comandos de repetição

while

O while é o comando de repetição (laço) mais simples. Ele testa uma condição e executa um comando, ou um bloco de comandos, até que a condição testada seja falsa. Assim como o if, o while também possui duas sintaxes alternativas:

while (<expressao>) <comando>; while (<expressao>): <comando>; . . . <comando>; endwhile; A expressão só é testada a cada vez que o bloco de instruções termina, além

do teste inicial. Se no teste inicial a condição for avaliada como false, o bloco de comandos não será executado.

Page 38: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 38

O exemplo a seguir mostra o uso do while para imprimir os números de 1 a 10: $i = 1; while ($i <=10) print $i++;

do... while

O laço do..while funciona de maneira bastante semelhante ao while, com a simples diferença que a expressão é testada ao final do bloco de comandos. O laço 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 laço mais complexo é o for. Para os que programam em C, C++ ou Java, a assimilação do funcionamento do for é natural. Mas para aqueles que estão acostumados a linguagens como Pascal, há uma grande mudança para o uso do for. As duas sintaxes permitidas são:

for (<inicializacao>;<condicao>;<incremento>) <comando>; for (<inicializacao>;<condicao>;<incremento>) : <comando>; . . . <comando>; endfor; As três expressões que ficam entre parênteses têm as seguintes finalidades: Inicialização: comando ou sequencia de comandos a serem realizados antes

do inicio do laço. Serve para inicializar variáveis. Condição: Expressão booleana que define se os comandos que estão dentro

do laço serão executados ou não. Enquanto a expressão for verdadeira (valor diferente de zero) os comandos serão executados.

Page 39: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 39

Incremento: Comando executado ao final de cada execução do laço. for( $i=1; $i<=10; $i++) { echo $i; }

Quebra de fluxo

break

O comando break pode ser utilizado em laços de do, for e while, além do uso já visto no comando switch. Ao encontrar um break dentro de um desses laços, o interpretador PHP para imediatamente a execução do laço, seguindo normalmente o fluxo do script.

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

Funções

Definindo funções

As funções existem na maioria das linguagens de programação. Elas são

utilizadas para separar código que realiza uma tarefa única e bem-definida. Isso torna o código mais fácil de ler e permitir reutilizar o código toda vez que precisarmos fazer a mesma tarefa.

Uma função é um módulo autocontido de código que prescreve uma interface

de chamada, realiza alguma tarefa e opcionalmente retorna um resultado.

Por que você define suas próprias funções? As funções predefinidas para PHP permitem interagir com arquivos, utilizar

banco de dados e conectar-se a outros servidores. Declarar uma função permite utilizar seu próprio código da mesma maneira

como as funções predefinidas. Você simplesmente chama sua função e fornece a ela os parâmetros necessários.

Page 40: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 40

Estrutura básica da função

Uma declaração cria ou declara uma nova função. A declaração começa com

a palavra-chave function, fornece o nome de função, os parâmetros necessários e contém o código que será executado toda vez que essa função for chamada.

Eis a declaração de uma função trivial: function nome_funcao( ) { echo "Minha função"; } my_function( );

Nomeando sua função A coisa mais importante a considerar ao nomear suas funções é que o nome

deve ser curto mas descritivo. Algumas restrições são as seguintes: Sua função não pode ter o mesmo nome que uma função existente. Seu nome de função somente pode conter letras. function soma() { $a=3; $b=6; $total=$a+$b; return $total; } echo soma();

Parâmetros Passar um parâmetro permite obter dados que foram criados fora da função,

no nosso caso abaixo chamamos as variáveis $a, $b que se encontravam fora da função. $a=9; $b=6; function soma($a,$b) { $total=$a+$b; return $total; } echo soma($a,$b); Função é nada mais que um segmento de código que somente se executa se

Page 41: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 41

for solicitado. Ela representa uma forma simplificada de executarmos um mesmo trecho de código em diversos pontos do mesmo script.

ISSET isset - Informa se a variável foi iniciada. Veja o exemplo: <?php $fruta = "Maça"; //depois troque para NULL if (isset($fruta)) { echo "Variável Existe!".$fruta; } else { echo "Variável Não existe!"; } ?> O isset é muito utilizado com form's, ou seja, ao enviar um formulário

queremos que um bloco de código 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 usuário enviar o form, será ativado este bloco PHP: <?php //inclua este bloco após </html> if (isset($checar)) { echo $fruta; } ?>

ATIVIDADE

1 – Desenvolver uma página php contendo um form e dois input's type text, com os

nomes: av1 e av2. Após o usuário digitar os valores e enviar o form, um script php irá somar e calcular a média.

OBS: Utilizar a função isset e o resultado deverá ser impresso em uma caixa alert, como mostra a figura abaixo.

Page 42: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 42

Trabalhando com session (sessões)

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 usuários cadastrados no sistema. Quando o usuário quiser acessar a parte restrita do website ele terá que informar um usuário e senha. Agora imagine que para cada página da área restrita o usuário tenha que digitar o usuário e senha!

Agora se implementarmos um sistema de login com session, o usuário terá que digitar apenas uma vez o usuário e senha e pronto! A cada página da área restrita que o usuário acessar o sistema faz uma verificação se o usuário está cadastrado no sistema e lhe dará permissão de acesso à página!

session_start: inicia dados de uma sessão

Comando utilizado para iniciar uma nova sessão ou iniciar uma sessão

existente.

Obs: É necessário declarar session_start() no início de cada script onde for necessário alguma informação que esteja registrada na sessão.

session_destroy: encerra a sessão, eliminando todos os dados registrados

Comando utilizado para encerrar uma sessão existente.

<? session_start(); // antes de destruir a sessão, é necessário efetuar o start. session_destroy(); ?>

Antes de praticar a criação de uma session, precisamos de mais alguns

conceitos:

As instruções include() e require() A instrução include() inclui e avalia o arquivo informado. A instrução require() inclui a avalia um arquivo específico. Esses dois construtores são idênticos a exceção 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 página. include() não se comporta da mesma maneira, permitindo que o

Page 43: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 43

script continue nessas situações. location Seta uma determinada página, sua utilização será em conjunto com scripts em

javascript.

ATIVIDADE COM SESSION

Iremos simular uma checagem de login e senha, onde o usuário digita o login, senha e nível, o script irá armazenar na session esses dados e exibirá na página principal. Caso o usuário não esteja logado no sistema, o php não deixa ele acessar a página principal.

Primeiro passo: Faça 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 também o arquivo verificarsessao.php: <?php // Verifica se o usuário já está logado session_start();

Page 44: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 44

if (!isset($_SESSION['aula'])) { header("Location: acesso.php"); } if (isset($_GET['logout'])) { session_destroy(); header("Location: acesso.php"); } ?> E a página 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 padrão SQL e é largamente utilizado em aplicações 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 conexão

informada, ou seja, a última conexão aberta é usada. Nota: A string da query não deve terminar com ponto e virgula(;). Ex:

$query = mysql_query("select * from tabtipos where descricao = 'Acervo'");

mysql_num_rows Retorna o número de linhas em um resultado. Este comando é valido apenas

para o SELECT. Para obter o número de linhas afetadas por INSERT, UPDATE ou DELETE, use mysql_affected_rows().

Ex:

Page 45: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 45

$resultado = mysql_num_rows($query); mysql_affected_rows Devolve o número de linhas afetadas na operação anterior com o MySQL

Retorna o número 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 excluídos: ", mysql_affected_rows()); mysql_fetch_array Busca o resultado de uma linha e o coloca como uma matriz associativa,

matriz numérica ou ambas. Retorna uma matriz que corresponde a linha buscada, ou FALSE se não houverem mais linhas.

Além de guardar os dados em um índice numérico na matriz, também 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 = $vetor["id"]; $nome = $vetor["nome"]; $nivel = $vetor["nivel"]; $campos = array($nome,$nivel,$id); //0 = nome; 1 = nível e 2 = id $_SESSION['locadora'] = $campos; echo "<script>location='principal.php';</script>"; } else { echo "<script>alert('Login ou Senha Inválidos! Tente Novamente...'); location='index.php';</script>"; } ?>

Acessando o MySql via PHP

Estabelecendo conexões

Para acessar bases de dados num servidor MySql, é necessário antes

estabelecer uma conexão. Para isso, deve ser utilizado o comando mysql_connect, ou o

Page 46: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 46

mysql_pconnect. A diferença entre os dois comandos é que o mysql_pconnect estabelece uma conexão permanente, ou seja, que não é encerrada ao final da execução do script. Iremos usar o mysql_connect para nosso sistema.

mysql_connect -- Abre uma conexão com o servidor MySQL; mysql_pconnect -- Abre uma conexão persistente com um servidor MySQL; Iremos utilizar este exemplo em nosso sistema, por padrão iremos chamar

este arquivo de 'conexao.php'. <?php $_ENV["host"] = "localhost"; //endereço $_ENV["login"] = "matriculaaluno"; //usuário do mysql $_ENV["senha"] = " matriculaaluno "; //senha do usuário $_ENV["db"] = "ceef"; //database $conn = mysql_connect($_ENV["host"], $_ENV["login"],

$_ENV["senha"]) or die ("Não foi possível conectar com o servidor."); mysql_select_db($_ENV["db"],$conn) or die ("Não foi possível

selecionar o banco."); //estabelecendo a conexao ?> mysql_select_db -- Seleciona um banco de dados MySQL O valor de retorno é um inteiro que identifica a conexão, ou falso se a conexão

falhar. Antes de tentar estabelecer uma conexão, o interpretador PHP verifica se já existe uma conexão estabelecida com o mesmo host, o mesmo login e a mesma senha. Se existir, o identificador desta conexão é retornado. Senão, uma nova conexão é criada.

Uma conexão estabelecida com o comando mysql_connect é encerrada ao

final da execução do script.

Acessando o MySql em modo terminal Iremos aprender as operações básicas com o MySql em modo terminal (texto). Para entrar no ambiente do mysql digite no terminal: mysql Como não definimos senha para o root, não 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);

Page 47: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 47

Foi criada a tabela imóvel, com os campos: id tipo int, auto incremento, chave primária e não pode ser nulo Nome 40 posições e não nulo; CPF 14 posições e não nulo. Neste ambiente do mysql voce pode saltar de linha, desde que não inclua o ponto e vírgula (;)

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 > select * from imovel; 6. Atualizando registros > update imovel set cpf=”111.111.111-11” where id=1; 7. Alterando tabelas depois da criação 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; 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 padrão do MySql o

TYPE=MyISAM. Esse tipo (MyIsam) não 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 prático: 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 funcionário pode ter vários dependentes; √ Não podemos excluir funcionário, se o mesmo tiver dependente; √ Quando alterarmos o cpf do funcionário, o mesmo é alterado automático na

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)

Page 48: Tópicos especiais HTML/PHP/MySql - mrmsistemas.com.br fileUma breve história do HTML HTML foi originalmente desenvolvido por Tim Berners-Lee e tornou-se conhecido através ... (CSS),

Tópicos Especiais – Internet/Php/MySql 48

) 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;

Referências Consultadas

Site Oficial do PHP http://www.php.net/manual/pt_BR/