Curso de Lua 3.2 CGILua 3.2

Tamanho: px
Começar a partir da página:

Download "Curso de Lua 3.2 CGILua 3.2"

Transcrição

1 Curso de Lua 3.2 CGILua 3.2

2 Índice Introdução...5 O que é CGILua?...5 Execução...5 Scripts Lua e Templates HTML...6 Scripts Lua...6 Templates HTML...6 Templates HTML: Marcadores Especiais...7 Campos de Expressão...7 Campos de Código...7 Diretiva de Laço...7 Diretiva Condicional...8 Exercícios de Fixação I...9 Formulários...10 Exercícios de Fixação II...11 Envio de Arquivos...12 Introdução...12 Destino dos Arquivos...12 Log de Envios...13 Exercícios de Fixação III...14 Construindo URLs...15 cgilua.mkurl( script, table )...15 cgilua.relativeurl( script )...15 cgilua.encodecgi( )...15 cgilua.encodetable( table )...16 Exercícios de Fixação IV...17 Incluindo Arquivos...18 cgilua.includehtml ( filename)...18 cgilua.preprocess( filename)...18 cgilua.splitpath( path )...18 cgilua.escape( str )...18 cgilua.unescape( str )...19 Cabeçalhos HTTP

3 cgilua.redirect( url, args )...20 cgilua.htmlheader( )...20 cgilua.httpheader( header )...20 Carregando Bibliotecas...21 cgilua.loadlibrary(basename, initfunc)...21 cgilua.dofile( file )...21 cgilua.tostring( varname )...21 cgilua.persistvar( varname )...22 cgilua.savestate( var1, var2,... )...22 Variáveis Pré-Definidas...24 cgi...24 cgilua.version...24 cgilua.script_pdir...24 cgilua.script_vdir...24 cgilua.script_path...24 cgilua.cgilua_url...25 Biblioteca: Sistema...26 mkdir( path )...26 chdir( path )...26 getcwd( )...26 cp( source, target )...26 filetype( file )...26 filetime( fmt, file )...27 date2sec( date, fmt )...27 sec2date( nsec, fmt )...27 lock( fhandle, mode )...28 sleep( msec )...28 Biblioteca: DBLua...29 DBOpen( dbdescr )...29 DBExec( sqlcommand )...29 DBRow( )...30 DBClose( )...30 Exercícios de Fixação V...31 Biblioteca: Crypt...32 crypt( str, key )...32 decrypt( cryptbuf, key )...32 md5( str )...32 exor( buff1, buff2 )...32 encode( strbuff )...33 decode( codedbuff )

4 Biblioteca: Cookies...34 getcookie( name )...34 setcookie( name, value, expires, path, domain, secure )...34 setcookiehtml( name, value, expires, path, domain, secure )...35 deletecookie( name )...35 Biblioteca: Loadlib...36 loadlib( libname, dir )...36 unloadlib( libhandle )...36 callfromlib( libhandle, funcname )...36 Biblioteca: Mail...38 mail{ to=tolist, from=frm, subject=sbj, message=msg, cc=cclist, bcc=bcclist }...38 Respostas dos Exercícios...39 Bibliografia

5 Introdução O que é CGILua? Ferramenta para geração de páginas HTML dinâmicas via servidor HTTP. Programa CGI que roda no servidor. Utiliza um interpretador Lua para codificar os comandos que gerarão as páginas HTML. É uma linguagem interpretada não é necessária compilação. Recebe arquivos a serem interpretados, os processa oferecendo acesso a banco de dados, E/S, criptografia etc, e gera HTML de saída. Manipula dados de formulário HTML. Pode-se utilizar tanto código embutido em HTML (templates) quanto módulos Lua separados (scripts). Não possui estado (valores de variáveis não são guardados no servidor). Execução Para executar um script CGILua, deve-se utilizar a URL no formato: onde: path-cgilua: caminho virtual relativo ao servidor web onde o CGILua está instalado. path-script: caminho físico (relativo ao diretório-base do diretório virtual) do script a ser executado. Ex: 5

6 Scripts Lua e Templates HTML Scripts Lua Arquivos com extensão.lua totalmente escritos em Lua. Comunica-se com o servidor utilizando-se do dispositivo de saída padrão write e print. No início do script, deve ser gerado um cabeçalho HTTP informando o tipo do documento (Content-type). EXEMPLO: cgilua.htmlheader() write('<html>') if (cgi.language == 'english ) then greeting = 'Hello World! elseif (cgi.language == 'portuguese ) then greeting = 'Olá Mundo! else greeting = '[unknown language] end write('<head><title>'..greeting..'</title></head>') write('<body>') write('<b>'..greeting..'</b>') write('</body>') write('</html>') Templates HTML Arquivos com extensão.html ou.htm, escritos em HTML mas com código Lua e marcações especiais. CGILua processa o código Lua e marcações especiais para gerar código HTML dinâmico. Código estático: HTML; Código dinâmico: Lua/marcações. 6

7 Templates HTML: Marcadores Especiais Campos de Expressão Insere o resultado da expressão Lua no documento HTML. FORMATO: $ expressao-lua $ ARGUMENTOS: expressao-lua: qualquer expressão em Lua que retorne um valor, como por exemplo uma variável ou o retorno de uma função. Caso retorne nil, nada é inserido. EXEMPLO: Bom dia, <b>$ primeironome $</b>! (mostra em bold o conteúdo da variável primeironome) <a href= $ cgilua.mkurl( ajuda.html, cgi) $>Ajuda</a> (mostra dentro do href o retorno da função cgilua.mkurl, compondo o link para ajuda.html) Campos de Código Executa o código Lua entre os delimitadores. FORMATO: <!--$$ codigo-lua $$--> ARGUMENTOS: codigo-lua: qualquer código lua EXEMPLO: <!--$$ function executamodulo (modulo) return dofile(modulo) end executamodulo( teste.lua ) $$--> Diretiva de Laço Repete determinado trecho de código enquanto uma expressão testada seja verdadeira. FORMATO: <!--$$ LOOP start='cod_ini', test='cond_exec', action='cod_ciclo' $$--> [HTML code] <!--$$ ENDLOOP $$--> 7

8 ARGUMENTOS: start: condição inicial para o laço. test: expressão testada. Ao retornar nil (falso), pára o laço. action: ação executada em cada ciclo do laço. EXEMPLO: Table of numbers 1 to 9:<br> <table border=1> <tr> <!--$$ LOOP start = 'i=1', test = 'i<10', action = i = i + 1' $$--> <td>$ i $</td> <!--$$ ENDLOOP $$--> </tr> </table> Diretiva Condicional Testa uma expressão e Inclui determinado HTML caso a expressão seja verdadeira ou outro HTML caso a expressão seja falsa. FORMATO: <!--$$ IF test='cond_exec' $$--> [HTML code (true condition)] (<!--$$ ELSE $$--> [HTML code (false condition)]) <!--$$ ENDIF $$--> ARGUMENTOS: test: expressão testada. Se retornar não-nil (verdadeiro), inclui o primeiro trecho de código HTML. Se retornar nil (falso), inclui o segundo trecho de código HTML, caso especificado. EXEMPLO: User name: <!--$$ IF test='cgi.editmode' $$--> <input type="text" name="user" value="$ cgi.user $"> <!--$$ ELSE $$--> $ cgi.user $ <!--$$ ENDIF $$--> </form> 8

9 Exercícios de Fixação I 1) Qual o correspondente script Lua correspondente ao template HTML abaixo? <html> <body> <head><title>página de Teste</title></head> <body> <b>olá, mundo!</b> </body> </html> 2) Qual o correspondente template HTML correspondente ao script Lua abaixo? cgilua.htmlheader() write('<html>') write('<head><title>resultado</title></head>') write('<body>') if (cgi.resultado == "ok") then write('<b>funcionou!</b>') else write('<b>não funcionou!</b>') end write('</body>') write('</html>') 3) Em um template HTML, quais os usos corretos da função escreveprimeironome definida abaixo para imprimir o nome João : function escreveprimeironome() write( João ) end a) escreveprimeironome() b) $ escreveprimeironome() $ c) <!--$$ escreveprimeironome $$--> d) <!--$$ escreveprimeironome() $$--> e) $ write(escreveprimeironome) $ 4) Em um template HTML, quais os usos corretos da função retornaprimeironome definida abaixo para imprimir o nome João : function escreveprimeironome() return João end a) escreveprimeironome() b) $ escreveprimeironome() $ c) <!--$$ escreveprimeironome $$--> d) <!--$$ write(escreveprimeironome()) $$--> e) $ escreveprimeironome $ 9

