Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Curso PHP Básico - Unicamp, Notas de estudo de Informática

Curso PHP Básico - Unicamp

Tipologia: Notas de estudo

2012

Compartilhado em 05/04/2012

alessandro-rezende-12
alessandro-rezende-12 🇧🇷

4.5

(2)

15 documentos

Pré-visualização parcial do texto

Baixe Curso PHP Básico - Unicamp e outras Notas de estudo em PDF para Informática, somente na Docsity! Programação para a dia utilizando. Autores: Alexandre Arroyo Fabio Santos Divisão de Serviços à Comunidade Centro de Computação Unicamp «sá Pro Licenciamento de Uso Este documento é propriedade intelectual O 2002 do Centro de Computação da Unicamp e distribuído sob os seguintes termos: 1. As apostilas publicadas pelo Centro de Computação da Unicamp podem ser reproduzidas e distribuídas no todo ou em parte, em qualquer meio físico ou eletrônico, desde que os termos desta licença sejam obedecidos, e que esta licença ou referência a ela seja exibida na reprodução. Qualquer publicação na forma impressa deve obrigatoriamente citar, nas páginas externas, sua origem e atribuições de direito autoral (o Centro de Computação da Unicamp e seu(s) autor(es)). Todas as traduções e trabalhos derivados ou agregados incorporando qualquer informação contida neste documento devem ser regidas por estas mesmas normas de distribuição e direitos autorais. Ou seja, não é permitido produzir um trabalho derivado desta obra e impor restrições à sua distribuição. O Centro de Computação da Unicamp deve obrigatoriamente ser notificado (treinamentos Qccuec.unicamp.br) de tais trabalhos com vista ao aperfeiçoamento e incorporação de melhorias aos originais. Adicionalmente, devem ser observadas as seguintes restrições: * Aversão modificada deve ser identificada como tal * Oresponsável pelas modificações deve ser identificado e as modificações datadas Reconhecimento da fonte original do documento A localização do documento original deve ser citada Versões modificadas não contam com o endosso dos autores originais a menos que autorização para tal seja fornecida por escrito. A licença de uso e redistribuição deste material é oferecida sem nenhuma garantia de qualquer tipo, expressa ou implícita, quanto a sua adequação a qualquer finalidade. O Centro de Computação da Unicamp não assume qualquer responsabilidade sobre o uso das informações contidas neste material. Programação para a Web utilizando PHP O que é PHP? A abreviação PHP vem de “Hypertext PreProcessor”, que é uma linguagem de programação de código aberto muito utilizada para a criação de scripts, que são executados no servidor web para a manipulação de páginas HTML. Apesar de ser mais utilizado em aplicativos para a web, o PHP também suporta programação na linha de comando e aplicações gráficas cliente para serem executadas em interfaces gráficas com o PHP-GTK. História 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 período, foi lançada a versão 3 da linguagem. A partir da versão 40 PHP passou a utilizar a engine de scripting da Zend, para melhorar a performance e suportar uma variedade maior de bibliotecas externas e extensões. Até março de 2002, o PHP estava sendo utilizado em 9.000.000 de domínios. Vantagens O PHP tem inúmeras vantagens, como veremos a seguir: * É uma linguagem de fácil aprendizado; * Tem performance e estabilidade excelentes; * Seu código é aberto, não é preciso pagar por sua utilização, e é possível alterá-lo na medida da necessidade de cada usuário; * Tem suporte nos principais servidores web do mercado, e suporte nativo no servidor web Apache (o mais utilizado no mundo); * Suporta conexão com os bancos de dados mais utilizados do mercado, como por exemplo, MySQL, PostgreSQL, Oracle e DB2; * E multiplataforma, tem suporte nos sistemas operacionais mais utilizados no mercado; * Suporta uma variedade grande de padrões e protocolos, como o XML, DOM, * IMAP, POP3, LDAP, HTTP, entre outros; e Não precisa ser compilado. Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 1 Programação para a Web utilizando PHP Comunicação cliente X servidor web Quando é digitado um endereço no navegador para acessar uma página na internet, o que acontece é uma requisição (request) do cliente (navegador) ao servidor web. O servidor processa essa requisição e retorna uma resposta (response) ao cliente, que por sua vez interpreta o código retornado e formata a página para a sua visualização. Esse procedimento acontece em todas as requisições feitas pelo navegador. TCP/IP e HTTP O procedimento anterior só é possível através dos protocolos TCP/IP e HTTP. O TCP/IP é o protocolo básico para a comunicação entre as máquinas conectadas à internet, que gerencia toda a parte de transmissão e distribuição dos dados na rede. O HTTP (Hypertext Tranfer Protocol) é o protocolo que gerencia e formaliza as requisições e as respostas trafegadas entre o cliente e o servidor web. Caso o servidor web encontre a página, ela será enviada em partes ao navegador, caso contrário, o servidor enviará uma mensagem de erro. Formato das requisições e respostas HTTP O formato das requisições e das respostas HTTP são idênticas, como mostramos a seguir: Linha de requisição/resposta Cabeçalho Corpo A diferença entre as duas é o conteúdo de cada parte descrita, as quais vamos falar separadamente: Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 2 Programação para a Web utilizando PHP Formato da requisição HTTP e Linhade requisição: É sempre a primeira linha da requisição, a qual precisa conter um comando HTTP válido, o caminho da página requerida e a versão do protocolo HTTP: Exemplo: GET /artigos/artigost.htm HTTPA.1 Os comandos HTTP mais usados são: GET — faz requisições específicas e sua funcionalidade é limitada, porém é o método mais usado. POST — este método é mais abrangente que o GET, e é usado para passar informações para o servidor. Normalmente usado em formulários, que enviam dados ao servidor para serem manipulados. e Cabeçalho: trecho composto por várias linhas, que carregam informações sobre o cliente, como por exemplo, o tipo e a versão do navegador, a data e as informações gerais dos clientes. Seu conteúdo pode ser variado, contendo outros tipos de linhas, e para saber quando o cabeçalho termina e o corpo começa, utilizamos uma linha em branco. No mínimo, uma requisição deve conter uma linha de requisição e um cabeçalho HOST. Exemplo: Accept: */* Accept-Language: pt-br Connection: keep-alive Host: www.phpteste.com.br Referer: hitp:/Avww.phpteste.com.br/index.php?id=1 User-Agent: Mozilla (X11; 1; Linux 1686) Divisão de Serviços à Comunidade — Centro de Computação — Unicamp Programação para a Web utilizando PHP Configuração Usaremos como sistema operacional a distribuição do GNU/Linux Conectiva 7.0, e os pacotes necessários para o andamento do curso já se encontram instalados. Os pacotes necesários são: apache-1.3.22 php4-4.1.1 mod php4-4.1.1 php4-mysql-4.1.1 MySQL-3.23.36 Dividiremos em duas partes a configuração do PHP, a primeira referente a ligação entre o servidor web e a linguagem, e a segunda entre a linguagem e o banco de dados. e Servidor web e a linguagem PHP (Apache+mod php4+PHP4): Para que o servidor web Apache possa reconhecer as requisições para a execução de scripts PHP, é preciso que o módulo mod php4-4.1.1 esteja instalado e configurado no Apache. Para efetuar esta configuração é necessário apenas descomentar algumas linhas no arquivo de configuração do servidor web Apache. Este arquivo se chama “httpd.conf “e se encontra em “/etc/httpd/conf' . No editor de texto, faça uma busca pelas linhas listadas abaixo e retire o caracter “%“ no início de cada linha encontrada: LoadModule php4 module modules/libphp4.so AddModule mod php4.c AddType application/x-htipd-php .php AddType application/x-httpd-php-source .phps Directoryindex indexphp indexhtml | index.wml Depois de finalizada a operação anterior é necessário reiniciar o servidor web Apache com os seguintes comandos: S$ cds S ./httpd restart Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 6 Programação para a Web utilizando PHP * Banco de dados e a linguagem PHP (PHP4+php4-mysql+MySQL): Como na configuração anterior, o PHP necessita de um módulo para conectar e executar instruções SQL no banco de dados MySQL. Para isso é necessário estar instalado o módulo “php4-mysql-4.1.1º e o banco de dados MySQL "MySQL-3.23.36": Para efetuar a configuração é necessário tirar o comentário no arquivo de configuração “php.in?" , que se encontra em “/etc/php4/apache” , a seguinte linha: extension=mysql.so Teste de funcionamento Depois de configurados os aplicativos necessários para a execução dos scripts PHP, precisaremos fazer um teste de funcionamento. No editor de textos, digite o código a seguir e salve como “teste.php" em “/homerhttpd/html : <?php phpinfo(); 2> Divisão de Serviços à Comunidade — Centro de Computação — Unicamp Programação para a Web utilizando PHP Sintaxe Básica O PHP tem uma sintaxe muito simples e enxuta, o que facilita muito a organização dos scripts a serem desenvolvidos. Outro ponto interessante que veremos é que os códigos em PHP são embutidos no HTML, ao invés de gerá-lo por completo, facilitando muito a análise de possíveis erros nos scripts desenvolvidos. A seguir, exemplos da sintaxe do PHP: 1 2 3 4 <?php <? <% <script language="PHP”> > ?> </script> Variáveis Manipular variáveis em PHP é uma atividade simples, como veremos a seguir: * não é necessário declarar as variáveis, isto é feito quando atribuímos algum valor para elas; * para declará-las, é necessário apenas colocar como primeiro caracter o '$', juntamente com a string referente ao nome da variável, e esta string deve começar com uma letra ou o caracter ' "; * PHP écase sensitive, isto é, '$a' é diferente de '$A'. É aconselhável utilizar os nomes de variáveis com letras minúsculas, por causa das variáveis pré-definidas da linguagem, que são declaradas com maiúsculas; Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 8 Programação para a Web utilizando PHP e Listas: Utilizadas em PHP para realizar atribuições múltiplas, como por exemplo, atribuir valores de um array para variáveis, como mostra a seguir: Sintaxe: list($a,Sb,Sc) = array (0=>"a”, 1=>"b”, 2=>"c"); Otrecho de código acima atribuirá simultânea e respectivamente os valores do array às variáveis passadas como parâmetros para o comando list. E muito importante lembrar que só serão passadas ao comando list os elementos do array que possuírem os índices com valores inteiros e não negativos. * Booleans: Em PHP, não existe um tipo específico para as variáveis do tipo boolean, ele trata este tipo com valores inteiros: O para false e valores diferentes deste como true. Transformações de tipos É possível fazer transformações de tipos de variáveis através das seguintes formas: e Coerções: quando ocorrem determinadas operações matemáticas entre dois valores de tipos diferentes, como por exemplo a adição, o PHP converte um deles automaticamente. Um exemplo disso seria a conversão de uma string para um valor numérico (inteiro ou ponto flutuante), que segue as seguintes regras: = analisado o ínicio da string, se contiver um número, ele será analisado, caso contrário, o valor será O (zero); = Onúmero pode conter o sinal no início (+ ou -); Divisão de Serviços à Comunidade — Centro de Computação — Unicamp "1 Programação para a Web utilizando PHP = Seastring contiver um ponto em sua parte numérica a ser analisada, ele será considerado, e o valor obtido será um ponto flutuante; = Seastring contiver as letras "e" ou "E" em sua parte numérica a ser analisada, o valor seguinte será considerado como expoente da base 10, e o valor obtido será um ponto flutuante. Exemplo de sintaxe: $curso = 1 + “12.8”; (Scurso == 13.8) $curso = 1 + “15”; (Scurso == 16) $curso = 1 + “1.5e3”; (Scurso == 1501) $curso = 1 + “l0curso”; (Scurso 11) $curso = 1 + “ 10curso”; (Scurso == 11) S$curso = 1 + “+AlOtestes”; (Scurso == 1) e Transformações explícitas de tipos : desta forma precisaremos utilizar a sintaxe de typecast do PHP, como os exemplos a seguir: Scurso = 20; (integer (20)) Scurso = (double) Scurso; (double (20.0)) Scurso = 3.9; (double (3.9)) Scurso = (int)Scurso (o valor é truncado e fica como integer(3)) * Tipos suportados nas transformações explícitas: (int), (integer) = muda para inteiro; (real), (double), (float) = muda para ponto flutuante; (string) = muda para string (array) = muda para array (object) = muda para objeto Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 12 Programação para a Web utilizando PHP e Função settype: trabalha igualmente as tranformações explícitas, porém com sintaxe diferente, como o exemplo a seguir: Scurso = 20; (integer) settype (Scurso, double); 4 o valor da variável Scurso foi transformada em ponto flutuante Operadores e Aritméticos: + Adição - Subtração * Muttiplicação / Divisão %o, Módulo e Strings: . Concatenação Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 13 Programação para a Web utilizando PHP Estruturas de controle . F : O comando iftesta a condição passada e executa o bloco de código caso o valor retornado da condição seja verdadeiro: Sa = 1; if (Sa == 1) f Caso a condição passada retorne um valor falso, e seja necessário executar um bloco de código diferente, utiliza-se a instrução else: Sa = 1; Sb " n» if (Sa > Sb) Ainda existe a instrução elseif, para situações onde precisa-se verificar mais que uma condição: Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 16 A idéia do comando switch é achar a condição verdadeira e executar qualquer bloco de Programação para a Web utilizando PHP Sa = 1; Sb = 2; Sc = 3; if (Sa > Sb) f echo a é maior que b ; ) elseif (Sa > Sc) f echo a é maior que c “; echo “a é menor que be c “; Switch : Comando utilizado para fazer múltiplos testes de condição. A idéia deste comando é igual ao do elseif , porém com algumas diferenças: Sa = 2; switch (Sa) f case O: echo break; case 1: a é igual a O *; echo “a é igual a 1; break; case 2: echo “a é igual a 2“; break; código que esteja abaixo dela, inclusive os que não forem do seu trecho, por esse motivo, utilizamos o comando break logo abaixo da última linha do bloco de código, como o Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 17 Programação para a Web utilizando PHP exemplo anterior. O comando switch também aceita testes de condição em qualquer tipo de variável suportado pelo PHP: Sa = “curso”; switch (Sa) f case “PHP*: case “curso': case “CCUEC': echo “a é igual a PHP *; break; echo a é igual a Curso *; break; echo “a é igual a CCUEC *; break; e While ; Este comando é utilizado para realizar laços condicionais. Ele executa o bloco de código enquanto a condição passada for verdadeira, e caso a condição inicial que foi passada se torne falsa, o bloco não será executado: while [ Sa = 1; echo “Número. Sa++.“<br>*; (Sa <= 10) Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 18 Programação para a Web utilizando PHP Funções Funções são pequenas seções independentes de código que podem ser chamadas a qualquer momento e em qualquer ordem, que servem para desempenhar tarefas específicas dentro dos scripts. O exemplo a seguir mostra a sua sintaxe básica: [ function soma ($a, Sb) Sc = $a + Sb; return Sc; A instrução return é opcional, já que não é obrigatório retornar algum valor em funções no PHP, outra regra é a de não permitir que sejam retornados múltiplos valores através desta instrução. Para resolver essa necessidade, pode-se retornar listas e arrays, como mostra o exemplo a seguir: [ list echo echo echo function soma ($a, Sb) $c Sa + Sb; sd Sc — 5; return array ($c, Sb, Sd) ($£,Sg,Sh) = soma(10,10); SE."<pr>"; Sg."<br>"; Sh.”<br>"; Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 21 Programação para a Web utilizando PHP e Passagem de parâmetros por referência : Normalmente, a passagem de parâmetros em PHP é feita através dos valores das variáveis, não permitindo assim, a alteração do valor na variável original, como mostra o exemplo a seguir: Scont = 10; function contador (Sa) f Sa++; ) contador ($cont) ; echo S$cont; No exemplo acima, a variável original permanecerá com o mesmo valor porque não foi definida a passagem de parâmetros por referência, o que alteraria também o valor da variável original. Uma das maneiras de se utilizar esse recurso é colocar o caracter "&” antes do nome da variável na declaração da função, como mostra o exemplo a seguir: Scont = 10; function contador (&$a) f Sa++; ) contador ($cont) ; echo S$cont; Poderíamos também utilizar a passagem de parâmetros por referência apenas quando fossemos chamar a função, e não em sua declaração: contador (&$cont) ; echo S$cont; Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 22 Programação para a Web utilizando PHP Escopo das variáveis Discutimos anteriormente sobre variáveis e os tipos suportados pelo PHP. Agora, discutiremos sobre os escopos destas variáveis, que podem ser dos seguintes tipos: globais; locais; estáticas; constantes. e Globais: As variáveis globais são por definição, as variáveis que podem ser acessadas dentro de todo o script. Porém, quando cria-se escopos locais como nas funções, precisaremos utilizar um tipo de chamada especial, como no exemplo a seguir: Scurso = 'PHP'; function mostra () f global Scurso; echo Scurso; ) mostra (); O mesmo recurso pode ser acessado através da array GLOBALS, que nos permite acessar todas as variáveis globais do script. O exemplo acima pode ser reescrito da seguinte maneira: Scurso = 'PHP'; function mostra () f echo SGLOBALS [“curso"] ; echo Scurso; ) mostra (); Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 23 Programação para a Web utilizando PHP 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 quiséssemos excluir o campo cargo da tabela funcionarios: alter table funcionarios drop column cargo; Supondo que quiséssemos adicionar novamente o campo cargo na tabela funcionarios: alter table funcionarios add column cargo varchar(40) not null; 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 - Criação da home page do site ] A página principal (homepage) do site será bastante simples e trará um menu com as opções de inclusão, consulta, alteração e exclusão. As opções terão links para seus respectivos módulos. Essa página inicial terá a extensão html e será criada utilizando-se um editor de páginas (Netscape Composer, etc). Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 26 Programação para a Web utilizando PHP Criar uma nova página, em branco. Definir as propriedades da página Centralizar o cursor Inserir a imagem topo.gif (que está em cursophp) Digite os ítens do menu (em negrito): “Inclusão de funcionários”, “Consulta de funcionários”, “Alteração dos dados de funcionários” e “Exclusão de funcionários”. Pule uma linha entre um item e outro. Transforme os ítens do menu em links e direcione para seus respectivos endereços: inclusao.html consulta.html alteracao.html exclusao.html Salve a página como index.html e teste-a digitando o endereço http:/localhost/cursophp/index.html O código gerado ficará assim: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859- 1"> <meta name="Author" content="Alexandre Arroyo de Lima"> <meta name="GENERATOR" content="Mozilla/4.73 [en] (Win95; 1) [Netscape] "> <title>index</title> </head> <body bgcolor="fFFFFFF" text="000000" link="4333399" vlink="fCC0000" alink="4663399"> <center><img SRC="topo.gif" height=44 width=640> <p><b><a href="inclusao .html">Inclusão de funcionários</a></b> <p><b><a href="consulta.html">Consulta de funcionários</a></b> <p><b><a href="alteracao.html">Alteração dos dados dos funcionários</a></b> <p><b><a href="exclusao .html">Exclusão de funcionários</a></b></center> </body> </html> Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 27 Programação para a Web utilizando PHP [3 - Módulo de Inclusão | Vamos criar a página para o formulário de inclusão. Os recursos do Netscape Composer são muito limitados para a confecção de formulários, sendo assim digitaremos o código utilizando um editor de texto. Esse arquivo terá extensão html. 3.1) Formulário inclusao.html <html> <head> <title>Inclusao.html</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="fFFFFFF" text="000000" link="4333399" vlink="fCC0000" alink="4663399"> <table width="640" border="0" cellspacing="0" align="center"> <tr> <td> <p><img src="topo.gif" width="640" height="44"></p> <p><b>Formulário de inclusão: <br> </b></p> <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>&nbsp; </td> </tr> </table> </body> </html> Após digitar o código, salve-o e teste-o. Quando o formulário for submetido, dará um erro, alertando que o script "inclusao.php" (para o qual estamos encaminhando os dados) não existe. Precisamos, então, criá-lo. Notem que a próxima página não terá mais a extensão html e sim php, pois o código vai conter programação PHP. Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 28 Programação para a Web utilizando PHP <input typesVitextV” name=VirelefoneV” value=y"StelefoneVr "10N'> maxlength="10W" size= </p> <p>E-mail: <input type-WtextV! name=W"emailW" value=WSemailW" size=r25m maxlength="40"> </p> <p>Cargo: <input type-WtextV! name=NcargoN" value=NScargoN" size=yr4om maxlength="40NW"> </p> <p> <input type=WsubmitW" name=N "submit" value=WEnviarW"> <center> <b> <a href=Nindex.htmlW'>Home</a> </b> </center> </p> </form> </td> </tr> <tr> <td>enbsp; </td> </tr> </table> o : else ( // Inclui os dados na tabela funcionarios // Cria uma conexão com o servidor MySQL passando host, username e senha $conec = mysql connect ("localhost", "usuario", "senha") or die ("Falha na conexão com o banco de dados"); // Declaração SOL $declar = "INSER' 'Semail!, 'Scargo') into funcionarios values ('$nome', 'Sunidade!, 'Stelefone!, // Roda a query e trata o resultado Stipo msg = 'I'; if (mysql db query ("unicamp", $declar, $conec)) ( Sok = 1; header ("Location: exibe mensagem.php?ok-=Sok&tipo msg-Stipo msg"); : else ( sok = 2; header ("Location: exibe mensagem.php?ok-=Sok&tipo msg-Stipo msg"); // header ("Location: exibe mensagem.php?variavell=$variavell&variavel2=Svariavel2"); : // Fecha a conexão com o servidor MySQL (Opcional mysql close ($conec) ; : 2> </body> </html> 3.3) Criando o script que exibe mensagens: exibe mensagem.php Não devemos exibir as mensagens finais em um script que acessa banco de dados, pois, se o usuário clicar no botão “atualizar” do navegador, o script será Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 31 Programação para a Web utilizando PHP processado novamente. Por isso, criaremos um script só para exibir as mensagens finais. Esse script foi chamado em “inclusão.php” através da função “header”. <html> <head> <title>Exibe Mensagem</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="fFFFFFF" text="$000000" link="4333399" vlink="fCcCc0000" alink="4663399"> <?php global Sok; Sok = trim(Sok); echo ("<p><center><img src=N"topo.gifN" width=)"640" height=)"44N"></center></p>"); if (Stipo msg IM) 4 //se inclusão OK if (Sok == 1) « echo ("<BR><BR>"); echo ("<center><b><font size = 4> Inclusão Efetuada </font></p></center>"); echo ("<BR>"); echo ("<center><b> <a href=N"inclusao.htmIN">Voltar</a> </b></center>"); , // se deu erro na inclusão if (Sok == 2) « echo ("<BR><BR>"); echo ("<center><b><font size = 4> Erro - Inclusão não Efetuada </font></p></center>"); echo ("<BR>"); echo ("<center><b> <a href=N"inclusao.htmIN">Voltar</a> </b></center>"); , , 2> </body> </html> 3.4) Testando o módulo de inclusão Abra o navegador (Netscape) e digite o endereço do site: http://localhost/cursophp/index.html No menu da página principal, clique na opção inclusão. Deixe os campos do formulário em branco. Clique em enviar. Deverá mostrar uma Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 32 Programação para a Web utilizando PHP mensagem de erro. O único campo que não é obrigatório é o e-mail. Preencha o formulário com os dados do funcionário: nome completo, unidade, telefone, e-mail e cargo. Clique em enviar. Deverá mostrar a mensagem “Inclusão Efetuada”. Volte para a página do formulário 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 “Inclusão não efetuada”, pois o campo nome é chave e não aceita valores duplicados. Insira pelo menos 5 funcionários. [4 - Módulo de Consulta | Vamos criar a página com o formulário de consulta. 4.1) Formulário consulta.html <html> <head> <title>Consulta.html</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="fFFFFFF"> <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>Formulário 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>&nbsp; </td> </tr> </table> </body> </html> Após digitar o código, salve-o e teste-o. Quando o formulário for submetido, dará um erro, alertando que o script "consulta.php” (para o qual estamos encaminhando os dados) não Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 33 Programação para a Web utilizando PHP 4.3) Testando o módulo de consulta Abra o navegador (Netscape) e digite o endereço do site: http://localhost/cursophp/index.html No menu da página principal, clique na opção consulta. Deixe o campo nome do funcionário em branco e clique em enviar. Deverá mostrar uma mensagem de erro. Preencha o formulário com um nome de funcionário inexistente e clique em enviar. Deverá mostrar a mensagem “Funcionário não cadastrado”. Preencha o formulário com um nome de funcionário válido e clique em enviar. Deverá mostrar os dados do funcionário. [5 - Módulo de Exclusão Vamos criar a página com o formulário de exclusão. 5.1) Formulário exclusao.html <html> <head> <title>Exclusao.html</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="fFEFEFE "> <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>Formulário de exclusão: <br> </b></p> <form method="get" 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>&nbsp; </td> </tr> </table> </body> </html> Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 36 Programação para a Web utilizando PHP Após digitar o código, salve-o e teste-o. Quando o formulário for submetido, dará um erro, alertando que o script "exclusao.php" (para o qual estamos encaminhando os dados) não existe. Precisamos, então, criá-lo. Notem que esta página não será mais html e sim php, pois o código vai conter programação PHP. 5.2) Script exclusao.php O script “exclusao.php” vai receber o dado do formulário, confirmar através de consulta ao banco de dados se o funcionário está cadastrado, e excluir o registro. <?php // Recebe variáveis globais do formulário global $nome; // Tirar espaço em branco das variáveis recebidas do formulário $nome = trim($nome) ; // Consiste Nome if (empty (Snome)) ( $html = file("exclusao.html"); Shtml = implode(" ",Shtml); Serro = "<center><font color=)"fFF0000N"> Preencha o campo <b>Nome</b></font></center>"; Shtml = str replace ("<!mensagem>", Serro, Shtml); echo (Shtml); , else « // Cria uma conexão com o servidor MySQL $conec = mysql connect ("localhost", "usuario", "senha"); // Declaração do SQL $declar = "SELECT nome from funcionarios where nome = '$nome'"; // Roda a query, verifica se funcionário é cadastrado Squery = mysql db query ('unicamp', Sdeclar, Sconec) or die ("Erro no acesso ao banco"); $achou = mysql num rows ($query); //echo (Sachou); // Se encontrou exclui, senão mostra mensagem Stipo msg = 'E!; if (Sachou > 0) ( // Exclui registro na tabela funcionarios $declar2 = "DELETE from funcionarios where nome = 'Snome'"; if (mysql db query ('unicamp', Sdeclar2, Sconec)) ( Sok = 1; header ("Location: exibe mensagem.php?ok=Sokstipo msg=Stipo msg"); , else « Sok = 2; header ("Location: exibe mensagem.php?ok=Sokstipo msg=Stipo msg"); , ) Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 37 Programação para a Web utilizando PHP else ( Sok = 3; header ("Location: exibe mensagem.php?ok=Sok&tipo msg=Stipo msg"); ) mysql close ($Sconec); , 2> </body> </html> 5.3) Adicionando o código referente as mensagens da exclusão no script exibe mensagem.php Para exibir as mensagens finais da exclusão vamos aproveitar o mesmo script utilizado na inclusão. Abra o script exibe mensagem.php e adicione o seguinte código entre o bloco de código referente a inclusão e o comando que fecha a programação PHP (?> ): if (Stipo msg == 'E!') ( //se exclusão OK if (Sok == 1) « echo ("<BR><BR>"); echo ("<center><b><font size = 4> Exclusão Efetuada </font></b></center>") ; echo ("<BR>"); echo ("<center><b> <a href=N"exclusao.htmlN">Voltar</a> </p></center>") ; ) // se deu erro na exclusão if (Sok == 2) « echo ("<BR><BR>") ; echo ("<center><b><font size = 4> Erro - Exclusão não Efetuada </font></b></center>") ; echo ("<BR>"); echo ("<center><b> <a href=N"exclusao.htmlN">Voltar</a> </p></center>") ; ) // se funcionário não cadastrado if (Sok == 3) « echo ("<BR><BR>") ; echo ("<center><b> Funcionário não cadastrado </b></center>") ; echo ("<BR><BR>"); echo ("<center><b> <a href=N"exclusao.htmlN">Voltar</a> </p></center>") ; , ) 5.4) Testando o módulo de exclusão Abra o navegador (Netscape) e digite o endereço do site: http:/localhost/cursophp/index.html No menu da página principal, clique em exclusão. Deixe o campo nome do funcionário em branco e clique em enviar. Deverá mostrar uma Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 38 Programação para a Web utilizando PHP <head> <title>Inclusao.php</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="fFFFFFF" text="$000000" link="333399" vlink="fCC0000" alink="4663399"> Dj echo ("<p><center><img src=N"topo.gifN" width=)" 6401" height=)"44N"></center></p>"); echo ("<BR><BR>"); echo ("<center> <b> Funcionário não cadastrado </b> </center>"); echo ("<BR>"); echo ("<center> <b> <a href=N"alteracao.htmlN">Voltar</a> </b> </center>"); , , 2> </body> </html> Notem que, no código que acabamos de digitar, estamos chamando a função monta pagina, passando como parâmetros as variáveis nome, unidade, telefone, email e cargo. As funções são úteis porque podem ser reutilizadas em vários programas, além disso, o tamanho do código do programa chamador diminui consideravelmente. Podemos criar um único script (exemplo: funcoes.php) que conterá todas as funções. Um detalhe importante que não podemos esquecer é que precisamos incluir esse programa de funções em nosso programa chamador. No código visto anteriormente temos o comando include ("funcoes.php") logo no início do código php. 6.3) Script funcoes.php O script “funcoes.php” pode armazenar todas as funções que serão utilizadas no site. Neste curso usaremos apenas a função monta pagina. Essa função serve para montar o formulário já preenchido, com as informações que foram passadas como parâmetros no programa anterior. Observação: essa função também é chamada pelo script alteracao2.php, e com algumas alterações, poderia ser usada para recriar o formulário do módulo de inclusão. <?php function monta pagina ($nome, Sunidade, Stelefone, Semail, Scargo, $script chamador) t // Recebe variáveis globais global $nome; global Sunidade; global Stelefone; global Semail; global Scargo; global $script chamador; Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 41 Programação para a Web utilizando PHP // Tirar espaço em branco das variáveis recebidas através do formulário $nome = trim($nome) ; Sunidade = trim(Sunidade) ; Stelefone = trim(Stelefone) ; Semail = trim(Semail); Scargo = trim(Scargo) ; $script chamador = trim($script chamador) ; echo (! <html> <head> <title>Inclusao.php</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="fFFFFFF" text="4000000" link="$333399" vlink="gcc0000" alink="4663399"> DF echo ("<p><center><img src=N"topo.gifN" width=)"640" height=)"44N"></center></p>"); if ($script chamador == 'A2!) ( echo ("<font color=)"tFF0000N"><b>Campo (s) obrigatório (s) não preenchido (s)</b></font>"); , echo "<table width=) "6401" border=)"0N" cellspacing=N"0N" align=NcenterV'>"; echo "<tr>"; echo "<td>"; echo "<p><b>Formulário de alteração: <br></b></p>"; echo "<form method=N"postW" action=Walteracao2.phpW'>"; echo "<p>Nome: $nome </p>"; echo "<p>Unidade: <input type=N"textN" name=N"unidade" value=)"SunidadeN” size=)"40N" maxlength=)"40N"> </p>"; echo "<p>Telefone: <input type="text" name=WtelefoneN" value=W"S$telefonel" maxlength="10N" size=N"10N"> </p>"; echo "<p>E-mail: <input type=W'textY" name=N"emaill" value=N"SemailN" size=)"25N" maxlength=)"25N"> </p>"; echo "<p>Cargo: <input type=W'textN" name=WcargoN" value=N"Scargol" size=)"40N" maxlength=)"40N"> </p>"; echo "<p> <input type=W'submitN" name=W"SubmitNW" value=N"EnviarN"> </p>"; echo "<p> <input type=NhiddenN" name=N"nomeN" value=)"$nome "></p>"; echo "</form>"; echo "</td>"; echo "</tr>"; echo "<tr>"; echo "</tr>"; echo "</table>"; echo ("<center> <b> <a href=Walteracao.htmlN'>Voltar</a> </b> </center>"); return; ) 2> Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 42 Programação para a Web utilizando PHP Notem que o formulário criado pela função monta pagina chama o programa alteracao2.php. Isso porque, para completarmos o módulo de alteração precisamos de mais um script que pegue as informações que foram alteradas e as inclua no banco de dados. Observação: como o campo nome não é passado para o script alteracao2.php, por não se tratar de uma variável do formulário, temos que passá-lo como um campo escondido input type="hidden". 6.4) Script alteracao2.php O script “alteracao2.php” vai pegar as informações alteradas, consistí-las e fazer um update no banco de dados. <?php // Recebe variáveis globais do formulário global Snome; global Sunidade; global $telefone; global Semail; global Scargo; // Tirar espaço em branco das variáveis recebidas do formulário $nome = trim($nome) ; Sunidade = trim(Sunidade) ; Stelefone = trim(Stelefone) ; Semail = trim(Semail); Scargo = trim(Scargo) ; if (empty ($nome) || empty (Sunidade) || empty(Stelefone) || empty (Scargo)) f include ("funcoes.php"); $script chamador = 'A2Z'; monta pagina ($nome, Sunidade, Stelefone, Semail, Scargo, $script. chamador) ; , else ( // Cria uma conexão com o servidor MySQL $conec = mysql connect ("localhost", "usuario", "senha") or die ("Falha na conexão com o banco de dados"); S$declar = "UPDATE funcionarios SET unidade=" Sunidade"!, telefone='Stelefone'", email='Semail', cargo='Scargo' WHERE nome=" $nome!" ; // Roda a query e trata o resultado Stipo msg = 'A!; if (mysql db query ("unicamp", Sdeclar, $conec)) ( Sok = 1; header ("Location: exibe mensagem.php?ok=Sok&tipo msg=Stipo msg"); , else ( Sok = 2; header ("Location: exibe mensagem.php?ok=Sok&tipo msg=Stipo msg"); Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 43 Programação para a Web utilizando PHP // se deu erro na exclusão if (Sok == 2) « echo ("<BR><BR>"); echo ("<center><b><font size = 4> Erro - Exclusão não Efetuada </font></b></center>"); echo ("<BR>"); echo ("<center><b> <a href=)"exclusao.htmlN">Voltar</a> </b></center>"); y // se funcionário não cadastrado if (Sok == 3) « echo ("<BR><BR>"); echo ("<center><b> Funcionário não cadastrado </b></center>"); echo ("<BR><BR>"); echo ("<center><b> <a href=)"exclusao.htmlN">Voltar</a> </b></center>"); , , else « //se alteração OK if (Sok == 1) « echo ("<BR><BR>"); echo ("<center><b><font size = 4> Alteração Efetuada </font></p></center>"); echo ("<BR>"); echo ("<center><b> <a href=Y"alteracao .htmlN">Voltar</a> </b></center>"); , // se deu erro na alteração if (Sok == 2) « echo ("<BR><BR>"); echo ("<center><b><font size = 4> Erro - Alteração não Efetuada </font></p></center>"); echo ("<BR>"); echo ("<center><b> <a href=V"alteracao .htmlN">Voltar</a> </b></center>"); , , 2> </body> </html> 7.2) Como obter data e hora do sistema No exemplo a seguir obtemos data e hora usando a função date, jogamos o conteúdo em variáveis e mostramos essas variáveis na tela. Parâmetros utilizados na função date: j: dia m: mês Y: ano Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 46 Programação para a Web utilizando PHP H: hora ii minutos s: segundos <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text /html; charset=iso-8859-1"> </head> <body bgcolor="fFFFFFF"> <?php Sdata = date("j/m/Y"); Shora = date("H:i:s"); echo ("Data: Sdata"); echo ("<br><br>"); echo ("Hora: Shora"); 2> </body> </html> Observação: se fôssemos gravar a data num banco de dados (aaaa/mm/dd), ao invés de exibi-la, a sintaxe seria a seguinte: Sdata = date("y/m/5"); 7.3) Como listar várias linhas de uma tabela, usando o comando “while”. No exemplo a seguir listaremos todas as linhas da tabela “funcionarios”, permitindo que se altere os dados de um funcionário. <html> <head> <title>Consulta.php Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="fFFFFFF"> <?php $conec = mysql connect ("localhost", "usuario", "senha"); $declar = "SELECT nome, unidade, telefone, email, cargo from funcionarios"; Squery = mysql db query ('unicamp', Sdeclar, Sconec) or die ("Erro no acesso ao banco"); $achou = mysql num rows ($query); echo ("<BR>"); Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 47 Programação para a Web utilizando PHP echo ("<table border=N "IN" width=) "640" border=N"0N" cellspacing="0N" align=NcenterV'> <tr> <td><b>Nome</b></td> <td><b>Unidade</b></td> <td><b>Telefone</b></td> <td><b>E-mail</b></td> <td><b>Cargo</b></td> <td><b>Ação</b></td> </tr>"); while($linhas = mysql fetch row (Squery)) f $nome = $linhas [0]; Sunidade = Slinhas[1]; Stelefone = Slinhas[2]; Semail = $Slinhas [3]; $cargo = $Slinhas [4]; echo ("<tr>in"); echo (" <td>$nome</td>") ; echo (" <td>Sunidade</td>") ; echo (" <td>Stelefone</td>"); echo (" <td>Semail</td>"); echo (" <td>Scargo</td>"); echo (" <ta> <form method="postN" action=Walteracao.phpV"> <input type=NWhiddenW" name="nomeN" value=)"$nomeN"> <input type=NW'submitN" name=N" submit" value=Walterary"> </form> </td>"); echo ("</tr>in"); , echo ("</table>in"); 2> </body> </html> Divisão de Serviços à Comunidade — Centro de Computação — Unicamp 48
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved