Apostila de php bรกsica Professora: Alexandra Sarandy
Estrutura
Para utilizar páginas em php é preciso primeiro instalar um servidor no seu computador ou estar cadastrado em uma hospedagem que tenha suporte para php. Você pode instar o wamp, o xamp ou o easyphp para que possa testar todas as páginas criadas no seu computador. Para digitar as páginas iremos utilizar o Dream Weaver um programa preparado para criação de páginas web.
Easy php 1. Instalando e Configurando o Easy PHP. O EasyPHP é um WAMP (pacote de soluções para Windows, Apache, MySQL e PHP) programa que instala em pequenos passos um servidor WEB Apache, um módulo para programação em PHP e o MySQL (Banco de Dados), também instala o módulo de administração de Banco de Dados phpMyAdmin. Podemos dizer que ele é um “pequeno notável”. A vantagem de sua utilização na plataforma Windows é primordialmente trababalhar com programação em PHP sem se preocupar com os passos necessários para a configuração de um servidor Apache, e servidores de Banco de Dados.
1.1. Instalação de EasyPHP Depois de realizado o download do programa, a instalação é rápida e em poucos minutos você terá a oportunidade de começar os primeiros passos no desenvolvimento de web sites dinâmicos. Passo a passo da instalação: 1. Inicie o programa de instalação easyphp1-8_setup.exe 2. Escolha o Idioma [Português] e clique em Ok, bom, a não ser que você queira outro. Gargalhada 3. Nesse momento, deve aparecer a janela do assistente de instalação (próxima figura), clique apenas no botão Seguinte.
Assistente de Instalação
4) Aceite os termos da licença e clique em Seguinte, e confirme mais uma vez clicando em seguinte. 5) Escolha o diretório de destino da instalação, eu deixei a sugerida como padrão. Depois clique em seguinte. Veja figura:
Localização de Arquivos 6) Clique em seguinte, novamente até encontrar o botão instalar e clique sobre o mesmo. Conclua a instalação. 7) Se os servidores estiverem iniciados corretamente, escreva no seu navegador web o endereço http://localhost/ nesse momento deve surgir uma página de início padrão do EasyPHP, parecida com a figura abaixo:
PS: Caso aconteça algum erro, provavelmente você já tenha um serviço Web, ou Mysql iniciado, se pretende utilizar o EasyPHP, inicie o painel de controle, acesse ferramentas administrativas, e clique duas vezes sobre o ícone serviços e pare os serviços acusados. 8) Crie uma nova pasta chamada por exemplo: aulaphp, dentro da subpasta C:\Arquivos de programa\EasyPHP1-8\www. É nesse local onde colocaremos os arquivos com extensão .php (nossos scripts da linguagem).
Nesse ponto sabemos então que tudo correu como o esperado. Descontraído
1.2. Configurando o EasyPHP Para alterar as configurações do EasyPHP aponte para o ícone do programa na barra de estado, próximo ao relógio do Windows, clique com o botão direito sobre o mesmo, aponte para configurações e em seguida EasyPHP. Conforme imagem:
FORMULÁRIO Metodo POST e método GET Quando
falamos
em
como
enviar
um
formulário,
vem
em
mente
os
métodos GET e POST, esses são os métodos utilizados para enviar um formulário. Mas quando fazemos uma requisição HTTP, nós sempre utilizamos um desses métodos, normalmente o GET. Se você digita um endereço na barra de endereço seu navegador e aperta a tecla enter (ou clica no botão ir), o navegador faz uma requisição HTTP para o servidor do endereço digitado e o método dessa requisição é o GET. Se você clica em um link em
um
site,
o
navegador
também
se
encarrega
de
fazer
um
requisição HTTP com o método GET, para buscar o conteúdo da página que você clicou. Como Funciona o Método GET O método GET utiliza a própria URI (normalmente chamada de URL) para enviar dados ao servidor, quando enviamos um formulário pelo método GET, o navegador pega as informações do formulário e coloca junto com a URI de onde o formulário vai ser enviado e envia, separando o endereço da URIdos dados do formulário por um “?” (ponto de interrogação). Quando você busca algo no Google, ele faz uma requisição utilizando o método GET, você pode ver na barra de endereço do seu navegador que o endereço ficou com um ponto de interrogação no meio, e depois do ponto de interrogação você pode ler, dentre outros caracteres, o que você pesquisou no Google. Quando Utilizar o Método GET Você deve utilizar o método GET sempre que a requisição que você faz não altere o estado do servidor, tipo uma consulta, uma busca ou qualquer outra coisa que, além de não alterar o estado do servidor, também possa sempre reproduzir os mesmos resultados quando fizer a mesma requisição e for passado os mesmos parâmetros para esta requisição. Voltando ao exemplo do Google, na ferramenta de busca dele, quando a busca é feita, ele deixa aURI toda na barra de endereço do navegador, você pode, por exemplo, copiar essa URI e mandar para alguém, dizendo para ele acessar o terceiro item da busca, e se esse alguém acessar essa mesma URI, vai achar o mesmo terceiro item que você indicou, quantas vezes for necessário (lógico que de tempos em tempos, o Google atualiza as posições das páginas). O nome dado ao comportamento de quando você deve utilizar o GET é idempotente, que nada mas é do que já o explicado acima: uma requisição idempotente deve retornar a mesma coisa não importa quantas vezes ela é feita, ou seja, deve ter sempre
os
mesmos
efeitos
colaterais,
não
importando
quantas
requisições idempotentes são feitas. Requisição com o método GET pode ter seu retorno cacheados (armazenados em cache), pois não se alteraria o retorno se fizéssemos uma mesma requisição GET. Isso pode causar um erro comum, que se você precisar sempre que as
requisições GET cheguem ao servidor, elas podem não chegar sempre que uma requisição é feita, pois se estiver no cache de algum proxy ou do seu navegador, o retorno pode vir antes de chegar no servidor. Se você precisa que uma requisição chegue sempre no servidor, não utilize GET. O método GET ainda pode ter limitações quanto ao tamanho dos dados a serem enviados e também ao que pode ser enviado. Quanto ao tamanho, pode-se ter uma restrição ao tamanho da URI que pode ser enviada em um requisição, e se seus dados ultrapassarem esse tamanho, provavelmente ocorrerá um erro, ou seus dados vão ser passados incompletos. Quanto ao que pode ser enviado, como os dados vão ser enviados pela URI, só poderão ser enviados caracteres aceitos na URI, se você quer enviar dados binários (como arquivo, imagens e outros), não poderá usar GET. Como Funciona o Método POST O método POST envia os dados colocando-os no corpo da mensagem. Ele deixa a URI separada dos dados que serão enviados e com isso podemos enviar qualquer tipo de dados por esse método. Quando você faz um registro em um formulário e depois de enviar a URI não tem o ponto de interrogação separando os dados que você digitou, provavelmente o formulário foi enviado pelo método POST. Quando Utilizar o Método POST Utilizamos o método POST sempre que vamos alterar alguma coisa no servidor, ou sempre que queremos enviar dados que não podem ser enviados pelo método GET, como arquivos. Esse método é utilizado em formulário de cadastro e registro de usuários, envio de dados para alteração do sistema, cadastro de dados em sistemas de sites e outros. O
retorno
de
uma
requisição
com
método POST normalmente
não
deve
ser cacheada (armazenada em cache) então se você quiser que uma requisição sempre chegue ao servidor quando ela for feita, utilize POST. A diferença é simples, sempre que for buscar ou apenas consultar alguma coisa, utilize GET e se for fazer alguma alteração com a requisição, envio de arquivo ou os dados forem muitos, utilize POST. Diferenças no Lado do Servidor entre GET e POST (PHP, CGI)
Enviar dados pelo método GET e POST é diferente, então, o servidor pega esses dados de diferentes maneiras. No PHP, quando enviamos dados pelo método GET, ele cria um array identificado por $_GET, que contém todos os dados enviados por esse método. Quando enviamos os dados pelo método POST, oPHP cria um array identificado por $_POST, também com todos os dados enviados por esse método. Já em um script CGI, quando utilizamos o método GET, os dados são recebido em uma variável de ambiente, e com o método POST, os dados são recebidos pela entrada padrão (stdin).
Entendendo formulários Os formulários são muito utilizados em códigos php para que possamos fazer envio e manipular dados. Eles são criados dentro da tag <body> e devem ser abertos e fechados, o que possibilita a inserção de vários formulários em um mesmo código HTML. Além de enviar dados para o banco de dados para fazer um cadastro, por exemplo, com o formulário também podemos criar salas de bate-papo,
livros de visitas,
enquetes e muito mais. Todo Formulário HTML é composto por controles que podem ser “Botões”, “Caixas de Textos”, “Caixas de Senha”, etc. São diversos tipos de controles que podem ser utilizados. A imagem abaixo mostra um exemplo de Formulário HTML e uma legenda que informa o nome de cada controle e a Tag usada para exibi-lo:
A Tag de Formulário <form>
A Tag <form> serve para informar o início e o término de um formulário, ou seja, é necessário que todos os controles do formulário fiquem posicionados entre a abertura e o fechamento da Tag <form> para que os dados sejam enviados corretamente.
A estrutura é a seguinte: <form> Os controles devem ser adicionados aqui </form> A Tag <form> possui dois parâmetros importantes: action e method. O primeiro serve para informar o arquivo que irá processar as informações enviadas pelo formulário. Já o segundo serve para informar o método de envio de informações. Para entender melhor esses parâmetros, observe a estrutura alterada: <form action="envia-formulario.php" method="post"> Os controles devem ser adicionados aqui </form> Utilizamos o parâmetro action para informar que os dados do formulário devem ser processados pelo arquivo envia-formulario.php que esta localizado no mesmo diretório do arquivo do formulário. O arquivo normalmente possui extensão de alguma tecnologia que roda no Servidor Web como: “.php”, .”asp”, “.aspx”, “.jsp”, etc. Isso porque a Linguagem HTML não é capaz de processar esses dados. No post Aprenda a receber dados de Formulário com PHP, como o próprio título diz, explico como a Linguagem PHP recebe dados de um formulário. Depois, explicarei o mesmo em outras tecnologias.
Já no parâmetro method, informamos que as informações devem ser enviadas pelo método post, ou seja, pelo corpo do documento. Poderíamos ter atribuído o valor get ao parâmetro method. Assim, os valores preenchidos nos campos do formulário seriam enviados pela Barra de Endereços do Navegador. Devemos ter cuidado ao utilizar o método get pois as vezes não queremos que algumas informações sejam exibidas na Barra de Endereços (como senha por exemplo). Caixa de Texto A Tag <input> é uma Tag Vazia usada para criação de vários tipos de controle. A Tag <input> normalmente vem acompanhada do parâmetro type que, como o próprio nome já diz, serve para informar o tipo de controle que desejamos criar. No nosso caso, como desejamos criar uma Caixa de Texto, o parâmetro type deve ser definido como text. Além disso, devemos definir um nome para nossa Caixa de Texto utilizando o parâmetro name. Esse nome será usado pelo arquivo que irá receber e processar os dados do formulário. Segue a estrutura: <input type="text" name="email" /> Caixa de Senha Agora fica fácil entender como criar uma Caixa de Senha, pois a estrutura é praticamente a mesma usada para criar uma Caixa de Texto. A única diferença é que o parâmetro type deve ser definido como password conforme abaixo: <input type=”password” name=”senha” /> Existem parâmetros da Tag <input> que funcionam apenas com determinados tipos de controle, ou seja, de acordo com o valor do parâmetro type. Conheça alguns
parâmetros que podemos utilizar quando o valor do parâmetro type é igual a text ou password: Parâmetro size
Descrição
Exemplo
Define a largura da Caixa de Texto em número de caracteres
<input
type="text" name="email" size="50" /> maxlength
Define o numero máximo de caracteres que a Caixa de Texto suporta
<input type="text" name="estado" maxlength="2" /> value Define o valor padrão da caixa de texto
<input type="text" name="estado"
value="RJ" /> Botões de Envio e Reset O Botão de Envio serve para submeter os dados a um arquivo que será responsável pelo processamento. Esse arquivo deve ser definido no parâmetro action da Tag <form>. Já o Botão de Reset serve para recarregar o formulário, fazendo com que ele fique com seu aspecto inicial (antes do preenchimento). Para criar um Botão de Envio e um Botão de Reset também utilizamos a Tag <input>. No entanto, os valores dos parâmetros type devem ser definidos como submit e reset respectivamente. Além disso, devemos definir o parâmetro value em ambos os botões para informar os textos que devem ser exibidos neles. Veja uma amostra de código: <input type="submit" value=”Enviar” /> <input type="reset" value=”Cancelar” /> Para finalizar, vamos criar um Formulário de Login simples: <html>
<head> <title>Formulário de Login</title> </head> <body> <h1>Formulário de Login</h1> <form method="post" action="efetuar-login.php"> E-mail:<br /> <input type="text" name="email" /> <br /><br /> Senha:<br /> <input type="password" name="senha" /> <br /><br /> <input type="submit" value="Efetuar Login" /> <input type="reset" value="Cancelar" /> </form> </body> </html> OBS: Quando inserimos no formulário um input devemos nos preocupar em fazer com que o nome do input seja o mesmo nome que está no atributo criado no banco de dados, pois é através destes nomes que o vinculo dos dados acontecem. Agora que já entendemos como
funcionam os campos dos formulários vamos
começar a entender como funciona o nosso código php.
Linguagem PHP Interação com usuário O php nos da a possibilidade de transformar sites estáticos, que não possuem nenhum tipo de interação, em sites dinâmicos, com maior possibilidade de interação e dinamismo. Por exemplo, com páginas estáticas não podemos ter uma sessão de comentários em nosso site, em que ao terminar de ler um artigo a pessoa preencha um campo no formulário e deixar sua opinião e no mesmo estante a sua opinião estar no site, coisas que podemos realizar com o PHP e um banco de dados. Assim como o HTML o php é iniciado através de tags que são representadas pelo sinal de < e > e pelo ponto de interrogação.
<?php AQUI FICA A PROGRAMAÇÃO ?> Geralmente no programa dream Weaver o inicio e o final das tags php ficam na cor vermelha, se não tiver na cor vermelha é importante verficar a maneira como foi salvo o documento. Vamos agora fazer o nosso primeiro exemplo em php: <html> <head> <title>PHP Teste</title> </head> <body> <?php echo "<p>Olá Mundo</p>"; ?>
</body> </html> Observe que dentro das tags phps temos o echo que é um parâmetro utilizado para que os dados sejam apresentados para o usuário ao acessar o provedor de acesso. Agora vamos fazer a nossas primeiras páginas php interagindo página HTML com php. CÓDIGO PARA IMC ( ÍNDICE DE MASSA CORPOREA) Este código está sendo enviado por método get, ou seja alguns dados são apresentados na url do seu navegador. Vamos colocar em pratica para verificar o que acontece. Primeiro vamos fazer a página índex.php
<!doctype html> <html> <head> <meta charset="utf-8"> <title>Calculadora IMC</title> <link href="enc/estilo.css" rel="stylesheet" type="text/css"> </head> <body> <div id="content"> <div id="logo"> </div> <div id="calculadora"> <form name="calc" method="get" enctype="multipart/form-data" action="resultado.php" class="form"> <fieldset class="f"> <label> <span class="span">Seu Peso</span> <br/> <input type="text" name="peso" class="in" /> </label> <br /> <label> <span class="span">Sua Altura (Use Pontuação: 1.99 Em METROS)</span>
<br/> <input type="text" name="altura" class="in"/> </label> <input type="submit" name="envia" value="IMC!" class="btn"> </fieldset> </form> </div> </div> </body> </html>
Agora vamos fazer a página que irá apresentar o resultado na tela. <?php $peso = $_GET['peso']; // pega o nome do input do html $altura = $_GET['altura']; // pega o nome do input do html $conta1 = $altura*$altura; // faz o calculo da altura $conta2 = $peso/$conta1; // faz o calculo do peso $resultado = number_format($conta2); // variável que retorna o resultado if(isset($resultado) && $resultado != '0'){; echo '<h1>Seu IMC é:</h1>'; echo '<h2>'.$resultado.'</h2>'; }else{ echo '<h1>Por favor, utilize apenas numeros!</h1>'; } ?>