10 Formulários CGILua processa dados vindos de formulários HTML (FORM), automaticamente decodificando os dados recebidos em uma tabela cgi. CGILua trata da mesma forma e transparentemente o método de envio de dados do FORM (POST ou GET). O script que será executado para processar os dados (campo action do FORM) pode ser tanto um template html quanto um script lua. Recomenda-se o uso da função cgilua.mkurl para gerar a URL deste script. Os campos de dados recebidos do FORM são colocados como campos da tabela cgi, com o nome original. Ex: (formulário) <form method="post" action= $ cgilua.mkurl( "processadados.html" ) $"> <input type="text" name="primeironome"> <input type="text" name="endereco"> <input type="submit" value="ok"> </form> Ex: (arquivo que recebe os dados processadados.html) <html> <head><title>dados Recebidos</title></head> <body> <p>o formulário foi enviado com os seguintes dados: <p>nome: $ cgi.primeironome $ <p>endereço: $ cgi.endereco $ </body> </html> 10

11 Exercícios de Fixação II 5) Implemente um formulário em em um arquivo html (form.html) e um template HTML (result.html) que imrpimirá os valores (ambos estão em um mesmo diretório). O formulário terá os campos nome, telefone e endereco. 11

12 Envio de Arquivos Introdução CGILua permite o envio de arquivos através do HTML (<input type= file >). O arquivo é enviado do navegador cliente a um diretório do servidor. Os seguintes atributos do FORM devem ser especificados: method= POST e enctype= multipart/form-data. Destino dos Arquivos Para definir o destino dos arquivos enviados, deve-se especificar uma tabela de regras de envio (no mesmo contexto que o HTML de envio) rulestable = { { pattern="[pattern1]", target="[target_filename1]"}, { pattern="[pattern2]", func=[func2]},... ; root_dir = root_dir" }, onde: pattern: expressão regular que deve casar com o arquivo sendo enviado Deve-se utilizar ou a target ou a func: target: expressão regular que define o nome de destino do arquivo. Pode-se usar capturas feitas com parêntesis no pattern através de %1, %2, %3 etc. func: nome da função que recebe o nome do arquivo de origemoriginal como parâmetro e deve retornar o nome de destino do arquivo root_dir: diretório destino dos arquivos enviados Ex: rulestable = { { pattern="(.*)%.doc", target="upload%.%1%.doc"}, { pattern="(.*)%.bmp", target="upload%.%1%.bmp"}, ; root_dir = "c:/temp/" } Para definir as regras globais default, deve-se definir esta tabela com o nome cgilua.uploadrules Para definir uma regra específica, deve-se colocar um campo do tipo INPUT HIDDEN no formulário HTML imediatamente antes do INPUT FILE, com o campo VALUE contendo o nome da variável global contendo a tabela de regras, e com o campo NAME igual ao campo NAME do INPUT FILE, mas com um prefixo rules_ Ex: <input type="hidden" name="rules_upload_example value= rulestable > <input type="file" name="upload_example"> 12

13 Log de Envios cgilua.upload_transferlog é uma variável com um log de todas os envios de arquivos efetuados por um script. Contém o nome do arquivo original, o nome com o qual foi salvo no servidor e o diretório de destino. cgilua.uploadlog(filename) grava um relatório no arquivo filename o conteúdo da variável cgilua.upload_transferlog, concatenando ao final do arquivo caso ele exista. 13

14 Exercícios de Fixação III 6) Implemente um script Lua que envie arquivos ao servidor no diretório C:\files, trocando suas letras para minúsculas. O formulário deverá ser direcionado ao arquivo sendfile.htm. 14

15 Construindo URLs cgilua.mkurl( script, table ) Gera uma URL para ser usada como um link HTML para o script CGILua, com a opção de passar uma tabela de dados. script: String com o caminho virtual para o script. Table (opcional): tabela com os parâmetros a serem passados pela URL para o script. Retorna uma string com a URL pronta para uso em um documento HTML. Um erro Lua é gerado caso o script não seja uma string, a tabela não seja uma table ou algum dos campos da tabela não seja uma string. Example <a href="$ cgilua.mkurl("/~tecgraf/script.lua") $"> <a href="$ cgilua.mkurl( main/script.lua",{ re=1.2, im=0.4 }) $"> produz o seguinte código HTML (considerando que o CGILua está instalado no diretório virtual do servidor /cgilua): <a href="/cgilua/cgilua.exe/~tecgraf/script.lua"> <a href="/cgilua/cgilua.exe/main/script.lua?im=0%2e4&re=1%2e2"> cgilua.relativeurl( script ) Retorna a URL que deve ser usada para se acessar um script dado por um caminho relativo ao diretório do script que está sendo executado. Esta função permite independência da localização das páginas do CGILua permitindo que páginas se refiram umas às outras usando caminhos relativos, sem a necessidade de codificar as URLs do próprio CGILua e do diretório que contém as páginas. script: String com o caminho relativo do script a que se quer referir. Retorna uma string com a URL pronta para uso em um documento HTML. Exemplo <a href=$ cgilua.relativeurl('script.html') $>script</a> ao ser processado, produz: <a href=/scripts/cgilua-3.2/cgilua.exescript.html>script</a> cgilua.encodecgi( ) Codifica a tabela cgi na forma de uma string de parâmetros passados em uma URL. 15

16 Retorna uma string de parâmetros codificados em formato de URL. Se cgi não for uma tabela ou algum índice ou valor da mesma não for uma string ou número, gera um erro Lua. Exemplo cgi = {} cgi.software = 'CGILua 2.0' cgi.club = 'Mengão' <a href=script.lua?$ cgilua.encodecgi() $> produz o seguinte código HTML: <a href=script?software=cgilua+2%2e0&club=meng%e3o> cgilua.encodetable( table ) Codifica uma tabela dada na forma de uma string de parâmetros passados em uma URL. table: uma tabela com os dados a serem codificados. Retorna uma string de parâmetros codificados em formato de URL. Se table não for uma tabela ou algum índice ou valor da mesma não for uma string ou número, gera um erro Lua. Exemplo <a href="script.lua?$ cgilua.encodetable{prod='cgilua 3.2'} $"> produz o seguinte código HTML: <a href="/cgilua/cgilua.exe/script.lua?prod=cgilua+3%2e2"> 16

17 Exercícios de Fixação IV 7) Implemente um link (comand <A HREF) para um template html, que passe a outro template html de nome teste.html no mesmo diretório, todos os parâmetros de formulário recebidos. 17

18 Incluindo Arquivos cgilua.includehtml ( filename) Insere um pedaço de HTML no documento atual. O arquivo é pré-processado e expandido no ponto em que a função é chamada. Filename: string contendo o caminho do arquivo a ser processado. Não retorna valor. Se houver algum problema na inclusão do arquivo, um erro Lua é gerado. Obs.: Para inserir documentos HTML completos gerando um cabeçalho HTTP, utilize a função cgilua.preprocess. cgilua.preprocess( filename) Pré-processa o template HTML, gerando um documento HTML com o cabeçalho HTTP (cotnenttype) e o envia diretamente para o dispositivo de saída no momento da chamada da função. Já que o cabeçalho HTTP é gerado, somente faz sentido chamar esta função em scripts Lua, pois tamplates HTML completos geram este cabeçalho automaticamente. Em templates HTML, utilize a função cgilua.includehtml. Filename: String com o caminho do template HTML a ser processado. Não há retorno. Se houver algum problema em abrir o arquivo, um erro é gerado. EXEMPLO if cgi.newuser then cgilua.preprocess( "newuser.html" ) else cgilua.preprocess( "main.html" ) end cgilua.splitpath( path ) Separa o diretório do nome de arquivo em um caminho, e retorna os dois. Path: o caminho a ser dividido. Retorna o diretório como primeiro argumento e o nome do arquivo como o segundo. cgilua.escape( str ) 18

19 Codifica a string de entrada, substituindo todas as ocorrências de caracteres for a da faixa a-z, A- Z, e 0-9 com uma string no formato %XX, onde XX é a representação hexadecimal do número do código do caracter. Str: a string a ser codificada. A string codificada resultante. cgilua.unescape( str ) Decodifica a string de entrada, substituindo cada ocorrência da substring %XX (onde XX é um número hexadecimal) com o caracter equivalente do código decimal XX. Str: a string a ser decodificada. RETURN A string decodificada resultante. 19

