# ############################# Captura dados da tela de autorização # use warnings; use strict; use CGI qw( :standard ); use Fcntl qw( :flock :DEFAULT ); # ############################ Permite executar um script por vez # denovo: if ( -e "c:\\payback\\cgiaindx.nul" ) { goto denovo; } sysopen( TASK99, "c:\\payback\\cgiaindx.nul", O_WRONLY|O_EXCL|O_CREAT ) or warn ( goto denovo ); flock( TASK99, LOCK_EX ) or warn ( goto denovo ); # ######################### Redireciona o usuário para montagem de tela ( entrada nO sistema ) # if ( !param ) { goto monta_tela; } # ########################### Variáveis de entrada de dados do formulario index.htm # my $usuario = param( "usuario" ); my $acesso = param( "acesso" ); # ########################### Formata entrada de dados ( os campos estão separados por # ) # my $registro = sprintf "\%s#\%s#", $usuario, $acesso; # ########################## Grava registro em arquivo para passagem ao programa cobol # open( INDEX, "+>c:\\payback\\cgiaindx.dad" ) or warn( goto erro_script ); flock( INDEX, LOCK_EX ) or warn( goto erro_script ); print( INDEX "$registro" ) or warn( goto erro_script ); flock( INDEX, LOCK_UN ) or warn( goto erro_script ); close( INDEX ) or warn( goto erro_script ); # ######################### Executa programa cobol # my $command = 'c:\\payback\\programa\\cgipindx.exe'; system( $command ) == 0 or warn( goto erro_cobol ); # ######################### Avalia status do processamento cobol # if ( -e "c:\\payback\\idxrauto.js" ) { goto processa_ok }; if ( -e "c:\\payback\\idxrerro.js" ) { goto processa_erro }; # ######################## Programa cobol não executou # # envia cópia do arquivo index.htm ( com mensagem de erro ) # erro_cobol: # unlink( "c:\\payback\\cgiaindx.dad" ); print header(); open( HTML, "c:\\payback\\index.txt" ); print while ( ); close( HTML ); print "\n"; print end_html(); flock( TASK99, LOCK_UN ); close( TASK99 ); unlink( "c:\\payback\\cgiaindx.nul" ); exit; # ######################## Usuário não autorizado a operar # # envia cópia do arquivo index.htm ( com conteudo do arquivo de erro ) # processa_erro: # print header(); open( HTML, "c:\\payback\\index.txt" ) or warn( goto erro_script ); print while ( ); close( HTML ); open( ERRO, "c:\\payback\\idxrerro.js" ) or warn( goto erro_script ); print while ( ); close( ERRO ); print end_html(); unlink( "c:\\payback\\idxrerro.js" ); unlink( "c:\\payback\\cgiaindx.dad" ); flock( TASK99, LOCK_UN ); close( TASK99 ); unlink( "c:\\payback\\cgiaindx.nul" ) or warn( goto erro_script ); exit; # ########################## Usuário autorizado a operar # # envia cópia do arquivo sistemas.htm ( com conteudo do arquivo de autorização ) # processa_ok: # print header(); open( AUTORIZA, "c:\\payback\\idxrauto.js" ) or warn( goto erro_script ); print while ( ); close( AUTORIZA ); open( SISTEMA, "c:\\payback\\sistemas.htm" ) or warn( goto erro_script ); print while ( ); close ( SISTEMA ); print end_html(); unlink( "c:\\payback\\idxrauto.js" ); unlink( "c:\\payback\\cgiaindx.dad" ); flock( TASK99, LOCK_UN ); close( TASK99 ); unlink( "c:\\payback\\cgiaindx.nul" ) or warn( goto erro_script ); exit; # ########################### Erro no script # erro_script: # flock( INDEX, LOCK_UN ); close( INDEX ); close( HTML ); close( ERRO ); close( AUTORIZA ); unlink( "c:\\payback\\idxrerro.js" ); unlink( "c:\\payback\\idxrauto.js" ); unlink( "c:\\payback\\cgiaindx.dad" ); # ########################## Envia mensagem de erro # print header(); open( HTML, "c:\\payback\\index.txt" ); print while ( ); close( HTML ); print "\n"; print end_html(); flock( TASK99, LOCK_UN ); close( TASK99 ); unlink( "c:\\payback\\cgiaindx.nul" ); exit; # ######################## Envia formulário para entrada no sistema # monta_tela: # print redirect ( "http:/payback/index.htm" ); flock( TASK99, LOCK_UN ); close( TASK99 ); unlink( "c:\\payback\\cgiaindx.nul" ); exit; # ########################### termino do script #################################### #