Este documento propriedade intelectual 2002 do Centro de Computao da Unicamp
e distribudo sob os seguintes termos:
1. As apostilas publicadas pelo Centro de Computao da Unicamp podem ser reproduzidas e distribudas no todo ou em parte, em qualquer meio fsico ou eletrnico, desde que os termos desta licena sejam obedecidos, e que esta licena ou referncia a ela seja exibida na reproduo.
2. Qualquer publicao na forma impressa deve obrigatoriamente citar, nas pginas externas, sua origem e atribuies de direito autoral (o Centro de Computao da Unicamp e seu(s) autor(es)).
3. Todas as tradues e trabalhos derivados ou agregados incorporando qualquer informao contida neste documento devem ser regidas por estas mesmas normas de distribuio e direitos autorais. Ou seja, no permitido produzir um trabalho derivado desta obra e impor restries sua distribuio. O Centro de Computao da Unicamp deve obrigatoriamente ser notificado (treinamentos@ccuec.unicamp.br) de tais trabalhos com vista ao aperfeioamento e incorporao de melhorias aos originais.
Adicionalmente, devem ser observadas as seguintes restries: A verso modificada deve ser identificada como tal O responsvel pelas modificaes deve ser identificado e as modificaes datadas Reconhecimento da fonte original do documento A localizao do documento original deve ser citada Verses modificadas no contam com o endosso dos autores originais a menos que autorizao para tal seja fornecida por escrito.
A licena de uso e redistribuio deste material oferecida sem nenhuma garantia de qualquer tipo, expressa ou implcita, quanto a sua adequao a qualquer finalidade. O Centro de Computao da Unicamp no assume qualquer responsabilidade sobre o uso das informaes contidas neste material.
ndice
Introduo ........................................................................................................... 1 Comunicao Cliente x Servidor web ................................................................ 2 Ambiente CGI .................................................................................................... 5 Configurao ...................................................................................................... 6 Sintaxe bsica do PHP ...................................................................................... Variveis .................................................................................................. 8 Operadores ............................................................................................. 13 Estruturas de controle ............................................................................. 16 Projeto Criao da base de dados e tabelas ....................................................... 25 Criao da Home page do site ................................................................ 26 Mdulo de Incluso ................................................................................. 27 Mdulo de Consulta ................................................................................ 31 Mdulo de Excluso ................................................................................ 34 Mdulo de Alterao ............................................................................... 37 Dicas: Como obter data e hora do sistema ....................................................... 42 Referncia bibliogrfica ..................................................................................... 43
ltima atualizao em 21/06/2002 Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 1 O que PHP?
A abreviao PHP vem de Hypertext PreProcessor, que uma linguagem de programao de cdigo aberto muito utilizada para a criao de scripts, que so executados no servidor web para a manipulao de pginas HTML. Apesar de ser mais utilizado em aplicativos para a web, o PHP tambm suporta programao na linha de comando e aplicaes grficas cliente para serem executadas em interfaces grficas com o PHP-GTK.
Histria
O PHP foi criado por volta de 1994 por Rasmus Lerdorf, que inicialmente o utilizava em sua home page pessoal (Personal Home Page). Em meados de 1995 ele passou a ser utilizado por outras pessoas e foi reescrito com novos recursos, sendo renomeado para Personal Home Page Tools/FI (Form Interpreter), e entre os novos recursos, passou a contar com suporte ao mSQL. Dois anos mais tarde o PHP deixou de ser um projeto pessoal de Rasmus Lerdorf e passou a ser desenvolvido por uma equipe de colaboradores, e neste perodo, foi lanada a verso 3 da linguagem. A partir da verso 4 o PHP passou a utilizar a engine de scripting da Zend, para melhorar a performance e suportar uma variedade maior de bibliotecas externas e extenses. At maro de 2002, o PHP estava sendo utilizado em 9.000.000 de domnios.
Vantagens
O PHP tem inmeras vantagens, como veremos a seguir:
uma linguagem de fcil aprendizado; Tem performance e estabilidade excelentes; Seu cdigo aberto, no preciso pagar por sua utilizao, e possvel alter-lo na medida da necessidade de cada usurio; Tem suporte nos principais servidores web do mercado, e suporte nativo no servidor web Apache (o mais utilizado no mundo); Suporta conexo com os bancos de dados mais utilizados do mercado, como por exemplo, MySQL, PostgreSQL, Oracle e DB2; multiplataforma, tem suporte nos sistemas operacionais mais utilizados no mercado; Suporta uma variedade grande de padres e protocolos, como o XML, DOM, IMAP, POP3, LDAP, HTTP, entre outros.
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 2 Comunicao cliente X servidor web
Quando digitado um endereo no navegador para acessar uma pgina na internet, o que acontece uma requisio (request) do cliente (navegador) ao servidor web. O servidor processa essa requisio e retorna uma resposta (response) ao cliente, que por sua vez interpreta o cdigo retornado e formata a pgina para a sua visualizao. Esse procedimento acontece em todas as requisies feitas pelo navegador.
TCP/IP e HTTP O procedimento anterior s possvel atravs dos protocolos TCP/IP e HTTP. O TCP/IP o protocolo bsico para a comunicao entre as mquinas conectadas internet, que gerencia toda a parte de transmisso e distribuio dos dados na rede. O HTTP (Hypertext Tranfer Protocol) o protocolo que gerencia e formaliza as requisies e as respostas trafegadas entre o cliente e o servidor web. Caso o servidor web encontre a pgina, ela ser enviada em partes ao navegador, caso contrrio, o servidor enviar uma mensagem de erro.
Formato das requisies e respostas HTTP
O formato das requisies e das respostas HTTP so idnticas, como mostramos a seguir:
Linha de requisio/resposta
Cabealho
Corpo
A diferena entre as duas o contedo de cada parte descrita, as quais vamos falar separadamente:
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 3
Formato da requisio HTTP
Linha de requisio : sempre a primeira linha da requisio, a qual precisa conter um comando HTTP vlido, o caminho da pgina requerida e a verso do protocolo HTTP:
Exemplo:
GET /artigos/artigos1.html HTTP/1.1
Os comandos HTTP mais usados so:
GET faz requisies especficas e sua funcionalidade limitada, porm o mtodo mais usado.
POST este mtodo mais abrangente que o GET, e usado para passar informaes para o servidor. Normalmente usado em formulrios, que enviam dados ao servidor para serem manipulados.
Cabealho: trecho composto por vrias linhas, que carregam informaes sobre o cliente, como por exemplo, o tipo e a verso do navegador, a data e as informaes gerais dos clientes. Seu contedo pode ser variado, contendo outros tipos de linhas, e para saber quando o cabealho termina e o corpo comea, utilizamos uma linha em branco. No mnimo, uma requisio deve conter uma linha de requisio e um cabealho HOST.
Exemplo:
Accept: */* Accept-Language: pt-br Connection: keep-alive Host: www.phpteste.com.br Referer: http://www.phpteste.com.br/index.php?id=1 User-Agent: Mozilla (X11; I ; Linux I686)
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 4
Corpo: Caso o mtodo GET seja usado na requisio, o corpo estar vazio, mas se o mtodo utilizado for o POST e a pgina em questo contiver um formulrio HTML com alguns campos, esses valores sero passados pelo corpo da requisio.
Formato da resposta HTTP
Linha de resposta : Apenas uma linha indicando a verso do HTTP e o cdigo de resposta do servidor:
Exemplo:
HTTP/1.1 200 OK
100-199
informativo, indica que a requisio est sendo processada
200-299
requisio bem-sucedida, o servidor enviar o cdigo HTML sem nenhum problema
300-399
redirecionamento
400-499
o cliente passou uma requisio incorreta ao servidor, no qual no pde ser executada
500-599
a requisio foi enviada corretamente, porm o servidor no pde execut-la por estar com problemas internos
Cabealho: Idem ao cabealho de requisio, porm este enviar as informaes sobre os aplicativos utilizados no servidor:
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 5 Exemplo:
Date: Mon, 11 st Feb. 2001, 08:02:43 GMT Server: Apache/1.3.22 (Unix) PHP/4.1.1 Last-modified: Fri, 08TH Feb 2001, 06:10:00 GMT
Corpo: Caso a requisio seja aceita e executada sem problemas pelo servidor web, o cdigo HTML requerido ser enviado ao navegador.
Ambiente CGI
Muitas pessoas tem uma viso distorcida sobre o Common Gateway Interface, pensam que uma linguagem de programao, o que no correto. CGI um interface de comunicao entre o servidor web e programas externos, que normalmente so utilizados para gerar contextos dinmicos em pginas HTML. Estes tipos de programas podem ser desenvolvidos em qualquer linguagem que o sistema operacional do servidor web usado possa executar, como por exemplo, C, Perl, Python, PHP, Delphi entre outros. Apesar de seu uso ainda ser muito utilizado, este recurso j est se tornando obsoleto, dando lugar aos mdulos embutidos nos servidores web, que na verdade, podem conter o interpretador inteiro da linguagem, ou somente parte dele. Linguagens como Perl, Python e PHP j suportam esse recurso, que tem como vantagem, a maior velocidade de processamento em relao aos programas CGI, por serem executados pelo prprio servidor web e no por processos externos, que demandam mais tempo.
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 6 Configurao
Usaremos como sistema operacional a distribuio do GNU/Linux Conectiva 7.0, e os pacotes necessrios para o andamento do curso j se encontram instalados. Os pacotes necesrios so:
Dividiremos em duas partes a configurao do PHP, a primeira referente a ligao entre o servidor web e a linguagem, e a segunda entre a linguagem e o banco de dados.
Servidor web e a linguagem PHP (Apache+mod_php4+PHP4) : Para que o servidor web Apache possa reconhecer as requisies para a execuo de scripts PHP, preciso que o mdulo mod_php4-4.1.1 esteja instalado e configurado no Apache.
Para efetuar esta configurao necessrio apenas descomentar algumas linhas no arquivo de configurao do servidor web Apache. Este arquivo se chama httpd.conf e se encontra em /etc/httpd/conf . No editor de texto, faa uma busca pelas linhas listadas abaixo e retire o caracter # no incio de cada linha encontrada:
Depois de finalizada a operao anterior necessrio reiniciar o servidor web Apache com os seguintes comandos:
$ cds $ ./httpd restart Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 7 Banco de dados e a linguagem PHP (PHP4+php4-mysql+MySQL) : Como na configurao anterior, o PHP necessita de um mdulo para conectar e executar instrues SQL no banco de dados MySQL. Para isso necessrio estar instalado o mdulo php4-mysql-4.1.1 e o banco de dados MySQL MySQL-3.23.36:
Para efetuar a configurao necessrio tirar o comentrio no arquivo de configurao php.ini , que se encontra em /etc/php4/apache , a seguinte linha:
extension=mysql.so
Teste de funcionamento
Depois de configurados os aplicativos necessrios para a execuo dos scripts PHP, precisaremos fazer um teste de funcionamento. No editor de textos, digite o cdigo a seguir e salve como teste.php em /home/httpd/html :
<?php phpinfo(); ?>
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 8 Sintaxe Bsica
O PHP tem uma sintaxe muito simples e enxuta, o que facilita muito a organizao dos scripts a serem desenvolvidos. Outro ponto interessante que veremos que os cdigos em PHP so embutidos no HTML, ao invs de ger-lo por completo, facilitando muito a anlise de possveis erros nos scripts desenvolvidos. A seguir, exemplos da sintaxe do PHP:
1 2 3 4
<?php ... ... .. ?>
<? .... .... .... ?>
<% .... .... .... %>
<script language=PHP> .... ..... ... </script>
Variveis
Manipular variveis em PHP uma atividade simples, como veremos a seguir:
no necessrio declarar as variveis, isto feito quando atribumos algum valor para elas;
para declar-las, necessrio apenas colocar como primeiro caracter o '$' , juntamente com a string referente ao nome da varivel, e esta string deve comear com uma letra ou o caracter '_';
PHP case sensitive, isto , '$a' diferente de '$A'. aconselhvel utilizar os nomes de variveis com letras minsculas, por causa das variveis pr-definidas da linguagem, que so declaradas com maisculas;
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 9 PHP suporta os seguintes tipos de variveis:
inteiros (integer ou long); ponto flutuante (double ou float); strings arrays objetos *
* Como se trata de um curso bsico, no entraremos em detalhes sobre este tipo
Tipos suportados
Inteiros
Sintaxe:
$curso = 1000; $curso = -1000; $curso = 0234; (inteiro base octal) $curso = 0x34; (inteiro na base hexadecimal)
Ponto flutuante
Sintaxe:
$curso = 1.050; $curso = 52e3; (equivale a 52000)
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 10 Strings
Sintaxe:
$curso = 'PHP'; # desta maneira, o valor da varivel ser exatamente o texto contido entre as aspas $curso= PHP; # desta maneira, qualquer varivel ou caracter de escape ser expandido antes de ser atribudo
Caracteres de Escape
\n nova linha; \r retorno de carro (semelhante a \n) \t tabulao horizontal \\ a prpria barra (\) \$ o smbolo $ \ aspas simples \ aspas duplas
Arrays : Array um tipo de varivel que possui seu contedo agrupado por ndices, como um vetor ou um dicionrio. Estes ndices podem ser de qualquer tipo suportado pelo PHP, como mostrado a seguir:
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 11
Listas : Utilizadas em PHP para realizar atribuies mltiplas, como por exemplo, atribuir valores de um array para variveis, como mostra a seguir:
Sintaxe:
list($a,$b,$c) = array(0=>a, 1=>b, 2=>c);
O trecho de cdigo acima atribuir simultnea e respectivamente os valores do array s variveis passadas como parmetros para o comando list. muito importante lembrar que s sero passadas ao comando list os elementos do array que possurem os ndices com valores inteiros e no negativos.
Booleans : Em PHP, no existe um tipo especfico para as variveis do tipo boolean, ele trata este tipo com valores inteiros: 0 para false e valores diferentes deste como true.
Transformaes de tipos
possvel fazer transformaes de tipos de variveis atravs das seguintes formas:
Coeres : quando ocorrem determinadas operaes matemticas entre dois valores de tipos diferentes, como por exemplo a adio, o PHP converte um deles automaticamente. Um exemplo disso seria a converso de uma string para um valor numrico (inteiro ou ponto flutuante), que segue as seguintes regras:
! analisado o nicio da string, se contiver um nmero, ele ser analisado, caso contrrio, o valor ser 0 (zero);
! O nmero pode conter o sinal no incio (+ ou -);
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 12 ! Se a string contiver um ponto em sua parte numrica a ser analisada, ele ser considerado, e o valor obtido ser um ponto flutuante;
! Se a string contiver as letras ''e'' ou ''E'' em sua parte numrica a ser analisada, o valor seguinte ser considerado como expoente da base 10, e o valor obtido ser um ponto flutuante.
Transformaes explcitas de tipos : desta forma precisaremos utilizar a sintaxe de typecast do PHP, como os exemplos a seguir:
$curso = 20; (integer(20)) $curso = (double)$curso; (double(20.0)) $curso = 3.9; (double(3.9)) $curso = (int)$curso (o valor truncado e fica como integer(3))
Tipos suportados nas transformaes explcitas:
(int), (integer) = muda para inteiro; (real), (double), (float) = muda para ponto flutuante; (string) = muda para string (array) = muda para array (object) = muda para objeto
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 13 Funo settype : trabalha igualmente as tranformaes explcitas, porm com sintaxe diferente, como o exemplo a seguir:
$curso = 20; (integer) settype($curso, double); # o valor da varivel $curso foi transformada em ponto flutuante
Operadores
Aritmticos:
+ Adio - Subtrao * Multiplicao / Diviso % Mdulo
Strings:
.
Concatenao
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 14 Atribuio:
= Atribuio simples += Atribuio com adio -= Atribuio com subtrao *= Atribuio com Multiplicao /= Atribuio com diviso %= Atribuio com mdulo .= Atribuio com concatenao
Exemplo:
$curso = 7; $curso += 2; ($curso fica com o valor 9)
Lgicos:
and e lgico or ou lgico xor ou exclusivo ! No (inverso) && e lgico || ou lgico
Comparao:
== igual a != diferente de < menor que > maior que <= menor ou igual a >= maior ou igual a
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 15 Incremento e decremento:
++ igual a -- diferente de
Estes podem receber o valor antes ou depois da varivel:
Antes: retorna o valor da varivel antes de increment-la ou decrement-la:
Exemplo:
$a = 1; $b = ++a; ($b recebe 2, valor de $a j incrementado)
Depois: retorna o valor da varivel j incrementada ou decrementada:
Exemplo:
$a = 1; $b = a++; ($b recebe 1 e $a passa a ter 2)
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 16 Estruturas de controle
If : O comando if testa a condio passada e executa o bloco de cdigo caso o valor retornado da condio seja verdadeiro:
$a = 1; if ($a == 1) { .... .... ... }
Caso a condio passada retorne um valor falso, e seja necessrio executar um bloco de cdigo diferente, utiliza-se a instruo else:
Ainda existe a instruo elseif, para situaes onde precisa-se verificar mais que uma condio:
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 17
$a = 1; $b = 2; $c = 3; if ($a > $b) { echo a maior que b ; } elseif ($a > $c) { echo a maior que c ; } else { echo a menor que b e c ; }
Switch : Comando utilizado para fazer mltiplos testes de condio. A idia deste comando igual ao do elseif , porm com algumas diferenas:
$a = 2; switch ($a) { case 0: echo a igual a 0 ; break; case 1: echo a igual a 1 ; break; case 2: echo a igual a 2 ; break; }
A idia do comando switch achar a condio verdadeira e executar qualquer bloco de cdigo que esteja abaixo dela, inclusive os que no forem do seu trecho, por esse motivo, utilizamos o comando break logo abaixo da ltima linha do bloco de cdigo, como o Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 18 exemplo anterior. O comando switch tambm aceita testes de condio em qualquer tipo de varivel suportado pelo PHP:
$a = curso; switch ($a) { case PHP: echo a igual a PHP ; break; case curso: echo a igual a Curso ; break; case CCUEC: echo a igual a CCUEC ; break; }
While : Este comando utilizado para realizar laos condicionais. Ele executa o bloco de cdigo enquanto a condio passada for verdadeira, e caso a condio inicial que foi passada se torne falsa, o bloco no ser executado:
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 19
Do ... while : Este comando tem a mesma idia que o comando while, porm, seu teste de condio feito no final do bloco de cdigo:
$c = 0; do { echo Nmero.++$c. <br>; } while ($c < 10);
For : Como nos outros comando que realizam laos condicionais, o comando for tambm precisa de uma condio para ser testada a cada lao realizado, porm, este comando necessita de mais dois parmetros, que seriam a declarao da varivel contadora e a instruo de incremento:
for ($a=0; $a<=10; $a++) { echo Nmero.$a.<br>; }
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 20 Quebra de fluxo
Break : O comando break pode ser utilizado em comandos de laos condicionais e no comando switch, e sua funo parar imediatamente o fluxo do bloco de cdigo:
Continue : O comando continue tambm funciona dentro dos laos condicionais, porm, no pra o fluxo do bloco de cdigo, e sim, volta para o incio dele:
for ($a=0;$a<10;$a++) { if ($a == 5) { continue; } else { echo Nmero .$a.<br>; } }
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 21 Funes
Funes so pequenas sees independentes de cdigo que podem ser chamadas a qualquer momento e em qualquer ordem, que servem para desempenhar tarefas especficas dentro dos scripts. O exemplo a seguir mostra a sua sintaxe bsica:
A instruo return opcional, j que no obrigatrio retornar algum valor em funes no PHP, outra regra a de no permitir que sejam retornados mltiplos valores atravs desta instruo. Para resolver essa necessidade, pode-se retornar listas e arrays, como mostra o exemplo a seguir:
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 22 Passagem de parmetros por referncia : Normalmente, a passagem de parmetros em PHP feita atravs dos valores das variveis, no permitindo assim, a alterao do valor na varivel original, como mostra o exemplo a seguir:
No exemplo acima, a varivel original permanecer com o mesmo valor porque no foi definido a passagem de parmetros por referncia, o que alteraria tambm o valor da varivel original. Uma das maneiras de se utilizar esse recurso colocar o caracter ''&'' antes do nome da varivel na declarao da funo, como mostra o exemplo a seguir:
Poderamos tambm utilizar a passagem de parmetros por referncia apenas quando fossemos chamar a funo, e no em sua declarao:
contador(&$cont); echo $cont;
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 23 Escopo das variveis
Discutimos anteriormente sobre variveis e os tipos suportados pelo PHP. Agora, discutiremos sobre os escopos destas variveis, que podem ser dos seguintes tipos:
globais; locais; estticas; constantes.
Globais: As variveis globais so por definio, as variveis que podem ser acessadas dentro de todo o script. Porm, quando cria-se escopos locais como nas funes, precisaremos utilizar um tipo de chamada especial, como no exemplo a seguir:
$curso = 'PHP'; function mostra() { global $curso; echo $curso; } mostra();
O mesmo recurso pode ser acessado atravs da array GLOBALS, que nos permite acessar todas as variveis globais do script. O exemplo acima pode ser reescrito da seguinte maneira:
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 24 Locais: As variveis locais so o tipo mais restrito dentro do PHP. Elas funcionam apenas dentro deste escopo, como mostra o exemplo a seguir:
Estticas: As variveis estticas so variveis que possuem o mesmo tempo de vida das variveis globais, com a diferena de funcionarem apenas em escopos locais e serem inicializadas uma s vez. A seguir, um exemplo deste recurso:
function contador() { static $i = 0; echo $i++.<br>; } for ($a=0; $a<=5; $a++) { contador(); }
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 25 Projeto
Desenvolveremos um site dinmico utilizando a linguagem PHP e o servidor de banco de dados MySQL. O objetivo desse site ser a localizao de funcionrios na Unicamp. Fazendo-se uma busca pelo nome do funcionrio, sero disponibilizadas informaes (unidade, telefone, fax, e-mail e cargo) que permitam localiz-lo na universidade. O site permitir incluso, consulta, alterao e excluso de dados. Todas as pginas e programas ficaro armazenados no diretrio home/httpd/html/cursophp.
1 - Criao da base de dados e tabelas
Utilizando o servidor de banco de dados MySQL, o primeiro passo ser definir a base de dados e as tabelas em que guardaremos as informaes. Podemos criar nossa estrutura de dados diretamente no MySQL, da seguinte forma:
1. Abra uma janela de terminal 2. Digite o comando mysql u root p (ser solicitada a senha do administrador) 3. Crie uma base de dados no MySQL, que conter as tabelas a serem utilizadas no projeto. O comando create database unicamp; Em que unicamp o nome da base de dados. 4. Depois de criada, acesse a base de dados com o seguinte comando: use unicamp;
Agora j podemos pensar nas tabelas que sero necessrias para esse projeto. Para facilitar, vamos utilizar uma nica tabela, chamada funcionarios.
Dicas:
Tipos de campos:
varchar(N) : um campo caractere varivel de no mximo N caracteres;
integer : um inteiro padro;
char(N) : um campo caractere com exatamente N caracteres;
text : um campo com um comprimento mximo de 65535 caracteres;
date : uma data no formato AAAA-MM-DD.
Not null: significa que o campo no pode ser nulo.
Primary key: significa que campo chave.
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 26 Para criar essa tabela, utilizaremos a seguinte sintaxe:
create table funcionarios ( nome varchar(50) not null primary key, unidade varchar(40) not null, telefone varchar(10) not null, email varchar(40), cargo varchar(40) not null );
Dicas:
Para adicionar ou excluir campos da tabela, depois que ela foi criada:
Supondo que quisssemos excluir o campo cargo da tabela funcionarios: alter table funcionarios drop column cargo;
Supondo que quisssemos adicionar novamente o campo cargo na tabela funcionarios: alter table funcionarios add column cargo;
Para visualizar as bases de dados existentes: show databases;
Para visualizar as tabelas pertencentes a uma base de dados: use base de dados; show tables;
Para visualizar os campos de uma tabela: desc tabela;
Para visualizar todos os registros de uma tabela: select * from tabela;
2 - Criao da home page do site
A pgina principal (homepage) do site ser bastante simples e trar um menu com as opes de incluso, consulta, alterao e excluso. As opes tero links para seus respectivos mdulos. Essa pgina inicial ter a extenso html e ser criada utilizando-se um editor de pginas (Netscape Composer).
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 27 Abra o Netscape e na barra de menus escolha as opes arquivo nova pgina em branco (uma nova pgina ser aberta)
Defina a cor de fundo da pgina: - clique sobre a pgina com o boto direito do mouse - selecione cores e propriedades da pgina - clique no boto usar cores personalizadas - escolha a cor branca - clique em Aplicar e Ok
Na barra de ferramentas do Composer, utilize a opo para centralizar o cursor
Na barra de ferramentas do Composer, utilize a opo para inserir imagem e selecione a imagem topo.gif (que est em home/httpd/html/cursophp)
Pule 1 linha e mantenha o cursor no centro da pgina. Digite os tens do menu (em negrito): Incluso de funcionrios, Consulta de funcionrios, Alterao dos dados de funcionrios e Excluso de funcionrios.
Transforme as opes do menu em links e direcione para seus respectivos endereos: inclusao.html consulta.html alteracao.html exclusao.html
Salve a pgina como index.html e teste-a digitando o endereo http://localhost/cursophp/index.html
3 - Mdulo de Incluso
Vamos criar a pgina para o formulrio de incluso. Os recursos do Netscape Composer so muito limitados para a confeco de formulrios, sendo assim digitaremos o cdigo utilizando um editor de texto. Esse arquivo ter extenso html.
3.1) Formulrio inclusao.html
<html> <head> <title>Inclusao.html</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF"> <table width="640" border="0" cellspacing="0" align="center"> <tr> <td> <p><img src="topo.gif" width="640" height="44"></p> <p><b>Formulrio de incluso: <br></b></p> Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 28 <form method="post" action="inclusao.php"> <p>Nome completo: <input type="text" name="nome" size="25" maxlength="50"> </p> <p>Unidade: <input type="text" name="unidade" size="40" maxlength="40"> </p> <p>Telefone: <input type="text" name="telefone" maxlength="10" size="10"> </p> <p>E-mail: <input type="text" name="email" size="25" maxlength="40"> </p> <p>Cargo: <input type="text" name="cargo" size="40" maxlength="40"> </p> <p> <input type="submit" name="Submit" value="Enviar"> <center> <b> <a href="index.html">Home</a> </b> </center> </p> </form> </td> </tr> <tr> <td> </td> </tr> </table> </body> </html> Aps digitar o cdigo, salve-o e teste-o. Quando o formulrio for submetido, dar um erro, alertando que o programa "inclusao.php" (para o qual estamos encaminhando os dados) no existe. Precisamos, ento, cri-lo. Notem que a prxima pgina no ter mais a extenso html e sim php, pois o cdigo vai conter programao PHP.
Dicas:
Quando o servidor recebe a requisio de uma pgina HTML, ele apenas envia a pgina requisitada. Por outro lado, quando a requisio de uma pgina com extenso PHP, o servidor processa o cdigo antes de envi-la. Pode-se combinar os cdigos HTML e PHP.
3.2) Programa incluso.php
O programa inclusao.php vai tratar os dados recebidos atravs do formulrio, incluindo- os no banco de dados.
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 29 Relembrando:
As tags que identificam o incio e o fim da programao PHP so: <?php
Variveis: as variveis devem ser precedidas pelo caractere $.
Dicas:
No cdigo referente ao programa incluso.php, utilizaremos algumas funes do PHP:
Trim: tira espaos em branco de uma varivel.
A expresso or die pode ser usada como uma alternativa para o if/else.
<html> <head> <title>Inclusao.php</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF"> <?php // Tirar espao em branco das variveis recebidas pelo formulrio $nome = trim($nome); $unidade = trim($unidade); $telefone = trim($telefone); $email = trim($email); $cargo = trim($cargo); echo ("<p><center><img src=\"topo.gif\" width=\"640\" height=\"44\"></center></p>"); Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 30 // Consiste Nome if (empty($nome) || empty($unidade) || empty($telefone) || empty($cargo)) { echo ("<font color=\"#FF0000\"> <b>Campo(s) obrigatrio(s) no preenchido(s)</b></font>"); echo (" <table width=\"640\" border=\"0\" cellspacing=\"0\" align=\"center\"> <tr> <td> <p><b>Formulrio de incluso: <br> </b></p> <form method=\"post\" action=\"inclusao.php\"> <p>Nome completo: <input type=\"text\" name=\"nome\" value=\"$nome\" size=\"25\" maxlength=\"50\"> </p> <p>Unidade: <input type=\"text\" name=\"unidade\" value=\"$unidade\" size=\"40\" maxlength=\"40\"> </p> <p>Telefone: <input type=\"text\" name=\"telefone\" value=\"$telefone\" maxlength=\"10\" size=\"10\"> </p> <p>E-mail: <input type=\"text\" name=\"email\" value=\"$email\" size=\"25\" maxlength=\"40\"> </p> <p>Cargo: <input type=\"text\" name=\"cargo\" value=\"$cargo\" size=\"40\" maxlength=\"40\"> </p> <p> <input type=\"submit\" name=\"Submit\" value=\"Enviar\"> <center> <b> <a href=\"index.html\">Home</a> </b> </center> </p> </form> </td> </tr> <tr> <td> </td> </tr> </table> "); } else { // Inclui os dados recebidos do formulrio na tabela funcionarios // Cria uma conexo com o servidor MySQL passando host, username e senha $conec = mysql_connect ("localhost","root","Unicamp") or die ("Falha na conexo com o banco de dados"); // Declarao SQL $declar = "INSERT into funcionarios values ('$nome', '$unidade', '$telefone', '$email', '$cargo')"; // Roda a query e trata o resultado Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 31 if (mysql_db_query ("unicamp", $declar, $conec)) { echo ("<BR><BR>"); echo ("<center> <b> <font size = 4> Incluso Efetuada </font> </b> </center>"); echo ("<BR>"); echo ("<center> <b> <a href=\"inclusao.html\">Voltar</a> </b> </center>"); } else { echo ("<BR><BR>"); echo ("<center> <b> <font size = 4> Erro - Incluso no Efetuada </font> </b> </center>"); echo ("<BR>"); echo ("<center> <b> <a href=\"inclusao.html\">Voltar</a> </b> </center>"); } // Fecha a conexo com o servidor MySQL (Opcional) mysql_close ($conec); } ?> </body> </html>
3.3) Testando o mdulo de incluso
Abra o navegador (Netscape) e digite o endereo do site: http://localhost/cursophp/index.html No menu da pgina principal, clique na opo incluso. Deixe os campos do formulrio em branco. Clique em enviar. Dever mostrar uma mensagem de erro. O nico campo que no obrigatrio o e-mail. Preencha o formulrio com os dados do funcionrio: nome completo, unidade, telefone, e-mail e cargo. Clique em enviar. Dever mostrar a mensagem Incluso Efetuada. Volte para a pgina do formulrio e entre com outros dados, s que desta vez entre com um nome que j existe no banco de dados. Clique em enviar. Dever mostrar a mensagem Incluso no efetuada, pois o campo nome chave e no aceita valores duplicados. Insira pelo menos 5 funcionrios.
4 - Mdulo de Consulta
Vamos criar a pgina com o formulrio de consulta.
4.1) Formulrio consulta.html
<html> <head> <title>Consulta.html</title> Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 32 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF"> <table width="640" border="0" cellspacing="0" align="center"> <tr valign="top"> <td> <p><img src="topo.gif" width="640" height="44"></p> <!mensagem> <p><b>Formulrio de consulta<br> </b></p> <form method="post" action="consulta.php"> <p>Nome completo: <input type="text" name="nome" size="25" maxlength="50"> </p> <p> <input type="submit" name="Submit" value="Enviar"> </p> </form> <center> <b> <a href="index.html">Home</a> </b> </center> </td> </tr> <tr> <td> </td> </tr> </table> </body> </html>
Aps digitar o cdigo, salve e teste. Quando o formulrio for submetido, dar um erro, alertando que o programa "consulta.php" (para o qual estamos encaminhando os dados) no existe. Precisamos, ento, cri-lo. Notem que essa pgina no ser mais html e sim php, pois o cdigo vai conter programao PHP.
4.2) Programa consulta.php
O programa consulta.php vai receber o dado do formulrio, pesquisar no banco de dados e mostrar as informaes referentes ao dado.
Dicas:
No cdigo referente ao programa consulta.php utilizaremos mais algumas funes do PHP:
File: l um arquivo, retornando o seu contedo como um array; cada linha do arquivo ser representada por um elemento do array. Implode: armazena todo o contedo de um array como uma string, concatena os contedos de cada elemento do array em uma string, utilizando ou no um delimitador entre eles. Str_replace: vai ler uma string e substituir um determinado valor por outro. No nosso caso, essa funo substituir a expresso <!mensagem>, contida no cdigo do consulta.html, por uma mensagem de erro. Portanto, no se Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 33 esquea de colocar no html a expresso a ser substituda (como comentrio). mysql_num_rows: obtem o nmero de registros que retornou do select. mysql_fetch_row: obtem os campos do registro que retornou do select.
<html> <head> <title>Consulta.php Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF"> <?php // Tirar espao em branco das variveis recebidas pelo formulrio $nome = trim($nome); // Consiste Nome if (empty($nome)) { $html = file("consulta.html"); $html = implode(" ",$html); $erro = "<center><font color=\"#FF0000\"> Preencha o campo <b>Nome</b></font></center>"; $html = str_replace("<!mensagem>",$erro,$html); echo ($html); } else { echo ("<p><center><img src=\"topo.gif\" width=\"640\" height=\"44\"></center></p>"); // Cria uma conexo com o servidor MySQL // Parmetros: host, username, senha $conec = mysql_connect ("localhost","root","Unicamp"); // Declarao do SQL $declar = "SELECT unidade, telefone, email, cargo from funcionarios where nome = '$nome'"; // Roda a query e verifica se encontrou registro $query = mysql_db_query ('unicamp', $declar, $conec) or die ("Erro no acesso ao banco"); $achou = mysql_num_rows($query); // echo ($achou); // Se encontrou, guarda as variveis if ($achou > 0) { $row = mysql_fetch_row ($query); $unidade = $row[0]; $telefone = $row[1]; $email = $row[2]; $cargo = $row[3]; echo ("<BR>"); echo ("<table width=\"640\" border=\"0\" cellspacing=\"0\" align=\"center\"> <tr> <td>"); echo ("<b> Resultado da Consulta </b>"); Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 34 echo ("<BR><BR>"); echo ("<b> Nome: </b> $nome <BR>"); echo ("<b> Unidade: </b> $unidade <BR>"); echo ("<b> Telefone: </b> $telefone <BR>"); echo ("<b> E-mail: </b> $email <BR>"); echo ("<b> Cargo: </b> $cargo <BR>"); echo ("</td> </tr> </table>"); echo ("<center> <b> <a href=\"consulta.html\">Voltar</a> </b> </center>"); } else { echo ("<BR>"); echo ("<center> <b> Funcionrio no cadastrado </b> </center>"); echo ("<BR>"); echo ("<center> <b> <a href=\"consulta.html\">Voltar</a> </b> </center>"); } } ?> </body> </html>
4.3) Testando o mdulo de consulta
Abra o navegador (Netscape) e digite o endereo do site: http://localhost/cursophp/index.html No menu da pgina principal, clique na opo consulta. Deixe o campo nome do funcionrio em branco e clique em enviar. Dever mostrar uma mensagem de erro. Preencha o formulrio com um nome de funcionrio inexistente e clique em enviar. Dever mostrar a mensagem Funcionrio no cadastrado. Preencha o formulrio com um nome de funcionrio vlido e clique em enviar. Dever mostrar os dados do funcionrio.
5 - Mdulo de Excluso
Vamos criar a pgina com o formulrio de excluso.
5.1) Formulrio exclusao.html
<html> <head> <title>Exclusao.html</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF"> <table width="640" border="0" cellspacing="0" align="center"> <tr valign="top"> Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 35 <td> <p><img src="topo.gif" width="640" height="44"></p> <!mensagem> <p><b>Formulrio de excluso: <br> </b></p> <form method="post" action="exclusao.php"> <p>Nome Completo: <input type="text" name="nome" size="25" maxlength="50"> </p> <p> <input type="submit" name="Submit" value="Enviar"> </p> </form> <center> <b> <a href="index.html">Home</a> </b> </center> </td> </tr> <tr> <td> </td> </tr> </table> </body> </html>
Aps digitar o cdigo, salve-o e teste-o. Quando o formulrio for submetido, dar um erro, alertando que o programa "exclusao.php" (para o qual estamos encaminhando os dados) no existe. Precisamos, ento, cri-lo. Notem que esta pgina no ser mais html e sim php, pois o cdigo vai conter programao PHP.
5.2) Programa exclusao.php
O programa exclusao.php vai receber o dado do formulrio, confirmar atravs de consulta ao banco de dados se o funcionrio est cadastrado, e excluir o registro.
<html> <head> <title>Exclusao.php</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF"> <?php // Tirar espao em branco das variveis recebidas pelo formulrio $nome = trim($nome); // Consiste Nome if (empty($nome)) { $html = file("exclusao.html"); $html = implode(" ",$html); $erro = "<center><font color=\"#FF0000\"> Preencha o campo <b>Nome</b></font></center>"; $html = str_replace("<!mensagem>",$erro,$html); echo ($html); } Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 36 else { echo ("<p><center><img src=\"topo.gif\" width=\"640\" height=\"44\"></center></p>"); // Cria uma conexo com o servidor MySQL $conec = mysql_connect ("localhost","root","Unicamp"); // Declarao do SQL $declar = "SELECT nome from funcionarios where nome = '$nome'"; // Roda a query, verifica se funcionrio cadastrado $query = mysql_db_query ('unicamp', $declar, $conec) or die ("Erro no acesso ao banco"); $achou = mysql_num_rows($query); //echo ($achou); // Se encontrou exclui, seno mostra mensagem if ($achou > 0) { echo ("<BR><BR>"); echo ("<center> Funcionrio: $nome </center>"); echo ("<BR>"); // Exclui registro na tabela funcionarios $declar2 = "DELETE from funcionarios where nome = '$nome'"; if (mysql_db_query ('unicamp', $declar2, $conec)) { echo ("<BR><BR>"); echo ("<center> <b> <font size = 4> Excluso Efetuada </font> </b> </center>"); echo ("<BR><BR>"); echo ("<center> <b> <a href=\"exclusao.html\">Voltar</a> </b> </center>"); } else { echo ("<BR><BR>"); echo ("<center> <b> <font size = 4> Erro - Excluso no Efetuada </font> </b> </center>"); echo ("<BR><BR>"); echo ("<center> <b> <a href=\"exclusao.html\">Voltar</a> </b> </center>"); } } else { echo ("<BR><BR>"); echo ("<center> <b> Funcionrio no cadastrado </b> </center>"); echo ("<BR><BR>"); echo ("<center> <b> <a href=\"exclusao.html\">Voltar</a> </b> </center>"); } mysql_close ($conec); } ?> </body> </html>
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 37
5.3) Testando o mdulo de excluso
Abra o navegador (Netscape) e digite o endereo do site: http://localhost/cursophp/index.html No menu da pgina principal, clique em excluso. Deixe o campo nome do funcionrio em branco e clique em enviar. Dever mostrar uma mensagem de erro. Preencha o formulrio com o nome completo do funcionrio e clique em enviar. Dever mostrar a mensagem Excluso efetuada. Preencha o formulrio com o nome do funcionrio que voc acabou de excluir e clique em enviar. Dever mostrar a mensagem Funcionrio no cadastrado.
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 38 Aps digitar o cdigo, salve-o e teste-o. Quando o formulrio for submetido, dar um erro, alertando que o programa "alteracao.php" (para o qual estamos encaminhando os dados) no existe. Precisamos, ento, cri-lo. Notem que esta pgina no ser mais html e sim php, pois o cdigo vai conter programao PHP.
6.2) Programa alteracao.php
O programa alteracao.php vai receber o dado do formulrio, recuperar as informaes do banco de dados e mostr-las num formulrio para que elas sejam alteradas. Para montar o formulrio, criaremos uma funo php.
<html> <head> <title>Alteracao.php</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF"> <?php include ("funcoes.php"); // Tirar espao em branco das variveis recebidas pelo formulrio $nome = trim($nome); // Consiste Nome if (empty($nome)) { $html = file("alteracao.html"); $html = implode(" ",$html); $erro = "<center><font color=\"#FF0000\"> Preencha o campo <b>Nome</b></font></center>"; $html = str_replace("<!mensagem>",$erro,$html); echo ($html); } else { echo ("<p><center><img src=\"topo.gif\" width=\"640\" height=\"44\"></center></p>"); // Cria uma conexo com o servidor MySQL // Parmetros: host, username, senha $conec = mysql_connect ("localhost","root","Unicamp"); // Declarao do SQL $declar = "SELECT unidade, telefone, email, cargo from funcionarios where nome = '$nome'"; // Roda a query e verifica se encontrou registro $query = mysql_db_query ('unicamp', $declar, $conec) or die ("Erro no acesso ao banco"); $achou = mysql_num_rows($query); // echo ($achou); // Se encontrou, guarda as variveis if ($achou > 0) { Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 39 $row = mysql_fetch_row ($query); $unidade = $row[0]; $telefone = $row[1]; $email = $row[2]; $cargo = $row[3]; monta_pagina($nome,$unidade,$telefone,$email,$cargo); } else { echo ("<BR><BR>"); echo ("<center> <b> Funcionrio no cadastrado </b> </center>"); echo ("<BR>"); echo ("<center> <b> <a href=\"alteracao.html\">Voltar</a> </b> </center>"); } } ?> </body> </html>
Notem que, no cdigo que acabamos de digitar, estamos chamando a funo monta_pagina, passando como parmetros as variveis nome, unidade, telefone, email e cargo. As funes so teis porque podem ser reutilizadas em vrios programas, alm disso, o tamanho do cdigo do programa chamador diminui consideravelmente. Podemos criar um nico programa (exemplo: funcoes.php) que conter todas as funes. Um detalhe importante que no podemos esquecer que precisamos incluir esse programa de funes em nosso programa chamador. No cdigo visto anteriormente temos o comando include ("funcoes.php") logo no incio do cdigo php.
6.3) Programa funcoes.php
O programa funcoes.php pode armazenar todas as funes que sero utilizadas no site. Neste curso usaremos apenas a funo monta_pagina. Essa funo serve para montar o formulrio j preenchido, com as informaes que foram passadas como parmetros no programa anterior. Observao: com algumas pequenas alteraes, essa funo tambm poderia ser usada para recriar o formulrio do mdulo de incluso.
Notem que o formulrio criado pela funo monta_pagina chama o programa alteracao2.php. Isso porque, para completarmos o mdulo de alterao precisamos de mais um programa que pegue as informaes que foram alteradas e as inclua no banco de dados. Observao: como o campo nome no passado para o programa alteracao2.php, por no se tratar de uma varivel do formulrio, temos que pass-lo como um campo escondido input type="hidden".
6.4) Programa alteracao2.php
O programa alteracao2.php vai pegar as informaes alteradas e fazer um update no banco de dados.
<html> <head> <title>Alteracao2.php Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF"> <p><center><img src="topo.gif" width="640" height="44"></center></p> <?php include ("funcoes.php"); // Tirar espao em branco das variveis recebidas pelo formulrio $nome = trim($nome); $unidade = trim($unidade); $telefone = trim($telefone); $email = trim($email); $cargo = trim($cargo); if (empty($nome) || empty($unidade) || empty($telefone) || empty($cargo)) { echo ("<font color=\"#FF0000\"> <b>Campo(s) obrigatrio(s) no preenchido(s)</b></font>"); monta_pagina($nome, $unidade, $telefone, $email, $cargo); Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 41 } else { // Cria uma conexo com o servidor MySQL $conec = mysql_connect ("localhost","root","Unicamp") or die ("Falha na conexo com o banco de dados"); /* comentrio */ $declar = "UPDATE funcionarios SET unidade='$unidade', telefone='$telefone', email='$email', cargo='$cargo' WHERE nome='$nome'"; // Roda a query e trata o resultado if (mysql_db_query ("unicamp", $declar, $conec)) { echo ("<BR><BR>"); echo "<center> <b> <font size = 4> Alterao Efetuada! </font> </b> </center>"; echo ("<BR>"); echo ("<center> <b> <a href=\"alteracao.html\">Voltar</a> </b> </center>"); } else { echo ("<BR><BR>"); echo ("<center> <b> <font size = 4> Erro - Alterao no Efetuada </font> </b> </center>"); echo ("<BR>"); echo ("<center> <b> <a href=\"alteracao.html\">Voltar</a> </b> </center>"); } // Fecha a conexo com o servidor MySQL (Opcional) mysql_close ($conec); } ?> </body> </html>
6.5) Testando o mdulo de alterao
Abra o navegador (Netscape) e digite o endereo do site: http://localhost/cursophp/index.html No menu da pgina principal, clique em alterao. Deixe o campo nome do funcionrio em branco e clique em enviar. Dever mostrar uma mensagem de erro. Preencha o formulrio com um nome de funcionrio que no existe e clique em enviar. Dever mostrar a mensagem Funcionrio no cadastrado. Preencha o formulrio com um nome de funcionrio vlido e clique em enviar. Ser mostrado um formulrio com os dados desse funcionrio. Altere alguns campos e clique em enviar. Dever mostrar a mensagem Alterao efetuada. Entre no mdulo de consulta e confira se os dados foram realmente alterados.
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 42 Dicas:
Como obter data e hora do sistema.
No exemplo a seguir obtemos data e hora usando a funo date, jogamos o contedo em variveis e mostramos essas variveis na tela. Parmetros utilizados na funo date: j: dia m: ms Y: ano H: hora i: minutos s: segundos
Observao: se fssemos gravar a data num banco de dados (aaaa/mm/dd), ao invs de mostr-la, a sintaxe seria a seguinte:
$data = date("Y/m/j");
Programao para a Web utilizando PHP Diviso de Servios Comunidade Centro de Computao Unicamp 43 Referncia Bibliogrfica
Beginning PHP4 - Programando Autores: Wankyu Choi, Allan Kent, Chris Lea, ganesh Prasad, Chris Ullman, Jon Blank e Sea Cazzell Editora: Makron Books
Curso de Aplicacoes Web em PHP Autor: Mauricio Vivas ( mauricio@cipsga.org.br )
Colaboradores: Carlos Froldi e Marcelo G. Malheiros
Onde obter ajuda
Para ajud-lo a solucionar dvidas de informtica, utilize o sistema Rau-Tu de perguntas e respostas, que foi desenvolvido pelo Centro de Computao da Unicamp em conjunto com o Instituto Vale do Futuro. Tem por objetivo possibilitar que um time de colaboradores possa responder a perguntas colocadas por qualquer pessoa no site, cobrindo diversas reas de conhecimento. Acesse: www.rau-tu.unicamp.br