Livro - Web II
Livro - Web II
academy of art
WEB II
WEBII
INDICE
Capitulo 4- Operadores............................................................32
Capitulo 5- Funções..................................................................39
Capitulo 6- Formulários.............................................................46
INTRODUÇÃO AO PHP
Uma das melhores habilidades do PHP é lidar com bancos de dados de uma forma
fácil. Hoje em dia os sistemas para Web estão cada vez mais usufruindo das
capacidades magníficas que os bancos de dados podem oferecer.
O MySQL é um banco de dados simples, rápido e eficiente para se trabalhar com
sistemas Web. Nos capítulos adiantes estaremos estudando melhor o MSQL e
entendendosuas aplicações juntamente com o PHP.
O QUE É O APACHE?
Toda vez que você acessa um site, uma requisição é enviada ao servidor em que o
site está rodando, este por sua vez realiza algum processamento baseado nestas
requisições e responde à solicitação com algum serviço. Um servidor é um computador
disponibilizado em uma rede com o objetivo de prover serviços para outros hosts. No
caso de sites estamos falando do servidor Web.
O servidor Apache ou Servidor HTTP Apache é o servidor web mais utilizado do mundo
pag.1
Capitulo 1- Introduções ao PHP WEB II
pag.2
O Apache é o servidor mais popular da web, foi criado em Abril de 1996 com o intuito de
ser um servidor HTTP gratuito para sistemas UNIX e Windows. O objetivo do projeto é de
fornecer um servidor seguro, eficiente e extensível que forneça serviços de HTTP em
sincronia com os padrões HTTP.
O intuito desse post é de tonar você capacitado a instalar o Apache, o PHP, o MySQL, e
o phpMyAdmin no Windows 7, Vista ou XP sem a utilização desses sistemas prontos,
como o WampServer, XAMPP, PHP Triad. A vantagem de instalar tudo separado é que
você não fica sujeito as configurações que os programas já impõem, ou muitas vezes
podem até não funcionar corretamente como deveriam.
INSTALAÇÃO DO APACHE
Crie uma pasta chamada Webserver,( você pode instalá-lo onde quiser, se quiser seguir
a minha lógica basta criar uma pasta chamada Webserver na raiz do seu HD), ficando da
seguinte forma: C:\Webserver. Após incie o instalador do Apache, a primeira tela de
instalação é semelhante a essa:
Capitulo 2- Instalação de Servidores WEB II
Basta seguir os passos, e você irá chegar a seguinte tela de configuração. Aqui é onde
iremos efetuar algumas configurações do servidor, basta preencher o primeiro campo
com o valor localdomain, o segundo campo com localhost e o terceiro um e-mail que
desejar.
É recomendável que você deixe o Apache rodando na porta 80, não que isso seja
obrigatório, você pode alterar caso queira. Basta após clicar em Next:
pag.4
Capitulo 2- Instalação de Servidores WEB II
pag.5
Capitulo 2- Instalação de Servidores WEB II
.
Se você ao acessar localhost em seu browser e ele ficar buscando o servidor, abrir uma
página de busca, ou até mesmo retornar Servidor não encontrado, atente-se se o Apache
está rodando corretamente e o mesmo foi iniciado. Se você efetuou esses passos e
mesmo assim ele não está funcionando, instale-o novamente seguindo os passos acima
que o problema pode ser resolvido.
Até agora nosso servidor lê somente HTML puro. Porém, é diferente a forma de acesso
do endereço “http://localhost/index.html” de “C:\Webserver\Apache2.2\htdocs\index.html”.
No primeiro caso, o navegador solicita a página ao servidor “localhost” (que é o seu
computador), recebe a página do servidor, armazena a mesma no cache, e só depois
então a exibe. Ele trata como se fosse um site que estivesse realmente hospedado em
algum servidor da Internet. Como o servidor do site está no seu próprio PC, trata-se então
de uma Intranet. No segundo caso, você está acessando o arquivo diretamente do seu
HD. O navegador pode até armazenar algum dado no cache, mas não há nenhuma
comunicação com qualquer servidor. Ele lê o arquivo como qualquer programa leria
qualquer arquivo.
DirectoryIndex index.html
E substituir a mesma por:
pag.6
DirectoryIndex index.html index.php
Se tudo ocorreu bem até aí, nenhuma mensagem de erro será exibida.
Basta agora você reiniciar o Apache e as páginas .php serão
processadas e entregues
pag.8
Capitulo 2- Instalação de Servidores WEB II
CONFIGURAÇÃO DO PHP
A configuração do PHP envolve a edição do arquivo php.ini, na pasta onde o PHP for
instalado, portanto, mãos a obra. Uma configuração útil é a ativar o uso de delimitadores
< ? ... ?>, muito usados por serem mais simples. No arquivo php.ini, localize a linha que
começa com short_open_tag e troque seu valor Off para On (Fique atento as letras
maiúsculas e minúsculas). Ela deve ficar dessa forma:
short_open_tag = On
Caso você deixe Off, scripts PHP que iniciem com <? não serão identificados, somente
os scripts que inciem com <?php funcionarão.
Permitir estilo ASP asp_tags = On
Ative este item apenas se você gostar de usar as tags no estilo ASP, como em <% … %>,
caso contrário, pode deixar desativado.
Habilitar a exibição de erros
display_errors = On
Por questões de segurança esse item vem com valor Off.
Sua função é a de imprimir erros de sintaxe ou
funcionamento do PHP na página. Por questões de
segurança, é bom deixá-lo em Off, pois entre as
mensagens de erros muitas vezes vêm nomes de
arquivos, caminhos locais, e até a senha do banco de
dados, se tiver algum erro de sintaxe justamente na
declaração da mesma.
Mas em contrapartida, para aprender PHP, é recomedável
deixá-lo em On.
pag.9
Capitulo 2- Instalação de Servidores WEB II
pag.10
Capitulo 2- Instalação de Servidores WEB II
pag.11
Capitulo 2- Instalação de Servidores WEB II
pag.12
Capitulo 2- Instalação de Servidores WEB II
pag.13
Capitulo 2- Instalação de Servidores WEB II
pag.14
Capitulo 2- Instalação de Servidores WEB II
INSTALAÇÃO DO PHPMYADMIN
Se você quiser pular esse passo de toda vez ao acessar o PhpMyAdmin ter de se logar,
basta fazer o seguinte. Na pasta do mesmo abra o arquivo config.sample.inc.php e o
renomeie para config.inc.php. Agora basta substituir a linha $cfg['Servers'][$i]['auth_type']
= ‘cookie'; por:
$cfg['Servers'][$i]['user'] = ‘root';
$cfg['Servers'][$i]['password'] = ‘ ‘; // Digite aqui a senha de root
$cfg['Servers'][$i]['auth_type'] = ‘config';
Pronto, agora toda vez ao acessar o PhpMyAdmin ele irá pular a tela de autenticação
pois o usuário e senha já estão cadastrados no arquivo de configuração.
pag.15
INSTALANDO SERVIDOR NO LINUX
Para começar vamos abrir o nosso terminal e digitar o seguinte comando para instalar
o apache e o PHP
Abra o terminal: CTRL+ATL+T
Execute o comandos abaixo pra adicionar o ppa's do Apache e do PHP:
1.
sudo add-apt-repository ppa:ondrej/php5
2. sudo add-apt-repository ppa:ondrej/apache2
Após, execute:
CONFIGURANDO O APACHE
1. DocumentRoot /var/www
1. <Directory /seu/diretorio/aqui>
2. Options Indexes Includes FollowSymlinks ExecCGI
3. Require all granted
4. IndexOptions +FancyIndexing
5. Order allow,deny
6. Allow from all
7. DirectoryIndex index.html index.htm default.htm index.php
8.
</Directory>
Pra testar se tudo está funcionando, navegue até a pasta que você escolheu para o
Apache, no meu caso:
1. cd ~/workspace
1. touch info.php
2. vim info.php
pag.17
Capitulo 2- Instalação de Servidores WEB II
http://localhost
Aguarde carregar e então clique no arquivo info.php.
E deverá aparecer algo parecido com a imagem abaixo (pois sua versão pode ser
mais recente que a minha, etc):
pag.18
Capitulo 2- Instalação de Servidores WEB II
onfigurando o mod_rewrite
O mod_rewrite é o módulo responsável pela reescrita de URLs no Apache. Ele que
permite o usúario dizer que a url http://www.meusite.com.br deve carregar a url
http://www.meusite.com.br/novo_site.php. Então, vamos configurá-lo!
E digite o seguinte:
Abra seu browser, e digite: http://localhost/info.php. Após carregar, procure por rewrite
e você deverá ver algo assim:
pag.19
Capitulo 2- Instalação de Servidores WEB II
Lembrando que: para que o .htaccess funcione como esperado, ele deve estar
com a permissão 644:
Configurando o PHP
1. display_errors = On
Verifique se a opção file_uploads está com o valor On, caso contrário, altere
para On.
1. file_uploads = On
1. upload_max_filesize = 2M
Na opção abaixo, você define a quantidade máxima de arquivos que pode ser
enviado em uma única requisição
pag.20
1. max_file_uploads = 20
Capitulo 2- Instalação de Servidores WEB II
Instalando Extensões
Para instalar as extensões abaixo faça o seguinte:
Lista de Extensões
php5-gd: Responsável por manipular imagens (corte, redimensionamento, etc)
1. php5-intl: Internacionalização.
Para ter uma lista completa das extensões disponíveis pra você, digite o seguinte no
seu terminal:
pag.21
Capitulo 2- Instalação de Servidores WEB II
Então, basta verificar qual você deseja, e instalar: sudo apt-get install php5-extensao-
que-eu-quero e pronto!
O instalador irá te pedir a senha desejado para o MySQL, então digite a desejada e
prossiga com a instalação.
No final, o MySQL será iniciado automaticamente.
Instalando o PHPMyAdmin
Execute o comando abaixo:
Como nós instalamos acima o Apache, basta pressionar enter e prosseguir com a
instalação.
VARIÁVEIS NO PHP
Em termos práticos variáveis são estruturas de dados que podem ser modificadas em
tempo de execução do código. Ou seja, você pode iniciar a variável em uma parte do
código, e depois de atribuir outro valor a esta variável.
Confira um exemplo de como funciona a tipagem dinâmica de variáveis no PHP:
<?php
$var = 'texto';
echo gettype($var);
// Resultado: string
$var = 123;
echo gettype($var);
// Resultado: integer
?>
<?php
$var = 'válido';
$_var = 'válido';
$1var = 'inválido'; // Erro de sintaxe
?>
<?php
${'123'} = 456;
echo ${'123'};
// Resultado: 456
?>
pag.24
Capitulo 3- Variáveis e Constantes do PHP WEB II
Desta forma podemos utilizar qualquer nome identificador, passando uma string
envolvida por chaves { }, o que faz o PHP interpretar o identificador como uma
string, sem se preocupar com a real nomenclatura da variável.
Função isset($variavel)
Está função verifica se uma variável já foi inicializada, retonando true caso o valor
da variável seja diferente de null.
<?php
$foo = 'bar';
$baz;
isset($foo);
// Resultado: true
isset($baz);
// Resultado: false
?>
Utilizar uma variável que não foi inicializada gera um erro, “Undefined variable $var”,
mesmo que seu ambiente não esteja configurado para mostrar este tipo de erro é
recomendado verificar com a função isset($var) se a variável que será utilizada está
realmente inicializada.
Função empty($variavel)
<?php
$foo = 'bar';
$baz = null;
empty($foo);
// Resultado: false
empty($baz);
// Resultado: true
?>
pag.25
Capitulo 3- Variáveis e Constantes do PHP WEB II
O recurso de variáveis por referência no PHP permite que duas ou mais variáveis se
refiram ao mesmo conteúdo armazenado em um bloco de memória, veja um
exemplo abaixo:
<?php
$a = 2;
$b = $a;
$c = &$a;
// ou $c =& $a;
$c = 4;
echo $a;
// Resultado: 4
?>
No exemplo acima iniciamos uma variável $a com o valor de tipo inteiro 2, logo em
seguida iniciamos a variável $b recebendo como valor uma cópia da variável $a,
depois iniciamos a variável $c recebendo a referência( & ) da variável $a, nesse
momento nós temos duas variáveis apontando para o mesmo espaço de memória,
ou seja, ambas variáveis($a e $c) fazem referência ao mesmo espaço de memória,
que nesse caso guarda o valor inteiro 2, em seguida definimos que a variável $c irá
receber o valor de tipo inteiro 4, ao realizar essa operação estamos alterando
indiretamente o valor da variável $a, que faz referência ao mesmo espaço de
memória, por isso que quando imprimirmos a variável $a o resultado será 4.
No PHP é possível criar o que chamamos de variáveis variáveis, que nada mais é
do que uma variável utilizar o conteúdo de outra variável para formar seu identificador.
<?php
$var = 'escola';
$$var = 'polly';
echo $var;
// Resultado: polly
<?php
$teste = 123;
$$teste = 456;
echo ${'teste'};
// Resultado: 123
echo $123; // Erro de sintaxe
Neste caso não podemos resgatar o valor chamando a variável $123, pois se trata
de uma variável com nome identificador inválido.
FUNÇÕES VARIÁVEIS
Um recurso parecido com variáveis variáveis, mas ao invés de gerar uma nova
variável a partir do conteúdo de outra, este permite que seja executado uma função
utilizando o conteúdo de uma variável, observe no exemplo abaixo.
<?php
function Escola(){
echo 'Estou Polly';
}
$var = 'escola';
$var();
// Resultado: Escola Polly
?>
Por mais que os recursos variáveis variáveis e funções variáveis aparetam ser legais,
tente limitar seu uso, pois além de deixar o código difícil de entender, pode causar
falhas na segurança do seu script dependendo da forma em que for utilizado.
Constantes
Ao contrário das variáveis, as constantes são definidas como valores imutáveis,
ou seja, uma vez definida, uma constante não pode mudar de valor. Constantes
podem ser acessadas de qualquer lugar do script, ou seja, são globais, entretanto
só podem conter valores escalares. Assim como as variáveis, são case-sensitive
e também seguem as mesmas regras para o nome de seus identificadores, com
exceção do símbolo do dólar($). É recomendado que sempre se declare constantes
com nomes identificadores em uppercase, letras maiúsculas, para facilitar sua
identificação.
Para criar uma constante no PHP, precisamos utilizar a função nativa define
($identificador, $valor), passando dois parâmetros, o nome identificador da
constante e seu valor.
<?php
define('ESCOLA', 'Escola Polly');
echo ESCOLA;
// Resultado: Escola Polly
?>
pag.28
Capitulo 3- Variáveis e Constantes do PHP WEB II
CONSTANTE PHP
<?php
class foo {
const BAR = 'BAZ';
}
echo foo::BAR;
Para entender quais são as diferenças entre define e const e onde cada uma deve
ser aplicada, de uma olhada neste tópico define() vs const.
Função defined($identificador) – Verifica se uma constante já foi definida, retornando
true ou false, semelhante a função isset($variavel).
<?php
$var = 'USER';
$type = 'TYPE';
define($var, 'Francisco Luciano');
defined($var);
// Resultado: true
defined($type);
// Resultado: false
?>
<?php
$var = 'USER';
define($var, 'Polly');
if(defined($var)){ pag.29
echo constant($var);
Capitulo 3- Variáveis e Constantes do PHP WEB II
}
else {
echo 'Visitante';
}
?>
O PHP oferece um grande número de constantes pré-definidas, a maioria dessas
constantes, entretanto, são criadas por várias extensões e somente estarão
presentes quando essas extensões estiverem disponíveis, por carregamento
dinâmico ou por compilação direta.
Além das constantes pré-definidas, o PHP oferece algumas constantes falsas, que
são denominadas constantes mágicas, eu digo falsa, porque seu valor não será
sempre o mesmo, seu valor dependerá de onde ela está sendo utilizada, parece
um pouco confuso mas depois de conferir o exemplo abaixo isso ficará um pouco
mais claro.
<?php
echo __LINE__ . PHP_EOL;
// comentário simples
echo __LINE__ . PHP_EOL;
// Resultado:
// 2
// 4
?>
Conseguiu entender? simplesmente a constante mágica __LINE__ retorna um valor
inteiro representando a linha do script onde a constante está inserida.
pag.30
Capitulo 3- Variáveis e Constantes do PHP WEB II
EXERCÍCIO
<?
//Anuncio
echo "Minha primeira pagina!";
echo "<br>";
//Informativo
//Data
$datahoje = date("d") . '-' . date("m") . '-' . date("Y");
echo "Hoje, dia '$datahoje' estamos inaugurando nossa primeira página !";
echo "<br>";
//Calculadora Polly
//Variaveis
$num1= 5;
$num2= 10;
echo "Veja as funcionalidades de nossa calculadora!";
echo "<br>";
echo "Com apenas dois números: '$num1' e '$num2' ela é capaz de fazer:";
$soma= $num1+$num2;
$subtrai= $num1-$num2;
$divide= $num2/$num1;
$multiplica= $num1*$num2;
OperadorFunçãoExemplo
+Adição$a + $b
-Subtração$a - $b
*Multiplicação$a * $b
/Divisão$a / $b
%Módulo (resto da divisão)$a % $b
Veja um exemplo com os operadores aritméticos.
A partir deste ponto não irei incluir todos os elementos necessários para uma
página HTML bem formatada de acordo com o W3C, apenas incluirei os códigos
PHP, por ser o foco de nosso estudo, caso ainda tenha alguma duvida sobre a
integração PHP e HTML visite a página Começando a programar em PHP.
<?php
// Declarando os valores das variáveis
$a = 4;
$b = 2;
?>
<h2>Adição</h2>
<p>
<?php
echo $a + $b;
?>
</p>
<h2>Subtração</h2>
<p>
<?phpecho $a - $b;
?>
</p> pag.32
Capitulo 4- Operadores WEB II
<h2>Multiplicação</h2>
<p>
<?php
echo $a * $b;
?>
</p>
<h2>Divisão</h2>
<p>
<?php
echo $a / $b;
?>
</p>
<h2>Módulo(resto da divisão)</h2>
<p>
<?php
echo $a % $b;
?>
</p>
Observe que o módulo deu zero, pois utilizamos uma operação em que a divisão
em que não tinha resto. Veja agora um exemplo em que nossa divisão gera resto.
<?php
// Declarando os valores das variáveis
$a = 5;
$b = 2;
?>
<h1>Valores</h1>
<p>$a possui o valor de <strong><?php echo $a; ?></strong> e $b possui o valor
de <strong><?php echo $b; ?></strong></p>
<h2>Módulo(resto da divisão)</h2>
<p>
<?php
echo $a % $b;
14
?>
</p>
<?php
// Declarando o valor de a com uma simples expressão
$a = 5 + 3;
echo $a; //imprime 8
?>
<br />
<?php
// Atribuimos o valor de 2 a variavel $c e somamos com
// 5 para ser o valor de b
$b = ( $c = 2 ) + 5;
echo $b; //imprime 7
?>
<br />
<?php
echo $c; //imprime 2
?>
<?php
// Declarando o valor de a
$a = 5;
// Atribuindo e somando 3 em $a
// ou seja $a = 5 + 3;
$a += 3;
echo $a //imprime 8
?>
Definimos o valor de $a com utilizando o operador de atribuição e adição em
conjunto. No entanto observe o exemplo a seguir:
<?php
// Declarando o valor de a
$a = 5;
// Redeclarando o valor de a
$a = 3;
echo $a //imprime 3
// Caso quisessemos somar 3 a $a poderiamos utilizar
// $a = 3
// $a += 5;
//
// Ou ainda
// $a = 5 + 3;
?>
Neste exemplo declaramos $a e em seguida a redeclaramos, não confundir este
comportamento ao tentar utilizar os operadores de atribuição em conjunto com os
operadores aritméticos. Pois como vimos podemos atribuir valores utilizando os
operadores aritméticos ou com operadores de atribuição em conjunto com os
operadores aritméticos.
$texto .= $titulo;
echo $texto;
?>
<?php
$a = 10;
$b = $a++; // Primeiro $a é atribuido a $b para só então ser incrementada
$a++;
echo '$a = ' . $a . ' | $b = ' . $b;
?>
<?php
$a = 10;
$b = ++$a; // Primeiro $a é incrementada e só depois é atribuido a $b
++$a;
echo '$a = ' . $a . ' | $b = ' . $b;
?>
Atribuímos o valor de ++$a a variável $b, no entanto como no pré incremento/
decremento primeiro ocorre o incremento/decremento em seguida retorna o
valor para $b, que ficou com o valor de $a inicial incrementado, ou seja 11
, e $a foi incrementada novamente ficando com o valor de 12.
pag.36
Capitulo 4- Operadores WEB II
<?php
$a = 10;
4
$b = -$a; // Inverte o sinal de $a e atribui a $b
echo '$a = ' . $a . ' | $b = ' . $b;
?>
Como você pode observar apenas alterou o sinal de positivo para negativo, o
inverso também é possível.
Fique agora com uma tabela para uma consulta caso tenha duvida nos operadores
de incremento e decremento.
<?php
// Criamos a variável $
$b = 'Estamos aprendendo sobre';
// Atribuimos por referência o valor de $b a $a,
// ou seja, ambas agora possuem o mesmo valor
$a = &$b;
// Altero o valor de $a concatenando o com uma string
// caso não tenha entendido a concatenação volte a operadores de string
$a .= ' Atribuição por referência no PHP';
// Exibo $a e $b pulando linhas para melhor vizualização
pag.37
Capitulo 4- Operadores WEB II
echo $a;
echo '<br />' . PHP_EOL;
echo $b;
echo '<br />' . PHP_EOL;
// Alterei o valor de $b e como $b foi atribuido por referência a $a
// agora quando altero $b o valor de $a muda também
$b = 'Alterei o valor de $b e sabia que o de $a muda também?';
echo $a;
echo '<br />' . PHP_EOL;
echo $b;
?>
Exercício
2-Crie um arquivo em PHP que receba o nome do usuário, ano atual e o ano de seu
nascimento faça o cálculo para descobrir sua idade e exiba a seguinte mensagem:
Olá (nome do usuário) você nasceu em (ano de nascimento) e tem (idade) anos.
3-Crie um arquivo em PHP que calcule a média de um aluno de acordo com 4 notas
recebidas.
pag.38
Capitulo 5- Funções WEB II
FUNÇÕES
pag.39
Capitulo 5- Funções WEB II
As funções podem ser classificadas quanto ao seu retorno como vazias (void) ou
com retorno. As funções void ou sem retorno apenas executam uma série de
comandos sem a obrigação de devolver um valor específico como resultado. Já as
funções com retorno, ao serem executadas, resultam diretamente em um dado
valor que, no PHP, não tem tipo definido.
A seguir são apresentados alguns exemplos que demonstram a utilização desses
conceitos, além de mostrar como utilizar as funções após sua definição.
function exibir_mensagem()
{
echo "Olá\n";
echo "Seja Bem Vindo(a)!"
}
Listagem 3: Função com parâmetro e sem retorno
function exibir_mensagem($nome)
{
echo "Olá\n";
echo $nome
}
Listagem 4: Invocando uma função sem retorno
<?php
//definição da função
function exibir_mensagem($nome)
{
echo "Olá\n";
echo $nome;
}
//chamando a função
exibir_mensagem("Joel Rodrigues");
?>
A chamada à função sem parâmetro é ainda mais simples, bastaria não informar
nenhum valor entre parênteses.
pag.40
Capitulo 5- Funções WEB II
<?php
//definição da função
function dia_atual()
{
$hoje = getdate();
switch($hoje["wday"])
{
case 0:
return "Domingo";
break;
case 1:
return "Segunda";
break;
case 2:
return "Terça";
break;
case 3:
return "Quarta";
break;
case 4:
return "Quinta";
break;
case 5:
return "Sexta";
break;
case 6:
return "Sábado";
break;
}
}
//chamada à fução
$dia = dia_atual();
echo $dia;
?>
<?php
//definição da função
function somar($numA, $numB)
{
return $numA + $numB;
}
$resultado = somar(1,2);
echo $resultado;
?>
Como vimos, o resultado das funções pode ser utilizado facilmente atribuindo-se
seu valor a uma variável. Pode-se ainda utilizar o retorno diretamente, por exemplo,
como argumento de outra função como somar(somar(1,2), somar(3,4)).
Acesso a variáveis
Um ponto cujo entendimento é fundamental quando se trabalha com funções é o
acesso e manipulação de variáveis nesse tipo de estrutura de código. É importante
ter em mente duas definições ou classificações de variáveis: GLOBAL e LOCAL.
As variáveis locais são aquelas declaradas no corpo da função e só podem ser
acessadas dentro desta. Este tipo de variável é utilizado para realizar cálculos e
outros processamentos internos da função, sendo alocadas e liberadas durante
sua execução.
A seguir é mostrado um exemplo de utilização de variável local em uma função.
<?php
function par_ou_impar($num)
{
$resto = $num % 2;
if($resto == 0)
return "PAR";
else
return "IMPAR";
}
//fora da função não é possível acessar a variável $resto
?>
pag.42
Capitulo 5- Funções WEB II
A função “par_ou_impar” usa uma variável local “$resto” para armazenar o resto da
divisão do número recebido como parâmetro por dois. Se o resto da divisão for
igual a zero, isso indica que o número é par, caso contrário, é impar.
As variáveis globais, por sua vez, podem ser acessadas a partir de qualquer ponto
do código e são usadas para armazenar informações que precisam ser utilizadas
por várias funções distintas ou acessadas diretamente.
No exemplo da Listagem 8, existe uma variável “$saldo” que é acessada por duas
funções: “depositar” e “sacar”. Se a qualquer momento for preciso obter o valor
dessa variável (ou alterá-lo), bastaria acessá-la diretamente
.
UTILIZAÇÃO DE VARIÁVEL GLOBAL
Por fim, é preciso citar um tipo especial de variável local, as variáveis ESTÁTICAS.
Esse tipo de variável, apesar de ser declarado dentro do corpo da função, não é
descartado após a execução desta. Para definir uma variável como estática é
utilizada a palavra reservada static antes do nome da mesma no momento de sua
declaração.
O funcionamento dessas variáveis é semelhante ao das globais, com a diferença
que as estáticas são acessíveis apenas dentro da função, mesmo tendo seu valor
mantido entre as execuções.
<?php
function depositar($valor)
{
static $total_depositos;
$total_depositos++;
$saldo += $valor;
echo "Foram feitos ".$total_depositos." depósitos.";
}
function sacar($valor)
{
static $total_saques;
$total_saques++;
$saldo -= $valor;
echo "Foram feitos ".$total_saques." saques.";
}
?>
pag.43
Capitulo 5- Funções WEB II
PASSAGEM DE PARÂMETROS
Um dos principais conceitos relacionados aos de parâmetros para funções está na
forma como os argumentos são passados. A passagem de parâmetros pode ser feita
de duas formas: POR VALOR e POR REFERÊNCIA.
Estas informações são realmente relevantes quando passamos variáveis como
argumentos para funções, pois definem a forma como essas variáveis são tratada
no corpo do método.
Na passagem por valor (que é a forma padrão), quando se passa uma variável
como argumento para uma função, é feita uma cópia interna dessa variável, a
qual é acessada e modificada durante a execução. Após o término da função, a
variável original não tem sofrido nenhuma alteração.
Já quando as variáveis são passadas por referência para uma função, seu valor é
acessado diretamente e pode sofrer alterações durante a execução. Para indicar
que um argumento deve ser recebido por referência, deve-se adicionar o operador
& antes do nome do parâmetro, na declaração da função.
A Listagem, a seguir, mostra duas versões de uma mesma função. A primeira
recebe argumentos por valor e retorna apenas o resultado da soma dos dois valores
informados. Na segunda, o primeiro parâmetro é recebido por referência e, nesse
caso, a função não tem retorno, pois a variável informada sofre diretamente a
alteração (soma do segundo argumento).
<?php
function somar($numA, $numB)
{
return $numA + $numB
}
pag.44
Capitulo 5- Funções WEB II
A linguagem PHP possui uma funcionalidade bastante útil que permite definir
funções que recebam um número indefinido de argumentos, com isso, pode-se
acessar vários parâmetros dinamicamente, mesmo sem que seja previamente
definida a quantidade e nome dos mesmos. Dentro da função, utiliza-se
as funções
func_get_args() e func_num_args() que retornam um array contendo os argumentos
e a quantidade destes, respectivamente.
A seguir é apresentado um exemplo, retomando a função “somar”, que define uma
função para a qual se pode passar vários números como parâmetro e ela retornará
a soma deles.
<?php
function somar()
{
$numeros = func_get_args();
$qtd_nums = func_num_args();
$soma = 0;
for($i = 0; $i < $qtd_nums;$i++)
{
$soma += $numeros[$i];
}
return $soma;
}
//testando a função
echo somar(1, 2, 3, 4, 5);
?>
Exercício:
Montar uma função que recebe um numero como parâmetro e retorna o nome
do mês correspondente, validar a entrada para um número de mês valido.
pag.45
Capitulo 6- Formulários WEB II
CRIAÇÃO DO FORMULÁRIO
Os formulários são criados através da linguagem HTML, a qual você já deve conhecer. Para
que esses formulários se tornem úteis devemos informar ao navegador para onde vai as
informações. Vamos utilizar os formulários para enviar os dados para os programas em
PHP.
Fazemos isso utilizando a opção action, dentro da tag <form> do HTML.
Exemplo:
<form action="prog_recebe_dados.php">
itens do formulário
</form>
Já vimos então como especificar qual programa irá receber os dados. Agora precisamos
entender como os dados são passados ao programa.
Existem dois métodos de passagem de parâmetros: GET e POST.
O tipo de método utilizado é informado na opção method da tag <form> do HTML.
Exemplo:
pag.46
Existem algumas desvantagens com esse método, primeiro seria o limite de caracteres que
podem ser enviados, o que gira em torno de 2000, outra desvantagem é que o usuário
visualiza através da barra de endereço todos os parâmetros.
A vantagem desse método seria a passagem de parâmetros por links, por exemplo em um
comércio virtual poderia se utilizar desse método para se obter um link específico para um
produto, uma categoria.
POST - Seus dados são enviados por meio do corpo da mensagem encaminhada ao
servidor, não alterando assim o endereço, mostrando apenas:
www.polly.com.br/prog_recebe_dados.php
Uma das vantagens é que não existe limitação de tamanho dados a serem enviados.
Também através desse método podemos enviar outros tipos de dados, como imagens, para
isso basta utilizar o valor file na opção type da tag <input> do HTML.
Visualizando o formulário no navegador ele deverá ficar como segue na imagem a seguir:
pag.48
Capitulo 6- Formulários WEB II
Agora basta na mesma pasta em que você salvou o formulário html, criar o programa em
PHP que irá verificar se o preenchimento está correto.
Salve o código que será exibido na imagem a seguir com o nome verifica.php
Pronto, feito isso você já pode testar, caso acesse o formulário e deixe algum campo em
branco, visualizará mensagens de erro.
É claro que esse exemplo é simples, você pode incrementar muito mais as opções de
validação dos dados.
Função Descrição
strstr Acha a primeira ocorrência de uma string. Se não encontrar retorna falso
(FALSE).
pag.49
Capitulo 6- Formulários WEB II
Agora entendendo cada umas das funções citadas acima vamos procurar entender o
funcionamento do programa.
Na primeira parte do programa as variáveis recebem o conteúdo do formulário, através
da array superglobal $_POST.
É definida a variável $erro a qual irá verificar ao final de todos os testes se houve ou não
algum erro no preenchimento do formulário, por isso ela recebe o valor 0, pois caso no
final de todas as verificações seu valor permaneça o mesmo, é informado que todos os
dados foram preenchidos corretamente.
Na segunda parte é realizado testes utilizando o comando condicional IF, que serve para
avaliar uma expressão e indicar instruções:
*Verificamos se o campo nome não está vazio e também se o nome possui o caractere
espaço(se não houver , indica que não foi digitado o nome completo).
*Testamos se o email tem no mínimo 8 caracteres e possui o simbolo @.
*Constatamos se realmente o campo cidade não está em branco e em seguida se o
campo estado não possui dois caracteres.
*Verificamos se o campo comentários não está vazio.
*E por último se a variável $erro permanece com o valor igual á 0, o que significa que
no preenchimento não ocorreram erros, e nos retorna um resultado.
Exercício:
pag.1 pag.50
Capitulo8- Criação de Banco de Dados WEB II
Bem, e simples, para nível de exemplo vamos pensar num LOCALHOST usando o
XAMPP,
Passo 1 : "Startamos" o MySQL pelo XAMPP.
Passo 2: Acesse pelo navegador o endereço "localhost/phpmyadmin"
Passo 3: Na Pagina que se abre vá na guia "MySQL localhost" e crie um novo banco de
dados.
Pronto, a nossa base de dados está criada e pode ser vista na guia ao lado do
navegador
Note que não a nenhum numero ao lado da nossa base de dados, o que quer dizer que
não tenho nenhuma tabela associada ao banco de dados, o nosso passo seguinte e
criar a nossa tabela, que para exemplo irá se chamar "tb_alunos".
Aqui temos o nome da tabela, a sua quantidade de colunas (3),no caso nossas colunas
iram se chamar id,nome,idade.
pag.52
Capitulo8- Criação de Banco de Dados WEB II
pag.53
Capitulo8- Criação de Banco de Dados WEB II
submetidos, quem irá atender essa requisição é o nosso arquivo adiciona.php, que já
foi explicado aqui.
E também vejam os nomes dos campos input, eles devem ser o mesmo nome é que
passado para a variável $_REQUEST[].
Pronto, tudo feito, agora é só acessar esse formulário via browser, inserir o dados e
enviar,
se tudo der certo, o browser irá ficar em branco e o endereço irá ficar "localhost/...
./adiciona.php",
agora basta procurar a nossa tabela, no nosso banco de dados, e ver se o registro
foi adicionado.
pag.55