[SP-pm] script perl no windows 10

Lucas Mateus lucasmateus.oliveira at gmail.com
Mon Jan 11 15:26:01 PST 2016


Kleber, de fato é muito difícil te ajudar sem o ambiente propício para
teste e debug. Se estiver disposto, use o SocketIO se começar agora VC
implementa um chat descente em 2h te garanto.
Em 11 de jan de 2016 9:16 PM, "Daniel de Oliveira Mantovani" <
daniel.oliveira.mantovani em gmail.com> escreveu:

> 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 em 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 em hotmail.com.br>
>> *Sent:* Monday, January 11, 2016 8:09 PM
>> *To:* saopaulo-pm em 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 em hotmail.com.br>
>> *Sent:* Monday, January 11, 2016 7:16 PM
>> *To:* saopaulo-pm em 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 em gmail.com>
>> *Sent:* Monday, January 11, 2016 6:12 PM
>> *To:* saopaulo-pm em 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 em 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 em 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 em 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 em 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 em 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 em 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 em 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 em 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 em 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
>
> =begin disclaimer
>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>
-------------- Pr�xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20160111/52501d7d/attachment-0001.html>


More information about the SaoPaulo-pm mailing list