[SP-pm] script perl no windows 10

Daniel de Oliveira Mantovani daniel.oliveira.mantovani at gmail.com
Mon Jan 11 15:15:52 PST 2016


Opa Kleber, desculpa se eu passei a mensagem errada. Na verdade, o que eu
quis dizer é que independente da qualidade do seu software, hoje existem
muitas opções de softwares/serviços maduros gratuitos. Apenas se existisse
uma regra de negócio "fora de série", seria justificável. Inclusive,
existem ótimas opções que oferecerem a possibilidade do usuário se conectar
através do aparelho telefônico móvel. Você por exemplo pode criar um canal
de IRC criptografado e com senha, onde os usuários podem escolher o
aplicativo do aparelho telefônico móvel que mais lhe agrada.

Eu entendo a sua "perspicácia" em achar esse grupo específico de
programadores Perl, independente da fonte. Porém, a nossa lista é parecida
com uma lista de especialistas/apaixonados em/por carros. Onde as pessoas
perguntam, "Qual o melhor material para construir carros de Fórmula 1 que
consigam aproveitar mais a chuva em temperaturas entre 10ºC~12ºC ?".  E a
sua pergunta foi, "Pessoal, olha esse carro aqui quebrou... Vocês podem
arrumar pra mim de graça, por favor ?". Na verdade, você não precisa ser um
especialista para unir-se a nós. Muita gente que está começando, felizmente
também nos acha. Que foi o meu caso pessoal, eu queria entender um exploit
que se eu me lembro bem derrubava servidores de Counter-Strike.

Eu perfeitamente entendo que você não teve má intenção, por isso eu te
convido à aprender Perl. Nós podemos te orientar em real-time no nosso
canal de IRC, #sao-paulo.pm irc.perl.org 24H//7 (Nem sempre a resposta é
imediata, mas é um ambiente colaborativo onde todos são muito bem vindos.
Nós temos bastante conteúdo em português, incluindo artigo, manuais, livros
etc.)

Seja muito bem-vindo!


2016-01-11 20:35 GMT-02:00 kleber caetano <payback at hotmail.com.br>:

> Me perdoem em insistir neste assunto.
> Mais uma informação que talvez seja importante :
>
> Parece que o script envia informações vazias ou seja as mensagens que
> estavam na tema desaparecem.
> ( a parte da tela que apresenta as mensagens ficam em branco inclusive o
> tema da reunião ----> acho que é
> <iframe align="middle" src="?todas=$CAMPO{tema}" name="iframe"
> width="1010" height="480" style="overlap:auto"></iframe> ).
>
> *From:* kleber caetano <payback at hotmail.com.br>
> *Sent:* Monday, January 11, 2016 8:09 PM
> *To:* saopaulo-pm at mail.pm.org
> *Subject:* Re: [SP-pm] script perl no windows 10
>
> Mais uma informação que talvez seja importante aos amigos :
>
> Apesar de não estar apresentando as mensagens aos participantes da sala ,
> as mensagens enviadas pelos usuários são gravadas nos arquivos de trabalho.
> ( é possível constatar isto ).
>
> *From:* kleber caetano <payback at hotmail.com.br>
> *Sent:* Monday, January 11, 2016 7:16 PM
> *To:* saopaulo-pm at mail.pm.org
> *Subject:* Re: [SP-pm] script perl no windows 10
>
> Agradeço a gentiliza em responder.
> O Daniel me esculhambou ( rsrsrsrsrss ).
> Apesar do script não ser bem elaborado ou estruturado , ele é simples e
> útil ( gostaria de tentar acertar o erro ).
>
> Implementei as sugestão do Daniel e do Lucas [ setInterval(function(){
> window.location.href = '?todas' }, 5000); ]
> e o problema passou a ocorrer também no internet explorer 11( não enviou
> as mensagens para os participantes ).
>
> Pelo que eu entendo deste script , a ação reload envia as mensagens para
> <iframe align="middle" src="?todas=$CAMPO{tema}" name="iframe"
> width="1010" height="480" style="overlap:auto"></iframe>
> e com setInterval não chegou ( porque não chegou lá ).
>
> Talvez isto ajude a analisar o problema.
>
>
> *From:* Daniel de Oliveira Mantovani <daniel.oliveira.mantovani at gmail.com>
> *Sent:* Monday, January 11, 2016 6:12 PM
> *To:* saopaulo-pm at mail.pm.org
> *Subject:* Re: [SP-pm] script perl no windows 10
>
> Só reforçando o que eu disse, eu já achei uma falha de segurança, onde
> você abre um descritor de arquivos com dois argumentos. *Possivelmente*
> em algum desses "opens" um dos argumentos vem do usuário.
>
>
> https://www.securecoding.cert.org/confluence/pages/viewpage.action?pageId=76775519
>
> On Mon, Jan 11, 2016 at 5:36 PM, Daniel de Oliveira Mantovani <
> daniel.oliveira.mantovani at gmail.com> wrote:
>
>> Eu fortemente te aconselho a jogar isso fora, e usar o Google Hangout ou
>> qualquer uma das milhões de soluções grátis que resolvem isso.
>>
>> 2016-01-11 17:33 GMT-02:00 Lucas Moraes <lucastiagodemoraes at gmail.com>:
>>
>>> Aconselho você atualizar a pagina com javascript.
>>>
>>> setInterval(function(){ window.location.href = '?todas' }, 5000);
>>>
>>> Falou.
>>>
>>> Em 11 de janeiro de 2016 17:26, kleber caetano <payback at hotmail.com.br>
>>> escreveu:
>>>
>>>> Olá Sr(s),
>>>>
>>>> Migrei para o windows 10 e estou tendo um problema com um aplicativo em
>>>> perl quando utilizo o edge ,
>>>> entretanto , quando utilizo o explorer 11 o aplicativo é executado
>>>> normalmente.
>>>>
>>>> Nota[1] - Este aplicativo refere-se a um chat ( sala de reunião online
>>>> ).
>>>>
>>>> O problema ( no edge ) ocorre quando :
>>>>
>>>> - Ele reenvia as mensagens ( através do comando <meta
>>>> http-equiv="refresh" content="5,?todas"/> )  para
>>>>   os participantes da sala de reunião ou seja não está enviando nada.
>>>> - Quando é encerrada a reunião , o aplicativo elimina os arquivos de
>>>> trabalho , porém , no edge isto
>>>>   não está acontecendo.
>>>>
>>>> Nota[2] - No explorer 11 estes problemas não ocorrem.
>>>>
>>>> Nota[3] - O script em perl  foi desenvolvido por um amigo que conhecia
>>>> bastante perl
>>>>                entretanto meu conhecimento é limitado.
>>>>
>>>> Nota[4] – Estou trabalhando com
>>>> ActivePerl-5.16.3.1603-MSWin32-x86-296746
>>>>
>>>> Nota[5] – Caso considerem necessário , tenho como disponibilizar um
>>>> link de acesso a este site sala.cgi
>>>>
>>>> Nota[6] - Quando instalei o windows 10 , o reload automático
>>>> funcionava , entretanto ,
>>>>                 ao realizar uma manutenção grande ( nova versão acho )
>>>> o problema apareceu.
>>>>                 O problema de não eliminar os arquivos temporário de
>>>> trabalho existem
>>>>                 desde a instalação inicial do windows 10
>>>> Nota[7] – coloquei duas marcas no script onde eu acho que as funções
>>>> são executadas:
>>>>
>>>> ######################### aqui elimina os arquivos de trabalho
>>>> ###################################
>>>>
>>>> ##################### aqui reenvia mensagens para os participantes
>>>> #############################
>>>>
>>>> Alguém sabe como resolver isto ?
>>>>
>>>> Agradeço a atenção ,
>>>>
>>>> kleber
>>>>
>>>>
>>>> =================================================================================================
>>>>                                                          script em
>>>> perl  ( sala.cgi )
>>>>
>>>> =================================================================================================
>>>> #!perl
>>>> print "Content-type:text/html\n\n";
>>>> use CGI::Carp(fatalsToBrowser);
>>>>
>>>>
>>>> ###############################################################################################
>>>> #                                     CONFIGURAÇÕES
>>>> GERAIS
>>>> #
>>>> #
>>>> #
>>>> $titulo = "Sala de Reunião Online";        # Título do
>>>> script
>>>> #
>>>> $master = "master.log";                         # Arquivo temporário a
>>>> guardar primeiro usuário                                              #
>>>> $log    = "logs.log";                                # Arquivo
>>>> temporário de logs
>>>> totais                                                                    #
>>>> $log2   = "logs2.log";                            # Arquivo temporário
>>>> de logs da
>>>> sessão                                                              #
>>>> $online = "online.log";                         # Arquivo temporário
>>>> com nomes dos usuários Online                                        #
>>>> $estilos= "estilos.css";                        # Arquivo com os
>>>> estilos dentro da pasta
>>>> modelos                                              #
>>>> $topo   = "topo.html";                         # Template do
>>>> Topo
>>>> #
>>>> $fim    = "fim.html";                           # Template do
>>>> Fim
>>>> #
>>>> #
>>>> #
>>>> #
>>>> #
>>>> #                                     FIM DAS
>>>> CONFIGURAÇÕES
>>>> #
>>>>
>>>> ###############################################################################################
>>>>
>>>> read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
>>>> @conteudo = split(/&/, $buffer);
>>>> foreach $par (@conteudo) {
>>>>         ($campo, $valor) = split(/=/, $par);
>>>>         $valor =~ tr/+/ /;
>>>>         $valor =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
>>>>         $CAMPO{$campo} = $valor;
>>>>     }
>>>>
>>>> $qs = "$ENV{QUERY_STRING}";
>>>> &data;
>>>> &style;
>>>> if ($qs eq ""){
>>>> print qq|
>>>> <BR><BR><BR><BR><BR><BR><BR>
>>>> |;
>>>> &topo;
>>>> print qq§
>>>> <script language="JavaScript">
>>>> <!--
>>>> altura = 690;
>>>> largura= 1090;
>>>> l = (screen.width - largura)/2;
>>>> t = (screen.height - altura - 50)/2;
>>>> var flag = "";
>>>> var idioma=1;
>>>> var strCookie='payback';
>>>>
>>>> function LerCookie(strCookie) {
>>>>     var strNomeIgual = strCookie + "=";
>>>>     var arrCookies = document.cookie.split(';');
>>>>     for(var i = 0; i < arrCookies.length; i++)
>>>>     {
>>>>         var strValorCookie = arrCookies[i];
>>>>         while(strValorCookie.charAt(0) == ' ')
>>>>         {
>>>>             strValorCookie = strValorCookie.substring(1,
>>>> strValorCookie.length);
>>>>         }
>>>>         if(strValorCookie.indexOf(strNomeIgual) == 0)
>>>>         {
>>>>             var mensagem=strValorCookie.substring(strNomeIgual.length,
>>>> strValorCookie.length);
>>>>             flag = mensagem;
>>>>             mensagem ='';
>>>>             return;
>>>>         }
>>>>     }
>>>>     alert ( '!!!! Erro crítico : Não foi possível restaurar área de
>>>> transferência' );
>>>>     top.location.href = "/payback/index.htm";
>>>> };
>>>> function init(form) {
>>>>               LerCookie(strCookie);
>>>>               if (flag != null ) {
>>>>                  flag = flag.split('|');
>>>>                  document.form.login.value = flag[9];
>>>>               }
>>>>               document.form.tema.focus();
>>>> }
>>>> function Entra(form) {
>>>>         if (document.form.tema.value.length == 0)  {
>>>>             alert("O tema da reunião não foi informado");
>>>>             document.form.tema.focus();
>>>>             document.form.tema.select();
>>>>             return false;
>>>>         }
>>>>         novajanela = window.open("", "entrar",
>>>> "scrollbars=no,menubar=no,height="+altura+",width="+largura+",top="+t+",left="+l);
>>>>
>>>>         return true;
>>>> }
>>>> function showSalaHelp() {
>>>>       altura1=400;
>>>>       largura1= 800;
>>>>       l1 = (screen.width - largura + 250)/2;
>>>>       t1 = (screen.height - altura + 250)/2;
>>>>       var html = '<HTML><HEAD><TITLE></TITLE></HEAD>';
>>>>           html += '<BODY background="/reuniao/imagem/papel.jpg"
>>>> TEXT="#000066"><br><table align=center><tr><td><h4><b>SALA    DE
>>>>    REUNIÃO    ONLINE
>>>>                       </b></h4></td></tr></table><br><TABLE
>>>> ALIGN=CENTER><font size=2><TR><TD><PRE><b>';
>>>>           html += '<li>O dado usuário deve ser único por sala.';
>>>>           html += '<li>O dado tema da reunião será o ponto de encontro
>>>> dos participantes na sala.<br>';
>>>>           html += '   Este texto não pode conter espaço , por exemplo ,
>>>> informar Aquisição_de_Filial';
>>>>           html += '<li>O sistema diferencia letra maiúscula de
>>>> minúscula para identificação da sala.';
>>>>           html += '<li>Cada sala terá um único tema não tendo
>>>> limitações de quantidade de aberturas de<br>';
>>>>           html += '   salas e participantes.<br>';
>>>>           html += '<li>O usuário que abrir a sala ou seja o primeiro a
>>>> entrar receberá uma tarefa de<br>';
>>>>           html += '  encerrar a reunião ( botão especial ).<br>  Este
>>>> usuário , ao sair da sala , provocará a eliminação dos arquivos que
>>>> registram<br>  os textos digitados.<br>  Portanto , recomenda-se dar um
>>>> tempo de poucos segundos antes de sair da sala.';
>>>>           html += '<li>Ao acionar o batão especial ENCERRAR REUNIÃO , o
>>>> texto REUNIÃO FINALIZADA<br>';
>>>>           html += '   é enviado á sala e nenhuma nova mensagem é
>>>> registrada pelo sistema.';
>>>>           html += '<li>É recomendável que os participantes imprimam a
>>>> ata de reunião após esta ação.<br>';
>>>>           html += '<li>Para ajuda de formatação do texto mensagem , na
>>>> sala de reunião , acionar a tecla F1';
>>>>           html += '<li>Os documentos enviados ao servidor para serem
>>>> apresentados como anexo ,<br>  serão eliminados quando o sistema
>>>> operacional for reinicializado.<br>';
>>>>           html += '  Nota - O documento apresentado como anexo  , para
>>>> ser baixado no servidor , deverá ter<br>         no máximo 500 kbytes.';
>>>>           html += '</TABLE></FONT></B></PRE></BODY></HTML>';
>>>>           var newWindow =
>>>> window.open("","","scrollbars=auto,height="+altura1+",width="+largura1+",top="+t1+",left="+l1);
>>>>           newWindow.document.write(html);
>>>>           newWindow.document.close();
>>>>           event.cancelBubble = true;
>>>>           return false;
>>>> }
>>>> //-->
>>>> </script>
>>>> <style type="text/css"><!--
>>>> .multi_bg { background-image : linear-gradient(to right, rgba(30, 75,
>>>> 115, 0.5),  rgba(30, 75, 115, 0.5)); }
>>>> -->
>>>> </style>
>>>> </HEAD>
>>>>         <body onload="init(this.form)" onHelp="return showSalaHelp()"
>>>> BGCOLOR="#ADB6C6" TEXT="#003366" class="multi_bg">
>>>>         <form action="?entra" method="POST" name="form" target="entrar"
>>>> id="form" OnSubmit="return Entra(this)">
>>>>         <br>
>>>>         <strong><font color="#ffffff"
>>>> size="2">                <label
>>>> class='sombra'><b>Escolha um tema para
>>>> entrar</label></font></strong>                <img
>>>> src="/reuniao/imagem/help.gif"
>>>> onClick="showSalaHelp();document.form.tema.focus()" WIDTH="18" HEIGHT="18"
>>>> style="cursor:pointer" title ="Ajuda do sistema">
>>>>         <br><br>
>>>>         <div align="center">
>>>>               <table>
>>>>                 <tr>
>>>>                    <!-- <td width="33%"><div align="right"><font
>>>> class="sombra"><font color="#ffffff"
>>>> size="2"><b>Usuário  </b></font></div></td> -->
>>>>                   <td><input type="hidden" name="login" class="campo"
>>>> onFocus="document.form.tema.focus()" onHelp="return showSalaHelp()"></td>
>>>>                  </tr>
>>>>                 <tr>
>>>>                   <td><div align="right"><font class="sombra"><font
>>>> color="#ffffff" size="2"><b>Tema  </b></font></div></td>
>>>>                   <td><input name="tema" type="text" class="campo"
>>>> id="tema" onHelp="return showSalaHelp()"></td>
>>>>                 </tr>
>>>>               </table><br>
>>>>               <table>
>>>>              <tr>
>>>>
>>>> <td>        </td>
>>>>                  <td align="center" colspan=2><input type="submit"
>>>> value="Entrar" class="botao" STYLE='cursor: pointer;font-weight:bold'></td>
>>>>             </tr>
>>>>              </table><br>
>>>>         </div>
>>>> §;&fim;}
>>>>
>>>> if ($qs eq "entra"){
>>>> if ($CAMPO{login} eq ""){
>>>> print qq|<br><br><br><br><br><br><br><br><br><br><br><br>|;
>>>> &topo;
>>>> print qq|<br>Você deve digitar um nome de usuário antes de entrar na
>>>> sala ! <br><br>
>>>> <div align="center">
>>>> <input type="button" class="botao2"
>>>> onClick="javascript:windows.close()" value="Fechar Janela"><br>
>>>> </div>
>>>> |;
>>>> &fim;
>>>> }else{
>>>> if ($CAMPO{tema} eq "" ){
>>>> print qq|<br><br><br><br><br><br><br><br><br><br><br><br>|;
>>>> &topo;
>>>> print qq|<br>Você deve digitar um tema antes de entrar na sala !
>>>> <br><br>
>>>> <div align="center">
>>>> <input type="button" class="botao2" onClick="javascript:window.close()"
>>>> value="Fechar Janela"><br>
>>>> </div>
>>>> |;
>>>> &fim;
>>>> }else{
>>>> if (-e "$CAMPO{tema}"."_"."$log"){
>>>> open(ONLINE,"$CAMPO{tema}_$online");
>>>> @online = <ONLINE>;
>>>> close(ONLINE);
>>>>
>>>> foreach (@online){
>>>> chomp;
>>>> s/%//gi;
>>>> if ($CAMPO{login} eq "$_"){
>>>> $repetido = "1";
>>>> }else{
>>>> $repetido = "0";
>>>> }}
>>>> if ($repetido eq "1"){
>>>> print qq|<br><br><br><br><br><br><br><br><br><br><br><br>|;
>>>> &topo;
>>>> print qq|<br>Este nome de usuário já está em uso! Por favor escolha
>>>> outro.<br><br>
>>>> <div align="center">
>>>> <input type="button" class="botao2" onClick="javascript:window.close()"
>>>> value="Fechar Janela"><br>
>>>> </div>
>>>> |;&fim;
>>>> }else{
>>>> open(MASTER,"$CAMPO{tema}_$master");
>>>> $master = <MASTER>;
>>>> close(MASTER);
>>>> chomp $master;
>>>> $master =~ s/%//gi;
>>>>
>>>> if ($CAMPO{login} eq $master){$a = "1";} else {$a = "0";}
>>>> open(ONLINE,">>$CAMPO{tema}_$online");
>>>> print ONLINE qq|%$CAMPO{login}%\n|;
>>>> close(ONLINE);
>>>>
>>>> open (SALA, ">>$CAMPO{tema}_$log");
>>>> print SALA qq|<font class="texto"><i>($data)</i>  
>>>> <b>$CAMPO{login}</b> entrou na sala</b></font><br>\n|;
>>>> close(SALA);
>>>>
>>>> open (SALA, ">>$CAMPO{tema}_$log2");
>>>> print SALA qq|<font class="texto"><i>($data)</i>  
>>>> <b>$CAMPO{login}</b> entrou na sala</b></font><br>\n|;
>>>> close(SALA);
>>>>
>>>> &topo;&msg;&fim;
>>>> }}else{
>>>>
>>>> open(MASTER,">$CAMPO{tema}_$master");
>>>> print MASTER qq|%$CAMPO{login}%\n|;
>>>> close(MASTER);
>>>>
>>>> open(ONLINE,">>$CAMPO{tema}_$online");
>>>> print ONLINE qq|%$CAMPO{login}%\n|;
>>>> close(ONLINE);
>>>>
>>>> open (SALA, ">>$CAMPO{tema}_$log");
>>>> print SALA qq|<div align="center"><font class="texto"><h5>ATA DA
>>>> REUNIÃO :  <font size=4><b>$CAMPO{tema} </b></font></div><hr>\n|;
>>>> print SALA qq|<font class="texto"><i>($data)</i>  
>>>> <b>$CAMPO{login}</b> entrou na sala</b></font><br>\n|;
>>>> close(SALA);
>>>>
>>>> open (SALA, ">>$CAMPO{tema}_$log2");
>>>> print SALA qq|<div align="center"><font class="texto"><h5>ATA DA
>>>> REUNIÃO :  <font size=4><b>$CAMPO{tema} </b></font></div><hr>\n|;
>>>> print SALA qq|<font class="texto"><i>($data)</i>  
>>>> <b>$CAMPO{login}</b> entrou na sala</b></font><br>\n|;
>>>> close(SALA);
>>>> $a = "1";
>>>> &topo;&msg;&fim;
>>>> }}}}
>>>>
>>>> if ($qs eq "escreve2"){
>>>> $CAMPO{msg} =~ tr/+/ /;
>>>> $CAMPO{msg} =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
>>>> $CAMPO{tema} =~ tr/+/ /;
>>>> $CAMPO{tema} =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
>>>> if ($CAMPO{msg} eq ""){
>>>> print qq|
>>>> <script language="Javascript">
>>>> <!--
>>>> alert ('Mensagem não informada')
>>>> //-->
>>>> </script>
>>>> <body
>>>> onLoad="this.location.href('?principal2=$CAMPO{tema}-$CAMPO{login}')">
>>>> |;}else{
>>>>
>>>> if ($CAMPO{msg} eq "REUNIÃO FINALIZADA"){
>>>>
>>>> open(LOG,">>$CAMPO{tema}"."_"."$log");
>>>> print LOG qq|<br><div align="center"><font class="texto"><b>REUNIÃO
>>>> FINALIZADA</b></font></div><br>\n|;
>>>> close(LOG);
>>>>
>>>> open(LOG,">$CAMPO{tema}"."_"."$log2");
>>>> print LOG qq|<br><div align="center"><font class="texto"><b>REUNIÃO
>>>> FINALIZADA</b></font></div><br>\n|;
>>>> close(LOG);
>>>>
>>>> print qq|
>>>> <body
>>>> onLoad="this.location.href('?principal2=$CAMPO{tema}-$CAMPO{login}')">
>>>> |;
>>>> }else{
>>>>
>>>> open(LOG,"$CAMPO{tema}"."_"."$log");
>>>> @log = <LOG>;
>>>> close(LOG);
>>>> $r = "0";
>>>> foreach (@log){
>>>> chomp;
>>>> if($_ eq "<br><div align=\"center\"><font class=\"texto\"><b>REUNIÃO
>>>> FINALIZADA</b></font></div><br>"){
>>>> $r = "1";
>>>> }}
>>>>
>>>> if ($r eq "1"){
>>>> print qq|
>>>> <body
>>>> onLoad="this.location.href('?principal2=$CAMPO{tema}-$CAMPO{login}')">
>>>> |;
>>>> }else{
>>>>
>>>> open(LOG,">>$CAMPO{tema}"."_"."$log");
>>>> print LOG qq|<font class="texto"><i>($data)</i>  
>>>> <b>$CAMPO{login}</b>  <i>diz</i>    $CAMPO{msg}</font><br>\n|;
>>>> close(LOG);
>>>> open(LOG,">>$CAMPO{tema}"."_"."$log2");
>>>> print LOG qq|<font class="texto"><i>($data)</i>  
>>>> <b>$CAMPO{login}</b>  <i>diz</i>    $CAMPO{msg}</font><br>\n|;
>>>> close(LOG);
>>>> print qq|
>>>> <body
>>>> onLoad="this.location.href('?principal2=$CAMPO{tema}-$CAMPO{login}')">
>>>> |;}}}}
>>>>
>>>> if ($qs =~ /imprimir/){
>>>> &imprimir;
>>>> }
>>>>
>>>> if ($qs =~ /logout/){
>>>> &logout;
>>>> }
>>>>
>>>> if ($qs =~ /principal/){
>>>> &principal;
>>>> }
>>>>
>>>> if ($qs =~ /principal2/){
>>>> &principal2;
>>>> }
>>>>
>>>> if ($qs =~ /todas/){
>>>> &todas;
>>>> }
>>>>
>>>> sub data{
>>>> ($seg,$min,$hr,$dia,$mes,$ano) = localtime();
>>>> if ($hr < "10"){$hr = "0$hr";}
>>>> if ($min < "10"){$min = "0$min";}
>>>> if ($seg < "10"){$seg = "0$seg";}
>>>>
>>>> @mes =
>>>> ("janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro");
>>>> $ano = 1900+$ano;
>>>>
>>>> $data  = "$hr:$min:$seg, $dia de @mes[$mes] de $ano";
>>>> }
>>>>
>>>> sub fim{
>>>> open(FIM,"$fim");
>>>> @fim=<FIM>;
>>>> close(FIM);
>>>> print "@fim";
>>>> }
>>>>
>>>> sub imprimir {
>>>> $qs =~ s/imprimir=//;
>>>> $qs =~ tr/+/ /;
>>>> $qs =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
>>>>
>>>> open (LOG,"$qs"."_"."$log");
>>>> @log = <LOG>;
>>>> close(LOG);
>>>>
>>>> print qq|
>>>> <html>
>>>> <head>
>>>> <title>$titulo</title>
>>>> @style
>>>> </head>
>>>> <body onload="this.window.print()">
>>>> @log
>>>> </body>
>>>> |;}
>>>>
>>>> sub logout{
>>>> $qs =~ s/logout=//gi;
>>>> ($login,$tema) = split (/-/,$qs);
>>>> $login =~ tr/+/ /;
>>>> $login =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
>>>> $tema =~ tr/+/ /;
>>>> $tema =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
>>>>
>>>> open(LOG,">>$tema"."_"."$log2");
>>>> print LOG qq|<font class="texto"><i>($data)</i>   <b>$login</b>
>>>> saiu da sala</b></font><br>\n|;
>>>> close(LOG);
>>>>
>>>> open(LOG,">>$tema"."_"."$log");
>>>> print LOG qq|<font class="texto"><i>($data)</i>   <b>$login</b>
>>>> saiu da sala</b></font><br>\n|;
>>>> close(LOG);
>>>>
>>>> open(ONLINE,"$tema"."_"."$online");
>>>> @online = <ONLINE>;
>>>> close(ONLINE);
>>>>
>>>> @on = @online;
>>>> foreach (@on){
>>>> chomp;
>>>> if ($_ =~ /%$login%/){
>>>> s/$_//;
>>>> }}
>>>>
>>>> open(ONLINE,">$tema"."_"."$online");
>>>> print ONLINE qq|@on|;
>>>> close(ONLINE);
>>>>
>>>> open(ONLINE,"$tema"."_"."$online");
>>>> @online = <ONLINE>;
>>>> close(ONLINE);
>>>>
>>>> if (length ("@online") eq "0"){
>>>> unlink("$tema"."_"."$master");  ######################### aqui elimina
>>>> os arquivos de trabalho ###################################
>>>> unlink("$tema"."_"."$online");  #################   não está sendo
>>>> executado no edge    ###########################################
>>>> unlink("$tema"."_"."$log2");
>>>> unlink("$tema"."_"."$log");
>>>> }else{}
>>>>
>>>> print qq|
>>>> <html>
>>>> <head>
>>>> <title>$titulo</title>
>>>> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
>>>> <script language="JavaScript">
>>>> function Logout(){
>>>> this.window.close()
>>>> }
>>>> </script>
>>>> </head>
>>>> <body onload="javascript:Logout()">
>>>> </body>
>>>> </html>
>>>> |;}
>>>>
>>>> sub msg{
>>>> $qs =~ tr/+/ /;
>>>> $qs =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
>>>> open (LOG, "$qs"."_"."$log2");
>>>> @log = <LOG>;
>>>> close(LOG);
>>>>
>>>> $finalizado = "0";
>>>>
>>>> foreach (@log){
>>>> chomp;
>>>> print $_;
>>>> if ($_ eq "REUNIÃO FINALIZADA"){
>>>> $finalizado = "1";
>>>> }}
>>>>
>>>> print qq|
>>>> <script language="JavaScript">
>>>> function Imprimir(){
>>>> altura =690;
>>>> largura= 1090;
>>>> l = (screen.width - largura)/2;
>>>> t = (screen.height - altura - 50)/2;
>>>> window.open("?imprimir=$CAMPO{tema}","","scrollbars,height="+altura+",width="+largura+",top="+t+",left="+l);
>>>>
>>>> }
>>>> function unLoad(){
>>>>
>>>> window.open("?logout=$CAMPO{login}-$CAMPO{tema}","","width=80,height=80")
>>>> }
>>>> </script>
>>>> <body onunLoad="unLoad()">
>>>> <table>
>>>> <tr><td>
>>>> <font class="texto1"><b> Usuário:
>>>> $CAMPO{login}</b></font>        
>>>> </td><td>
>>>>  <font class="texto1"><b> Tema: $CAMPO{tema}<br></b></font>
>>>> </td><td>
>>>>          <img
>>>> src="/reuniao/imagem/calculadora.gif" onClick="calculadora()" WIDTH="18"
>>>> HEIGHT="22" style="cursor:pointer" title ="Calculadora financeira">
>>>> </td><td>
>>>>          <img
>>>> src="/reuniao/imagem/Email.gif" onClick="email()" WIDTH="24" HEIGHT="20"
>>>> style="cursor:pointer" title ="Correspondência interna">
>>>> </td><td>
>>>>          <img
>>>> src="/reuniao/imagem/acessorio.gif" onClick="acessorio()" WIDTH="24"
>>>> HEIGHT="20" style="cursor:pointer" title ="Acessórios">
>>>> </td><TD>
>>>>          <img
>>>> src="/reuniao/imagem/alarme.gif" onClick="alarme()" WIDTH="24" HEIGHT="20"
>>>> style="cursor:pointer" title ="Alarme">
>>>> </td></tr></table>
>>>> <iframe align="middle" src="?todas=$CAMPO{tema}" name="iframe"
>>>> width="1010" height="480" style="overlap:auto"></iframe>
>>>> <iframe align="middle" src="?principal2=$CAMPO{tema}-$CAMPO{login}"
>>>> name="iframe2" width="1010" height="75" style="overlap:auto"></iframe>
>>>> <table>
>>>> <tr>
>>>> <td><input type="button" class="botao" value="Ata de reunião"
>>>> onClick="javascript:Imprimir()"
>>>> STYLE='cursor:pointer;font-weight:bold'></td>
>>>> <td> </td>
>>>> <td><div align="right">
>>>> <input type="button" class="botao2" value="Sair da Sala"
>>>> onClick="javascript:window.close()"
>>>> STYLE='cursor:pointer;font-weight:bold'></div></td>
>>>> <td> </td>
>>>> |;
>>>>
>>>> if($a eq "1"){print qq|<td><div align="center">
>>>> <form name="form" method="post" action="?escreve2" target="iframe2">
>>>>             <input name="msg"    type="hidden" size="80" class="campo"
>>>> value="REUNIÃO FINALIZADA">
>>>>             <input name="login"  type="hidden" class="campo"
>>>> value="$CAMPO{login}">
>>>>             <input name="tema"   type="hidden" class="campo"
>>>> value="$CAMPO{tema}">
>>>>             <input type="submit" value="Encerrar Reunião" class="botao"
>>>> STYLE='cursor: pointer;font-weight:bold'>
>>>> </form>
>>>> </div>
>>>> </div></td></tr>|;}print qq|</table><br>|;}
>>>>
>>>> sub principal{
>>>> $qs =~ s/principal=//;
>>>> $qs =~ tr/+/ /;
>>>> $qs =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
>>>>
>>>> open (LOG, $qs."_".$log2);
>>>> @log = <LOG>;
>>>> close(LOG);
>>>>
>>>> $finalizado = "0";
>>>>
>>>> foreach (@log){
>>>> chomp;
>>>> if ($_ eq "REUNIÃO FINALIZADA"){
>>>> $finalizado = "1";
>>>> }}
>>>> if ($finalizado eq "1"){print qq|
>>>> <font class="texto">
>>>> A REUNIÃO FOI FINALIZADA. VOCÊ PODE IMPRIMIR OU VISUALIZAR O RELATÓRIO
>>>> </font>|;
>>>>
>>>> }else{print qq|
>>>> <html>
>>>> <head>
>>>>
>>>> @style
>>>> <script language="JavaScript">
>>>> <!--
>>>>    function scroll() {
>>>>      if( document.body && document.body.clientHeight ) {
>>>>        window.innerHeight = document.body.clientHeight
>>>>      }
>>>>      window.scrollTo( 0, (window.innerHeight/0.1) )
>>>>    }
>>>>
>>>>     function focus(){
>>>>       document.form.msg.focus()
>>>>     }
>>>>
>>>>     function enter(string){
>>>>              insertAtCaret(document.form.msg,string);
>>>>              focus()
>>>>     }
>>>>
>>>>    function insertAtCaret (textObj, textFeildValue) {
>>>>        if(document.all){
>>>>             if (textObj.createTextRange && textObj.caretPos) {
>>>>                 var caretPos = textObj.caretPos;
>>>>                 caretPos.text =
>>>> caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?textFeildValue + ' '
>>>> : textFeildValue;
>>>>             }else{
>>>>                 textObj.value = textFeildValue;
>>>>             }
>>>>       }else{
>>>>             if(textObj.setSelectionRange){
>>>>                var rangeStart = textObj.selectionStart;
>>>>                var rangeEnd = textObj.selectionEnd;
>>>>                var tempStr1 = textObj.value.substring(0,rangeStart);
>>>>                var tempStr2 = textObj.value.substring(rangeEnd);
>>>>                textObj.value = tempStr1 + textFeildValue + tempStr2;
>>>>            }else{
>>>>                alert("Esta versão do navegador não suporta
>>>> setSelectionRange");
>>>>            }
>>>>      }
>>>>   }
>>>>
>>>>    function clear_field(){
>>>>       document.form.msg.value = ''
>>>>       document.form.msg.focus()
>>>>       document.form.msg.select()
>>>>    }
>>>>
>>>>    function anexar(){
>>>>              altura = 450;
>>>>              largura= 700;
>>>>              l = (screen.width - largura)/2;
>>>>              t = (screen.height - altura - 50)/2;
>>>>              var html =  '<HTML><HEAD><TITLE></TITLE>'
>>>>                  html += '</HEAD><BODY
>>>> background="/reuniao/imagem/papel.jpg"  TEXT="#000066">'
>>>>                  html += '<BR><BR><BR><table
>>>> align=center><tr><th><h3><label style="color: white; text-shadow: 1px 2px
>>>> 4px #000, 0 0 0 #000, 2px 4px 6px #000">Apresentar documento como
>>>> anexo</label></h3></th></tr></table><br><br>'
>>>>                  html += '<FORM NAME="anexo" METHOD="POST"
>>>> ACTION="/reuniao/temp/upload.plx" ENCTYPE="multipart/form-data">'
>>>>                  html += '<br>'
>>>>                  html += '<TABLE align=center>'
>>>>                  html += '<tr>'
>>>>                  html += '<td><input type="file" name="arquivo"
>>>> size="60" maxlength="90"></td>'
>>>>                  html += '</tr>'
>>>>                  html += '</table>'
>>>>                  html += '<br><br><br>'
>>>>                  html += '<TABLE align=center>'
>>>>                  html += '<tr>'
>>>>                  html += '<td bgcolor=#ADB6C6><input type="submit"
>>>> value="    Processa    " style="color: white; text-shadow: 1px 2px 4px
>>>> #000, 0 0 0 #000, 2px 4px 6px #000"></td>'
>>>>                  html += '</TR>'
>>>>                  html += '</table>'
>>>>                  html += '</form>'
>>>>                  html += '</body>'
>>>>                  html += '</html>'
>>>>              var newWindow =
>>>> window.open("","","scrollbars=no,menubar=no,height="+altura+",width="+largura+",top="+t+",left="+l)
>>>>              newWindow.document.write(html)
>>>>              newWindow.document.close()
>>>>              focus()
>>>>              return false
>>>>    }
>>>>
>>>>    function publicar(){
>>>>              altura = 450;
>>>>              largura= 700;
>>>>              l = (screen.width - largura)/2;
>>>>              t = (screen.height - altura - 50)/2;
>>>>              var html =  '<HTML><HEAD><TITLE></TITLE>'
>>>>                  html += '</HEAD><BODY
>>>> background="/reuniao/imagem/papel.jpg"  TEXT="#ffffff">'
>>>>                  html += '<BR><BR><BR><table
>>>> align=center><tr><th><h3><label style="color: white; text-shadow: 1px 2px
>>>> 4px #000, 0 0 0 #000, 2px 4px 6px #000">Ponto de publicação
>>>> web</label></h3></th></tr></table><br><br>'
>>>>                  html += '<FORM NAME="publica" METHOD="POST"
>>>> ACTION="/reuniao/temp/publica.plx">'
>>>>                  html += '<br>'
>>>>                  html += '<TABLE align=center>'
>>>>                  html += '<tr>'
>>>>                  html += '<td><input type="text" name="http" size="60"
>>>> maxlength="90" value = "http://"></td>'
>>>>                  html += '</tr>'
>>>>                  html += '</table>'
>>>>                  html += '<br><br><br>'
>>>>                  html += '<TABLE align=center>'
>>>>                  html += '<tr>'
>>>>                  html += '<td bgcolor=#ADB6C6><input type="submit"
>>>> value="    Processa    " style="color: white; text-shadow: 1px 2px 4px
>>>> #000, 0 0 0 #000, 2px 4px 6px #000"></td>'
>>>>                  html += '</TR>'
>>>>                  html += '</table>'
>>>>                  html += '</form>'
>>>>                  html += '</body>'
>>>>                  html += '</html>'
>>>>              var newWindow =
>>>> window.open("","","scrollbars=no,menubar=no,height="+altura+",width="+largura+",top="+t+",left="+l)
>>>>              newWindow.document.write(html)
>>>>              newWindow.document.close()
>>>>              focus()
>>>>              return false
>>>>    }
>>>>
>>>>   function showMsgHelp() {
>>>>       alert("                            SALA DE REUNIÃO
>>>> ONLINE\\n\\nMensagem -> Campo alfa numérico com tamanho de 300 caracteres e
>>>> diferente de espaço.\\n\\nNota - É recomendável que uma linha de mensagem
>>>> tenha no máximo 80 caracteres visando dar maior clareza no relatório ATA DE
>>>> REUNIÃO.\\n\\nTAGS ESPECIAIS PARA FORMATAÇÃO DE TEXTO\\n\\n<br> - Salto de
>>>> linha\\n<p> - Salto de parágrafo\\n<b>texto</b> - Texto em negrito\\n<font
>>>> size=4>texto</font> - Texto com fonte igual a 4 pixel\\n<font
>>>> color=red>texto</font> - Texto com cor em vermelho\\n<i>texto</i> - Texto
>>>> em itálico\\n<u>texto</u> - Texto sublinhado\\n<sub>texto</sub> - Texto
>>>> subscrito\\n<sup>texto</sup> - Texto
>>>> sobrescrito\\n<ol><li>texto1<li>texto2<li>texto3</ol> - Lista numérica dos
>>>> textos\\n<li>texto1<li>texto2<li>texto3 - Marcação dos textos\\n\\nNota -
>>>> Os parâmetros de formatação de texto podem ser utilizados
>>>> simultaneamente.\\n\\n                EXEMPLO DE UTILIZAÇÃO\\n\\nOlá sr(s)
>>>> , bom dia a todos<br>Vamos dicurtir a <font size=3 color=red><b>Aquisição
>>>> do imóvel em São Paulo.</b></font><br>O Paulo vai nos descrever as
>>>> alternativas que dispomos.\\n\\n\\nFUNÇÕES ESPECIAIS PARA FORMATAÇÃO DE
>>>> TEXTO\\n\\nLimpa -      Move espaço para o campo mensagem\\nLinha -
>>>> Move <br> para o campo mensagem para quebrar linha\\nLista -        Move
>>>> marcador <li> para o campo mensagem com salto de linha\\nNumérico Move
>>>> marcador <ol> para o campo mensagem\\nCola -        Coloca texto da área de
>>>> transferência no campo mensagem\\nAnexa -     Disponibiliza documento como
>>>> um anexo para apresentação\\nPublica -   Disponibiliza um link de acesso
>>>> referente a uma publicação na internet\\nRealça -    Evidência uma parte do
>>>> texto selecionado no campo mensagem\\nSublinha - Realça um texto
>>>> selecionado no campo mensagem sublinhando-o")
>>>>       event.cancelBubble = true
>>>>       return false
>>>>   }
>>>>
>>>> //-->
>>>> </script>
>>>> </head>
>>>> <body>
>>>> @log
>>>> </body>
>>>> </html>|;
>>>> }}
>>>>
>>>> sub principal2 {
>>>> $qs =~ s/principal2=//;
>>>> ($tema,$login) = split (/-/,$qs);
>>>> $tema =~ tr/+/ /;
>>>> $tema =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
>>>> $login =~ tr/+/ /;
>>>> $login =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
>>>>
>>>> print qq|
>>>> @style
>>>>
>>>> <body  onLoad="document.form.msg.focus()" onHelp="return showMsgHelp()"
>>>> class="table3" leftmargin="0" topmargin="0" marginwidth="0"
>>>> marginheight="0">
>>>> <div align="center">
>>>> <table>
>>>>   <tr>
>>>>     <td>  </td>
>>>>     <td bgcolor='lightsteelblue'><img src="/reuniao/imagem/clear.png"
>>>> onClick="clear_field()"   WIDTH="24" HEIGHT="20" style="cursor:pointer"
>>>> title ="Limpar campo mensagem"  STYLE='cursor: pointer; font-family: Arial,
>>>> Helvetica, sans-serif; font-size: 10px; border-width:
>>>> 2;color:#003366;border-style:outset;font-weight:600'></td>
>>>>     <td bgcolor='lightsteelblue'><img src="/reuniao/imagem/linha.png"
>>>> onClick="enter('<br>')"   WIDTH="20" HEIGHT="20" style="cursor:pointer"
>>>> title ="Salto de linha"  STYLE='cursor: pointer; font-family: Arial,
>>>> Helvetica, sans-serif; font-size: 10px; border-width:
>>>> 2;color:#003366;border-style:outset;font-weight:600'></td>
>>>>     <td bgcolor='lightsteelblue'><img src="/reuniao/imagem/lista.gif"
>>>> onClick="enter('<li>')"   WIDTH="20" HEIGHT="20" style="cursor:pointer"
>>>> title ="Marcador de lista"  STYLE='cursor: pointer; font-family: Arial,
>>>> Helvetica, sans-serif; font-size: 10px; border-width:
>>>> 2;color:#003366;border-style:outset;font-weight:600'></td>
>>>>     <td bgcolor='lightsteelblue'><img src="/reuniao/imagem/nlist.gif"
>>>> onClick="enter('<ol>')"   WIDTH="20" HEIGHT="20" style="cursor:pointer"
>>>> title ="Marcador numérico"  STYLE='cursor: pointer; font-family: Arial,
>>>> Helvetica, sans-serif; font-size: 10px; border-width:
>>>> 2;color:#003366;border-style:outset;font-weight:600'></td>
>>>>     <td bgcolor='lightsteelblue'><input type="button" value="  Á   "
>>>> onClick="enter('Á')"    STYLE='cursor: pointer; font-family: Arial,
>>>> Helvetica, sans-serif; font-size: 10px; border-width:
>>>> 2;color:#003366;font-weight:600'></td>
>>>>     <td bgcolor='lightsteelblue'><input type="button" value="  á   "
>>>> onClick="enter('á')"    STYLE='cursor: pointer; font-family: Arial,
>>>> Helvetica, sans-serif; font-size: 10px; border-width:
>>>> 2;color:#003366;font-weight:600'></td>
>>>>     <td bgcolor='lightsteelblue'><input type="button" value="  à   "
>>>> onClick="enter('à')"    STYLE='cursor: pointer; font-family: Arial,
>>>> Helvetica, sans-serif; font-size: 10px; border-width:
>>>> 2;color:#003366;font-weight:600'></td>
>>>>     <td bgcolor='lightsteelblue'><input type="button" value="  ã   "
>>>> onClick="enter('ã')"    STYLE='cursor: pointer; font-family: Arial,
>>>> Helvetica, sans-serif; font-size: 10px; border-width:
>>>> 2;color:#003366;font-weight:600'></td>
>>>>     <td bgcolor='lightsteelblue'><input type="button" value="  â   "
>>>> onClick="enter('â')"    STYLE='cursor: pointer; font-family: Arial,
>>>> Helvetica, sans-serif; font-size: 10px; border-width:
>>>> 2;color:#003366;font-weight:600'></td>
>>>>     <td bgcolor='lightsteelblue'><input type="button" value="  É   "
>>>> onClick="enter('É')"    STYLE='cursor: pointer; font-family: Arial,
>>>> Helvetica, sans-serif; font-size: 10px; border-width:
>>>> 2;color:#003366;font-weight:600'></td>
>>>>     <td bgcolor='lightsteelblue'><input type="button" value="  é   "
>>>> onClick="enter('é')"    STYLE='cursor: pointer; font-family: Arial,
>>>> Helvetica, sans-serif; font-size: 10px; border-width:
>>>> 2;color:#003366;font-weight:600'></td>
>>>>     <td bgcolor='lightsteelblue'><input type="button" value="  ê   "
>>>> onClick="enter('ê')"    STYLE='cursor: pointer; font-family: Arial,
>>>> Helvetica, sans-serif; font-size: 10px; border-width:
>>>> 2;color:#003366;font-weight:600'></td>
>>>>     <td bgcolor='lightsteelblue'><input type="button" value="  í   "
>>>> onClick="enter('í')"    STYLE='cursor: pointer; font-family: Arial,
>>>> Helvetica, sans-serif; font-size: 10px; border-width:
>>>> 2;color:#003366;font-weight:600'></td>
>>>>     <td bgcolor='lightsteelblue'><input type="button" value="  õ   "
>>>> onClick="enter('õ')"    STYLE='cursor: pointer; font-family: Arial,
>>>> Helvetica, sans-serif; font-size: 10px; border-width:
>>>> 2;color:#003366;font-weight:600'></td>
>>>>     <td bgcolor='lightsteelblue'><input type="button" value="  ó   "
>>>> onClick="enter('ó')"    STYLE='cursor: pointer; font-family: Arial,
>>>> Helvetica, sans-serif; font-size: 10px; border-width:
>>>> 2;color:#003366;font-weight:600'></td>
>>>>     <td bgcolor='lightsteelblue'><input type="button" value="  ô   "
>>>> onClick="enter('ô')"    STYLE='cursor: pointer; font-family: Arial,
>>>> Helvetica, sans-serif; font-size: 10px; border-width:
>>>> 2;color:#003366;font-weight:600'></td>
>>>>     <td bgcolor='lightsteelblue'><input type="button" value="  ú   "
>>>> onClick="enter('ú')"    STYLE='cursor: pointer; font-family: Arial,
>>>> Helvetica, sans-serif; font-size: 10px; border-width:
>>>> 2;color:#003366;font-weight:600'></td>
>>>>     <td bgcolor='lightsteelblue'><input type="button" value="  Ç   "
>>>> onClick="enter('Ç')"    STYLE='cursor: pointer; font-family: Arial,
>>>> Helvetica, sans-serif; font-size: 10px; border-width:
>>>> 2;color:#003366;font-weight:600'></td>
>>>>     <td bgcolor='lightsteelblue'><input type="button" value="  ç   "
>>>> onClick="enter('ç')"    STYLE='cursor: pointer; font-family: Arial,
>>>> Helvetica, sans-serif; font-size: 10px; border-width:
>>>> 2;color:#003366;font-weight:600'></td>
>>>>     <td bgcolor='lightsteelblue'><img src="/reuniao/imagem/anexo.png"
>>>> onClick="anexar()"      WIDTH="20" HEIGHT="20" style="cursor:pointer" title
>>>> ="Anexar docto"  STYLE='cursor: pointer; font-family: Arial, Helvetica,
>>>> sans-serif; font-size: 10px; border-width:
>>>> 2;color:#003366;border-style:outset;font-weight:600'></td>
>>>>     <td bgcolor='lightsteelblue'><img src="/reuniao/imagem/wlink.gif"
>>>> onClick="publicar()"    WIDTH="20" HEIGHT="20" style="cursor:pointer" title
>>>> ="Publicar um link da internet"  STYLE='cursor: hand; font-family: Arial,
>>>> Helvetica, sans-serif; font-size: 10px; border-width:
>>>> 2;color:#003366;border-style:outset;font-weight:600'></td>
>>>>     <td bgcolor='lightsteelblue'><img src="/reuniao/imagem/help.gif"
>>>> onClick="showMsgHelp()" WIDTH="18" HEIGHT="18" style="cursor:pointer" title
>>>> ="Ajuda do sistema"  STYLE='cursor: pointer; font-family: Arial, Helvetica,
>>>> sans-serif; font-size: 10px; border-width:
>>>> 2;color:#003366;border-style:outset;font-weight:600'></td>
>>>> </tr>
>>>> </table><br>
>>>> <table  align="center">
>>>>   <tr>
>>>>     <td class="texto"><form name="form" method="post"
>>>> action="?escreve2">
>>>>           <div align="center"><b><font size=2><label
>>>> class='sombra'>  Mensagem   </label></b></fonte>
>>>>             <input name="msg"     type="text"      class="campo"
>>>> size="120" maxlength="300" onHelp="return showMsgHelp()">
>>>>             <input name="login"   type="hidden"    class="campo"
>>>> value="$login">
>>>>             <input name="tema"    type="hidden"    class="campo"
>>>> value="$tema">
>>>>             <input type="submit"  value="Enviar"   class="botao"
>>>> >
>>>>           </div>
>>>>     </td>
>>>>   </tr>
>>>> </table>
>>>> </form>
>>>> </div>
>>>> </body>
>>>> |;}
>>>>
>>>> sub style{
>>>> open(STYLE, "$estilos");
>>>> @style = <STYLE>;
>>>> close(STYLE);
>>>> }
>>>>
>>>> sub todas{
>>>> $qs =~ s/todas=//;
>>>> $qs =~ tr/+/ /;
>>>> $qs =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
>>>>
>>>> open (LOG, $qs."_".$log);
>>>> @log = <LOG>;
>>>> close(LOG);
>>>>
>>>> print qq|
>>>> <meta http-equiv="refresh" content="5,?todas"/> #####################
>>>> aqui reenvia mensagens para os participantes #############################
>>>> @style
>>>> <script>
>>>> <!--
>>>>   function rolar() {
>>>>     if( document.body && document.body.clientHeight ) {
>>>>       window.innerHeight = document.body.clientHeight
>>>>     }
>>>>     window.scrollTo( 0, (window.innerHeight/0.1) );
>>>>   }
>>>> //-->
>>>> </script>
>>>> <body onLoad="javascript:rolar()">
>>>> @log|;}
>>>>
>>>> sub topo{
>>>> open(TOPO,"$topo");
>>>> @topo=<TOPO>;
>>>> close(TOPO);
>>>> print "@topo";
>>>> }
>>>>
>>>> =begin disclaimer
>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>> SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>> =end disclaimer
>>>>
>>>>
>>>
>>> =begin disclaimer
>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>> SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>> =end disclaimer
>>>
>>>
>>
>>
>> --
>> Thank you very much!
>>
>> -dom
>>
>> --
>>
>> Daniel de Oliveira Mantovani
>> Business Analytic Specialist
>> Perl Evangelist /Astrophysics hobbyist.
>> +55 11 9 8538-9897
>> XOXO
>>
>
>
>
> --
> Thank you very much!
>
> -dom
>
> --
>
> Daniel de Oliveira Mantovani
> Business Analytic Specialist
> Perl Evangelist /Astrophysics hobbyist.
> +55 11 9 8538-9897
> XOXO
>
> ------------------------------
> =begin disclaimer
>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
> SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
> ------------------------------
> =begin disclaimer
>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
> SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
> ------------------------------
> =begin disclaimer
>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
> SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>
> =begin disclaimer
>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>


-- 
Thank you very much!

-dom

--

Daniel de Oliveira Mantovani
Business Analytic Specialist
Perl Evangelist /Astrophysics hobbyist.
+55 11 9 8538-9897
XOXO
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20160111/2edb894f/attachment-0001.html>


More information about the SaoPaulo-pm mailing list