Linguagem de Programação III Includes e formulários HTML Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Includes em PHP - reaproveitamento de funções ou arquivos - uma alteração reflete em todas as páginas do site Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Includes em PHP Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Includes em PHP include “nome_do_arquivo”; Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Includes em PHP <font size=”2”> <p><a href=”assine.php”>ASSINE</a></p> <p><a href=”sac.php”>SAC</a></p> <p><a href=”batepapo.php”>BATE-PAPO</a></p> <p><a href=”noticias.php”>NOTÍCIAS</a></p> <p><a href=”carros.php”>CARROS</a></p> … </font> Salvar este código com o nome: menu.inc <?php include “menu.inc”; ?> Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Includes em PHP - as páginas com include devem ter a extensão .php - para acrescentar o menu AJUDA, basta alterar apenas o arquivo menu.inc <font size=”2”> <p><a href=”assine.php”>ASSINE</a></p> <p><a href=”sac.php”>SAC</a></p> <p><a href=”batepapo.php”>BATE-PAPO</a></p> <p><a href=”noticias.php”>NOTÍCIAS</a></p> <p><a href=”carros.php”>CARROS</a></p> <p><a href=”ajuda.php”>AJUDA</a></p> … </font> Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Includes em PHP - podem ser criados - menu.inc - cabecalho.inc - rodape.inc Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Includes em PHP Exibir data atual <?php $meses = array ("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"); $dia = date ("d", time( )); $mes = date ("m", time( )); $ano = date ("Y", time( )); echo $dia . " de " . $meses [$mes-1] . " de " . $ano; ?> data.inc 4 de Agosto de 2014 Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Reutilização de código - podemos colocar várias funções em um include <?php include “funcoes_aux.inc”; ?> <html> <body> … <?php $nome = maiusculo ($nome); ?> </body> </html> Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Include X Require - include – pode incluir vários arquivos - require – pode incluir um arquivo Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Include X Require $incluir = array (“funcoes_aux.inc” , “cabecalho.inc ”, “data.inc”); for ($i=0 ; $i<sizeof($incluir) ; $i++) { require “'$incluir[$i]”; } for ($i=0 ; $i<sizeof($incluir) ; $i++) { include “'$incluir[$i]”; } - usar sempre { } Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Formulários - como enviar informações para um programa PHP - campo de entrada de dados e um botão para enviar esses dados Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Formulários formulario.html <form> <p>Digite seu email: <input type="text" name="email" size="20"></p> <p><input type="submit" value="Enviar!" name="enviar""></p> </form> Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Formulários formulario.html <form action=”recebe_dados.php”> <p>Digite seu email: <input type="text" name="email" size="20"></p> <p><input type="submit" value="Enviar!" name="enviar""></p> </form> Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Formulários Opção Descrição name Nome do campo value Valor-padrão para cada campo size Tamanho do campo maxlength Número máximo de caracteres do campo type Prof Mauricio Lederer Tipo do campo Análise e Desenvolvimento de Sistemas - UNIANDRADE Formulários Valor text password Descrição Caixa de texto com valores numéricos ou alfanuméricos Digitação de senhas. Serão mostrados **** hidden Não aparece na tela select Lista de seleção. Drop-down checkbox Prof Mauricio Lederer Caixa de seleção que pode ser marcada ou desmarcada Análise e Desenvolvimento de Sistemas - UNIANDRADE Formulários Valor radio textarea Descrição Botões de seleção com uma escolha Caixa de texto com várias linhas file Permite o envio de arquivos submit Botão que envia o formulário image Imagem que envia o formulário reset Retorna o campo do formulário ao valor padrão Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Formulários Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Formulários <p><strong>O que você achou do site?</strong> <dl><dd> <input type="radio" name="avaliacao" value="muitobom" checked>Muito Bom <input type="radio" name="avaliacao" value="bom">Bom <input type="radio" name="avaliacao" value="regular">Regular <input type="radio" name="avaliacao" value="umlixo">Um Lixo </dd> </dl> Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Formulários p><strong>Qual a seção que você mais gostou? </strong><dl> <dd> <select name="secao" size="1"> <option value="emcartaz">Em Cartaz</option> <option value="trilhasonora">Trilha Sonora</option> <option value="fotos">Galeria de Fotos</option> <option value="bilheteria">Bilheteria</option> <option value="outra">Outra</option> </select> Outra: <input type="text" size="26" maxlength="256" name="outra"></dd> </dl> Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Formulários Prof Mauricio Lederer <p><strong>Digite seus comentários no espaço abaixo:</strong><dl> <dd> <textarea name="Comentarios" rows="5" cols="42"></textarea> </dd> </dl> <p><strong>Diga-nos como entrar em contato com você:</strong><dl> <dd><pre> Nome <input type="text" size="35" maxlength="256" name="nome"> E-mail <input type="text" size="35" maxlength="256" name="email"> Fone <input type="text" size="35" maxlength="256" name="fone"> FAX <input type="text" size="35" maxlength="256" name="fax"> </pre> </dd> </dl> <dl> <dd> Análise e Desenvolvimento de Sistemas - UNIANDRADE Formulários <input type="checkbox" name="novidades" value="nov"> Quero receber as novidades do site por e-mail</dd></dl> <p><input type="submit" value="Enviar Dados"> <input type="reset" value="Limpar Formulário"></p> </form> </BODY> </HTML> Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Enviar informações - Método POST e GET <HTML> <BODY> <form action="processa.php" method=”POST”> ... <p><input type="submit" value="Enviar Dados"> <input type="reset" value="Limpar Formulário"></p> </form> </BODY> </HTML> Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Enviar informações Método GET - é o padrão <form action=”recebe_dados.php”> <p>Digite seu nome: <input type="text" name="nome" size="30"></p> <p>Digite sua idade: <input type="text" name="nome" size="3"></p> </form> http://www.site.com.br/recebe_dados.php?nome=Joaquim&idade=20 - limite de 2000 caracteres - parâmetros aparecerem no endereço do browser - passagem de parâmetros por links - enviar dados com poucos campos http://www.site.com.br/produtos.php?id_produto=50 Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Enviar informações Método POST - precisa ser informado <form action=”recebe_dados.php” method=”POST”> <p>Digite seu nome: <input type="text" name="nome" size="30"></p> <p>Digite sua idade: <input type="text" name="nome" size="3"></p> </form> http://www.site.com.br/recebe_dados.php - dados são enviados no corpo da mensagem enviada ao servidor - parâmetros não aparecerem no endereço do browser - não há limitação no tamanho dos dados (recomendável) - envio de imagens Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Como tratar as informações - Tratar como se fossem variáveis - campo nome é $nome Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Como tratar as informações - utilizar arrays $_GET ou $_POST $_POST[“nome”] $_POST[“email”] $_GET[“nome”] $_GET[“nome”] - mais seguro - cuidado para não criar campos com o mesmo nome Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Verificando campos de formulário Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Verificando campos de formulário <form method="POST" action="recebe_dados.php"> <div align="center"><center> <p>Username: <input type="text" name="username" size="10"> Senha: <input type="password" name="senha" size="10"></p> </center></div> <div align="center"><center> <p>Nome: <input type="text" name="nome" size="20"></p> </center></div> <div align="center"><center> <p>E-mail: <input type="text" name="email" size="20"></p> </center></div> <div align="center"><center> <p>Cidade: <input type="text" name="cidade" size="20"> Estado: <input type="text" name="estado" size="2" maxlength="2"></p> </center></div> <div align="center"><center> <p><input type="submit" value="Enviar" name="enviar"></p> </center></div> </form> Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Verificando campos de formulário <html> <title>Desenvolvendo Websites com PHP</title> <body> <?php $username = $_POST["username"]; $senha = $_POST["senha"]; $nome = $_POST["nome"]; $email = $_POST["email"]; $cidade = $_POST["cidade"]; $estado = $_POST["estado"]; $erro=0; Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Verificando campos de formulário if (strlen($username)<5) { echo "O username deve possui no mínimo 5 caracteres.<br>"; $erro=1; } if (strlen($senha)<5) { echo "A senha deve possui no mínimo 5 caracteres.<br>"; $erro=1; if ($username == $senha) { echo "O username e a senha devem ser diferentes.<br>"; $erro=1; if (empty($nome) OR strstr ($nome, ' ')==FALSE) { echo "Favor digitar seu nome corretamente.<br>"; $erro=1; } if (strlen($email)<8 || strstr ($email, '@')==FALSE) { echo "Favor digitar seu e-mail corretamente.<br>"; $erro=1; } if (empty($cidade)) { echo "Favor digitar sua cidade.<br>"; $erro=1; } if (strlen($estado)!=2) { echo "Favor digitar seu estado corretamente.<br>"; $erro=1; } // VERIFICA SE NÃO HOUVE ERRO if($erro==0) { echo "Todos os dados foram digitados corretamente!"; } ?> Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE } } Verificando campos de formulário Função Descrição empty Verifica se a string está vazia strlen Retorna o número de caracteres da string strstr Acha a primeira ocorrência da string Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Utilização do hidden Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Utilização do hidden <p><strong>Inclusão de produtos</strong></p> <form method="POST" action="gerencia.php"> <input type="hidden" name="operacao" value="inclusao"> <p> Código do produto: <input type="text" name="codigo_produto" size="5"><br> Nome do produto: <input type="text" name="nome_produto" size="20"><br> Descrição do produto: <input type="text" name="descricao_produto" size="20"> </p> <p><input type="submit" value="Incluir" name="incluir"></p> </form> Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Utilização do hidden <p><strong>Alteração de produtos</strong></p> <form method="POST" action="gerencia.php"><p> <input type="hidden" name="operacao" value="alteracao"> Código do produto: <input type="text" name="codigo_produto" size="5"><br> Novo Nome do produto: <input type="text" name="nome_produto" size="20"><br> Nova Descrição do produto: <input type="text" name="descricao_produto" size="20"> </p> <p><input type="submit" value="Alterar" name="alterar"></p> </form> Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Utilização do hidden <p><strong>Exclusão de produtos</strong></p> <form method="POST" action="gerencia.php"><p> <input type="hidden" name="operacao" value="exclusao"> Código do produto: <input type="text" name="codigo_produto" size="5"><br> <input type="submit" value="Excluir" name="excluir"></p> </form> Opção Descrição name Nome do campo que será a variável value Valor do campo de name Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Utilização do hidden <?php $operacao = $_POST["operacao"]; if ($operacao == "inclusao") { // realiza a inclusão do produto echo "Produto incluído!"; } elseif ($operacao == "alteracao") { // realiza a alteração do produto echo "Produto alterado!"; } elseif ($operacao == "exclusao") { // realiza a exclusão do produto echo "Produto excluído!"; } ?> Análise e Desenvolvimento de Sistemas - UNIANDRADE Prof Mauricio Lederer Exercícios Fazer um formulário de cadastro com a seguinte aparência ... Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Exercícios E que tenha o seguinte resultado: - fazer tratamento dos dados - usar o método POST Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Exercícios Crie um form com os seguintes campos e imprima na tela as informações digitadas: Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE Exercícios Crie uma calculadora como esta: Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE