* Linux na web - Existem sites interativo na web (pergunta/resposta) -- site de busca: yahoo, altavista, etc. --- pedido: quero páginas na internet com certas palavras chaves --- resposta: relação de páginas (URLs) com as palavras chaves -- compra de livro --- pedido: quero o preço de certo livro --- resposta: preço do livro --- pedido: quero comprar o livro --- resposta: então me passe o seu cartão de crédito --- pedido: aqui está o número do cartão --- resposta: estamos embarcando o livro para o senhor -- cadastro no ViaLinuxis: +http://www.pcs.usp.br/~jkinoshi --- pedido: quero receber dicas de Linux neste email --- resposta: você está inscrito na lista e passará a receber dicas do uso do Linux e webdesign ** cliente/servidor - cliente: pede o serviço -- o computador do usuário -- preenche um formulário - servidor: serve o pedido -- o computador na internet -- retorna uma resposta (pode ser um novo formulário) - tema: Como desenvolver um servidor usando o Linux como plataforma de desenvolvimento de um site interativo? ** Como por um servidor no ar? - hardware: um computador ligado na internet -- ligação física - (diversas possibilidades): PPP, ethernet, speedy-ADSL, etc. -- roteadores - cria rota para o computador, -- firewall - evitar invasões -- sistema de backup - armazena dados de forma duplicada -- nonbreak - evita pane em winchester no caso de perda de energia - shutdown suave -- Por que não alugar um site? - software: -- servidor web - envia páginas HTML estáticas ou respostas de formulários -- programa de resposta a formulários: --- roda no servidor: Perl, PHP, SQL, --- roda no cliente: JavaScript, Java - especificado pelo servidor ** Objetivo: focar no software de resposta a formulários - Como criar o software para tratar de formulários? -- visão geral: internet e web -- formulários: --- cliente - JavaScript; --- servidor - Perl, PHP -- SQL (MySQL) - interface com Perl,PHP - Outra possibilidade: -- chat - applet Java - estudo dos logs no Linux/Unix :rem 11:06 11:09 - Objetivo: dar uma visão geral de como as coisas se encaixam dentro de um servidor web. Hoje em dia é muito fácil e barato fazer um servidor web. Basta instalar o Linux (se estiver no RedHat, como servidor web, por exemplo) e conectá-lo em rede. Se você possui uma empresa com diversos micros e quiser colocar o Linux em sua rede local, basta inserí-lo em sua intranet. Já para se colocá-lo na internet existem diversas opções. Se você faz questão de ver seu próprio computador como um servidor web na internet, talvez a forma mais fácil (com várias desvantagens) é aproveitar a própria linha discada e seu computador pode entrar como servidor web toda vez que a conexão ppp for estabelecida. A nossa palestra não tem como objetivo ensinar a instalar a rede. O objetivo é o seguinte: uma vez que toda a instalação (cabeamento, placas de rede, configuração do DNS, firewall, roteamento, etc.) foi feita você vai querer disponibilizar informação ao usuário quer seja através de páginas HTML estáticas ou através de respostas a formulários. Observação: você não precisa saber nada sobre firewall, roteadores, etc. Você pode alugar uma máquina Unix/Linux que proverá as informações que você quer. A palestra é adequada para você que está interessado em construir um site na internet interativo, onde algumas pessoas preenchem alguma informação que fica disponibilizada para outras pessoas. Veja alguns casos onde isso ocorre: - no Yahoo, você cadastra o seu próprio site preenchendo certos formulários. Esta informação pode ser visível por outras pessoas quando estiverm fazendo uma busca no Yahoo. O esquema é diferente do altavista onde se usa robos de internet. - imagine um site para escolas. O professor preenhce em um formulário a nota dos alunos de sua classe. O pai pode consultar as notas pela internet. Isto é válido para frequencias de alunos etc. Indo mais além podemos pensar em educação à distância. Um possível caso de educação à distância é fazer com que o material que será apresentado para o aprendizado do aluno depende de suas respostas a testes. Os testes podem identificar quais são os pontos fortes e fracos dos alunos fazendo com que o tema de estudo varie conforme o desempenho do aluno. - um site de laboratório médico. O laboratório coloca o resultado dos exames médicos na internet. - o próprio ViaLinuxis onde o usuário se cadastra em um boletim (utilizando um formulário) e passa a receber informações. - o fórum do ViaLinuxis. - um sistema de compra e venda de mercadorias. Em um sistema de compra e venda, além de todo tratamento do formulário ainda existe o problema da conexão segura para a passagem do número de cartão crédito e isso não será discutido aqui. - um sistema de chat. Todos estes sistemas podem envolver o tratamento de formulários e a armazenagem de informação do lado do servidor. Pergunta: como se faz isso? Existem diversas siglas que talvez você já tenha ouvido: java, javascript, perl, cgi, cookie, php, sql, etc. Todas estas tecnologias podem estar trabalhando em conjunto dentro do seu site. Tão importante quanto conhecer o que é javascript por exemplo, é saber como se deve aplicar na construção do site. Vamos apresentar como você pode trabalhar com tudo isso, construindo o seu servidor web. Eu pessoalmente costumo desenvolver um site dentro de minha máquina Linux e depois baixar o site em um outro servidor Unix (que pode ser um Linux ou uma Sun). É isso que pretendemos apresentar nesta palestra. :/rem ** internet e web - internet possibilita: -- troca de arquivos: ftp -- uso de um computador remotamente: telnet -- web --- o serviço mais popular da internet --- visto via browser: netscape, explorer :rem 11:37- 11:38 :/rem *** Como começou a internet? - Histórico: ligar computadores em rede sempre foi uma boa idéia. -- compartilhar recursos: impressora, disco; trocar dados entre computadores, etc. - Problema: quem estabelece o protocolo (forma de comunição)? :[conexão física (cabo, pinagem do conector, velocidade de comunicação); definir o formato da mensagem ( controle - endereço origem/destino; os dados), etc. ?] -- disputa: quem vence? A IBM? A Digital? - Solução: vamos criar um protocolo independente do fabricante acima deste protocolo! - internet: ligação entre as redes já existentes -- os dados trafegam de um computador a outro passando em várias redes de computadores até chegar no computador final. :rem 11:43-11:46 Os computadores surgiram no final da década de 40 e logo perceberam que era conveniente se ter computadores interligados entre si de forma a compartilharem recursos. O problema era que cada fabricante definia o seu próprio protocolo de transferência de dados e era muito difícil que os dados pudessem ser trocados entre diferentes computadores. As dificuldades envolvem problemas como: - o número de fios que devem ser ligados entre um computador e outro. - se a transferência de dados será síncrona (junto com um sinal de clock) ou assíncrona. etc. Mas independentemente do protoco no final das contas um computador acabará trocando dados com outro computador. Imagine agora que estes dados, contenham informações num nível mais lógico como por exemplo, o endereço do computador com o qual o dado será trocado independentemente da rede física (telefone, satélite, cabo ethernet, etc.). Esta é a idéia da internet que significa "entre redes". A idéia é possibilitar conexões entre diversas redes de computadores não importando o tipo de rede (ethernet, token ring, via satélite, etc.) desde que todas as mensagens obedeçam uma certa estrutura lógica. Imagine agora que você queira transferir um arquivo de 1 Mbyte de um computador a outro usando o modem. No meio da transferência ocorre um problema e o byte chega errado ao computador destino. Existem vários problemas: como será identificado o erro? Será que o erro só seria descoberto no final da transmissão, ou pior ainda, quando o arquivo estivesse em uso? Caso o erro foi detectado, será que seria necessário retransmitir todo o arquivo por causa de um byte errado? Se a mensagem (o arquivo) for quebrada em pacotes então pode-se indentificar o erro verificando-se se o pacote foi transmitido de forma correta. Caso haja erro na transmissão do pacote então pede-se uma retransmissão. :/rem *** internet - Surgiu no meio da guerra fria. - problema: como garantir uma comunicação segura usando um meio de comunicação falho? - 1: ao transferir um arquivo de 1 Mbyte ocorre um erro em um bit no meio da comunicação. -- O que fazer? --- retransmite tudo de novo? ---- E se ocorrer um outro erro em outro byte? -- solução quebrar em pacotes - 2: O que ocorre se o computador que está na rota dos dados for atingido por um míssil russo? -- buscar rota alternativa para os novos pacotes que vem chegando. :rem 11:47- 11:48 :/rem **** Protocolo IP - solução: quebrar a mensagem (ex: bytes do arquivo) em pacotes - definiram o protocolo IP (base da internet) - transfere pacotes de dados de um computador a outro. -- Cada computador recebe um número único no mundo: número IP - O protocolo IP serve de base para: -- o TCP que permite uma comunicação segura -- o UDP que apenas troca pacotes (ex: envio de hora) :rem 11:53-11:54 :/rem **** Protocolo TCP - Transmission Control Protocol - quebra uma mensagem em pacotes ao enviar - reagrupa os pacotes ao receber - corrige erros -- pede para retransmitir pacotes errados. ***** TCP/Conexão lógica. - É como se tivesse um fio que liga dois computadores. - cada ponta do fio está em um socket (dado por um número). - Ex: o computador cliente quer se conectar com o porta 80 de 143.107.164.1 -- dados são enviados do cliente para o servidor e vice-versa. *** serviços na internet (em TCP/IP) - telnet: abre uma seção no computador destino: - ftp (file transfer protocol): transfere arquivos entre os dois computadores (get,put,mget,mput). - web (http): é como a maioria vê a internet. Através do http recebemos as páginas HTML que são mostradas nos browsers (netscape, explorer). *** A web. - O protocolo http (hypertext transfer protocol) surgiu em 1991 no laboratório CERN na Europa. - Antes: -- serviços como telnet, ftp, etc. usadae difundida no meio acadêmico. -- perfil do usuário: acostumado com máquinas Unix que podia manipular os comandos com uma certa facilidade. - Depois: -- facilidade de uso -- popularização --- comércio eletrônico --- aulas virtuais **** O HTML - HTML - linguagem de markup de hiper texto - hipertexto = texto + tags (etiquetas). -- Exemplo 1: Se eu quero escrever algo em negrito: :pre isto aparece em negrito. :/pre e se vê: isto aparece em negrito. -- Exemplo 2: links - leitura não sequencial :pre O HTML :/pre e se vê: O HTML **** Experiência: simulação do browser via telnet - acesso ao servidor web via telnet. Experimente: :pre telnet www.pcs.usp.br 80 GET /~jkinoshi/ HTTP/1.0 (ao digitar no windows nao ecoa) dois enters :/pre - O que acontece? -- a conexão foi feita -- cliente: o pedido do arquivo /~jkinoshi/ foi feito via GET -- servidor: envia a página retornada -- servidor: encerra a conexão - O servidor web tem de enviar as strings HTML -- de arquivos .html -- de saídas de programas (CGI-scripts) **** Formulários - o cliente: preenche dados do formulário - POST (ou envia dados via URL - GET) - o servidor: lê, atende o pedido e monta resposta. ***** formulário HTML