20 Cabeçalhos HTTP cgilua.redirect( url, args ) Gera um cabeçalho HTTP redirecionando o browser para outra URL. Corresponde ao cabeçalho Location: HTTP. url: o nome do arquivo ou a URL completa a ser carregada. args (opcional): tabela Lua com parâmetros a serem passados na URL, devidamente codificados. EXEMPLO if cgi.name then cgilua.redirect( "newuser.html", { newuser = cgi.name } ) else cgilua.redirect( "http://www.home.com" ) end Obs.: Esta função somente se aplica a scripts Lua. Qualquer outra saída após esse comando será ignorada, embora o script rode até o fim. Saídas escritas antes desta função só fazem sentido se forem outros cabeçalhos HTTP. cgilua.htmlheader( ) Escreve na saída o cabeçalho HTTP indicador de página HTML (Content-type: text/html) EXEMPLO O seguinte código em um.lua produz uma página válida: cgilua.htmlheader() write( '<h1>olá!</h1>' ) Obs.: Esta função somente se aplica Scripts Lua. cgilua.httpheader( header ) Adiciona um cabeçalho HTTP à página sendo criada dinamicamente. header: o texto do cabeçalho HTTP a ser inserido. Obs.: Aplica-se somente a scripts Lua. EXEMPLO cgilua.httpheader( 'Expires: Tue, 20 Aug :25:27 GMT\n' ) cgilua.httpheader( 'Content-type: text/plain\n\n' ) write( Página de Teste' ) 20

21 Carregando Bibliotecas cgilua.loadlibrary(basename, initfunc) Carrega uma biblioteca dinâmica. Procura a bibilioteca no diretório de configuração do cgilua (normalmente cgilua.conf) e então no caminho do sistema para bilbliotecas basename: o nome-base do arquivo a ser carregado. Em UNIX, adiciona automaticamente o prefixo lib e o sufixo.so. Em Windows, adiciona o sufixo.dll. initfunc: a função exportada pela biblioteca a ser chamada após a carga da biblioteca. Normalmente, esta é uma função que registra outras funções C da biblioteca no ambiente Lua. EXEMPLO O seguinte código carrega a biblioteca library libcrypt.so (ou crypt.dll no Windows), e executa a função exportada cryptlib_open: cgilua.loadlibrary( 'crypt', 'cryptlib_open' ) Obs.: Se a biblioteca não puder ser carregada, a execução do script é abortada mostrando uma mensagem de erro. cgilua.dofile( file ) Executes um arquivo Lua no ambirente Lua atual. A diferença para o comando dofile de Lua é que os arquivos são pegos do diretório de configuração do cgilua, normalmente cgilua.conf/. file: o arquivo Lua a ser executado. EXEMPLO cgilua.dofile( 'lib.lua' ) Obs.: Se a execução falhar ou o arquivo não puder ser encontrado, a execução é abortada. cgilua.tostring( varname ) Constrói uma representação string da variável passada. Strings são corretamente codificadas e tabelas são convertidas para sua representação em string, com os construtuores de tabelas { e }. varname: o nome da variável Lua. A representação string da variável passada. EXEMPLO item = { name="x", value=123, properties={ 2, 4, 7 } } write( cgilua.tostring( item ) ) 21

22 produz a seguinte saída: { ["value"] = 123, ["name"] = "X", ["properties"] = { [1] = 2, [2] = 4, [3] = 7, }, } Obs.: Função útil para depurar scripts. Não funciona para variáveis do tipo "function" ou "userdata". Tabelas Lua aninhadas são aceitas, exceto se tiverem referências em laço. cgilua.persistvar( varname ) Produz uma string de forma que a execução da string no ambiente Lua (com dostring) recupera o valor da variável. varname: o nome da variável a ser persistida em uma string. A string a ser usada para se recuperar a variável. EXEMPLO list = { "a", "b", "c" } keeplist = cgilua.persistvar( list ) list = nil dostring( keeplist ) foreach( list, function (i,v) write( v ) end ) produz o seguinte resultado: abc cgilua.savestate( var1, var2,... ) Salva o estado de variáveis string, number ou table para passá-las ao próximo script a ser executado com a função cgilua.mkurl. varx: Nome das variáveis cujo estado deve ser salvo. Exemplo <html><body> <!--$$ x = { "i", "ii", "iii" } name = "roman" cgilua.savestate( "x", "name" ) $$--> <a href="$ cgilua.mkurl( 'next.lua' ) $">Link para o próximo script</a> </body></html> No script chamado next.lua, é correto escrever: cgilua.htmlheader() i=1; 22

23 while x[i] do write( name, ":", x[i] ) i = i + 1 end Obs.: Esta função aceita um número variável de argumentos. As variáveis são formatadas para montar uma querystring para serem passadas através da URL na próxima chamada do cgilua.mkurl. Pode-se mudar este comportamento para passá-las através de um arquivo temporário no servidor, através da variável cgilua.statemethod, localizada em cgilua.conf/state.lua. 23

24 cgi Variáveis Pré-Definidas Contém os dados, já decodificados, enviados para o script, independentemente do método. Os dados podem vir de um submit a um formulário HTML ou diretamente passados pela URL. EXEMPLO <form method="post" action="$ cgilua.mkurl( 'a.lua' ) $"> Nome: <input type="text" name="name"> <input type="text" name=" "> <input type="submit"> </form> Ao dar um submit no formulário, o a tabela cgi no script a.lua terá os campos name e write( "Your name is ".. cgi.name.. ", and your ".. cgi. ) Uma outra forma de enviar os mesmos campos seria através de um link: <a href="$ }) $"> cgilua.version Versão do CGILua usada. cgilua.script_pdir Caminho físico do script sendo executado pelo CGILua. EXEMPLO Se a URL: executa o script localizado em /home/user/public_html/script.lua esta variável possui o valor /home/user/public_html/ cgilua.script_vdir Caminho virtual do script sendo executado pelo CGILua. EXEMPLO Usando a URL esta variável possuirá o valor "/~user/". cgilua.script_path Caminho virtual do script sendo executado pelo CGILua. 24

25 EXEMPLO Se a URL: executa o script localizado em /home/user/public_html/script.lua esta variável contém o valor /home/user/public_html/script.lua cgilua.cgilua_url Parte da URL usada para referenciar o CGILua. EXEMPLO Usando a URL esta variável contém o valor: /cgi-bin/cgilua 25

26 Biblioteca: Sistema Oferece algumas funções úteis do sistema operacional, como datas e operações de E/S mkdir( path ) Cria um diretório no sistema de arquivos local. path: caminho do diretório a ser criado (ou simplesmente um nome se deve-se criar abaixo do diretório atual) Retorna nil em caso de falha ou 1 em sucesso. chdir( path ) Troca o diretório de trabalho atual para o diretório especificado. path: o caminho do novo diretório de trabalho. Não há retorno. Em caso de falha, o script é abortado e é mostrada uma mensagem de erro. getcwd( ) Retorna o diretório de trabalho atual. Uma string contendo o caminho completo do diretório de trabalho atual. cp( source, target ) Copia o arquivo do caminho de origem para o caminho de destino. Retorna nil em caso de erro; nesse caso o segundo retorno é uma string descrevendo o erro. filetype( file ) Retorna o tipo do arquivo. EXEMPLO cp( "c:/test/ball.gif", "c:/www/ball.gif" ) file: o arquivo de que quer saber o tipo. 26

27 Uma da strings: "file", "directory" ou "other" de acordo com otipo do arquivo, ou nil se o tipo do arquivo não pode ser retornado. filetime( fmt, file ) Retorna a hora da última modificação feita no arquivo. fmt: o formato da string de saída, similar ao da função em C strftime. file (opcional): o arquivo de que se quer saber a hora da última modificação. Caso não seja especificado, é utilizado o caminho do script atual. Uma string com a hora da última modificação, formatada conforme especificado. EXEMPLO $ filetime("%d/%m/%y") $ produz a seguinte saída: 27/04/1999 date2sec( date, fmt ) Converte uma data para o número correspondente de segundos desde primeiro de janeiro de date: uma string contendo uma data. fmt: o formato da data a ser lida, de acordo com um padrão. O número correspondente de segundos desde primeiro de janeiro de EXEMPLO $ date2sec("5/02/1997","%d/%m/%y") $ produz a seguinte saída: sec2date( nsec, fmt ) Converte um número como o número de segundos desde primeiro de janeiro de 1970 para uma data. nsec: número de segundos. fmt: o formato da saída. : A data correspondente ao número de segundos desde primeiro de janeiro de 1970 correspondente ao parâmetro dado. 27

28 EXEMPLO $ sec2date( date2sec("5/02/1997","%d/%m/%y"),"%d/%m/%y") $ produces the following output: 05/02/1997 lock( fhandle, mode ) Tranca ou destranca o acesso a um arquivo. Na realidade, o acesso ao arquivo não é impedido, na verdade somente permite que seja feito o controle guardando o estado. PARÂMETRO fhandle: handle de um arquivo aberto. Após uma chamada bem sucedida a writeto, o handle é dado pela variável de Lua _OUTPUT. Mode: o tipo de operação desejada. Utilize o caracter l para trancar um arquivo e u para destrancar. Retorna nil em caso de falha e 1 em caso de sucesso. sleep( msec ) EXEMPLO writeto( "data.txt") while not lock( _OUTPUT, "l") do sleep (50) end write ( "ok" ) lock( _OUTPUT, "u") writeto () --espera até que nenhum outro processo está com o arquivo trancado para trancar para si Faz com que o processo ou thread correntes fiquem suspensos por msec milissegundos. msec: o número de milissegundos para ficar suspenso. 28

29 Oferece acesso a bancos de dados. Biblioteca: DBLua DBOpen( dbdescr ) Abre uma conexão com um banco de dados. dbdescr: string de conexão com um banco de dados. Retorna nil se a conexão foi bem-sucedida ou uma string descrevendo o erro. EXEMPLO (ODBC) errormsg = DBOpen("DSN=agenda;UID=cgilua;PASSWD=lua;") if errormsg then cgilua.redirect( 'dberror.html', { msg=errormsg }) end EXEMPLO (Mini-SQL) DBOpen('HOST=davinci;DATABASE=agenda;') Obs.: Para portabilidade, as palavras DATABASE e DSN são equivalentes e HOST é ignorado no uso com ODBC. No entanto, uma string de conexão "HOST=davinci;DATABASE=agenda;" seria válida em ambos ODBC e Mini-SQL se "agenda" é um DSN de ODBC. DBExec( sqlcommand ) Executa um comando SQL na conexão com banco de dados atualmente aberta. sqlcommand: uma string com o comando SQL a ser executado. EXEMPLO DBExec( "create table tst (nome char(50), cpf char(15))" ) DBExec( "insert into tst values ('Luiza',' ')" ) DBExec( "insert into tst values ('Fabiana',' ')" ) DBExec( "delete from tst where nome = 'Luiza'") DBExec( "update tst set cpf = ' ' where name ='Fabiana'") Para evitar confusão com os delimitadores de string de Lua, (" ou ') e delimitadores de string de SQL ('), a função format de Lua pode ser usada. Ex: sql = format( "insert into tabela_teste values ('%s','%s')", cgi.name, cgi.cpf ) DBExec( sql ) Obs.: Em caso de erro no comando SQL, um erro de execução é mostrado, abortando a execução do script. Para evitar este tipo de comportamento, execute comandos para testar situações de erro (ex. teste se um registro existe com um comando SELECT antes de tentar apagá-lo). 29

30 DBRow( ) Retorna a próxima linha da tabela de resultados produzida pela último comando SQL executado (com DBExec). Uma tabela Lua contendo os dados da linha, com todas as coludas da tabela de resultados indexadas na mesma ordem que sua posição no resultado (índices [1], [2],... ) e também indexadas pelol nome da coluna (índices [ nome_coluna1"], ["nome_coluna2"],... ). Quando chega no final da tabela, retorna nil. Exemplo Suponha que no banco de dados há a tabela Empregados, com o seguinte formato: id (int), nome (char 100) e telefone (char 20) Dados: 1 Maria Marcelo (NULL) 3 Pedro William Para retornar os dados da tabela: DBOpen("DATABASE=company;") DBExec("SELECT telephone, name FROM employees WHERE name LIKE = 'M%'" ) row = DBRow() while row do write( "Name: ".. row.name.. "<br>" ) -- poderia fazer também com "row[2] row = DBRow() end DBClose() O resultado será:: Nome: Maria Nome: Marcelo Obs.: Valores nulos são traduzidos para valores nil em Lua. DBClose( ) Fecha a conexão ativa com o banco de dados, aberta com o DBOpen Exemplo DBOpen( "DATABASE=example;" ) DBExec( "create table t (nome char(50), cpf char(15))" ) DBClose() 30

31 Exercícios de Fixação V 8) Dada uma tabela agenda com os campos nome, telefone e endereco de um banco de dados em DSN= teste, escreva o código em script Lua para imprimir todos os valores no HTML. 9) Dada uma tabela agenda com os campos nome, telefone e endereco de um banco de dados em DSN= teste, e uma tabela Lua agenda, indexada numericamente, sendo que cada entrada desta tabela Lua contendo uma tabela com os mesmos campos nome, telefone e endereco, escreva o código em script Lua para inserir na tabela do banco de dados todos os valores da tabela Lua. 31

32 Oferece algumas funcionalidades de criptografia. Biblioteca: Crypt crypt( str, key ) Executa uma encriptação DES de 56-bit, usado o algorítimo "Fast DES". str: String a ser encriptada. Pode ser um buffer binário genérico. key (opcional): Uma string a ser utilizada na geração da chave de encriptação. Somente os 8 primeiros caracteres são utilizados. Se não especificado, utiliza uma chave interna fixa. Retorna uma string encriptada em um buffer de 8 bits. decrypt( cryptbuf, key ) Decripta um buffer, usando o algorítimo de criptografia DES. PARAMETROS cryptbuf: Buffer contendo o dado encriptado. O dato original, decriptado. md5( str ) Aplica o algorítimo MD5 na string de entrada. str: string na qual o MD5 será aplicado. String de saída da aplicação do MD5 na string de entrada. exor( buff1, buff2 ) Executa um XOR binário nos buffers passados como parâmetros. Pode ser útil para construir outras funções de criptografia em conjunto com a função md5. buff1: Primeiro operando para o XOR. buff2: Segundo operando para o XOR. O buffer binário resultante. 32

33 encode( strbuff ) Codifica buffers de 8 bit em uma string ASCII de 7 bits, conforme especificado na RFC 822. strbuff: o buffer binário a ser codificada. A string resultante codificada. Exemplo encbuff = encode( crypt( " " ) write( encbuff ) Produz a seguinte saída: uwzjjwuywcnawqd+ynt+eqc= decode( codedbuff ) Restaura um buffer codificado pela função encode. codedbuff: o buffer a ser decodificado. O buffer decodificado. Exemplo encbuff = encode( crypt( " " ) buff = decode( encbuff ) write( decrypt( buff ) ) Produz a saída:

34 Biblioteca: Cookies Um Cookie é um mecanismo para armazenar informação no cliente de uma conexão HTTP getcookie( name ) Faz o servidor informar o valor de um cookie armazenado sob o nome name, que foi fornecido pelo browser cliente quando o script foi solicitado. name: nome do cookie a ser retornado. O valor do cookie requisitado. Exemplo naccess = getcookie( "COUNTACCESS" ) if not naccess then msg = Bem-vindo, novo usuário!" else msg = Bem-vindo de volta! Você já visitou nosso site ".. naccess.." vezes." end write( msg ) setcookie( name, value, expires, path, domain, secure ) Despacha um cabeçalho http necessário para criar um cookie no browser cliente. name: o nome do cookie. value: o valor do cookie. expires (opcional): data de quando o cookie irá expirar, no formado dd/mm/yyyy. Se este parâmetro não for fornecido, o cookie será apagado quando a sessão atual terminar (ex. o quando o browser for fechado). path (opcional): o caminho virtual no servidor apontado pelo domínio (veja abaixo) dos scripts que poderão ver o valor do cookie. O valor mais amplo que pode ser fornecido é /, o que significa que qualquer script no servidor terá acesso ao valor do cookie. O valor default é o mesmo caminho virtual do script que está criando o cookie. domain (opcional): indica o domínio dos servidores que poderão acessar o valor do cookie. Domínios parciais são aceitos (ex: ".puc-rio.br ). Se nenhum valor for fornecido, o default é restringir a visibilidade do cookie ao servidor que o criou. secure (opcional) : se este parâmetro for igual a "secure", o cookie só será transmitido via um canal seguro (HTTPS). Exemplo naccess = getcookie( "COUNTACCESS" ) if not naccess then naccess = 1 else 34

Bool setcookie (string nome [, string valor [, int validade [, string caminho [, string dominio [, int seguro]]]]] )

Bool setcookie (string nome [, string valor [, int validade [, string caminho [, string dominio [, int seguro]]]]] ) Disciplina: Tópicos Especiais em TI PHP Este material foi produzido com base nos livros e documentos citados abaixo, que possuem direitos autorais sobre o conteúdo. Favor adquiri-los para dar continuidade

Leia mais

Programação web Prof. Wladimir

Programação web Prof. Wladimir Programação web Prof. Wladimir Linguagem PHP Cookie e Sessão @wre2008 1 Sumário Header; Cookie; Sessão; Exemplos. @wre2008 2 Header Esta função permite que um script php redirecione para outra página.

Leia mais

Guia do RepositorioDocumento

Guia do RepositorioDocumento Módulo: RepositorioDocumento.Cls_Repositorio Versão: 1.0.0 Data: 16/05/2003 Analista: João Augusto de Moura DBA: Maria Cristina de Oliveira Zimmermann Coordenador: Alex Albert Henchel Gerente Operacional:

Leia mais

7. Recursos PHP para a Internet

7. Recursos PHP para a Internet 7. Recursos PHP para a Internet Protocolo HTTP. Na aula passada vimos um script simples de autenticação de usuários. Neste script foi usado o tag META para passar uma URL ao servidor web. A linguagem PHP

Leia mais

www.coldfusionbrasil.com.br

www.coldfusionbrasil.com.br www.coldfusionbrasil.com.br 2000 PASSANDO VARIÁVEIS ATRAVÉS DE FORM E URL 3 ALTERA.CFM 3 FORMALTERA.CFM 4 ALTERA.CFM 4 FORMALTERA.CFM 4 CRIANDO E MANIPULANDO VARIÁVEIS COM CFSET 4 VALORES ESTÁTICOS 5 PARÂMETROS

Leia mais

GUIA PHP com MYSQL Autor: Everton Mendes Messias

GUIA PHP com MYSQL Autor: Everton Mendes Messias PHP (Hypertext Preprocessor) : Linguagem de programação interpretada. Tags PHP: phpinfo(); Comentários: //, # - comentário de uma linha /* comentário de várias linhas */ GUIA PHP com MYSQL Autor: Everton

Leia mais

Curso De PHP. Aula 4. Formulários. Cookies. Session. Mail

Curso De PHP. Aula 4. Formulários. Cookies. Session. Mail Curso De PHP Aula 4 Formulários Cookies Session Mail Formulários Nós preenchemos diariamente diversos formulários web, seja para se logar e-mail ou criar uma conta em um site. Nesta parte do curso, vamos

Leia mais

www.coldfusionbrasil.com.br

www.coldfusionbrasil.com.br www.coldfusionbrasil.com.br 2000 VARIÁVEIS CGI 3 CGI.NOME_DA_VARIÁVEL 3 VARIÁVEIS CGI SERVIDOR 3 VARIÁVEIS CGI CLIENTE 3 USANDO AS VARIÁVEIS CGI 4 REDIRECIONANDO APLICAÇÕES 4 INTERAGINDO COM ARQUIVOS 5

Leia mais

13 Conectando PHP com MySQL 13.1 Introdução

13 Conectando PHP com MySQL 13.1 Introdução 13 Conectando PHP com MySQL 13.1 Introdução Agora que você já tem uma idéia básica de comandos MySQL, poderemos ver como a linguagem PHP pode interagir com este banco de dados através de inúmeras funções.

Leia mais

PHP (Seções, Cookies e Banco de Dados)

PHP (Seções, Cookies e Banco de Dados) PHP (Seções, Cookies e Banco de Dados) André Tavares da Silva andre.silva@udesc.br Seções Basicamente, as seções são métodos que preservam determinados dados ativos enquanto o navegador do cliente estiver

Leia mais

6. Introdução à Linguagem PHP

6. Introdução à Linguagem PHP 6. Introdução à Linguagem PHP A comunicação na Web exige dois agentes: o cliente web e o servidor web. O cliente requer informação (a partir de uma página HTML acessada pelo navegador) e o servidor fornece

Leia mais

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP AGRUPAMENTO DE ESCOLAS DE SANTA COMBA DÃO CURSO PROFISSIONAL DE TÉCNICO DE GESTÃO E PROGRAMAÇÃO DE SISTEMAS INFORMÁTICOS 2012-2015 PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO MÓDULO 2 Mecanismos de Controlo de

Leia mais

Construindo um sistema simples de cadastro de fornecedores em PHP e MySQL.

Construindo um sistema simples de cadastro de fornecedores em PHP e MySQL. Construindo um sistema simples de cadastro de fornecedores em PHP e MySQL. Procuraremos mostrar os principais procedimentos para fazer um cadastro de registros numa base de dados MySQL utilizando a linguagem

Leia mais

Curso de PHP. FATEC - Jundiaí

Curso de PHP. FATEC - Jundiaí Curso de PHP FATEC - Jundiaí Cookies Cookies são arquivos texto que podem ser armazenados no computador or do usuário, para serem recuperados posteriormente pelo servidor no qual seu site está hospedado.

Leia mais

APOSTILA PHP. Parte 2

APOSTILA PHP. Parte 2 APOSTILA PHP Parte 2 7. Funções Definindo funções A sintaxe básica para definir uma função é: function nome_da_função([arg1, arg2, arg3]) { Comandos;... ; [return ]; Qualquer código PHP

Leia mais

Prova de pré-requisito

Prova de pré-requisito Prova de pré-requisito Curso Python e Django 1. Ao se acessar o site www.google.com qual comando e parâmetros são enviados para o servidor pelo navegador? a. GET / b. GET www.google.com c. PAGE index.html

Leia mais

Scriptlets e Formulários

Scriptlets e Formulários 2 Scriptlets e Formulários Prof. Autor: Daniel Morais dos Reis e-tec Brasil Programação Avançada Para Web Página1 Meta Permitir ao aluno aprender a criar um novo projeto Java para web no Netbeans IDE,

Leia mais

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL Laboratório de Banco de Dados Prof. Luiz Vivacqua PL/pgSQL A Linguagem de programação do PostgreSQL 1) Visão Geral A PL/pgSQL é uma linguagem de programação procedural para o Sistema Gerenciador de Banco

Leia mais

Programação WEB II. Sessions e Cookies. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

Programação WEB II. Sessions e Cookies. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza Sessions e Cookies progweb2@thiagomiranda.net Conteúdos Os materiais de aula, apostilas e outras informações estarão disponíveis em: www.thiagomiranda.net Cookies e Sessions Geralmente, um bom projeto

Leia mais

Ferramentas para Multimídia e Internet - 1486

Ferramentas para Multimídia e Internet - 1486 1 Ferramentas para Multimídia e Internet - 1486 HTML BÁSICO: O que é uma página WEB? Uma página WEB, também conhecida pelo termo inglês webpage, é uma "página" na World Wide Web, geralmente em formato

Leia mais

Instituto Federal do Sertão-PE. Curso de PHP. Professor: Felipe Correia

Instituto Federal do Sertão-PE. Curso de PHP. Professor: Felipe Correia Instituto Federal do Sertão-PE Curso de PHP Professor: Felipe Correia Conteúdo Parte I Parte II Introdução Funções de strings Instalação Constantes Sintaxe Operadores Variáveis if else elseif Echo/Print

Leia mais

ASP Active Server Pages. ASP (Active Server Pages)

ASP Active Server Pages. ASP (Active Server Pages) ASP Active Server Pages Prof. Sérgio Rodrigues ASP (Active Server Pages) É um ambiente de programação por scripts que rodam no servidor: IIS Internet Information Services PWS Personal Web Server Utiliza

Leia mais

APOSTILA DE PHP. Assuntos a serem abordados:

APOSTILA DE PHP. Assuntos a serem abordados: APOSTILA DE PHP 1ª AULA Assuntos a serem abordados: Conceito de PHP Conceito de Server Side Conceitos de Client Side Conceitos Servidor Web Conceito básico de Banco de Dados Funcionamento Ferramentas Utilizadas

Leia mais

HTML -- Criação de Home Page

HTML -- Criação de Home Page PPáággi innaa 1 LISTAS Na linguagem HTML existem elementos específicos para a criação de listas, que podem ser listas ordenadas (OL), listas sem ordenação (UL), ou listas de definição (DL). Um detalhe

Leia mais

Linguagem de Programação III Aula 2 Revisão Parte II

Linguagem de Programação III Aula 2 Revisão Parte II Linguagem de Programação III Aula 2 Revisão Parte II Prof. Moser Fagundes Curso Técnico em Informática (Modalidade Integrada) Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas Revisão de PHP

Leia mais

AULA APLICAÇÕES PARA WEB SESSÕES E LOGIN E SENHA

AULA APLICAÇÕES PARA WEB SESSÕES E LOGIN E SENHA Sumário Construção de sistema Administrativo... 1 Sistema de Login... 2 SQL INJECTION... 2 Técnicas para Evitar Ataques... 2 Formulário de Login e Senha fará parte do DEFAULT... 5 LOGAR... 5 boas... 6

Leia mais

Oracle PL/SQL Overview

Oracle PL/SQL Overview Faculdades Network Oracle PL/SQL Overview Prof. Edinelson PL/SQL Linguagem de Programação Procedural Language / Structured Query Language Une o estilo modular de linguagens de programação à versatilidade

Leia mais

O que é o Javascript?

O que é o Javascript? O que é o Javascript? JavaScript é uma linguagem para criação de Home-Pages. Funções escritas em JavaScript podem ser embutidas dentro de seu documento HTML. Com JavaScript você tem muitas possibilidades

Leia mais

Desenvolvimento de Aplicativos Web em PHP

Desenvolvimento de Aplicativos Web em PHP Desenvolvimento de Aplicativos Web em PHP Todos os direitos reservados para Alfamídia Prow. AVISO DE RESPONSABILIDADE As informações contidas neste material de treinamento são distribuídas NO ESTADO EM

Leia mais

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem. 1 - O que é JAVASCRIPT? É uma linguagem de script orientada a objetos, usada para aumentar a interatividade de páginas Web. O JavaScript foi introduzido pela Netscape em seu navegador 2.0 e posteriormente

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 2

PHP INTEGRAÇÃO COM MYSQL PARTE 2 ABRIR CONEXÃO PHP INTEGRAÇÃO COM MYSQL PARTE 2 Professor: Leonardo Pereira Email: leongamerti@gmail.com Facebook: leongamerti Material de Estudo: http://www.leonti.vv.si Antes de podermos acessar informações

Leia mais

Lista de Revisão. 3. Analise a afirmativa a seguir como verdadeira ou falsa e justifique.

Lista de Revisão. 3. Analise a afirmativa a seguir como verdadeira ou falsa e justifique. Lista de Revisão 1. Nos sistemas web, geralmente os usuários apresentam dois problemas típicos, a desorientação e a sobrecarga cognitiva. Discorra sobre esses problemas. 2. Apresente as principais diferenças

Leia mais

Programação Web Prof. Wladimir

Programação Web Prof. Wladimir Programação Web Prof. Wladimir Linguagem de Script e PHP @wre2008 1 Sumário Introdução; PHP: Introdução. Enviando dados para o servidor HTTP; PHP: Instalação; Formato básico de um programa PHP; Manipulação

Leia mais

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza PHP e Banco de Dados progweb2@thiagomiranda.net Conteúdos Os materiais de aula, apostilas e outras informações estarão disponíveis em: www.thiagomiranda.net PHP e Banco de Dados É praticamente impossível

Leia mais

Prof. Carlos Majer Aplicações Corporativas UNICID

Prof. Carlos Majer Aplicações Corporativas UNICID Este material pertence a Carlos A. Majer, Professor da Unidade Curricular: Aplicações Corporativas da Universidade Cidade de São Paulo UNICID Licença de Uso Este trabalho está licenciado sob uma Licença

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução App de exemplo Implementação do exemplo Testes realizados

Leia mais

Sumário. Capítulo 1 O que é o PHP?... 19. Capítulo 2 Instalação do PHP... 23. Capítulo 3 Noções básicas de programação... 25

Sumário. Capítulo 1 O que é o PHP?... 19. Capítulo 2 Instalação do PHP... 23. Capítulo 3 Noções básicas de programação... 25 9 Sobre o autor... 8 Introdução... 15 Capítulo 1 O que é o PHP?... 19 Características do PHP...20 Gratuito e com código aberto...20 Embutido no HTML...20 Baseado no servidor...21 Bancos de dados...22 Portabilidade...22

Leia mais

PHP. O navegador é responsável pelo tratamento do script. Utilizado para diminuir o processamento do servidor

PHP. O navegador é responsável pelo tratamento do script. Utilizado para diminuir o processamento do servidor PHP Lirisnei Gomes de Sousa lirisnei@hotmail.com Jair C Leite jair@dimap.ufrn.br Scripts Client-Side O navegador é responsável pelo tratamento do script JavaScript e VBScript Utilizado para diminuir o

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução App de exemplo Implementação do exemplo Testes realizados

Leia mais

Programação para Internet I

Programação para Internet I Programação para Internet I Aulas 09 e 10 Fernando F. Costa nando@fimes.edu.br Formulários O formulário representa o modo mais importante de interatividade que a linguagem HTML oferece. Um formulário pode

Leia mais

Redes de Computadores. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Redes de Computadores. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Redes de Computadores Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Nível de Aplicação Responsável por interafir com os níveis inferiores de uma arquitetura de protocolos de forma a disponibilizar

Leia mais

PHP. Hypertext Pre-Processor

PHP. Hypertext Pre-Processor PHP Hypertext Pre-Processor O que é o PHP? Uma linguagem de scripting é uma linguagem cujo código não tem de ser compilado para ser executado! O código escrito é interpretado em tempo de execução para

Leia mais

Conteúdo. Especificação HTTP v1.1

Conteúdo. Especificação HTTP v1.1 Conteúdo Introdução... 2 Início e comandos básicos... 2 Exemplo método GET... 3 Exemplo método POST... 3 Códigos de retorno... 4 Exemplo para envio em Cold Fusion... 4 Exemplo para envio em PHP... 5 Exemplo

Leia mais

Nota de Aplicação. Relatório em HTML no Vijeo Citect 1.0. Suporte Técnico Brasil. Versão:

Nota de Aplicação. Relatório em HTML no Vijeo Citect 1.0. Suporte Técnico Brasil. Versão: Nota de Aplicação Relatório em HTML no Vijeo Citect Versão: 1.0 Suporte Técnico Brasil Especificações técnicas Hardware: Software: Versão: Vijeo Citect 7.40 SP 2 SQL Server 2012 Suporte Técnico Brasil

Leia mais

1.264 Lição 11. Fundamentos da Web

1.264 Lição 11. Fundamentos da Web 1.264 Lição 11 Fundamentos da Web Navegadores e servidores da Web A Internet é apenas um conjunto de redes interconectadas livremente. Um conjunto de redes de área local conectado via redes de área ampla

Leia mais

Guia de Consulta Rápida. PHP com XML. Juliano Niederauer. Terceira Edição. Novatec

Guia de Consulta Rápida. PHP com XML. Juliano Niederauer. Terceira Edição. Novatec Guia de Consulta Rápida PHP com XML Juliano Niederauer Terceira Edição Novatec Copyright 2002 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida

Leia mais

CAPITULO 5 COMANDO DE FLUXO IF

CAPITULO 5 COMANDO DE FLUXO IF CAPITULO 5 COMANDO DE FLUXO IF Sempre que for necessária a tomada de decisão dentro de um programa, você terá que utilizar um comando condicional, pois é por meio dele que o PHP decidirá que lógica deverá

Leia mais

www.coldfusionbrasil.com.br

www.coldfusionbrasil.com.br www.coldfusionbrasil.com.br 2000 TRABALHANDO COM E-MAILS 3 ENVIANDO E-MAILS COM CFMAIL 3 ENVIANDO E-MAIL BASEADO EM UM FORMULÁRIO 4 UTILIZANDO QUERY PARA ENVIAR E-MAILS 5 ENVIANDO E-MAIL PARA MÚLTIPLOS

Leia mais

Os componentes de um formulário são: Form, Input, Select e AreaText

Os componentes de um formulário são: Form, Input, Select e AreaText HTML Formulário O elemento FORM, da HTML, é o responsável por prover documentos interativos no ambiente WWW de forma que uma pagina web exibida a um usuário possa submeter um conjunto de dados, informados

Leia mais

Basicamente iremos precisar de uma base de dados na qual iremos armazenar os registros feitos pelos vistantes: Vamos armazenar os seguintes dados:

Basicamente iremos precisar de uma base de dados na qual iremos armazenar os registros feitos pelos vistantes: Vamos armazenar os seguintes dados: Livro de Visitas Basicamente iremos precisar de uma base de dados na qual iremos armazenar os registros feitos pelos vistantes: Vamos armazenar os seguintes dados: ID nome email mensagem data O código

Leia mais

Programação Web Prof. Wladimir

Programação Web Prof. Wladimir Programação Web Prof. Wladimir Linguagem PHP @wre2008 1 Sumário PHP: Tipos de dados; Manipulação de dados; Utilizando formulário. @wre2008 2 Tipos de dados As variáveis são declaradas no momento de sua

Leia mais

Internet e Programação Web

Internet e Programação Web COLÉGIO ESTADUAL PEDRO MACEDO Ensino Profissionalizante Internet e Programação Web 3 Técnico Prof. Cesar 2014 1. PHP e MySQL O MySQL é o gerenciador de banco de dados mais usado com o PHP. Existem muitas

Leia mais

APOSTILA PHP PARTE 1

APOSTILA PHP PARTE 1 APOSTILA PHP PARTE 1 1. Introdução O que é PHP? PHP significa: PHP Hypertext Preprocessor. Realmente, o produto foi originalmente chamado de Personal Home Page Tools ; mas como se expandiu em escopo, um

Leia mais

Conteúdo. Linguagem Estática x Dinâmica O que é PHP? Configurando o Ambiente do PHP Sintaxe

Conteúdo. Linguagem Estática x Dinâmica O que é PHP? Configurando o Ambiente do PHP Sintaxe Unidade IV Introdução à Linguagem PHP Parte 1 Professor Fabiano de Paula Soldati fpsoldati@yahoo.com.br http://br.groups.yahoo.com/group/professorsoldati/ Conteúdo Linguagem Estática x Dinâmica O que é

Leia mais

2008.1. A linguagem SQL

2008.1. A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

Tutorial de Integração HTML

Tutorial de Integração HTML Tutorial de Integração HTML Sumário Tutorial de Integração - HTML... 3 Configurando Envio... 4 Enviando Múltiplas SMS... 6 Enviando Múltiplos SMS a partir de um arquivo CSV... 7 Glossário... 8 2 Tutorial

Leia mais

Interagindo com Banco de Dados

Interagindo com Banco de Dados Interagindo com Banco de Dados Até agora não falamos de banco de dados, pois gostaríamos prime iro de te preparar para o uso do banco de dados dentro do Framework MVC. Mas antes de falarmos do framework

Leia mais

Programando em PHP. Conceitos Básicos

Programando em PHP. Conceitos Básicos Programando em PHP www.guilhermepontes.eti.br lgapontes@gmail.com Conceitos Básicos Todo o escopo deste estudo estará voltado para a criação de sites com o uso dos diversos recursos de programação web

Leia mais

Manual de Envio de Torpedos SMS Comtele. Introdução... 02. 1.Cadastrar um Grupo... 02. 2.Inserir ou Importar Contatos... 06. 2.1 Ordem de envio...

Manual de Envio de Torpedos SMS Comtele. Introdução... 02. 1.Cadastrar um Grupo... 02. 2.Inserir ou Importar Contatos... 06. 2.1 Ordem de envio... Manual de Envio de Torpedos SMS Comtele Índice Introdução... 02 1.Cadastrar um Grupo... 02 2.Inserir ou Importar Contatos... 06 2.1 Ordem de envio... 08 3.Criar e Enviar uma Mensagens... 12 4. Salvando

Leia mais

PHP: Cookies e Sessões

PHP: Cookies e Sessões PHP: Cookies e Sessões Programação de Servidores Marx Gomes Van der Linden Protocolo HTTP O protocolo HTTP não tem conceito de sessões. Modelo simples de Requisição e Resposta. http://marx.vanderlinden.com.br/

Leia mais

Capítulo 4. Programação em ASP

Capítulo 4. Programação em ASP Índice: CAPÍTULO 4. PROGRAMAÇÃO EM ASP...2 4.1 REGISTRAR...2 4.1.1 Códigos para configuração do objeto...2 4.1.2 Formulário para transferir dados da impressão digital...3 4.1.3 Código Javascript para registro

Leia mais

www.coldfusionbrasil.com.br

www.coldfusionbrasil.com.br www.coldfusionbrasil.com.br 2000 1 O que é Cold Fusion? 3 Arquitetura Cold Fusion 3 Cold Fusion Markup Language (CFML) 4 O que devo saber para programar em CFML? 4 HTML 4 Desenho de Banco de Dados Relacionais

Leia mais

Introdução ao IDE Netbeans (Programação Java)

Introdução ao IDE Netbeans (Programação Java) Universidade Federal do ABC (UFABC) Disciplina: Processamento da Informação (BC-0505) Assunto: Java e Netbeans Introdução ao IDE Netbeans (Programação Java) Conteúdo 1. Introdução... 1 1.1. Programas necessários...

Leia mais

Meta Programming. Nelson Ferraz nferraz@gmail.com

Meta Programming. Nelson Ferraz nferraz@gmail.com Meta Programming Nelson Ferraz nferraz@gmail.com Resumo Meta Programming Code Generation AppML 23/11/07 Nelson Ferraz 2 Meta Programming Programas que manipulam programas Geração de

Leia mais

ADMINISTRAÇÃO DE BANCO DE DADOS

ADMINISTRAÇÃO DE BANCO DE DADOS ADMINISTRAÇÃO DE BANCO DE DADOS ARTEFATO 02 AT02 Diversos I 1 Indice ESQUEMAS NO BANCO DE DADOS... 3 CRIANDO SCHEMA... 3 CRIANDO TABELA EM DETERMINADO ESQUEMA... 4 NOÇÕES BÁSICAS SOBRE CRIAÇÃO E MODIFICAÇÃO

Leia mais

SISTEMA GERENCIAMENTO DE PRODUTOS PHP E MySQL 1. APRESENTAÇÃO

SISTEMA GERENCIAMENTO DE PRODUTOS PHP E MySQL 1. APRESENTAÇÃO SISTEMA GERENCIAMENTO DE PRODUTOS PHP E MySQL 1. APRESENTAÇÃO Este é um sistema de controle de produtos, onde o usuário irá entrar com o login e a senha, e se ele for um usuário cadastrado na tabela usuários

Leia mais

Redes de Computadores LFG TI

Redes de Computadores LFG TI Redes de Computadores LFG TI Prof. Bruno Guilhen Camada de Aplicação Fundamentos Fundamentos Trata os detalhes específicos de cada tipo de aplicação. Mensagens trocadas por cada tipo de aplicação definem

Leia mais

Programação para Internet I

Programação para Internet I Programação para Internet I Aula 6 PHP: Include, Require, Variáveis de ambiente Prof. Teresinha Letícia da Silva leticiasfw@yahoo.com.br Inclusão de arquivos com Include e Require no PHP Uma técnica muito

Leia mais

Introdução ao PHP. Prof. Késsia Marchi

Introdução ao PHP. Prof. Késsia Marchi Introdução ao PHP Prof. Késsia Marchi PHP Originalmente PHP era um assíncrono para Personal Home Page. De acordo com convenções para atribuições de nomes recursivas do GNU foi alterado para PHP Hypertext

Leia mais

Programação Web com PHP. Prof. Wylliams Barbosa Santos wylliamss@gmail.com Optativa IV Projetos de Sistemas Web

Programação Web com PHP. Prof. Wylliams Barbosa Santos wylliamss@gmail.com Optativa IV Projetos de Sistemas Web Programação Web com PHP Prof. Wylliams Barbosa Santos wylliamss@gmail.com Optativa IV Projetos de Sistemas Web Agenda O que é PHP? O que da pra fazer com PHP? Como a web funciona? Onde, quando e por que

Leia mais

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo:

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo: Disciplina: Tópicos Especiais em TI PHP Este material foi produzido com base nos livros e documentos citados abaixo, que possuem direitos autorais sobre o conteúdo. Favor adquiri-los para dar continuidade

Leia mais

Bases de Dados. Parte VII Interface PHP ao MySQL

Bases de Dados. Parte VII Interface PHP ao MySQL Bases de Dados MI / LCC / LEG / LERSI / LMAT Parte VII Interface PHP ao MySQL 1 O Que é o PHP? O PHP é uma linguagem de programação especialmente desenhada para servidores web (server-side scripting language).

Leia mais

Teleprocessamento e Redes

Teleprocessamento e Redes Teleprocessamento e Redes Aula 21: 06 de julho de 2010 1 2 3 (RFC 959) Sumário Aplicação de transferência de arquivos de/para um host remoto O usuário deve prover login/senha O usa duas conexões TCP em

Leia mais

Trabalho do Grupo Nº 3

Trabalho do Grupo Nº 3 UNIVERSIDADE KIMPA VITA ESCOLA SUPERIOR POLITÉCNICA DO UIGE DEPARTAMENTO DOS ASSUNTOS ACADÉMICO Trabalho do Grupo Nº 3 Caso prático Curso: Engenharia Informática Nível: 4º Ano Sala: 30 Orientado Por: Ano

Leia mais

Aula Extra Conexão ODBC para aplicações Delphi 7 que usam SQL Server 2005

Aula Extra Conexão ODBC para aplicações Delphi 7 que usam SQL Server 2005 Nome Número: Série Aula Extra Conexão ODBC para aplicações Delphi 7 que usam SQL Server 2005 Proposta do projeto: Competências: Compreender a orientação a objetos e arquitetura cliente-servidor, aplicando-as

Leia mais

mkdir /srv/www/default/html/calculadora/imagens mkdir /srv/www/default/html/calculadora/blocos

mkdir /srv/www/default/html/calculadora/imagens mkdir /srv/www/default/html/calculadora/blocos Programando em PHP www.guilhermepontes.eti.br lgapontes@gmail.com Criando uma Calculadora Primeiramente deve se criar uma estrutura para armazenar os arquivos necessários para o funcionamento da calculadora.

Leia mais

Segurança Web com PHP 5 Douglas V. Pasqua Zend Certified Enginner

Segurança Web com PHP 5 Douglas V. Pasqua Zend Certified Enginner Segurança Web com PHP 5 Douglas V. Pasqua Zend Certified Enginner Objetivo Disseminar boas práticas para o desenvolvimento de código seguro em php. Exemplificar como são feitos os ataques e suas respectivas

Leia mais

2008.1 SQL. Autor: Renata Viegas

2008.1 SQL. Autor: Renata Viegas SQL Autor: Renata Viegas A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua

Leia mais

PROJETO PEDAGÓGICO DE CURSOS

PROJETO PEDAGÓGICO DE CURSOS 1 de 6 PROJETO PEDAGÓGICO DE CURSOS BURITREINAMENTOS MANAUS-AM NOVEMBRO / 2014 2 de 6 PACOTES DE TREINAMENTOS BURITECH A Buritech desenvolveu um grupo de pacotes de treinamentos, aqui chamados de BuriPacks,

Leia mais

Internet e protocolos web. A Internet é uma rede descentralizada de recursos computacionais. Topologia tem de fornecer caminhos alternativos

Internet e protocolos web. A Internet é uma rede descentralizada de recursos computacionais. Topologia tem de fornecer caminhos alternativos Internet e protocolos web A Internet é uma rede descentralizada de recursos computacionais Tolerante a falhas (no single point of failure) Topologia tem de fornecer caminhos alternativos entre 2 computadores

Leia mais

Programação Web Prof. Wladimir

Programação Web Prof. Wladimir Programação Web Prof. Wladimir HTML - Formulários @wre2008 1 Sumário Formulários HTML @wre2008 2 Formulários: Muitos elementos de um formulário html são definidos pela tag . Cada tipo de elemento

Leia mais

Prof. Roberto Franciscatto 4º Semestre - TSI - CAFW. Free Powerpoint Templates Page 1

Prof. Roberto Franciscatto 4º Semestre - TSI - CAFW. Free Powerpoint Templates Page 1 Segurança na Web Capítulo 9: Segurança em Aplicações Web Prof. Roberto Franciscatto 4º Semestre - TSI - CAFW Page 1 Introdução Quando se fala em segurança na WEB é preciso pensar inicialmente em duas frentes:

Leia mais

O protocolo HTTP. O que é o protocolo HTTP?

O protocolo HTTP. O que é o protocolo HTTP? O protocolo HTTP Você aprenderá: O que é e como funciona o protocolo HTTP. Quais são as partes de um pedido HTTP. Quais são as partes de um a resposta HTTP. IIS - HTTP 1 O que é o protocolo HTTP? Hyper

Leia mais

TEORIA BÁSICA SOBRE LINGUAGEM PHP

TEORIA BÁSICA SOBRE LINGUAGEM PHP PHP - Introdução Vantagens do Uso do PHP O php é uma linguagem de programação para ambiente web ou seja com ela, você pode desenvolver aplicações que possam ser acessadas via browser (netscape,internet

Leia mais

PL/pgSQL. Introdução. Introdução. Introdução

PL/pgSQL. Introdução. Introdução. Introdução Introdução PL/pgSQL Banco de Dados II Prof. Guilherme Tavares de Assis PL/pgSQL (Procedural Language for the PostgreSQL) é uma linguagem procedural carregável desenvolvida para o SGBD PostgreSQL, que possui

Leia mais

Nota de aplicação: Desenvolvimento de Páginas no PO9900 - WebGate

Nota de aplicação: Desenvolvimento de Páginas no PO9900 - WebGate Nota de aplicação NAP080 Desenvolvimento de Páginas no PO9900 - WebGate Altus Sistemas de Informática S.A. Página: 1 Sumário 1. Introdução...3 1.1 Páginas do WebGate... 3 2. Árvore de Navegação...3 3.

Leia mais

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger A tecnologia de banco de dados permite persistir dados de forma a compartilha-los com varias aplicações. Aplicação 1 aplicação 2 aplicação 3 SGDB Banco

Leia mais

1-03/11/03 INTRODUÇÃO

1-03/11/03 INTRODUÇÃO 1-03/11/03 INTRODUÇÃO JavaScript é uma linguagem que permite injetar lógica em páginas escritas em HTML (HiperText Mark-up Language). As páginas HTML podem ser escritas utilizando-se editores de texto,

Leia mais

$XOD2VREMHWRVGRQDYHJDGRU

$XOD2VREMHWRVGRQDYHJDGRU $XOD2VREMHWRVGRQDYHJDGRU Nesta aula continuaremos a tratar dos objetos em JavaScript. Veremos agora detalhes sobre a KLHUDUTXLD GRV REMHWRV GH ZLQGRZ, que funciona como REMHWR JOREDO. Depois você aprenderá

Leia mais

COMO FUNCIONA UM FORMULÁRIO

COMO FUNCIONA UM FORMULÁRIO FORMULÁRIOS Constitui-se numa das formas de a máquina cliente enviar informações para que um programa no servidor receba estes dados, processe-os e devolva uma resposta ao usuário, por meio do navegador,

Leia mais

FUNCTION ) RETURNS INTEGER AS $$ DECLARE

FUNCTION ) RETURNS INTEGER AS $$ DECLARE PERFORM O comando PERFORM permite a execução de um comando SELECT desprezando o resultado do comando. PERFORM query; A variável especial FOUND é definida como verdadeiro se a instrução produzir pelo menos

Leia mais

indica o nome do campo pelo qual podemos acessar.

indica o nome do campo pelo qual podemos acessar. Formulários Em geral Com o Javascript, os formulários Html tomam outra dimensão. Não esqueça que em Javascript, podemos acessar cada elemento de um formulário para, por exemplo, ler ou escrever um valor,

Leia mais

INTRODUÇÃO À LINGUAGEM PHP CESAR BEZERRA TEIXEIRA,MSC

INTRODUÇÃO À LINGUAGEM PHP CESAR BEZERRA TEIXEIRA,MSC INTRODUÇÃO À LINGUAGEM PHP CESAR BEZERRA TEIXEIRA,MSC O presente texto não tem a pretensão de ser uma referência na linguagem PHP, a intenção é apresentar uma breve introdução a esta tecnologia e despertar

Leia mais

Desenvolvimento de Sistemas Web Prof. Leandro Roberto. Aula 18 JavaScript: Eventos MySQL PHP (insert, update e delete)

Desenvolvimento de Sistemas Web Prof. Leandro Roberto. Aula 18 JavaScript: Eventos MySQL PHP (insert, update e delete) Desenvolvimento de Sistemas Web Prof. Leandro Roberto Aula 18 JavaScript: Eventos MySQL PHP (insert, update e delete) JavaScript Eventos Alguns eventos de uma página HTML podem ser interceptados e programados

Leia mais

Lista de operadores de comparação - > Maior que - < Menor que - <= Menor ou igual a - >= Maior ou igual a - === Igual a -!

Lista de operadores de comparação - > Maior que - < Menor que - <= Menor ou igual a - >= Maior ou igual a - === Igual a -! Página1 Javascript JavaScript (JS) é uma linguagem de programação client side Funciona no navegador do usuário. É uma linguagem baseada em objetos. "Walmir".length; 6 Para que serve - fazer websites responder

Leia mais

Sumário. Capítulo 1 Revisão de PHP... 19. Capítulo 2 Melhorando o processamento de formulários... 46

Sumário. Capítulo 1 Revisão de PHP... 19. Capítulo 2 Melhorando o processamento de formulários... 46 9 Sumário O Autor... 8 Introdução... 15 Quem deve ler este livro... 15 Como este livro está organizado...16 Download do código-fonte do livro... 18 Capítulo 1 Revisão de PHP... 19 Iniciando em PHP... 19

Leia mais

Tutorial: Gravação de imagens em banco de dados MySQL utilizando PHP

Tutorial: Gravação de imagens em banco de dados MySQL utilizando PHP Tutorial: Gravação de imagens em banco de dados MySQL utilizando PHP Versão 1.0 Agosto de 2005 Pág. 1/12 Desenvolvido por Rafael Lossurdo Agosto de 2005 INTRODUÇÃO...3 REQUESITOS

Leia mais