JavaScript - Aula07
-
Upload
cleber-paiva -
Category
Documents
-
view
264 -
download
0
description
Transcript of JavaScript - Aula07
-
ELFS, 2003 167
7. Recursos PHP para a Internet
w Protocolo HTTP. Na aula passada vimos um script simples de autenticao de usurios. Neste script foi usado o tag META para passar uma URL ao servidor web. A linguagem PHP dispe da funo header para facilitar esta tarefa.
Login: Senha:
aula07_01.htm
aula07_01.php
Note que com o protocolo HTTP possvel executarum script PHP a partir de outro script PHP.
-
ELFS, 2003 168
Recursos PHP para a Internet
w Exerccio. Considere uma pgina como mostra a figura abaixo. Implementar o script aula07_02.php que exibe a pgina da instituio selecionada.
w E-Mail. A funo mail() do PHP deve ser usada para envio de e-mail. Sua sintaxe a seguinte:
mail(Destinatrio, Assunto, Mensagem, Informaes_Adicionais);
Exemplo:
aula07_02.htm
Considere que, para serem enviados, os dados devem satisfazer as seguintes condies: Todos os campos so obrigatrios; A consistncia do campo e-mail deve ser feita
verificando apenas a existncia do caractere @; O campo telefone deve ter sete ou oito caracteres.aula07_03.htm
-
ELFS, 2003 169
Recursos PHP para a Internet
aula07_03.phpNote nas atribuies varivel $erro o uso combinado dos operadores de concatenao ( . ) e de atribuio ( = ) resultando no operador ( .= ). Escrever $erro .= "string" equivalente a escrever: $erro = $erro . "string"
Para usar a funo mail preciso configurar a sesso [mail function] do arquivo c:\apache\php\php.ini:SMTP = mail.feg.unesp.brsendmail_from = seu_email@seu_domnio.br
-
ELFS, 2003 170
Recursos PHP para a Internet
w Upload de arquivos. Existe um tipo de campo de formulrio que permite o envio de arquivos da mquina do usurio para o servidor. Isto muito til para enviar um arquivo para o servidor sem a necessidade de liberao de um acesso por FTP. Exemplo:
aula07_04.htm
-
ELFS, 2003 171
Recursos PHP para a Internet
w A funo int copy(string origem, string destino) copia o arquivo origem para o arquivo destino. Os strings origem e destino devem conter os nomes completos dos arquivos (incluindo os caminhos). A pasta destino deve existir (at mesmo em outro computador) e permitir gravao para que a cpia seja realizada. A funo retorna 0 (false) caso a cpia no seja realizada.
w Protocolo FTP. A seqncia de tarefas para uso do protocolo FTP a seguinte: Conectar ao servidor, Identificao (login e senha), Envio/Busca de arquivo(s), Desconectar. Os comandos para cada uma destas tarefas so os seguintes:$con = ftp_connect('servidor');$log = ftp_login($con, 'login', 'senha');ftp_put($con, 'arquivo_remoto', 'arquivo_local', FTP_BINARY);ftp_quit($con);
else {$dest = "c:\\apache\\htdocs\\DAIaula07\\".$arq_name;if (copy($arq, $dest) == 0) echo("No foi possvel copiar o arquivo!");
elseecho("Upload realizado com sucesso!");
}echo("");
?>
Para download s usar a funo ftp_get($con, 'arquivo_local','arquivo_remoto', FTP_BINARY);
-
ELFS, 2003 172
Recursos PHP para a Internet
w Exerccio. Refazer a aplicao de upload de arquivos de modo a usar o protocolo FTP. Use o servidor 200.145.11.141, usurio "teste_php" e senha "123456789". Em seguida, experimente fazer o download do arquivo copiado no servidor para a pasta c:\temp.
w Cookies. Os cookies so usados para gravar alguma informao no computador cliente. Cada cookie representa um par (nome, valor). Cookies so teis para armazenar algumas informaes do usurio, tais como a quantidade de vezes que j visitou a pgina, ou algum dado fornecido numa visita anterior.
w Existem cookies persistentes e cookies de sesso. Os cookies persistentes so gravados em arquivo e perduram mesmo aps o browser ser fechado, mas possuem data e hora de expirao. Os cookies de sesso no so armazenados em disco e permanecem ativos apenas enquanto a sesso do browser no for encerrada. Por padro, existem algumas limitaes para o uso de cookies: 300 cookies no total, 4 Kbytes por cookie, 20 cookies por servidor ou domnio.
w Para gravar cookies no cliente, deve ser utilizada a funo setcookie(), que possui a seguinte assinatura:int setcookie(string nome, string valor, int exp, string path, string dominio, int segura);
onde:n nome - nome do cookie;n valor - valor armazenado no cookie;
-
ELFS, 2003 173
Recursos PHP para a Internet
n exp - data de expirao do cookie (opcional). Se no for definida, o cookie ser de sesso;
n path - path do script que gravou o cookie;n dominio - domnio responsvel pelo cookie;n segura - o valor 1 indica que o cookie s pode ser transmitido por uma
conexo segura (https).
w Exemplo: setcookie("Campus", "FEG", time()+3600);Neste caso, ser gravado um cookie de nome "Campus" e valor "FEG", com tempo de expirao de uma hora (3600 segundos alm do horrio atual).
w Importante: Cookies s podem ser gravados antes do envio de qualquer informao para o cliente. Portanto todas as chamadas funo setcookie()devem ser feitas antes do envio de qualquer header ou texto.
w Existem duas formas de recuperar cookies gravados por scripts PHP:n acessando o array $HTTP_COOKIE_VARS[] com ndice igual ao nome do
cookie;n acessando uma varivel $nome, onde nome o nome do cookie.
Por exemplo, para recuperar o valor do cookie acima podemos escrever: $HTTP_COOKIE_VARS["Campus"] ou$Campus
-
ELFS, 2003 174
Recursos PHP para a Internet
w O script aula07_05.php ir, com base no valor da varivel $Escolha, gravar ou recuperar um cookie de sesso.
Exemplo de Cookie
Exemplo de Cookie Nome: Valor:
ArmazenarRecuperar
aula07_05.htm
-
ELFS, 2003 175
Recursos PHP para a Internet
w Defina alguns cookies e tente recuper-los. Em seguida, feche o browser e carregue a pgina aula07_05.htm novamente e tente recuperar os cookies definidos. O que ocorre?
aula07_05.php
Note que a funo setcookie() deve ser executada antes de que algo seja enviado ao cliente.
-
ELFS, 2003 176
Recursos PHP para a Internet
Tratamento de Errosw A linguagem PHP permite a verificao e o tratamento de erros ocorridos na
execuo de scripts. O tratamento de erros pode ser feito no prprio script. O PHP possui vrios nveis de erros e avisos, os quais so estabelecidos por constantes pr-definidas (ou por valores inteiros).
w Algumas constantes de erro:
w O padro do PHP o nvel E_ALL & ~E_NOTICE, ou seja, mostrar todos os erros exceto as notificaes. Isto pode ser alterado em tempo de execuo, chamando a funo error_reporting(nvel) com o nvel desejado. Por exemplo, error_reporting(E_ERROR | E_WARNING | E_PARSE), o que equivalente a error_reporting(7). Note que 7 = 1 + 2 + 4, que so os valores inteiros associados s constantes E_ERROR, E_WARNING e E_PARSE.
Todos os erros e advertncias.2047E_ALL
Notificaes de possveis erros (avisos sobre possveis erros nocdigo do script). Interessante para a depurao do script.
8E_NOTICE
Erros de sintaxe (parse errors).4E_PARSE
Advertncias (a execuo do script no interrompida).2E_WARNING
Erros fatais (no podem ser recuperados), tais como: erros de alocao de memria.
1E_ERROR
SignificadoValorConstante
-
ELFS, 2003 177
Recursos PHP para a Internet
w Com o nvel 0 (zero) nenhum aviso ou mensagem de erro ser gerada em tempo de execuo. Neste caso, podemos usar a varivel $php_errormsg que conter o ltimo erro gerado pelo script, para criar rotinas especficas detratamento de erros e para personalizar mensagens de erro para o usurio.
w Para criar rotinas de tratamento de erros e para a exibio de todas as mensagens de erro preciso configurar o arquivo c:\apache\php\php.ini, alterando a diretiva track_erros para: track_errors = on.
w Exemplo. O script a seguir ir criar um arquivo erro.log (em formato XML) e ir enviar um e-mail com as mensagens de erro.
-
ELFS, 2003 178
Recursos PHP para a Internet
8 => "Notificao",16 => "Erro do interpretador PHP",32 => "Advertncia do interpretador PHP",64 => "Erro de compilao",128 => "Advertncia de compilao",256 => "Erro definido pelo usurio",512 => "Advertncia definida pelo usurio",1024=> "Notificao definida pelo usurio");
// Estabelecer os tipos para os quais sero exibidas mensagens de erro $user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE);
$erro = "\r\n";$erro .= "\t".$dhora."\r\n";$erro .= "\t".$errno."\r\n";$erro .= "\t".$errortype[$errno]."\r\n";$erro .= "\t".$errmsg."\r\n";
if (in_array($errno, $user_errors))$erro .= "\tMensagem do usurio!!\r\n";
$erro .= "\t".$filename."\r\n";$erro .= "\t".$linenum."\r\n";$erro .= "\r\n";
-
ELFS, 2003 179
Recursos PHP para a Internet
// Para testar// echo $erro;
// Salvar arquivo erro.log e enviar e-mail caso haja erro crticoerror_log($erro, 3, "erro.log");if ($errno == E_USER_ERROR)mail("[email protected]","Erro Crtico",$erro);
}
function distancia($vect1, $vect2) {if (!is_array($vect1) || !is_array($vect2)) {trigger_error("Parmetros incorretos (so esperados vetores).",
E_USER_ERROR);return NULL;
}
if (count($vect1) != count($vect2)) {trigger_error("Vetores precisam ser do mesmo tamanho.",
E_USER_ERROR);return NULL;
}
for ($i=0; $i
-
ELFS, 2003 180
Recursos PHP para a Internet
if (!is_numeric($c1)) {trigger_error("Coordenada $i no vetor 1 considerada como zero.",
E_USER_WARNING);$c1 = 0.0;
}if (!is_numeric($c2)) {trigger_error("Coordenada $i no vetor 2 considerada como zero.",
E_USER_WARNING);$c2 = 0.0;
}$d += $c2*$c2 - $c1*$c1;
}return sqrt($d);
}
$old_error_handler = set_error_handler("TrataErro");
// Constante indefinida, gerar uma advertncia.$t = NAO_ESTOU_DEFINIDA;
// Definir alguns vetores$a = array(2,3,"bobo");$b = array(5.5, 4.3, -1.6);$c = array (1,-3);
A funo set_error_handler estabelece uma funo definida pelo usurio para o tratamento de erros, advertncias ou notificaes. A funo retorna o tratador de erro anterior (caso exista).
-
ELFS, 2003 181
Recursos PHP para a Internet
// Gerar um erro de usurio$t1 = distancia($c,$b)."\n";
// Gerar outro erro$t2 = distancia($b,"eu no sou um vetor")."\n";
// Gerar uma advertncia$t3 = distancia($a,$b)."\n";
?>
A funo error_log envia uma mensagem de erro para o servidor web, para uma porta TCP ou para um arquivo. O segundo parmetro da funo especifica qual deve ser o destino da mensagem. Os valores possveis so:0 - a mensagem enviada para o sistema de log mantido pelo PHP (ou para um arquivo,
dependendo de como est configurada a diretiva error_log).1 - a mensagem enviada por e-mail para o endereo especificado no terceiro parmetro.2 - a mensagem enviada para um endereo IP (e, opcionalmente, para uma porta) estabelecido no
terceiro parmetro.3 -
-
ELFS, 2003 182
Recursos PHP para a Internet
w Exerccio. Criar um site para manuteno do quadro de horrios de uma escola. Considere as seguintes funcionalidades:
w O boto Mostrar dever exibir o quadro de horrio atual como um documento HTML, de acordo com as informaes armazenadas no banco de dados.
w O boto Enviar dever enviar uma mensagem com as informaes do quadro de horrio atual para um endereo de e-mail.
Crie um novo banco de dados MySQL horariocontendo duas tabelas: horario, com campos codhora (smallint) e horario (varchar(11)) e disciplinas, com campos coddisc(smallint) e nomedisc (varchar(20)).O boto Executar dever executar a operao de banco de dados selecionada (Incluir, Excluir ou Alterar) correspondente aos dados estabelecidos nos campos Dia, Horrio e Disciplina.