programação web funções definidas variáveis globais get x post manipulação de arquivos prof....

30
Programação WEB Funções Definidas • Variáveis Globais • Get x Post • Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Upload: internet

Post on 21-Apr-2015

102 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Programação WEB

• Funções Definidas

• Variáveis Globais

• Get x Post

• Manipulação de Arquivos

Prof. Timoteo Lange

Junho2014

Page 2: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Roteiro

Conteúdo

• Funções Definidas

• Variáveis Globais

• Get x Post

• Manipulação de Arquivos

Page 3: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Funções definidas pelo usuário

As funções não precisam ser criadas antes de serem referenciadas, exceto quando uma função é condicionalmente definida.

Todas as funções e classes no PHP tem escopo global - elas podem ser chamadas fora de uma função mesmo que tenham sido definidas dentro e vice-versa.

Page 4: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Funções definidas pelo usuárioUma função pode ser definida usando a seguinte sintaxe:

<?phpfunction imprime ($arg_1, $arg_2, /* ..., */ $arg_n){ echo "Exemplo de função.\n"; return $valor_retornado;}?>

Page 5: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Funções definidas pelo usuário

Valores podem ser retornados utilizando a instrução opcional return.

Qualquer tipo pode ser retornado, incluindo arrays e objetos.

Isto faz com que as função termine sua execução imediatamente e passa o controle de volta para a linha de onde ela foi chamada.

Page 6: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Funções definidas pelo usuário

<?phpfunction quadrado ($num){ return $num * $num;}echo quadrado (4); // imprime '16'.?>

Page 7: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Variáveis pré-definidasPHP provê um grande número de variáveis pré-definidas para todos scripts. As variáveis representam tudo de variáveis externas à variáveis nativas de ambiente, última mensagem de erro à último cabeçalho recebido.

Superglobais — São variáveis nativas que estão sempre disponíveis em todos escopos $GLOBALS — Referencia todas variáveis disponíveis no escopo global $_SERVER — Informação do servidor e ambiente de execução $_GET — HTTP GET variáveis $_POST — HTTP POST variáveis $_REQUEST — Variáveis de requisição HTTP $_SESSION — Variáveis de sessão $_ENV — variáveis de ambiente $_COOKIE — HTTP Cookies $http_response_header — Cabeçalhos de resposta HTTP $argc — O número de argumentos passados para o script $argv — Array de argumentos passados para o script

Page 8: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Variáveis pré-definidas: $_SERVER

'PHP_SELF' O nome do arquivo do script que está executando, relativa à raiz do

documento. Por exemplo, $_SERVER['PHP_SELF'] em um script no endereço

'SERVER_ADDR' O endereço IP do servidor onde está o script em execução.

'SERVER_NAME' O nome host do servidor onde o script atual é executado. Se o script está

rodando em um host virtual, este será o valor definido para aquele host virtual.

Page 9: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Variáveis pré-definidas: $_SERVER

'SERVER_SOFTWARE' A string de identificação do servidor, fornecida nos headers quando

respondendo a requests.

'SERVER_PROTOCOL' Nome e número de revisão do protocolo de informação pelo qual a página foi

requerida, por exemplo 'HTTP/1.0';

'REQUEST_METHOD' Contém o método de request utilizando para acessar a página. Geralmente

'GET', 'HEAD', 'POST' ou 'PUT'.

Page 10: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Variáveis pré-definidas: $_SERVER

'REQUEST_TIME' O timestamp do início da requisição. Disponível desde o PHP 5.1.0.

'QUERY_STRING' A query string (string de solicitação), se houver, pela qual a página foi

acessada.

'DOCUMENT_ROOT' O diretório raiz sob onde o script atual é executado, como definido no

arquivos de configuração do servidor.

Page 11: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Variáveis pré-definidas: $_SERVER

'HTTP_ACCEPT' O conteúdo do header Accept: da requisição atual, se houver.

'HTTP_ACCEPT_CHARSET' O conteúdo do header Accept-Charset: da requisição atual, se houver.

Exemplo: 'iso-8859-1,*,utf-8'.

'HTTP_ACCEPT_ENCODING' O conteúdo do header Accept-Encoding: da requisição atual, se houver.

Exemplo: 'gzip'.