Inscrição no ViaLinuxis

Email:

***** formulário fonte HTML :pre Inscrição no ViaLinuxis

Inscrição no ViaLinuxis

Email:


:/pre ***** Via URL, usando GET - /cgi-bin/jkinoshi/pa1.cgi?email=jkinoshi@pcs.usp.br ** O Linux - diversos aplicativos: editores de texto, imagem, etc. - interconexão com a internet, windows(samba), novel(mars) - plataforma de desenvolvimento de software - contrução de um web site no Linux/Unix. - Ex: uma tela do Linux: *** Como surgiu o Linux? - Linux Torvalds melhora o Minix (Andrew Tanembaum) - roda GCC (GNU) - 1991 - desenvolvimento com base na internet. - produtos para internet - controle das versões do kernel por Linus Torvalds. :rem O finlandês Linux Torvalds resolver fazer alterações no sistema operacional Minix do holandês Andrew Tanembaum. Ele consegui rodar o compilador GCC do GNU. Ele queria construir um sistema operacional do tipo Unix e viu que sozinho não iria conseguir tal proeza, disponibilizou o código em uma lista de discussão, na internet, em 1991, passou a receber ajuda de diversas pessoas e hoje temos o Linux como é. Ou seja, o Linux nasceu na internet. Além disso, o Linux é disponibilizado na internet. Todas as distribuidores de Linux utilizam a internet para realizarem as suas distribuições. Você pode encontrar ainda documentação, listas de discussão, etc. na internet. O protocolo TCP/IP surgiu em ambiente Unix e o Linux está muito bem equipado para trocar informações na web. :/rem *** Linux (cliente/servidor) - telnet - ftp - SQL - web - majordomo: controle de mailing-lists. - entre outros serviços (ssh) *** Linux como servidor web. - provê páginas HTML - dispara CGI-scripts -- interface com banco de dados -- interface com outros recursos (ex: email) **** Exemplo: O ViaLinuxis - hospedado em uma máquina Linux. - cadastro no boletim - pedido de confirmação via email. ** Formulários - lado Cliente -- JavaScript - lado Servidor -- Perl -- PHP *** Cliente - JavaScript - applets Java - flash **** JavaScript - linguagem script que roda no cliente. - dispara funções dependendo dos eventos associados à página. - útil em pré-verificação de formulários. - "efeitos especiais" -- mostrar URLs com efeitos especiais. ***** Exemplo simples.
- O HTML :pre
:/pre ***** JavaScript x cookies. - O que são cookies? -- memória do computador do cliente que pode ser acessada pelo servidor - Por que usar JavaScript com cookies? ****** Exemplo: JavaScript x cookies. - preenchimento do email no subscribe do ViaLinuxis. :pre Os boletins publicados :/pre *** Servidor - protocolo CGI - Common Gateway Interface -- especifica formato dos dados: cliente -> servidor; servidor -> cliente - Programa que implementa CGI-script: -- escrito em qualquer linguagem que obedece o protocolo CGI: - Procedimento padrão: -- receber os dados preenchidos no formulário --- separa os campos do formulário -- tratar os dados: --- em muitos casos, os dados são transformados em uma query SQL --- a query é enviada a um gerenciador de banco de dados. -- montar uma página HTML com a resposta --- o retorno da consulta à query SQL deve ser formatada como uma página HTML que é devolvida ao usuário. :rem Nessa relação temos: - o cliente: aquele que solicita o serviço. No caso o usuário pedindo a página HTML - o servidor: aquele que serve o serviço. No caso o computador que contém o servidor web. É praticamente o mesmo que ocorre quando se pede uma página HTML, a diferença é que a página HTML é montada na hora por um programa de computador (ex: o CGI-script) dinamicamente com base nos dados do formulário. O CGI-script (ou um PHP - semelhante ao ASP) pode fazer uma conexão com um banco de dados SQL, montar uma query SQL com base nos dados do formulário, obter a resposta e formatar uma página HTML que é enviada para o cliente. Veja a seguinte URL por exemplo: ve.cgi?perg=.... Isto significa que ... O cliente pode estar configurado de forma a se facilitar esta relação. Ao preencher um formulário é comum ter que se verificar se os dados foram preenchidos de forma correta. Pode-se adicionar código JavaScript em uma página HTML para essa finalidade. O JavaScript também permite diversos "efeitos especiais" na página como por exemplo alterar a cor de fundo, preenchimento semi-automático de dados no formulário, e manipulação de cookies. Às vezes é interessante que dados sejam armazenados também na memória do computador cliente. Por exemplo: pode-se armazenar os dados que o usuário digitou ao preencher um formulário na memória de seu coputador (o cookie). Quando o usuário voltar a esta página, os dados podem ser recuperados e colocados no formulário automaticamente com base no cookie. Isto é comum de ocorrer no caso de senhas. Vamos supor que o usuário precise de senha para entrar em uma determinada página HTML. Caso esta senha tenha sido armazenada em um cookie (na memória de seu próprio computador), o usuário não precisará de ficar digitando continuamente sua senha ao navegar em um local protegido. Do ponto de vista do cliente pode-se também estar Pode-se criar programas tanto do lado do cliente quanto do lado do servidor para :/rem **** Perl - linguagem de programação - criada por Larry Wall, base AWK. - script - não compila - escrita de CGI-script - forte característica: manipulação de strings. ***** Por que usar Perl para escrever scripts CGI? - script CGI manipula strings: -- identificar os parâmetros e seu conteúdo: matching -- criar uma query SQL envolve concatenar partes de comandos SQL (strings) com os dados já separados na etapa anterior (strings). -- Formatar o resultado da consulta (string) como uma página HTML envolve, por exemplo, diversas operações de substituição de um modelo (uma string) pelo resultado da consulta (outra string). ***** Perl, conceitos básicos - O Perl possui certas características diferentes mas não propõe nenhum novo paradigma. - Objetivo: ser confortável ao programador. - Trata expressões regulares, hash e possui boa interface com Unix. ****** expressões regulares - É um padrão - Exemplos: -- \d+ = uma sequencia de dígitos. Ex: 123, 567, 321342 -- \w+\d = uma sequencia de letras ou dígitos (uma ou mais) seguida de um dígito. Ex: abd1, EIlas7 -- \w+(\d|\.) = uma sequencia de letras ou dígitos seguida de um digito ou de um ponto. Ex: via8, via. -- nome:\s*.* = a palavra nome: seguida de zero ou mais espaços (os espaços são opcionais) seguido de qualquer caracter zero ou mais vezes. Ex: "nome: Jorge" -- nome:\s*(.*) = igual ao anterior, mas os parênteses servem para capturar em $1 este valor. Ex: No caso anterior $1 = Jorge - Notação: -- \w == [a-zA-Z0-9_] -- \d == [0-9] -- \s == [ \r\t\n\f] ******* Como o Perl usa expressões regulares? - Matching: verifica se uma string está de acordo com uma expressão regular. - Substituição: faz o matching, recorta um pedaço da string e substitui por outro pedaço. - split: quebra uma string em uma lista. ******** Matching :pre if ($linha =~ /nome:\s*(.*)/) { $nome = $1; # extrai o nome } :/pre ******** Substituição - substitui uma sequencia de digitos pela palavra DIGITO (faz isto apenas uma vez) :pre $linha =~ s/\d+/DIGITO/; :/pre -- Ex: :pre $linha = "asdf 234 asdf 1234 "; :/pre após a execução do comando temos: :pre $linha == 'asdf DIGITO asdf 1234 ' :/pre - substituição em todas as ocorrências :pre $linha =~ s/\d+/DIGITO/g; :/pre resultado para $linha = "asdf 234 asdf 1234 ": :pre 'asdf DIGITO asdf DIGITO ' :/pre ******** split O Perl trabalha com listas e é extremamente simples transformar strings em listas e vice-versa: :pre @gomos = split(/\s+/,$linha); :/pre Para: :pre $linha = "asdf 234 asdf 1234 "; :/pre temos: :pre 0 'asdf' 1 234 2 'asdf' 3 1234 :/pre ******** exercício Para $linha = "Vamos ver234 alguns 90 dados"; @gomos = split(/\d+/,$linha); ********* resposta :pre 0 'Vamos ver' 1 ' alguns ' 2 ' dados' :/pre ****** hash - Como uma array, onde os índices são strings. -- array : --- ex: a[0], nome[4]; -- hash --- o índice é uma string. --- é um banco de dados simples: pares de chave e conteúdo. -- Exemplos: :pre $formacao{"Jorge"} = "engenheiria eletronica, mod: digital"; $turma{"Jorge"} = 1985; :/pre ****** interface com Unix - ativa comando do Unix e obtém a resposta como uma string. -- $resposta = qx/comando/; - faz interface com DBMS que permitem que se mapeie hashs. ******* Exemplo: o comando ps dentro do Perl: - executa comando e obtém resposta: -- $lixo = qx/ps/; - Para quebrar $lixo em linhas basta fazer: -- @lixo = split(/\n/,$lixo); - Para tratar cada uma das linhas basta fazer: :pre foreach $i (@lixo) { } :/pre ***** Exemplo: script CGI - interface email:
:pre email:
:/pre ***** Exemplo: script CGI - programa - Em: /cgi-bin/jkinoshi/pa1.cgi :pre #!/usr/bin/perl -w use CGI qw/:standard/; print header, start_html('Inscrição no ViaLinuxis'), h1('Inscrição no ViaLinuxis'), start_form, "Email: ",textfield('email'),p, submit, end_form, hr; if (param('email')) { print "Seu email é: " ,em(param('email')),p, hr; } print end_html; :/pre **** php (Personal Home Page) - linguagem especializada em scripts CGI (~ ASP) - página HTML com código PHP inserido - trabalha junto com o apache -- módulo apache. -- [compilado junto com o apache]. - ver http://www.php.net/ para obter código fonte. - ver tutorial em: http://www.php.net/tut.php ***** formulário de entrada para o pa2.php3 - A variável $email recebe o conteúdo do textfield em pa2.php3: email:
:pre email:
:/pre ***** pa2.php3 :pre :/pre Resultado:
O seu email é: jkinoshi@pcs.usp.br ** Como armazenar informação? - Um servidor web precisa armazenar informação, mas como? - usar a própria estrutura de arquivos :[no caso do cadastro de emails no ViaLinuxis, concatenar o último email recebido dentro de um arquivo] -- problema: será que o acesso é rápido? :[como saber se um determinado email faz parte ou não do ViaLinuxis - preciso desse dado para o fórum] - usar um banco de dados (chave, conteúdo). -- GDBM (hash) - "man gdbm" -- DB (BTree) - "man db" - usar banco de dados relacional. -- MySQL -- Oracle *** SQL - dados organizados em tabela - criação de tabela: nome e colunas - inserção/remoção de linhas em tabela - consulta: obtém colunas de uma ou várias tabelas de acordo com uma condição. **** banco de dados no Unix - Fonte aberta -- MySQL -- PostGreSQL - Comercial -- Oracle -- Informix -- DB2/IBM **** MySQL. - Conexão :pre $ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 to server version: 3.22.32 Type 'help' for help. mysql> use mono; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> :/pre - Criação de uma tabela: :pre mysql> create table bidic (p2 char(20), p1 char(20), p0 char(20) ); :/pre - Inserção de dados na tabela: mysql> insert into bidic values ("a","palestra","estah"); Query OK, 1 row affected (0.05 sec) :/pre - Consulta a dados: :pre mysql> select * from bidic limit 10; +-------+-------+----------+ | p2 | p1 | p0 | +-------+-------+----------+ | | | vamos | | | vamos | ver | | vamos | ver | como | | ver | como | isso | | como | isso | se | | isso | se | comporta | | | | vamos | | | vamos | ver | | vamos | ver | como | | ver | como | isso | +-------+-------+----------+ :/pre - Consulta a dados de acordo com um condição :pre mysql> select * from bidic where (p0 = "estah") limit 10; +------+----------+-------+ | p2 | p1 | p0 | +------+----------+-------+ | a | palestra | estah | +------+----------+-------+ 1 row in set (0.00 sec) - Removendo um item da tabela :/pre mysql> delete from bidic where (p0 = "estah"); Query OK, 1 row affected (0.00 sec) ***** CGI-script com SQL - O CGI-script deve: -- abrir a conexão com o banco de dados -- inserir e consultar dados ****** exemplo de código PHP acessando MySQL - /lw/vedb.php3 :pre

Resultado de um select

"; echo $row["p1"] . "
"; echo $row["p2"] . "
"; echo "
\n"; } echo "\n"; mysql_close(); ?> :/pre ******* Resultado foto: ******* Resultado html: :pre

Resultado de um select

vamos



ver
vamos


o
ver
vamos

que
o
ver

ocorre
que
o

Fiz



a
Fiz


alteração
a
Fiz

no
alteração
a

banco
no
alteração

:/pre
vamos



ver
vamos


o
ver
vamos

que
o
ver

ocorre
que
o

Fiz



a
Fiz


alteração
a
Fiz

no
alteração
a

banco
no
alteração

****** exemplo de código Perl acessando MySQL - Em: /cgi-bin/jkinoshi/cgiperl.cgi :pre #!/usr/bin/perl -w use CGI qw/:standard/; use DBI; # use DB_File; use Fcntl ; $driver = "mysql"; $database = 'mono'; $hostname = 'localhost'; # $port = ""; # nao sei e parece ser opcional $dsn = "DBI:$driver:database=$database;host=$hostname"; $user = "root"; $password = "123"; $dbh = DBI->connect($dsn, $user, $password)|| die "Got error: '$DBI::errstr' when connecting to MySQL"; # $drh = DBI->install_driver("mysql"); DBI->install_driver("mysql"); my $sth = $dbh->prepare("select * from bidic limit 10"); $sth->execute or die "$DBI::errstr"; print header, start_html('Inscrição no ViaLinuxis'), h1("resultado de um select"); while ( @row = $sth->fetchrow_array ) { foreach $palavra (@row) { print $palavra . " "; } print "
\n"; }; $sth->finish; $dbh->disconnect; print end_html; :/pre ******* Resultado :pre Inscrição no ViaLinuxis

resultado de um select

vamos
vamos ver
vamos ver como
ver como isso
como isso se
isso se comporta
vamos
vamos ver
vamos ver como
ver como isso
:/pre

resultado de um select

vamos
vamos ver
vamos ver como
ver como isso
como isso se
isso se comporta
vamos
vamos ver
vamos ver como
ver como isso
** Outros casos para se disponibilizar dados na internet: - chat em Java. ** Interface com o Unix/Linux - acompanhar os eventos através de logs. -- erros na execução de CGI-scripts: /var/log/httpd/error_log -- quais páginas são visitadas por quais URLs. - ambiente de desenvolvimento no Linux -- emacs --- edição/debug dos scripts CGI em Perl --- edição de programas Java -- jdk para Java -- desenvolvimento da palestra *** log: /var/log/httpd/access_log - Vendo as últimas 100 linhas :pre tail access_log -n 100 :/pre - Olhando o acesso aos scripts em Perl :pre 127.0.0.1 - - [11/Sep/2000:16:51:32 -0400] "GET /cgi-bin/jkinoshi/pa1.cgi?email=jkinoshi@pcs.usp.br HTTP/1.0" 200 352 127.0.0.1 - - [11/Sep/2000:16:57:39 -0400] "POST /cgi-bin/jkinoshi/pa1.cgi HTTP/1.0" 200 356 :/pre - Olhando o acesso ao php3 :pre 127.0.0.1 - - [11/Sep/2000:19:06:00 -0400] "POST /pa2.php3 HTTP/1.0" 200 34 :/pre *** log: /var/log/httpd/error_log :pre Useless use of a constant in void context at /home/httpd/cgi-bin/jkinoshi/pa1.cgi line 16. [Mon Sep 11 16:32:29 2000] [error] [client 127.0.0.1] File does not exist: /home/httpd/html/jkinoshi/pa1.cgi [Mon Sep 11 16:32:32 2000] [error] [client 127.0.0.1] File does not exist: /home/httpd/html/jkinoshi/pa1.cgi [Mon Sep 11 16:32:33 2000] [error] [client 127.0.0.1] File does not exist: /home/httpd/html/jkinoshi/pa1.cgi :/pre ** Conclusão - Como construir um site interativo? - Enfoque em formulários -- servidor --- Perl --- PHP -- cliente -- JavaScript --- cookies - Outro caso -- Java, applet -- chat, programa em C no servidor - Montagem desta palestra -- Uso de arquivo fonte: :pre ** Conclusão - Como construir um site interativo? - Enfoque em formulários -- servidor --- Perl --- PHP -- cliente -- JavaScript --- cookies - Outro caso -- Java, applet -- chat, programa em C no servidor - Montagem desta palestra :/pre - Boletim ViaLinuxis -- +http://www.pcs.usp.br/~jkinoshi/bs
Os boletins publicados [por categoria]
Receba o boletim via email; seu email: subscribe unsubscribe