Page 12: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Variáveis pré-definidas: $_SERVER

'HTTP_ACCEPT_LANGUAGE' *O conteúdo do header Accept-Language: da requisição atual, se houver.

'HTTP_HOST' O conteúdo do header Host: da requisição atual, se houver.

'HTTP_USER_AGENT' O conteúdo do header User-Agent: da requisição atual, se houver. É uma

string denotando o agente de usuário pelo qual a página é acessada. Um exemplo típico é: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586.

Page 13: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Variáveis pré-definidas: $_SERVER

'HTTPS' * Define para um valor não vazio se o script foi requisitado através do

protocolo HTTPS. Note que quando usando ISAPI com IIS, o valor será off se a requisição não for feita por protocolo HTTPS.

'REMOTE_ADDR' O endereço IP de onde o usuário está visualizado a página atual.

'REMOTE_HOST' O nome do host que o usuário utilizou para chamar a página atual. O DNS

reverso (lookup) do REMOTE_ADDR do usuário.

Seu servidor web precisa estar configurado para criar essa variável. Por exemplo, no Apache você precisa colocar um HostnameLookups On dentro do httpd.conf. Veja também gethostbyaddr().

Page 14: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Variáveis pré-definidas: $_SERVER

'REMOTE_PORT' A porta TCP na máquina do usuário utilizada para comunicação com o

servidor web.

'SCRIPT_FILENAME' O caminho absoluto o script atualmente em execução. Nota: Se o script for executado pela CLI com um caminho relativo, como

file.php ou ../file.php, $_SERVER['SCRIPT_FILENAME'] irá conter o caminho relativo especificado pelo usuário.

'SERVER_PORT' A porta na máquina servidora utilizada pelo servidor web para comunicação.

Como default, este valor é '80'. Utilizando SSL, entretanto, mudará esse valor para a porta de comunicação segura HTTP.

Page 15: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Variáveis pré-definidas: $_SERVER

'SERVER_SIGNATURE' String contendo a versão do servidor e nome do host virtual que é adicionado

às páginas geradas no servidor, se ativo.

'PATH_TRANSLATED' *O caminho real do script relativo ao sistema de arquivos (não o document

root), depois realizou todos os mapeamentos de caminhos (virtual-to-real).

'SCRIPT_NAME' Contém o caminho completo do script atual. Útil para páginas que precisam

apontar para elas mesmas (dinamicamente). A constante __FILE__ contém o caminho completo e nome do arquivo (mesmo incluído) atual.

'REQUEST_URI' O URI fornecido para acessar a página atual, por exemplo, '/index.html'.

Page 16: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

POST x GET

Get: envia os dados por uma cadeia de variáveis e seus valores junto ao endereço destinado

Post: envia os dados por meio do corpo da mensagem através de um formulário. Os dados enviados pelo método post não são visíveis ao contrario do get.

Page 17: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

POST

• É mais seguro que GET porque as informações enviadas

pelo usuário nunca são visíveis na URL.

• Há um limite maior na quantidade de dados que podem

ser enviadas de uma página para outra (aprox. 2kb).

• Os resultado não podem ser adicionados ao bookmark

(favoritos)

Page 18: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

POST<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method=“post"> Nome: <input type="text" name="username" /><br /> <input type="submit" name="submit" value=“Enviar" /></form>

<?php echo $_POST['username']; echo $_REQUEST['username'];

echo $HTTP_POST_VARS['username']; echo $username;?>

Page 19: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

GET

• Cada evento GET é registrado no log do Servidor.

• O comprimento da URL do servidor é limitado.

• GET não é adequado para logins ou dados que não

podem ser armazenados no histórico do navegador.

• GET é o método padrão para envio de dados por

formulários.

Page 20: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

GET<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get"> Nome: <input type="text" name="username" /><br /> <input type="submit" name="submit" value="Me aperte!" /></form>

<?php echo $_GET['username']; echo $_REQUEST['username'];

echo $HTTP_POST_VARS['username']; echo $username;?>

Page 21: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Manipulação de ArquivosCopiando Arquivos

int copy(string origem string destino);

Onde:Origem – caminho do arquivo de origem;Destino – caminho do arquivo de destino;

Retorna false caso a cópia não seja realizada.

Page 22: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Manipulação de Arquivos

Verificando o tamanho de um arquivo

int filesize(string arquivo);

Esta função retorna um inteiro com o tamanho do arquivo, em bytes, ou false em caso de erro.

Page 23: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Manipulação de Arquivos

Verificando se um arquivo existe

int file_exists(string arquivo);

Esta função tem um comportamento booleano: retorna apenas true ou false, não informando mais nada sobre o arquivo.

Page 24: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Manipulação de ArquivosAbrindo arquivos para leitura e/ou escrita

Para ler ou escrever num arquivo é preciso antes de qualquer coisa abri-lo. Para isso deve ser utilizada a função fopen,

int fopen(string arquivo, string modo, int [use_include_path]);

A função fopen retorna false em caso de erro, e um identificador do arquivo em caso de sucesso. Esse identificador será utilizado em outras funções que manipulam o conteúdo do arquivo.

Page 25: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Manipulação de ArquivosArgumentos: Arquivo: nome do arquivo; Modo: como o arquivo será aberto, que pode ser um dos seguintes:

r Abre o arquivo com permissão apenas para leitura.r+ Abre o arquivo com permissão para escrita e leitura, posicionando o ponteiro no início do mesmo (Duplica o conteúdo original).w Abre o arquivo com permissão apenas para escrita. Se o arquivo existir, todo o conteúdo é apagado. Se não existir, o PHP tenta criá-lo. O ponteiro é posicionado no início do arquivo (apaga o conteúdo antes de gravar).w+ Abre o arquivo com permissão para escrita e leitura. Se o arquivo existir, todo o conteúdo é apagado. Se não existir, o PHP tenta criá-lo. O ponteiro é posicionado no início do arquivo (apaga o conteúdo antes de gravar).a Abre o arquivo com permissão apenas para escrita. Se o arquivo não existir, o PHP tenta criá-lo. O ponteiro é posicionado no final do arquivo. a+ Abre o arquivo com permissão para escrita e leitura. Se o arquivo não existir, o PHP tenta criá-lo. O ponteiro é posicionado no final do arquivo.

Page 26: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Manipulação de Arquivos

Para encerrar a manipulação de um arquivo deve-se utilizar a função fclose

int fclose(int fp);

Onde fp é o identificador do arquivo, retornado pela função fopen.

Page 27: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Manipulação de ArquivosLendo de um arquivo

string fread(int fp, int tamanho);

Retorna uma string com o conteúdo do arquivo.

Onde: Fp: ponteiro para o arquivo; Tamanho: tamanho do buffer de leitura;

Se o tamanho determinado for maior que o arquivo, não ocorre erro, tendo como retorno apenas o arquivo. Na maioria dos casos a função filesize é bastante útil, como no exemplo abaixo:

$meuarquivo = “c:/autoexec.bat”;$id = fopen($meuarquivo, “r”);$conteudo = fread($id,filesize($meuarquivo));

A função fread é “binary-safe”, ou seja, pode ser usada para ler o conteúdo de um arquivo binário.

Page 28: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Manipulação de Arquivos

Escrevendo em um arquivo

int fwrite(int fp, string conteudo, int [tamanho]);

Grava em um arquivo o conteúdo. Se o tamanho for fornecido e for menor que o tamanho da string, será feita a gravação apenas de uma parte da mesma, determinada pelo terceiro parâmetro.

Page 29: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Manipulação de ArquivosExemplo:

<?$id = fopen($teste, “r”); $teste_conteudo = fread($id,filesize($teste)); fclose($id); ?>

O conteúdo do arquivo enviado armazenado na string $teste_conteudo, podendo assim ser armazenado onde for mais adequado.

Page 30: Programação WEB Funções Definidas Variáveis Globais Get x Post Manipulação de Arquivos Prof. Timoteo Lange Junho2014

Atividades1) Fazer uma página que identifique o tipo de navegador e o IP

do browser;

2) Incluir um contador de acesso à página

3) Fazer uma página que informa o número de colunas e linha e crie uma página html com uma tabela do tamanho informado – testar usando GET e POST;

4) Fazer um página que possa ser informado dois campos e o nome do arquivo. Após informar os dados deverá salvar em um arquivo.